﻿2026-06-05T00:45:19.3982419Z Current runner version: '2.334.0'
2026-06-05T00:45:19.3992065Z Runner name: 'gravity'
2026-06-05T00:45:19.3993169Z Runner group name: 'Default'
2026-06-05T00:45:19.3994548Z Machine name: 'gravity-linux'
2026-06-05T00:45:19.3998526Z ##[group]GITHUB_TOKEN Permissions
2026-06-05T00:45:19.4002748Z Contents: read
2026-06-05T00:45:19.4003589Z Metadata: read
2026-06-05T00:45:19.4004521Z Packages: read
2026-06-05T00:45:19.4005306Z ##[endgroup]
2026-06-05T00:45:19.4008724Z Secret source: Actions
2026-06-05T00:45:19.4010141Z Prepare workflow directory
2026-06-05T00:45:19.4774320Z Prepare all required actions
2026-06-05T00:45:19.4836336Z Getting action download info
2026-06-05T00:45:20.0361969Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-05T00:45:20.8671041Z Complete job name: traceability
2026-06-05T00:45:21.0085335Z ##[group]Run actions/checkout@v5
2026-06-05T00:45:21.0087100Z with:
2026-06-05T00:45:21.0087933Z   repository: SaberMage/spt-core
2026-06-05T00:45:21.0095600Z   token: ***
2026-06-05T00:45:21.0096404Z   ssh-strict: true
2026-06-05T00:45:21.0097214Z   ssh-user: git
2026-06-05T00:45:21.0098034Z   persist-credentials: true
2026-06-05T00:45:21.0098915Z   clean: true
2026-06-05T00:45:21.0099814Z   sparse-checkout-cone-mode: true
2026-06-05T00:45:21.0100770Z   fetch-depth: 1
2026-06-05T00:45:21.0101559Z   fetch-tags: false
2026-06-05T00:45:21.0102366Z   show-progress: true
2026-06-05T00:45:21.0103191Z   lfs: false
2026-06-05T00:45:21.0103967Z   submodules: false
2026-06-05T00:45:21.0104806Z   set-safe-directory: true
2026-06-05T00:45:21.0106299Z ##[endgroup]
2026-06-05T00:45:21.1735464Z Syncing repository: SaberMage/spt-core
2026-06-05T00:45:21.1739132Z ##[group]Getting Git version info
2026-06-05T00:45:21.1741309Z Working directory is '/home/david/actions-runner/_work/spt-core/spt-core'
2026-06-05T00:45:21.1743731Z [command]/usr/bin/git version
2026-06-05T00:45:21.1744751Z git version 2.34.1
2026-06-05T00:45:21.1747905Z ##[endgroup]
2026-06-05T00:45:21.1756950Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/f077f3dd-093a-4c47-949f-d2238d33255a/.gitconfig'
2026-06-05T00:45:21.1760253Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/f077f3dd-093a-4c47-949f-d2238d33255a' before making global git config changes
2026-06-05T00:45:21.1764818Z Adding repository directory to the temporary git global config as a safe directory
2026-06-05T00:45:21.1767322Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-05T00:45:21.1819631Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-05T00:45:21.1852849Z https://github.com/SaberMage/spt-core
2026-06-05T00:45:21.1873694Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-05T00:45:21.1880596Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-05T00:45:21.1910895Z refs/heads/dev-freeform
2026-06-05T00:45:21.1925359Z [command]/usr/bin/git checkout --detach
2026-06-05T00:45:21.1981364Z HEAD is now at dafbcd5 docs(plan): M5-D4 JIT plan — shell sleep/wake + owner cascade; close D3 plan
2026-06-05T00:45:21.2039479Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-05T00:45:21.2079564Z Deleted branch dev-freeform (was dafbcd5).
2026-06-05T00:45:21.2132829Z ##[endgroup]
2026-06-05T00:45:21.2134032Z [command]/usr/bin/git submodule status
2026-06-05T00:45:21.2383066Z ##[group]Cleaning the repository
2026-06-05T00:45:21.2384352Z [command]/usr/bin/git clean -ffdx
2026-06-05T00:45:22.0991019Z Removing target/
2026-06-05T00:45:22.1003707Z [command]/usr/bin/git reset --hard HEAD
2026-06-05T00:45:22.1078224Z HEAD is now at dafbcd5 docs(plan): M5-D4 JIT plan — shell sleep/wake + owner cascade; close D3 plan
2026-06-05T00:45:22.1083793Z ##[endgroup]
2026-06-05T00:45:22.1087210Z ##[group]Disabling automatic garbage collection
2026-06-05T00:45:22.1092969Z [command]/usr/bin/git config --local gc.auto 0
2026-06-05T00:45:22.1131076Z ##[endgroup]
2026-06-05T00:45:22.1132873Z ##[group]Setting up auth
2026-06-05T00:45:22.1142787Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-05T00:45:22.1184730Z [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-05T00:45:22.1427622Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-05T00:45:22.1467107Z [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-05T00:45:22.1706271Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-05T00:45:22.1746974Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-05T00:45:22.1992877Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-05T00:45:22.2053203Z ##[endgroup]
2026-06-05T00:45:22.2054537Z ##[group]Fetching the repository
2026-06-05T00:45:22.2066369Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +2fe4573585bd61bc7ea27c632a042bacf7dd796d:refs/remotes/origin/dev-freeform
2026-06-05T00:45:22.8108277Z From https://github.com/SaberMage/spt-core
2026-06-05T00:45:22.8112822Z  + dafbcd5...2fe4573 2fe4573585bd61bc7ea27c632a042bacf7dd796d -> origin/dev-freeform  (forced update)
2026-06-05T00:45:22.8137089Z ##[endgroup]
2026-06-05T00:45:22.8139360Z ##[group]Determining the checkout info
2026-06-05T00:45:22.8141664Z ##[endgroup]
2026-06-05T00:45:22.8145979Z [command]/usr/bin/git sparse-checkout disable
2026-06-05T00:45:22.8207189Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-05T00:45:22.8244056Z ##[group]Checking out the ref
2026-06-05T00:45:22.8249072Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-05T00:45:22.8332937Z Warning: you are leaving 1 commit behind, not connected to
2026-06-05T00:45:22.8335009Z any of your branches:
2026-06-05T00:45:22.8336150Z 
2026-06-05T00:45:22.8338121Z   dafbcd5 docs(plan): M5-D4 JIT plan — shell sleep/wake + owner cascade; close D3 plan
2026-06-05T00:45:22.8340749Z 
2026-06-05T00:45:22.8341906Z If you want to keep it by creating a new branch, this may be a good time
2026-06-05T00:45:22.8344133Z to do so with:
2026-06-05T00:45:22.8344821Z 
2026-06-05T00:45:22.8345459Z  git branch <new-branch-name> dafbcd5
2026-06-05T00:45:22.8346617Z 
2026-06-05T00:45:22.8347449Z Switched to a new branch 'dev-freeform'
2026-06-05T00:45:22.8350335Z Branch 'dev-freeform' set up to track remote branch 'dev-freeform' from 'origin'.
2026-06-05T00:45:22.8467551Z ##[endgroup]
2026-06-05T00:45:22.8472508Z [command]/usr/bin/git log -1 --format=%H
2026-06-05T00:45:22.8474757Z 2fe4573585bd61bc7ea27c632a042bacf7dd796d
2026-06-05T00:45:22.8809707Z ##[group]Run if command -v traceable-reqs >/dev/null; then
2026-06-05T00:45:22.8812042Z [36;1mif command -v traceable-reqs >/dev/null; then[0m
2026-06-05T00:45:22.8814261Z [36;1m  ln -sf "$(command -v traceable-reqs)" ./traceable-reqs[0m
2026-06-05T00:45:22.8816200Z [36;1melse[0m
2026-06-05T00:45:22.8817838Z [36;1m  gh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-05T00:45:22.8820378Z [36;1m    --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-05T00:45:22.8822367Z [36;1m  chmod +x traceable-reqs[0m
2026-06-05T00:45:22.8823840Z [36;1mfi[0m
2026-06-05T00:45:22.8853438Z shell: /usr/bin/bash -e {0}
2026-06-05T00:45:22.8854825Z env:
2026-06-05T00:45:22.8857823Z   GH_TOKEN: ***
2026-06-05T00:45:22.8858977Z ##[endgroup]
2026-06-05T00:45:22.9092054Z ##[group]Run ./traceable-reqs check --json
2026-06-05T00:45:22.9094189Z [36;1m./traceable-reqs check --json[0m
2026-06-05T00:45:22.9119666Z shell: /usr/bin/bash -e {0}
2026-06-05T00:45:22.9121176Z ##[endgroup]
2026-06-05T00:45:22.9346898Z {
2026-06-05T00:45:22.9348131Z   "schemaVersion": 1,
2026-06-05T00:45:22.9349524Z   "summary": {
2026-06-05T00:45:22.9350768Z     "requirementCount": 135,
2026-06-05T00:45:22.9352242Z     "completeCount": 135,
2026-06-05T00:45:22.9353646Z     "incompleteCount": 0,
2026-06-05T00:45:22.9355018Z     "findingCount": 0
2026-06-05T00:45:22.9356249Z   },
2026-06-05T00:45:22.9371707Z   "requirements": [
2026-06-05T00:45:22.9373169Z     {
2026-06-05T00:45:22.9374270Z       "id": "REQ-API-1",
2026-06-05T00:45:22.9376222Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-05T00:45:22.9378423Z       "requiredStages": [
2026-06-05T00:45:22.9379806Z         "impl",
2026-06-05T00:45:22.9380938Z         "unit",
2026-06-05T00:45:22.9385684Z         "int"
2026-06-05T00:45:22.9386843Z       ],
2026-06-05T00:45:22.9387933Z       "stages": {
2026-06-05T00:45:22.9389109Z         "doc": {
2026-06-05T00:45:22.9390532Z           "complete": false,
2026-06-05T00:45:22.9391971Z           "evidence": []
2026-06-05T00:45:22.9393249Z         },
2026-06-05T00:45:22.9394337Z         "impl": {
2026-06-05T00:45:22.9395557Z           "complete": true,
2026-06-05T00:45:22.9397090Z           "evidence": [
2026-06-05T00:45:22.9398618Z             {
2026-06-05T00:45:22.9400257Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:22.9402241Z               "line": 15
2026-06-05T00:45:22.9403835Z             }
2026-06-05T00:45:22.9404990Z           ]
2026-06-05T00:45:22.9406199Z         },
2026-06-05T00:45:22.9407295Z         "int": {
2026-06-05T00:45:22.9408573Z           "complete": true,
2026-06-05T00:45:22.9410070Z           "evidence": [
2026-06-05T00:45:22.9411369Z             {
2026-06-05T00:45:22.9413023Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:22.9415116Z               "line": 13
2026-06-05T00:45:22.9416432Z             }
2026-06-05T00:45:22.9417653Z           ]
2026-06-05T00:45:22.9418864Z         },
2026-06-05T00:45:22.9420099Z         "unit": {
2026-06-05T00:45:22.9421327Z           "complete": true,
2026-06-05T00:45:22.9422699Z           "evidence": [
2026-06-05T00:45:22.9423923Z             {
2026-06-05T00:45:22.9425200Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:22.9426878Z               "line": 391
2026-06-05T00:45:22.9428143Z             },
2026-06-05T00:45:22.9429278Z             {
2026-06-05T00:45:22.9430563Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:22.9432247Z               "line": 397
2026-06-05T00:45:22.9433512Z             },
2026-06-05T00:45:22.9434618Z             {
2026-06-05T00:45:22.9435871Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:22.9437564Z               "line": 417
2026-06-05T00:45:22.9438843Z             }
2026-06-05T00:45:22.9440029Z           ]
2026-06-05T00:45:22.9441078Z         }
2026-06-05T00:45:22.9442110Z       }
2026-06-05T00:45:22.9443122Z     },
2026-06-05T00:45:22.9444162Z     {
2026-06-05T00:45:22.9445233Z       "id": "REQ-API-2",
2026-06-05T00:45:22.9447433Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-05T00:45:22.9450060Z       "requiredStages": [
2026-06-05T00:45:22.9451372Z         "impl",
2026-06-05T00:45:22.9452477Z         "unit",
2026-06-05T00:45:22.9453578Z         "int"
2026-06-05T00:45:22.9454651Z       ],
2026-06-05T00:45:22.9455692Z       "stages": {
2026-06-05T00:45:22.9456832Z         "doc": {
2026-06-05T00:45:22.9457998Z           "complete": false,
2026-06-05T00:45:22.9459424Z           "evidence": []
2026-06-05T00:45:22.9460691Z         },
2026-06-05T00:45:22.9461743Z         "impl": {
2026-06-05T00:45:22.9462929Z           "complete": true,
2026-06-05T00:45:22.9464278Z           "evidence": [
2026-06-05T00:45:22.9465991Z             {
2026-06-05T00:45:22.9467398Z               "path": "crates/spt-store/src/history.rs",
2026-06-05T00:45:22.9469229Z               "line": 15
2026-06-05T00:45:22.9470840Z             },
2026-06-05T00:45:22.9471895Z             {
2026-06-05T00:45:22.9473163Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:22.9474851Z               "line": 20
2026-06-05T00:45:22.9476062Z             },
2026-06-05T00:45:22.9477117Z             {
2026-06-05T00:45:22.9478374Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:22.9480443Z               "line": 125
2026-06-05T00:45:22.9481666Z             },
2026-06-05T00:45:22.9482720Z             {
2026-06-05T00:45:22.9484044Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9485751Z               "line": 21
2026-06-05T00:45:22.9486953Z             },
2026-06-05T00:45:22.9488013Z             {
2026-06-05T00:45:22.9489343Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9491074Z               "line": 38
2026-06-05T00:45:22.9492275Z             },
2026-06-05T00:45:22.9493331Z             {
2026-06-05T00:45:22.9494620Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9496348Z               "line": 172
2026-06-05T00:45:22.9497568Z             },
2026-06-05T00:45:22.9498633Z             {
2026-06-05T00:45:22.9499953Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9501671Z               "line": 211
2026-06-05T00:45:22.9502887Z             },
2026-06-05T00:45:22.9503933Z             {
2026-06-05T00:45:22.9505226Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9506940Z               "line": 241
2026-06-05T00:45:22.9508171Z             },
2026-06-05T00:45:22.9509260Z             {
2026-06-05T00:45:22.9510519Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9512168Z               "line": 17
2026-06-05T00:45:22.9513368Z             },
2026-06-05T00:45:22.9514432Z             {
2026-06-05T00:45:22.9515698Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9517382Z               "line": 30
2026-06-05T00:45:22.9518602Z             },
2026-06-05T00:45:22.9519705Z             {
2026-06-05T00:45:22.9520977Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9522649Z               "line": 63
2026-06-05T00:45:22.9523851Z             },
2026-06-05T00:45:22.9524913Z             {
2026-06-05T00:45:22.9526164Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9527831Z               "line": 76
2026-06-05T00:45:22.9529031Z             }
2026-06-05T00:45:22.9530545Z           ]
2026-06-05T00:45:22.9531556Z         },
2026-06-05T00:45:22.9532593Z         "int": {
2026-06-05T00:45:22.9533740Z           "complete": true,
2026-06-05T00:45:22.9535042Z           "evidence": [
2026-06-05T00:45:22.9536237Z             {
2026-06-05T00:45:22.9537551Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:22.9539337Z               "line": 14
2026-06-05T00:45:22.9540581Z             },
2026-06-05T00:45:22.9541629Z             {
2026-06-05T00:45:22.9542937Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:22.9544680Z               "line": 151
2026-06-05T00:45:22.9545899Z             }
2026-06-05T00:45:22.9546945Z           ]
2026-06-05T00:45:22.9547950Z         },
2026-06-05T00:45:22.9548978Z         "unit": {
2026-06-05T00:45:22.9550481Z           "complete": true,
2026-06-05T00:45:22.9551808Z           "evidence": [
2026-06-05T00:45:22.9552997Z             {
2026-06-05T00:45:22.9554302Z               "path": "crates/spt-store/src/history.rs",
2026-06-05T00:45:22.9556006Z               "line": 42
2026-06-05T00:45:22.9557225Z             },
2026-06-05T00:45:22.9558289Z             {
2026-06-05T00:45:22.9559616Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:22.9561333Z               "line": 228
2026-06-05T00:45:22.9562572Z             },
2026-06-05T00:45:22.9563890Z             {
2026-06-05T00:45:22.9565234Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9566959Z               "line": 356
2026-06-05T00:45:22.9568336Z             },
2026-06-05T00:45:22.9569461Z             {
2026-06-05T00:45:22.9570783Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9572506Z               "line": 367
2026-06-05T00:45:22.9573737Z             },
2026-06-05T00:45:22.9574809Z             {
2026-06-05T00:45:22.9576104Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9577834Z               "line": 473
2026-06-05T00:45:22.9579058Z             },
2026-06-05T00:45:22.9580160Z             {
2026-06-05T00:45:22.9581468Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9583192Z               "line": 485
2026-06-05T00:45:22.9584424Z             },
2026-06-05T00:45:22.9585500Z             {
2026-06-05T00:45:22.9586763Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9588452Z               "line": 137
2026-06-05T00:45:22.9589717Z             },
2026-06-05T00:45:22.9590767Z             {
2026-06-05T00:45:22.9592030Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:22.9593725Z               "line": 172
2026-06-05T00:45:22.9594940Z             }
2026-06-05T00:45:22.9596010Z           ]
2026-06-05T00:45:22.9597010Z         }
2026-06-05T00:45:22.9598010Z       }
2026-06-05T00:45:22.9598992Z     },
2026-06-05T00:45:22.9600007Z     {
2026-06-05T00:45:22.9601032Z       "id": "REQ-API-3",
2026-06-05T00:45:22.9602678Z       "title": "commune/signoff are file-drops, not commands",
2026-06-05T00:45:22.9604591Z       "requiredStages": [
2026-06-05T00:45:22.9605858Z         "impl",
2026-06-05T00:45:22.9606948Z         "unit",
2026-06-05T00:45:22.9608029Z         "int"
2026-06-05T00:45:22.9609084Z       ],
2026-06-05T00:45:22.9610134Z       "stages": {
2026-06-05T00:45:22.9611243Z         "doc": {
2026-06-05T00:45:22.9612391Z           "complete": false,
2026-06-05T00:45:22.9613747Z           "evidence": []
2026-06-05T00:45:22.9614969Z         },
2026-06-05T00:45:22.9615994Z         "impl": {
2026-06-05T00:45:22.9617173Z           "complete": true,
2026-06-05T00:45:22.9618464Z           "evidence": [
2026-06-05T00:45:22.9619713Z             {
2026-06-05T00:45:22.9620993Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:22.9622678Z               "line": 27
2026-06-05T00:45:22.9623881Z             },
2026-06-05T00:45:22.9624949Z             {
2026-06-05T00:45:22.9626257Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9627989Z               "line": 293
2026-06-05T00:45:22.9629241Z             }
2026-06-05T00:45:22.9630280Z           ]
2026-06-05T00:45:22.9631285Z         },
2026-06-05T00:45:22.9632286Z         "int": {
2026-06-05T00:45:22.9633413Z           "complete": true,
2026-06-05T00:45:22.9655028Z           "evidence": [
2026-06-05T00:45:22.9656299Z             {
2026-06-05T00:45:22.9657699Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:22.9659465Z               "line": 203
2026-06-05T00:45:22.9660643Z             }
2026-06-05T00:45:22.9661669Z           ]
2026-06-05T00:45:22.9662634Z         },
2026-06-05T00:45:22.9663610Z         "unit": {
2026-06-05T00:45:22.9664733Z           "complete": true,
2026-06-05T00:45:22.9665990Z           "evidence": [
2026-06-05T00:45:22.9667130Z             {
2026-06-05T00:45:22.9668404Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:22.9670109Z               "line": 230
2026-06-05T00:45:22.9671296Z             },
2026-06-05T00:45:22.9672305Z             {
2026-06-05T00:45:22.9673559Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:22.9675238Z               "line": 514
2026-06-05T00:45:22.9676428Z             }
2026-06-05T00:45:22.9677426Z           ]
2026-06-05T00:45:22.9678396Z         }
2026-06-05T00:45:22.9679377Z       }
2026-06-05T00:45:22.9680341Z     },
2026-06-05T00:45:22.9681298Z     {
2026-06-05T00:45:22.9682731Z       "id": "REQ-ARCH-1",
2026-06-05T00:45:22.9684275Z       "title": "Many small acyclically-layered crates",
2026-06-05T00:45:22.9686014Z       "requiredStages": [
2026-06-05T00:45:22.9687428Z         "impl"
2026-06-05T00:45:22.9688453Z       ],
2026-06-05T00:45:22.9689541Z       "stages": {
2026-06-05T00:45:22.9690618Z         "doc": {
2026-06-05T00:45:22.9691716Z           "complete": false,
2026-06-05T00:45:22.9693006Z           "evidence": []
2026-06-05T00:45:22.9694187Z         },
2026-06-05T00:45:22.9695164Z         "impl": {
2026-06-05T00:45:22.9696272Z           "complete": true,
2026-06-05T00:45:22.9697528Z           "evidence": [
2026-06-05T00:45:22.9698675Z             {
2026-06-05T00:45:22.9699892Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-05T00:45:22.9701495Z               "line": 16
2026-06-05T00:45:22.9702650Z             },
2026-06-05T00:45:22.9703670Z             {
2026-06-05T00:45:22.9704870Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-05T00:45:22.9706508Z               "line": 12
2026-06-05T00:45:22.9707683Z             },
2026-06-05T00:45:22.9708700Z             {
2026-06-05T00:45:22.9709947Z               "path": "crates/spt-store/src/lib.rs",
2026-06-05T00:45:22.9711555Z               "line": 12
2026-06-05T00:45:22.9712721Z             }
2026-06-05T00:45:22.9713722Z           ]
2026-06-05T00:45:22.9714695Z         },
2026-06-05T00:45:22.9715659Z         "int": {
2026-06-05T00:45:22.9716763Z           "complete": false,
2026-06-05T00:45:22.9718050Z           "evidence": []
2026-06-05T00:45:22.9719245Z         },
2026-06-05T00:45:22.9720227Z         "unit": {
2026-06-05T00:45:22.9721345Z           "complete": false,
2026-06-05T00:45:22.9722628Z           "evidence": []
2026-06-05T00:45:22.9723789Z         }
2026-06-05T00:45:22.9724740Z       }
2026-06-05T00:45:22.9725681Z     },
2026-06-05T00:45:22.9726622Z     {
2026-06-05T00:45:22.9727629Z       "id": "REQ-ARCH-2",
2026-06-05T00:45:22.9729427Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-05T00:45:22.9731510Z       "requiredStages": [
2026-06-05T00:45:22.9732749Z         "impl"
2026-06-05T00:45:22.9733788Z       ],
2026-06-05T00:45:22.9734781Z       "stages": {
2026-06-05T00:45:22.9735858Z         "doc": {
2026-06-05T00:45:22.9736962Z           "complete": false,
2026-06-05T00:45:22.9738257Z           "evidence": []
2026-06-05T00:45:22.9739463Z         },
2026-06-05T00:45:22.9740460Z         "impl": {
2026-06-05T00:45:22.9741573Z           "complete": true,
2026-06-05T00:45:22.9742842Z           "evidence": [
2026-06-05T00:45:22.9743997Z             {
2026-06-05T00:45:22.9745245Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-05T00:45:22.9746883Z               "line": 18
2026-06-05T00:45:22.9748050Z             }
2026-06-05T00:45:22.9749059Z           ]
2026-06-05T00:45:22.9750062Z         },
2026-06-05T00:45:22.9751042Z         "int": {
2026-06-05T00:45:22.9752159Z           "complete": false,
2026-06-05T00:45:22.9753472Z           "evidence": []
2026-06-05T00:45:22.9754648Z         },
2026-06-05T00:45:22.9755656Z         "unit": {
2026-06-05T00:45:22.9756811Z           "complete": false,
2026-06-05T00:45:22.9758125Z           "evidence": []
2026-06-05T00:45:22.9759343Z         }
2026-06-05T00:45:22.9760302Z       }
2026-06-05T00:45:22.9761256Z     },
2026-06-05T00:45:22.9762205Z     {
2026-06-05T00:45:22.9763219Z       "id": "REQ-ARCH-3",
2026-06-05T00:45:22.9765300Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-05T00:45:22.9767710Z       "requiredStages": [
2026-06-05T00:45:22.9768935Z         "impl",
2026-06-05T00:45:22.9770046Z         "unit"
2026-06-05T00:45:22.9771079Z       ],
2026-06-05T00:45:22.9772066Z       "stages": {
2026-06-05T00:45:22.9773134Z         "doc": {
2026-06-05T00:45:22.9774266Z           "complete": false,
2026-06-05T00:45:22.9775572Z           "evidence": []
2026-06-05T00:45:22.9776744Z         },
2026-06-05T00:45:22.9777732Z         "impl": {
2026-06-05T00:45:22.9779147Z           "complete": true,
2026-06-05T00:45:22.9780509Z           "evidence": [
2026-06-05T00:45:22.9781659Z             {
2026-06-05T00:45:22.9782929Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T00:45:22.9784768Z               "line": 34
2026-06-05T00:45:22.9785944Z             },
2026-06-05T00:45:22.9786972Z             {
2026-06-05T00:45:22.9788254Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T00:45:22.9789986Z               "line": 41
2026-06-05T00:45:22.9791157Z             }
2026-06-05T00:45:22.9792168Z           ]
2026-06-05T00:45:22.9793157Z         },
2026-06-05T00:45:22.9794144Z         "int": {
2026-06-05T00:45:22.9795271Z           "complete": false,
2026-06-05T00:45:22.9796588Z           "evidence": []
2026-06-05T00:45:22.9797777Z         },
2026-06-05T00:45:22.9798755Z         "unit": {
2026-06-05T00:45:22.9799917Z           "complete": true,
2026-06-05T00:45:22.9801192Z           "evidence": [
2026-06-05T00:45:22.9802398Z             {
2026-06-05T00:45:22.9803722Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T00:45:22.9805417Z               "line": 51
2026-06-05T00:45:22.9806593Z             },
2026-06-05T00:45:22.9807627Z             {
2026-06-05T00:45:22.9808912Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T00:45:22.9810645Z               "line": 65
2026-06-05T00:45:22.9811834Z             },
2026-06-05T00:45:22.9812866Z             {
2026-06-05T00:45:22.9814128Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T00:45:22.9815804Z               "line": 74
2026-06-05T00:45:22.9816995Z             }
2026-06-05T00:45:22.9817994Z           ]
2026-06-05T00:45:22.9818970Z         }
2026-06-05T00:45:22.9819985Z       }
2026-06-05T00:45:22.9820986Z     },
2026-06-05T00:45:22.9821971Z     {
2026-06-05T00:45:22.9822983Z       "id": "REQ-ARCH-4",
2026-06-05T00:45:22.9824829Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-05T00:45:22.9827022Z       "requiredStages": [
2026-06-05T00:45:22.9828258Z         "impl",
2026-06-05T00:45:22.9829362Z         "unit"
2026-06-05T00:45:22.9830387Z       ],
2026-06-05T00:45:22.9831378Z       "stages": {
2026-06-05T00:45:22.9832458Z         "doc": {
2026-06-05T00:45:22.9833560Z           "complete": false,
2026-06-05T00:45:22.9834869Z           "evidence": []
2026-06-05T00:45:22.9836050Z         },
2026-06-05T00:45:22.9837055Z         "impl": {
2026-06-05T00:45:22.9838174Z           "complete": true,
2026-06-05T00:45:22.9839615Z           "evidence": [
2026-06-05T00:45:22.9840793Z             {
2026-06-05T00:45:22.9842049Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9843698Z               "line": 82
2026-06-05T00:45:22.9844875Z             },
2026-06-05T00:45:22.9845900Z             {
2026-06-05T00:45:22.9847148Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9848802Z               "line": 96
2026-06-05T00:45:22.9850064Z             },
2026-06-05T00:45:22.9851120Z             {
2026-06-05T00:45:22.9852354Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9854033Z               "line": 116
2026-06-05T00:45:22.9855240Z             },
2026-06-05T00:45:22.9856256Z             {
2026-06-05T00:45:22.9857499Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9859133Z               "line": 131
2026-06-05T00:45:22.9860380Z             },
2026-06-05T00:45:22.9861412Z             {
2026-06-05T00:45:22.9862664Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9864316Z               "line": 181
2026-06-05T00:45:22.9865507Z             }
2026-06-05T00:45:22.9866512Z           ]
2026-06-05T00:45:22.9867496Z         },
2026-06-05T00:45:22.9868491Z         "int": {
2026-06-05T00:45:22.9869649Z           "complete": false,
2026-06-05T00:45:22.9870941Z           "evidence": []
2026-06-05T00:45:22.9872128Z         },
2026-06-05T00:45:22.9873121Z         "unit": {
2026-06-05T00:45:22.9874437Z           "complete": true,
2026-06-05T00:45:22.9875756Z           "evidence": [
2026-06-05T00:45:22.9876906Z             {
2026-06-05T00:45:22.9878151Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9880008Z               "line": 245
2026-06-05T00:45:22.9881201Z             },
2026-06-05T00:45:22.9882226Z             {
2026-06-05T00:45:22.9883451Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9885086Z               "line": 255
2026-06-05T00:45:22.9886265Z             },
2026-06-05T00:45:22.9887285Z             {
2026-06-05T00:45:22.9888527Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9890259Z               "line": 266
2026-06-05T00:45:22.9891461Z             },
2026-06-05T00:45:22.9892497Z             {
2026-06-05T00:45:22.9893751Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9895405Z               "line": 277
2026-06-05T00:45:22.9896589Z             },
2026-06-05T00:45:22.9897614Z             {
2026-06-05T00:45:22.9898865Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9900574Z               "line": 289
2026-06-05T00:45:22.9901762Z             },
2026-06-05T00:45:22.9902796Z             {
2026-06-05T00:45:22.9904030Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9905661Z               "line": 302
2026-06-05T00:45:22.9906845Z             },
2026-06-05T00:45:22.9907867Z             {
2026-06-05T00:45:22.9909102Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9910797Z               "line": 313
2026-06-05T00:45:22.9911976Z             },
2026-06-05T00:45:22.9913005Z             {
2026-06-05T00:45:22.9914231Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9915865Z               "line": 327
2026-06-05T00:45:22.9917048Z             },
2026-06-05T00:45:22.9918057Z             {
2026-06-05T00:45:22.9919316Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:22.9920956Z               "line": 355
2026-06-05T00:45:22.9922161Z             }
2026-06-05T00:45:22.9923168Z           ]
2026-06-05T00:45:22.9924140Z         }
2026-06-05T00:45:22.9925103Z       }
2026-06-05T00:45:22.9926064Z     },
2026-06-05T00:45:22.9927012Z     {
2026-06-05T00:45:22.9928024Z       "id": "REQ-CONSENT-1",
2026-06-05T00:45:22.9935580Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-05T00:45:22.9943338Z       "requiredStages": [
2026-06-05T00:45:22.9944552Z         "impl",
2026-06-05T00:45:22.9945591Z         "unit"
2026-06-05T00:45:22.9946605Z       ],
2026-06-05T00:45:22.9947583Z       "stages": {
2026-06-05T00:45:22.9948646Z         "doc": {
2026-06-05T00:45:22.9949801Z           "complete": false,
2026-06-05T00:45:22.9951121Z           "evidence": []
2026-06-05T00:45:22.9952294Z         },
2026-06-05T00:45:22.9953277Z         "impl": {
2026-06-05T00:45:22.9954379Z           "complete": true,
2026-06-05T00:45:22.9955628Z           "evidence": [
2026-06-05T00:45:22.9956765Z             {
2026-06-05T00:45:22.9958014Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:22.9959689Z               "line": 27
2026-06-05T00:45:22.9960845Z             },
2026-06-05T00:45:22.9961879Z             {
2026-06-05T00:45:22.9963129Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:22.9964745Z               "line": 75
2026-06-05T00:45:22.9965903Z             },
2026-06-05T00:45:22.9975618Z             {
2026-06-05T00:45:22.9977040Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:22.9978711Z               "line": 98
2026-06-05T00:45:22.9979966Z             },
2026-06-05T00:45:22.9981001Z             {
2026-06-05T00:45:22.9982534Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:22.9984172Z               "line": 82
2026-06-05T00:45:22.9985331Z             },
2026-06-05T00:45:22.9986347Z             {
2026-06-05T00:45:22.9987749Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:22.9989412Z               "line": 109
2026-06-05T00:45:22.9990590Z             },
2026-06-05T00:45:22.9991605Z             {
2026-06-05T00:45:22.9992861Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:22.9994485Z               "line": 127
2026-06-05T00:45:22.9995663Z             },
2026-06-05T00:45:22.9996677Z             {
2026-06-05T00:45:22.9997907Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:22.9999574Z               "line": 142
2026-06-05T00:45:23.0000760Z             },
2026-06-05T00:45:23.0001817Z             {
2026-06-05T00:45:23.0002981Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0004559Z               "line": 2238
2026-06-05T00:45:23.0005748Z             }
2026-06-05T00:45:23.0006772Z           ]
2026-06-05T00:45:23.0007745Z         },
2026-06-05T00:45:23.0008707Z         "int": {
2026-06-05T00:45:23.0009856Z           "complete": false,
2026-06-05T00:45:23.0011142Z           "evidence": []
2026-06-05T00:45:23.0012298Z         },
2026-06-05T00:45:23.0013282Z         "unit": {
2026-06-05T00:45:23.0014380Z           "complete": true,
2026-06-05T00:45:23.0015625Z           "evidence": [
2026-06-05T00:45:23.0016756Z             {
2026-06-05T00:45:23.0017997Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0019678Z               "line": 302
2026-06-05T00:45:23.0020841Z             },
2026-06-05T00:45:23.0021854Z             {
2026-06-05T00:45:23.0023102Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0024740Z               "line": 327
2026-06-05T00:45:23.0025903Z             },
2026-06-05T00:45:23.0026917Z             {
2026-06-05T00:45:23.0028163Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0029848Z               "line": 338
2026-06-05T00:45:23.0031018Z             },
2026-06-05T00:45:23.0032028Z             {
2026-06-05T00:45:23.0033255Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:23.0034880Z               "line": 165
2026-06-05T00:45:23.0036049Z             },
2026-06-05T00:45:23.0037057Z             {
2026-06-05T00:45:23.0038281Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:23.0040000Z               "line": 184
2026-06-05T00:45:23.0041167Z             },
2026-06-05T00:45:23.0042179Z             {
2026-06-05T00:45:23.0043400Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T00:45:23.0045034Z               "line": 204
2026-06-05T00:45:23.0046216Z             },
2026-06-05T00:45:23.0047230Z             {
2026-06-05T00:45:23.0048374Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0049948Z               "line": 2526
2026-06-05T00:45:23.0051137Z             }
2026-06-05T00:45:23.0052135Z           ]
2026-06-05T00:45:23.0053119Z         }
2026-06-05T00:45:23.0054087Z       }
2026-06-05T00:45:23.0055023Z     },
2026-06-05T00:45:23.0055975Z     {
2026-06-05T00:45:23.0057013Z       "id": "REQ-CONSENT-2",
2026-06-05T00:45:23.0063985Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-05T00:45:23.0071095Z       "requiredStages": [
2026-06-05T00:45:23.0072307Z         "impl",
2026-06-05T00:45:23.0073362Z         "unit"
2026-06-05T00:45:23.0074375Z       ],
2026-06-05T00:45:23.0075335Z       "stages": {
2026-06-05T00:45:23.0076398Z         "doc": {
2026-06-05T00:45:23.0077498Z           "complete": false,
2026-06-05T00:45:23.0078778Z           "evidence": []
2026-06-05T00:45:23.0079980Z         },
2026-06-05T00:45:23.0081139Z         "impl": {
2026-06-05T00:45:23.0082264Z           "complete": true,
2026-06-05T00:45:23.0083525Z           "evidence": [
2026-06-05T00:45:23.0084667Z             {
2026-06-05T00:45:23.0091027Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0092809Z               "line": 140
2026-06-05T00:45:23.0093995Z             },
2026-06-05T00:45:23.0095022Z             {
2026-06-05T00:45:23.0096267Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0097897Z               "line": 158
2026-06-05T00:45:23.0099080Z             },
2026-06-05T00:45:23.0100137Z             {
2026-06-05T00:45:23.0101376Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0102994Z               "line": 192
2026-06-05T00:45:23.0104148Z             },
2026-06-05T00:45:23.0105144Z             {
2026-06-05T00:45:23.0106374Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0107983Z               "line": 234
2026-06-05T00:45:23.0109152Z             },
2026-06-05T00:45:23.0110210Z             {
2026-06-05T00:45:23.0111435Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0113053Z               "line": 246
2026-06-05T00:45:23.0114245Z             },
2026-06-05T00:45:23.0115248Z             {
2026-06-05T00:45:23.0116484Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0118091Z               "line": 277
2026-06-05T00:45:23.0119266Z             },
2026-06-05T00:45:23.0120277Z             {
2026-06-05T00:45:23.0121405Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0122909Z               "line": 2131
2026-06-05T00:45:23.0124072Z             },
2026-06-05T00:45:23.0125064Z             {
2026-06-05T00:45:23.0126198Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0127710Z               "line": 2171
2026-06-05T00:45:23.0128871Z             }
2026-06-05T00:45:23.0129892Z           ]
2026-06-05T00:45:23.0130855Z         },
2026-06-05T00:45:23.0131817Z         "int": {
2026-06-05T00:45:23.0132908Z           "complete": false,
2026-06-05T00:45:23.0134167Z           "evidence": []
2026-06-05T00:45:23.0135315Z         },
2026-06-05T00:45:23.0136292Z         "unit": {
2026-06-05T00:45:23.0137376Z           "complete": true,
2026-06-05T00:45:23.0138598Z           "evidence": [
2026-06-05T00:45:23.0139751Z             {
2026-06-05T00:45:23.0140987Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0142612Z               "line": 366
2026-06-05T00:45:23.0143770Z             },
2026-06-05T00:45:23.0144770Z             {
2026-06-05T00:45:23.0146001Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0147622Z               "line": 380
2026-06-05T00:45:23.0148782Z             },
2026-06-05T00:45:23.0149821Z             {
2026-06-05T00:45:23.0151060Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0152671Z               "line": 416
2026-06-05T00:45:23.0153822Z             },
2026-06-05T00:45:23.0154830Z             {
2026-06-05T00:45:23.0156063Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T00:45:23.0157670Z               "line": 448
2026-06-05T00:45:23.0158830Z             },
2026-06-05T00:45:23.0160185Z             {
2026-06-05T00:45:23.0161357Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0162881Z               "line": 3061
2026-06-05T00:45:23.0164055Z             },
2026-06-05T00:45:23.0165066Z             {
2026-06-05T00:45:23.0166199Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0167722Z               "line": 3121
2026-06-05T00:45:23.0168894Z             }
2026-06-05T00:45:23.0169924Z           ]
2026-06-05T00:45:23.0170888Z         }
2026-06-05T00:45:23.0171831Z       }
2026-06-05T00:45:23.0172755Z     },
2026-06-05T00:45:23.0173679Z     {
2026-06-05T00:45:23.0174672Z       "id": "REQ-DAEMON-1",
2026-06-05T00:45:23.0176436Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-05T00:45:23.0178719Z       "requiredStages": [
2026-06-05T00:45:23.0179988Z         "impl",
2026-06-05T00:45:23.0181007Z         "unit",
2026-06-05T00:45:23.0182041Z         "int"
2026-06-05T00:45:23.0183231Z       ],
2026-06-05T00:45:23.0184206Z       "stages": {
2026-06-05T00:45:23.0185250Z         "doc": {
2026-06-05T00:45:23.0186328Z           "complete": false,
2026-06-05T00:45:23.0187594Z           "evidence": []
2026-06-05T00:45:23.0188749Z         },
2026-06-05T00:45:23.0189759Z         "impl": {
2026-06-05T00:45:23.0195498Z           "complete": true,
2026-06-05T00:45:23.0196903Z           "evidence": [
2026-06-05T00:45:23.0198032Z             {
2026-06-05T00:45:23.0199366Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0200988Z               "line": 12
2026-06-05T00:45:23.0202129Z             },
2026-06-05T00:45:23.0203132Z             {
2026-06-05T00:45:23.0204386Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0206038Z               "line": 16
2026-06-05T00:45:23.0207217Z             },
2026-06-05T00:45:23.0208219Z             {
2026-06-05T00:45:23.0209477Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T00:45:23.0211109Z               "line": 15
2026-06-05T00:45:23.0212255Z             },
2026-06-05T00:45:23.0213243Z             {
2026-06-05T00:45:23.0214404Z               "path": "crates/spt/src/api/live.rs",
2026-06-05T00:45:23.0215953Z               "line": 13
2026-06-05T00:45:23.0217078Z             }
2026-06-05T00:45:23.0218068Z           ]
2026-06-05T00:45:23.0219027Z         },
2026-06-05T00:45:23.0220024Z         "int": {
2026-06-05T00:45:23.0221094Z           "complete": true,
2026-06-05T00:45:23.0222301Z           "evidence": [
2026-06-05T00:45:23.0223413Z             {
2026-06-05T00:45:23.0224706Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T00:45:23.0226369Z               "line": 32
2026-06-05T00:45:23.0227502Z             }
2026-06-05T00:45:23.0228484Z           ]
2026-06-05T00:45:23.0229472Z         },
2026-06-05T00:45:23.0230442Z         "unit": {
2026-06-05T00:45:23.0231525Z           "complete": true,
2026-06-05T00:45:23.0232755Z           "evidence": [
2026-06-05T00:45:23.0233903Z             {
2026-06-05T00:45:23.0235130Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0236744Z               "line": 254
2026-06-05T00:45:23.0237910Z             },
2026-06-05T00:45:23.0238911Z             {
2026-06-05T00:45:23.0240201Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0241815Z               "line": 262
2026-06-05T00:45:23.0242974Z             },
2026-06-05T00:45:23.0243971Z             {
2026-06-05T00:45:23.0245210Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0246829Z               "line": 275
2026-06-05T00:45:23.0248002Z             },
2026-06-05T00:45:23.0249018Z             {
2026-06-05T00:45:23.0250278Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0251893Z               "line": 283
2026-06-05T00:45:23.0253048Z             },
2026-06-05T00:45:23.0254051Z             {
2026-06-05T00:45:23.0255404Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0257082Z               "line": 536
2026-06-05T00:45:23.0258245Z             },
2026-06-05T00:45:23.0259282Z             {
2026-06-05T00:45:23.0260548Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0262205Z               "line": 595
2026-06-05T00:45:23.0263352Z             },
2026-06-05T00:45:23.0264340Z             {
2026-06-05T00:45:23.0265545Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T00:45:23.0267152Z               "line": 100
2026-06-05T00:45:23.0268591Z             },
2026-06-05T00:45:23.0270021Z             {
2026-06-05T00:45:23.0271273Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T00:45:23.0273108Z               "line": 125
2026-06-05T00:45:23.0274330Z             }
2026-06-05T00:45:23.0275344Z           ]
2026-06-05T00:45:23.0276713Z         }
2026-06-05T00:45:23.0277737Z       }
2026-06-05T00:45:23.0278690Z     },
2026-06-05T00:45:23.0279879Z     {
2026-06-05T00:45:23.0280886Z       "id": "REQ-DAEMON-2",
2026-06-05T00:45:23.0282638Z       "title": "Broker/brain split for seamless self-update",
2026-06-05T00:45:23.0284419Z       "requiredStages": [
2026-06-05T00:45:23.0285616Z         "impl",
2026-06-05T00:45:23.0286634Z         "unit",
2026-06-05T00:45:23.0287650Z         "int"
2026-06-05T00:45:23.0288631Z       ],
2026-06-05T00:45:23.0289831Z       "stages": {
2026-06-05T00:45:23.0291060Z         "doc": {
2026-06-05T00:45:23.0292294Z           "complete": false,
2026-06-05T00:45:23.0293687Z           "evidence": []
2026-06-05T00:45:23.0294901Z         },
2026-06-05T00:45:23.0295903Z         "impl": {
2026-06-05T00:45:23.0303359Z           "complete": true,
2026-06-05T00:45:23.0304718Z           "evidence": [
2026-06-05T00:45:23.0305859Z             {
2026-06-05T00:45:23.0307149Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.0308797Z               "line": 23
2026-06-05T00:45:23.0310182Z             },
2026-06-05T00:45:23.0311178Z             {
2026-06-05T00:45:23.0312399Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.0313976Z               "line": 489
2026-06-05T00:45:23.0315120Z             },
2026-06-05T00:45:23.0316124Z             {
2026-06-05T00:45:23.0317324Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.0318909Z               "line": 612
2026-06-05T00:45:23.0320404Z             },
2026-06-05T00:45:23.0321409Z             {
2026-06-05T00:45:23.0322637Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.0324250Z               "line": 32
2026-06-05T00:45:23.0325379Z             },
2026-06-05T00:45:23.0326378Z             {
2026-06-05T00:45:23.0327602Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.0329268Z               "line": 191
2026-06-05T00:45:23.0330412Z             },
2026-06-05T00:45:23.0331418Z             {
2026-06-05T00:45:23.0332639Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.0334242Z               "line": 519
2026-06-05T00:45:23.0335398Z             },
2026-06-05T00:45:23.0336390Z             {
2026-06-05T00:45:23.0337609Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.0339254Z               "line": 688
2026-06-05T00:45:23.0340427Z             },
2026-06-05T00:45:23.0341414Z             {
2026-06-05T00:45:23.0342605Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T00:45:23.0344173Z               "line": 11
2026-06-05T00:45:23.0345302Z             },
2026-06-05T00:45:23.0346294Z             {
2026-06-05T00:45:23.0347521Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.0349115Z               "line": 69
2026-06-05T00:45:23.0350473Z             },
2026-06-05T00:45:23.0351908Z             {
2026-06-05T00:45:23.0353359Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0355091Z               "line": 13
2026-06-05T00:45:23.0356334Z             },
2026-06-05T00:45:23.0357408Z             {
2026-06-05T00:45:23.0358749Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0360945Z               "line": 27
2026-06-05T00:45:23.0362182Z             },
2026-06-05T00:45:23.0363286Z             {
2026-06-05T00:45:23.0364651Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0366575Z               "line": 94
2026-06-05T00:45:23.0367937Z             },
2026-06-05T00:45:23.0369278Z             {
2026-06-05T00:45:23.0370541Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0372178Z               "line": 393
2026-06-05T00:45:23.0373452Z             },
2026-06-05T00:45:23.0374455Z             {
2026-06-05T00:45:23.0375702Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0377636Z               "line": 460
2026-06-05T00:45:23.0378773Z             },
2026-06-05T00:45:23.0380197Z             {
2026-06-05T00:45:23.0381484Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0383093Z               "line": 494
2026-06-05T00:45:23.0384427Z             },
2026-06-05T00:45:23.0385423Z             {
2026-06-05T00:45:23.0386655Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0388271Z               "line": 536
2026-06-05T00:45:23.0389465Z             },
2026-06-05T00:45:23.0390474Z             {
2026-06-05T00:45:23.0391708Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0393328Z               "line": 581
2026-06-05T00:45:23.0394473Z             },
2026-06-05T00:45:23.0395475Z             {
2026-06-05T00:45:23.0396718Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T00:45:23.0398353Z               "line": 10
2026-06-05T00:45:23.0399540Z             }
2026-06-05T00:45:23.0400545Z           ]
2026-06-05T00:45:23.0401497Z         },
2026-06-05T00:45:23.0402464Z         "int": {
2026-06-05T00:45:23.0403539Z           "complete": true,
2026-06-05T00:45:23.0411470Z           "evidence": [
2026-06-05T00:45:23.0412797Z             {
2026-06-05T00:45:23.0414071Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-05T00:45:23.0415680Z               "line": 17
2026-06-05T00:45:23.0416812Z             },
2026-06-05T00:45:23.0417805Z             {
2026-06-05T00:45:23.0419097Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T00:45:23.0420835Z               "line": 33
2026-06-05T00:45:23.0421967Z             },
2026-06-05T00:45:23.0422963Z             {
2026-06-05T00:45:23.0424189Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-05T00:45:23.0425800Z               "line": 19
2026-06-05T00:45:23.0426918Z             },
2026-06-05T00:45:23.0427896Z             {
2026-06-05T00:45:23.0429149Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T00:45:23.0430860Z               "line": 70
2026-06-05T00:45:23.0431990Z             },
2026-06-05T00:45:23.0432982Z             {
2026-06-05T00:45:23.0434241Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T00:45:23.0435906Z               "line": 90
2026-06-05T00:45:23.0437027Z             },
2026-06-05T00:45:23.0438015Z             {
2026-06-05T00:45:23.0439311Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T00:45:23.0440973Z               "line": 160
2026-06-05T00:45:23.0442107Z             },
2026-06-05T00:45:23.0443095Z             {
2026-06-05T00:45:23.0444345Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T00:45:23.0445996Z               "line": 196
2026-06-05T00:45:23.0447125Z             },
2026-06-05T00:45:23.0448103Z             {
2026-06-05T00:45:23.0449390Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-05T00:45:23.0451071Z               "line": 121
2026-06-05T00:45:23.0452215Z             }
2026-06-05T00:45:23.0453189Z           ]
2026-06-05T00:45:23.0454136Z         },
2026-06-05T00:45:23.0455102Z         "unit": {
2026-06-05T00:45:23.0456178Z           "complete": true,
2026-06-05T00:45:23.0457384Z           "evidence": [
2026-06-05T00:45:23.0458500Z             {
2026-06-05T00:45:23.0459727Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T00:45:23.0461305Z               "line": 62
2026-06-05T00:45:23.0462434Z             },
2026-06-05T00:45:23.0463502Z             {
2026-06-05T00:45:23.0464713Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T00:45:23.0466286Z               "line": 76
2026-06-05T00:45:23.0467416Z             },
2026-06-05T00:45:23.0468421Z             {
2026-06-05T00:45:23.0469655Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T00:45:23.0471238Z               "line": 88
2026-06-05T00:45:23.0472385Z             },
2026-06-05T00:45:23.0473376Z             {
2026-06-05T00:45:23.0474583Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.0476177Z               "line": 264
2026-06-05T00:45:23.0477629Z             },
2026-06-05T00:45:23.0478660Z             {
2026-06-05T00:45:23.0479886Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0481677Z               "line": 506
2026-06-05T00:45:23.0482836Z             },
2026-06-05T00:45:23.0483830Z             {
2026-06-05T00:45:23.0485005Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0486558Z               "line": 514
2026-06-05T00:45:23.0487704Z             },
2026-06-05T00:45:23.0488703Z             {
2026-06-05T00:45:23.0489917Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0491478Z               "line": 531
2026-06-05T00:45:23.0492634Z             },
2026-06-05T00:45:23.0493621Z             {
2026-06-05T00:45:23.0494797Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0496346Z               "line": 576
2026-06-05T00:45:23.0497495Z             },
2026-06-05T00:45:23.0498493Z             {
2026-06-05T00:45:23.0499767Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0501364Z               "line": 648
2026-06-05T00:45:23.0502514Z             },
2026-06-05T00:45:23.0503526Z             {
2026-06-05T00:45:23.0504756Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0506358Z               "line": 660
2026-06-05T00:45:23.0507499Z             },
2026-06-05T00:45:23.0508498Z             {
2026-06-05T00:45:23.0509774Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T00:45:23.0511406Z               "line": 112
2026-06-05T00:45:23.0512543Z             }
2026-06-05T00:45:23.0518793Z           ]
2026-06-05T00:45:23.0519962Z         }
2026-06-05T00:45:23.0520898Z       }
2026-06-05T00:45:23.0521812Z     },
2026-06-05T00:45:23.0522740Z     {
2026-06-05T00:45:23.0523726Z       "id": "REQ-DAEMON-3",
2026-06-05T00:45:23.0525398Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-05T00:45:23.0527318Z       "requiredStages": [
2026-06-05T00:45:23.0528554Z         "impl",
2026-06-05T00:45:23.0529626Z         "unit",
2026-06-05T00:45:23.0530627Z         "int"
2026-06-05T00:45:23.0531606Z       ],
2026-06-05T00:45:23.0532569Z       "stages": {
2026-06-05T00:45:23.0533595Z         "doc": {
2026-06-05T00:45:23.0534663Z           "complete": false,
2026-06-05T00:45:23.0535913Z           "evidence": []
2026-06-05T00:45:23.0537041Z         },
2026-06-05T00:45:23.0537999Z         "impl": {
2026-06-05T00:45:23.0539079Z           "complete": true,
2026-06-05T00:45:23.0540335Z           "evidence": [
2026-06-05T00:45:23.0541436Z             {
2026-06-05T00:45:23.0542662Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.0544262Z               "line": 14
2026-06-05T00:45:23.0545386Z             },
2026-06-05T00:45:23.0546378Z             {
2026-06-05T00:45:23.0547613Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-05T00:45:23.0549260Z               "line": 11
2026-06-05T00:45:23.0550381Z             },
2026-06-05T00:45:23.0551382Z             {
2026-06-05T00:45:23.0552538Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:23.0554076Z               "line": 236
2026-06-05T00:45:23.0555224Z             },
2026-06-05T00:45:23.0556213Z             {
2026-06-05T00:45:23.0557329Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0558841Z               "line": 812
2026-06-05T00:45:23.0560017Z             }
2026-06-05T00:45:23.0560990Z           ]
2026-06-05T00:45:23.0561942Z         },
2026-06-05T00:45:23.0562894Z         "int": {
2026-06-05T00:45:23.0563968Z           "complete": true,
2026-06-05T00:45:23.0565181Z           "evidence": [
2026-06-05T00:45:23.0566289Z             {
2026-06-05T00:45:23.0567509Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.0569116Z               "line": 43
2026-06-05T00:45:23.0570287Z             },
2026-06-05T00:45:23.0571278Z             {
2026-06-05T00:45:23.0572493Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.0574359Z               "line": 320
2026-06-05T00:45:23.0575543Z             }
2026-06-05T00:45:23.0576532Z           ]
2026-06-05T00:45:23.0577470Z         },
2026-06-05T00:45:23.0578595Z         "unit": {
2026-06-05T00:45:23.0579716Z           "complete": true,
2026-06-05T00:45:23.0580935Z           "evidence": [
2026-06-05T00:45:23.0582035Z             {
2026-06-05T00:45:23.0583243Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.0584856Z               "line": 387
2026-06-05T00:45:23.0585996Z             }
2026-06-05T00:45:23.0586967Z           ]
2026-06-05T00:45:23.0587911Z         }
2026-06-05T00:45:23.0588847Z       }
2026-06-05T00:45:23.0589803Z     },
2026-06-05T00:45:23.0590726Z     {
2026-06-05T00:45:23.0591707Z       "id": "REQ-DAEMON-4",
2026-06-05T00:45:23.0593135Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-05T00:45:23.0594774Z       "requiredStages": [
2026-06-05T00:45:23.0595952Z         "impl",
2026-06-05T00:45:23.0596970Z         "unit",
2026-06-05T00:45:23.0597981Z         "int"
2026-06-05T00:45:23.0598966Z       ],
2026-06-05T00:45:23.0599941Z       "stages": {
2026-06-05T00:45:23.0600968Z         "doc": {
2026-06-05T00:45:23.0602056Z           "complete": false,
2026-06-05T00:45:23.0603304Z           "evidence": []
2026-06-05T00:45:23.0604442Z         },
2026-06-05T00:45:23.0605394Z         "impl": {
2026-06-05T00:45:23.0606464Z           "complete": true,
2026-06-05T00:45:23.0607672Z           "evidence": [
2026-06-05T00:45:23.0608778Z             {
2026-06-05T00:45:23.0610197Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0611840Z               "line": 347
2026-06-05T00:45:23.0612988Z             },
2026-06-05T00:45:23.0619032Z             {
2026-06-05T00:45:23.0620427Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0622055Z               "line": 409
2026-06-05T00:45:23.0623200Z             },
2026-06-05T00:45:23.0624200Z             {
2026-06-05T00:45:23.0625466Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0627118Z               "line": 431
2026-06-05T00:45:23.0628261Z             }
2026-06-05T00:45:23.0629293Z           ]
2026-06-05T00:45:23.0630248Z         },
2026-06-05T00:45:23.0631189Z         "int": {
2026-06-05T00:45:23.0632255Z           "complete": true,
2026-06-05T00:45:23.0633474Z           "evidence": [
2026-06-05T00:45:23.0634569Z             {
2026-06-05T00:45:23.0635850Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T00:45:23.0637504Z               "line": 34
2026-06-05T00:45:23.0638621Z             }
2026-06-05T00:45:23.0639628Z           ]
2026-06-05T00:45:23.0640580Z         },
2026-06-05T00:45:23.0641529Z         "unit": {
2026-06-05T00:45:23.0642610Z           "complete": true,
2026-06-05T00:45:23.0643817Z           "evidence": [
2026-06-05T00:45:23.0644911Z             {
2026-06-05T00:45:23.0646131Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.0647734Z               "line": 353
2026-06-05T00:45:23.0648882Z             },
2026-06-05T00:45:23.0649897Z             {
2026-06-05T00:45:23.0651135Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0652779Z               "line": 725
2026-06-05T00:45:23.0653928Z             },
2026-06-05T00:45:23.0654916Z             {
2026-06-05T00:45:23.0656158Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0657804Z               "line": 776
2026-06-05T00:45:23.0658944Z             },
2026-06-05T00:45:23.0659981Z             {
2026-06-05T00:45:23.0661220Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0662855Z               "line": 800
2026-06-05T00:45:23.0664002Z             },
2026-06-05T00:45:23.0664992Z             {
2026-06-05T00:45:23.0666222Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.0667841Z               "line": 830
2026-06-05T00:45:23.0668981Z             }
2026-06-05T00:45:23.0670234Z           ]
2026-06-05T00:45:23.0671232Z         }
2026-06-05T00:45:23.0672158Z       }
2026-06-05T00:45:23.0673068Z     },
2026-06-05T00:45:23.0673989Z     {
2026-06-05T00:45:23.0675203Z       "id": "REQ-DOCS-1",
2026-06-05T00:45:23.0677111Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-05T00:45:23.0679854Z       "requiredStages": [],
2026-06-05T00:45:23.0681262Z       "stages": {
2026-06-05T00:45:23.0682348Z         "doc": {
2026-06-05T00:45:23.0683495Z           "complete": false,
2026-06-05T00:45:23.0684833Z           "evidence": []
2026-06-05T00:45:23.0686032Z         },
2026-06-05T00:45:23.0687040Z         "impl": {
2026-06-05T00:45:23.0688349Z           "complete": false,
2026-06-05T00:45:23.0689975Z           "evidence": []
2026-06-05T00:45:23.0691122Z         },
2026-06-05T00:45:23.0692078Z         "int": {
2026-06-05T00:45:23.0693153Z           "complete": false,
2026-06-05T00:45:23.0694395Z           "evidence": []
2026-06-05T00:45:23.0695530Z         },
2026-06-05T00:45:23.0696523Z         "unit": {
2026-06-05T00:45:23.0697606Z           "complete": false,
2026-06-05T00:45:23.0698843Z           "evidence": []
2026-06-05T00:45:23.0700037Z         }
2026-06-05T00:45:23.0700974Z       }
2026-06-05T00:45:23.0701897Z     },
2026-06-05T00:45:23.0702824Z     {
2026-06-05T00:45:23.0703797Z       "id": "REQ-DOCS-2",
2026-06-05T00:45:23.0705465Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-05T00:45:23.0707424Z       "requiredStages": [],
2026-06-05T00:45:23.0708645Z       "stages": {
2026-06-05T00:45:23.0709733Z         "doc": {
2026-06-05T00:45:23.0710793Z           "complete": false,
2026-06-05T00:45:23.0712032Z           "evidence": []
2026-06-05T00:45:23.0713186Z         },
2026-06-05T00:45:23.0714149Z         "impl": {
2026-06-05T00:45:23.0715226Z           "complete": false,
2026-06-05T00:45:23.0716476Z           "evidence": []
2026-06-05T00:45:23.0724447Z         },
2026-06-05T00:45:23.0725599Z         "int": {
2026-06-05T00:45:23.0726723Z           "complete": false,
2026-06-05T00:45:23.0727977Z           "evidence": []
2026-06-05T00:45:23.0729346Z         },
2026-06-05T00:45:23.0730314Z         "unit": {
2026-06-05T00:45:23.0731422Z           "complete": false,
2026-06-05T00:45:23.0732672Z           "evidence": []
2026-06-05T00:45:23.0733820Z         }
2026-06-05T00:45:23.0734746Z       }
2026-06-05T00:45:23.0735663Z     },
2026-06-05T00:45:23.0736576Z     {
2026-06-05T00:45:23.0737545Z       "id": "REQ-DOCS-3",
2026-06-05T00:45:23.0739647Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-05T00:45:23.0741460Z       "requiredStages": [],
2026-06-05T00:45:23.0742671Z       "stages": {
2026-06-05T00:45:23.0743699Z         "doc": {
2026-06-05T00:45:23.0744786Z           "complete": false,
2026-06-05T00:45:23.0746036Z           "evidence": []
2026-06-05T00:45:23.0747174Z         },
2026-06-05T00:45:23.0748143Z         "impl": {
2026-06-05T00:45:23.0749259Z           "complete": false,
2026-06-05T00:45:23.0750535Z           "evidence": []
2026-06-05T00:45:23.0751673Z         },
2026-06-05T00:45:23.0752634Z         "int": {
2026-06-05T00:45:23.0753710Z           "complete": false,
2026-06-05T00:45:23.0754995Z           "evidence": []
2026-06-05T00:45:23.0756125Z         },
2026-06-05T00:45:23.0757067Z         "unit": {
2026-06-05T00:45:23.0758149Z           "complete": false,
2026-06-05T00:45:23.0758614Z           "evidence": []
2026-06-05T00:45:23.0759021Z         }
2026-06-05T00:45:23.0759492Z       }
2026-06-05T00:45:23.0759900Z     },
2026-06-05T00:45:23.0760310Z     {
2026-06-05T00:45:23.0760766Z       "id": "REQ-DOCS-4",
2026-06-05T00:45:23.0761938Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-05T00:45:23.0762436Z       "requiredStages": [],
2026-06-05T00:45:23.0762858Z       "stages": {
2026-06-05T00:45:23.0763291Z         "doc": {
2026-06-05T00:45:23.0763759Z           "complete": false,
2026-06-05T00:45:23.0764222Z           "evidence": []
2026-06-05T00:45:23.0765066Z         },
2026-06-05T00:45:23.0765544Z         "impl": {
2026-06-05T00:45:23.0766027Z           "complete": false,
2026-06-05T00:45:23.0766475Z           "evidence": []
2026-06-05T00:45:23.0767058Z         },
2026-06-05T00:45:23.0767478Z         "int": {
2026-06-05T00:45:23.0767965Z           "complete": false,
2026-06-05T00:45:23.0768416Z           "evidence": []
2026-06-05T00:45:23.0768840Z         },
2026-06-05T00:45:23.0769324Z         "unit": {
2026-06-05T00:45:23.0769809Z           "complete": false,
2026-06-05T00:45:23.0770274Z           "evidence": []
2026-06-05T00:45:23.0770691Z         }
2026-06-05T00:45:23.0771110Z       }
2026-06-05T00:45:23.0771516Z     },
2026-06-05T00:45:23.0771929Z     {
2026-06-05T00:45:23.0772390Z       "id": "REQ-DOCS-5",
2026-06-05T00:45:23.0773587Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-05T00:45:23.0774084Z       "requiredStages": [],
2026-06-05T00:45:23.0774510Z       "stages": {
2026-06-05T00:45:23.0774955Z         "doc": {
2026-06-05T00:45:23.0775426Z           "complete": false,
2026-06-05T00:45:23.0775889Z           "evidence": []
2026-06-05T00:45:23.0776312Z         },
2026-06-05T00:45:23.0776752Z         "impl": {
2026-06-05T00:45:23.0777225Z           "complete": false,
2026-06-05T00:45:23.0777671Z           "evidence": []
2026-06-05T00:45:23.0778089Z         },
2026-06-05T00:45:23.0778503Z         "int": {
2026-06-05T00:45:23.0778978Z           "complete": false,
2026-06-05T00:45:23.0779518Z           "evidence": []
2026-06-05T00:45:23.0779933Z         },
2026-06-05T00:45:23.0780365Z         "unit": {
2026-06-05T00:45:23.0780832Z           "complete": false,
2026-06-05T00:45:23.0781292Z           "evidence": []
2026-06-05T00:45:23.0781694Z         }
2026-06-05T00:45:23.0782107Z       }
2026-06-05T00:45:23.0782505Z     },
2026-06-05T00:45:23.0782918Z     {
2026-06-05T00:45:23.0783380Z       "id": "REQ-EP-1",
2026-06-05T00:45:23.0784114Z       "title": "Day-one endpoint types; open type system",
2026-06-05T00:45:23.0784605Z       "requiredStages": [
2026-06-05T00:45:23.0785027Z         "impl",
2026-06-05T00:45:23.0785455Z         "unit"
2026-06-05T00:45:23.0785859Z       ],
2026-06-05T00:45:23.0786312Z       "stages": {
2026-06-05T00:45:23.0786735Z         "doc": {
2026-06-05T00:45:23.0787205Z           "complete": false,
2026-06-05T00:45:23.0787672Z           "evidence": []
2026-06-05T00:45:23.0788079Z         },
2026-06-05T00:45:23.0788514Z         "impl": {
2026-06-05T00:45:23.0788974Z           "complete": true,
2026-06-05T00:45:23.0789472Z           "evidence": [
2026-06-05T00:45:23.0789894Z             {
2026-06-05T00:45:23.0790557Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0791011Z               "line": 77
2026-06-05T00:45:23.0791426Z             },
2026-06-05T00:45:23.0791846Z             {
2026-06-05T00:45:23.0792504Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0792962Z               "line": 94
2026-06-05T00:45:23.0793385Z             }
2026-06-05T00:45:23.0793800Z           ]
2026-06-05T00:45:23.0794219Z         },
2026-06-05T00:45:23.0794641Z         "int": {
2026-06-05T00:45:23.0795127Z           "complete": false,
2026-06-05T00:45:23.0795591Z           "evidence": []
2026-06-05T00:45:23.0796009Z         },
2026-06-05T00:45:23.0796441Z         "unit": {
2026-06-05T00:45:23.0796905Z           "complete": true,
2026-06-05T00:45:23.0797355Z           "evidence": [
2026-06-05T00:45:23.0797763Z             {
2026-06-05T00:45:23.0798431Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0798873Z               "line": 161
2026-06-05T00:45:23.0799341Z             },
2026-06-05T00:45:23.0799761Z             {
2026-06-05T00:45:23.0800427Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0800883Z               "line": 178
2026-06-05T00:45:23.0801296Z             }
2026-06-05T00:45:23.0801716Z           ]
2026-06-05T00:45:23.0802120Z         }
2026-06-05T00:45:23.0802530Z       }
2026-06-05T00:45:23.0803108Z     },
2026-06-05T00:45:23.0803538Z     {
2026-06-05T00:45:23.0804001Z       "id": "REQ-EP-2",
2026-06-05T00:45:23.0804966Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-05T00:45:23.0805593Z       "requiredStages": [
2026-06-05T00:45:23.0806018Z         "impl",
2026-06-05T00:45:23.0806437Z         "unit"
2026-06-05T00:45:23.0806850Z       ],
2026-06-05T00:45:23.0807278Z       "stages": {
2026-06-05T00:45:23.0807708Z         "doc": {
2026-06-05T00:45:23.0808176Z           "complete": false,
2026-06-05T00:45:23.0814267Z           "evidence": []
2026-06-05T00:45:23.0814758Z         },
2026-06-05T00:45:23.0815208Z         "impl": {
2026-06-05T00:45:23.0815688Z           "complete": true,
2026-06-05T00:45:23.0816135Z           "evidence": [
2026-06-05T00:45:23.0816554Z             {
2026-06-05T00:45:23.0817241Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0817694Z               "line": 114
2026-06-05T00:45:23.0818142Z             },
2026-06-05T00:45:23.0818569Z             {
2026-06-05T00:45:23.0819325Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0819781Z               "line": 131
2026-06-05T00:45:23.0820225Z             },
2026-06-05T00:45:23.0820634Z             {
2026-06-05T00:45:23.0821306Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0821765Z               "line": 138
2026-06-05T00:45:23.0822181Z             }
2026-06-05T00:45:23.0822598Z           ]
2026-06-05T00:45:23.0823022Z         },
2026-06-05T00:45:23.0823453Z         "int": {
2026-06-05T00:45:23.0823924Z           "complete": false,
2026-06-05T00:45:23.0824381Z           "evidence": []
2026-06-05T00:45:23.0824789Z         },
2026-06-05T00:45:23.0825218Z         "unit": {
2026-06-05T00:45:23.0825690Z           "complete": true,
2026-06-05T00:45:23.0826134Z           "evidence": [
2026-06-05T00:45:23.0826556Z             {
2026-06-05T00:45:23.0827229Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0827690Z               "line": 193
2026-06-05T00:45:23.0828110Z             },
2026-06-05T00:45:23.0828518Z             {
2026-06-05T00:45:23.0829234Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0829686Z               "line": 211
2026-06-05T00:45:23.0830107Z             },
2026-06-05T00:45:23.0830519Z             {
2026-06-05T00:45:23.0831188Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T00:45:23.0831638Z               "line": 224
2026-06-05T00:45:23.0832043Z             }
2026-06-05T00:45:23.0832460Z           ]
2026-06-05T00:45:23.0832864Z         }
2026-06-05T00:45:23.0833275Z       }
2026-06-05T00:45:23.0833675Z     },
2026-06-05T00:45:23.0834084Z     {
2026-06-05T00:45:23.0834541Z       "id": "REQ-EP-3",
2026-06-05T00:45:23.0835653Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-05T00:45:23.0836135Z       "requiredStages": [
2026-06-05T00:45:23.0836551Z         "impl",
2026-06-05T00:45:23.0836986Z         "unit"
2026-06-05T00:45:23.0837396Z       ],
2026-06-05T00:45:23.0837833Z       "stages": {
2026-06-05T00:45:23.0838258Z         "doc": {
2026-06-05T00:45:23.0838745Z           "complete": false,
2026-06-05T00:45:23.0839240Z           "evidence": []
2026-06-05T00:45:23.0839652Z         },
2026-06-05T00:45:23.0840083Z         "impl": {
2026-06-05T00:45:23.0840541Z           "complete": true,
2026-06-05T00:45:23.0840998Z           "evidence": [
2026-06-05T00:45:23.0841415Z             {
2026-06-05T00:45:23.0842084Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0842533Z               "line": 31
2026-06-05T00:45:23.0842947Z             },
2026-06-05T00:45:23.0843360Z             {
2026-06-05T00:45:23.0844019Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0844462Z               "line": 49
2026-06-05T00:45:23.0844882Z             }
2026-06-05T00:45:23.0845288Z           ]
2026-06-05T00:45:23.0845711Z         },
2026-06-05T00:45:23.0846371Z         "int": {
2026-06-05T00:45:23.0846882Z           "complete": false,
2026-06-05T00:45:23.0847335Z           "evidence": []
2026-06-05T00:45:23.0847896Z         },
2026-06-05T00:45:23.0848316Z         "unit": {
2026-06-05T00:45:23.0848791Z           "complete": true,
2026-06-05T00:45:23.0849298Z           "evidence": [
2026-06-05T00:45:23.0849711Z             {
2026-06-05T00:45:23.0850376Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0850827Z               "line": 156
2026-06-05T00:45:23.0851248Z             },
2026-06-05T00:45:23.0851668Z             {
2026-06-05T00:45:23.0852323Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0852777Z               "line": 164
2026-06-05T00:45:23.0853187Z             },
2026-06-05T00:45:23.0853608Z             {
2026-06-05T00:45:23.0854269Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0854721Z               "line": 177
2026-06-05T00:45:23.0855142Z             },
2026-06-05T00:45:23.0855563Z             {
2026-06-05T00:45:23.0856228Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0856666Z               "line": 197
2026-06-05T00:45:23.0857103Z             },
2026-06-05T00:45:23.0857513Z             {
2026-06-05T00:45:23.0858172Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0858636Z               "line": 213
2026-06-05T00:45:23.0859051Z             },
2026-06-05T00:45:23.0859511Z             {
2026-06-05T00:45:23.0860171Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T00:45:23.0860630Z               "line": 227
2026-06-05T00:45:23.0861038Z             }
2026-06-05T00:45:23.0861453Z           ]
2026-06-05T00:45:23.0861865Z         }
2026-06-05T00:45:23.0862267Z       }
2026-06-05T00:45:23.0862670Z     },
2026-06-05T00:45:23.0863065Z     {
2026-06-05T00:45:23.0863521Z       "id": "REQ-EP-4",
2026-06-05T00:45:23.0864348Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-05T00:45:23.0864840Z       "requiredStages": [
2026-06-05T00:45:23.0865272Z         "impl",
2026-06-05T00:45:23.0865688Z         "unit"
2026-06-05T00:45:23.0866101Z       ],
2026-06-05T00:45:23.0866544Z       "stages": {
2026-06-05T00:45:23.0866967Z         "doc": {
2026-06-05T00:45:23.0867432Z           "complete": false,
2026-06-05T00:45:23.0867891Z           "evidence": []
2026-06-05T00:45:23.0868304Z         },
2026-06-05T00:45:23.0868730Z         "impl": {
2026-06-05T00:45:23.0869238Z           "complete": true,
2026-06-05T00:45:23.0869685Z           "evidence": [
2026-06-05T00:45:23.0870108Z             {
2026-06-05T00:45:23.0870740Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.0871201Z               "line": 419
2026-06-05T00:45:23.0871633Z             },
2026-06-05T00:45:23.0872041Z             {
2026-06-05T00:45:23.0872672Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.0873121Z               "line": 631
2026-06-05T00:45:23.0873551Z             },
2026-06-05T00:45:23.0873972Z             {
2026-06-05T00:45:23.0874622Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.0875077Z               "line": 705
2026-06-05T00:45:23.0875502Z             },
2026-06-05T00:45:23.0875919Z             {
2026-06-05T00:45:23.0876520Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0876970Z               "line": 83
2026-06-05T00:45:23.0877386Z             },
2026-06-05T00:45:23.0877803Z             {
2026-06-05T00:45:23.0878412Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0878859Z               "line": 407
2026-06-05T00:45:23.0879315Z             },
2026-06-05T00:45:23.0879727Z             {
2026-06-05T00:45:23.0880342Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0880793Z               "line": 478
2026-06-05T00:45:23.0881214Z             },
2026-06-05T00:45:23.0881626Z             {
2026-06-05T00:45:23.0882427Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0882889Z               "line": 181
2026-06-05T00:45:23.0883306Z             },
2026-06-05T00:45:23.0883727Z             {
2026-06-05T00:45:23.0884584Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0885054Z               "line": 306
2026-06-05T00:45:23.0885474Z             },
2026-06-05T00:45:23.0885883Z             {
2026-06-05T00:45:23.0886541Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T00:45:23.0886979Z               "line": 613
2026-06-05T00:45:23.0887399Z             }
2026-06-05T00:45:23.0887811Z           ]
2026-06-05T00:45:23.0888235Z         },
2026-06-05T00:45:23.0888664Z         "int": {
2026-06-05T00:45:23.0889134Z           "complete": false,
2026-06-05T00:45:23.0889639Z           "evidence": []
2026-06-05T00:45:23.0890049Z         },
2026-06-05T00:45:23.0890481Z         "unit": {
2026-06-05T00:45:23.0890939Z           "complete": true,
2026-06-05T00:45:23.0891393Z           "evidence": [
2026-06-05T00:45:23.0896882Z             {
2026-06-05T00:45:23.0897608Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T00:45:23.0898071Z               "line": 551
2026-06-05T00:45:23.0898499Z             },
2026-06-05T00:45:23.0898920Z             {
2026-06-05T00:45:23.0899707Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-05T00:45:23.0900165Z               "line": 75
2026-06-05T00:45:23.0900586Z             },
2026-06-05T00:45:23.0900993Z             {
2026-06-05T00:45:23.0901686Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-05T00:45:23.0902133Z               "line": 131
2026-06-05T00:45:23.0902561Z             }
2026-06-05T00:45:23.0902975Z           ]
2026-06-05T00:45:23.0903391Z         }
2026-06-05T00:45:23.0903999Z       }
2026-06-05T00:45:23.0904483Z     },
2026-06-05T00:45:23.0905110Z     {
2026-06-05T00:45:23.0905584Z       "id": "REQ-EP-5",
2026-06-05T00:45:23.0910232Z       "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-05T00:45:23.0910756Z       "requiredStages": [
2026-06-05T00:45:23.0911179Z         "impl",
2026-06-05T00:45:23.0911602Z         "unit"
2026-06-05T00:45:23.0912011Z       ],
2026-06-05T00:45:23.0912451Z       "stages": {
2026-06-05T00:45:23.0912867Z         "doc": {
2026-06-05T00:45:23.0913348Z           "complete": false,
2026-06-05T00:45:23.0913804Z           "evidence": []
2026-06-05T00:45:23.0914212Z         },
2026-06-05T00:45:23.0914641Z         "impl": {
2026-06-05T00:45:23.0915102Z           "complete": true,
2026-06-05T00:45:23.0915550Z           "evidence": [
2026-06-05T00:45:23.0915955Z             {
2026-06-05T00:45:23.0916634Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T00:45:23.0917082Z               "line": 18
2026-06-05T00:45:23.0917496Z             },
2026-06-05T00:45:23.0917924Z             {
2026-06-05T00:45:23.0918594Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T00:45:23.0919041Z               "line": 58
2026-06-05T00:45:23.0919505Z             },
2026-06-05T00:45:23.0919925Z             {
2026-06-05T00:45:23.0920602Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T00:45:23.0921058Z               "line": 101
2026-06-05T00:45:23.0921475Z             },
2026-06-05T00:45:23.0921885Z             {
2026-06-05T00:45:23.0922553Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0922989Z               "line": 22
2026-06-05T00:45:23.0923408Z             },
2026-06-05T00:45:23.0923827Z             {
2026-06-05T00:45:23.0924495Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0924951Z               "line": 129
2026-06-05T00:45:23.0925360Z             },
2026-06-05T00:45:23.0925784Z             {
2026-06-05T00:45:23.0926445Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0927153Z               "line": 156
2026-06-05T00:45:23.0927596Z             },
2026-06-05T00:45:23.0928005Z             {
2026-06-05T00:45:23.0928678Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0929346Z               "line": 178
2026-06-05T00:45:23.0929767Z             },
2026-06-05T00:45:23.0930183Z             {
2026-06-05T00:45:23.0930849Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0931310Z               "line": 203
2026-06-05T00:45:23.0931721Z             },
2026-06-05T00:45:23.0932136Z             {
2026-06-05T00:45:23.0932787Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0933245Z               "line": 226
2026-06-05T00:45:23.0933667Z             },
2026-06-05T00:45:23.0934071Z             {
2026-06-05T00:45:23.0934740Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0935186Z               "line": 246
2026-06-05T00:45:23.0935609Z             },
2026-06-05T00:45:23.0936036Z             {
2026-06-05T00:45:23.0936701Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.0937153Z               "line": 81
2026-06-05T00:45:23.0937576Z             },
2026-06-05T00:45:23.0938059Z             {
2026-06-05T00:45:23.0938605Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0939060Z               "line": 1634
2026-06-05T00:45:23.0939512Z             },
2026-06-05T00:45:23.0939932Z             {
2026-06-05T00:45:23.0940485Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0940930Z               "line": 1751
2026-06-05T00:45:23.0941345Z             },
2026-06-05T00:45:23.0941754Z             {
2026-06-05T00:45:23.0942303Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0942745Z               "line": 1881
2026-06-05T00:45:23.0943168Z             },
2026-06-05T00:45:23.0943580Z             {
2026-06-05T00:45:23.0944124Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0944587Z               "line": 2170
2026-06-05T00:45:23.0945001Z             }
2026-06-05T00:45:23.0945411Z           ]
2026-06-05T00:45:23.0945933Z         },
2026-06-05T00:45:23.0946382Z         "int": {
2026-06-05T00:45:23.0946853Z           "complete": true,
2026-06-05T00:45:23.0947298Z           "evidence": [
2026-06-05T00:45:23.0947711Z             {
2026-06-05T00:45:23.0948311Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T00:45:23.0948752Z               "line": 15
2026-06-05T00:45:23.0949199Z             }
2026-06-05T00:45:23.0949620Z           ]
2026-06-05T00:45:23.0950028Z         },
2026-06-05T00:45:23.0950441Z         "unit": {
2026-06-05T00:45:23.0950902Z           "complete": true,
2026-06-05T00:45:23.0951339Z           "evidence": [
2026-06-05T00:45:23.0951752Z             {
2026-06-05T00:45:23.0952418Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T00:45:23.0952875Z               "line": 149
2026-06-05T00:45:23.0953298Z             },
2026-06-05T00:45:23.0953717Z             {
2026-06-05T00:45:23.0954395Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T00:45:23.0954838Z               "line": 206
2026-06-05T00:45:23.0955268Z             },
2026-06-05T00:45:23.0955675Z             {
2026-06-05T00:45:23.0956333Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0956783Z               "line": 262
2026-06-05T00:45:23.0957189Z             },
2026-06-05T00:45:23.0957602Z             {
2026-06-05T00:45:23.0958258Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.0958705Z               "line": 285
2026-06-05T00:45:23.0959112Z             },
2026-06-05T00:45:23.0959576Z             {
2026-06-05T00:45:23.0960221Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.0960665Z               "line": 405
2026-06-05T00:45:23.0961080Z             },
2026-06-05T00:45:23.0961488Z             {
2026-06-05T00:45:23.0962041Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0962632Z               "line": 2586
2026-06-05T00:45:23.0963070Z             },
2026-06-05T00:45:23.0963485Z             {
2026-06-05T00:45:23.0964028Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0964627Z               "line": 2644
2026-06-05T00:45:23.0965035Z             },
2026-06-05T00:45:23.0965454Z             {
2026-06-05T00:45:23.0966003Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0966470Z               "line": 3001
2026-06-05T00:45:23.0966884Z             },
2026-06-05T00:45:23.0967292Z             {
2026-06-05T00:45:23.0967843Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.0968282Z               "line": 3056
2026-06-05T00:45:23.0968694Z             }
2026-06-05T00:45:23.0969109Z           ]
2026-06-05T00:45:23.0969551Z         }
2026-06-05T00:45:23.0969964Z       }
2026-06-05T00:45:23.0970367Z     },
2026-06-05T00:45:23.0970776Z     {
2026-06-05T00:45:23.0971239Z       "id": "REQ-FRONT-1",
2026-06-05T00:45:23.0972275Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-05T00:45:23.0972761Z       "requiredStages": [],
2026-06-05T00:45:23.0973183Z       "stages": {
2026-06-05T00:45:23.0973616Z         "doc": {
2026-06-05T00:45:23.0974078Z           "complete": false,
2026-06-05T00:45:23.0974532Z           "evidence": []
2026-06-05T00:45:23.0974936Z         },
2026-06-05T00:45:23.0975369Z         "impl": {
2026-06-05T00:45:23.0975835Z           "complete": false,
2026-06-05T00:45:23.0976315Z           "evidence": []
2026-06-05T00:45:23.0976725Z         },
2026-06-05T00:45:23.0977145Z         "int": {
2026-06-05T00:45:23.0977608Z           "complete": false,
2026-06-05T00:45:23.0978049Z           "evidence": []
2026-06-05T00:45:23.0978466Z         },
2026-06-05T00:45:23.0984102Z         "unit": {
2026-06-05T00:45:23.0984724Z           "complete": false,
2026-06-05T00:45:23.0985180Z           "evidence": []
2026-06-05T00:45:23.0985585Z         }
2026-06-05T00:45:23.0986002Z       }
2026-06-05T00:45:23.0986431Z     },
2026-06-05T00:45:23.0986842Z     {
2026-06-05T00:45:23.0987453Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-05T00:45:23.0988468Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-05T00:45:23.0988974Z       "requiredStages": [
2026-06-05T00:45:23.0989491Z         "impl",
2026-06-05T00:45:23.0989918Z         "unit"
2026-06-05T00:45:23.0990319Z       ],
2026-06-05T00:45:23.0990754Z       "stages": {
2026-06-05T00:45:23.0991169Z         "doc": {
2026-06-05T00:45:23.0991651Z           "complete": false,
2026-06-05T00:45:23.0992102Z           "evidence": []
2026-06-05T00:45:23.0992502Z         },
2026-06-05T00:45:23.0992926Z         "impl": {
2026-06-05T00:45:23.0993383Z           "complete": true,
2026-06-05T00:45:23.0993839Z           "evidence": [
2026-06-05T00:45:23.0994241Z             {
2026-06-05T00:45:23.0994894Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.0995342Z               "line": 131
2026-06-05T00:45:23.0995763Z             },
2026-06-05T00:45:23.0996177Z             {
2026-06-05T00:45:23.0996784Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:23.0997234Z               "line": 18
2026-06-05T00:45:23.0997664Z             },
2026-06-05T00:45:23.0998086Z             {
2026-06-05T00:45:23.0998688Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:23.0999120Z               "line": 94
2026-06-05T00:45:23.0999587Z             }
2026-06-05T00:45:23.0999998Z           ]
2026-06-05T00:45:23.1000414Z         },
2026-06-05T00:45:23.1000829Z         "int": {
2026-06-05T00:45:23.1001303Z           "complete": false,
2026-06-05T00:45:23.1001750Z           "evidence": []
2026-06-05T00:45:23.1002153Z         },
2026-06-05T00:45:23.1002581Z         "unit": {
2026-06-05T00:45:23.1003036Z           "complete": true,
2026-06-05T00:45:23.1003483Z           "evidence": [
2026-06-05T00:45:23.1003885Z             {
2026-06-05T00:45:23.1004537Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.1005215Z               "line": 461
2026-06-05T00:45:23.1005653Z             },
2026-06-05T00:45:23.1006069Z             {
2026-06-05T00:45:23.1006828Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:23.1007283Z               "line": 152
2026-06-05T00:45:23.1007704Z             },
2026-06-05T00:45:23.1008112Z             {
2026-06-05T00:45:23.1008719Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:23.1009218Z               "line": 188
2026-06-05T00:45:23.1009641Z             }
2026-06-05T00:45:23.1010066Z           ]
2026-06-05T00:45:23.1010480Z         }
2026-06-05T00:45:23.1010891Z       }
2026-06-05T00:45:23.1011290Z     },
2026-06-05T00:45:23.1011698Z     {
2026-06-05T00:45:23.1012339Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-05T00:45:23.1016187Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-05T00:45:23.1016674Z       "requiredStages": [
2026-06-05T00:45:23.1017097Z         "impl",
2026-06-05T00:45:23.1017537Z         "unit"
2026-06-05T00:45:23.1017940Z       ],
2026-06-05T00:45:23.1018376Z       "stages": {
2026-06-05T00:45:23.1018788Z         "doc": {
2026-06-05T00:45:23.1019310Z           "complete": false,
2026-06-05T00:45:23.1019756Z           "evidence": []
2026-06-05T00:45:23.1020176Z         },
2026-06-05T00:45:23.1020600Z         "impl": {
2026-06-05T00:45:23.1021054Z           "complete": true,
2026-06-05T00:45:23.1021502Z           "evidence": [
2026-06-05T00:45:23.1021905Z             {
2026-06-05T00:45:23.1022583Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T00:45:23.1023017Z               "line": 22
2026-06-05T00:45:23.1023434Z             },
2026-06-05T00:45:23.1023845Z             {
2026-06-05T00:45:23.1024457Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.1024923Z               "line": 417
2026-06-05T00:45:23.1025335Z             },
2026-06-05T00:45:23.1025747Z             {
2026-06-05T00:45:23.1026394Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T00:45:23.1026859Z               "line": 17
2026-06-05T00:45:23.1027277Z             },
2026-06-05T00:45:23.1027691Z             {
2026-06-05T00:45:23.1028345Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T00:45:23.1028788Z               "line": 125
2026-06-05T00:45:23.1029245Z             },
2026-06-05T00:45:23.1029662Z             {
2026-06-05T00:45:23.1030375Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.1030821Z               "line": 178
2026-06-05T00:45:23.1031226Z             },
2026-06-05T00:45:23.1031637Z             {
2026-06-05T00:45:23.1032331Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.1032783Z               "line": 206
2026-06-05T00:45:23.1033201Z             },
2026-06-05T00:45:23.1033613Z             {
2026-06-05T00:45:23.1034317Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.1034757Z               "line": 232
2026-06-05T00:45:23.1035188Z             },
2026-06-05T00:45:23.1035597Z             {
2026-06-05T00:45:23.1036260Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.1036704Z               "line": 122
2026-06-05T00:45:23.1037106Z             },
2026-06-05T00:45:23.1037516Z             {
2026-06-05T00:45:23.1038171Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.1038622Z               "line": 222
2026-06-05T00:45:23.1039038Z             }
2026-06-05T00:45:23.1039501Z           ]
2026-06-05T00:45:23.1039927Z         },
2026-06-05T00:45:23.1040347Z         "int": {
2026-06-05T00:45:23.1040816Z           "complete": false,
2026-06-05T00:45:23.1041260Z           "evidence": []
2026-06-05T00:45:23.1041680Z         },
2026-06-05T00:45:23.1042095Z         "unit": {
2026-06-05T00:45:23.1042766Z           "complete": true,
2026-06-05T00:45:23.1043246Z           "evidence": [
2026-06-05T00:45:23.1043661Z             {
2026-06-05T00:45:23.1044335Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T00:45:23.1044919Z               "line": 53
2026-06-05T00:45:23.1045332Z             },
2026-06-05T00:45:23.1045736Z             {
2026-06-05T00:45:23.1046409Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T00:45:23.1046851Z               "line": 60
2026-06-05T00:45:23.1047261Z             },
2026-06-05T00:45:23.1047675Z             {
2026-06-05T00:45:23.1048333Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T00:45:23.1048776Z               "line": 72
2026-06-05T00:45:23.1049234Z             },
2026-06-05T00:45:23.1049647Z             {
2026-06-05T00:45:23.1050302Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.1050747Z               "line": 298
2026-06-05T00:45:23.1051169Z             },
2026-06-05T00:45:23.1051579Z             {
2026-06-05T00:45:23.1052259Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T00:45:23.1052696Z               "line": 247
2026-06-05T00:45:23.1053128Z             },
2026-06-05T00:45:23.1053547Z             {
2026-06-05T00:45:23.1054194Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T00:45:23.1054641Z               "line": 282
2026-06-05T00:45:23.1055046Z             },
2026-06-05T00:45:23.1055461Z             {
2026-06-05T00:45:23.1056098Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T00:45:23.1056546Z               "line": 313
2026-06-05T00:45:23.1056966Z             },
2026-06-05T00:45:23.1057379Z             {
2026-06-05T00:45:23.1058088Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.1058530Z               "line": 613
2026-06-05T00:45:23.1058940Z             },
2026-06-05T00:45:23.1059380Z             {
2026-06-05T00:45:23.1060048Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.1060515Z               "line": 383
2026-06-05T00:45:23.1060931Z             },
2026-06-05T00:45:23.1061348Z             {
2026-06-05T00:45:23.1062001Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.1062479Z               "line": 420
2026-06-05T00:45:23.1063094Z             }
2026-06-05T00:45:23.1063857Z           ]
2026-06-05T00:45:23.1064297Z         }
2026-06-05T00:45:23.1064856Z       }
2026-06-05T00:45:23.1065268Z     },
2026-06-05T00:45:23.1070840Z     {
2026-06-05T00:45:23.1071514Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-05T00:45:23.1072828Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-05T00:45:23.1073316Z       "requiredStages": [
2026-06-05T00:45:23.1073750Z         "impl",
2026-06-05T00:45:23.1074160Z         "unit"
2026-06-05T00:45:23.1074574Z       ],
2026-06-05T00:45:23.1075002Z       "stages": {
2026-06-05T00:45:23.1075430Z         "doc": {
2026-06-05T00:45:23.1075899Z           "complete": false,
2026-06-05T00:45:23.1076396Z           "evidence": []
2026-06-05T00:45:23.1076822Z         },
2026-06-05T00:45:23.1077243Z         "impl": {
2026-06-05T00:45:23.1077727Z           "complete": true,
2026-06-05T00:45:23.1078169Z           "evidence": [
2026-06-05T00:45:23.1078594Z             {
2026-06-05T00:45:23.1079267Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T00:45:23.1079721Z               "line": 164
2026-06-05T00:45:23.1080135Z             }
2026-06-05T00:45:23.1080547Z           ]
2026-06-05T00:45:23.1080966Z         },
2026-06-05T00:45:23.1081385Z         "int": {
2026-06-05T00:45:23.1081855Z           "complete": true,
2026-06-05T00:45:23.1082292Z           "evidence": [
2026-06-05T00:45:23.1082711Z             {
2026-06-05T00:45:23.1083320Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-05T00:45:23.1083753Z               "line": 44
2026-06-05T00:45:23.1084180Z             },
2026-06-05T00:45:23.1084589Z             {
2026-06-05T00:45:23.1085449Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-05T00:45:23.1085924Z               "line": 66
2026-06-05T00:45:23.1086331Z             }
2026-06-05T00:45:23.1086748Z           ]
2026-06-05T00:45:23.1087311Z         },
2026-06-05T00:45:23.1087752Z         "unit": {
2026-06-05T00:45:23.1088220Z           "complete": true,
2026-06-05T00:45:23.1088667Z           "evidence": [
2026-06-05T00:45:23.1089072Z             {
2026-06-05T00:45:23.1089741Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T00:45:23.1090190Z               "line": 181
2026-06-05T00:45:23.1090597Z             },
2026-06-05T00:45:23.1091013Z             {
2026-06-05T00:45:23.1091624Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T00:45:23.1092074Z               "line": 233
2026-06-05T00:45:23.1092494Z             },
2026-06-05T00:45:23.1092903Z             {
2026-06-05T00:45:23.1093521Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T00:45:23.1093961Z               "line": 261
2026-06-05T00:45:23.1094396Z             }
2026-06-05T00:45:23.1094805Z           ]
2026-06-05T00:45:23.1095219Z         }
2026-06-05T00:45:23.1095631Z       }
2026-06-05T00:45:23.1096049Z     },
2026-06-05T00:45:23.1096456Z     {
2026-06-05T00:45:23.1097077Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-05T00:45:23.1099916Z       "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-05T00:45:23.1100394Z       "requiredStages": [
2026-06-05T00:45:23.1100825Z         "impl",
2026-06-05T00:45:23.1101247Z         "unit",
2026-06-05T00:45:23.1101659Z         "int"
2026-06-05T00:45:23.1102069Z       ],
2026-06-05T00:45:23.1102496Z       "stages": {
2026-06-05T00:45:23.1102919Z         "doc": {
2026-06-05T00:45:23.1103386Z           "complete": false,
2026-06-05T00:45:23.1103840Z           "evidence": []
2026-06-05T00:45:23.1104253Z         },
2026-06-05T00:45:23.1104675Z         "impl": {
2026-06-05T00:45:23.1105147Z           "complete": true,
2026-06-05T00:45:23.1105596Z           "evidence": [
2026-06-05T00:45:23.1106014Z             {
2026-06-05T00:45:23.1106692Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1107145Z               "line": 150
2026-06-05T00:45:23.1107568Z             },
2026-06-05T00:45:23.1107973Z             {
2026-06-05T00:45:23.1108656Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1109100Z               "line": 169
2026-06-05T00:45:23.1109561Z             },
2026-06-05T00:45:23.1109969Z             {
2026-06-05T00:45:23.1110587Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.1111036Z               "line": 79
2026-06-05T00:45:23.1111440Z             },
2026-06-05T00:45:23.1111856Z             {
2026-06-05T00:45:23.1112430Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1112877Z               "line": 51
2026-06-05T00:45:23.1113286Z             },
2026-06-05T00:45:23.1113707Z             {
2026-06-05T00:45:23.1114316Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1114777Z               "line": 154
2026-06-05T00:45:23.1115222Z             },
2026-06-05T00:45:23.1115625Z             {
2026-06-05T00:45:23.1116291Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1116727Z               "line": 27
2026-06-05T00:45:23.1117147Z             },
2026-06-05T00:45:23.1117561Z             {
2026-06-05T00:45:23.1118210Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1118657Z               "line": 79
2026-06-05T00:45:23.1119066Z             },
2026-06-05T00:45:23.1119520Z             {
2026-06-05T00:45:23.1120186Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1120643Z               "line": 102
2026-06-05T00:45:23.1121059Z             },
2026-06-05T00:45:23.1121465Z             {
2026-06-05T00:45:23.1122111Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.1122715Z               "line": 108
2026-06-05T00:45:23.1123155Z             }
2026-06-05T00:45:23.1123573Z           ]
2026-06-05T00:45:23.1123982Z         },
2026-06-05T00:45:23.1124549Z         "int": {
2026-06-05T00:45:23.1125018Z           "complete": true,
2026-06-05T00:45:23.1125468Z           "evidence": [
2026-06-05T00:45:23.1125878Z             {
2026-06-05T00:45:23.1126598Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T00:45:23.1127045Z               "line": 35
2026-06-05T00:45:23.1127453Z             }
2026-06-05T00:45:23.1127872Z           ]
2026-06-05T00:45:23.1128276Z         },
2026-06-05T00:45:23.1128710Z         "unit": {
2026-06-05T00:45:23.1129215Z           "complete": true,
2026-06-05T00:45:23.1129676Z           "evidence": [
2026-06-05T00:45:23.1130092Z             {
2026-06-05T00:45:23.1130757Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1131211Z               "line": 552
2026-06-05T00:45:23.1131637Z             },
2026-06-05T00:45:23.1132054Z             {
2026-06-05T00:45:23.1132654Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1133111Z               "line": 330
2026-06-05T00:45:23.1133541Z             },
2026-06-05T00:45:23.1133947Z             {
2026-06-05T00:45:23.1134598Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1135038Z               "line": 124
2026-06-05T00:45:23.1135452Z             },
2026-06-05T00:45:23.1135857Z             {
2026-06-05T00:45:23.1136514Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1136972Z               "line": 136
2026-06-05T00:45:23.1137380Z             },
2026-06-05T00:45:23.1137799Z             {
2026-06-05T00:45:23.1138442Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1138895Z               "line": 146
2026-06-05T00:45:23.1139337Z             },
2026-06-05T00:45:23.1139760Z             {
2026-06-05T00:45:23.1140426Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1140870Z               "line": 159
2026-06-05T00:45:23.1141288Z             },
2026-06-05T00:45:23.1141696Z             {
2026-06-05T00:45:23.1142368Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T00:45:23.1142812Z               "line": 171
2026-06-05T00:45:23.1143233Z             },
2026-06-05T00:45:23.1143664Z             {
2026-06-05T00:45:23.1144679Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.1145349Z               "line": 207
2026-06-05T00:45:23.1145842Z             }
2026-06-05T00:45:23.1146351Z           ]
2026-06-05T00:45:23.1146806Z         }
2026-06-05T00:45:23.1147375Z       }
2026-06-05T00:45:23.1147797Z     },
2026-06-05T00:45:23.1148192Z     {
2026-06-05T00:45:23.1148870Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-05T00:45:23.1153444Z       "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-05T00:45:23.1153952Z       "requiredStages": [
2026-06-05T00:45:23.1154398Z         "impl",
2026-06-05T00:45:23.1154807Z         "unit"
2026-06-05T00:45:23.1155220Z       ],
2026-06-05T00:45:23.1161514Z       "stages": {
2026-06-05T00:45:23.1162095Z         "doc": {
2026-06-05T00:45:23.1162586Z           "complete": false,
2026-06-05T00:45:23.1163050Z           "evidence": []
2026-06-05T00:45:23.1163479Z         },
2026-06-05T00:45:23.1163910Z         "impl": {
2026-06-05T00:45:23.1164385Z           "complete": true,
2026-06-05T00:45:23.1164832Z           "evidence": [
2026-06-05T00:45:23.1165255Z             {
2026-06-05T00:45:23.1165917Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.1166370Z               "line": 222
2026-06-05T00:45:23.1166795Z             },
2026-06-05T00:45:23.1167199Z             {
2026-06-05T00:45:23.1168181Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.1168653Z               "line": 382
2026-06-05T00:45:23.1169065Z             }
2026-06-05T00:45:23.1169555Z           ]
2026-06-05T00:45:23.1170144Z         },
2026-06-05T00:45:23.1170574Z         "int": {
2026-06-05T00:45:23.1171042Z           "complete": false,
2026-06-05T00:45:23.1171510Z           "evidence": []
2026-06-05T00:45:23.1171916Z         },
2026-06-05T00:45:23.1172337Z         "unit": {
2026-06-05T00:45:23.1172791Z           "complete": true,
2026-06-05T00:45:23.1173238Z           "evidence": [
2026-06-05T00:45:23.1173662Z             {
2026-06-05T00:45:23.1174363Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T00:45:23.1174817Z               "line": 149
2026-06-05T00:45:23.1175227Z             }
2026-06-05T00:45:23.1175649Z           ]
2026-06-05T00:45:23.1176057Z         }
2026-06-05T00:45:23.1176467Z       }
2026-06-05T00:45:23.1176874Z     },
2026-06-05T00:45:23.1177271Z     {
2026-06-05T00:45:23.1177835Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-05T00:45:23.1178923Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-05T00:45:23.1179456Z       "requiredStages": [
2026-06-05T00:45:23.1179882Z         "impl",
2026-06-05T00:45:23.1180302Z         "unit"
2026-06-05T00:45:23.1180715Z       ],
2026-06-05T00:45:23.1181138Z       "stages": {
2026-06-05T00:45:23.1181561Z         "doc": {
2026-06-05T00:45:23.1182025Z           "complete": false,
2026-06-05T00:45:23.1182485Z           "evidence": []
2026-06-05T00:45:23.1182891Z         },
2026-06-05T00:45:23.1183322Z         "impl": {
2026-06-05T00:45:23.1183793Z           "complete": true,
2026-06-05T00:45:23.1184242Z           "evidence": [
2026-06-05T00:45:23.1184687Z             {
2026-06-05T00:45:23.1185320Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1185768Z               "line": 40
2026-06-05T00:45:23.1186178Z             },
2026-06-05T00:45:23.1186595Z             {
2026-06-05T00:45:23.1187225Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1187663Z               "line": 98
2026-06-05T00:45:23.1188074Z             },
2026-06-05T00:45:23.1188493Z             {
2026-06-05T00:45:23.1189114Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1189608Z               "line": 209
2026-06-05T00:45:23.1190028Z             },
2026-06-05T00:45:23.1190446Z             {
2026-06-05T00:45:23.1191067Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1191518Z               "line": 291
2026-06-05T00:45:23.1191921Z             }
2026-06-05T00:45:23.1192340Z           ]
2026-06-05T00:45:23.1192750Z         },
2026-06-05T00:45:23.1193177Z         "int": {
2026-06-05T00:45:23.1193651Z           "complete": false,
2026-06-05T00:45:23.1194096Z           "evidence": []
2026-06-05T00:45:23.1194510Z         },
2026-06-05T00:45:23.1194925Z         "unit": {
2026-06-05T00:45:23.1195391Z           "complete": true,
2026-06-05T00:45:23.1195843Z           "evidence": [
2026-06-05T00:45:23.1196265Z             {
2026-06-05T00:45:23.1196878Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1197339Z               "line": 326
2026-06-05T00:45:23.1197761Z             },
2026-06-05T00:45:23.1198165Z             {
2026-06-05T00:45:23.1198786Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1199273Z               "line": 372
2026-06-05T00:45:23.1199700Z             },
2026-06-05T00:45:23.1200114Z             {
2026-06-05T00:45:23.1200723Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1201174Z               "line": 413
2026-06-05T00:45:23.1201588Z             },
2026-06-05T00:45:23.1202006Z             {
2026-06-05T00:45:23.1202614Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1203067Z               "line": 432
2026-06-05T00:45:23.1203478Z             }
2026-06-05T00:45:23.1203881Z           ]
2026-06-05T00:45:23.1204291Z         }
2026-06-05T00:45:23.1204907Z       }
2026-06-05T00:45:23.1205344Z     },
2026-06-05T00:45:23.1205747Z     {
2026-06-05T00:45:23.1206387Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-05T00:45:23.1207222Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-05T00:45:23.1207691Z       "requiredStages": [
2026-06-05T00:45:23.1208116Z         "impl",
2026-06-05T00:45:23.1208528Z         "unit"
2026-06-05T00:45:23.1208945Z       ],
2026-06-05T00:45:23.1209420Z       "stages": {
2026-06-05T00:45:23.1209851Z         "doc": {
2026-06-05T00:45:23.1210324Z           "complete": false,
2026-06-05T00:45:23.1210769Z           "evidence": []
2026-06-05T00:45:23.1211186Z         },
2026-06-05T00:45:23.1211608Z         "impl": {
2026-06-05T00:45:23.1212075Z           "complete": true,
2026-06-05T00:45:23.1212519Z           "evidence": [
2026-06-05T00:45:23.1212939Z             {
2026-06-05T00:45:23.1213559Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1213999Z               "line": 111
2026-06-05T00:45:23.1214431Z             },
2026-06-05T00:45:23.1214830Z             {
2026-06-05T00:45:23.1215447Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1215907Z               "line": 202
2026-06-05T00:45:23.1216323Z             }
2026-06-05T00:45:23.1216740Z           ]
2026-06-05T00:45:23.1217142Z         },
2026-06-05T00:45:23.1217568Z         "int": {
2026-06-05T00:45:23.1218032Z           "complete": false,
2026-06-05T00:45:23.1218488Z           "evidence": []
2026-06-05T00:45:23.1218899Z         },
2026-06-05T00:45:23.1219361Z         "unit": {
2026-06-05T00:45:23.1219832Z           "complete": true,
2026-06-05T00:45:23.1220269Z           "evidence": [
2026-06-05T00:45:23.1220688Z             {
2026-06-05T00:45:23.1221300Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1221751Z               "line": 347
2026-06-05T00:45:23.1222162Z             },
2026-06-05T00:45:23.1222574Z             {
2026-06-05T00:45:23.1223196Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.1223642Z               "line": 391
2026-06-05T00:45:23.1224066Z             }
2026-06-05T00:45:23.1224477Z           ]
2026-06-05T00:45:23.1224913Z         }
2026-06-05T00:45:23.1225315Z       }
2026-06-05T00:45:23.1225721Z     },
2026-06-05T00:45:23.1226127Z     {
2026-06-05T00:45:23.1226752Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-05T00:45:23.1233885Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-05T00:45:23.1234379Z       "requiredStages": [
2026-06-05T00:45:23.1234805Z         "impl",
2026-06-05T00:45:23.1235226Z         "unit"
2026-06-05T00:45:23.1235630Z       ],
2026-06-05T00:45:23.1236071Z       "stages": {
2026-06-05T00:45:23.1236522Z         "doc": {
2026-06-05T00:45:23.1236999Z           "complete": true,
2026-06-05T00:45:23.1237436Z           "evidence": [
2026-06-05T00:45:23.1237883Z             {
2026-06-05T00:45:23.1238450Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.1238891Z               "line": 188
2026-06-05T00:45:23.1239346Z             }
2026-06-05T00:45:23.1239761Z           ]
2026-06-05T00:45:23.1240178Z         },
2026-06-05T00:45:23.1240606Z         "impl": {
2026-06-05T00:45:23.1241107Z           "complete": true,
2026-06-05T00:45:23.1241889Z           "evidence": [
2026-06-05T00:45:23.1242480Z             {
2026-06-05T00:45:23.1243270Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.1243830Z               "line": 237
2026-06-05T00:45:23.1244377Z             },
2026-06-05T00:45:23.1244897Z             {
2026-06-05T00:45:23.1254668Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.1255390Z               "line": 327
2026-06-05T00:45:23.1256498Z             },
2026-06-05T00:45:23.1257011Z             {
2026-06-05T00:45:23.1257733Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.1258436Z               "line": 173
2026-06-05T00:45:23.1258865Z             }
2026-06-05T00:45:23.1259591Z           ]
2026-06-05T00:45:23.1260168Z         },
2026-06-05T00:45:23.1260607Z         "int": {
2026-06-05T00:45:23.1261103Z           "complete": false,
2026-06-05T00:45:23.1261587Z           "evidence": []
2026-06-05T00:45:23.1262022Z         },
2026-06-05T00:45:23.1262594Z         "unit": {
2026-06-05T00:45:23.1263088Z           "complete": true,
2026-06-05T00:45:23.1263560Z           "evidence": [
2026-06-05T00:45:23.1263997Z             {
2026-06-05T00:45:23.1264695Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.1265161Z               "line": 365
2026-06-05T00:45:23.1265605Z             },
2026-06-05T00:45:23.1266036Z             {
2026-06-05T00:45:23.1266704Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T00:45:23.1267165Z               "line": 54
2026-06-05T00:45:23.1267587Z             }
2026-06-05T00:45:23.1268026Z           ]
2026-06-05T00:45:23.1268459Z         }
2026-06-05T00:45:23.1268896Z       }
2026-06-05T00:45:23.1269372Z     },
2026-06-05T00:45:23.1269797Z     {
2026-06-05T00:45:23.1270466Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-05T00:45:23.1271803Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-05T00:45:23.1272306Z       "requiredStages": [
2026-06-05T00:45:23.1272743Z         "impl",
2026-06-05T00:45:23.1273177Z         "unit"
2026-06-05T00:45:23.1273598Z       ],
2026-06-05T00:45:23.1274046Z       "stages": {
2026-06-05T00:45:23.1274473Z         "doc": {
2026-06-05T00:45:23.1274972Z           "complete": false,
2026-06-05T00:45:23.1275444Z           "evidence": []
2026-06-05T00:45:23.1275865Z         },
2026-06-05T00:45:23.1276335Z         "impl": {
2026-06-05T00:45:23.1276844Z           "complete": true,
2026-06-05T00:45:23.1277341Z           "evidence": [
2026-06-05T00:45:23.1277786Z             {
2026-06-05T00:45:23.1278494Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1279015Z               "line": 26
2026-06-05T00:45:23.1279668Z             },
2026-06-05T00:45:23.1280182Z             {
2026-06-05T00:45:23.1280920Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1281772Z               "line": 126
2026-06-05T00:45:23.1282267Z             },
2026-06-05T00:45:23.1282816Z             {
2026-06-05T00:45:23.1283665Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1284204Z               "line": 26
2026-06-05T00:45:23.1284683Z             },
2026-06-05T00:45:23.1285144Z             {
2026-06-05T00:45:23.1285942Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1286488Z               "line": 233
2026-06-05T00:45:23.1286969Z             }
2026-06-05T00:45:23.1287472Z           ]
2026-06-05T00:45:23.1288055Z         },
2026-06-05T00:45:23.1288482Z         "int": {
2026-06-05T00:45:23.1288947Z           "complete": false,
2026-06-05T00:45:23.1289781Z           "evidence": []
2026-06-05T00:45:23.1290200Z         },
2026-06-05T00:45:23.1290632Z         "unit": {
2026-06-05T00:45:23.1291106Z           "complete": true,
2026-06-05T00:45:23.1291546Z           "evidence": [
2026-06-05T00:45:23.1291974Z             {
2026-06-05T00:45:23.1292606Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1293062Z               "line": 152
2026-06-05T00:45:23.1293474Z             },
2026-06-05T00:45:23.1293895Z             {
2026-06-05T00:45:23.1294661Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1295250Z               "line": 161
2026-06-05T00:45:23.1295670Z             },
2026-06-05T00:45:23.1296076Z             {
2026-06-05T00:45:23.1296709Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1297450Z               "line": 170
2026-06-05T00:45:23.1297909Z             },
2026-06-05T00:45:23.1298339Z             {
2026-06-05T00:45:23.1298962Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1299636Z               "line": 179
2026-06-05T00:45:23.1300051Z             },
2026-06-05T00:45:23.1300472Z             {
2026-06-05T00:45:23.1301090Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1301544Z               "line": 188
2026-06-05T00:45:23.1301971Z             },
2026-06-05T00:45:23.1302374Z             {
2026-06-05T00:45:23.1302991Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1303427Z               "line": 205
2026-06-05T00:45:23.1303847Z             },
2026-06-05T00:45:23.1304263Z             {
2026-06-05T00:45:23.1304879Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T00:45:23.1305338Z               "line": 231
2026-06-05T00:45:23.1305749Z             },
2026-06-05T00:45:23.1306169Z             {
2026-06-05T00:45:23.1306787Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.1307245Z               "line": 245
2026-06-05T00:45:23.1307662Z             },
2026-06-05T00:45:23.1308086Z             {
2026-06-05T00:45:23.1308712Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1309196Z               "line": 212
2026-06-05T00:45:23.1309626Z             },
2026-06-05T00:45:23.1310039Z             {
2026-06-05T00:45:23.1310741Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1311190Z               "line": 256
2026-06-05T00:45:23.1311606Z             },
2026-06-05T00:45:23.1312022Z             {
2026-06-05T00:45:23.1312705Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1313159Z               "line": 281
2026-06-05T00:45:23.1313565Z             },
2026-06-05T00:45:23.1313988Z             {
2026-06-05T00:45:23.1314683Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1315139Z               "line": 293
2026-06-05T00:45:23.1315563Z             },
2026-06-05T00:45:23.1315970Z             {
2026-06-05T00:45:23.1316660Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T00:45:23.1317118Z               "line": 303
2026-06-05T00:45:23.1317546Z             },
2026-06-05T00:45:23.1317963Z             {
2026-06-05T00:45:23.1318633Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.1319094Z               "line": 502
2026-06-05T00:45:23.1319540Z             }
2026-06-05T00:45:23.1319961Z           ]
2026-06-05T00:45:23.1320368Z         }
2026-06-05T00:45:23.1320784Z       }
2026-06-05T00:45:23.1321196Z     },
2026-06-05T00:45:23.1321604Z     {
2026-06-05T00:45:23.1322242Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-05T00:45:23.1323063Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-05T00:45:23.1323560Z       "requiredStages": [
2026-06-05T00:45:23.1323991Z         "impl",
2026-06-05T00:45:23.1324427Z         "unit"
2026-06-05T00:45:23.1324845Z       ],
2026-06-05T00:45:23.1325271Z       "stages": {
2026-06-05T00:45:23.1325695Z         "doc": {
2026-06-05T00:45:23.1326171Z           "complete": false,
2026-06-05T00:45:23.1326632Z           "evidence": []
2026-06-05T00:45:23.1327039Z         },
2026-06-05T00:45:23.1327471Z         "impl": {
2026-06-05T00:45:23.1327937Z           "complete": true,
2026-06-05T00:45:23.1328385Z           "evidence": [
2026-06-05T00:45:23.1328801Z             {
2026-06-05T00:45:23.1329429Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.1329879Z               "line": 25
2026-06-05T00:45:23.1330290Z             },
2026-06-05T00:45:23.1330706Z             {
2026-06-05T00:45:23.1338819Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.1339557Z               "line": 26
2026-06-05T00:45:23.1340000Z             },
2026-06-05T00:45:23.1340429Z             {
2026-06-05T00:45:23.1341359Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.1341831Z               "line": 153
2026-06-05T00:45:23.1342255Z             }
2026-06-05T00:45:23.1342675Z           ]
2026-06-05T00:45:23.1343291Z         },
2026-06-05T00:45:23.1343720Z         "int": {
2026-06-05T00:45:23.1344192Z           "complete": false,
2026-06-05T00:45:23.1344652Z           "evidence": []
2026-06-05T00:45:23.1345062Z         },
2026-06-05T00:45:23.1345491Z         "unit": {
2026-06-05T00:45:23.1345966Z           "complete": true,
2026-06-05T00:45:23.1346410Z           "evidence": [
2026-06-05T00:45:23.1346825Z             {
2026-06-05T00:45:23.1347414Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.1347871Z               "line": 180
2026-06-05T00:45:23.1348282Z             },
2026-06-05T00:45:23.1348696Z             {
2026-06-05T00:45:23.1349336Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.1349786Z               "line": 205
2026-06-05T00:45:23.1350207Z             },
2026-06-05T00:45:23.1350627Z             {
2026-06-05T00:45:23.1351248Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.1351690Z               "line": 180
2026-06-05T00:45:23.1352124Z             }
2026-06-05T00:45:23.1352538Z           ]
2026-06-05T00:45:23.1352944Z         }
2026-06-05T00:45:23.1353356Z       }
2026-06-05T00:45:23.1353753Z     },
2026-06-05T00:45:23.1354163Z     {
2026-06-05T00:45:23.1354686Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-05T00:45:23.1355632Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-05T00:45:23.1356115Z       "requiredStages": [
2026-06-05T00:45:23.1356531Z         "impl",
2026-06-05T00:45:23.1356955Z         "unit"
2026-06-05T00:45:23.1357357Z       ],
2026-06-05T00:45:23.1357792Z       "stages": {
2026-06-05T00:45:23.1358213Z         "doc": {
2026-06-05T00:45:23.1358688Z           "complete": false,
2026-06-05T00:45:23.1359138Z           "evidence": []
2026-06-05T00:45:23.1359582Z         },
2026-06-05T00:45:23.1360018Z         "impl": {
2026-06-05T00:45:23.1360486Z           "complete": true,
2026-06-05T00:45:23.1360940Z           "evidence": [
2026-06-05T00:45:23.1361349Z             {
2026-06-05T00:45:23.1361989Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1362434Z               "line": 48
2026-06-05T00:45:23.1362842Z             },
2026-06-05T00:45:23.1363250Z             {
2026-06-05T00:45:23.1363864Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1364306Z               "line": 55
2026-06-05T00:45:23.1364708Z             },
2026-06-05T00:45:23.1365126Z             {
2026-06-05T00:45:23.1365745Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1366184Z               "line": 74
2026-06-05T00:45:23.1366597Z             },
2026-06-05T00:45:23.1367003Z             {
2026-06-05T00:45:23.1367640Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1368087Z               "line": 91
2026-06-05T00:45:23.1368494Z             }
2026-06-05T00:45:23.1368922Z           ]
2026-06-05T00:45:23.1369364Z         },
2026-06-05T00:45:23.1369801Z         "int": {
2026-06-05T00:45:23.1370269Z           "complete": false,
2026-06-05T00:45:23.1370741Z           "evidence": []
2026-06-05T00:45:23.1371149Z         },
2026-06-05T00:45:23.1371578Z         "unit": {
2026-06-05T00:45:23.1372044Z           "complete": true,
2026-06-05T00:45:23.1372482Z           "evidence": [
2026-06-05T00:45:23.1372895Z             {
2026-06-05T00:45:23.1373507Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1373963Z               "line": 149
2026-06-05T00:45:23.1374373Z             },
2026-06-05T00:45:23.1374794Z             {
2026-06-05T00:45:23.1375422Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1375865Z               "line": 163
2026-06-05T00:45:23.1376276Z             },
2026-06-05T00:45:23.1376674Z             {
2026-06-05T00:45:23.1377303Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1377909Z               "line": 173
2026-06-05T00:45:23.1378326Z             },
2026-06-05T00:45:23.1378744Z             {
2026-06-05T00:45:23.1379405Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1380015Z               "line": 191
2026-06-05T00:45:23.1380423Z             },
2026-06-05T00:45:23.1380839Z             {
2026-06-05T00:45:23.1381464Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.1381915Z               "line": 204
2026-06-05T00:45:23.1382331Z             }
2026-06-05T00:45:23.1382733Z           ]
2026-06-05T00:45:23.1383144Z         }
2026-06-05T00:45:23.1383548Z       }
2026-06-05T00:45:23.1383957Z     },
2026-06-05T00:45:23.1384364Z     {
2026-06-05T00:45:23.1384975Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-05T00:45:23.1386080Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-05T00:45:23.1386556Z       "requiredStages": [
2026-06-05T00:45:23.1386980Z         "impl",
2026-06-05T00:45:23.1387399Z         "unit"
2026-06-05T00:45:23.1387815Z       ],
2026-06-05T00:45:23.1388248Z       "stages": {
2026-06-05T00:45:23.1388660Z         "doc": {
2026-06-05T00:45:23.1389152Z           "complete": false,
2026-06-05T00:45:23.1389638Z           "evidence": []
2026-06-05T00:45:23.1390066Z         },
2026-06-05T00:45:23.1390483Z         "impl": {
2026-06-05T00:45:23.1390956Z           "complete": true,
2026-06-05T00:45:23.1391404Z           "evidence": [
2026-06-05T00:45:23.1391809Z             {
2026-06-05T00:45:23.1392490Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1392937Z               "line": 349
2026-06-05T00:45:23.1393354Z             },
2026-06-05T00:45:23.1393764Z             {
2026-06-05T00:45:23.1394389Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1394839Z               "line": 26
2026-06-05T00:45:23.1395255Z             }
2026-06-05T00:45:23.1395677Z           ]
2026-06-05T00:45:23.1396088Z         },
2026-06-05T00:45:23.1396522Z         "int": {
2026-06-05T00:45:23.1396990Z           "complete": false,
2026-06-05T00:45:23.1397450Z           "evidence": []
2026-06-05T00:45:23.1397877Z         },
2026-06-05T00:45:23.1398294Z         "unit": {
2026-06-05T00:45:23.1398771Z           "complete": true,
2026-06-05T00:45:23.1399280Z           "evidence": [
2026-06-05T00:45:23.1399710Z             {
2026-06-05T00:45:23.1400334Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1400779Z               "line": 139
2026-06-05T00:45:23.1401193Z             },
2026-06-05T00:45:23.1401601Z             {
2026-06-05T00:45:23.1402233Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1402675Z               "line": 182
2026-06-05T00:45:23.1403097Z             }
2026-06-05T00:45:23.1403505Z           ]
2026-06-05T00:45:23.1403921Z         }
2026-06-05T00:45:23.1404324Z       }
2026-06-05T00:45:23.1404723Z     },
2026-06-05T00:45:23.1405131Z     {
2026-06-05T00:45:23.1405760Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-05T00:45:23.1406648Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-05T00:45:23.1407123Z       "requiredStages": [
2026-06-05T00:45:23.1407566Z         "impl",
2026-06-05T00:45:23.1407989Z         "unit"
2026-06-05T00:45:23.1408391Z       ],
2026-06-05T00:45:23.1408829Z       "stages": {
2026-06-05T00:45:23.1409282Z         "doc": {
2026-06-05T00:45:23.1409758Z           "complete": false,
2026-06-05T00:45:23.1410200Z           "evidence": []
2026-06-05T00:45:23.1410615Z         },
2026-06-05T00:45:23.1411043Z         "impl": {
2026-06-05T00:45:23.1411501Z           "complete": true,
2026-06-05T00:45:23.1411949Z           "evidence": [
2026-06-05T00:45:23.1412356Z             {
2026-06-05T00:45:23.1413029Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1413462Z               "line": 36
2026-06-05T00:45:23.1413879Z             },
2026-06-05T00:45:23.1414291Z             {
2026-06-05T00:45:23.1415113Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1415580Z               "line": 68
2026-06-05T00:45:23.1415989Z             }
2026-06-05T00:45:23.1422256Z           ]
2026-06-05T00:45:23.1422753Z         },
2026-06-05T00:45:23.1423198Z         "int": {
2026-06-05T00:45:23.1423688Z           "complete": false,
2026-06-05T00:45:23.1424138Z           "evidence": []
2026-06-05T00:45:23.1424562Z         },
2026-06-05T00:45:23.1424982Z         "unit": {
2026-06-05T00:45:23.1425454Z           "complete": true,
2026-06-05T00:45:23.1425892Z           "evidence": [
2026-06-05T00:45:23.1426307Z             {
2026-06-05T00:45:23.1426981Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1427425Z               "line": 143
2026-06-05T00:45:23.1427843Z             },
2026-06-05T00:45:23.1428251Z             {
2026-06-05T00:45:23.1428908Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1429409Z               "line": 160
2026-06-05T00:45:23.1429857Z             },
2026-06-05T00:45:23.1430278Z             {
2026-06-05T00:45:23.1430928Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1431390Z               "line": 168
2026-06-05T00:45:23.1431792Z             }
2026-06-05T00:45:23.1432207Z           ]
2026-06-05T00:45:23.1432609Z         }
2026-06-05T00:45:23.1433020Z       }
2026-06-05T00:45:23.1433432Z     },
2026-06-05T00:45:23.1433826Z     {
2026-06-05T00:45:23.1434464Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-05T00:45:23.1435468Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-05T00:45:23.1435945Z       "requiredStages": [
2026-06-05T00:45:23.1436363Z         "impl",
2026-06-05T00:45:23.1436780Z         "unit"
2026-06-05T00:45:23.1437190Z       ],
2026-06-05T00:45:23.1437610Z       "stages": {
2026-06-05T00:45:23.1438030Z         "doc": {
2026-06-05T00:45:23.1438498Z           "complete": false,
2026-06-05T00:45:23.1438951Z           "evidence": []
2026-06-05T00:45:23.1439392Z         },
2026-06-05T00:45:23.1439825Z         "impl": {
2026-06-05T00:45:23.1440294Z           "complete": true,
2026-06-05T00:45:23.1440739Z           "evidence": [
2026-06-05T00:45:23.1441164Z             {
2026-06-05T00:45:23.1441804Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1442259Z               "line": 107
2026-06-05T00:45:23.1442665Z             }
2026-06-05T00:45:23.1443081Z           ]
2026-06-05T00:45:23.1443500Z         },
2026-06-05T00:45:23.1443909Z         "int": {
2026-06-05T00:45:23.1444380Z           "complete": false,
2026-06-05T00:45:23.1444828Z           "evidence": []
2026-06-05T00:45:23.1445251Z         },
2026-06-05T00:45:23.1445665Z         "unit": {
2026-06-05T00:45:23.1446130Z           "complete": true,
2026-06-05T00:45:23.1446572Z           "evidence": [
2026-06-05T00:45:23.1446978Z             {
2026-06-05T00:45:23.1447629Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1448066Z               "line": 184
2026-06-05T00:45:23.1448493Z             },
2026-06-05T00:45:23.1448902Z             {
2026-06-05T00:45:23.1449595Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1450062Z               "line": 193
2026-06-05T00:45:23.1450470Z             },
2026-06-05T00:45:23.1450882Z             {
2026-06-05T00:45:23.1451531Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1451981Z               "line": 201
2026-06-05T00:45:23.1452392Z             },
2026-06-05T00:45:23.1452807Z             {
2026-06-05T00:45:23.1453464Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1453904Z               "line": 210
2026-06-05T00:45:23.1454325Z             },
2026-06-05T00:45:23.1454728Z             {
2026-06-05T00:45:23.1455381Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T00:45:23.1455822Z               "line": 219
2026-06-05T00:45:23.1456240Z             }
2026-06-05T00:45:23.1456652Z           ]
2026-06-05T00:45:23.1457299Z         }
2026-06-05T00:45:23.1457737Z       }
2026-06-05T00:45:23.1458143Z     },
2026-06-05T00:45:23.1458556Z     {
2026-06-05T00:45:23.1459123Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-05T00:45:23.1460231Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-05T00:45:23.1460715Z       "requiredStages": [
2026-06-05T00:45:23.1461132Z         "impl",
2026-06-05T00:45:23.1461551Z         "unit"
2026-06-05T00:45:23.1461954Z       ],
2026-06-05T00:45:23.1462392Z       "stages": {
2026-06-05T00:45:23.1462804Z         "doc": {
2026-06-05T00:45:23.1463272Z           "complete": false,
2026-06-05T00:45:23.1463721Z           "evidence": []
2026-06-05T00:45:23.1464127Z         },
2026-06-05T00:45:23.1464557Z         "impl": {
2026-06-05T00:45:23.1465013Z           "complete": true,
2026-06-05T00:45:23.1465454Z           "evidence": [
2026-06-05T00:45:23.1465862Z             {
2026-06-05T00:45:23.1466449Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1466912Z               "line": 14
2026-06-05T00:45:23.1467324Z             },
2026-06-05T00:45:23.1467734Z             {
2026-06-05T00:45:23.1468309Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1468765Z               "line": 62
2026-06-05T00:45:23.1469215Z             }
2026-06-05T00:45:23.1469630Z           ]
2026-06-05T00:45:23.1470039Z         },
2026-06-05T00:45:23.1470449Z         "int": {
2026-06-05T00:45:23.1470921Z           "complete": false,
2026-06-05T00:45:23.1471363Z           "evidence": []
2026-06-05T00:45:23.1471776Z         },
2026-06-05T00:45:23.1472193Z         "unit": {
2026-06-05T00:45:23.1472667Z           "complete": true,
2026-06-05T00:45:23.1473118Z           "evidence": [
2026-06-05T00:45:23.1473527Z             {
2026-06-05T00:45:23.1474111Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1474554Z               "line": 160
2026-06-05T00:45:23.1474974Z             },
2026-06-05T00:45:23.1475384Z             {
2026-06-05T00:45:23.1475980Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1476438Z               "line": 197
2026-06-05T00:45:23.1476851Z             },
2026-06-05T00:45:23.1477285Z             {
2026-06-05T00:45:23.1477855Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.1478305Z               "line": 213
2026-06-05T00:45:23.1478707Z             }
2026-06-05T00:45:23.1479126Z           ]
2026-06-05T00:45:23.1479584Z         }
2026-06-05T00:45:23.1479996Z       }
2026-06-05T00:45:23.1480407Z     },
2026-06-05T00:45:23.1480803Z     {
2026-06-05T00:45:23.1481433Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-05T00:45:23.1482696Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-05T00:45:23.1483180Z       "requiredStages": [
2026-06-05T00:45:23.1483608Z         "impl",
2026-06-05T00:45:23.1484019Z         "unit"
2026-06-05T00:45:23.1484438Z       ],
2026-06-05T00:45:23.1484856Z       "stages": {
2026-06-05T00:45:23.1485289Z         "doc": {
2026-06-05T00:45:23.1485754Z           "complete": false,
2026-06-05T00:45:23.1486210Z           "evidence": []
2026-06-05T00:45:23.1486626Z         },
2026-06-05T00:45:23.1487062Z         "impl": {
2026-06-05T00:45:23.1487535Z           "complete": true,
2026-06-05T00:45:23.1487983Z           "evidence": [
2026-06-05T00:45:23.1488400Z             {
2026-06-05T00:45:23.1489018Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1489503Z               "line": 76
2026-06-05T00:45:23.1489923Z             },
2026-06-05T00:45:23.1490332Z             {
2026-06-05T00:45:23.1490953Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1491401Z               "line": 163
2026-06-05T00:45:23.1491817Z             },
2026-06-05T00:45:23.1492222Z             {
2026-06-05T00:45:23.1492837Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1493293Z               "line": 229
2026-06-05T00:45:23.1493707Z             },
2026-06-05T00:45:23.1494274Z             {
2026-06-05T00:45:23.1494908Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1495360Z               "line": 265
2026-06-05T00:45:23.1495950Z             }
2026-06-05T00:45:23.1496356Z           ]
2026-06-05T00:45:23.1496775Z         },
2026-06-05T00:45:23.1497194Z         "int": {
2026-06-05T00:45:23.1497669Z           "complete": false,
2026-06-05T00:45:23.1498118Z           "evidence": []
2026-06-05T00:45:23.1498535Z         },
2026-06-05T00:45:23.1504192Z         "unit": {
2026-06-05T00:45:23.1504773Z           "complete": true,
2026-06-05T00:45:23.1505232Z           "evidence": [
2026-06-05T00:45:23.1505646Z             {
2026-06-05T00:45:23.1506282Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1506726Z               "line": 310
2026-06-05T00:45:23.1507146Z             },
2026-06-05T00:45:23.1507553Z             {
2026-06-05T00:45:23.1508173Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1508662Z               "line": 318
2026-06-05T00:45:23.1509076Z             },
2026-06-05T00:45:23.1509577Z             {
2026-06-05T00:45:23.1510193Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1510660Z               "line": 341
2026-06-05T00:45:23.1511092Z             },
2026-06-05T00:45:23.1511501Z             {
2026-06-05T00:45:23.1512113Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1512552Z               "line": 378
2026-06-05T00:45:23.1512973Z             },
2026-06-05T00:45:23.1513381Z             {
2026-06-05T00:45:23.1513993Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1514447Z               "line": 389
2026-06-05T00:45:23.1514852Z             },
2026-06-05T00:45:23.1515266Z             {
2026-06-05T00:45:23.1515883Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1516334Z               "line": 401
2026-06-05T00:45:23.1516745Z             },
2026-06-05T00:45:23.1517164Z             {
2026-06-05T00:45:23.1517794Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T00:45:23.1518235Z               "line": 413
2026-06-05T00:45:23.1518655Z             }
2026-06-05T00:45:23.1519075Z           ]
2026-06-05T00:45:23.1519538Z         }
2026-06-05T00:45:23.1519944Z       }
2026-06-05T00:45:23.1520357Z     },
2026-06-05T00:45:23.1520785Z     {
2026-06-05T00:45:23.1521312Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-05T00:45:23.1522122Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-05T00:45:23.1522594Z       "requiredStages": [
2026-06-05T00:45:23.1523023Z         "impl",
2026-06-05T00:45:23.1523439Z         "int"
2026-06-05T00:45:23.1523849Z       ],
2026-06-05T00:45:23.1524283Z       "stages": {
2026-06-05T00:45:23.1524695Z         "doc": {
2026-06-05T00:45:23.1525169Z           "complete": false,
2026-06-05T00:45:23.1525617Z           "evidence": []
2026-06-05T00:45:23.1526027Z         },
2026-06-05T00:45:23.1526448Z         "impl": {
2026-06-05T00:45:23.1526927Z           "complete": true,
2026-06-05T00:45:23.1527375Z           "evidence": [
2026-06-05T00:45:23.1527786Z             {
2026-06-05T00:45:23.1528409Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.1528854Z               "line": 22
2026-06-05T00:45:23.1529311Z             }
2026-06-05T00:45:23.1529721Z           ]
2026-06-05T00:45:23.1530139Z         },
2026-06-05T00:45:23.1530562Z         "int": {
2026-06-05T00:45:23.1531018Z           "complete": true,
2026-06-05T00:45:23.1531463Z           "evidence": [
2026-06-05T00:45:23.1531880Z             {
2026-06-05T00:45:23.1532557Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-05T00:45:23.1532990Z               "line": 18
2026-06-05T00:45:23.1533409Z             }
2026-06-05T00:45:23.1533828Z           ]
2026-06-05T00:45:23.1534233Z         },
2026-06-05T00:45:23.1534659Z         "unit": {
2026-06-05T00:45:23.1535118Z           "complete": false,
2026-06-05T00:45:23.1535566Z           "evidence": []
2026-06-05T00:45:23.1536204Z         }
2026-06-05T00:45:23.1536641Z       }
2026-06-05T00:45:23.1537051Z     },
2026-06-05T00:45:23.1537453Z     {
2026-06-05T00:45:23.1538089Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-05T00:45:23.1539400Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-05T00:45:23.1539889Z       "requiredStages": [
2026-06-05T00:45:23.1540314Z         "impl",
2026-06-05T00:45:23.1540741Z         "unit"
2026-06-05T00:45:23.1541156Z       ],
2026-06-05T00:45:23.1541583Z       "stages": {
2026-06-05T00:45:23.1542007Z         "doc": {
2026-06-05T00:45:23.1542467Z           "complete": false,
2026-06-05T00:45:23.1542923Z           "evidence": []
2026-06-05T00:45:23.1543325Z         },
2026-06-05T00:45:23.1543753Z         "impl": {
2026-06-05T00:45:23.1544221Z           "complete": true,
2026-06-05T00:45:23.1544662Z           "evidence": [
2026-06-05T00:45:23.1545075Z             {
2026-06-05T00:45:23.1545753Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1546210Z               "line": 348
2026-06-05T00:45:23.1546624Z             },
2026-06-05T00:45:23.1547043Z             {
2026-06-05T00:45:23.1547688Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1548133Z               "line": 27
2026-06-05T00:45:23.1548550Z             }
2026-06-05T00:45:23.1548961Z           ]
2026-06-05T00:45:23.1549412Z         },
2026-06-05T00:45:23.1549825Z         "int": {
2026-06-05T00:45:23.1550299Z           "complete": false,
2026-06-05T00:45:23.1550752Z           "evidence": []
2026-06-05T00:45:23.1551165Z         },
2026-06-05T00:45:23.1551584Z         "unit": {
2026-06-05T00:45:23.1552038Z           "complete": true,
2026-06-05T00:45:23.1552482Z           "evidence": [
2026-06-05T00:45:23.1552886Z             {
2026-06-05T00:45:23.1553557Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.1554011Z               "line": 753
2026-06-05T00:45:23.1554430Z             },
2026-06-05T00:45:23.1554859Z             {
2026-06-05T00:45:23.1555488Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.1555944Z               "line": 164
2026-06-05T00:45:23.1556373Z             }
2026-06-05T00:45:23.1556786Z           ]
2026-06-05T00:45:23.1557197Z         }
2026-06-05T00:45:23.1557606Z       }
2026-06-05T00:45:23.1558011Z     },
2026-06-05T00:45:23.1558413Z     {
2026-06-05T00:45:23.1559032Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-05T00:45:23.1560001Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-05T00:45:23.1560487Z       "requiredStages": [
2026-06-05T00:45:23.1560917Z         "impl",
2026-06-05T00:45:23.1561329Z         "unit"
2026-06-05T00:45:23.1561745Z       ],
2026-06-05T00:45:23.1562176Z       "stages": {
2026-06-05T00:45:23.1562603Z         "doc": {
2026-06-05T00:45:23.1563071Z           "complete": false,
2026-06-05T00:45:23.1563527Z           "evidence": []
2026-06-05T00:45:23.1563941Z         },
2026-06-05T00:45:23.1564371Z         "impl": {
2026-06-05T00:45:23.1564839Z           "complete": true,
2026-06-05T00:45:23.1565275Z           "evidence": [
2026-06-05T00:45:23.1565684Z             {
2026-06-05T00:45:23.1566323Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1566778Z               "line": 20
2026-06-05T00:45:23.1567200Z             },
2026-06-05T00:45:23.1567605Z             {
2026-06-05T00:45:23.1568225Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1568660Z               "line": 94
2026-06-05T00:45:23.1569082Z             },
2026-06-05T00:45:23.1569529Z             {
2026-06-05T00:45:23.1570203Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T00:45:23.1570649Z               "line": 70
2026-06-05T00:45:23.1571057Z             },
2026-06-05T00:45:23.1571475Z             {
2026-06-05T00:45:23.1572139Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T00:45:23.1572591Z               "line": 82
2026-06-05T00:45:23.1573153Z             }
2026-06-05T00:45:23.1573589Z           ]
2026-06-05T00:45:23.1574007Z         },
2026-06-05T00:45:23.1574419Z         "int": {
2026-06-05T00:45:23.1575040Z           "complete": false,
2026-06-05T00:45:23.1575488Z           "evidence": []
2026-06-05T00:45:23.1575908Z         },
2026-06-05T00:45:23.1576325Z         "unit": {
2026-06-05T00:45:23.1576790Z           "complete": true,
2026-06-05T00:45:23.1577241Z           "evidence": [
2026-06-05T00:45:23.1577651Z             {
2026-06-05T00:45:23.1578288Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1578735Z               "line": 139
2026-06-05T00:45:23.1579149Z             },
2026-06-05T00:45:23.1579605Z             {
2026-06-05T00:45:23.1580231Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1580682Z               "line": 162
2026-06-05T00:45:23.1586173Z             },
2026-06-05T00:45:23.1586681Z             {
2026-06-05T00:45:23.1587362Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1587831Z               "line": 173
2026-06-05T00:45:23.1588242Z             },
2026-06-05T00:45:23.1588655Z             {
2026-06-05T00:45:23.1589410Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1589887Z               "line": 189
2026-06-05T00:45:23.1590330Z             },
2026-06-05T00:45:23.1590741Z             {
2026-06-05T00:45:23.1591375Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T00:45:23.1591820Z               "line": 200
2026-06-05T00:45:23.1592244Z             },
2026-06-05T00:45:23.1592657Z             {
2026-06-05T00:45:23.1593330Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T00:45:23.1593790Z               "line": 139
2026-06-05T00:45:23.1594195Z             }
2026-06-05T00:45:23.1594606Z           ]
2026-06-05T00:45:23.1595004Z         }
2026-06-05T00:45:23.1595423Z       }
2026-06-05T00:45:23.1595826Z     },
2026-06-05T00:45:23.1596230Z     {
2026-06-05T00:45:23.1596755Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-05T00:45:23.1598280Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-05T00:45:23.1598773Z       "requiredStages": [
2026-06-05T00:45:23.1599244Z         "impl",
2026-06-05T00:45:23.1599672Z         "unit"
2026-06-05T00:45:23.1600091Z       ],
2026-06-05T00:45:23.1600517Z       "stages": {
2026-06-05T00:45:23.1600939Z         "doc": {
2026-06-05T00:45:23.1601395Z           "complete": true,
2026-06-05T00:45:23.1601843Z           "evidence": [
2026-06-05T00:45:23.1602252Z             {
2026-06-05T00:45:23.1602825Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.1603276Z               "line": 131
2026-06-05T00:45:23.1603684Z             }
2026-06-05T00:45:23.1604090Z           ]
2026-06-05T00:45:23.1604498Z         },
2026-06-05T00:45:23.1604927Z         "impl": {
2026-06-05T00:45:23.1605390Z           "complete": true,
2026-06-05T00:45:23.1605837Z           "evidence": [
2026-06-05T00:45:23.1606258Z             {
2026-06-05T00:45:23.1606856Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.1607304Z               "line": 65
2026-06-05T00:45:23.1607726Z             },
2026-06-05T00:45:23.1608142Z             {
2026-06-05T00:45:23.1608718Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1609197Z               "line": 17
2026-06-05T00:45:23.1609612Z             },
2026-06-05T00:45:23.1610018Z             {
2026-06-05T00:45:23.1610638Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.1611076Z               "line": 212
2026-06-05T00:45:23.1611490Z             },
2026-06-05T00:45:23.1611906Z             {
2026-06-05T00:45:23.1612512Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.1612964Z               "line": 312
2026-06-05T00:45:23.1613368Z             },
2026-06-05T00:45:23.1613780Z             {
2026-06-05T00:45:23.1614370Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T00:45:23.1615047Z               "line": 32
2026-06-05T00:45:23.1615491Z             },
2026-06-05T00:45:23.1615896Z             {
2026-06-05T00:45:23.1616454Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.1617053Z               "line": 1719
2026-06-05T00:45:23.1617471Z             },
2026-06-05T00:45:23.1617877Z             {
2026-06-05T00:45:23.1618433Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.1618885Z               "line": 1948
2026-06-05T00:45:23.1619333Z             }
2026-06-05T00:45:23.1619752Z           ]
2026-06-05T00:45:23.1620158Z         },
2026-06-05T00:45:23.1620583Z         "int": {
2026-06-05T00:45:23.1621045Z           "complete": false,
2026-06-05T00:45:23.1621506Z           "evidence": []
2026-06-05T00:45:23.1621922Z         },
2026-06-05T00:45:23.1622338Z         "unit": {
2026-06-05T00:45:23.1622813Z           "complete": true,
2026-06-05T00:45:23.1623253Z           "evidence": [
2026-06-05T00:45:23.1623671Z             {
2026-06-05T00:45:23.1624273Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1624722Z               "line": 94
2026-06-05T00:45:23.1625136Z             },
2026-06-05T00:45:23.1625563Z             {
2026-06-05T00:45:23.1626145Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1626582Z               "line": 111
2026-06-05T00:45:23.1626999Z             },
2026-06-05T00:45:23.1627400Z             {
2026-06-05T00:45:23.1627985Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1628432Z               "line": 124
2026-06-05T00:45:23.1628845Z             },
2026-06-05T00:45:23.1629302Z             {
2026-06-05T00:45:23.1629882Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1630334Z               "line": 134
2026-06-05T00:45:23.1630746Z             },
2026-06-05T00:45:23.1631159Z             {
2026-06-05T00:45:23.1631743Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1632186Z               "line": 142
2026-06-05T00:45:23.1632610Z             },
2026-06-05T00:45:23.1633021Z             {
2026-06-05T00:45:23.1633607Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T00:45:23.1634048Z               "line": 154
2026-06-05T00:45:23.1634477Z             },
2026-06-05T00:45:23.1634891Z             {
2026-06-05T00:45:23.1635589Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.1636040Z               "line": 645
2026-06-05T00:45:23.1636444Z             }
2026-06-05T00:45:23.1636856Z           ]
2026-06-05T00:45:23.1637272Z         }
2026-06-05T00:45:23.1637687Z       }
2026-06-05T00:45:23.1638097Z     },
2026-06-05T00:45:23.1638497Z     {
2026-06-05T00:45:23.1639043Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-05T00:45:23.1639806Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-05T00:45:23.1640295Z       "requiredStages": [
2026-06-05T00:45:23.1640713Z         "impl",
2026-06-05T00:45:23.1641136Z         "unit"
2026-06-05T00:45:23.1641558Z       ],
2026-06-05T00:45:23.1641992Z       "stages": {
2026-06-05T00:45:23.1642415Z         "doc": {
2026-06-05T00:45:23.1642881Z           "complete": false,
2026-06-05T00:45:23.1643334Z           "evidence": []
2026-06-05T00:45:23.1643766Z         },
2026-06-05T00:45:23.1644203Z         "impl": {
2026-06-05T00:45:23.1644669Z           "complete": true,
2026-06-05T00:45:23.1645117Z           "evidence": [
2026-06-05T00:45:23.1645534Z             {
2026-06-05T00:45:23.1646149Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.1646600Z               "line": 128
2026-06-05T00:45:23.1647008Z             }
2026-06-05T00:45:23.1647420Z           ]
2026-06-05T00:45:23.1647834Z         },
2026-06-05T00:45:23.1648252Z         "int": {
2026-06-05T00:45:23.1648727Z           "complete": false,
2026-06-05T00:45:23.1649212Z           "evidence": []
2026-06-05T00:45:23.1649633Z         },
2026-06-05T00:45:23.1650050Z         "unit": {
2026-06-05T00:45:23.1650520Z           "complete": true,
2026-06-05T00:45:23.1651164Z           "evidence": [
2026-06-05T00:45:23.1651599Z             {
2026-06-05T00:45:23.1652220Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.1652807Z               "line": 205
2026-06-05T00:45:23.1653229Z             }
2026-06-05T00:45:23.1653634Z           ]
2026-06-05T00:45:23.1654049Z         }
2026-06-05T00:45:23.1654466Z       }
2026-06-05T00:45:23.1654864Z     },
2026-06-05T00:45:23.1655268Z     {
2026-06-05T00:45:23.1655855Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-05T00:45:23.1656696Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-05T00:45:23.1657161Z       "requiredStages": [
2026-06-05T00:45:23.1657580Z         "impl",
2026-06-05T00:45:23.1658000Z         "unit"
2026-06-05T00:45:23.1658408Z       ],
2026-06-05T00:45:23.1658834Z       "stages": {
2026-06-05T00:45:23.1659288Z         "doc": {
2026-06-05T00:45:23.1659765Z           "complete": false,
2026-06-05T00:45:23.1660211Z           "evidence": []
2026-06-05T00:45:23.1660630Z         },
2026-06-05T00:45:23.1661069Z         "impl": {
2026-06-05T00:45:23.1661525Z           "complete": true,
2026-06-05T00:45:23.1661976Z           "evidence": [
2026-06-05T00:45:23.1662398Z             {
2026-06-05T00:45:23.1668187Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1668762Z               "line": 231
2026-06-05T00:45:23.1669278Z             },
2026-06-05T00:45:23.1669707Z             {
2026-06-05T00:45:23.1670320Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1670774Z               "line": 242
2026-06-05T00:45:23.1671193Z             },
2026-06-05T00:45:23.1671611Z             {
2026-06-05T00:45:23.1672207Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1672661Z               "line": 260
2026-06-05T00:45:23.1673081Z             }
2026-06-05T00:45:23.1673491Z           ]
2026-06-05T00:45:23.1673908Z         },
2026-06-05T00:45:23.1674324Z         "int": {
2026-06-05T00:45:23.1674800Z           "complete": false,
2026-06-05T00:45:23.1675292Z           "evidence": []
2026-06-05T00:45:23.1675712Z         },
2026-06-05T00:45:23.1676139Z         "unit": {
2026-06-05T00:45:23.1676596Z           "complete": true,
2026-06-05T00:45:23.1677067Z           "evidence": [
2026-06-05T00:45:23.1677480Z             {
2026-06-05T00:45:23.1678086Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1678533Z               "line": 284
2026-06-05T00:45:23.1678954Z             },
2026-06-05T00:45:23.1679404Z             {
2026-06-05T00:45:23.1680002Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1680456Z               "line": 302
2026-06-05T00:45:23.1680865Z             },
2026-06-05T00:45:23.1681283Z             {
2026-06-05T00:45:23.1681874Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1682323Z               "line": 467
2026-06-05T00:45:23.1682741Z             },
2026-06-05T00:45:23.1683143Z             {
2026-06-05T00:45:23.1683754Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1684203Z               "line": 478
2026-06-05T00:45:23.1684618Z             },
2026-06-05T00:45:23.1685017Z             {
2026-06-05T00:45:23.1685652Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.1686159Z               "line": 491
2026-06-05T00:45:23.1686588Z             }
2026-06-05T00:45:23.1687004Z           ]
2026-06-05T00:45:23.1687412Z         }
2026-06-05T00:45:23.1687830Z       }
2026-06-05T00:45:23.1688228Z     },
2026-06-05T00:45:23.1688634Z     {
2026-06-05T00:45:23.1689223Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-05T00:45:23.1690532Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-05T00:45:23.1691012Z       "requiredStages": [
2026-06-05T00:45:23.1691429Z         "impl",
2026-06-05T00:45:23.1691847Z         "unit"
2026-06-05T00:45:23.1692252Z       ],
2026-06-05T00:45:23.1692686Z       "stages": {
2026-06-05T00:45:23.1693106Z         "doc": {
2026-06-05T00:45:23.1693813Z           "complete": false,
2026-06-05T00:45:23.1694299Z           "evidence": []
2026-06-05T00:45:23.1694704Z         },
2026-06-05T00:45:23.1695141Z         "impl": {
2026-06-05T00:45:23.1695751Z           "complete": true,
2026-06-05T00:45:23.1696207Z           "evidence": [
2026-06-05T00:45:23.1696620Z             {
2026-06-05T00:45:23.1697204Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1697649Z               "line": 14
2026-06-05T00:45:23.1698054Z             },
2026-06-05T00:45:23.1698467Z             {
2026-06-05T00:45:23.1699041Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:23.1699547Z               "line": 360
2026-06-05T00:45:23.1699966Z             }
2026-06-05T00:45:23.1700372Z           ]
2026-06-05T00:45:23.1700794Z         },
2026-06-05T00:45:23.1701208Z         "int": {
2026-06-05T00:45:23.1701675Z           "complete": false,
2026-06-05T00:45:23.1702124Z           "evidence": []
2026-06-05T00:45:23.1702539Z         },
2026-06-05T00:45:23.1702972Z         "unit": {
2026-06-05T00:45:23.1703431Z           "complete": true,
2026-06-05T00:45:23.1703879Z           "evidence": [
2026-06-05T00:45:23.1704305Z             {
2026-06-05T00:45:23.1704895Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1705337Z               "line": 130
2026-06-05T00:45:23.1705756Z             },
2026-06-05T00:45:23.1706167Z             {
2026-06-05T00:45:23.1706740Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1707190Z               "line": 138
2026-06-05T00:45:23.1707599Z             },
2026-06-05T00:45:23.1708017Z             {
2026-06-05T00:45:23.1708592Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1709041Z               "line": 146
2026-06-05T00:45:23.1709491Z             },
2026-06-05T00:45:23.1709904Z             {
2026-06-05T00:45:23.1710495Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1710938Z               "line": 154
2026-06-05T00:45:23.1711372Z             },
2026-06-05T00:45:23.1711780Z             {
2026-06-05T00:45:23.1712367Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1712817Z               "line": 162
2026-06-05T00:45:23.1713243Z             },
2026-06-05T00:45:23.1713654Z             {
2026-06-05T00:45:23.1714237Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T00:45:23.1714687Z               "line": 170
2026-06-05T00:45:23.1715104Z             }
2026-06-05T00:45:23.1715515Z           ]
2026-06-05T00:45:23.1715925Z         }
2026-06-05T00:45:23.1716325Z       }
2026-06-05T00:45:23.1716733Z     },
2026-06-05T00:45:23.1717132Z     {
2026-06-05T00:45:23.1717688Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-05T00:45:23.1723386Z       "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-05T00:45:23.1723898Z       "requiredStages": [
2026-06-05T00:45:23.1724334Z         "impl",
2026-06-05T00:45:23.1724748Z         "unit"
2026-06-05T00:45:23.1725192Z       ],
2026-06-05T00:45:23.1725614Z       "stages": {
2026-06-05T00:45:23.1726036Z         "doc": {
2026-06-05T00:45:23.1726504Z           "complete": false,
2026-06-05T00:45:23.1726946Z           "evidence": []
2026-06-05T00:45:23.1727363Z         },
2026-06-05T00:45:23.1727782Z         "impl": {
2026-06-05T00:45:23.1728248Z           "complete": true,
2026-06-05T00:45:23.1728691Z           "evidence": [
2026-06-05T00:45:23.1729108Z             {
2026-06-05T00:45:23.1729948Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1730392Z               "line": 34
2026-06-05T00:45:23.1730804Z             }
2026-06-05T00:45:23.1731216Z           ]
2026-06-05T00:45:23.1731626Z         },
2026-06-05T00:45:23.1732045Z         "int": {
2026-06-05T00:45:23.1732521Z           "complete": false,
2026-06-05T00:45:23.1733158Z           "evidence": []
2026-06-05T00:45:23.1733581Z         },
2026-06-05T00:45:23.1734012Z         "unit": {
2026-06-05T00:45:23.1734470Z           "complete": true,
2026-06-05T00:45:23.1735058Z           "evidence": [
2026-06-05T00:45:23.1735467Z             {
2026-06-05T00:45:23.1736270Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1736731Z               "line": 188
2026-06-05T00:45:23.1737139Z             },
2026-06-05T00:45:23.1737552Z             {
2026-06-05T00:45:23.1738334Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1738782Z               "line": 200
2026-06-05T00:45:23.1739228Z             },
2026-06-05T00:45:23.1739645Z             {
2026-06-05T00:45:23.1740425Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1740869Z               "line": 211
2026-06-05T00:45:23.1741287Z             },
2026-06-05T00:45:23.1741686Z             {
2026-06-05T00:45:23.1742487Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1742951Z               "line": 245
2026-06-05T00:45:23.1743360Z             },
2026-06-05T00:45:23.1743779Z             {
2026-06-05T00:45:23.1744553Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1745005Z               "line": 267
2026-06-05T00:45:23.1745417Z             },
2026-06-05T00:45:23.1745839Z             {
2026-06-05T00:45:23.1746632Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1747075Z               "line": 288
2026-06-05T00:45:23.1747495Z             },
2026-06-05T00:45:23.1747897Z             {
2026-06-05T00:45:23.1748679Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T00:45:23.1749128Z               "line": 304
2026-06-05T00:45:23.1749582Z             }
2026-06-05T00:45:23.1749997Z           ]
2026-06-05T00:45:23.1750403Z         }
2026-06-05T00:45:23.1756149Z       }
2026-06-05T00:45:23.1756701Z     },
2026-06-05T00:45:23.1757129Z     {
2026-06-05T00:45:23.1757739Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-05T00:45:23.1761504Z       "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-05T00:45:23.1762021Z       "requiredStages": [
2026-06-05T00:45:23.1762449Z         "impl",
2026-06-05T00:45:23.1762872Z         "unit"
2026-06-05T00:45:23.1763276Z       ],
2026-06-05T00:45:23.1763707Z       "stages": {
2026-06-05T00:45:23.1764123Z         "doc": {
2026-06-05T00:45:23.1764605Z           "complete": false,
2026-06-05T00:45:23.1765064Z           "evidence": []
2026-06-05T00:45:23.1765477Z         },
2026-06-05T00:45:23.1765906Z         "impl": {
2026-06-05T00:45:23.1766363Z           "complete": true,
2026-06-05T00:45:23.1766805Z           "evidence": [
2026-06-05T00:45:23.1767209Z             {
2026-06-05T00:45:23.1767848Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1768306Z               "line": 29
2026-06-05T00:45:23.1768716Z             },
2026-06-05T00:45:23.1769148Z             {
2026-06-05T00:45:23.1769829Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1770302Z               "line": 154
2026-06-05T00:45:23.1770710Z             },
2026-06-05T00:45:23.1771125Z             {
2026-06-05T00:45:23.1771755Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1772207Z               "line": 173
2026-06-05T00:45:23.1772627Z             },
2026-06-05T00:45:23.1773029Z             {
2026-06-05T00:45:23.1773654Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1774111Z               "line": 200
2026-06-05T00:45:23.1774521Z             }
2026-06-05T00:45:23.1774939Z           ]
2026-06-05T00:45:23.1775345Z         },
2026-06-05T00:45:23.1775767Z         "int": {
2026-06-05T00:45:23.1776475Z           "complete": false,
2026-06-05T00:45:23.1776963Z           "evidence": []
2026-06-05T00:45:23.1777389Z         },
2026-06-05T00:45:23.1777809Z         "unit": {
2026-06-05T00:45:23.1778421Z           "complete": true,
2026-06-05T00:45:23.1778859Z           "evidence": [
2026-06-05T00:45:23.1779324Z             {
2026-06-05T00:45:23.1779951Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1780428Z               "line": 276
2026-06-05T00:45:23.1780855Z             },
2026-06-05T00:45:23.1781260Z             {
2026-06-05T00:45:23.1781878Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1782323Z               "line": 291
2026-06-05T00:45:23.1782743Z             },
2026-06-05T00:45:23.1783148Z             {
2026-06-05T00:45:23.1783773Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1784220Z               "line": 310
2026-06-05T00:45:23.1784625Z             },
2026-06-05T00:45:23.1785034Z             {
2026-06-05T00:45:23.1785657Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1786113Z               "line": 326
2026-06-05T00:45:23.1786531Z             },
2026-06-05T00:45:23.1786970Z             {
2026-06-05T00:45:23.1787596Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1788049Z               "line": 376
2026-06-05T00:45:23.1788470Z             },
2026-06-05T00:45:23.1788874Z             {
2026-06-05T00:45:23.1791172Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1791660Z               "line": 390
2026-06-05T00:45:23.1792087Z             },
2026-06-05T00:45:23.1792508Z             {
2026-06-05T00:45:23.1793136Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1793586Z               "line": 401
2026-06-05T00:45:23.1793996Z             },
2026-06-05T00:45:23.1794420Z             {
2026-06-05T00:45:23.1795034Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.1795493Z               "line": 412
2026-06-05T00:45:23.1795927Z             }
2026-06-05T00:45:23.1796342Z           ]
2026-06-05T00:45:23.1796759Z         }
2026-06-05T00:45:23.1797165Z       }
2026-06-05T00:45:23.1797591Z     },
2026-06-05T00:45:23.1797994Z     {
2026-06-05T00:45:23.1798618Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-05T00:45:23.1802742Z       "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-05T00:45:23.1803231Z       "requiredStages": [
2026-06-05T00:45:23.1803659Z         "impl",
2026-06-05T00:45:23.1804074Z         "unit"
2026-06-05T00:45:23.1804488Z       ],
2026-06-05T00:45:23.1804925Z       "stages": {
2026-06-05T00:45:23.1805338Z         "doc": {
2026-06-05T00:45:23.1805812Z           "complete": false,
2026-06-05T00:45:23.1806260Z           "evidence": []
2026-06-05T00:45:23.1806679Z         },
2026-06-05T00:45:23.1807100Z         "impl": {
2026-06-05T00:45:23.1807613Z           "complete": true,
2026-06-05T00:45:23.1808059Z           "evidence": [
2026-06-05T00:45:23.1808481Z             {
2026-06-05T00:45:23.1809290Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1809735Z               "line": 27
2026-06-05T00:45:23.1810149Z             },
2026-06-05T00:45:23.1810555Z             {
2026-06-05T00:45:23.1811278Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1811721Z               "line": 110
2026-06-05T00:45:23.1812128Z             },
2026-06-05T00:45:23.1812539Z             {
2026-06-05T00:45:23.1813244Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1813695Z               "line": 153
2026-06-05T00:45:23.1814109Z             },
2026-06-05T00:45:23.1814521Z             {
2026-06-05T00:45:23.1815243Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1815696Z               "line": 182
2026-06-05T00:45:23.1816339Z             },
2026-06-05T00:45:23.1816777Z             {
2026-06-05T00:45:23.1817586Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1818173Z               "line": 31
2026-06-05T00:45:23.1818593Z             },
2026-06-05T00:45:23.1819020Z             {
2026-06-05T00:45:23.1819859Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1820317Z               "line": 113
2026-06-05T00:45:23.1820734Z             },
2026-06-05T00:45:23.1821160Z             {
2026-06-05T00:45:23.1821955Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1822409Z               "line": 138
2026-06-05T00:45:23.1822830Z             }
2026-06-05T00:45:23.1823240Z           ]
2026-06-05T00:45:23.1823653Z         },
2026-06-05T00:45:23.1824073Z         "int": {
2026-06-05T00:45:23.1824564Z           "complete": false,
2026-06-05T00:45:23.1825043Z           "evidence": []
2026-06-05T00:45:23.1825481Z         },
2026-06-05T00:45:23.1825916Z         "unit": {
2026-06-05T00:45:23.1826373Z           "complete": true,
2026-06-05T00:45:23.1826824Z           "evidence": [
2026-06-05T00:45:23.1827246Z             {
2026-06-05T00:45:23.1827978Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1828426Z               "line": 261
2026-06-05T00:45:23.1828848Z             },
2026-06-05T00:45:23.1829313Z             {
2026-06-05T00:45:23.1830028Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1830486Z               "line": 276
2026-06-05T00:45:23.1830902Z             },
2026-06-05T00:45:23.1831319Z             {
2026-06-05T00:45:23.1832031Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1832487Z               "line": 293
2026-06-05T00:45:23.1832905Z             },
2026-06-05T00:45:23.1833316Z             {
2026-06-05T00:45:23.1834042Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1834501Z               "line": 310
2026-06-05T00:45:23.1834931Z             },
2026-06-05T00:45:23.1835357Z             {
2026-06-05T00:45:23.1836069Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1836529Z               "line": 327
2026-06-05T00:45:23.1836938Z             },
2026-06-05T00:45:23.1837357Z             {
2026-06-05T00:45:23.1838071Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.1838524Z               "line": 366
2026-06-05T00:45:23.1838952Z             },
2026-06-05T00:45:23.1839390Z             {
2026-06-05T00:45:23.1840204Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1840646Z               "line": 179
2026-06-05T00:45:23.1841062Z             },
2026-06-05T00:45:23.1841475Z             {
2026-06-05T00:45:23.1842282Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1842733Z               "line": 194
2026-06-05T00:45:23.1843158Z             },
2026-06-05T00:45:23.1849287Z             {
2026-06-05T00:45:23.1850261Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1850770Z               "line": 204
2026-06-05T00:45:23.1851196Z             },
2026-06-05T00:45:23.1851615Z             {
2026-06-05T00:45:23.1852445Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1852893Z               "line": 259
2026-06-05T00:45:23.1853315Z             },
2026-06-05T00:45:23.1853724Z             {
2026-06-05T00:45:23.1854539Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1854992Z               "line": 269
2026-06-05T00:45:23.1855418Z             },
2026-06-05T00:45:23.1855837Z             {
2026-06-05T00:45:23.1856630Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.1857082Z               "line": 283
2026-06-05T00:45:23.1857496Z             }
2026-06-05T00:45:23.1857908Z           ]
2026-06-05T00:45:23.1858566Z         }
2026-06-05T00:45:23.1859007Z       }
2026-06-05T00:45:23.1859464Z     },
2026-06-05T00:45:23.1859864Z     {
2026-06-05T00:45:23.1860450Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-05T00:45:23.1861703Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-05T00:45:23.1862194Z       "requiredStages": [],
2026-06-05T00:45:23.1862628Z       "stages": {
2026-06-05T00:45:23.1863044Z         "doc": {
2026-06-05T00:45:23.1863514Z           "complete": false,
2026-06-05T00:45:23.1863960Z           "evidence": []
2026-06-05T00:45:23.1864375Z         },
2026-06-05T00:45:23.1864794Z         "impl": {
2026-06-05T00:45:23.1865262Z           "complete": false,
2026-06-05T00:45:23.1865714Z           "evidence": []
2026-06-05T00:45:23.1866118Z         },
2026-06-05T00:45:23.1866544Z         "int": {
2026-06-05T00:45:23.1867005Z           "complete": false,
2026-06-05T00:45:23.1867458Z           "evidence": []
2026-06-05T00:45:23.1867863Z         },
2026-06-05T00:45:23.1868295Z         "unit": {
2026-06-05T00:45:23.1868756Z           "complete": false,
2026-06-05T00:45:23.1869258Z           "evidence": []
2026-06-05T00:45:23.1869689Z         }
2026-06-05T00:45:23.1870086Z       }
2026-06-05T00:45:23.1870501Z     },
2026-06-05T00:45:23.1870900Z     {
2026-06-05T00:45:23.1871556Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-05T00:45:23.1882941Z       "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-05T00:45:23.1883486Z       "requiredStages": [
2026-06-05T00:45:23.1883919Z         "impl",
2026-06-05T00:45:23.1884335Z         "unit"
2026-06-05T00:45:23.1884757Z       ],
2026-06-05T00:45:23.1885200Z       "stages": {
2026-06-05T00:45:23.1885622Z         "doc": {
2026-06-05T00:45:23.1886097Z           "complete": false,
2026-06-05T00:45:23.1886608Z           "evidence": []
2026-06-05T00:45:23.1887033Z         },
2026-06-05T00:45:23.1887452Z         "impl": {
2026-06-05T00:45:23.1887923Z           "complete": true,
2026-06-05T00:45:23.1888391Z           "evidence": [
2026-06-05T00:45:23.1888813Z             {
2026-06-05T00:45:23.1889525Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1889965Z               "line": 26
2026-06-05T00:45:23.1890386Z             },
2026-06-05T00:45:23.1890790Z             {
2026-06-05T00:45:23.1891451Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1891896Z               "line": 93
2026-06-05T00:45:23.1892304Z             },
2026-06-05T00:45:23.1892717Z             {
2026-06-05T00:45:23.1893366Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1893811Z               "line": 158
2026-06-05T00:45:23.1894214Z             },
2026-06-05T00:45:23.1894623Z             {
2026-06-05T00:45:23.1895276Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1895707Z               "line": 19
2026-06-05T00:45:23.1896121Z             },
2026-06-05T00:45:23.1896520Z             {
2026-06-05T00:45:23.1897173Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1897605Z               "line": 50
2026-06-05T00:45:23.1898025Z             },
2026-06-05T00:45:23.1898433Z             {
2026-06-05T00:45:23.1899012Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T00:45:23.1899484Z               "line": 18
2026-06-05T00:45:23.1899893Z             },
2026-06-05T00:45:23.1900306Z             {
2026-06-05T00:45:23.1900892Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T00:45:23.1901329Z               "line": 65
2026-06-05T00:45:23.1901753Z             },
2026-06-05T00:45:23.1902155Z             {
2026-06-05T00:45:23.1902772Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:23.1903204Z               "line": 70
2026-06-05T00:45:23.1903621Z             }
2026-06-05T00:45:23.1904348Z           ]
2026-06-05T00:45:23.1904789Z         },
2026-06-05T00:45:23.1905214Z         "int": {
2026-06-05T00:45:23.1905678Z           "complete": false,
2026-06-05T00:45:23.1906280Z           "evidence": []
2026-06-05T00:45:23.1906680Z         },
2026-06-05T00:45:23.1907098Z         "unit": {
2026-06-05T00:45:23.1907559Z           "complete": true,
2026-06-05T00:45:23.1908002Z           "evidence": [
2026-06-05T00:45:23.1908411Z             {
2026-06-05T00:45:23.1909063Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1909555Z               "line": 276
2026-06-05T00:45:23.1909962Z             },
2026-06-05T00:45:23.1910377Z             {
2026-06-05T00:45:23.1911027Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1911471Z               "line": 295
2026-06-05T00:45:23.1911887Z             },
2026-06-05T00:45:23.1912297Z             {
2026-06-05T00:45:23.1912959Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1913408Z               "line": 323
2026-06-05T00:45:23.1913825Z             },
2026-06-05T00:45:23.1914231Z             {
2026-06-05T00:45:23.1914913Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1915555Z               "line": 372
2026-06-05T00:45:23.1916328Z             },
2026-06-05T00:45:23.1917607Z             {
2026-06-05T00:45:23.1918883Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1920890Z               "line": 383
2026-06-05T00:45:23.1922038Z             },
2026-06-05T00:45:23.1923073Z             {
2026-06-05T00:45:23.1924589Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1926388Z               "line": 414
2026-06-05T00:45:23.1927750Z             },
2026-06-05T00:45:23.1929036Z             {
2026-06-05T00:45:23.1930598Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.1932380Z               "line": 425
2026-06-05T00:45:23.1933656Z             },
2026-06-05T00:45:23.1934970Z             {
2026-06-05T00:45:23.1936384Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1938140Z               "line": 77
2026-06-05T00:45:23.1939488Z             },
2026-06-05T00:45:23.1940647Z             {
2026-06-05T00:45:23.1953654Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1955295Z               "line": 95
2026-06-05T00:45:23.1956556Z             },
2026-06-05T00:45:23.1957562Z             {
2026-06-05T00:45:23.1958763Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1960377Z               "line": 106
2026-06-05T00:45:23.1961493Z             },
2026-06-05T00:45:23.1962466Z             {
2026-06-05T00:45:23.1963649Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1965188Z               "line": 117
2026-06-05T00:45:23.1966311Z             },
2026-06-05T00:45:23.1967283Z             {
2026-06-05T00:45:23.1968498Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1970075Z               "line": 124
2026-06-05T00:45:23.1971195Z             },
2026-06-05T00:45:23.1972168Z             {
2026-06-05T00:45:23.1973389Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T00:45:23.1974941Z               "line": 137
2026-06-05T00:45:23.1976062Z             },
2026-06-05T00:45:23.1977049Z             {
2026-06-05T00:45:23.1978179Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T00:45:23.1979702Z               "line": 106
2026-06-05T00:45:23.1980824Z             },
2026-06-05T00:45:23.1981796Z             {
2026-06-05T00:45:23.1982930Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T00:45:23.1984417Z               "line": 118
2026-06-05T00:45:23.1985538Z             },
2026-06-05T00:45:23.1986523Z             {
2026-06-05T00:45:23.1987688Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T00:45:23.1989240Z               "line": 336
2026-06-05T00:45:23.1990361Z             }
2026-06-05T00:45:23.1991656Z           ]
2026-06-05T00:45:23.1992620Z         }
2026-06-05T00:45:23.1993532Z       }
2026-06-05T00:45:23.1994432Z     },
2026-06-05T00:45:23.1995570Z     {
2026-06-05T00:45:23.1996660Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-05T00:45:23.1999288Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-05T00:45:23.2001824Z       "requiredStages": [
2026-06-05T00:45:23.2002970Z         "impl",
2026-06-05T00:45:23.2004045Z         "unit"
2026-06-05T00:45:23.2005019Z       ],
2026-06-05T00:45:23.2005954Z       "stages": {
2026-06-05T00:45:23.2006969Z         "doc": {
2026-06-05T00:45:23.2008025Z           "complete": true,
2026-06-05T00:45:23.2009242Z           "evidence": [
2026-06-05T00:45:23.2010328Z             {
2026-06-05T00:45:23.2011435Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.2012890Z               "line": 137
2026-06-05T00:45:23.2014000Z             }
2026-06-05T00:45:23.2014972Z           ]
2026-06-05T00:45:23.2015907Z         },
2026-06-05T00:45:23.2016852Z         "impl": {
2026-06-05T00:45:23.2017923Z           "complete": true,
2026-06-05T00:45:23.2019121Z           "evidence": [
2026-06-05T00:45:23.2020246Z             {
2026-06-05T00:45:23.2021365Z               "path": "crates/spt-store/src/db.rs",
2026-06-05T00:45:23.2022861Z               "line": 29
2026-06-05T00:45:23.2023972Z             },
2026-06-05T00:45:23.2024948Z             {
2026-06-05T00:45:23.2026114Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.2027652Z               "line": 101
2026-06-05T00:45:23.2028767Z             },
2026-06-05T00:45:23.2029784Z             {
2026-06-05T00:45:23.2030971Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2032546Z               "line": 30
2026-06-05T00:45:23.2033664Z             },
2026-06-05T00:45:23.2034644Z             {
2026-06-05T00:45:23.2035808Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.2037365Z               "line": 48
2026-06-05T00:45:23.2038500Z             }
2026-06-05T00:45:23.2039490Z           ]
2026-06-05T00:45:23.2040427Z         },
2026-06-05T00:45:23.2041378Z         "int": {
2026-06-05T00:45:23.2042435Z           "complete": false,
2026-06-05T00:45:23.2043661Z           "evidence": []
2026-06-05T00:45:23.2044777Z         },
2026-06-05T00:45:23.2045720Z         "unit": {
2026-06-05T00:45:23.2046774Z           "complete": true,
2026-06-05T00:45:23.2048000Z           "evidence": [
2026-06-05T00:45:23.2056206Z             {
2026-06-05T00:45:23.2057604Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2059268Z               "line": 152
2026-06-05T00:45:23.2060401Z             }
2026-06-05T00:45:23.2061397Z           ]
2026-06-05T00:45:23.2062867Z         }
2026-06-05T00:45:23.2063928Z       }
2026-06-05T00:45:23.2065190Z     },
2026-06-05T00:45:23.2066175Z     {
2026-06-05T00:45:23.2067430Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-05T00:45:23.2070960Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-05T00:45:23.2073982Z       "requiredStages": [
2026-06-05T00:45:23.2075146Z         "doc",
2026-06-05T00:45:23.2076137Z         "impl",
2026-06-05T00:45:23.2077141Z         "unit"
2026-06-05T00:45:23.2078131Z       ],
2026-06-05T00:45:23.2079068Z       "stages": {
2026-06-05T00:45:23.2080142Z         "doc": {
2026-06-05T00:45:23.2081195Z           "complete": true,
2026-06-05T00:45:23.2082384Z           "evidence": [
2026-06-05T00:45:23.2083471Z             {
2026-06-05T00:45:23.2084578Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.2086048Z               "line": 149
2026-06-05T00:45:23.2087175Z             }
2026-06-05T00:45:23.2088149Z           ]
2026-06-05T00:45:23.2089081Z         },
2026-06-05T00:45:23.2090065Z         "impl": {
2026-06-05T00:45:23.2091120Z           "complete": true,
2026-06-05T00:45:23.2092311Z           "evidence": [
2026-06-05T00:45:23.2093789Z             {
2026-06-05T00:45:23.2095047Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2096626Z               "line": 22
2026-06-05T00:45:23.2097925Z             }
2026-06-05T00:45:23.2098910Z           ]
2026-06-05T00:45:23.2099905Z         },
2026-06-05T00:45:23.2100845Z         "int": {
2026-06-05T00:45:23.2101914Z           "complete": false,
2026-06-05T00:45:23.2103148Z           "evidence": []
2026-06-05T00:45:23.2104282Z         },
2026-06-05T00:45:23.2105231Z         "unit": {
2026-06-05T00:45:23.2106286Z           "complete": true,
2026-06-05T00:45:23.2107490Z           "evidence": [
2026-06-05T00:45:23.2108573Z             {
2026-06-05T00:45:23.2109817Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2111396Z               "line": 257
2026-06-05T00:45:23.2112516Z             }
2026-06-05T00:45:23.2113479Z           ]
2026-06-05T00:45:23.2114417Z         }
2026-06-05T00:45:23.2115330Z       }
2026-06-05T00:45:23.2116277Z     },
2026-06-05T00:45:23.2117203Z     {
2026-06-05T00:45:23.2118312Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-05T00:45:23.2122012Z       "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-05T00:45:23.2126090Z       "requiredStages": [
2026-06-05T00:45:23.2127529Z         "impl",
2026-06-05T00:45:23.2128609Z         "unit"
2026-06-05T00:45:23.2130157Z       ],
2026-06-05T00:45:23.2131180Z       "stages": {
2026-06-05T00:45:23.2132297Z         "doc": {
2026-06-05T00:45:23.2133433Z           "complete": true,
2026-06-05T00:45:23.2134719Z           "evidence": [
2026-06-05T00:45:23.2135852Z             {
2026-06-05T00:45:23.2137017Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.2138560Z               "line": 143
2026-06-05T00:45:23.2140002Z             }
2026-06-05T00:45:23.2141071Z           ]
2026-06-05T00:45:23.2142106Z         },
2026-06-05T00:45:23.2143209Z         "impl": {
2026-06-05T00:45:23.2144475Z           "complete": true,
2026-06-05T00:45:23.2145739Z           "evidence": [
2026-06-05T00:45:23.2146924Z             {
2026-06-05T00:45:23.2148446Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2150408Z               "line": 134
2026-06-05T00:45:23.2151740Z             },
2026-06-05T00:45:23.2152706Z             {
2026-06-05T00:45:23.2154025Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T00:45:23.2155740Z               "line": 15
2026-06-05T00:45:23.2156845Z             }
2026-06-05T00:45:23.2157810Z           ]
2026-06-05T00:45:23.2158752Z         },
2026-06-05T00:45:23.2167630Z         "int": {
2026-06-05T00:45:23.2168943Z           "complete": false,
2026-06-05T00:45:23.2170270Z           "evidence": []
2026-06-05T00:45:23.2171378Z         },
2026-06-05T00:45:23.2172314Z         "unit": {
2026-06-05T00:45:23.2173353Z           "complete": true,
2026-06-05T00:45:23.2174533Z           "evidence": [
2026-06-05T00:45:23.2175655Z             {
2026-06-05T00:45:23.2176904Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-05T00:45:23.2178509Z               "line": 87
2026-06-05T00:45:23.2179667Z             },
2026-06-05T00:45:23.2180638Z             {
2026-06-05T00:45:23.2181844Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2183406Z               "line": 570
2026-06-05T00:45:23.2184520Z             },
2026-06-05T00:45:23.2185486Z             {
2026-06-05T00:45:23.2186696Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2188297Z               "line": 589
2026-06-05T00:45:23.2189454Z             },
2026-06-05T00:45:23.2190434Z             {
2026-06-05T00:45:23.2191662Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.2193250Z               "line": 148
2026-06-05T00:45:23.2194372Z             },
2026-06-05T00:45:23.2195340Z             {
2026-06-05T00:45:23.2196952Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T00:45:23.2198496Z               "line": 74
2026-06-05T00:45:23.2199644Z             },
2026-06-05T00:45:23.2200612Z             {
2026-06-05T00:45:23.2201939Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T00:45:23.2203449Z               "line": 88
2026-06-05T00:45:23.2204553Z             },
2026-06-05T00:45:23.2205526Z             {
2026-06-05T00:45:23.2206676Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T00:45:23.2208188Z               "line": 104
2026-06-05T00:45:23.2209363Z             }
2026-06-05T00:45:23.2210325Z           ]
2026-06-05T00:45:23.2211256Z         }
2026-06-05T00:45:23.2212173Z       }
2026-06-05T00:45:23.2213068Z     },
2026-06-05T00:45:23.2213973Z     {
2026-06-05T00:45:23.2215072Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-05T00:45:23.2217216Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-05T00:45:23.2219348Z       "requiredStages": [
2026-06-05T00:45:23.2220539Z         "impl",
2026-06-05T00:45:23.2221536Z         "unit"
2026-06-05T00:45:23.2222514Z       ],
2026-06-05T00:45:23.2223445Z       "stages": {
2026-06-05T00:45:23.2224475Z         "doc": {
2026-06-05T00:45:23.2225520Z           "complete": false,
2026-06-05T00:45:23.2226732Z           "evidence": []
2026-06-05T00:45:23.2227836Z         },
2026-06-05T00:45:23.2228772Z         "impl": {
2026-06-05T00:45:23.2229864Z           "complete": true,
2026-06-05T00:45:23.2231041Z           "evidence": [
2026-06-05T00:45:23.2232116Z             {
2026-06-05T00:45:23.2233265Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T00:45:23.2234775Z               "line": 15
2026-06-05T00:45:23.2235870Z             },
2026-06-05T00:45:23.2236838Z             {
2026-06-05T00:45:23.2238025Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2239627Z               "line": 55
2026-06-05T00:45:23.2240730Z             },
2026-06-05T00:45:23.2241700Z             {
2026-06-05T00:45:23.2242901Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2244453Z               "line": 62
2026-06-05T00:45:23.2245549Z             },
2026-06-05T00:45:23.2246537Z             {
2026-06-05T00:45:23.2247733Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2249339Z               "line": 107
2026-06-05T00:45:23.2250456Z             },
2026-06-05T00:45:23.2251417Z             {
2026-06-05T00:45:23.2252607Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2254153Z               "line": 128
2026-06-05T00:45:23.2255263Z             }
2026-06-05T00:45:23.2256222Z           ]
2026-06-05T00:45:23.2257171Z         },
2026-06-05T00:45:23.2258129Z         "int": {
2026-06-05T00:45:23.2259227Z           "complete": false,
2026-06-05T00:45:23.2260443Z           "evidence": []
2026-06-05T00:45:23.2261540Z         },
2026-06-05T00:45:23.2262468Z         "unit": {
2026-06-05T00:45:23.2263512Z           "complete": true,
2026-06-05T00:45:23.2271078Z           "evidence": [
2026-06-05T00:45:23.2272331Z             {
2026-06-05T00:45:23.2273494Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T00:45:23.2275039Z               "line": 113
2026-06-05T00:45:23.2276147Z             },
2026-06-05T00:45:23.2277115Z             {
2026-06-05T00:45:23.2278255Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T00:45:23.2279837Z               "line": 119
2026-06-05T00:45:23.2280944Z             },
2026-06-05T00:45:23.2281916Z             {
2026-06-05T00:45:23.2283056Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T00:45:23.2284564Z               "line": 130
2026-06-05T00:45:23.2285684Z             },
2026-06-05T00:45:23.2286689Z             {
2026-06-05T00:45:23.2287869Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2289465Z               "line": 183
2026-06-05T00:45:23.2290574Z             },
2026-06-05T00:45:23.2291532Z             {
2026-06-05T00:45:23.2292999Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2294591Z               "line": 193
2026-06-05T00:45:23.2295707Z             },
2026-06-05T00:45:23.2296828Z             {
2026-06-05T00:45:23.2298005Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2299603Z               "line": 237
2026-06-05T00:45:23.2300713Z             },
2026-06-05T00:45:23.2301673Z             {
2026-06-05T00:45:23.2302848Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2304392Z               "line": 249
2026-06-05T00:45:23.2305517Z             },
2026-06-05T00:45:23.2306470Z             {
2026-06-05T00:45:23.2307655Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.2309248Z               "line": 275
2026-06-05T00:45:23.2310362Z             }
2026-06-05T00:45:23.2311320Z           ]
2026-06-05T00:45:23.2312246Z         }
2026-06-05T00:45:23.2313146Z       }
2026-06-05T00:45:23.2314043Z     },
2026-06-05T00:45:23.2314963Z     {
2026-06-05T00:45:23.2316033Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-05T00:45:23.2318713Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-05T00:45:23.2321422Z       "requiredStages": [
2026-06-05T00:45:23.2322570Z         "impl",
2026-06-05T00:45:23.2323554Z         "unit",
2026-06-05T00:45:23.2324529Z         "int"
2026-06-05T00:45:23.2325479Z       ],
2026-06-05T00:45:23.2326426Z       "stages": {
2026-06-05T00:45:23.2327422Z         "doc": {
2026-06-05T00:45:23.2328459Z           "complete": false,
2026-06-05T00:45:23.2329712Z           "evidence": []
2026-06-05T00:45:23.2330816Z         },
2026-06-05T00:45:23.2331745Z         "impl": {
2026-06-05T00:45:23.2332782Z           "complete": true,
2026-06-05T00:45:23.2333962Z           "evidence": [
2026-06-05T00:45:23.2335034Z             {
2026-06-05T00:45:23.2336190Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.2337713Z               "line": 246
2026-06-05T00:45:23.2338828Z             },
2026-06-05T00:45:23.2339842Z             {
2026-06-05T00:45:23.2340993Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.2342530Z               "line": 506
2026-06-05T00:45:23.2343645Z             },
2026-06-05T00:45:23.2344603Z             {
2026-06-05T00:45:23.2345765Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.2347287Z               "line": 529
2026-06-05T00:45:23.2348398Z             },
2026-06-05T00:45:23.2349404Z             {
2026-06-05T00:45:23.2350567Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.2352097Z               "line": 553
2026-06-05T00:45:23.2353205Z             },
2026-06-05T00:45:23.2354169Z             {
2026-06-05T00:45:23.2355333Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.2356887Z               "line": 472
2026-06-05T00:45:23.2357997Z             },
2026-06-05T00:45:23.2358965Z             {
2026-06-05T00:45:23.2360181Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.2361725Z               "line": 553
2026-06-05T00:45:23.2362838Z             },
2026-06-05T00:45:23.2363820Z             {
2026-06-05T00:45:23.2364993Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.2366545Z               "line": 597
2026-06-05T00:45:23.2367647Z             },
2026-06-05T00:45:23.2368601Z             {
2026-06-05T00:45:23.2375479Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T00:45:23.2377105Z               "line": 640
2026-06-05T00:45:23.2378221Z             },
2026-06-05T00:45:23.2379280Z             {
2026-06-05T00:45:23.2380486Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.2382038Z               "line": 46
2026-06-05T00:45:23.2383141Z             },
2026-06-05T00:45:23.2384107Z             {
2026-06-05T00:45:23.2385278Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.2386831Z               "line": 160
2026-06-05T00:45:23.2388239Z             },
2026-06-05T00:45:23.2389291Z             {
2026-06-05T00:45:23.2390432Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T00:45:23.2392184Z               "line": 71
2026-06-05T00:45:23.2393283Z             },
2026-06-05T00:45:23.2394253Z             {
2026-06-05T00:45:23.2395416Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.2396931Z               "line": 128
2026-06-05T00:45:23.2398042Z             },
2026-06-05T00:45:23.2399009Z             {
2026-06-05T00:45:23.2400457Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.2401999Z               "line": 174
2026-06-05T00:45:23.2403125Z             }
2026-06-05T00:45:23.2404081Z           ]
2026-06-05T00:45:23.2405006Z         },
2026-06-05T00:45:23.2405933Z         "int": {
2026-06-05T00:45:23.2406965Z           "complete": true,
2026-06-05T00:45:23.2408143Z           "evidence": [
2026-06-05T00:45:23.2409253Z             {
2026-06-05T00:45:23.2410522Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-05T00:45:23.2412170Z               "line": 27
2026-06-05T00:45:23.2413271Z             },
2026-06-05T00:45:23.2414254Z             {
2026-06-05T00:45:23.2415513Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T00:45:23.2417131Z               "line": 125
2026-06-05T00:45:23.2418246Z             },
2026-06-05T00:45:23.2419246Z             {
2026-06-05T00:45:23.2420488Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-05T00:45:23.2422106Z               "line": 189
2026-06-05T00:45:23.2423230Z             }
2026-06-05T00:45:23.2424182Z           ]
2026-06-05T00:45:23.2425113Z         },
2026-06-05T00:45:23.2426043Z         "unit": {
2026-06-05T00:45:23.2427081Z           "complete": true,
2026-06-05T00:45:23.2428268Z           "evidence": [
2026-06-05T00:45:23.2429385Z             {
2026-06-05T00:45:23.2430575Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.2432162Z               "line": 282
2026-06-05T00:45:23.2433267Z             },
2026-06-05T00:45:23.2434230Z             {
2026-06-05T00:45:23.2435404Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.2436989Z               "line": 300
2026-06-05T00:45:23.2438090Z             },
2026-06-05T00:45:23.2439055Z             {
2026-06-05T00:45:23.2440278Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T00:45:23.2441845Z               "line": 318
2026-06-05T00:45:23.2442967Z             },
2026-06-05T00:45:23.2443922Z             {
2026-06-05T00:45:23.2445110Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T00:45:23.2446686Z               "line": 221
2026-06-05T00:45:23.2447806Z             },
2026-06-05T00:45:23.2448772Z             {
2026-06-05T00:45:23.2450007Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T00:45:23.2451575Z               "line": 204
2026-06-05T00:45:23.2452691Z             },
2026-06-05T00:45:23.2453664Z             {
2026-06-05T00:45:23.2454854Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T00:45:23.2456407Z               "line": 182
2026-06-05T00:45:23.2457537Z             },
2026-06-05T00:45:23.2458502Z             {
2026-06-05T00:45:23.2459696Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.2461225Z               "line": 441
2026-06-05T00:45:23.2462360Z             },
2026-06-05T00:45:23.2463328Z             {
2026-06-05T00:45:23.2464473Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.2466004Z               "line": 465
2026-06-05T00:45:23.2467116Z             }
2026-06-05T00:45:23.2468073Z           ]
2026-06-05T00:45:23.2468992Z         }
2026-06-05T00:45:23.2469941Z       }
2026-06-05T00:45:23.2470839Z     },
2026-06-05T00:45:23.2471750Z     {
2026-06-05T00:45:23.2478830Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-05T00:45:23.2481044Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-05T00:45:23.2483381Z       "requiredStages": [
2026-06-05T00:45:23.2484575Z         "impl",
2026-06-05T00:45:23.2485562Z         "unit"
2026-06-05T00:45:23.2486531Z       ],
2026-06-05T00:45:23.2487633Z       "stages": {
2026-06-05T00:45:23.2488660Z         "doc": {
2026-06-05T00:45:23.2489789Z           "complete": false,
2026-06-05T00:45:23.2491030Z           "evidence": []
2026-06-05T00:45:23.2492140Z         },
2026-06-05T00:45:23.2493076Z         "impl": {
2026-06-05T00:45:23.2494113Z           "complete": true,
2026-06-05T00:45:23.2495297Z           "evidence": [
2026-06-05T00:45:23.2496370Z             {
2026-06-05T00:45:23.2497609Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.2499268Z               "line": 56
2026-06-05T00:45:23.2500364Z             },
2026-06-05T00:45:23.2501338Z             {
2026-06-05T00:45:23.2502573Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.2504168Z               "line": 65
2026-06-05T00:45:23.2505282Z             },
2026-06-05T00:45:23.2506249Z             {
2026-06-05T00:45:23.2507488Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.2509103Z               "line": 72
2026-06-05T00:45:23.2510242Z             },
2026-06-05T00:45:23.2511209Z             {
2026-06-05T00:45:23.2512363Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2513872Z               "line": 33
2026-06-05T00:45:23.2514974Z             },
2026-06-05T00:45:23.2515932Z             {
2026-06-05T00:45:23.2517081Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2518606Z               "line": 61
2026-06-05T00:45:23.2519744Z             },
2026-06-05T00:45:23.2520713Z             {
2026-06-05T00:45:23.2521862Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2523367Z               "line": 70
2026-06-05T00:45:23.2524463Z             },
2026-06-05T00:45:23.2525429Z             {
2026-06-05T00:45:23.2526591Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2528100Z               "line": 79
2026-06-05T00:45:23.2529226Z             },
2026-06-05T00:45:23.2530397Z             {
2026-06-05T00:45:23.2532056Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2533845Z               "line": 88
2026-06-05T00:45:23.2535035Z             },
2026-06-05T00:45:23.2536359Z             {
2026-06-05T00:45:23.2537529Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2539034Z               "line": 97
2026-06-05T00:45:23.2540206Z             },
2026-06-05T00:45:23.2541182Z             {
2026-06-05T00:45:23.2542340Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2543864Z               "line": 105
2026-06-05T00:45:23.2544978Z             },
2026-06-05T00:45:23.2545949Z             {
2026-06-05T00:45:23.2547101Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2548613Z               "line": 114
2026-06-05T00:45:23.2549761Z             },
2026-06-05T00:45:23.2550767Z             {
2026-06-05T00:45:23.2551937Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2553450Z               "line": 123
2026-06-05T00:45:23.2554598Z             },
2026-06-05T00:45:23.2555576Z             {
2026-06-05T00:45:23.2556748Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2558266Z               "line": 130
2026-06-05T00:45:23.2559413Z             },
2026-06-05T00:45:23.2560395Z             {
2026-06-05T00:45:23.2561544Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2563052Z               "line": 137
2026-06-05T00:45:23.2564148Z             },
2026-06-05T00:45:23.2565122Z             {
2026-06-05T00:45:23.2566277Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2567798Z               "line": 145
2026-06-05T00:45:23.2568906Z             },
2026-06-05T00:45:23.2569929Z             {
2026-06-05T00:45:23.2571331Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2572891Z               "line": 154
2026-06-05T00:45:23.2574011Z             },
2026-06-05T00:45:23.2574416Z             {
2026-06-05T00:45:23.2575190Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2575634Z               "line": 163
2026-06-05T00:45:23.2576038Z             },
2026-06-05T00:45:23.2576454Z             {
2026-06-05T00:45:23.2577068Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2577518Z               "line": 172
2026-06-05T00:45:23.2577931Z             },
2026-06-05T00:45:23.2578356Z             {
2026-06-05T00:45:23.2578970Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2579454Z               "line": 184
2026-06-05T00:45:23.2579871Z             },
2026-06-05T00:45:23.2580274Z             {
2026-06-05T00:45:23.2580882Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2581331Z               "line": 191
2026-06-05T00:45:23.2581738Z             },
2026-06-05T00:45:23.2582162Z             {
2026-06-05T00:45:23.2582772Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2588945Z               "line": 200
2026-06-05T00:45:23.2589655Z             },
2026-06-05T00:45:23.2590083Z             {
2026-06-05T00:45:23.2590734Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2591190Z               "line": 207
2026-06-05T00:45:23.2591610Z             },
2026-06-05T00:45:23.2592016Z             {
2026-06-05T00:45:23.2592634Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2593069Z               "line": 274
2026-06-05T00:45:23.2593485Z             },
2026-06-05T00:45:23.2593884Z             {
2026-06-05T00:45:23.2594503Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2594951Z               "line": 286
2026-06-05T00:45:23.2595361Z             },
2026-06-05T00:45:23.2595777Z             {
2026-06-05T00:45:23.2596379Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2596848Z               "line": 373
2026-06-05T00:45:23.2597263Z             }
2026-06-05T00:45:23.2597682Z           ]
2026-06-05T00:45:23.2598091Z         },
2026-06-05T00:45:23.2598514Z         "int": {
2026-06-05T00:45:23.2598984Z           "complete": false,
2026-06-05T00:45:23.2599465Z           "evidence": []
2026-06-05T00:45:23.2599885Z         },
2026-06-05T00:45:23.2600300Z         "unit": {
2026-06-05T00:45:23.2600759Z           "complete": true,
2026-06-05T00:45:23.2601200Z           "evidence": [
2026-06-05T00:45:23.2601606Z             {
2026-06-05T00:45:23.2602221Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2602660Z               "line": 443
2026-06-05T00:45:23.2603075Z             },
2026-06-05T00:45:23.2603475Z             {
2026-06-05T00:45:23.2604093Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2604539Z               "line": 469
2026-06-05T00:45:23.2604950Z             },
2026-06-05T00:45:23.2605367Z             {
2026-06-05T00:45:23.2605978Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2606425Z               "line": 482
2026-06-05T00:45:23.2606831Z             },
2026-06-05T00:45:23.2607256Z             {
2026-06-05T00:45:23.2608040Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2608813Z               "line": 547
2026-06-05T00:45:23.2609357Z             }
2026-06-05T00:45:23.2609843Z           ]
2026-06-05T00:45:23.2610445Z         }
2026-06-05T00:45:23.2610887Z       }
2026-06-05T00:45:23.2611327Z     },
2026-06-05T00:45:23.2611767Z     {
2026-06-05T00:45:23.2612323Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-05T00:45:23.2613470Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-05T00:45:23.2613983Z       "requiredStages": [
2026-06-05T00:45:23.2614429Z         "impl",
2026-06-05T00:45:23.2614884Z         "unit"
2026-06-05T00:45:23.2615311Z       ],
2026-06-05T00:45:23.2615760Z       "stages": {
2026-06-05T00:45:23.2616488Z         "doc": {
2026-06-05T00:45:23.2617011Z           "complete": false,
2026-06-05T00:45:23.2617489Z           "evidence": []
2026-06-05T00:45:23.2617945Z         },
2026-06-05T00:45:23.2618590Z         "impl": {
2026-06-05T00:45:23.2619119Z           "complete": true,
2026-06-05T00:45:23.2619953Z           "evidence": [
2026-06-05T00:45:23.2620369Z             {
2026-06-05T00:45:23.2621001Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.2621462Z               "line": 132
2026-06-05T00:45:23.2621899Z             },
2026-06-05T00:45:23.2622333Z             {
2026-06-05T00:45:23.2623024Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.2623507Z               "line": 130
2026-06-05T00:45:23.2623954Z             }
2026-06-05T00:45:23.2624383Z           ]
2026-06-05T00:45:23.2624830Z         },
2026-06-05T00:45:23.2625473Z         "int": {
2026-06-05T00:45:23.2626042Z           "complete": false,
2026-06-05T00:45:23.2626870Z           "evidence": []
2026-06-05T00:45:23.2627366Z         },
2026-06-05T00:45:23.2627857Z         "unit": {
2026-06-05T00:45:23.2628373Z           "complete": true,
2026-06-05T00:45:23.2628895Z           "evidence": [
2026-06-05T00:45:23.2629427Z             {
2026-06-05T00:45:23.2630222Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.2630713Z               "line": 250
2026-06-05T00:45:23.2631132Z             },
2026-06-05T00:45:23.2631557Z             {
2026-06-05T00:45:23.2632527Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.2632992Z               "line": 443
2026-06-05T00:45:23.2633419Z             },
2026-06-05T00:45:23.2633871Z             {
2026-06-05T00:45:23.2635033Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.2635549Z               "line": 453
2026-06-05T00:45:23.2636065Z             }
2026-06-05T00:45:23.2636550Z           ]
2026-06-05T00:45:23.2637016Z         }
2026-06-05T00:45:23.2637473Z       }
2026-06-05T00:45:23.2637960Z     },
2026-06-05T00:45:23.2638456Z     {
2026-06-05T00:45:23.2639102Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-05T00:45:23.2640088Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-05T00:45:23.2640584Z       "requiredStages": [
2026-06-05T00:45:23.2641014Z         "impl",
2026-06-05T00:45:23.2641430Z         "unit"
2026-06-05T00:45:23.2642183Z       ],
2026-06-05T00:45:23.2642641Z       "stages": {
2026-06-05T00:45:23.2643060Z         "doc": {
2026-06-05T00:45:23.2643654Z           "complete": false,
2026-06-05T00:45:23.2644105Z           "evidence": []
2026-06-05T00:45:23.2644523Z         },
2026-06-05T00:45:23.2644944Z         "impl": {
2026-06-05T00:45:23.2645412Z           "complete": true,
2026-06-05T00:45:23.2645869Z           "evidence": [
2026-06-05T00:45:23.2646277Z             {
2026-06-05T00:45:23.2646921Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T00:45:23.2647363Z               "line": 54
2026-06-05T00:45:23.2647782Z             },
2026-06-05T00:45:23.2648194Z             {
2026-06-05T00:45:23.2648885Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.2649371Z               "line": 393
2026-06-05T00:45:23.2649812Z             }
2026-06-05T00:45:23.2650231Z           ]
2026-06-05T00:45:23.2650640Z         },
2026-06-05T00:45:23.2651067Z         "int": {
2026-06-05T00:45:23.2651527Z           "complete": false,
2026-06-05T00:45:23.2651981Z           "evidence": []
2026-06-05T00:45:23.2652391Z         },
2026-06-05T00:45:23.2652806Z         "unit": {
2026-06-05T00:45:23.2653279Z           "complete": true,
2026-06-05T00:45:23.2653717Z           "evidence": [
2026-06-05T00:45:23.2654135Z             {
2026-06-05T00:45:23.2654814Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.2655265Z               "line": 425
2026-06-05T00:45:23.2655682Z             }
2026-06-05T00:45:23.2656090Z           ]
2026-06-05T00:45:23.2656513Z         }
2026-06-05T00:45:23.2656921Z       }
2026-06-05T00:45:23.2657696Z     },
2026-06-05T00:45:23.2658139Z     {
2026-06-05T00:45:23.2658787Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-05T00:45:23.2659784Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-05T00:45:23.2660430Z       "requiredStages": [
2026-06-05T00:45:23.2660856Z         "impl",
2026-06-05T00:45:23.2661275Z         "unit"
2026-06-05T00:45:23.2661687Z       ],
2026-06-05T00:45:23.2662106Z       "stages": {
2026-06-05T00:45:23.2662530Z         "doc": {
2026-06-05T00:45:23.2663005Z           "complete": false,
2026-06-05T00:45:23.2663449Z           "evidence": []
2026-06-05T00:45:23.2663864Z         },
2026-06-05T00:45:23.2664285Z         "impl": {
2026-06-05T00:45:23.2664756Z           "complete": true,
2026-06-05T00:45:23.2665193Z           "evidence": [
2026-06-05T00:45:23.2665614Z             {
2026-06-05T00:45:23.2666291Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.2666733Z               "line": 432
2026-06-05T00:45:23.2667161Z             },
2026-06-05T00:45:23.2698717Z             {
2026-06-05T00:45:23.2700059Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.2700610Z               "line": 28
2026-06-05T00:45:23.2701053Z             }
2026-06-05T00:45:23.2701473Z           ]
2026-06-05T00:45:23.2701908Z         },
2026-06-05T00:45:23.2702346Z         "int": {
2026-06-05T00:45:23.2702827Z           "complete": false,
2026-06-05T00:45:23.2703304Z           "evidence": []
2026-06-05T00:45:23.2703716Z         },
2026-06-05T00:45:23.2704147Z         "unit": {
2026-06-05T00:45:23.2704617Z           "complete": true,
2026-06-05T00:45:23.2705071Z           "evidence": [
2026-06-05T00:45:23.2705493Z             {
2026-06-05T00:45:23.2706132Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.2706604Z               "line": 200
2026-06-05T00:45:23.2707052Z             }
2026-06-05T00:45:23.2707521Z           ]
2026-06-05T00:45:23.2707940Z         }
2026-06-05T00:45:23.2708350Z       }
2026-06-05T00:45:23.2708790Z     },
2026-06-05T00:45:23.2709264Z     {
2026-06-05T00:45:23.2710139Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-05T00:45:23.2710892Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-05T00:45:23.2711378Z       "requiredStages": [],
2026-06-05T00:45:23.2711797Z       "stages": {
2026-06-05T00:45:23.2712228Z         "doc": {
2026-06-05T00:45:23.2712694Z           "complete": false,
2026-06-05T00:45:23.2713136Z           "evidence": []
2026-06-05T00:45:23.2713548Z         },
2026-06-05T00:45:23.2713959Z         "impl": {
2026-06-05T00:45:23.2714429Z           "complete": false,
2026-06-05T00:45:23.2714867Z           "evidence": []
2026-06-05T00:45:23.2715276Z         },
2026-06-05T00:45:23.2715694Z         "int": {
2026-06-05T00:45:23.2716150Z           "complete": false,
2026-06-05T00:45:23.2716596Z           "evidence": []
2026-06-05T00:45:23.2716995Z         },
2026-06-05T00:45:23.2717416Z         "unit": {
2026-06-05T00:45:23.2717885Z           "complete": false,
2026-06-05T00:45:23.2718335Z           "evidence": []
2026-06-05T00:45:23.2718741Z         }
2026-06-05T00:45:23.2719141Z       }
2026-06-05T00:45:23.2719606Z     },
2026-06-05T00:45:23.2720012Z     {
2026-06-05T00:45:23.2720592Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-05T00:45:23.2721394Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-05T00:45:23.2721865Z       "requiredStages": [
2026-06-05T00:45:23.2722287Z         "impl",
2026-06-05T00:45:23.2722693Z         "unit"
2026-06-05T00:45:23.2723109Z       ],
2026-06-05T00:45:23.2723530Z       "stages": {
2026-06-05T00:45:23.2723953Z         "doc": {
2026-06-05T00:45:23.2724411Z           "complete": false,
2026-06-05T00:45:23.2724861Z           "evidence": []
2026-06-05T00:45:23.2725272Z         },
2026-06-05T00:45:23.2725691Z         "impl": {
2026-06-05T00:45:23.2726158Z           "complete": true,
2026-06-05T00:45:23.2726591Z           "evidence": [
2026-06-05T00:45:23.2727010Z             {
2026-06-05T00:45:23.2727982Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T00:45:23.2728475Z               "line": 19
2026-06-05T00:45:23.2728892Z             },
2026-06-05T00:45:23.2729539Z             {
2026-06-05T00:45:23.2730199Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.2730642Z               "line": 325
2026-06-05T00:45:23.2731058Z             },
2026-06-05T00:45:23.2731463Z             {
2026-06-05T00:45:23.2732120Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.2732566Z               "line": 361
2026-06-05T00:45:23.2732966Z             },
2026-06-05T00:45:23.2733383Z             {
2026-06-05T00:45:23.2733991Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T00:45:23.2734429Z               "line": 15
2026-06-05T00:45:23.2734829Z             },
2026-06-05T00:45:23.2735253Z             {
2026-06-05T00:45:23.2735860Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T00:45:23.2736301Z               "line": 48
2026-06-05T00:45:23.2736716Z             },
2026-06-05T00:45:23.2737121Z             {
2026-06-05T00:45:23.2737735Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T00:45:23.2738198Z               "line": 106
2026-06-05T00:45:23.2738600Z             }
2026-06-05T00:45:23.2739009Z           ]
2026-06-05T00:45:23.2739449Z         },
2026-06-05T00:45:23.2739871Z         "int": {
2026-06-05T00:45:23.2740325Z           "complete": false,
2026-06-05T00:45:23.2740775Z           "evidence": []
2026-06-05T00:45:23.2741172Z         },
2026-06-05T00:45:23.2741597Z         "unit": {
2026-06-05T00:45:23.2742058Z           "complete": true,
2026-06-05T00:45:23.2742487Z           "evidence": [
2026-06-05T00:45:23.2742897Z             {
2026-06-05T00:45:23.2743540Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.2743990Z               "line": 453
2026-06-05T00:45:23.2744399Z             },
2026-06-05T00:45:23.2744802Z             {
2026-06-05T00:45:23.2745432Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T00:45:23.2745869Z               "line": 149
2026-06-05T00:45:23.2746282Z             },
2026-06-05T00:45:23.2746703Z             {
2026-06-05T00:45:23.2747315Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T00:45:23.2747760Z               "line": 156
2026-06-05T00:45:23.2748161Z             }
2026-06-05T00:45:23.2748568Z           ]
2026-06-05T00:45:23.2748972Z         }
2026-06-05T00:45:23.2749410Z       }
2026-06-05T00:45:23.2749808Z     },
2026-06-05T00:45:23.2750213Z     {
2026-06-05T00:45:23.2750766Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-05T00:45:23.2751621Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-05T00:45:23.2752092Z       "requiredStages": [
2026-06-05T00:45:23.2752504Z         "impl",
2026-06-05T00:45:23.2752922Z         "unit"
2026-06-05T00:45:23.2753320Z       ],
2026-06-05T00:45:23.2753787Z       "stages": {
2026-06-05T00:45:23.2754207Z         "doc": {
2026-06-05T00:45:23.2754685Z           "complete": false,
2026-06-05T00:45:23.2755144Z           "evidence": []
2026-06-05T00:45:23.2755544Z         },
2026-06-05T00:45:23.2755968Z         "impl": {
2026-06-05T00:45:23.2756438Z           "complete": true,
2026-06-05T00:45:23.2756885Z           "evidence": [
2026-06-05T00:45:23.2757312Z             {
2026-06-05T00:45:23.2757917Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.2758354Z               "line": 35
2026-06-05T00:45:23.2758755Z             }
2026-06-05T00:45:23.2759206Z           ]
2026-06-05T00:45:23.2759616Z         },
2026-06-05T00:45:23.2760044Z         "int": {
2026-06-05T00:45:23.2760507Z           "complete": false,
2026-06-05T00:45:23.2760957Z           "evidence": []
2026-06-05T00:45:23.2761371Z         },
2026-06-05T00:45:23.2761780Z         "unit": {
2026-06-05T00:45:23.2762248Z           "complete": true,
2026-06-05T00:45:23.2762683Z           "evidence": [
2026-06-05T00:45:23.2763104Z             {
2026-06-05T00:45:23.2763878Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T00:45:23.2764353Z               "line": 217
2026-06-05T00:45:23.2764766Z             }
2026-06-05T00:45:23.2765356Z           ]
2026-06-05T00:45:23.2765774Z         }
2026-06-05T00:45:23.2766182Z       }
2026-06-05T00:45:23.2766587Z     },
2026-06-05T00:45:23.2766989Z     {
2026-06-05T00:45:23.2767536Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-05T00:45:23.2769133Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-05T00:45:23.2769896Z       "requiredStages": [
2026-06-05T00:45:23.2770324Z         "impl",
2026-06-05T00:45:23.2770735Z         "unit"
2026-06-05T00:45:23.2771149Z       ],
2026-06-05T00:45:23.2771582Z       "stages": {
2026-06-05T00:45:23.2771989Z         "doc": {
2026-06-05T00:45:23.2772461Z           "complete": false,
2026-06-05T00:45:23.2772907Z           "evidence": []
2026-06-05T00:45:23.2773316Z         },
2026-06-05T00:45:23.2773743Z         "impl": {
2026-06-05T00:45:23.2774207Z           "complete": true,
2026-06-05T00:45:23.2774658Z           "evidence": [
2026-06-05T00:45:23.2775063Z             {
2026-06-05T00:45:23.2775755Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.2776197Z               "line": 256
2026-06-05T00:45:23.2783589Z             },
2026-06-05T00:45:23.2784129Z             {
2026-06-05T00:45:23.2784818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.2785271Z               "line": 221
2026-06-05T00:45:23.2785675Z             },
2026-06-05T00:45:23.2786087Z             {
2026-06-05T00:45:23.2786719Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.2787174Z               "line": 150
2026-06-05T00:45:23.2787576Z             }
2026-06-05T00:45:23.2787987Z           ]
2026-06-05T00:45:23.2788404Z         },
2026-06-05T00:45:23.2788816Z         "int": {
2026-06-05T00:45:23.2789374Z           "complete": false,
2026-06-05T00:45:23.2789871Z           "evidence": []
2026-06-05T00:45:23.2790294Z         },
2026-06-05T00:45:23.2790708Z         "unit": {
2026-06-05T00:45:23.2791173Z           "complete": true,
2026-06-05T00:45:23.2791639Z           "evidence": [
2026-06-05T00:45:23.2792045Z             {
2026-06-05T00:45:23.2792691Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.2793126Z               "line": 477
2026-06-05T00:45:23.2793538Z             },
2026-06-05T00:45:23.2793941Z             {
2026-06-05T00:45:23.2794583Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.2795029Z               "line": 488
2026-06-05T00:45:23.2795435Z             },
2026-06-05T00:45:23.2795849Z             {
2026-06-05T00:45:23.2796477Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.2796919Z               "line": 504
2026-06-05T00:45:23.2797327Z             },
2026-06-05T00:45:23.2797740Z             {
2026-06-05T00:45:23.2798392Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.2798829Z               "line": 518
2026-06-05T00:45:23.2799290Z             },
2026-06-05T00:45:23.2799703Z             {
2026-06-05T00:45:23.2800420Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T00:45:23.2800856Z               "line": 268
2026-06-05T00:45:23.2801268Z             }
2026-06-05T00:45:23.2801680Z           ]
2026-06-05T00:45:23.2802086Z         }
2026-06-05T00:45:23.2802497Z       }
2026-06-05T00:45:23.2802888Z     },
2026-06-05T00:45:23.2803294Z     {
2026-06-05T00:45:23.2803823Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-05T00:45:23.2808818Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-05T00:45:23.2809347Z       "requiredStages": [
2026-06-05T00:45:23.2809766Z         "doc",
2026-06-05T00:45:23.2810472Z         "impl",
2026-06-05T00:45:23.2810911Z         "unit"
2026-06-05T00:45:23.2811323Z       ],
2026-06-05T00:45:23.2811755Z       "stages": {
2026-06-05T00:45:23.2812313Z         "doc": {
2026-06-05T00:45:23.2812778Z           "complete": true,
2026-06-05T00:45:23.2813212Z           "evidence": [
2026-06-05T00:45:23.2813629Z             {
2026-06-05T00:45:23.2814182Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T00:45:23.2814631Z               "line": 266
2026-06-05T00:45:23.2815042Z             }
2026-06-05T00:45:23.2815446Z           ]
2026-06-05T00:45:23.2815859Z         },
2026-06-05T00:45:23.2816273Z         "impl": {
2026-06-05T00:45:23.2816733Z           "complete": true,
2026-06-05T00:45:23.2817169Z           "evidence": [
2026-06-05T00:45:23.2817587Z             {
2026-06-05T00:45:23.2818231Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.2818667Z               "line": 85
2026-06-05T00:45:23.2819081Z             },
2026-06-05T00:45:23.2819551Z             {
2026-06-05T00:45:23.2820198Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.2820634Z               "line": 99
2026-06-05T00:45:23.2821069Z             },
2026-06-05T00:45:23.2821479Z             {
2026-06-05T00:45:23.2822131Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.2822575Z               "line": 53
2026-06-05T00:45:23.2822982Z             },
2026-06-05T00:45:23.2823393Z             {
2026-06-05T00:45:23.2824040Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.2824480Z               "line": 89
2026-06-05T00:45:23.2824894Z             },
2026-06-05T00:45:23.2825299Z             {
2026-06-05T00:45:23.2825962Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.2826397Z               "line": 29
2026-06-05T00:45:23.2826818Z             },
2026-06-05T00:45:23.2827222Z             {
2026-06-05T00:45:23.2827888Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.2828348Z               "line": 75
2026-06-05T00:45:23.2828756Z             },
2026-06-05T00:45:23.2829212Z             {
2026-06-05T00:45:23.2829908Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.2830378Z               "line": 121
2026-06-05T00:45:23.2830786Z             },
2026-06-05T00:45:23.2831196Z             {
2026-06-05T00:45:23.2831795Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.2832235Z               "line": 40
2026-06-05T00:45:23.2832642Z             },
2026-06-05T00:45:23.2833043Z             {
2026-06-05T00:45:23.2833646Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.2834087Z               "line": 161
2026-06-05T00:45:23.2834508Z             },
2026-06-05T00:45:23.2834915Z             {
2026-06-05T00:45:23.2835505Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T00:45:23.2835944Z               "line": 70
2026-06-05T00:45:23.2836346Z             },
2026-06-05T00:45:23.2836770Z             {
2026-06-05T00:45:23.2837368Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.2837812Z               "line": 210
2026-06-05T00:45:23.2838245Z             },
2026-06-05T00:45:23.2838652Z             {
2026-06-05T00:45:23.2839354Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T00:45:23.2839789Z               "line": 37
2026-06-05T00:45:23.2840206Z             },
2026-06-05T00:45:23.2840621Z             {
2026-06-05T00:45:23.2841253Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T00:45:23.2841692Z               "line": 38
2026-06-05T00:45:23.2842104Z             },
2026-06-05T00:45:23.2842514Z             {
2026-06-05T00:45:23.2843141Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.2843585Z               "line": 36
2026-06-05T00:45:23.2844005Z             },
2026-06-05T00:45:23.2844406Z             {
2026-06-05T00:45:23.2845012Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T00:45:23.2845602Z               "line": 40
2026-06-05T00:45:23.2846034Z             }
2026-06-05T00:45:23.2846441Z           ]
2026-06-05T00:45:23.2846856Z         },
2026-06-05T00:45:23.2847404Z         "int": {
2026-06-05T00:45:23.2847863Z           "complete": false,
2026-06-05T00:45:23.2848313Z           "evidence": []
2026-06-05T00:45:23.2848712Z         },
2026-06-05T00:45:23.2849134Z         "unit": {
2026-06-05T00:45:23.2849635Z           "complete": true,
2026-06-05T00:45:23.2850081Z           "evidence": [
2026-06-05T00:45:23.2850495Z             {
2026-06-05T00:45:23.2851153Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.2851607Z               "line": 179
2026-06-05T00:45:23.2852019Z             },
2026-06-05T00:45:23.2852433Z             {
2026-06-05T00:45:23.2853113Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-05T00:45:23.2853561Z               "line": 117
2026-06-05T00:45:23.2853980Z             },
2026-06-05T00:45:23.2854387Z             {
2026-06-05T00:45:23.2855095Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T00:45:23.2855538Z               "line": 344
2026-06-05T00:45:23.2855972Z             },
2026-06-05T00:45:23.2856381Z             {
2026-06-05T00:45:23.2857017Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.2857463Z               "line": 204
2026-06-05T00:45:23.2857870Z             },
2026-06-05T00:45:23.2858281Z             {
2026-06-05T00:45:23.2858919Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T00:45:23.2859407Z               "line": 147
2026-06-05T00:45:23.2859819Z             },
2026-06-05T00:45:23.2860238Z             {
2026-06-05T00:45:23.2860869Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.2861297Z               "line": 106
2026-06-05T00:45:23.2861716Z             },
2026-06-05T00:45:23.2862113Z             {
2026-06-05T00:45:23.2862748Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T00:45:23.2863384Z               "line": 142
2026-06-05T00:45:23.2863848Z             },
2026-06-05T00:45:23.2864334Z             {
2026-06-05T00:45:23.2865063Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T00:45:23.2870092Z               "line": 139
2026-06-05T00:45:23.2870702Z             },
2026-06-05T00:45:23.2871172Z             {
2026-06-05T00:45:23.2871901Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.2872400Z               "line": 126
2026-06-05T00:45:23.2872874Z             },
2026-06-05T00:45:23.2873322Z             {
2026-06-05T00:45:23.2873990Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T00:45:23.2874482Z               "line": 135
2026-06-05T00:45:23.2874949Z             }
2026-06-05T00:45:23.2875400Z           ]
2026-06-05T00:45:23.2875870Z         }
2026-06-05T00:45:23.2876342Z       }
2026-06-05T00:45:23.2876812Z     },
2026-06-05T00:45:23.2877290Z     {
2026-06-05T00:45:23.2877917Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-05T00:45:23.2878929Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-05T00:45:23.2879546Z       "requiredStages": [
2026-06-05T00:45:23.2880018Z         "impl",
2026-06-05T00:45:23.2880453Z         "unit"
2026-06-05T00:45:23.2880872Z       ],
2026-06-05T00:45:23.2881327Z       "stages": {
2026-06-05T00:45:23.2881756Z         "doc": {
2026-06-05T00:45:23.2882244Z           "complete": false,
2026-06-05T00:45:23.2882709Z           "evidence": []
2026-06-05T00:45:23.2883167Z         },
2026-06-05T00:45:23.2883611Z         "impl": {
2026-06-05T00:45:23.2884084Z           "complete": true,
2026-06-05T00:45:23.2884543Z           "evidence": [
2026-06-05T00:45:23.2884961Z             {
2026-06-05T00:45:23.2885595Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.2886042Z               "line": 95
2026-06-05T00:45:23.2886476Z             },
2026-06-05T00:45:23.2886903Z             {
2026-06-05T00:45:23.2887911Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.2888410Z               "line": 99
2026-06-05T00:45:23.2888834Z             }
2026-06-05T00:45:23.2889318Z           ]
2026-06-05T00:45:23.2890038Z         },
2026-06-05T00:45:23.2890465Z         "int": {
2026-06-05T00:45:23.2890935Z           "complete": false,
2026-06-05T00:45:23.2891378Z           "evidence": []
2026-06-05T00:45:23.2891789Z         },
2026-06-05T00:45:23.2892206Z         "unit": {
2026-06-05T00:45:23.2892825Z           "complete": true,
2026-06-05T00:45:23.2893299Z           "evidence": [
2026-06-05T00:45:23.2893774Z             {
2026-06-05T00:45:23.2894430Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.2894883Z               "line": 250
2026-06-05T00:45:23.2895316Z             },
2026-06-05T00:45:23.2895730Z             {
2026-06-05T00:45:23.2896355Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T00:45:23.2896821Z               "line": 139
2026-06-05T00:45:23.2897244Z             },
2026-06-05T00:45:23.2897690Z             {
2026-06-05T00:45:23.2898319Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.2898778Z               "line": 432
2026-06-05T00:45:23.2899275Z             },
2026-06-05T00:45:23.2899858Z             {
2026-06-05T00:45:23.2900465Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.2900904Z               "line": 462
2026-06-05T00:45:23.2901316Z             }
2026-06-05T00:45:23.2901719Z           ]
2026-06-05T00:45:23.2902130Z         }
2026-06-05T00:45:23.2902534Z       }
2026-06-05T00:45:23.2902939Z     },
2026-06-05T00:45:23.2903333Z     {
2026-06-05T00:45:23.2903871Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-05T00:45:23.2904909Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-05T00:45:23.2905374Z       "requiredStages": [
2026-06-05T00:45:23.2905798Z         "impl",
2026-06-05T00:45:23.2906211Z         "unit"
2026-06-05T00:45:23.2906626Z       ],
2026-06-05T00:45:23.2907059Z       "stages": {
2026-06-05T00:45:23.2907493Z         "doc": {
2026-06-05T00:45:23.2907971Z           "complete": false,
2026-06-05T00:45:23.2908416Z           "evidence": []
2026-06-05T00:45:23.2908850Z         },
2026-06-05T00:45:23.2909459Z         "impl": {
2026-06-05T00:45:23.2909951Z           "complete": true,
2026-06-05T00:45:23.2910416Z           "evidence": [
2026-06-05T00:45:23.2910832Z             {
2026-06-05T00:45:23.2911471Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2911941Z               "line": 230
2026-06-05T00:45:23.2912381Z             },
2026-06-05T00:45:23.2912803Z             {
2026-06-05T00:45:23.2913433Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2913895Z               "line": 275
2026-06-05T00:45:23.2914318Z             },
2026-06-05T00:45:23.2914748Z             {
2026-06-05T00:45:23.2915368Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2915829Z               "line": 287
2026-06-05T00:45:23.2916254Z             }
2026-06-05T00:45:23.2916707Z           ]
2026-06-05T00:45:23.2917130Z         },
2026-06-05T00:45:23.2917556Z         "int": {
2026-06-05T00:45:23.2918040Z           "complete": false,
2026-06-05T00:45:23.2918528Z           "evidence": []
2026-06-05T00:45:23.2918954Z         },
2026-06-05T00:45:23.2919578Z         "unit": {
2026-06-05T00:45:23.2920052Z           "complete": true,
2026-06-05T00:45:23.2920504Z           "evidence": [
2026-06-05T00:45:23.2920912Z             {
2026-06-05T00:45:23.2921525Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2921967Z               "line": 423
2026-06-05T00:45:23.2922384Z             },
2026-06-05T00:45:23.2922791Z             {
2026-06-05T00:45:23.2923404Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.2923849Z               "line": 452
2026-06-05T00:45:23.2924257Z             }
2026-06-05T00:45:23.2924670Z           ]
2026-06-05T00:45:23.2925071Z         }
2026-06-05T00:45:23.2925484Z       }
2026-06-05T00:45:23.2926069Z     },
2026-06-05T00:45:23.2926506Z     {
2026-06-05T00:45:23.2926985Z       "id": "REQ-INFRA-1",
2026-06-05T00:45:23.2928008Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-05T00:45:23.2928690Z       "requiredStages": [],
2026-06-05T00:45:23.2929118Z       "stages": {
2026-06-05T00:45:23.2929891Z         "doc": {
2026-06-05T00:45:23.2930354Z           "complete": false,
2026-06-05T00:45:23.2930807Z           "evidence": []
2026-06-05T00:45:23.2931220Z         },
2026-06-05T00:45:23.2931642Z         "impl": {
2026-06-05T00:45:23.2932112Z           "complete": false,
2026-06-05T00:45:23.2932553Z           "evidence": []
2026-06-05T00:45:23.2932966Z         },
2026-06-05T00:45:23.2933377Z         "int": {
2026-06-05T00:45:23.2933853Z           "complete": false,
2026-06-05T00:45:23.2934311Z           "evidence": []
2026-06-05T00:45:23.2934720Z         },
2026-06-05T00:45:23.2935155Z         "unit": {
2026-06-05T00:45:23.2935620Z           "complete": false,
2026-06-05T00:45:23.2936092Z           "evidence": []
2026-06-05T00:45:23.2936504Z         }
2026-06-05T00:45:23.2936919Z       }
2026-06-05T00:45:23.2937333Z     },
2026-06-05T00:45:23.2937747Z     {
2026-06-05T00:45:23.2938206Z       "id": "REQ-INST-1",
2026-06-05T00:45:23.2939081Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-05T00:45:23.2939917Z       "requiredStages": [],
2026-06-05T00:45:23.2940347Z       "stages": {
2026-06-05T00:45:23.2940779Z         "doc": {
2026-06-05T00:45:23.2941252Z           "complete": false,
2026-06-05T00:45:23.2941703Z           "evidence": []
2026-06-05T00:45:23.2942119Z         },
2026-06-05T00:45:23.2942540Z         "impl": {
2026-06-05T00:45:23.2943014Z           "complete": false,
2026-06-05T00:45:23.2943455Z           "evidence": []
2026-06-05T00:45:23.2943883Z         },
2026-06-05T00:45:23.2944310Z         "int": {
2026-06-05T00:45:23.2944775Z           "complete": false,
2026-06-05T00:45:23.2945229Z           "evidence": []
2026-06-05T00:45:23.2945646Z         },
2026-06-05T00:45:23.2946079Z         "unit": {
2026-06-05T00:45:23.2946538Z           "complete": false,
2026-06-05T00:45:23.2946990Z           "evidence": []
2026-06-05T00:45:23.2947420Z         }
2026-06-05T00:45:23.2947821Z       }
2026-06-05T00:45:23.2948233Z     },
2026-06-05T00:45:23.2948635Z     {
2026-06-05T00:45:23.2953611Z       "id": "REQ-INST-10",
2026-06-05T00:45:23.2955044Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-05T00:45:23.2955557Z       "requiredStages": [
2026-06-05T00:45:23.2956002Z         "impl",
2026-06-05T00:45:23.2956432Z         "unit"
2026-06-05T00:45:23.2956859Z       ],
2026-06-05T00:45:23.2957303Z       "stages": {
2026-06-05T00:45:23.2957737Z         "doc": {
2026-06-05T00:45:23.2958220Z           "complete": false,
2026-06-05T00:45:23.2958688Z           "evidence": []
2026-06-05T00:45:23.2959109Z         },
2026-06-05T00:45:23.2959865Z         "impl": {
2026-06-05T00:45:23.2960381Z           "complete": true,
2026-06-05T00:45:23.2960831Z           "evidence": [
2026-06-05T00:45:23.2961243Z             {
2026-06-05T00:45:23.2961901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2962372Z               "line": 413
2026-06-05T00:45:23.2962795Z             },
2026-06-05T00:45:23.2963202Z             {
2026-06-05T00:45:23.2963869Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2964308Z               "line": 468
2026-06-05T00:45:23.2964731Z             },
2026-06-05T00:45:23.2965133Z             {
2026-06-05T00:45:23.2965738Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2966183Z               "line": 13
2026-06-05T00:45:23.2966587Z             },
2026-06-05T00:45:23.2967004Z             {
2026-06-05T00:45:23.2967602Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2968048Z               "line": 67
2026-06-05T00:45:23.2968459Z             },
2026-06-05T00:45:23.2968877Z             {
2026-06-05T00:45:23.2969742Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T00:45:23.2970206Z               "line": 18
2026-06-05T00:45:23.2970621Z             }
2026-06-05T00:45:23.2971176Z           ]
2026-06-05T00:45:23.2971586Z         },
2026-06-05T00:45:23.2972002Z         "int": {
2026-06-05T00:45:23.2972475Z           "complete": false,
2026-06-05T00:45:23.2972934Z           "evidence": []
2026-06-05T00:45:23.2973341Z         },
2026-06-05T00:45:23.2973768Z         "unit": {
2026-06-05T00:45:23.2974224Z           "complete": true,
2026-06-05T00:45:23.2974682Z           "evidence": [
2026-06-05T00:45:23.2975088Z             {
2026-06-05T00:45:23.2975756Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2976202Z               "line": 612
2026-06-05T00:45:23.2976612Z             },
2026-06-05T00:45:23.2977027Z             {
2026-06-05T00:45:23.2977680Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2978128Z               "line": 709
2026-06-05T00:45:23.2978548Z             },
2026-06-05T00:45:23.2978974Z             {
2026-06-05T00:45:23.2979682Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2980137Z               "line": 717
2026-06-05T00:45:23.2980554Z             },
2026-06-05T00:45:23.2980962Z             {
2026-06-05T00:45:23.2981622Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2982064Z               "line": 730
2026-06-05T00:45:23.2982484Z             },
2026-06-05T00:45:23.2982905Z             {
2026-06-05T00:45:23.2983552Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2983996Z               "line": 743
2026-06-05T00:45:23.2984401Z             },
2026-06-05T00:45:23.2984817Z             {
2026-06-05T00:45:23.2985459Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2985917Z               "line": 759
2026-06-05T00:45:23.2986337Z             },
2026-06-05T00:45:23.2986743Z             {
2026-06-05T00:45:23.2987414Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.2987852Z               "line": 988
2026-06-05T00:45:23.2988274Z             },
2026-06-05T00:45:23.2988688Z             {
2026-06-05T00:45:23.2989341Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2989791Z               "line": 121
2026-06-05T00:45:23.2990201Z             },
2026-06-05T00:45:23.2990614Z             {
2026-06-05T00:45:23.2991201Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2991648Z               "line": 142
2026-06-05T00:45:23.2992053Z             },
2026-06-05T00:45:23.2992471Z             {
2026-06-05T00:45:23.2993070Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2993510Z               "line": 150
2026-06-05T00:45:23.2993925Z             },
2026-06-05T00:45:23.2994331Z             {
2026-06-05T00:45:23.2994945Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T00:45:23.2995409Z               "line": 158
2026-06-05T00:45:23.2995818Z             }
2026-06-05T00:45:23.2996228Z           ]
2026-06-05T00:45:23.2996628Z         }
2026-06-05T00:45:23.2997039Z       }
2026-06-05T00:45:23.2997455Z     },
2026-06-05T00:45:23.2997862Z     {
2026-06-05T00:45:23.2998320Z       "id": "REQ-INST-11",
2026-06-05T00:45:23.2999635Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-05T00:45:23.3000115Z       "requiredStages": [
2026-06-05T00:45:23.3000532Z         "impl",
2026-06-05T00:45:23.3000946Z         "unit"
2026-06-05T00:45:23.3001341Z       ],
2026-06-05T00:45:23.3001777Z       "stages": {
2026-06-05T00:45:23.3002204Z         "doc": {
2026-06-05T00:45:23.3002661Z           "complete": false,
2026-06-05T00:45:23.3003120Z           "evidence": []
2026-06-05T00:45:23.3003526Z         },
2026-06-05T00:45:23.3003951Z         "impl": {
2026-06-05T00:45:23.3004406Z           "complete": true,
2026-06-05T00:45:23.3004850Z           "evidence": [
2026-06-05T00:45:23.3005417Z             {
2026-06-05T00:45:23.3006107Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3006567Z               "line": 315
2026-06-05T00:45:23.3007111Z             },
2026-06-05T00:45:23.3007528Z             {
2026-06-05T00:45:23.3008210Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3008657Z               "line": 252
2026-06-05T00:45:23.3009067Z             },
2026-06-05T00:45:23.3009551Z             {
2026-06-05T00:45:23.3010178Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T00:45:23.3010611Z               "line": 59
2026-06-05T00:45:23.3011031Z             },
2026-06-05T00:45:23.3011440Z             {
2026-06-05T00:45:23.3011986Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3012436Z               "line": 1374
2026-06-05T00:45:23.3012840Z             },
2026-06-05T00:45:23.3013255Z             {
2026-06-05T00:45:23.3013789Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3014254Z               "line": 2319
2026-06-05T00:45:23.3014663Z             }
2026-06-05T00:45:23.3015075Z           ]
2026-06-05T00:45:23.3015481Z         },
2026-06-05T00:45:23.3015908Z         "int": {
2026-06-05T00:45:23.3016373Z           "complete": false,
2026-06-05T00:45:23.3016809Z           "evidence": []
2026-06-05T00:45:23.3017223Z         },
2026-06-05T00:45:23.3017632Z         "unit": {
2026-06-05T00:45:23.3018097Z           "complete": true,
2026-06-05T00:45:23.3018549Z           "evidence": [
2026-06-05T00:45:23.3018952Z             {
2026-06-05T00:45:23.3019658Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3020095Z               "line": 852
2026-06-05T00:45:23.3020508Z             },
2026-06-05T00:45:23.3020908Z             {
2026-06-05T00:45:23.3021570Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3022025Z               "line": 875
2026-06-05T00:45:23.3022435Z             },
2026-06-05T00:45:23.3022848Z             {
2026-06-05T00:45:23.3023550Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3024005Z               "line": 471
2026-06-05T00:45:23.3024426Z             },
2026-06-05T00:45:23.3024844Z             {
2026-06-05T00:45:23.3025463Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T00:45:23.3025902Z               "line": 156
2026-06-05T00:45:23.3026317Z             },
2026-06-05T00:45:23.3026721Z             {
2026-06-05T00:45:23.3027346Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T00:45:23.3027784Z               "line": 177
2026-06-05T00:45:23.3028202Z             },
2026-06-05T00:45:23.3028619Z             {
2026-06-05T00:45:23.3029268Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T00:45:23.3029712Z               "line": 209
2026-06-05T00:45:23.3030117Z             },
2026-06-05T00:45:23.3030536Z             {
2026-06-05T00:45:23.3031073Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3031534Z               "line": 2412
2026-06-05T00:45:23.3034886Z             }
2026-06-05T00:45:23.3035391Z           ]
2026-06-05T00:45:23.3035808Z         }
2026-06-05T00:45:23.3036238Z       }
2026-06-05T00:45:23.3036648Z     },
2026-06-05T00:45:23.3037040Z     {
2026-06-05T00:45:23.3037516Z       "id": "REQ-INST-12",
2026-06-05T00:45:23.3039400Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-05T00:45:23.3039880Z       "requiredStages": [
2026-06-05T00:45:23.3040311Z         "impl",
2026-06-05T00:45:23.3040725Z         "unit"
2026-06-05T00:45:23.3041140Z       ],
2026-06-05T00:45:23.3041557Z       "stages": {
2026-06-05T00:45:23.3041973Z         "doc": {
2026-06-05T00:45:23.3042443Z           "complete": false,
2026-06-05T00:45:23.3042884Z           "evidence": []
2026-06-05T00:45:23.3043301Z         },
2026-06-05T00:45:23.3043718Z         "impl": {
2026-06-05T00:45:23.3044185Z           "complete": true,
2026-06-05T00:45:23.3044845Z           "evidence": [
2026-06-05T00:45:23.3045282Z             {
2026-06-05T00:45:23.3045949Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3046539Z               "line": 367
2026-06-05T00:45:23.3046954Z             },
2026-06-05T00:45:23.3047355Z             {
2026-06-05T00:45:23.3048011Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3048443Z               "line": 424
2026-06-05T00:45:23.3048867Z             },
2026-06-05T00:45:23.3049329Z             {
2026-06-05T00:45:23.3049979Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3050425Z               "line": 482
2026-06-05T00:45:23.3050830Z             },
2026-06-05T00:45:23.3051240Z             {
2026-06-05T00:45:23.3051859Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.3052290Z               "line": 87
2026-06-05T00:45:23.3052706Z             },
2026-06-05T00:45:23.3053110Z             {
2026-06-05T00:45:23.3053741Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.3054182Z               "line": 216
2026-06-05T00:45:23.3054604Z             },
2026-06-05T00:45:23.3055017Z             {
2026-06-05T00:45:23.3055685Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3056127Z               "line": 132
2026-06-05T00:45:23.3056528Z             }
2026-06-05T00:45:23.3056944Z           ]
2026-06-05T00:45:23.3057337Z         },
2026-06-05T00:45:23.3057758Z         "int": {
2026-06-05T00:45:23.3058219Z           "complete": false,
2026-06-05T00:45:23.3058661Z           "evidence": []
2026-06-05T00:45:23.3059070Z         },
2026-06-05T00:45:23.3059522Z         "unit": {
2026-06-05T00:45:23.3059987Z           "complete": true,
2026-06-05T00:45:23.3060429Z           "evidence": [
2026-06-05T00:45:23.3060842Z             {
2026-06-05T00:45:23.3061501Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3061940Z               "line": 910
2026-06-05T00:45:23.3062372Z             },
2026-06-05T00:45:23.3062781Z             {
2026-06-05T00:45:23.3063433Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3063887Z               "line": 927
2026-06-05T00:45:23.3064299Z             },
2026-06-05T00:45:23.3064708Z             {
2026-06-05T00:45:23.3065351Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3065793Z               "line": 958
2026-06-05T00:45:23.3066208Z             },
2026-06-05T00:45:23.3066622Z             {
2026-06-05T00:45:23.3067231Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.3067670Z               "line": 350
2026-06-05T00:45:23.3068087Z             },
2026-06-05T00:45:23.3068486Z             {
2026-06-05T00:45:23.3069143Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3069624Z               "line": 169
2026-06-05T00:45:23.3070045Z             },
2026-06-05T00:45:23.3070450Z             {
2026-06-05T00:45:23.3071125Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3071573Z               "line": 181
2026-06-05T00:45:23.3071983Z             },
2026-06-05T00:45:23.3072390Z             {
2026-06-05T00:45:23.3073053Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3073500Z               "line": 198
2026-06-05T00:45:23.3073902Z             }
2026-06-05T00:45:23.3074315Z           ]
2026-06-05T00:45:23.3074726Z         }
2026-06-05T00:45:23.3075123Z       }
2026-06-05T00:45:23.3075529Z     },
2026-06-05T00:45:23.3075930Z     {
2026-06-05T00:45:23.3076390Z       "id": "REQ-INST-13",
2026-06-05T00:45:23.3077425Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-05T00:45:23.3077904Z       "requiredStages": [
2026-06-05T00:45:23.3078329Z         "impl",
2026-06-05T00:45:23.3078737Z         "unit"
2026-06-05T00:45:23.3079152Z       ],
2026-06-05T00:45:23.3079616Z       "stages": {
2026-06-05T00:45:23.3080036Z         "doc": {
2026-06-05T00:45:23.3080698Z           "complete": false,
2026-06-05T00:45:23.3081168Z           "evidence": []
2026-06-05T00:45:23.3081575Z         },
2026-06-05T00:45:23.3081991Z         "impl": {
2026-06-05T00:45:23.3082624Z           "complete": true,
2026-06-05T00:45:23.3083059Z           "evidence": [
2026-06-05T00:45:23.3083478Z             {
2026-06-05T00:45:23.3084085Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3084527Z               "line": 94
2026-06-05T00:45:23.3084942Z             },
2026-06-05T00:45:23.3085340Z             {
2026-06-05T00:45:23.3085993Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3086425Z               "line": 155
2026-06-05T00:45:23.3086834Z             }
2026-06-05T00:45:23.3087226Z           ]
2026-06-05T00:45:23.3087627Z         },
2026-06-05T00:45:23.3088050Z         "int": {
2026-06-05T00:45:23.3088506Z           "complete": false,
2026-06-05T00:45:23.3088952Z           "evidence": []
2026-06-05T00:45:23.3089390Z         },
2026-06-05T00:45:23.3089828Z         "unit": {
2026-06-05T00:45:23.3090292Z           "complete": true,
2026-06-05T00:45:23.3090736Z           "evidence": [
2026-06-05T00:45:23.3091170Z             {
2026-06-05T00:45:23.3091828Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3092277Z               "line": 221
2026-06-05T00:45:23.3092683Z             },
2026-06-05T00:45:23.3093087Z             {
2026-06-05T00:45:23.3093739Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T00:45:23.3094187Z               "line": 233
2026-06-05T00:45:23.3094602Z             }
2026-06-05T00:45:23.3095006Z           ]
2026-06-05T00:45:23.3095414Z         }
2026-06-05T00:45:23.3095814Z       }
2026-06-05T00:45:23.3096222Z     },
2026-06-05T00:45:23.3096614Z     {
2026-06-05T00:45:23.3097075Z       "id": "REQ-INST-14",
2026-06-05T00:45:23.3099534Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-05T00:45:23.3100006Z       "requiredStages": [
2026-06-05T00:45:23.3100427Z         "doc",
2026-06-05T00:45:23.3100845Z         "impl",
2026-06-05T00:45:23.3101280Z         "unit"
2026-06-05T00:45:23.3101676Z       ],
2026-06-05T00:45:23.3102105Z       "stages": {
2026-06-05T00:45:23.3102517Z         "doc": {
2026-06-05T00:45:23.3102967Z           "complete": true,
2026-06-05T00:45:23.3103409Z           "evidence": [
2026-06-05T00:45:23.3103809Z             {
2026-06-05T00:45:23.3104314Z               "path": "docs/STORAGE.md",
2026-06-05T00:45:23.3104743Z               "line": 49
2026-06-05T00:45:23.3105154Z             }
2026-06-05T00:45:23.3105568Z           ]
2026-06-05T00:45:23.3105971Z         },
2026-06-05T00:45:23.3106399Z         "impl": {
2026-06-05T00:45:23.3106852Z           "complete": true,
2026-06-05T00:45:23.3107294Z           "evidence": [
2026-06-05T00:45:23.3107695Z             {
2026-06-05T00:45:23.3108413Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3108875Z               "line": 242
2026-06-05T00:45:23.3109323Z             },
2026-06-05T00:45:23.3109735Z             {
2026-06-05T00:45:23.3110390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3110847Z               "line": 182
2026-06-05T00:45:23.3111249Z             },
2026-06-05T00:45:23.3111660Z             {
2026-06-05T00:45:23.3112255Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.3112693Z               "line": 202
2026-06-05T00:45:23.3113113Z             },
2026-06-05T00:45:23.3113515Z             {
2026-06-05T00:45:23.3116796Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3117338Z               "line": 685
2026-06-05T00:45:23.3117753Z             }
2026-06-05T00:45:23.3118167Z           ]
2026-06-05T00:45:23.3118569Z         },
2026-06-05T00:45:23.3118991Z         "int": {
2026-06-05T00:45:23.3119527Z           "complete": false,
2026-06-05T00:45:23.3119987Z           "evidence": []
2026-06-05T00:45:23.3120626Z         },
2026-06-05T00:45:23.3121079Z         "unit": {
2026-06-05T00:45:23.3121545Z           "complete": true,
2026-06-05T00:45:23.3121979Z           "evidence": [
2026-06-05T00:45:23.3122551Z             {
2026-06-05T00:45:23.3123260Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3123704Z               "line": 391
2026-06-05T00:45:23.3124113Z             },
2026-06-05T00:45:23.3124518Z             {
2026-06-05T00:45:23.3125176Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3125615Z               "line": 621
2026-06-05T00:45:23.3126031Z             },
2026-06-05T00:45:23.3126435Z             {
2026-06-05T00:45:23.3127086Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3127530Z               "line": 662
2026-06-05T00:45:23.3127935Z             },
2026-06-05T00:45:23.3128341Z             {
2026-06-05T00:45:23.3128926Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.3129430Z               "line": 411
2026-06-05T00:45:23.3129844Z             },
2026-06-05T00:45:23.3130252Z             {
2026-06-05T00:45:23.3130793Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3131243Z               "line": 2428
2026-06-05T00:45:23.3131650Z             }
2026-06-05T00:45:23.3132051Z           ]
2026-06-05T00:45:23.3132457Z         }
2026-06-05T00:45:23.3132859Z       }
2026-06-05T00:45:23.3133266Z     },
2026-06-05T00:45:23.3133673Z     {
2026-06-05T00:45:23.3134128Z       "id": "REQ-INST-15",
2026-06-05T00:45:23.3138955Z       "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-05T00:45:23.3139460Z       "requiredStages": [
2026-06-05T00:45:23.3139884Z         "doc",
2026-06-05T00:45:23.3140298Z         "impl",
2026-06-05T00:45:23.3140726Z         "unit"
2026-06-05T00:45:23.3141133Z       ],
2026-06-05T00:45:23.3141552Z       "stages": {
2026-06-05T00:45:23.3141970Z         "doc": {
2026-06-05T00:45:23.3142434Z           "complete": true,
2026-06-05T00:45:23.3142870Z           "evidence": [
2026-06-05T00:45:23.3143270Z             {
2026-06-05T00:45:23.3144255Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-05T00:45:23.3144687Z               "line": 3
2026-06-05T00:45:23.3145093Z             }
2026-06-05T00:45:23.3145501Z           ]
2026-06-05T00:45:23.3145903Z         },
2026-06-05T00:45:23.3146326Z         "impl": {
2026-06-05T00:45:23.3146781Z           "complete": true,
2026-06-05T00:45:23.3147227Z           "evidence": [
2026-06-05T00:45:23.3147638Z             {
2026-06-05T00:45:23.3148332Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3148774Z               "line": 206
2026-06-05T00:45:23.3149283Z             },
2026-06-05T00:45:23.3149703Z             {
2026-06-05T00:45:23.3150302Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3150741Z               "line": 60
2026-06-05T00:45:23.3151149Z             },
2026-06-05T00:45:23.3151566Z             {
2026-06-05T00:45:23.3152260Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3152696Z               "line": 326
2026-06-05T00:45:23.3153115Z             },
2026-06-05T00:45:23.3153522Z             {
2026-06-05T00:45:23.3154202Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3154647Z               "line": 376
2026-06-05T00:45:23.3155050Z             },
2026-06-05T00:45:23.3155463Z             {
2026-06-05T00:45:23.3156048Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3156481Z               "line": 19
2026-06-05T00:45:23.3156890Z             },
2026-06-05T00:45:23.3157290Z             {
2026-06-05T00:45:23.3157883Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3158491Z               "line": 67
2026-06-05T00:45:23.3158925Z             },
2026-06-05T00:45:23.3159385Z             {
2026-06-05T00:45:23.3159989Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3160610Z               "line": 91
2026-06-05T00:45:23.3161016Z             },
2026-06-05T00:45:23.3161428Z             {
2026-06-05T00:45:23.3162014Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3162467Z               "line": 116
2026-06-05T00:45:23.3162869Z             },
2026-06-05T00:45:23.3163284Z             {
2026-06-05T00:45:23.3163880Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3164313Z               "line": 167
2026-06-05T00:45:23.3164726Z             },
2026-06-05T00:45:23.3165129Z             {
2026-06-05T00:45:23.3165737Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.3166169Z               "line": 141
2026-06-05T00:45:23.3166585Z             },
2026-06-05T00:45:23.3166993Z             {
2026-06-05T00:45:23.3167540Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3167987Z               "line": 577
2026-06-05T00:45:23.3168389Z             }
2026-06-05T00:45:23.3168814Z           ]
2026-06-05T00:45:23.3169261Z         },
2026-06-05T00:45:23.3169684Z         "int": {
2026-06-05T00:45:23.3170145Z           "complete": false,
2026-06-05T00:45:23.3170578Z           "evidence": []
2026-06-05T00:45:23.3170987Z         },
2026-06-05T00:45:23.3171399Z         "unit": {
2026-06-05T00:45:23.3171850Z           "complete": true,
2026-06-05T00:45:23.3172282Z           "evidence": [
2026-06-05T00:45:23.3172699Z             {
2026-06-05T00:45:23.3173390Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3173823Z               "line": 515
2026-06-05T00:45:23.3174240Z             },
2026-06-05T00:45:23.3174642Z             {
2026-06-05T00:45:23.3175341Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.3175780Z               "line": 571
2026-06-05T00:45:23.3176214Z             },
2026-06-05T00:45:23.3176632Z             {
2026-06-05T00:45:23.3177218Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3177674Z               "line": 206
2026-06-05T00:45:23.3178080Z             },
2026-06-05T00:45:23.3178493Z             {
2026-06-05T00:45:23.3179071Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3179563Z               "line": 239
2026-06-05T00:45:23.3179976Z             },
2026-06-05T00:45:23.3180373Z             {
2026-06-05T00:45:23.3180968Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3181406Z               "line": 252
2026-06-05T00:45:23.3181819Z             },
2026-06-05T00:45:23.3182228Z             {
2026-06-05T00:45:23.3182821Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T00:45:23.3183265Z               "line": 316
2026-06-05T00:45:23.3183670Z             },
2026-06-05T00:45:23.3184078Z             {
2026-06-05T00:45:23.3184687Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.3185128Z               "line": 477
2026-06-05T00:45:23.3185537Z             },
2026-06-05T00:45:23.3185937Z             {
2026-06-05T00:45:23.3186493Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3186935Z               "line": 2415
2026-06-05T00:45:23.3187345Z             },
2026-06-05T00:45:23.3187756Z             {
2026-06-05T00:45:23.3188297Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3188755Z               "line": 3254
2026-06-05T00:45:23.3189236Z             }
2026-06-05T00:45:23.3189680Z           ]
2026-06-05T00:45:23.3190077Z         }
2026-06-05T00:45:23.3190479Z       }
2026-06-05T00:45:23.3190873Z     },
2026-06-05T00:45:23.3191276Z     {
2026-06-05T00:45:23.3191743Z       "id": "REQ-INST-2",
2026-06-05T00:45:23.3192375Z       "title": "Per-node files, synced Psyche mind",
2026-06-05T00:45:23.3192843Z       "requiredStages": [
2026-06-05T00:45:23.3193253Z         "impl",
2026-06-05T00:45:23.3193829Z         "unit"
2026-06-05T00:45:23.3194244Z       ],
2026-06-05T00:45:23.3194676Z       "stages": {
2026-06-05T00:45:23.3195098Z         "doc": {
2026-06-05T00:45:23.3195707Z           "complete": false,
2026-06-05T00:45:23.3196163Z           "evidence": []
2026-06-05T00:45:23.3196570Z         },
2026-06-05T00:45:23.3199893Z         "impl": {
2026-06-05T00:45:23.3200450Z           "complete": true,
2026-06-05T00:45:23.3200907Z           "evidence": [
2026-06-05T00:45:23.3201326Z             {
2026-06-05T00:45:23.3202003Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3202446Z               "line": 86
2026-06-05T00:45:23.3202863Z             },
2026-06-05T00:45:23.3203278Z             {
2026-06-05T00:45:23.3203879Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.3204311Z               "line": 28
2026-06-05T00:45:23.3204720Z             },
2026-06-05T00:45:23.3205122Z             {
2026-06-05T00:45:23.3205762Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.3206207Z               "line": 74
2026-06-05T00:45:23.3206621Z             },
2026-06-05T00:45:23.3207028Z             {
2026-06-05T00:45:23.3207651Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.3208089Z               "line": 96
2026-06-05T00:45:23.3208496Z             },
2026-06-05T00:45:23.3208903Z             {
2026-06-05T00:45:23.3209550Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.3209999Z               "line": 81
2026-06-05T00:45:23.3210398Z             },
2026-06-05T00:45:23.3210813Z             {
2026-06-05T00:45:23.3211418Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T00:45:23.3211850Z               "line": 118
2026-06-05T00:45:23.3212259Z             }
2026-06-05T00:45:23.3212664Z           ]
2026-06-05T00:45:23.3213079Z         },
2026-06-05T00:45:23.3213483Z         "int": {
2026-06-05T00:45:23.3213947Z           "complete": false,
2026-06-05T00:45:23.3214407Z           "evidence": []
2026-06-05T00:45:23.3214815Z         },
2026-06-05T00:45:23.3215232Z         "unit": {
2026-06-05T00:45:23.3215684Z           "complete": true,
2026-06-05T00:45:23.3216136Z           "evidence": [
2026-06-05T00:45:23.3216536Z             {
2026-06-05T00:45:23.3217137Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T00:45:23.3217581Z               "line": 203
2026-06-05T00:45:23.3217986Z             },
2026-06-05T00:45:23.3218396Z             {
2026-06-05T00:45:23.3218991Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.3219477Z               "line": 232
2026-06-05T00:45:23.3219877Z             }
2026-06-05T00:45:23.3220285Z           ]
2026-06-05T00:45:23.3220692Z         }
2026-06-05T00:45:23.3221091Z       }
2026-06-05T00:45:23.3221490Z     },
2026-06-05T00:45:23.3221879Z     {
2026-06-05T00:45:23.3222334Z       "id": "REQ-INST-3",
2026-06-05T00:45:23.3223131Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-05T00:45:23.3223619Z       "requiredStages": [
2026-06-05T00:45:23.3224036Z         "doc",
2026-06-05T00:45:23.3224452Z         "impl",
2026-06-05T00:45:23.3224865Z         "unit"
2026-06-05T00:45:23.3225283Z       ],
2026-06-05T00:45:23.3225720Z       "stages": {
2026-06-05T00:45:23.3226123Z         "doc": {
2026-06-05T00:45:23.3226586Z           "complete": true,
2026-06-05T00:45:23.3227026Z           "evidence": [
2026-06-05T00:45:23.3227426Z             {
2026-06-05T00:45:23.3227991Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-05T00:45:23.3228415Z               "line": 3
2026-06-05T00:45:23.3228826Z             }
2026-06-05T00:45:23.3229261Z           ]
2026-06-05T00:45:23.3229673Z         },
2026-06-05T00:45:23.3230094Z         "impl": {
2026-06-05T00:45:23.3230560Z           "complete": true,
2026-06-05T00:45:23.3231002Z           "evidence": [
2026-06-05T00:45:23.3231398Z             {
2026-06-05T00:45:23.3232036Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.3232764Z               "line": 70
2026-06-05T00:45:23.3233226Z             },
2026-06-05T00:45:23.3233642Z             {
2026-06-05T00:45:23.3234285Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3234877Z               "line": 385
2026-06-05T00:45:23.3235281Z             },
2026-06-05T00:45:23.3235691Z             {
2026-06-05T00:45:23.3236347Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3236790Z               "line": 197
2026-06-05T00:45:23.3237203Z             },
2026-06-05T00:45:23.3237603Z             {
2026-06-05T00:45:23.3238261Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3238699Z               "line": 272
2026-06-05T00:45:23.3239116Z             },
2026-06-05T00:45:23.3239574Z             {
2026-06-05T00:45:23.3240241Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3240685Z               "line": 301
2026-06-05T00:45:23.3241091Z             },
2026-06-05T00:45:23.3241506Z             {
2026-06-05T00:45:23.3242168Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T00:45:23.3242619Z               "line": 234
2026-06-05T00:45:23.3243039Z             },
2026-06-05T00:45:23.3243454Z             {
2026-06-05T00:45:23.3244150Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3244585Z               "line": 147
2026-06-05T00:45:23.3244994Z             },
2026-06-05T00:45:23.3245393Z             {
2026-06-05T00:45:23.3246093Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3246524Z               "line": 228
2026-06-05T00:45:23.3246939Z             },
2026-06-05T00:45:23.3247359Z             {
2026-06-05T00:45:23.3247990Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3248426Z               "line": 44
2026-06-05T00:45:23.3248825Z             },
2026-06-05T00:45:23.3249275Z             {
2026-06-05T00:45:23.3249908Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3250360Z               "line": 113
2026-06-05T00:45:23.3250766Z             },
2026-06-05T00:45:23.3251160Z             {
2026-06-05T00:45:23.3251800Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3252246Z               "line": 151
2026-06-05T00:45:23.3252651Z             },
2026-06-05T00:45:23.3253059Z             {
2026-06-05T00:45:23.3253696Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3254137Z               "line": 167
2026-06-05T00:45:23.3254543Z             },
2026-06-05T00:45:23.3254955Z             {
2026-06-05T00:45:23.3255583Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3256018Z               "line": 177
2026-06-05T00:45:23.3256424Z             },
2026-06-05T00:45:23.3256823Z             {
2026-06-05T00:45:23.3257458Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3257892Z               "line": 209
2026-06-05T00:45:23.3258336Z             },
2026-06-05T00:45:23.3258838Z             {
2026-06-05T00:45:23.3259556Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3260011Z               "line": 282
2026-06-05T00:45:23.3260435Z             },
2026-06-05T00:45:23.3260844Z             {
2026-06-05T00:45:23.3261486Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3261921Z               "line": 306
2026-06-05T00:45:23.3262324Z             },
2026-06-05T00:45:23.3262737Z             {
2026-06-05T00:45:23.3263376Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3263814Z               "line": 377
2026-06-05T00:45:23.3264225Z             },
2026-06-05T00:45:23.3264623Z             {
2026-06-05T00:45:23.3265262Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3265697Z               "line": 392
2026-06-05T00:45:23.3266114Z             },
2026-06-05T00:45:23.3266523Z             {
2026-06-05T00:45:23.3267163Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-05T00:45:23.3267768Z               "line": 37
2026-06-05T00:45:23.3268193Z             },
2026-06-05T00:45:23.3268601Z             {
2026-06-05T00:45:23.3269453Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3269903Z               "line": 62
2026-06-05T00:45:23.3270316Z             },
2026-06-05T00:45:23.3270713Z             {
2026-06-05T00:45:23.3271306Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.3271749Z               "line": 184
2026-06-05T00:45:23.3272166Z             },
2026-06-05T00:45:23.3272575Z             {
2026-06-05T00:45:23.3273105Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3273545Z               "line": 782
2026-06-05T00:45:23.3273943Z             }
2026-06-05T00:45:23.3274348Z           ]
2026-06-05T00:45:23.3274744Z         },
2026-06-05T00:45:23.3275160Z         "int": {
2026-06-05T00:45:23.3275627Z           "complete": false,
2026-06-05T00:45:23.3276064Z           "evidence": []
2026-06-05T00:45:23.3279372Z         },
2026-06-05T00:45:23.3279906Z         "unit": {
2026-06-05T00:45:23.3280385Z           "complete": true,
2026-06-05T00:45:23.3280832Z           "evidence": [
2026-06-05T00:45:23.3281266Z             {
2026-06-05T00:45:23.3281918Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.3282366Z               "line": 305
2026-06-05T00:45:23.3282787Z             },
2026-06-05T00:45:23.3283184Z             {
2026-06-05T00:45:23.3283846Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3284278Z               "line": 618
2026-06-05T00:45:23.3284692Z             },
2026-06-05T00:45:23.3285106Z             {
2026-06-05T00:45:23.3285756Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3286209Z               "line": 669
2026-06-05T00:45:23.3286615Z             },
2026-06-05T00:45:23.3287024Z             {
2026-06-05T00:45:23.3287719Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3288175Z               "line": 441
2026-06-05T00:45:23.3288596Z             },
2026-06-05T00:45:23.3289000Z             {
2026-06-05T00:45:23.3289967Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3290587Z               "line": 488
2026-06-05T00:45:23.3291004Z             },
2026-06-05T00:45:23.3291403Z             {
2026-06-05T00:45:23.3292036Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3292481Z               "line": 403
2026-06-05T00:45:23.3292889Z             },
2026-06-05T00:45:23.3293300Z             {
2026-06-05T00:45:23.3293937Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3294378Z               "line": 432
2026-06-05T00:45:23.3294780Z             },
2026-06-05T00:45:23.3295187Z             {
2026-06-05T00:45:23.3295825Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3296262Z               "line": 465
2026-06-05T00:45:23.3296680Z             },
2026-06-05T00:45:23.3297142Z             {
2026-06-05T00:45:23.3297804Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3298235Z               "line": 573
2026-06-05T00:45:23.3298672Z             },
2026-06-05T00:45:23.3299076Z             {
2026-06-05T00:45:23.3299746Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3300189Z               "line": 748
2026-06-05T00:45:23.3300588Z             },
2026-06-05T00:45:23.3300995Z             {
2026-06-05T00:45:23.3301623Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3302073Z               "line": 762
2026-06-05T00:45:23.3302478Z             },
2026-06-05T00:45:23.3302877Z             {
2026-06-05T00:45:23.3303523Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3303963Z               "line": 690
2026-06-05T00:45:23.3304379Z             },
2026-06-05T00:45:23.3304792Z             {
2026-06-05T00:45:23.3305383Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.3306064Z               "line": 371
2026-06-05T00:45:23.3306490Z             },
2026-06-05T00:45:23.3306904Z             {
2026-06-05T00:45:23.3307585Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3308042Z               "line": 2442
2026-06-05T00:45:23.3308452Z             }
2026-06-05T00:45:23.3308849Z           ]
2026-06-05T00:45:23.3309302Z         }
2026-06-05T00:45:23.3309701Z       }
2026-06-05T00:45:23.3310103Z     },
2026-06-05T00:45:23.3310496Z     {
2026-06-05T00:45:23.3310950Z       "id": "REQ-INST-4",
2026-06-05T00:45:23.3311944Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-05T00:45:23.3312408Z       "requiredStages": [
2026-06-05T00:45:23.3312828Z         "impl",
2026-06-05T00:45:23.3313232Z         "unit"
2026-06-05T00:45:23.3313639Z       ],
2026-06-05T00:45:23.3314050Z       "stages": {
2026-06-05T00:45:23.3314473Z         "doc": {
2026-06-05T00:45:23.3314941Z           "complete": false,
2026-06-05T00:45:23.3315392Z           "evidence": []
2026-06-05T00:45:23.3315801Z         },
2026-06-05T00:45:23.3316215Z         "impl": {
2026-06-05T00:45:23.3316680Z           "complete": true,
2026-06-05T00:45:23.3317127Z           "evidence": [
2026-06-05T00:45:23.3317534Z             {
2026-06-05T00:45:23.3318204Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3318636Z               "line": 273
2026-06-05T00:45:23.3319052Z             },
2026-06-05T00:45:23.3319501Z             {
2026-06-05T00:45:23.3320145Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3320583Z               "line": 201
2026-06-05T00:45:23.3321012Z             },
2026-06-05T00:45:23.3321489Z             {
2026-06-05T00:45:23.3322364Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3322911Z               "line": 233
2026-06-05T00:45:23.3323418Z             },
2026-06-05T00:45:23.3323945Z             {
2026-06-05T00:45:23.3324827Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3325422Z               "line": 269
2026-06-05T00:45:23.3325918Z             }
2026-06-05T00:45:23.3326385Z           ]
2026-06-05T00:45:23.3326897Z         },
2026-06-05T00:45:23.3327402Z         "int": {
2026-06-05T00:45:23.3327979Z           "complete": false,
2026-06-05T00:45:23.3328539Z           "evidence": []
2026-06-05T00:45:23.3329036Z         },
2026-06-05T00:45:23.3329638Z         "unit": {
2026-06-05T00:45:23.3330175Z           "complete": true,
2026-06-05T00:45:23.3330653Z           "evidence": [
2026-06-05T00:45:23.3331086Z             {
2026-06-05T00:45:23.3331832Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.3332327Z               "line": 664
2026-06-05T00:45:23.3332799Z             },
2026-06-05T00:45:23.3333281Z             {
2026-06-05T00:45:23.3334019Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3334521Z               "line": 483
2026-06-05T00:45:23.3335024Z             },
2026-06-05T00:45:23.3335558Z             {
2026-06-05T00:45:23.3336264Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3336749Z               "line": 548
2026-06-05T00:45:23.3337212Z             },
2026-06-05T00:45:23.3337648Z             {
2026-06-05T00:45:23.3338348Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.3338860Z               "line": 615
2026-06-05T00:45:23.3339382Z             }
2026-06-05T00:45:23.3339998Z           ]
2026-06-05T00:45:23.3340456Z         }
2026-06-05T00:45:23.3340902Z       }
2026-06-05T00:45:23.3341312Z     },
2026-06-05T00:45:23.3341720Z     {
2026-06-05T00:45:23.3342196Z       "id": "REQ-INST-5",
2026-06-05T00:45:23.3343278Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-05T00:45:23.3343774Z       "requiredStages": [
2026-06-05T00:45:23.3344245Z         "impl",
2026-06-05T00:45:23.3344712Z         "unit",
2026-06-05T00:45:23.3345166Z         "int"
2026-06-05T00:45:23.3345894Z       ],
2026-06-05T00:45:23.3346367Z       "stages": {
2026-06-05T00:45:23.3346792Z         "doc": {
2026-06-05T00:45:23.3347266Z           "complete": false,
2026-06-05T00:45:23.3347925Z           "evidence": []
2026-06-05T00:45:23.3348331Z         },
2026-06-05T00:45:23.3348761Z         "impl": {
2026-06-05T00:45:23.3349292Z           "complete": true,
2026-06-05T00:45:23.3350062Z           "evidence": [
2026-06-05T00:45:23.3350501Z             {
2026-06-05T00:45:23.3351188Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T00:45:23.3351641Z               "line": 39
2026-06-05T00:45:23.3352050Z             },
2026-06-05T00:45:23.3352468Z             {
2026-06-05T00:45:23.3353079Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3353514Z               "line": 68
2026-06-05T00:45:23.3353930Z             },
2026-06-05T00:45:23.3354327Z             {
2026-06-05T00:45:23.3354932Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3355377Z               "line": 93
2026-06-05T00:45:23.3355795Z             },
2026-06-05T00:45:23.3356213Z             {
2026-06-05T00:45:23.3356810Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3362548Z               "line": 160
2026-06-05T00:45:23.3363062Z             },
2026-06-05T00:45:23.3363495Z             {
2026-06-05T00:45:23.3364128Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3364584Z               "line": 271
2026-06-05T00:45:23.3364999Z             }
2026-06-05T00:45:23.3365407Z           ]
2026-06-05T00:45:23.3365826Z         },
2026-06-05T00:45:23.3366235Z         "int": {
2026-06-05T00:45:23.3366699Z           "complete": true,
2026-06-05T00:45:23.3367134Z           "evidence": [
2026-06-05T00:45:23.3367557Z             {
2026-06-05T00:45:23.3368243Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.3368680Z               "line": 142
2026-06-05T00:45:23.3369098Z             },
2026-06-05T00:45:23.3369731Z             {
2026-06-05T00:45:23.3370485Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T00:45:23.3370946Z               "line": 102
2026-06-05T00:45:23.3371395Z             },
2026-06-05T00:45:23.3371830Z             {
2026-06-05T00:45:23.3372507Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3372971Z               "line": 517
2026-06-05T00:45:23.3373395Z             },
2026-06-05T00:45:23.3373829Z             {
2026-06-05T00:45:23.3374506Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3374965Z               "line": 723
2026-06-05T00:45:23.3375399Z             }
2026-06-05T00:45:23.3375825Z           ]
2026-06-05T00:45:23.3376253Z         },
2026-06-05T00:45:23.3376684Z         "unit": {
2026-06-05T00:45:23.3377164Z           "complete": true,
2026-06-05T00:45:23.3377610Z           "evidence": [
2026-06-05T00:45:23.3378040Z             {
2026-06-05T00:45:23.3378669Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3379132Z               "line": 461
2026-06-05T00:45:23.3379613Z             },
2026-06-05T00:45:23.3380032Z             {
2026-06-05T00:45:23.3380659Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3381126Z               "line": 495
2026-06-05T00:45:23.3381566Z             },
2026-06-05T00:45:23.3381996Z             {
2026-06-05T00:45:23.3382638Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.3383103Z               "line": 199
2026-06-05T00:45:23.3383523Z             }
2026-06-05T00:45:23.3383947Z           ]
2026-06-05T00:45:23.3384365Z         }
2026-06-05T00:45:23.3384798Z       }
2026-06-05T00:45:23.3385216Z     },
2026-06-05T00:45:23.3385627Z     {
2026-06-05T00:45:23.3386110Z       "id": "REQ-INST-6",
2026-06-05T00:45:23.3387202Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-05T00:45:23.3387709Z       "requiredStages": [],
2026-06-05T00:45:23.3388147Z       "stages": {
2026-06-05T00:45:23.3388861Z         "doc": {
2026-06-05T00:45:23.3389431Z           "complete": false,
2026-06-05T00:45:23.3389892Z           "evidence": []
2026-06-05T00:45:23.3390326Z         },
2026-06-05T00:45:23.3390934Z         "impl": {
2026-06-05T00:45:23.3391428Z           "complete": false,
2026-06-05T00:45:23.3391887Z           "evidence": []
2026-06-05T00:45:23.3392315Z         },
2026-06-05T00:45:23.3392746Z         "int": {
2026-06-05T00:45:23.3393220Z           "complete": false,
2026-06-05T00:45:23.3393687Z           "evidence": []
2026-06-05T00:45:23.3394107Z         },
2026-06-05T00:45:23.3394543Z         "unit": {
2026-06-05T00:45:23.3395017Z           "complete": false,
2026-06-05T00:45:23.3395483Z           "evidence": []
2026-06-05T00:45:23.3395908Z         }
2026-06-05T00:45:23.3396321Z       }
2026-06-05T00:45:23.3396742Z     },
2026-06-05T00:45:23.3397152Z     {
2026-06-05T00:45:23.3397625Z       "id": "REQ-INST-7",
2026-06-05T00:45:23.3398399Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-05T00:45:23.3398910Z       "requiredStages": [
2026-06-05T00:45:23.3399417Z         "impl",
2026-06-05T00:45:23.3399984Z         "unit",
2026-06-05T00:45:23.3400413Z         "int"
2026-06-05T00:45:23.3400810Z       ],
2026-06-05T00:45:23.3401258Z       "stages": {
2026-06-05T00:45:23.3401668Z         "doc": {
2026-06-05T00:45:23.3402135Z           "complete": false,
2026-06-05T00:45:23.3402588Z           "evidence": []
2026-06-05T00:45:23.3402990Z         },
2026-06-05T00:45:23.3403431Z         "impl": {
2026-06-05T00:45:23.3403922Z           "complete": true,
2026-06-05T00:45:23.3404416Z           "evidence": [
2026-06-05T00:45:23.3404835Z             {
2026-06-05T00:45:23.3405503Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3405957Z               "line": 361
2026-06-05T00:45:23.3406363Z             },
2026-06-05T00:45:23.3406775Z             {
2026-06-05T00:45:23.3407436Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T00:45:23.3407890Z               "line": 40
2026-06-05T00:45:23.3408299Z             },
2026-06-05T00:45:23.3408715Z             {
2026-06-05T00:45:23.3409662Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3410262Z               "line": 27
2026-06-05T00:45:23.3410685Z             },
2026-06-05T00:45:23.3411089Z             {
2026-06-05T00:45:23.3411795Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3412327Z               "line": 120
2026-06-05T00:45:23.3412746Z             },
2026-06-05T00:45:23.3413167Z             {
2026-06-05T00:45:23.3413860Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3414307Z               "line": 197
2026-06-05T00:45:23.3414716Z             },
2026-06-05T00:45:23.3415145Z             {
2026-06-05T00:45:23.3415788Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-05T00:45:23.3416221Z               "line": 56
2026-06-05T00:45:23.3416637Z             },
2026-06-05T00:45:23.3417049Z             {
2026-06-05T00:45:23.3417702Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3418135Z               "line": 41
2026-06-05T00:45:23.3418566Z             },
2026-06-05T00:45:23.3418982Z             {
2026-06-05T00:45:23.3420030Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3420481Z               "line": 27
2026-06-05T00:45:23.3420884Z             },
2026-06-05T00:45:23.3421294Z             {
2026-06-05T00:45:23.3421959Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3422407Z               "line": 59
2026-06-05T00:45:23.3422820Z             },
2026-06-05T00:45:23.3423225Z             {
2026-06-05T00:45:23.3423909Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3424343Z               "line": 68
2026-06-05T00:45:23.3424759Z             },
2026-06-05T00:45:23.3425160Z             {
2026-06-05T00:45:23.3425807Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T00:45:23.3426427Z               "line": 129
2026-06-05T00:45:23.3426852Z             }
2026-06-05T00:45:23.3427267Z           ]
2026-06-05T00:45:23.3427670Z         },
2026-06-05T00:45:23.3428235Z         "int": {
2026-06-05T00:45:23.3428698Z           "complete": true,
2026-06-05T00:45:23.3429148Z           "evidence": [
2026-06-05T00:45:23.3429917Z             {
2026-06-05T00:45:23.3430598Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T00:45:23.3431046Z               "line": 102
2026-06-05T00:45:23.3431465Z             },
2026-06-05T00:45:23.3431888Z             {
2026-06-05T00:45:23.3432543Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3432996Z               "line": 481
2026-06-05T00:45:23.3433420Z             },
2026-06-05T00:45:23.3433825Z             {
2026-06-05T00:45:23.3434484Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3434927Z               "line": 639
2026-06-05T00:45:23.3435345Z             }
2026-06-05T00:45:23.3435761Z           ]
2026-06-05T00:45:23.3436177Z         },
2026-06-05T00:45:23.3436605Z         "unit": {
2026-06-05T00:45:23.3437058Z           "complete": true,
2026-06-05T00:45:23.3437523Z           "evidence": [
2026-06-05T00:45:23.3437927Z             {
2026-06-05T00:45:23.3438633Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3439067Z               "line": 368
2026-06-05T00:45:23.3439530Z             },
2026-06-05T00:45:23.3439941Z             {
2026-06-05T00:45:23.3440635Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T00:45:23.3441080Z               "line": 534
2026-06-05T00:45:23.3441483Z             },
2026-06-05T00:45:23.3441900Z             {
2026-06-05T00:45:23.3445848Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-05T00:45:23.3446396Z               "line": 83
2026-06-05T00:45:23.3446827Z             },
2026-06-05T00:45:23.3447232Z             {
2026-06-05T00:45:23.3447938Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3448389Z               "line": 537
2026-06-05T00:45:23.3448815Z             },
2026-06-05T00:45:23.3449342Z             {
2026-06-05T00:45:23.3450016Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3450459Z               "line": 548
2026-06-05T00:45:23.3450863Z             },
2026-06-05T00:45:23.3451281Z             {
2026-06-05T00:45:23.3451927Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3452372Z               "line": 557
2026-06-05T00:45:23.3452786Z             },
2026-06-05T00:45:23.3453193Z             {
2026-06-05T00:45:23.3453869Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3454296Z               "line": 90
2026-06-05T00:45:23.3454715Z             },
2026-06-05T00:45:23.3455120Z             {
2026-06-05T00:45:23.3455793Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3456237Z               "line": 105
2026-06-05T00:45:23.3456660Z             },
2026-06-05T00:45:23.3457084Z             {
2026-06-05T00:45:23.3457752Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T00:45:23.3458209Z               "line": 131
2026-06-05T00:45:23.3458611Z             }
2026-06-05T00:45:23.3459022Z           ]
2026-06-05T00:45:23.3459474Z         }
2026-06-05T00:45:23.3459891Z       }
2026-06-05T00:45:23.3460774Z     },
2026-06-05T00:45:23.3461231Z     {
2026-06-05T00:45:23.3461925Z       "id": "REQ-INST-8",
2026-06-05T00:45:23.3462849Z       "title": "Remote-control mode distinct from local operation",
2026-06-05T00:45:23.3463371Z       "requiredStages": [
2026-06-05T00:45:23.3463976Z         "impl",
2026-06-05T00:45:23.3464550Z         "unit",
2026-06-05T00:45:23.3464975Z         "int"
2026-06-05T00:45:23.3465378Z       ],
2026-06-05T00:45:23.3465804Z       "stages": {
2026-06-05T00:45:23.3466211Z         "doc": {
2026-06-05T00:45:23.3466693Z           "complete": false,
2026-06-05T00:45:23.3467349Z           "evidence": []
2026-06-05T00:45:23.3467774Z         },
2026-06-05T00:45:23.3468205Z         "impl": {
2026-06-05T00:45:23.3468661Z           "complete": true,
2026-06-05T00:45:23.3469327Z           "evidence": [
2026-06-05T00:45:23.3469739Z             {
2026-06-05T00:45:23.3470393Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.3470844Z               "line": 98
2026-06-05T00:45:23.3471250Z             },
2026-06-05T00:45:23.3471661Z             {
2026-06-05T00:45:23.3472289Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.3472736Z               "line": 202
2026-06-05T00:45:23.3473150Z             },
2026-06-05T00:45:23.3473566Z             {
2026-06-05T00:45:23.3474204Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.3474647Z               "line": 220
2026-06-05T00:45:23.3475068Z             },
2026-06-05T00:45:23.3475469Z             {
2026-06-05T00:45:23.3476133Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T00:45:23.3476568Z               "line": 35
2026-06-05T00:45:23.3476997Z             }
2026-06-05T00:45:23.3477416Z           ]
2026-06-05T00:45:23.3477834Z         },
2026-06-05T00:45:23.3478254Z         "int": {
2026-06-05T00:45:23.3478706Z           "complete": true,
2026-06-05T00:45:23.3479195Z           "evidence": [
2026-06-05T00:45:23.3479606Z             {
2026-06-05T00:45:23.3480292Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.3480739Z               "line": 375
2026-06-05T00:45:23.3481151Z             },
2026-06-05T00:45:23.3481566Z             {
2026-06-05T00:45:23.3482218Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3482676Z               "line": 688
2026-06-05T00:45:23.3483074Z             }
2026-06-05T00:45:23.3483488Z           ]
2026-06-05T00:45:23.3483900Z         },
2026-06-05T00:45:23.3484315Z         "unit": {
2026-06-05T00:45:23.3484779Z           "complete": true,
2026-06-05T00:45:23.3485228Z           "evidence": [
2026-06-05T00:45:23.3485646Z             {
2026-06-05T00:45:23.3486291Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T00:45:23.3486758Z               "line": 172
2026-06-05T00:45:23.3487176Z             },
2026-06-05T00:45:23.3487578Z             {
2026-06-05T00:45:23.3488227Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T00:45:23.3488664Z               "line": 226
2026-06-05T00:45:23.3489078Z             },
2026-06-05T00:45:23.3489529Z             {
2026-06-05T00:45:23.3490180Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T00:45:23.3490621Z               "line": 70
2026-06-05T00:45:23.3491033Z             },
2026-06-05T00:45:23.3491442Z             {
2026-06-05T00:45:23.3492069Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T00:45:23.3492515Z               "line": 101
2026-06-05T00:45:23.3492921Z             }
2026-06-05T00:45:23.3493340Z           ]
2026-06-05T00:45:23.3493748Z         }
2026-06-05T00:45:23.3494155Z       }
2026-06-05T00:45:23.3494565Z     },
2026-06-05T00:45:23.3494967Z     {
2026-06-05T00:45:23.3495425Z       "id": "REQ-INST-9",
2026-06-05T00:45:23.3496491Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-05T00:45:23.3496966Z       "requiredStages": [
2026-06-05T00:45:23.3497391Z         "impl",
2026-06-05T00:45:23.3497796Z         "unit"
2026-06-05T00:45:23.3498206Z       ],
2026-06-05T00:45:23.3498624Z       "stages": {
2026-06-05T00:45:23.3499045Z         "doc": {
2026-06-05T00:45:23.3499541Z           "complete": false,
2026-06-05T00:45:23.3500004Z           "evidence": []
2026-06-05T00:45:23.3500421Z         },
2026-06-05T00:45:23.3500844Z         "impl": {
2026-06-05T00:45:23.3501310Z           "complete": true,
2026-06-05T00:45:23.3501746Z           "evidence": [
2026-06-05T00:45:23.3502166Z             {
2026-06-05T00:45:23.3502814Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3503441Z               "line": 253
2026-06-05T00:45:23.3503872Z             }
2026-06-05T00:45:23.3504275Z           ]
2026-06-05T00:45:23.3504684Z         },
2026-06-05T00:45:23.3505093Z         "int": {
2026-06-05T00:45:23.3505742Z           "complete": false,
2026-06-05T00:45:23.3506193Z           "evidence": []
2026-06-05T00:45:23.3506609Z         },
2026-06-05T00:45:23.3507037Z         "unit": {
2026-06-05T00:45:23.3507494Z           "complete": true,
2026-06-05T00:45:23.3507937Z           "evidence": [
2026-06-05T00:45:23.3508343Z             {
2026-06-05T00:45:23.3508999Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3509676Z               "line": 776
2026-06-05T00:45:23.3510261Z             },
2026-06-05T00:45:23.3510681Z             {
2026-06-05T00:45:23.3511333Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3511780Z               "line": 785
2026-06-05T00:45:23.3512183Z             },
2026-06-05T00:45:23.3512603Z             {
2026-06-05T00:45:23.3513266Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3513720Z               "line": 799
2026-06-05T00:45:23.3514135Z             },
2026-06-05T00:45:23.3514556Z             {
2026-06-05T00:45:23.3515213Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3515655Z               "line": 809
2026-06-05T00:45:23.3516071Z             },
2026-06-05T00:45:23.3516483Z             {
2026-06-05T00:45:23.3517132Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T00:45:23.3517577Z               "line": 828
2026-06-05T00:45:23.3517980Z             }
2026-06-05T00:45:23.3518427Z           ]
2026-06-05T00:45:23.3518828Z         }
2026-06-05T00:45:23.3519287Z       }
2026-06-05T00:45:23.3519694Z     },
2026-06-05T00:45:23.3520109Z     {
2026-06-05T00:45:23.3520580Z       "id": "REQ-INSTALL-1",
2026-06-05T00:45:23.3521680Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-05T00:45:23.3522184Z       "requiredStages": [],
2026-06-05T00:45:23.3522608Z       "stages": {
2026-06-05T00:45:23.3523033Z         "doc": {
2026-06-05T00:45:23.3523504Z           "complete": false,
2026-06-05T00:45:23.3523964Z           "evidence": []
2026-06-05T00:45:23.3527832Z         },
2026-06-05T00:45:23.3528348Z         "impl": {
2026-06-05T00:45:23.3528828Z           "complete": false,
2026-06-05T00:45:23.3529359Z           "evidence": []
2026-06-05T00:45:23.3529783Z         },
2026-06-05T00:45:23.3530208Z         "int": {
2026-06-05T00:45:23.3530677Z           "complete": false,
2026-06-05T00:45:23.3531131Z           "evidence": []
2026-06-05T00:45:23.3531537Z         },
2026-06-05T00:45:23.3531958Z         "unit": {
2026-06-05T00:45:23.3532416Z           "complete": false,
2026-06-05T00:45:23.3532863Z           "evidence": []
2026-06-05T00:45:23.3533268Z         }
2026-06-05T00:45:23.3533682Z       }
2026-06-05T00:45:23.3534097Z     },
2026-06-05T00:45:23.3534495Z     {
2026-06-05T00:45:23.3534971Z       "id": "REQ-INSTALL-2",
2026-06-05T00:45:23.3535748Z       "title": "Marketplace-repackaging-friendly install",
2026-06-05T00:45:23.3536239Z       "requiredStages": [],
2026-06-05T00:45:23.3536676Z       "stages": {
2026-06-05T00:45:23.3537105Z         "doc": {
2026-06-05T00:45:23.3537576Z           "complete": false,
2026-06-05T00:45:23.3538020Z           "evidence": []
2026-06-05T00:45:23.3538436Z         },
2026-06-05T00:45:23.3538853Z         "impl": {
2026-06-05T00:45:23.3539362Z           "complete": false,
2026-06-05T00:45:23.3539812Z           "evidence": []
2026-06-05T00:45:23.3540227Z         },
2026-06-05T00:45:23.3540652Z         "int": {
2026-06-05T00:45:23.3541111Z           "complete": false,
2026-06-05T00:45:23.3541560Z           "evidence": []
2026-06-05T00:45:23.3541964Z         },
2026-06-05T00:45:23.3542387Z         "unit": {
2026-06-05T00:45:23.3542840Z           "complete": false,
2026-06-05T00:45:23.3543299Z           "evidence": []
2026-06-05T00:45:23.3543714Z         }
2026-06-05T00:45:23.3544117Z       }
2026-06-05T00:45:23.3544751Z     },
2026-06-05T00:45:23.3545169Z     {
2026-06-05T00:45:23.3545650Z       "id": "REQ-INSTALL-3",
2026-06-05T00:45:23.3546423Z       "title": "Idempotent + interactive-optional first run",
2026-06-05T00:45:23.3547049Z       "requiredStages": [],
2026-06-05T00:45:23.3547481Z       "stages": {
2026-06-05T00:45:23.3547897Z         "doc": {
2026-06-05T00:45:23.3548356Z           "complete": false,
2026-06-05T00:45:23.3548794Z           "evidence": []
2026-06-05T00:45:23.3549243Z         },
2026-06-05T00:45:23.3549654Z         "impl": {
2026-06-05T00:45:23.3550120Z           "complete": false,
2026-06-05T00:45:23.3550568Z           "evidence": []
2026-06-05T00:45:23.3550973Z         },
2026-06-05T00:45:23.3551391Z         "int": {
2026-06-05T00:45:23.3551849Z           "complete": false,
2026-06-05T00:45:23.3552297Z           "evidence": []
2026-06-05T00:45:23.3552703Z         },
2026-06-05T00:45:23.3553123Z         "unit": {
2026-06-05T00:45:23.3553592Z           "complete": false,
2026-06-05T00:45:23.3554045Z           "evidence": []
2026-06-05T00:45:23.3554459Z         }
2026-06-05T00:45:23.3554859Z       }
2026-06-05T00:45:23.3555267Z     },
2026-06-05T00:45:23.3555666Z     {
2026-06-05T00:45:23.3556142Z       "id": "REQ-INSTALL-4",
2026-06-05T00:45:23.3560395Z       "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-05T00:45:23.3560873Z       "requiredStages": [
2026-06-05T00:45:23.3561297Z         "impl",
2026-06-05T00:45:23.3561706Z         "unit"
2026-06-05T00:45:23.3562115Z       ],
2026-06-05T00:45:23.3562551Z       "stages": {
2026-06-05T00:45:23.3562967Z         "doc": {
2026-06-05T00:45:23.3563439Z           "complete": false,
2026-06-05T00:45:23.3563882Z           "evidence": []
2026-06-05T00:45:23.3564306Z         },
2026-06-05T00:45:23.3564722Z         "impl": {
2026-06-05T00:45:23.3565198Z           "complete": true,
2026-06-05T00:45:23.3565645Z           "evidence": [
2026-06-05T00:45:23.3566054Z             {
2026-06-05T00:45:23.3566782Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.3567230Z               "line": 149
2026-06-05T00:45:23.3567644Z             },
2026-06-05T00:45:23.3568052Z             {
2026-06-05T00:45:23.3568707Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3569150Z               "line": 29
2026-06-05T00:45:23.3569602Z             },
2026-06-05T00:45:23.3570010Z             {
2026-06-05T00:45:23.3570664Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3571115Z               "line": 117
2026-06-05T00:45:23.3571527Z             },
2026-06-05T00:45:23.3571946Z             {
2026-06-05T00:45:23.3572603Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3573040Z               "line": 161
2026-06-05T00:45:23.3573451Z             },
2026-06-05T00:45:23.3573870Z             {
2026-06-05T00:45:23.3574532Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3574967Z               "line": 191
2026-06-05T00:45:23.3575398Z             },
2026-06-05T00:45:23.3575810Z             {
2026-06-05T00:45:23.3576463Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3576914Z               "line": 223
2026-06-05T00:45:23.3577317Z             },
2026-06-05T00:45:23.3577730Z             {
2026-06-05T00:45:23.3578265Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3578721Z               "line": 1474
2026-06-05T00:45:23.3579135Z             }
2026-06-05T00:45:23.3579574Z           ]
2026-06-05T00:45:23.3579981Z         },
2026-06-05T00:45:23.3580391Z         "int": {
2026-06-05T00:45:23.3580863Z           "complete": false,
2026-06-05T00:45:23.3581307Z           "evidence": []
2026-06-05T00:45:23.3581719Z         },
2026-06-05T00:45:23.3582144Z         "unit": {
2026-06-05T00:45:23.3582762Z           "complete": true,
2026-06-05T00:45:23.3583221Z           "evidence": [
2026-06-05T00:45:23.3583632Z             {
2026-06-05T00:45:23.3584357Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.3584942Z               "line": 311
2026-06-05T00:45:23.3585362Z             },
2026-06-05T00:45:23.3585782Z             {
2026-06-05T00:45:23.3586435Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3586885Z               "line": 269
2026-06-05T00:45:23.3587288Z             },
2026-06-05T00:45:23.3587699Z             {
2026-06-05T00:45:23.3588351Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3588799Z               "line": 304
2026-06-05T00:45:23.3589256Z             },
2026-06-05T00:45:23.3589669Z             {
2026-06-05T00:45:23.3590335Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T00:45:23.3590775Z               "line": 321
2026-06-05T00:45:23.3591196Z             },
2026-06-05T00:45:23.3591615Z             {
2026-06-05T00:45:23.3592160Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3592606Z               "line": 2561
2026-06-05T00:45:23.3593028Z             }
2026-06-05T00:45:23.3593439Z           ]
2026-06-05T00:45:23.3593843Z         }
2026-06-05T00:45:23.3594247Z       }
2026-06-05T00:45:23.3594640Z     },
2026-06-05T00:45:23.3595043Z     {
2026-06-05T00:45:23.3595516Z       "id": "REQ-MANIFEST-1",
2026-06-05T00:45:23.3596587Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-05T00:45:23.3597062Z       "requiredStages": [
2026-06-05T00:45:23.3597476Z         "doc",
2026-06-05T00:45:23.3597895Z         "impl",
2026-06-05T00:45:23.3598306Z         "unit"
2026-06-05T00:45:23.3598715Z       ],
2026-06-05T00:45:23.3599146Z       "stages": {
2026-06-05T00:45:23.3599595Z         "doc": {
2026-06-05T00:45:23.3600061Z           "complete": true,
2026-06-05T00:45:23.3600496Z           "evidence": [
2026-06-05T00:45:23.3600920Z             {
2026-06-05T00:45:23.3601427Z               "path": "docs/MANIFEST.md",
2026-06-05T00:45:23.3601866Z               "line": 19
2026-06-05T00:45:23.3602280Z             }
2026-06-05T00:45:23.3602692Z           ]
2026-06-05T00:45:23.3603105Z         },
2026-06-05T00:45:23.3603521Z         "impl": {
2026-06-05T00:45:23.3603977Z           "complete": true,
2026-06-05T00:45:23.3604410Z           "evidence": [
2026-06-05T00:45:23.3604821Z             {
2026-06-05T00:45:23.3605484Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3605910Z               "line": 18
2026-06-05T00:45:23.3606320Z             }
2026-06-05T00:45:23.3609652Z           ]
2026-06-05T00:45:23.3610146Z         },
2026-06-05T00:45:23.3610580Z         "int": {
2026-06-05T00:45:23.3611066Z           "complete": false,
2026-06-05T00:45:23.3611517Z           "evidence": []
2026-06-05T00:45:23.3611925Z         },
2026-06-05T00:45:23.3612354Z         "unit": {
2026-06-05T00:45:23.3612808Z           "complete": true,
2026-06-05T00:45:23.3613284Z           "evidence": [
2026-06-05T00:45:23.3613691Z             {
2026-06-05T00:45:23.3614361Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3614829Z               "line": 706
2026-06-05T00:45:23.3615236Z             },
2026-06-05T00:45:23.3615646Z             {
2026-06-05T00:45:23.3616298Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3616742Z               "line": 802
2026-06-05T00:45:23.3617144Z             },
2026-06-05T00:45:23.3617551Z             {
2026-06-05T00:45:23.3618204Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3618639Z               "line": 814
2026-06-05T00:45:23.3619049Z             },
2026-06-05T00:45:23.3619508Z             {
2026-06-05T00:45:23.3620171Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3620617Z               "line": 822
2026-06-05T00:45:23.3621022Z             },
2026-06-05T00:45:23.3621433Z             {
2026-06-05T00:45:23.3622301Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3622768Z               "line": 839
2026-06-05T00:45:23.3623318Z             },
2026-06-05T00:45:23.3623730Z             {
2026-06-05T00:45:23.3624392Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3624828Z               "line": 853
2026-06-05T00:45:23.3625243Z             },
2026-06-05T00:45:23.3625642Z             {
2026-06-05T00:45:23.3626294Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3626731Z               "line": 868
2026-06-05T00:45:23.3627155Z             },
2026-06-05T00:45:23.3627571Z             {
2026-06-05T00:45:23.3628208Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3628658Z               "line": 883
2026-06-05T00:45:23.3629069Z             },
2026-06-05T00:45:23.3629535Z             {
2026-06-05T00:45:23.3630185Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3630644Z               "line": 898
2026-06-05T00:45:23.3631059Z             },
2026-06-05T00:45:23.3631457Z             {
2026-06-05T00:45:23.3632110Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.3632555Z               "line": 909
2026-06-05T00:45:23.3632965Z             }
2026-06-05T00:45:23.3633368Z           ]
2026-06-05T00:45:23.3633783Z         }
2026-06-05T00:45:23.3634199Z       }
2026-06-05T00:45:23.3634591Z     },
2026-06-05T00:45:23.3634995Z     {
2026-06-05T00:45:23.3635465Z       "id": "REQ-MIGRATE-1",
2026-06-05T00:45:23.3636412Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-05T00:45:23.3636885Z       "requiredStages": [],
2026-06-05T00:45:23.3637314Z       "stages": {
2026-06-05T00:45:23.3637736Z         "doc": {
2026-06-05T00:45:23.3638192Z           "complete": false,
2026-06-05T00:45:23.3638641Z           "evidence": []
2026-06-05T00:45:23.3639037Z         },
2026-06-05T00:45:23.3639492Z         "impl": {
2026-06-05T00:45:23.3639968Z           "complete": false,
2026-06-05T00:45:23.3640431Z           "evidence": []
2026-06-05T00:45:23.3640838Z         },
2026-06-05T00:45:23.3641255Z         "int": {
2026-06-05T00:45:23.3641715Z           "complete": false,
2026-06-05T00:45:23.3642157Z           "evidence": []
2026-06-05T00:45:23.3642566Z         },
2026-06-05T00:45:23.3642978Z         "unit": {
2026-06-05T00:45:23.3643443Z           "complete": false,
2026-06-05T00:45:23.3643892Z           "evidence": []
2026-06-05T00:45:23.3644291Z         }
2026-06-05T00:45:23.3644701Z       }
2026-06-05T00:45:23.3645093Z     },
2026-06-05T00:45:23.3645497Z     {
2026-06-05T00:45:23.3645943Z       "id": "REQ-MSG-1",
2026-06-05T00:45:23.3648835Z       "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-05T00:45:23.3649355Z       "requiredStages": [
2026-06-05T00:45:23.3649773Z         "impl",
2026-06-05T00:45:23.3650201Z         "unit",
2026-06-05T00:45:23.3650610Z         "int"
2026-06-05T00:45:23.3651021Z       ],
2026-06-05T00:45:23.3651444Z       "stages": {
2026-06-05T00:45:23.3651877Z         "doc": {
2026-06-05T00:45:23.3652344Z           "complete": false,
2026-06-05T00:45:23.3652786Z           "evidence": []
2026-06-05T00:45:23.3653202Z         },
2026-06-05T00:45:23.3653620Z         "impl": {
2026-06-05T00:45:23.3654078Z           "complete": true,
2026-06-05T00:45:23.3654512Z           "evidence": [
2026-06-05T00:45:23.3654921Z             {
2026-06-05T00:45:23.3655531Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3655959Z               "line": 28
2026-06-05T00:45:23.3656371Z             },
2026-06-05T00:45:23.3656774Z             {
2026-06-05T00:45:23.3657388Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3657821Z               "line": 94
2026-06-05T00:45:23.3658237Z             },
2026-06-05T00:45:23.3658643Z             {
2026-06-05T00:45:23.3659480Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3659953Z               "line": 127
2026-06-05T00:45:23.3660360Z             },
2026-06-05T00:45:23.3660906Z             {
2026-06-05T00:45:23.3661506Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3661949Z               "line": 149
2026-06-05T00:45:23.3662362Z             },
2026-06-05T00:45:23.3662759Z             {
2026-06-05T00:45:23.3663360Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3663788Z               "line": 174
2026-06-05T00:45:23.3664199Z             },
2026-06-05T00:45:23.3664597Z             {
2026-06-05T00:45:23.3665206Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3665645Z               "line": 18
2026-06-05T00:45:23.3666052Z             },
2026-06-05T00:45:23.3666464Z             {
2026-06-05T00:45:23.3667031Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.3667470Z               "line": 13
2026-06-05T00:45:23.3667898Z             },
2026-06-05T00:45:23.3668303Z             {
2026-06-05T00:45:23.3668875Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.3669358Z               "line": 61
2026-06-05T00:45:23.3669776Z             },
2026-06-05T00:45:23.3670180Z             {
2026-06-05T00:45:23.3670756Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T00:45:23.3671198Z               "line": 10
2026-06-05T00:45:23.3671601Z             }
2026-06-05T00:45:23.3672012Z           ]
2026-06-05T00:45:23.3672415Z         },
2026-06-05T00:45:23.3672832Z         "int": {
2026-06-05T00:45:23.3673290Z           "complete": true,
2026-06-05T00:45:23.3673737Z           "evidence": [
2026-06-05T00:45:23.3674151Z             {
2026-06-05T00:45:23.3674887Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T00:45:23.3675319Z               "line": 9
2026-06-05T00:45:23.3675722Z             },
2026-06-05T00:45:23.3676124Z             {
2026-06-05T00:45:23.3676869Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T00:45:23.3677314Z               "line": 66
2026-06-05T00:45:23.3677728Z             },
2026-06-05T00:45:23.3678142Z             {
2026-06-05T00:45:23.3678877Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T00:45:23.3679357Z               "line": 116
2026-06-05T00:45:23.3679773Z             }
2026-06-05T00:45:23.3680175Z           ]
2026-06-05T00:45:23.3680584Z         },
2026-06-05T00:45:23.3681008Z         "unit": {
2026-06-05T00:45:23.3681461Z           "complete": true,
2026-06-05T00:45:23.3681909Z           "evidence": [
2026-06-05T00:45:23.3682316Z             {
2026-06-05T00:45:23.3682928Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3683363Z               "line": 203
2026-06-05T00:45:23.3683773Z             },
2026-06-05T00:45:23.3684190Z             {
2026-06-05T00:45:23.3684785Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3685234Z               "line": 232
2026-06-05T00:45:23.3685644Z             },
2026-06-05T00:45:23.3686052Z             {
2026-06-05T00:45:23.3686647Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3687106Z               "line": 277
2026-06-05T00:45:23.3687520Z             },
2026-06-05T00:45:23.3690779Z             {
2026-06-05T00:45:23.3691513Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3691964Z               "line": 300
2026-06-05T00:45:23.3692385Z             },
2026-06-05T00:45:23.3692791Z             {
2026-06-05T00:45:23.3693411Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T00:45:23.3693857Z               "line": 322
2026-06-05T00:45:23.3694265Z             },
2026-06-05T00:45:23.3694679Z             {
2026-06-05T00:45:23.3695276Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3695721Z               "line": 203
2026-06-05T00:45:23.3696127Z             },
2026-06-05T00:45:23.3696546Z             {
2026-06-05T00:45:23.3697410Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3697873Z               "line": 233
2026-06-05T00:45:23.3698434Z             },
2026-06-05T00:45:23.3698839Z             {
2026-06-05T00:45:23.3699530Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3699977Z               "line": 247
2026-06-05T00:45:23.3700392Z             },
2026-06-05T00:45:23.3700809Z             {
2026-06-05T00:45:23.3701415Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3701858Z               "line": 259
2026-06-05T00:45:23.3702265Z             },
2026-06-05T00:45:23.3702673Z             {
2026-06-05T00:45:23.3703235Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.3703666Z               "line": 158
2026-06-05T00:45:23.3704078Z             },
2026-06-05T00:45:23.3704477Z             {
2026-06-05T00:45:23.3705047Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T00:45:23.3705501Z               "line": 235
2026-06-05T00:45:23.3705914Z             },
2026-06-05T00:45:23.3706323Z             {
2026-06-05T00:45:23.3706883Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T00:45:23.3707338Z               "line": 68
2026-06-05T00:45:23.3707739Z             },
2026-06-05T00:45:23.3708148Z             {
2026-06-05T00:45:23.3708704Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T00:45:23.3709140Z               "line": 74
2026-06-05T00:45:23.3709600Z             },
2026-06-05T00:45:23.3710000Z             {
2026-06-05T00:45:23.3710571Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T00:45:23.3711001Z               "line": 80
2026-06-05T00:45:23.3711409Z             },
2026-06-05T00:45:23.3711814Z             {
2026-06-05T00:45:23.3712385Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T00:45:23.3712822Z               "line": 99
2026-06-05T00:45:23.3713221Z             }
2026-06-05T00:45:23.3713623Z           ]
2026-06-05T00:45:23.3714032Z         }
2026-06-05T00:45:23.3714443Z       }
2026-06-05T00:45:23.3714838Z     },
2026-06-05T00:45:23.3715243Z     {
2026-06-05T00:45:23.3715694Z       "id": "REQ-MSG-2",
2026-06-05T00:45:23.3717317Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-05T00:45:23.3717792Z       "requiredStages": [
2026-06-05T00:45:23.3718205Z         "impl",
2026-06-05T00:45:23.3718622Z         "unit"
2026-06-05T00:45:23.3719021Z       ],
2026-06-05T00:45:23.3719488Z       "stages": {
2026-06-05T00:45:23.3719907Z         "doc": {
2026-06-05T00:45:23.3720364Z           "complete": false,
2026-06-05T00:45:23.3720809Z           "evidence": []
2026-06-05T00:45:23.3721208Z         },
2026-06-05T00:45:23.3721637Z         "impl": {
2026-06-05T00:45:23.3722091Z           "complete": true,
2026-06-05T00:45:23.3722528Z           "evidence": [
2026-06-05T00:45:23.3722938Z             {
2026-06-05T00:45:23.3723477Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3723926Z               "line": 11
2026-06-05T00:45:23.3724332Z             },
2026-06-05T00:45:23.3724741Z             {
2026-06-05T00:45:23.3725290Z               "path": "crates/spt/src/main.rs",
2026-06-05T00:45:23.3725737Z               "line": 8
2026-06-05T00:45:23.3726151Z             }
2026-06-05T00:45:23.3726553Z           ]
2026-06-05T00:45:23.3726963Z         },
2026-06-05T00:45:23.3727367Z         "int": {
2026-06-05T00:45:23.3727830Z           "complete": false,
2026-06-05T00:45:23.3728267Z           "evidence": []
2026-06-05T00:45:23.3728674Z         },
2026-06-05T00:45:23.3729091Z         "unit": {
2026-06-05T00:45:23.3729583Z           "complete": true,
2026-06-05T00:45:23.3730021Z           "evidence": [
2026-06-05T00:45:23.3730420Z             {
2026-06-05T00:45:23.3730965Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3731401Z               "line": 2399
2026-06-05T00:45:23.3731815Z             },
2026-06-05T00:45:23.3732227Z             {
2026-06-05T00:45:23.3732940Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3733408Z               "line": 3226
2026-06-05T00:45:23.3733818Z             },
2026-06-05T00:45:23.3734369Z             {
2026-06-05T00:45:23.3734907Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3735349Z               "line": 3235
2026-06-05T00:45:23.3735761Z             },
2026-06-05T00:45:23.3736158Z             {
2026-06-05T00:45:23.3736704Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3737143Z               "line": 3247
2026-06-05T00:45:23.3737553Z             }
2026-06-05T00:45:23.3737949Z           ]
2026-06-05T00:45:23.3738359Z         }
2026-06-05T00:45:23.3738765Z       }
2026-06-05T00:45:23.3739200Z     },
2026-06-05T00:45:23.3739602Z     {
2026-06-05T00:45:23.3740039Z       "id": "REQ-MSG-3",
2026-06-05T00:45:23.3742534Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-05T00:45:23.3743045Z       "requiredStages": [
2026-06-05T00:45:23.3743468Z         "impl",
2026-06-05T00:45:23.3743891Z         "unit",
2026-06-05T00:45:23.3744298Z         "int"
2026-06-05T00:45:23.3744715Z       ],
2026-06-05T00:45:23.3745131Z       "stages": {
2026-06-05T00:45:23.3745552Z         "doc": {
2026-06-05T00:45:23.3746012Z           "complete": false,
2026-06-05T00:45:23.3746463Z           "evidence": []
2026-06-05T00:45:23.3746873Z         },
2026-06-05T00:45:23.3747290Z         "impl": {
2026-06-05T00:45:23.3747752Z           "complete": true,
2026-06-05T00:45:23.3748185Z           "evidence": [
2026-06-05T00:45:23.3748590Z             {
2026-06-05T00:45:23.3749253Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T00:45:23.3749700Z               "line": 19
2026-06-05T00:45:23.3750110Z             },
2026-06-05T00:45:23.3750512Z             {
2026-06-05T00:45:23.3751096Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3751524Z               "line": 21
2026-06-05T00:45:23.3751950Z             },
2026-06-05T00:45:23.3752351Z             {
2026-06-05T00:45:23.3752985Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3753812Z               "line": 48
2026-06-05T00:45:23.3754435Z             },
2026-06-05T00:45:23.3754934Z             {
2026-06-05T00:45:23.3755629Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3756264Z               "line": 131
2026-06-05T00:45:23.3756677Z             }
2026-06-05T00:45:23.3757086Z           ]
2026-06-05T00:45:23.3757496Z         },
2026-06-05T00:45:23.3757905Z         "int": {
2026-06-05T00:45:23.3758370Z           "complete": true,
2026-06-05T00:45:23.3758803Z           "evidence": [
2026-06-05T00:45:23.3759287Z             {
2026-06-05T00:45:23.3760043Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T00:45:23.3760481Z               "line": 10
2026-06-05T00:45:23.3760896Z             },
2026-06-05T00:45:23.3761306Z             {
2026-06-05T00:45:23.3762070Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T00:45:23.3762505Z               "line": 66
2026-06-05T00:45:23.3763215Z             }
2026-06-05T00:45:23.3763848Z           ]
2026-06-05T00:45:23.3764304Z         },
2026-06-05T00:45:23.3764891Z         "unit": {
2026-06-05T00:45:23.3765351Z           "complete": true,
2026-06-05T00:45:23.3765800Z           "evidence": [
2026-06-05T00:45:23.3766204Z             {
2026-06-05T00:45:23.3766806Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3767243Z               "line": 185
2026-06-05T00:45:23.3767656Z             },
2026-06-05T00:45:23.3768069Z             {
2026-06-05T00:45:23.3768645Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3769095Z               "line": 204
2026-06-05T00:45:23.3769547Z             },
2026-06-05T00:45:23.3773567Z             {
2026-06-05T00:45:23.3774281Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T00:45:23.3775302Z               "line": 223
2026-06-05T00:45:23.3775841Z             }
2026-06-05T00:45:23.3776448Z           ]
2026-06-05T00:45:23.3776866Z         }
2026-06-05T00:45:23.3777451Z       }
2026-06-05T00:45:23.3777866Z     },
2026-06-05T00:45:23.3778258Z     {
2026-06-05T00:45:23.3778724Z       "id": "REQ-NET-1",
2026-06-05T00:45:23.3779854Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-05T00:45:23.3780328Z       "requiredStages": [
2026-06-05T00:45:23.3780753Z         "impl",
2026-06-05T00:45:23.3781168Z         "unit",
2026-06-05T00:45:23.3781589Z         "int"
2026-06-05T00:45:23.3781988Z       ],
2026-06-05T00:45:23.3782428Z       "stages": {
2026-06-05T00:45:23.3782850Z         "doc": {
2026-06-05T00:45:23.3783312Z           "complete": false,
2026-06-05T00:45:23.3783764Z           "evidence": []
2026-06-05T00:45:23.3784165Z         },
2026-06-05T00:45:23.3784595Z         "impl": {
2026-06-05T00:45:23.3785048Z           "complete": true,
2026-06-05T00:45:23.3785521Z           "evidence": [
2026-06-05T00:45:23.3785946Z             {
2026-06-05T00:45:23.3786596Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3787053Z               "line": 52
2026-06-05T00:45:23.3787457Z             },
2026-06-05T00:45:23.3787875Z             {
2026-06-05T00:45:23.3788527Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3788977Z               "line": 448
2026-06-05T00:45:23.3789422Z             },
2026-06-05T00:45:23.3790129Z             {
2026-06-05T00:45:23.3790917Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T00:45:23.3791434Z               "line": 69
2026-06-05T00:45:23.3791956Z             },
2026-06-05T00:45:23.3792484Z             {
2026-06-05T00:45:23.3793320Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3793849Z               "line": 65
2026-06-05T00:45:23.3794326Z             },
2026-06-05T00:45:23.3794799Z             {
2026-06-05T00:45:23.3795573Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3796078Z               "line": 127
2026-06-05T00:45:23.3796561Z             },
2026-06-05T00:45:23.3797010Z             {
2026-06-05T00:45:23.3797793Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3798368Z               "line": 143
2026-06-05T00:45:23.3798851Z             },
2026-06-05T00:45:23.3799507Z             {
2026-06-05T00:45:23.3800182Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3800632Z               "line": 158
2026-06-05T00:45:23.3801050Z             },
2026-06-05T00:45:23.3801788Z             {
2026-06-05T00:45:23.3802451Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3802896Z               "line": 220
2026-06-05T00:45:23.3803418Z             },
2026-06-05T00:45:23.3803835Z             {
2026-06-05T00:45:23.3804494Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3804935Z               "line": 255
2026-06-05T00:45:23.3805370Z             },
2026-06-05T00:45:23.3805784Z             {
2026-06-05T00:45:23.3806435Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3806882Z               "line": 261
2026-06-05T00:45:23.3807294Z             },
2026-06-05T00:45:23.3807709Z             {
2026-06-05T00:45:23.3808358Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3808804Z               "line": 267
2026-06-05T00:45:23.3809254Z             },
2026-06-05T00:45:23.3809676Z             {
2026-06-05T00:45:23.3810322Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3810769Z               "line": 283
2026-06-05T00:45:23.3811183Z             },
2026-06-05T00:45:23.3811593Z             {
2026-06-05T00:45:23.3812247Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3812678Z               "line": 303
2026-06-05T00:45:23.3813092Z             },
2026-06-05T00:45:23.3813493Z             {
2026-06-05T00:45:23.3814459Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.3814940Z               "line": 35
2026-06-05T00:45:23.3815349Z             },
2026-06-05T00:45:23.3815911Z             {
2026-06-05T00:45:23.3816551Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.3816994Z               "line": 82
2026-06-05T00:45:23.3817415Z             },
2026-06-05T00:45:23.3817833Z             {
2026-06-05T00:45:23.3818437Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.3818876Z               "line": 129
2026-06-05T00:45:23.3819337Z             },
2026-06-05T00:45:23.3819749Z             {
2026-06-05T00:45:23.3820289Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.3820739Z               "line": 1050
2026-06-05T00:45:23.3821143Z             },
2026-06-05T00:45:23.3821555Z             {
2026-06-05T00:45:23.3822121Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T00:45:23.3822561Z               "line": 17
2026-06-05T00:45:23.3822975Z             }
2026-06-05T00:45:23.3823391Z           ]
2026-06-05T00:45:23.3823807Z         },
2026-06-05T00:45:23.3824225Z         "int": {
2026-06-05T00:45:23.3824708Z           "complete": true,
2026-06-05T00:45:23.3825150Z           "evidence": [
2026-06-05T00:45:23.3825562Z             {
2026-06-05T00:45:23.3826236Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.3826692Z               "line": 314
2026-06-05T00:45:23.3827108Z             },
2026-06-05T00:45:23.3827510Z             {
2026-06-05T00:45:23.3828183Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3828629Z               "line": 488
2026-06-05T00:45:23.3829046Z             },
2026-06-05T00:45:23.3829485Z             {
2026-06-05T00:45:23.3830151Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.3830595Z               "line": 645
2026-06-05T00:45:23.3830996Z             }
2026-06-05T00:45:23.3831410Z           ]
2026-06-05T00:45:23.3831824Z         },
2026-06-05T00:45:23.3832252Z         "unit": {
2026-06-05T00:45:23.3832714Z           "complete": true,
2026-06-05T00:45:23.3833167Z           "evidence": [
2026-06-05T00:45:23.3833590Z             {
2026-06-05T00:45:23.3834239Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3834682Z               "line": 500
2026-06-05T00:45:23.3835085Z             },
2026-06-05T00:45:23.3835493Z             {
2026-06-05T00:45:23.3836145Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.3836596Z               "line": 529
2026-06-05T00:45:23.3837008Z             },
2026-06-05T00:45:23.3837412Z             {
2026-06-05T00:45:23.3838093Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.3838532Z               "line": 517
2026-06-05T00:45:23.3838944Z             },
2026-06-05T00:45:23.3839388Z             {
2026-06-05T00:45:23.3840046Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T00:45:23.3840498Z               "line": 142
2026-06-05T00:45:23.3840908Z             },
2026-06-05T00:45:23.3841321Z             {
2026-06-05T00:45:23.3841971Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3842432Z               "line": 357
2026-06-05T00:45:23.3842831Z             },
2026-06-05T00:45:23.3843239Z             {
2026-06-05T00:45:23.3843889Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3844329Z               "line": 371
2026-06-05T00:45:23.3844745Z             },
2026-06-05T00:45:23.3845150Z             {
2026-06-05T00:45:23.3845807Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3846245Z               "line": 390
2026-06-05T00:45:23.3846662Z             },
2026-06-05T00:45:23.3847076Z             {
2026-06-05T00:45:23.3847698Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.3848141Z               "line": 106
2026-06-05T00:45:23.3848549Z             },
2026-06-05T00:45:23.3849123Z             {
2026-06-05T00:45:23.3849819Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T00:45:23.3850264Z               "line": 148
2026-06-05T00:45:23.3850819Z             },
2026-06-05T00:45:23.3851229Z             {
2026-06-05T00:45:23.3851848Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T00:45:23.3852281Z               "line": 445
2026-06-05T00:45:23.3852743Z             },
2026-06-05T00:45:23.3853161Z             {
2026-06-05T00:45:23.3853727Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T00:45:23.3854176Z               "line": 218
2026-06-05T00:45:23.3854585Z             },
2026-06-05T00:45:23.3859523Z             {
2026-06-05T00:45:23.3860210Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T00:45:23.3860681Z               "line": 306
2026-06-05T00:45:23.3861096Z             }
2026-06-05T00:45:23.3861505Z           ]
2026-06-05T00:45:23.3861917Z         }
2026-06-05T00:45:23.3862322Z       }
2026-06-05T00:45:23.3862733Z     },
2026-06-05T00:45:23.3863158Z     {
2026-06-05T00:45:23.3863622Z       "id": "REQ-NET-2",
2026-06-05T00:45:23.3864650Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-05T00:45:23.3865133Z       "requiredStages": [
2026-06-05T00:45:23.3865560Z         "impl"
2026-06-05T00:45:23.3865966Z       ],
2026-06-05T00:45:23.3866400Z       "stages": {
2026-06-05T00:45:23.3866813Z         "doc": {
2026-06-05T00:45:23.3867282Z           "complete": false,
2026-06-05T00:45:23.3867738Z           "evidence": []
2026-06-05T00:45:23.3868146Z         },
2026-06-05T00:45:23.3868578Z         "impl": {
2026-06-05T00:45:23.3869035Z           "complete": true,
2026-06-05T00:45:23.3869524Z           "evidence": [
2026-06-05T00:45:23.3869934Z             {
2026-06-05T00:45:23.3870582Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.3871030Z               "line": 49
2026-06-05T00:45:23.3871440Z             },
2026-06-05T00:45:23.3871854Z             {
2026-06-05T00:45:23.3872514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3872955Z               "line": 39
2026-06-05T00:45:23.3873357Z             },
2026-06-05T00:45:23.3873782Z             {
2026-06-05T00:45:23.3874444Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3874875Z               "line": 49
2026-06-05T00:45:23.3875297Z             },
2026-06-05T00:45:23.3875704Z             {
2026-06-05T00:45:23.3876357Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3876792Z               "line": 127
2026-06-05T00:45:23.3877206Z             },
2026-06-05T00:45:23.3877619Z             {
2026-06-05T00:45:23.3878272Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3878725Z               "line": 143
2026-06-05T00:45:23.3879136Z             },
2026-06-05T00:45:23.3879600Z             {
2026-06-05T00:45:23.3880241Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T00:45:23.3880705Z               "line": 158
2026-06-05T00:45:23.3881125Z             }
2026-06-05T00:45:23.3881529Z           ]
2026-06-05T00:45:23.3881942Z         },
2026-06-05T00:45:23.3882372Z         "int": {
2026-06-05T00:45:23.3882848Z           "complete": false,
2026-06-05T00:45:23.3883295Z           "evidence": []
2026-06-05T00:45:23.3883711Z         },
2026-06-05T00:45:23.3884141Z         "unit": {
2026-06-05T00:45:23.3884599Z           "complete": true,
2026-06-05T00:45:23.3885045Z           "evidence": [
2026-06-05T00:45:23.3885450Z             {
2026-06-05T00:45:23.3886090Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.3886526Z               "line": 334
2026-06-05T00:45:23.3886943Z             }
2026-06-05T00:45:23.3887358Z           ]
2026-06-05T00:45:23.3887756Z         }
2026-06-05T00:45:23.3888163Z       }
2026-06-05T00:45:23.3888557Z     },
2026-06-05T00:45:23.3888964Z     {
2026-06-05T00:45:23.3889454Z       "id": "REQ-NET-3",
2026-06-05T00:45:23.3890675Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-05T00:45:23.3891203Z       "requiredStages": [
2026-06-05T00:45:23.3891620Z         "impl",
2026-06-05T00:45:23.3892176Z         "unit"
2026-06-05T00:45:23.3892574Z       ],
2026-06-05T00:45:23.3893004Z       "stages": {
2026-06-05T00:45:23.3893419Z         "doc": {
2026-06-05T00:45:23.3893894Z           "complete": false,
2026-06-05T00:45:23.3894355Z           "evidence": []
2026-06-05T00:45:23.3894763Z         },
2026-06-05T00:45:23.3895190Z         "impl": {
2026-06-05T00:45:23.3895643Z           "complete": true,
2026-06-05T00:45:23.3896092Z           "evidence": [
2026-06-05T00:45:23.3896494Z             {
2026-06-05T00:45:23.3897112Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3897550Z               "line": 39
2026-06-05T00:45:23.3897957Z             },
2026-06-05T00:45:23.3898369Z             {
2026-06-05T00:45:23.3898970Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3899496Z               "line": 159
2026-06-05T00:45:23.3899913Z             },
2026-06-05T00:45:23.3900331Z             {
2026-06-05T00:45:23.3900937Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T00:45:23.3901388Z               "line": 290
2026-06-05T00:45:23.3901803Z             },
2026-06-05T00:45:23.3902210Z             {
2026-06-05T00:45:23.3902820Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T00:45:23.3903252Z               "line": 36
2026-06-05T00:45:23.3903665Z             },
2026-06-05T00:45:23.3904076Z             {
2026-06-05T00:45:23.3904743Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3905191Z               "line": 135
2026-06-05T00:45:23.3905600Z             },
2026-06-05T00:45:23.3906015Z             {
2026-06-05T00:45:23.3906683Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3907135Z               "line": 172
2026-06-05T00:45:23.3907552Z             },
2026-06-05T00:45:23.3907955Z             {
2026-06-05T00:45:23.3908641Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3909079Z               "line": 184
2026-06-05T00:45:23.3909551Z             },
2026-06-05T00:45:23.3909952Z             {
2026-06-05T00:45:23.3910636Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3911079Z               "line": 222
2026-06-05T00:45:23.3911483Z             },
2026-06-05T00:45:23.3911892Z             {
2026-06-05T00:45:23.3912554Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3912996Z               "line": 237
2026-06-05T00:45:23.3913408Z             },
2026-06-05T00:45:23.3913816Z             {
2026-06-05T00:45:23.3914497Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3914928Z               "line": 273
2026-06-05T00:45:23.3915344Z             },
2026-06-05T00:45:23.3915749Z             {
2026-06-05T00:45:23.3916423Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3916876Z               "line": 314
2026-06-05T00:45:23.3917284Z             },
2026-06-05T00:45:23.3917692Z             {
2026-06-05T00:45:23.3918357Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.3918813Z               "line": 327
2026-06-05T00:45:23.3919300Z             },
2026-06-05T00:45:23.3919724Z             {
2026-06-05T00:45:23.3920424Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3920925Z               "line": 29
2026-06-05T00:45:23.3921376Z             },
2026-06-05T00:45:23.3921784Z             {
2026-06-05T00:45:23.3922446Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3922877Z               "line": 70
2026-06-05T00:45:23.3923297Z             },
2026-06-05T00:45:23.3923891Z             {
2026-06-05T00:45:23.3924874Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3925382Z               "line": 121
2026-06-05T00:45:23.3925945Z             }
2026-06-05T00:45:23.3926557Z           ]
2026-06-05T00:45:23.3926981Z         },
2026-06-05T00:45:23.3927409Z         "int": {
2026-06-05T00:45:23.3927887Z           "complete": false,
2026-06-05T00:45:23.3928511Z           "evidence": []
2026-06-05T00:45:23.3928929Z         },
2026-06-05T00:45:23.3929412Z         "unit": {
2026-06-05T00:45:23.3929889Z           "complete": true,
2026-06-05T00:45:23.3930333Z           "evidence": [
2026-06-05T00:45:23.3930749Z             {
2026-06-05T00:45:23.3931396Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.3931837Z               "line": 203
2026-06-05T00:45:23.3932264Z             },
2026-06-05T00:45:23.3932677Z             {
2026-06-05T00:45:23.3933314Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.3933761Z               "line": 303
2026-06-05T00:45:23.3934183Z             },
2026-06-05T00:45:23.3934596Z             {
2026-06-05T00:45:23.3935216Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T00:45:23.3935676Z               "line": 399
2026-06-05T00:45:23.3936089Z             },
2026-06-05T00:45:23.3936506Z             {
2026-06-05T00:45:23.3937118Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T00:45:23.3937578Z               "line": 93
2026-06-05T00:45:23.3941312Z             },
2026-06-05T00:45:23.3941812Z             {
2026-06-05T00:45:23.3942468Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T00:45:23.3942915Z               "line": 131
2026-06-05T00:45:23.3943338Z             },
2026-06-05T00:45:23.3943740Z             {
2026-06-05T00:45:23.3944403Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3944852Z               "line": 308
2026-06-05T00:45:23.3945258Z             },
2026-06-05T00:45:23.3945669Z             {
2026-06-05T00:45:23.3946307Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3946758Z               "line": 345
2026-06-05T00:45:23.3947166Z             },
2026-06-05T00:45:23.3947621Z             {
2026-06-05T00:45:23.3948284Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T00:45:23.3948726Z               "line": 469
2026-06-05T00:45:23.3949223Z             }
2026-06-05T00:45:23.3949630Z           ]
2026-06-05T00:45:23.3950041Z         }
2026-06-05T00:45:23.3950444Z       }
2026-06-05T00:45:23.3950853Z     },
2026-06-05T00:45:23.3951256Z     {
2026-06-05T00:45:23.3951745Z       "id": "REQ-NODE-IDENTITY",
2026-06-05T00:45:23.3953113Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-05T00:45:23.3953587Z       "requiredStages": [
2026-06-05T00:45:23.3954010Z         "impl",
2026-06-05T00:45:23.3954434Z         "unit"
2026-06-05T00:45:23.3954835Z       ],
2026-06-05T00:45:23.3955263Z       "stages": {
2026-06-05T00:45:23.3955670Z         "doc": {
2026-06-05T00:45:23.3956142Z           "complete": false,
2026-06-05T00:45:23.3956582Z           "evidence": []
2026-06-05T00:45:23.3956996Z         },
2026-06-05T00:45:23.3957418Z         "impl": {
2026-06-05T00:45:23.3957892Z           "complete": true,
2026-06-05T00:45:23.3958334Z           "evidence": [
2026-06-05T00:45:23.3958743Z             {
2026-06-05T00:45:23.3959455Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3959893Z               "line": 60
2026-06-05T00:45:23.3960311Z             },
2026-06-05T00:45:23.3960720Z             {
2026-06-05T00:45:23.3961370Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3961812Z               "line": 68
2026-06-05T00:45:23.3962216Z             },
2026-06-05T00:45:23.3962625Z             {
2026-06-05T00:45:23.3963260Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3963703Z               "line": 86
2026-06-05T00:45:23.3964119Z             },
2026-06-05T00:45:23.3964516Z             {
2026-06-05T00:45:23.3965166Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3965610Z               "line": 120
2026-06-05T00:45:23.3966248Z             },
2026-06-05T00:45:23.3966672Z             {
2026-06-05T00:45:23.3967319Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3967919Z               "line": 127
2026-06-05T00:45:23.3968335Z             },
2026-06-05T00:45:23.3968759Z             {
2026-06-05T00:45:23.3969447Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3969901Z               "line": 143
2026-06-05T00:45:23.3970307Z             },
2026-06-05T00:45:23.3970726Z             {
2026-06-05T00:45:23.3971394Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T00:45:23.3971893Z               "line": 16
2026-06-05T00:45:23.3972315Z             }
2026-06-05T00:45:23.3972714Z           ]
2026-06-05T00:45:23.3973126Z         },
2026-06-05T00:45:23.3973530Z         "int": {
2026-06-05T00:45:23.3974001Z           "complete": false,
2026-06-05T00:45:23.3974461Z           "evidence": []
2026-06-05T00:45:23.3974856Z         },
2026-06-05T00:45:23.3975294Z         "unit": {
2026-06-05T00:45:23.3975749Z           "complete": true,
2026-06-05T00:45:23.3976194Z           "evidence": [
2026-06-05T00:45:23.3976597Z             {
2026-06-05T00:45:23.3977258Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3977708Z               "line": 199
2026-06-05T00:45:23.3978114Z             },
2026-06-05T00:45:23.3978529Z             {
2026-06-05T00:45:23.3979204Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3979666Z               "line": 218
2026-06-05T00:45:23.3980079Z             },
2026-06-05T00:45:23.3980493Z             {
2026-06-05T00:45:23.3981134Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3981568Z               "line": 232
2026-06-05T00:45:23.3981991Z             },
2026-06-05T00:45:23.3982394Z             {
2026-06-05T00:45:23.3983040Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T00:45:23.3983475Z               "line": 248
2026-06-05T00:45:23.3983903Z             },
2026-06-05T00:45:23.3984323Z             {
2026-06-05T00:45:23.3984939Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T00:45:23.3985382Z               "line": 125
2026-06-05T00:45:23.3985805Z             },
2026-06-05T00:45:23.3986218Z             {
2026-06-05T00:45:23.3986818Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T00:45:23.3987268Z               "line": 141
2026-06-05T00:45:23.3987681Z             },
2026-06-05T00:45:23.3988087Z             {
2026-06-05T00:45:23.3988696Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T00:45:23.3989129Z               "line": 153
2026-06-05T00:45:23.3989586Z             }
2026-06-05T00:45:23.3989995Z           ]
2026-06-05T00:45:23.3990414Z         }
2026-06-05T00:45:23.3990824Z       }
2026-06-05T00:45:23.3991221Z     },
2026-06-05T00:45:23.3991622Z     {
2026-06-05T00:45:23.3992077Z       "id": "REQ-NOTIF-1",
2026-06-05T00:45:23.3994397Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-05T00:45:23.3994876Z       "requiredStages": [
2026-06-05T00:45:23.3995291Z         "impl",
2026-06-05T00:45:23.3995724Z         "unit",
2026-06-05T00:45:23.3996134Z         "int"
2026-06-05T00:45:23.3996541Z       ],
2026-06-05T00:45:23.3996957Z       "stages": {
2026-06-05T00:45:23.3997379Z         "doc": {
2026-06-05T00:45:23.3997853Z           "complete": false,
2026-06-05T00:45:23.3998298Z           "evidence": []
2026-06-05T00:45:23.3998709Z         },
2026-06-05T00:45:23.3999123Z         "impl": {
2026-06-05T00:45:23.3999622Z           "complete": true,
2026-06-05T00:45:23.4000056Z           "evidence": [
2026-06-05T00:45:23.4000472Z             {
2026-06-05T00:45:23.4001125Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T00:45:23.4001566Z               "line": 412
2026-06-05T00:45:23.4001988Z             },
2026-06-05T00:45:23.4002398Z             {
2026-06-05T00:45:23.4003165Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4003617Z               "line": 30
2026-06-05T00:45:23.4004031Z             },
2026-06-05T00:45:23.4004586Z             {
2026-06-05T00:45:23.4005196Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4005641Z               "line": 62
2026-06-05T00:45:23.4006048Z             },
2026-06-05T00:45:23.4006459Z             {
2026-06-05T00:45:23.4007060Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4007501Z               "line": 83
2026-06-05T00:45:23.4007918Z             },
2026-06-05T00:45:23.4008316Z             {
2026-06-05T00:45:23.4008927Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4009405Z               "line": 97
2026-06-05T00:45:23.4009830Z             },
2026-06-05T00:45:23.4010241Z             {
2026-06-05T00:45:23.4010861Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4011307Z               "line": 126
2026-06-05T00:45:23.4011730Z             },
2026-06-05T00:45:23.4012145Z             {
2026-06-05T00:45:23.4012758Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4013219Z               "line": 159
2026-06-05T00:45:23.4013625Z             },
2026-06-05T00:45:23.4014043Z             {
2026-06-05T00:45:23.4014656Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4015092Z               "line": 179
2026-06-05T00:45:23.4015513Z             },
2026-06-05T00:45:23.4015921Z             {
2026-06-05T00:45:23.4016537Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4016973Z               "line": 239
2026-06-05T00:45:23.4017381Z             },
2026-06-05T00:45:23.4017787Z             {
2026-06-05T00:45:23.4018394Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4018834Z               "line": 287
2026-06-05T00:45:23.4019286Z             },
2026-06-05T00:45:23.4019703Z             {
2026-06-05T00:45:23.4023290Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4023826Z               "line": 24
2026-06-05T00:45:23.4024250Z             },
2026-06-05T00:45:23.4024664Z             {
2026-06-05T00:45:23.4025364Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4025797Z               "line": 34
2026-06-05T00:45:23.4026212Z             },
2026-06-05T00:45:23.4026615Z             {
2026-06-05T00:45:23.4027267Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4027706Z               "line": 55
2026-06-05T00:45:23.4028111Z             },
2026-06-05T00:45:23.4028522Z             {
2026-06-05T00:45:23.4029252Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4029698Z               "line": 76
2026-06-05T00:45:23.4030111Z             },
2026-06-05T00:45:23.4030520Z             {
2026-06-05T00:45:23.4031196Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4031632Z               "line": 88
2026-06-05T00:45:23.4032060Z             },
2026-06-05T00:45:23.4032462Z             {
2026-06-05T00:45:23.4033117Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T00:45:23.4033571Z               "line": 41
2026-06-05T00:45:23.4033976Z             },
2026-06-05T00:45:23.4034389Z             {
2026-06-05T00:45:23.4035033Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.4035468Z               "line": 94
2026-06-05T00:45:23.4035874Z             },
2026-06-05T00:45:23.4036286Z             {
2026-06-05T00:45:23.4036912Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.4037342Z               "line": 20
2026-06-05T00:45:23.4037756Z             },
2026-06-05T00:45:23.4038159Z             {
2026-06-05T00:45:23.4038775Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.4039242Z               "line": 30
2026-06-05T00:45:23.4039659Z             },
2026-06-05T00:45:23.4040068Z             {
2026-06-05T00:45:23.4040927Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.4041388Z               "line": 50
2026-06-05T00:45:23.4041792Z             },
2026-06-05T00:45:23.4042356Z             {
2026-06-05T00:45:23.4042954Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4043393Z               "line": 28
2026-06-05T00:45:23.4043808Z             },
2026-06-05T00:45:23.4044210Z             {
2026-06-05T00:45:23.4044812Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4045246Z               "line": 126
2026-06-05T00:45:23.4045661Z             },
2026-06-05T00:45:23.4046061Z             {
2026-06-05T00:45:23.4046665Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4047111Z               "line": 161
2026-06-05T00:45:23.4047520Z             },
2026-06-05T00:45:23.4047931Z             {
2026-06-05T00:45:23.4048525Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4048968Z               "line": 197
2026-06-05T00:45:23.4049431Z             },
2026-06-05T00:45:23.4049852Z             {
2026-06-05T00:45:23.4050458Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4050912Z               "line": 208
2026-06-05T00:45:23.4051330Z             },
2026-06-05T00:45:23.4051733Z             {
2026-06-05T00:45:23.4052341Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4052778Z               "line": 231
2026-06-05T00:45:23.4053190Z             },
2026-06-05T00:45:23.4053607Z             {
2026-06-05T00:45:23.4054206Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4054649Z               "line": 251
2026-06-05T00:45:23.4055056Z             },
2026-06-05T00:45:23.4055464Z             {
2026-06-05T00:45:23.4056089Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4056534Z               "line": 63
2026-06-05T00:45:23.4056946Z             }
2026-06-05T00:45:23.4057348Z           ]
2026-06-05T00:45:23.4057763Z         },
2026-06-05T00:45:23.4058198Z         "int": {
2026-06-05T00:45:23.4058664Z           "complete": true,
2026-06-05T00:45:23.4059098Z           "evidence": [
2026-06-05T00:45:23.4059564Z             {
2026-06-05T00:45:23.4060249Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.4060689Z               "line": 265
2026-06-05T00:45:23.4061106Z             },
2026-06-05T00:45:23.4061505Z             {
2026-06-05T00:45:23.4062192Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T00:45:23.4062636Z               "line": 102
2026-06-05T00:45:23.4063047Z             },
2026-06-05T00:45:23.4063453Z             {
2026-06-05T00:45:23.4064095Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4064540Z               "line": 497
2026-06-05T00:45:23.4064946Z             },
2026-06-05T00:45:23.4065363Z             {
2026-06-05T00:45:23.4066017Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4066451Z               "line": 745
2026-06-05T00:45:23.4066876Z             }
2026-06-05T00:45:23.4067281Z           ]
2026-06-05T00:45:23.4067690Z         },
2026-06-05T00:45:23.4068101Z         "unit": {
2026-06-05T00:45:23.4068575Z           "complete": true,
2026-06-05T00:45:23.4069018Z           "evidence": [
2026-06-05T00:45:23.4069463Z             {
2026-06-05T00:45:23.4070080Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4070517Z               "line": 362
2026-06-05T00:45:23.4070935Z             },
2026-06-05T00:45:23.4071343Z             {
2026-06-05T00:45:23.4073686Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4074139Z               "line": 400
2026-06-05T00:45:23.4074544Z             },
2026-06-05T00:45:23.4074955Z             {
2026-06-05T00:45:23.4075556Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4076003Z               "line": 427
2026-06-05T00:45:23.4076408Z             },
2026-06-05T00:45:23.4076819Z             {
2026-06-05T00:45:23.4077629Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4078099Z               "line": 448
2026-06-05T00:45:23.4078517Z             },
2026-06-05T00:45:23.4079108Z             {
2026-06-05T00:45:23.4079823Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4080278Z               "line": 501
2026-06-05T00:45:23.4080706Z             },
2026-06-05T00:45:23.4081121Z             {
2026-06-05T00:45:23.4081729Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4082171Z               "line": 540
2026-06-05T00:45:23.4082570Z             },
2026-06-05T00:45:23.4082979Z             {
2026-06-05T00:45:23.4083591Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4084031Z               "line": 632
2026-06-05T00:45:23.4084446Z             },
2026-06-05T00:45:23.4084856Z             {
2026-06-05T00:45:23.4085511Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4085966Z               "line": 133
2026-06-05T00:45:23.4086390Z             },
2026-06-05T00:45:23.4086801Z             {
2026-06-05T00:45:23.4087455Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4087914Z               "line": 208
2026-06-05T00:45:23.4088318Z             },
2026-06-05T00:45:23.4088728Z             {
2026-06-05T00:45:23.4089420Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T00:45:23.4089880Z               "line": 227
2026-06-05T00:45:23.4090316Z             },
2026-06-05T00:45:23.4090724Z             {
2026-06-05T00:45:23.4091371Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.4091806Z               "line": 328
2026-06-05T00:45:23.4092221Z             },
2026-06-05T00:45:23.4092627Z             {
2026-06-05T00:45:23.4093285Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T00:45:23.4093735Z               "line": 357
2026-06-05T00:45:23.4094137Z             },
2026-06-05T00:45:23.4094553Z             {
2026-06-05T00:45:23.4095240Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-05T00:45:23.4095697Z               "line": 112
2026-06-05T00:45:23.4096122Z             },
2026-06-05T00:45:23.4096529Z             {
2026-06-05T00:45:23.4097155Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.4097580Z               "line": 72
2026-06-05T00:45:23.4097993Z             },
2026-06-05T00:45:23.4098396Z             {
2026-06-05T00:45:23.4099026Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T00:45:23.4099501Z               "line": 94
2026-06-05T00:45:23.4099916Z             },
2026-06-05T00:45:23.4104412Z             {
2026-06-05T00:45:23.4105228Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4105690Z               "line": 365
2026-06-05T00:45:23.4106107Z             },
2026-06-05T00:45:23.4106519Z             {
2026-06-05T00:45:23.4107113Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4107600Z               "line": 396
2026-06-05T00:45:23.4108021Z             },
2026-06-05T00:45:23.4108424Z             {
2026-06-05T00:45:23.4109015Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4109564Z               "line": 410
2026-06-05T00:45:23.4109982Z             },
2026-06-05T00:45:23.4110381Z             {
2026-06-05T00:45:23.4110986Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4111428Z               "line": 441
2026-06-05T00:45:23.4111837Z             },
2026-06-05T00:45:23.4112250Z             {
2026-06-05T00:45:23.4112843Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4113290Z               "line": 458
2026-06-05T00:45:23.4113707Z             },
2026-06-05T00:45:23.4114111Z             {
2026-06-05T00:45:23.4114713Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4115148Z               "line": 483
2026-06-05T00:45:23.4115563Z             },
2026-06-05T00:45:23.4115960Z             {
2026-06-05T00:45:23.4116846Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T00:45:23.4117311Z               "line": 507
2026-06-05T00:45:23.4117720Z             },
2026-06-05T00:45:23.4118295Z             {
2026-06-05T00:45:23.4118923Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4119405Z               "line": 373
2026-06-05T00:45:23.4119814Z             }
2026-06-05T00:45:23.4120227Z           ]
2026-06-05T00:45:23.4120633Z         }
2026-06-05T00:45:23.4121028Z       }
2026-06-05T00:45:23.4121429Z     },
2026-06-05T00:45:23.4121819Z     {
2026-06-05T00:45:23.4122279Z       "id": "REQ-NOTIF-2",
2026-06-05T00:45:23.4123870Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-05T00:45:23.4124340Z       "requiredStages": [
2026-06-05T00:45:23.4124763Z         "doc",
2026-06-05T00:45:23.4125175Z         "impl",
2026-06-05T00:45:23.4125594Z         "unit"
2026-06-05T00:45:23.4125995Z       ],
2026-06-05T00:45:23.4126433Z       "stages": {
2026-06-05T00:45:23.4126842Z         "doc": {
2026-06-05T00:45:23.4127302Z           "complete": true,
2026-06-05T00:45:23.4127739Z           "evidence": [
2026-06-05T00:45:23.4128154Z             {
2026-06-05T00:45:23.4128661Z               "path": "docs/MANIFEST.md",
2026-06-05T00:45:23.4129090Z               "line": 62
2026-06-05T00:45:23.4129545Z             }
2026-06-05T00:45:23.4129951Z           ]
2026-06-05T00:45:23.4130364Z         },
2026-06-05T00:45:23.4130796Z         "impl": {
2026-06-05T00:45:23.4131251Z           "complete": true,
2026-06-05T00:45:23.4131695Z           "evidence": [
2026-06-05T00:45:23.4132098Z             {
2026-06-05T00:45:23.4132719Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4133159Z               "line": 208
2026-06-05T00:45:23.4133579Z             },
2026-06-05T00:45:23.4133993Z             {
2026-06-05T00:45:23.4134600Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4135072Z               "line": 222
2026-06-05T00:45:23.4135475Z             },
2026-06-05T00:45:23.4135887Z             {
2026-06-05T00:45:23.4136538Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.4137002Z               "line": 125
2026-06-05T00:45:23.4137417Z             },
2026-06-05T00:45:23.4137819Z             {
2026-06-05T00:45:23.4138450Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4138879Z               "line": 72
2026-06-05T00:45:23.4139327Z             },
2026-06-05T00:45:23.4139743Z             {
2026-06-05T00:45:23.4140287Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4140726Z               "line": 833
2026-06-05T00:45:23.4141130Z             },
2026-06-05T00:45:23.4141543Z             {
2026-06-05T00:45:23.4142077Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4142517Z               "line": 865
2026-06-05T00:45:23.4142925Z             },
2026-06-05T00:45:23.4143335Z             {
2026-06-05T00:45:23.4144067Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4144668Z               "line": 931
2026-06-05T00:45:23.4145083Z             },
2026-06-05T00:45:23.4145498Z             {
2026-06-05T00:45:23.4146036Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4146468Z               "line": 967
2026-06-05T00:45:23.4146882Z             }
2026-06-05T00:45:23.4147292Z           ]
2026-06-05T00:45:23.4147695Z         },
2026-06-05T00:45:23.4148116Z         "int": {
2026-06-05T00:45:23.4148571Z           "complete": false,
2026-06-05T00:45:23.4149019Z           "evidence": []
2026-06-05T00:45:23.4149452Z         },
2026-06-05T00:45:23.4149879Z         "unit": {
2026-06-05T00:45:23.4150341Z           "complete": true,
2026-06-05T00:45:23.4150779Z           "evidence": [
2026-06-05T00:45:23.4151189Z             {
2026-06-05T00:45:23.4151799Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.4152241Z               "line": 590
2026-06-05T00:45:23.4152808Z             },
2026-06-05T00:45:23.4153245Z             {
2026-06-05T00:45:23.4153791Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4154223Z               "line": 2455
2026-06-05T00:45:23.4154767Z             },
2026-06-05T00:45:23.4155166Z             {
2026-06-05T00:45:23.4155711Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4156145Z               "line": 2477
2026-06-05T00:45:23.4156557Z             }
2026-06-05T00:45:23.4156972Z           ]
2026-06-05T00:45:23.4157371Z         }
2026-06-05T00:45:23.4157777Z       }
2026-06-05T00:45:23.4158170Z     },
2026-06-05T00:45:23.4158575Z     {
2026-06-05T00:45:23.4159025Z       "id": "REQ-PAIR-1",
2026-06-05T00:45:23.4159623Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-05T00:45:23.4160102Z       "requiredStages": [
2026-06-05T00:45:23.4160515Z         "impl",
2026-06-05T00:45:23.4160927Z         "unit",
2026-06-05T00:45:23.4161329Z         "int"
2026-06-05T00:45:23.4161738Z       ],
2026-06-05T00:45:23.4162170Z       "stages": {
2026-06-05T00:45:23.4162587Z         "doc": {
2026-06-05T00:45:23.4163049Z           "complete": false,
2026-06-05T00:45:23.4163497Z           "evidence": []
2026-06-05T00:45:23.4163923Z         },
2026-06-05T00:45:23.4164338Z         "impl": {
2026-06-05T00:45:23.4164797Z           "complete": true,
2026-06-05T00:45:23.4165230Z           "evidence": [
2026-06-05T00:45:23.4165641Z             {
2026-06-05T00:45:23.4166344Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4166779Z               "line": 27
2026-06-05T00:45:23.4167196Z             },
2026-06-05T00:45:23.4167598Z             {
2026-06-05T00:45:23.4168306Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4168736Z               "line": 88
2026-06-05T00:45:23.4169150Z             },
2026-06-05T00:45:23.4169603Z             {
2026-06-05T00:45:23.4170301Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4170763Z               "line": 110
2026-06-05T00:45:23.4171175Z             },
2026-06-05T00:45:23.4171591Z             {
2026-06-05T00:45:23.4172291Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4172756Z               "line": 153
2026-06-05T00:45:23.4173168Z             },
2026-06-05T00:45:23.4173574Z             {
2026-06-05T00:45:23.4174281Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4174718Z               "line": 182
2026-06-05T00:45:23.4175128Z             },
2026-06-05T00:45:23.4175531Z             {
2026-06-05T00:45:23.4176229Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4176667Z               "line": 29
2026-06-05T00:45:23.4177069Z             },
2026-06-05T00:45:23.4177479Z             {
2026-06-05T00:45:23.4178249Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T00:45:23.4178686Z               "line": 31
2026-06-05T00:45:23.4179096Z             },
2026-06-05T00:45:23.4179551Z             {
2026-06-05T00:45:23.4180249Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4180684Z               "line": 40
2026-06-05T00:45:23.4181115Z             },
2026-06-05T00:45:23.4184745Z             {
2026-06-05T00:45:23.4185539Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4185996Z               "line": 131
2026-06-05T00:45:23.4186407Z             },
2026-06-05T00:45:23.4186813Z             {
2026-06-05T00:45:23.4187501Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4187954Z               "line": 306
2026-06-05T00:45:23.4188357Z             }
2026-06-05T00:45:23.4188773Z           ]
2026-06-05T00:45:23.4189279Z         },
2026-06-05T00:45:23.4189698Z         "int": {
2026-06-05T00:45:23.4190162Z           "complete": true,
2026-06-05T00:45:23.4190596Z           "evidence": [
2026-06-05T00:45:23.4191008Z             {
2026-06-05T00:45:23.4192034Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4192540Z               "line": 433
2026-06-05T00:45:23.4192956Z             },
2026-06-05T00:45:23.4193366Z             {
2026-06-05T00:45:23.4194186Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4194628Z               "line": 549
2026-06-05T00:45:23.4195041Z             }
2026-06-05T00:45:23.4195439Z           ]
2026-06-05T00:45:23.4195855Z         },
2026-06-05T00:45:23.4196281Z         "unit": {
2026-06-05T00:45:23.4196727Z           "complete": true,
2026-06-05T00:45:23.4197161Z           "evidence": [
2026-06-05T00:45:23.4197561Z             {
2026-06-05T00:45:23.4198274Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4198710Z               "line": 236
2026-06-05T00:45:23.4199124Z             },
2026-06-05T00:45:23.4199591Z             {
2026-06-05T00:45:23.4200301Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T00:45:23.4200744Z               "line": 349
2026-06-05T00:45:23.4201167Z             },
2026-06-05T00:45:23.4201588Z             {
2026-06-05T00:45:23.4202290Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4202757Z               "line": 194
2026-06-05T00:45:23.4203172Z             },
2026-06-05T00:45:23.4203572Z             {
2026-06-05T00:45:23.4204277Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4204718Z               "line": 216
2026-06-05T00:45:23.4205133Z             },
2026-06-05T00:45:23.4205537Z             {
2026-06-05T00:45:23.4206229Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4206674Z               "line": 230
2026-06-05T00:45:23.4207077Z             },
2026-06-05T00:45:23.4207490Z             {
2026-06-05T00:45:23.4208172Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4208623Z               "line": 242
2026-06-05T00:45:23.4209038Z             },
2026-06-05T00:45:23.4209489Z             {
2026-06-05T00:45:23.4210199Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4210637Z               "line": 256
2026-06-05T00:45:23.4211066Z             },
2026-06-05T00:45:23.4211469Z             {
2026-06-05T00:45:23.4212168Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4212618Z               "line": 270
2026-06-05T00:45:23.4213023Z             },
2026-06-05T00:45:23.4213442Z             {
2026-06-05T00:45:23.4214132Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4214605Z               "line": 277
2026-06-05T00:45:23.4215009Z             },
2026-06-05T00:45:23.4215417Z             {
2026-06-05T00:45:23.4216117Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T00:45:23.4216559Z               "line": 295
2026-06-05T00:45:23.4216978Z             },
2026-06-05T00:45:23.4217383Z             {
2026-06-05T00:45:23.4218092Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4218531Z               "line": 696
2026-06-05T00:45:23.4218948Z             },
2026-06-05T00:45:23.4219397Z             {
2026-06-05T00:45:23.4220098Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4220556Z               "line": 757
2026-06-05T00:45:23.4220969Z             },
2026-06-05T00:45:23.4221382Z             {
2026-06-05T00:45:23.4222054Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4222498Z               "line": 814
2026-06-05T00:45:23.4222912Z             },
2026-06-05T00:45:23.4223317Z             {
2026-06-05T00:45:23.4224016Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4224452Z               "line": 868
2026-06-05T00:45:23.4224866Z             },
2026-06-05T00:45:23.4225265Z             {
2026-06-05T00:45:23.4225953Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4226398Z               "line": 920
2026-06-05T00:45:23.4227002Z             },
2026-06-05T00:45:23.4227442Z             {
2026-06-05T00:45:23.4228121Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4228711Z               "line": 1084
2026-06-05T00:45:23.4229129Z             }
2026-06-05T00:45:23.4229585Z           ]
2026-06-05T00:45:23.4229995Z         }
2026-06-05T00:45:23.4230437Z       }
2026-06-05T00:45:23.4231189Z     },
2026-06-05T00:45:23.4231782Z     {
2026-06-05T00:45:23.4232352Z       "id": "REQ-PAIR-2",
2026-06-05T00:45:23.4233328Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-05T00:45:23.4233822Z       "requiredStages": [
2026-06-05T00:45:23.4234253Z         "impl",
2026-06-05T00:45:23.4234667Z         "unit"
2026-06-05T00:45:23.4235076Z       ],
2026-06-05T00:45:23.4235494Z       "stages": {
2026-06-05T00:45:23.4235914Z         "doc": {
2026-06-05T00:45:23.4236380Z           "complete": false,
2026-06-05T00:45:23.4236823Z           "evidence": []
2026-06-05T00:45:23.4237230Z         },
2026-06-05T00:45:23.4237667Z         "impl": {
2026-06-05T00:45:23.4238135Z           "complete": true,
2026-06-05T00:45:23.4238568Z           "evidence": [
2026-06-05T00:45:23.4238995Z             {
2026-06-05T00:45:23.4239668Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4240121Z               "line": 42
2026-06-05T00:45:23.4240838Z             },
2026-06-05T00:45:23.4241253Z             {
2026-06-05T00:45:23.4241860Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4242298Z               "line": 151
2026-06-05T00:45:23.4242712Z             },
2026-06-05T00:45:23.4243115Z             {
2026-06-05T00:45:23.4243724Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4244164Z               "line": 171
2026-06-05T00:45:23.4244570Z             },
2026-06-05T00:45:23.4244981Z             {
2026-06-05T00:45:23.4245575Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4246017Z               "line": 209
2026-06-05T00:45:23.4246448Z             },
2026-06-05T00:45:23.4246858Z             {
2026-06-05T00:45:23.4247457Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4247906Z               "line": 232
2026-06-05T00:45:23.4248317Z             }
2026-06-05T00:45:23.4248720Z           ]
2026-06-05T00:45:23.4249139Z         },
2026-06-05T00:45:23.4249600Z         "int": {
2026-06-05T00:45:23.4250064Z           "complete": false,
2026-06-05T00:45:23.4250509Z           "evidence": []
2026-06-05T00:45:23.4250917Z         },
2026-06-05T00:45:23.4251339Z         "unit": {
2026-06-05T00:45:23.4251793Z           "complete": true,
2026-06-05T00:45:23.4252235Z           "evidence": [
2026-06-05T00:45:23.4252645Z             {
2026-06-05T00:45:23.4253242Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4253687Z               "line": 253
2026-06-05T00:45:23.4254101Z             },
2026-06-05T00:45:23.4254516Z             {
2026-06-05T00:45:23.4255135Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4255584Z               "line": 272
2026-06-05T00:45:23.4256004Z             },
2026-06-05T00:45:23.4256406Z             {
2026-06-05T00:45:23.4257024Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4257461Z               "line": 284
2026-06-05T00:45:23.4257874Z             },
2026-06-05T00:45:23.4258277Z             {
2026-06-05T00:45:23.4258882Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4259553Z               "line": 303
2026-06-05T00:45:23.4260186Z             },
2026-06-05T00:45:23.4260618Z             {
2026-06-05T00:45:23.4261227Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4261677Z               "line": 319
2026-06-05T00:45:23.4262083Z             },
2026-06-05T00:45:23.4262497Z             {
2026-06-05T00:45:23.4263098Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4263540Z               "line": 331
2026-06-05T00:45:23.4263962Z             },
2026-06-05T00:45:23.4268085Z             {
2026-06-05T00:45:23.4268838Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4269404Z               "line": 343
2026-06-05T00:45:23.4270006Z             },
2026-06-05T00:45:23.4270423Z             {
2026-06-05T00:45:23.4271029Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4271481Z               "line": 356
2026-06-05T00:45:23.4271889Z             },
2026-06-05T00:45:23.4272302Z             {
2026-06-05T00:45:23.4272903Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T00:45:23.4273346Z               "line": 370
2026-06-05T00:45:23.4273776Z             }
2026-06-05T00:45:23.4274186Z           ]
2026-06-05T00:45:23.4274601Z         }
2026-06-05T00:45:23.4275004Z       }
2026-06-05T00:45:23.4275423Z     },
2026-06-05T00:45:23.4275834Z     {
2026-06-05T00:45:23.4276299Z       "id": "REQ-PAIR-3",
2026-06-05T00:45:23.4277110Z       "title": "Fetch current pairing code from any paired node",
2026-06-05T00:45:23.4277588Z       "requiredStages": [
2026-06-05T00:45:23.4278016Z         "impl",
2026-06-05T00:45:23.4278429Z         "unit"
2026-06-05T00:45:23.4278843Z       ],
2026-06-05T00:45:23.4279321Z       "stages": {
2026-06-05T00:45:23.4279741Z         "doc": {
2026-06-05T00:45:23.4280207Z           "complete": false,
2026-06-05T00:45:23.4280647Z           "evidence": []
2026-06-05T00:45:23.4281061Z         },
2026-06-05T00:45:23.4281477Z         "impl": {
2026-06-05T00:45:23.4281935Z           "complete": true,
2026-06-05T00:45:23.4282371Z           "evidence": [
2026-06-05T00:45:23.4282779Z             {
2026-06-05T00:45:23.4283327Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4283768Z               "line": 1243
2026-06-05T00:45:23.4284180Z             },
2026-06-05T00:45:23.4284584Z             {
2026-06-05T00:45:23.4285125Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4285560Z               "line": 1279
2026-06-05T00:45:23.4285975Z             },
2026-06-05T00:45:23.4286400Z             {
2026-06-05T00:45:23.4286940Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4287392Z               "line": 1339
2026-06-05T00:45:23.4287811Z             }
2026-06-05T00:45:23.4288224Z           ]
2026-06-05T00:45:23.4288625Z         },
2026-06-05T00:45:23.4289046Z         "int": {
2026-06-05T00:45:23.4289554Z           "complete": false,
2026-06-05T00:45:23.4290002Z           "evidence": []
2026-06-05T00:45:23.4290413Z         },
2026-06-05T00:45:23.4290826Z         "unit": {
2026-06-05T00:45:23.4291289Z           "complete": true,
2026-06-05T00:45:23.4291722Z           "evidence": [
2026-06-05T00:45:23.4292133Z             {
2026-06-05T00:45:23.4292680Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4293117Z               "line": 3336
2026-06-05T00:45:23.4293531Z             },
2026-06-05T00:45:23.4293935Z             {
2026-06-05T00:45:23.4294478Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4294931Z               "line": 3353
2026-06-05T00:45:23.4295351Z             },
2026-06-05T00:45:23.4295759Z             {
2026-06-05T00:45:23.4296291Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4296755Z               "line": 3367
2026-06-05T00:45:23.4297165Z             },
2026-06-05T00:45:23.4297579Z             {
2026-06-05T00:45:23.4298109Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4298560Z               "line": 3383
2026-06-05T00:45:23.4298974Z             },
2026-06-05T00:45:23.4299414Z             {
2026-06-05T00:45:23.4299954Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4300394Z               "line": 3404
2026-06-05T00:45:23.4300810Z             },
2026-06-05T00:45:23.4301216Z             {
2026-06-05T00:45:23.4301765Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4302213Z               "line": 3420
2026-06-05T00:45:23.4302622Z             },
2026-06-05T00:45:23.4303035Z             {
2026-06-05T00:45:23.4303726Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4304202Z               "line": 3433
2026-06-05T00:45:23.4304613Z             },
2026-06-05T00:45:23.4305035Z             {
2026-06-05T00:45:23.4305715Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4306160Z               "line": 3442
2026-06-05T00:45:23.4306576Z             }
2026-06-05T00:45:23.4306976Z           ]
2026-06-05T00:45:23.4307393Z         }
2026-06-05T00:45:23.4307794Z       }
2026-06-05T00:45:23.4308200Z     },
2026-06-05T00:45:23.4308604Z     {
2026-06-05T00:45:23.4309065Z       "id": "REQ-PAIR-4",
2026-06-05T00:45:23.4309712Z       "title": "Subnet naming on first pairing",
2026-06-05T00:45:23.4310176Z       "requiredStages": [
2026-06-05T00:45:23.4310600Z         "impl",
2026-06-05T00:45:23.4311013Z         "unit"
2026-06-05T00:45:23.4311423Z       ],
2026-06-05T00:45:23.4311850Z       "stages": {
2026-06-05T00:45:23.4312261Z         "doc": {
2026-06-05T00:45:23.4312730Z           "complete": false,
2026-06-05T00:45:23.4313193Z           "evidence": []
2026-06-05T00:45:23.4313615Z         },
2026-06-05T00:45:23.4314031Z         "impl": {
2026-06-05T00:45:23.4314490Z           "complete": true,
2026-06-05T00:45:23.4314953Z           "evidence": [
2026-06-05T00:45:23.4315361Z             {
2026-06-05T00:45:23.4315976Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T00:45:23.4316407Z               "line": 154
2026-06-05T00:45:23.4316819Z             }
2026-06-05T00:45:23.4317227Z           ]
2026-06-05T00:45:23.4317636Z         },
2026-06-05T00:45:23.4318051Z         "int": {
2026-06-05T00:45:23.4318501Z           "complete": false,
2026-06-05T00:45:23.4318944Z           "evidence": []
2026-06-05T00:45:23.4319610Z         },
2026-06-05T00:45:23.4320044Z         "unit": {
2026-06-05T00:45:23.4320495Z           "complete": true,
2026-06-05T00:45:23.4320953Z           "evidence": [
2026-06-05T00:45:23.4321364Z             {
2026-06-05T00:45:23.4322054Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4322513Z               "line": 972
2026-06-05T00:45:23.4322921Z             }
2026-06-05T00:45:23.4323335Z           ]
2026-06-05T00:45:23.4323751Z         }
2026-06-05T00:45:23.4324162Z       }
2026-06-05T00:45:23.4324563Z     },
2026-06-05T00:45:23.4324955Z     {
2026-06-05T00:45:23.4325413Z       "id": "REQ-PAIR-5",
2026-06-05T00:45:23.4327280Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-05T00:45:23.4327752Z       "requiredStages": [
2026-06-05T00:45:23.4328171Z         "impl",
2026-06-05T00:45:23.4328599Z         "unit",
2026-06-05T00:45:23.4329034Z         "int"
2026-06-05T00:45:23.4329476Z       ],
2026-06-05T00:45:23.4329909Z       "stages": {
2026-06-05T00:45:23.4330317Z         "doc": {
2026-06-05T00:45:23.4330785Z           "complete": false,
2026-06-05T00:45:23.4331224Z           "evidence": []
2026-06-05T00:45:23.4331634Z         },
2026-06-05T00:45:23.4332053Z         "impl": {
2026-06-05T00:45:23.4332517Z           "complete": true,
2026-06-05T00:45:23.4332967Z           "evidence": [
2026-06-05T00:45:23.4333378Z             {
2026-06-05T00:45:23.4334173Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4334619Z               "line": 33
2026-06-05T00:45:23.4335037Z             },
2026-06-05T00:45:23.4335454Z             {
2026-06-05T00:45:23.4336228Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4336669Z               "line": 45
2026-06-05T00:45:23.4337078Z             },
2026-06-05T00:45:23.4337486Z             {
2026-06-05T00:45:23.4338264Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4338705Z               "line": 59
2026-06-05T00:45:23.4339122Z             },
2026-06-05T00:45:23.4339564Z             {
2026-06-05T00:45:23.4340264Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4340705Z               "line": 306
2026-06-05T00:45:23.4341283Z             }
2026-06-05T00:45:23.4341708Z           ]
2026-06-05T00:45:23.4342109Z         },
2026-06-05T00:45:23.4342525Z         "int": {
2026-06-05T00:45:23.4343116Z           "complete": true,
2026-06-05T00:45:23.4343572Z           "evidence": [
2026-06-05T00:45:23.4344009Z             {
2026-06-05T00:45:23.4348320Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4349007Z               "line": 549
2026-06-05T00:45:23.4349583Z             }
2026-06-05T00:45:23.4350184Z           ]
2026-06-05T00:45:23.4350619Z         },
2026-06-05T00:45:23.4351088Z         "unit": {
2026-06-05T00:45:23.4351750Z           "complete": true,
2026-06-05T00:45:23.4352283Z           "evidence": [
2026-06-05T00:45:23.4352795Z             {
2026-06-05T00:45:23.4353769Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4354294Z               "line": 72
2026-06-05T00:45:23.4354769Z             },
2026-06-05T00:45:23.4355232Z             {
2026-06-05T00:45:23.4356181Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4356696Z               "line": 82
2026-06-05T00:45:23.4357178Z             },
2026-06-05T00:45:23.4357639Z             {
2026-06-05T00:45:23.4358531Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4359034Z               "line": 92
2026-06-05T00:45:23.4359588Z             },
2026-06-05T00:45:23.4360155Z             {
2026-06-05T00:45:23.4360964Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4361402Z               "line": 102
2026-06-05T00:45:23.4361825Z             },
2026-06-05T00:45:23.4362248Z             {
2026-06-05T00:45:23.4363087Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T00:45:23.4363703Z               "line": 117
2026-06-05T00:45:23.4364146Z             },
2026-06-05T00:45:23.4364579Z             {
2026-06-05T00:45:23.4365313Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4365798Z               "line": 750
2026-06-05T00:45:23.4366235Z             },
2026-06-05T00:45:23.4366658Z             {
2026-06-05T00:45:23.4367397Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4367855Z               "line": 806
2026-06-05T00:45:23.4368306Z             },
2026-06-05T00:45:23.4368735Z             {
2026-06-05T00:45:23.4369504Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T00:45:23.4369978Z               "line": 1026
2026-06-05T00:45:23.4370398Z             }
2026-06-05T00:45:23.4370832Z           ]
2026-06-05T00:45:23.4371252Z         }
2026-06-05T00:45:23.4371683Z       }
2026-06-05T00:45:23.4372097Z     },
2026-06-05T00:45:23.4372548Z     {
2026-06-05T00:45:23.4373064Z       "id": "REQ-PAIR-6",
2026-06-05T00:45:23.4374804Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-05T00:45:23.4375293Z       "requiredStages": [
2026-06-05T00:45:23.4375722Z         "impl",
2026-06-05T00:45:23.4376153Z         "unit"
2026-06-05T00:45:23.4376558Z       ],
2026-06-05T00:45:23.4376995Z       "stages": {
2026-06-05T00:45:23.4377430Z         "doc": {
2026-06-05T00:45:23.4377893Z           "complete": false,
2026-06-05T00:45:23.4378344Z           "evidence": []
2026-06-05T00:45:23.4378752Z         },
2026-06-05T00:45:23.4379222Z         "impl": {
2026-06-05T00:45:23.4379976Z           "complete": true,
2026-06-05T00:45:23.4380434Z           "evidence": [
2026-06-05T00:45:23.4380851Z             {
2026-06-05T00:45:23.4381391Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4381850Z               "line": 1279
2026-06-05T00:45:23.4382263Z             },
2026-06-05T00:45:23.4382682Z             {
2026-06-05T00:45:23.4383229Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4383689Z               "line": 1339
2026-06-05T00:45:23.4384110Z             },
2026-06-05T00:45:23.4384517Z             {
2026-06-05T00:45:23.4385624Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T00:45:23.4386127Z               "line": 18
2026-06-05T00:45:23.4386577Z             },
2026-06-05T00:45:23.4393252Z             {
2026-06-05T00:45:23.4393928Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T00:45:23.4394409Z               "line": 49
2026-06-05T00:45:23.4394844Z             },
2026-06-05T00:45:23.4395296Z             {
2026-06-05T00:45:23.4395926Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T00:45:23.4396411Z               "line": 70
2026-06-05T00:45:23.4396859Z             }
2026-06-05T00:45:23.4397294Z           ]
2026-06-05T00:45:23.4397724Z         },
2026-06-05T00:45:23.4398167Z         "int": {
2026-06-05T00:45:23.4398671Z           "complete": false,
2026-06-05T00:45:23.4399137Z           "evidence": []
2026-06-05T00:45:23.4400046Z         },
2026-06-05T00:45:23.4400498Z         "unit": {
2026-06-05T00:45:23.4400982Z           "complete": true,
2026-06-05T00:45:23.4401478Z           "evidence": [
2026-06-05T00:45:23.4401901Z             {
2026-06-05T00:45:23.4402456Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4402923Z               "line": 3455
2026-06-05T00:45:23.4403428Z             },
2026-06-05T00:45:23.4403844Z             {
2026-06-05T00:45:23.4404388Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.4404841Z               "line": 3472
2026-06-05T00:45:23.4405243Z             },
2026-06-05T00:45:23.4405656Z             {
2026-06-05T00:45:23.4406235Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T00:45:23.4406690Z               "line": 132
2026-06-05T00:45:23.4407119Z             },
2026-06-05T00:45:23.4407528Z             {
2026-06-05T00:45:23.4408119Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T00:45:23.4408582Z               "line": 141
2026-06-05T00:45:23.4409030Z             }
2026-06-05T00:45:23.4409648Z           ]
2026-06-05T00:45:23.4410141Z         }
2026-06-05T00:45:23.4410644Z       }
2026-06-05T00:45:23.4411091Z     },
2026-06-05T00:45:23.4411688Z     {
2026-06-05T00:45:23.4412202Z       "id": "REQ-PAIR-7",
2026-06-05T00:45:23.4413172Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-05T00:45:23.4413693Z       "requiredStages": [],
2026-06-05T00:45:23.4414154Z       "stages": {
2026-06-05T00:45:23.4414596Z         "doc": {
2026-06-05T00:45:23.4415084Z           "complete": false,
2026-06-05T00:45:23.4415583Z           "evidence": []
2026-06-05T00:45:23.4416036Z         },
2026-06-05T00:45:23.4416505Z         "impl": {
2026-06-05T00:45:23.4417005Z           "complete": false,
2026-06-05T00:45:23.4417498Z           "evidence": []
2026-06-05T00:45:23.4417940Z         },
2026-06-05T00:45:23.4418380Z         "int": {
2026-06-05T00:45:23.4418868Z           "complete": false,
2026-06-05T00:45:23.4419616Z           "evidence": []
2026-06-05T00:45:23.4420260Z         },
2026-06-05T00:45:23.4420721Z         "unit": {
2026-06-05T00:45:23.4421244Z           "complete": false,
2026-06-05T00:45:23.4421736Z           "evidence": []
2026-06-05T00:45:23.4422168Z         }
2026-06-05T00:45:23.4422620Z       }
2026-06-05T00:45:23.4423057Z     },
2026-06-05T00:45:23.4423480Z     {
2026-06-05T00:45:23.4423964Z       "id": "REQ-PRES-1",
2026-06-05T00:45:23.4432795Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-05T00:45:23.4433310Z       "requiredStages": [],
2026-06-05T00:45:23.4433730Z       "stages": {
2026-06-05T00:45:23.4434153Z         "doc": {
2026-06-05T00:45:23.4434619Z           "complete": false,
2026-06-05T00:45:23.4435088Z           "evidence": []
2026-06-05T00:45:23.4444722Z         },
2026-06-05T00:45:23.4445387Z         "impl": {
2026-06-05T00:45:23.4445893Z           "complete": false,
2026-06-05T00:45:23.4446373Z           "evidence": []
2026-06-05T00:45:23.4447009Z         },
2026-06-05T00:45:23.4447450Z         "int": {
2026-06-05T00:45:23.4447952Z           "complete": false,
2026-06-05T00:45:23.4448425Z           "evidence": []
2026-06-05T00:45:23.4448843Z         },
2026-06-05T00:45:23.4449341Z         "unit": {
2026-06-05T00:45:23.4449836Z           "complete": false,
2026-06-05T00:45:23.4450308Z           "evidence": []
2026-06-05T00:45:23.4450730Z         }
2026-06-05T00:45:23.4451176Z       }
2026-06-05T00:45:23.4451638Z     },
2026-06-05T00:45:23.4452700Z     {
2026-06-05T00:45:23.4460166Z       "id": "REQ-REACH-1",
2026-06-05T00:45:23.4461830Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-05T00:45:23.4463694Z       "requiredStages": [
2026-06-05T00:45:23.4464994Z         "impl",
2026-06-05T00:45:23.4466144Z         "unit",
2026-06-05T00:45:23.4467260Z         "int"
2026-06-05T00:45:23.4468309Z       ],
2026-06-05T00:45:23.4469468Z       "stages": {
2026-06-05T00:45:23.4470585Z         "doc": {
2026-06-05T00:45:23.4471733Z           "complete": false,
2026-06-05T00:45:23.4473005Z           "evidence": []
2026-06-05T00:45:23.4474241Z         },
2026-06-05T00:45:23.4475297Z         "impl": {
2026-06-05T00:45:23.4476434Z           "complete": true,
2026-06-05T00:45:23.4477738Z           "evidence": [
2026-06-05T00:45:23.4478985Z             {
2026-06-05T00:45:23.4480350Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T00:45:23.4481998Z               "line": 133
2026-06-05T00:45:23.4483278Z             },
2026-06-05T00:45:23.4484432Z             {
2026-06-05T00:45:23.4485786Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4487442Z               "line": 76
2026-06-05T00:45:23.4488621Z             },
2026-06-05T00:45:23.4489848Z             {
2026-06-05T00:45:23.4491030Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4492547Z               "line": 209
2026-06-05T00:45:23.4493668Z             },
2026-06-05T00:45:23.4494677Z             {
2026-06-05T00:45:23.4495860Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4497389Z               "line": 386
2026-06-05T00:45:23.4498512Z             },
2026-06-05T00:45:23.4499856Z             {
2026-06-05T00:45:23.4501035Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4502567Z               "line": 484
2026-06-05T00:45:23.4503690Z             },
2026-06-05T00:45:23.4504672Z             {
2026-06-05T00:45:23.4505843Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T00:45:23.4507369Z               "line": 39
2026-06-05T00:45:23.4508472Z             },
2026-06-05T00:45:23.4509692Z             {
2026-06-05T00:45:23.4511001Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.4512519Z               "line": 217
2026-06-05T00:45:23.4513665Z             },
2026-06-05T00:45:23.4514653Z             {
2026-06-05T00:45:23.4515819Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T00:45:23.4517355Z               "line": 82
2026-06-05T00:45:23.4518471Z             },
2026-06-05T00:45:23.4519674Z             {
2026-06-05T00:45:23.4521016Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T00:45:23.4522532Z               "line": 92
2026-06-05T00:45:23.4523654Z             },
2026-06-05T00:45:23.4524646Z             {
2026-06-05T00:45:23.4525856Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4527417Z               "line": 189
2026-06-05T00:45:23.4528545Z             }
2026-06-05T00:45:23.4529747Z           ]
2026-06-05T00:45:23.4530853Z         },
2026-06-05T00:45:23.4531802Z         "int": {
2026-06-05T00:45:23.4532865Z           "complete": true,
2026-06-05T00:45:23.4534066Z           "evidence": [
2026-06-05T00:45:23.4535160Z             {
2026-06-05T00:45:23.4536822Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.4538505Z               "line": 375
2026-06-05T00:45:23.4539970Z             },
2026-06-05T00:45:23.4540969Z             {
2026-06-05T00:45:23.4542413Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.4544025Z               "line": 478
2026-06-05T00:45:23.4545156Z             },
2026-06-05T00:45:23.4546153Z             {
2026-06-05T00:45:23.4547371Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4548975Z               "line": 661
2026-06-05T00:45:23.4550160Z             },
2026-06-05T00:45:23.4551151Z             {
2026-06-05T00:45:23.4552369Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.4553964Z               "line": 755
2026-06-05T00:45:23.4560579Z             }
2026-06-05T00:45:23.4561706Z           ]
2026-06-05T00:45:23.4562649Z         },
2026-06-05T00:45:23.4563588Z         "unit": {
2026-06-05T00:45:23.4564659Z           "complete": true,
2026-06-05T00:45:23.4565888Z           "evidence": [
2026-06-05T00:45:23.4566973Z             {
2026-06-05T00:45:23.4568164Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4569760Z               "line": 585
2026-06-05T00:45:23.4570880Z             },
2026-06-05T00:45:23.4571854Z             {
2026-06-05T00:45:23.4573008Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T00:45:23.4574525Z               "line": 606
2026-06-05T00:45:23.4575652Z             },
2026-06-05T00:45:23.4576623Z             {
2026-06-05T00:45:23.4577817Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T00:45:23.4579425Z               "line": 337
2026-06-05T00:45:23.4580542Z             },
2026-06-05T00:45:23.4581519Z             {
2026-06-05T00:45:23.4582711Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T00:45:23.4584245Z               "line": 92
2026-06-05T00:45:23.4585360Z             },
2026-06-05T00:45:23.4586331Z             {
2026-06-05T00:45:23.4587524Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T00:45:23.4589068Z               "line": 176
2026-06-05T00:45:23.4590224Z             },
2026-06-05T00:45:23.4591216Z             {
2026-06-05T00:45:23.4592371Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T00:45:23.4593889Z               "line": 92
2026-06-05T00:45:23.4595009Z             },
2026-06-05T00:45:23.4595987Z             {
2026-06-05T00:45:23.4597143Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T00:45:23.4598659Z               "line": 123
2026-06-05T00:45:23.4599809Z             },
2026-06-05T00:45:23.4600786Z             {
2026-06-05T00:45:23.4601930Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.4603433Z               "line": 436
2026-06-05T00:45:23.4604553Z             },
2026-06-05T00:45:23.4605528Z             {
2026-06-05T00:45:23.4606667Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T00:45:23.4608164Z               "line": 112
2026-06-05T00:45:23.4609334Z             },
2026-06-05T00:45:23.4610311Z             {
2026-06-05T00:45:23.4611442Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T00:45:23.4612963Z               "line": 136
2026-06-05T00:45:23.4614081Z             },
2026-06-05T00:45:23.4615057Z             {
2026-06-05T00:45:23.4616232Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4617768Z               "line": 494
2026-06-05T00:45:23.4618878Z             }
2026-06-05T00:45:23.4619874Z           ]
2026-06-05T00:45:23.4620812Z         }
2026-06-05T00:45:23.4621724Z       }
2026-06-05T00:45:23.4622618Z     },
2026-06-05T00:45:23.4623522Z     {
2026-06-05T00:45:23.4624483Z       "id": "REQ-REACH-2",
2026-06-05T00:45:23.4626055Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-05T00:45:23.4627885Z       "requiredStages": [],
2026-06-05T00:45:23.4629075Z       "stages": {
2026-06-05T00:45:23.4630146Z         "doc": {
2026-06-05T00:45:23.4631487Z           "complete": false,
2026-06-05T00:45:23.4632732Z           "evidence": []
2026-06-05T00:45:23.4633844Z         },
2026-06-05T00:45:23.4634791Z         "impl": {
2026-06-05T00:45:23.4636062Z           "complete": false,
2026-06-05T00:45:23.4637279Z           "evidence": []
2026-06-05T00:45:23.4638385Z         },
2026-06-05T00:45:23.4639370Z         "int": {
2026-06-05T00:45:23.4640432Z           "complete": false,
2026-06-05T00:45:23.4641643Z           "evidence": []
2026-06-05T00:45:23.4642744Z         },
2026-06-05T00:45:23.4643737Z         "unit": {
2026-06-05T00:45:23.4644806Z           "complete": false,
2026-06-05T00:45:23.4646009Z           "evidence": []
2026-06-05T00:45:23.4647114Z         }
2026-06-05T00:45:23.4648037Z       }
2026-06-05T00:45:23.4649014Z     },
2026-06-05T00:45:23.4649979Z     {
2026-06-05T00:45:23.4650995Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-05T00:45:23.4652862Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-05T00:45:23.4654912Z       "requiredStages": [
2026-06-05T00:45:23.4656079Z         "impl",
2026-06-05T00:45:23.4660628Z         "unit"
2026-06-05T00:45:23.4661698Z       ],
2026-06-05T00:45:23.4662626Z       "stages": {
2026-06-05T00:45:23.4663678Z         "doc": {
2026-06-05T00:45:23.4664726Z           "complete": false,
2026-06-05T00:45:23.4665925Z           "evidence": []
2026-06-05T00:45:23.4667022Z         },
2026-06-05T00:45:23.4667967Z         "impl": {
2026-06-05T00:45:23.4669035Z           "complete": true,
2026-06-05T00:45:23.4670268Z           "evidence": [
2026-06-05T00:45:23.4671348Z             {
2026-06-05T00:45:23.4672511Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4674033Z               "line": 18
2026-06-05T00:45:23.4675118Z             },
2026-06-05T00:45:23.4676092Z             {
2026-06-05T00:45:23.4677245Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4678759Z               "line": 35
2026-06-05T00:45:23.4679894Z             },
2026-06-05T00:45:23.4680878Z             {
2026-06-05T00:45:23.4682030Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4683524Z               "line": 65
2026-06-05T00:45:23.4684631Z             }
2026-06-05T00:45:23.4685580Z           ]
2026-06-05T00:45:23.4686505Z         },
2026-06-05T00:45:23.4687436Z         "int": {
2026-06-05T00:45:23.4688484Z           "complete": false,
2026-06-05T00:45:23.4689744Z           "evidence": []
2026-06-05T00:45:23.4690847Z         },
2026-06-05T00:45:23.4691785Z         "unit": {
2026-06-05T00:45:23.4692832Z           "complete": true,
2026-06-05T00:45:23.4694055Z           "evidence": [
2026-06-05T00:45:23.4695127Z             {
2026-06-05T00:45:23.4696285Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4697813Z               "line": 194
2026-06-05T00:45:23.4698919Z             },
2026-06-05T00:45:23.4699924Z             {
2026-06-05T00:45:23.4701083Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4702623Z               "line": 208
2026-06-05T00:45:23.4703729Z             },
2026-06-05T00:45:23.4704689Z             {
2026-06-05T00:45:23.4705848Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4707391Z               "line": 217
2026-06-05T00:45:23.4708498Z             }
2026-06-05T00:45:23.4709500Z           ]
2026-06-05T00:45:23.4710425Z         }
2026-06-05T00:45:23.4711338Z       }
2026-06-05T00:45:23.4712231Z     },
2026-06-05T00:45:23.4713141Z     {
2026-06-05T00:45:23.4714129Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-05T00:45:23.4715791Z       "title": "Hostable endpoint-types capability declaration",
2026-06-05T00:45:23.4717545Z       "requiredStages": [
2026-06-05T00:45:23.4718687Z         "impl",
2026-06-05T00:45:23.4719711Z         "unit"
2026-06-05T00:45:23.4720680Z       ],
2026-06-05T00:45:23.4721605Z       "stages": {
2026-06-05T00:45:23.4722602Z         "doc": {
2026-06-05T00:45:23.4723645Z           "complete": false,
2026-06-05T00:45:23.4724849Z           "evidence": []
2026-06-05T00:45:23.4726215Z         },
2026-06-05T00:45:23.4727204Z         "impl": {
2026-06-05T00:45:23.4728257Z           "complete": true,
2026-06-05T00:45:23.4729479Z           "evidence": [
2026-06-05T00:45:23.4730720Z             {
2026-06-05T00:45:23.4731909Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4733456Z               "line": 322
2026-06-05T00:45:23.4734568Z             }
2026-06-05T00:45:23.4735530Z           ]
2026-06-05T00:45:23.4736462Z         },
2026-06-05T00:45:23.4737396Z         "int": {
2026-06-05T00:45:23.4738438Z           "complete": false,
2026-06-05T00:45:23.4739693Z           "evidence": []
2026-06-05T00:45:23.4740804Z         },
2026-06-05T00:45:23.4741749Z         "unit": {
2026-06-05T00:45:23.4742795Z           "complete": true,
2026-06-05T00:45:23.4743976Z           "evidence": [
2026-06-05T00:45:23.4745058Z             {
2026-06-05T00:45:23.4746252Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.4747815Z               "line": 527
2026-06-05T00:45:23.4748928Z             }
2026-06-05T00:45:23.4749968Z           ]
2026-06-05T00:45:23.4750901Z         }
2026-06-05T00:45:23.4751818Z       }
2026-06-05T00:45:23.4756171Z     },
2026-06-05T00:45:23.4757134Z     {
2026-06-05T00:45:23.4758113Z       "id": "REQ-SEAM-HISTORY",
2026-06-05T00:45:23.4760072Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-05T00:45:23.4762088Z       "requiredStages": [
2026-06-05T00:45:23.4763221Z         "impl",
2026-06-05T00:45:23.4764215Z         "unit",
2026-06-05T00:45:23.4765433Z         "int"
2026-06-05T00:45:23.4766563Z       ],
2026-06-05T00:45:23.4767693Z       "stages": {
2026-06-05T00:45:23.4768967Z         "doc": {
2026-06-05T00:45:23.4770405Z           "complete": false,
2026-06-05T00:45:23.4771953Z           "evidence": []
2026-06-05T00:45:23.4773128Z         },
2026-06-05T00:45:23.4774326Z         "impl": {
2026-06-05T00:45:23.4775499Z           "complete": true,
2026-06-05T00:45:23.4776868Z           "evidence": [
2026-06-05T00:45:23.4778031Z             {
2026-06-05T00:45:23.4779311Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.4781031Z               "line": 24
2026-06-05T00:45:23.4782161Z             },
2026-06-05T00:45:23.4783148Z             {
2026-06-05T00:45:23.4784412Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4785957Z               "line": 22
2026-06-05T00:45:23.4787089Z             }
2026-06-05T00:45:23.4788316Z           ]
2026-06-05T00:45:23.4789602Z         },
2026-06-05T00:45:23.4790791Z         "int": {
2026-06-05T00:45:23.4791884Z           "complete": true,
2026-06-05T00:45:23.4793320Z           "evidence": [
2026-06-05T00:45:23.4794453Z             {
2026-06-05T00:45:23.4795688Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.4797321Z               "line": 202
2026-06-05T00:45:23.4798535Z             }
2026-06-05T00:45:23.4799668Z           ]
2026-06-05T00:45:23.4800765Z         },
2026-06-05T00:45:23.4801744Z         "unit": {
2026-06-05T00:45:23.4802851Z           "complete": true,
2026-06-05T00:45:23.4804099Z           "evidence": [
2026-06-05T00:45:23.4805258Z             {
2026-06-05T00:45:23.4806487Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.4808071Z               "line": 163
2026-06-05T00:45:23.4809271Z             },
2026-06-05T00:45:23.4810570Z             {
2026-06-05T00:45:23.4811704Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.4813208Z               "line": 186
2026-06-05T00:45:23.4814337Z             },
2026-06-05T00:45:23.4815318Z             {
2026-06-05T00:45:23.4816458Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T00:45:23.4817951Z               "line": 195
2026-06-05T00:45:23.4819079Z             },
2026-06-05T00:45:23.4820274Z             {
2026-06-05T00:45:23.4821487Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4823070Z               "line": 195
2026-06-05T00:45:23.4824731Z             },
2026-06-05T00:45:23.4825807Z             {
2026-06-05T00:45:23.4827018Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4828824Z               "line": 209
2026-06-05T00:45:23.4830190Z             },
2026-06-05T00:45:23.4831179Z             {
2026-06-05T00:45:23.4832362Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4833904Z               "line": 228
2026-06-05T00:45:23.4835042Z             },
2026-06-05T00:45:23.4836017Z             {
2026-06-05T00:45:23.4837196Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4838742Z               "line": 248
2026-06-05T00:45:23.4840189Z             },
2026-06-05T00:45:23.4841167Z             {
2026-06-05T00:45:23.4842577Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4844241Z               "line": 264
2026-06-05T00:45:23.4845416Z             },
2026-06-05T00:45:23.4846450Z             {
2026-06-05T00:45:23.4847687Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T00:45:23.4849343Z               "line": 279
2026-06-05T00:45:23.4850625Z             }
2026-06-05T00:45:23.4851593Z           ]
2026-06-05T00:45:23.4852560Z         }
2026-06-05T00:45:23.4853491Z       }
2026-06-05T00:45:23.4854399Z     },
2026-06-05T00:45:23.4855314Z     {
2026-06-05T00:45:23.4856303Z       "id": "REQ-SEAM-INJECT",
2026-06-05T00:45:23.4864133Z       "title": "inject-input methods configurable per activity-state",
2026-06-05T00:45:23.4866072Z       "requiredStages": [
2026-06-05T00:45:23.4867234Z         "impl",
2026-06-05T00:45:23.4868220Z         "unit"
2026-06-05T00:45:23.4869256Z       ],
2026-06-05T00:45:23.4870374Z       "stages": {
2026-06-05T00:45:23.4871426Z         "doc": {
2026-06-05T00:45:23.4872519Z           "complete": false,
2026-06-05T00:45:23.4873788Z           "evidence": []
2026-06-05T00:45:23.4874943Z         },
2026-06-05T00:45:23.4875932Z         "impl": {
2026-06-05T00:45:23.4877031Z           "complete": true,
2026-06-05T00:45:23.4878303Z           "evidence": [
2026-06-05T00:45:23.4879477Z             {
2026-06-05T00:45:23.4880791Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4882353Z               "line": 19
2026-06-05T00:45:23.4883458Z             },
2026-06-05T00:45:23.4884427Z             {
2026-06-05T00:45:23.4885592Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4887136Z               "line": 104
2026-06-05T00:45:23.4888256Z             }
2026-06-05T00:45:23.4889253Z           ]
2026-06-05T00:45:23.4890193Z         },
2026-06-05T00:45:23.4891126Z         "int": {
2026-06-05T00:45:23.4892189Z           "complete": false,
2026-06-05T00:45:23.4893409Z           "evidence": []
2026-06-05T00:45:23.4894523Z         },
2026-06-05T00:45:23.4895467Z         "unit": {
2026-06-05T00:45:23.4896518Z           "complete": true,
2026-06-05T00:45:23.4897707Z           "evidence": [
2026-06-05T00:45:23.4898781Z             {
2026-06-05T00:45:23.4900015Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4901557Z               "line": 246
2026-06-05T00:45:23.4902669Z             },
2026-06-05T00:45:23.4903639Z             {
2026-06-05T00:45:23.4904815Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.4906355Z               "line": 260
2026-06-05T00:45:23.4907475Z             }
2026-06-05T00:45:23.4908431Z           ]
2026-06-05T00:45:23.4909418Z         }
2026-06-05T00:45:23.4910359Z       }
2026-06-05T00:45:23.4911268Z     },
2026-06-05T00:45:23.4912179Z     {
2026-06-05T00:45:23.4913178Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-05T00:45:23.4914771Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-05T00:45:23.4916462Z       "requiredStages": [
2026-06-05T00:45:23.4917611Z         "impl",
2026-06-05T00:45:23.4918614Z         "unit"
2026-06-05T00:45:23.4919628Z       ],
2026-06-05T00:45:23.4920573Z       "stages": {
2026-06-05T00:45:23.4921588Z         "doc": {
2026-06-05T00:45:23.4922994Z           "complete": false,
2026-06-05T00:45:23.4924266Z           "evidence": []
2026-06-05T00:45:23.4925382Z         },
2026-06-05T00:45:23.4926320Z         "impl": {
2026-06-05T00:45:23.4927541Z           "complete": true,
2026-06-05T00:45:23.4928734Z           "evidence": [
2026-06-05T00:45:23.4929867Z             {
2026-06-05T00:45:23.4931040Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.4932562Z               "line": 18
2026-06-05T00:45:23.4933662Z             },
2026-06-05T00:45:23.4934635Z             {
2026-06-05T00:45:23.4935788Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.4937308Z               "line": 304
2026-06-05T00:45:23.4938420Z             }
2026-06-05T00:45:23.4939595Z           ]
2026-06-05T00:45:23.4940730Z         },
2026-06-05T00:45:23.4941668Z         "int": {
2026-06-05T00:45:23.4942702Z           "complete": false,
2026-06-05T00:45:23.4943908Z           "evidence": []
2026-06-05T00:45:23.4945008Z         },
2026-06-05T00:45:23.4945964Z         "unit": {
2026-06-05T00:45:23.4947022Z           "complete": true,
2026-06-05T00:45:23.4948214Z           "evidence": [
2026-06-05T00:45:23.4949335Z             {
2026-06-05T00:45:23.4950534Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.4952077Z               "line": 526
2026-06-05T00:45:23.4953195Z             },
2026-06-05T00:45:23.4954163Z             {
2026-06-05T00:45:23.4955315Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.4956854Z               "line": 536
2026-06-05T00:45:23.4957979Z             }
2026-06-05T00:45:23.4968477Z           ]
2026-06-05T00:45:23.4969889Z         }
2026-06-05T00:45:23.4970853Z       }
2026-06-05T00:45:23.4971773Z     },
2026-06-05T00:45:23.4972691Z     {
2026-06-05T00:45:23.4973833Z       "id": "REQ-SEAM-PSYCHE",
2026-06-05T00:45:23.4975489Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-05T00:45:23.4977302Z       "requiredStages": [
2026-06-05T00:45:23.4978518Z         "impl",
2026-06-05T00:45:23.4979851Z         "unit",
2026-06-05T00:45:23.4981053Z         "int"
2026-06-05T00:45:23.4982074Z       ],
2026-06-05T00:45:23.4983067Z       "stages": {
2026-06-05T00:45:23.4984165Z         "doc": {
2026-06-05T00:45:23.4985270Z           "complete": false,
2026-06-05T00:45:23.4986561Z           "evidence": []
2026-06-05T00:45:23.4987762Z         },
2026-06-05T00:45:23.4992489Z         "impl": {
2026-06-05T00:45:23.4993758Z           "complete": true,
2026-06-05T00:45:23.4995077Z           "evidence": [
2026-06-05T00:45:23.4996269Z             {
2026-06-05T00:45:23.4997552Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T00:45:23.4999332Z               "line": 19
2026-06-05T00:45:23.5000706Z             },
2026-06-05T00:45:23.5001760Z             {
2026-06-05T00:45:23.5002971Z               "path": "crates/spt/src/api/live.rs",
2026-06-05T00:45:23.5004500Z               "line": 12
2026-06-05T00:45:23.5005760Z             },
2026-06-05T00:45:23.5006793Z             {
2026-06-05T00:45:23.5008033Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5009815Z               "line": 204
2026-06-05T00:45:23.5010942Z             }
2026-06-05T00:45:23.5011928Z           ]
2026-06-05T00:45:23.5012863Z         },
2026-06-05T00:45:23.5013954Z         "int": {
2026-06-05T00:45:23.5015056Z           "complete": true,
2026-06-05T00:45:23.5016301Z           "evidence": [
2026-06-05T00:45:23.5017434Z             {
2026-06-05T00:45:23.5018664Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.5020485Z               "line": 201
2026-06-05T00:45:23.5021615Z             }
2026-06-05T00:45:23.5022608Z           ]
2026-06-05T00:45:23.5023564Z         },
2026-06-05T00:45:23.5024513Z         "unit": {
2026-06-05T00:45:23.5025577Z           "complete": true,
2026-06-05T00:45:23.5026788Z           "evidence": [
2026-06-05T00:45:23.5027882Z             {
2026-06-05T00:45:23.5029064Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T00:45:23.5031435Z               "line": 161
2026-06-05T00:45:23.5032625Z             },
2026-06-05T00:45:23.5033604Z             {
2026-06-05T00:45:23.5034786Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T00:45:23.5036515Z               "line": 168
2026-06-05T00:45:23.5037646Z             },
2026-06-05T00:45:23.5038622Z             {
2026-06-05T00:45:23.5040196Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T00:45:23.5041735Z               "line": 191
2026-06-05T00:45:23.5042858Z             },
2026-06-05T00:45:23.5043851Z             {
2026-06-05T00:45:23.5045018Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T00:45:23.5046552Z               "line": 106
2026-06-05T00:45:23.5047671Z             },
2026-06-05T00:45:23.5048652Z             {
2026-06-05T00:45:23.5049845Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T00:45:23.5051555Z               "line": 123
2026-06-05T00:45:23.5052864Z             },
2026-06-05T00:45:23.5053963Z             {
2026-06-05T00:45:23.5055133Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T00:45:23.5056692Z               "line": 137
2026-06-05T00:45:23.5057810Z             }
2026-06-05T00:45:23.5058793Z           ]
2026-06-05T00:45:23.5059778Z         }
2026-06-05T00:45:23.5060707Z       }
2026-06-05T00:45:23.5061613Z     },
2026-06-05T00:45:23.5062527Z     {
2026-06-05T00:45:23.5063514Z       "id": "REQ-SEAM-RESUME",
2026-06-05T00:45:23.5065416Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-05T00:45:23.5067519Z       "requiredStages": [
2026-06-05T00:45:23.5068680Z         "impl",
2026-06-05T00:45:23.5069826Z         "unit"
2026-06-05T00:45:23.5070808Z       ],
2026-06-05T00:45:23.5076306Z       "stages": {
2026-06-05T00:45:23.5077481Z         "doc": {
2026-06-05T00:45:23.5078540Z           "complete": false,
2026-06-05T00:45:23.5079850Z           "evidence": []
2026-06-05T00:45:23.5080953Z         },
2026-06-05T00:45:23.5081907Z         "impl": {
2026-06-05T00:45:23.5083000Z           "complete": true,
2026-06-05T00:45:23.5084187Z           "evidence": [
2026-06-05T00:45:23.5085278Z             {
2026-06-05T00:45:23.5086435Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.5087958Z               "line": 19
2026-06-05T00:45:23.5089057Z             }
2026-06-05T00:45:23.5090052Z           ]
2026-06-05T00:45:23.5090973Z         },
2026-06-05T00:45:23.5091909Z         "int": {
2026-06-05T00:45:23.5092954Z           "complete": false,
2026-06-05T00:45:23.5094154Z           "evidence": []
2026-06-05T00:45:23.5094558Z         },
2026-06-05T00:45:23.5094988Z         "unit": {
2026-06-05T00:45:23.5095450Z           "complete": true,
2026-06-05T00:45:23.5095892Z           "evidence": [
2026-06-05T00:45:23.5096305Z             {
2026-06-05T00:45:23.5096900Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.5097348Z               "line": 168
2026-06-05T00:45:23.5097756Z             },
2026-06-05T00:45:23.5098170Z             {
2026-06-05T00:45:23.5098793Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.5099265Z               "line": 187
2026-06-05T00:45:23.5099681Z             },
2026-06-05T00:45:23.5100101Z             {
2026-06-05T00:45:23.5100701Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T00:45:23.5101135Z               "line": 205
2026-06-05T00:45:23.5101551Z             }
2026-06-05T00:45:23.5101962Z           ]
2026-06-05T00:45:23.5102361Z         }
2026-06-05T00:45:23.5102768Z       }
2026-06-05T00:45:23.5103165Z     },
2026-06-05T00:45:23.5103565Z     {
2026-06-05T00:45:23.5104037Z       "id": "REQ-SEAM-SPAWN",
2026-06-05T00:45:23.5104561Z       "title": "spawn-session seam",
2026-06-05T00:45:23.5105051Z       "requiredStages": [
2026-06-05T00:45:23.5105474Z         "impl",
2026-06-05T00:45:23.5105891Z         "unit"
2026-06-05T00:45:23.5106292Z       ],
2026-06-05T00:45:23.5106724Z       "stages": {
2026-06-05T00:45:23.5107132Z         "doc": {
2026-06-05T00:45:23.5107895Z           "complete": false,
2026-06-05T00:45:23.5108372Z           "evidence": []
2026-06-05T00:45:23.5108785Z         },
2026-06-05T00:45:23.5109254Z         "impl": {
2026-06-05T00:45:23.5109876Z           "complete": true,
2026-06-05T00:45:23.5110326Z           "evidence": [
2026-06-05T00:45:23.5110730Z             {
2026-06-05T00:45:23.5111395Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5111840Z               "line": 20
2026-06-05T00:45:23.5112243Z             }
2026-06-05T00:45:23.5112657Z           ]
2026-06-05T00:45:23.5113058Z         },
2026-06-05T00:45:23.5113477Z         "int": {
2026-06-05T00:45:23.5113933Z           "complete": false,
2026-06-05T00:45:23.5114386Z           "evidence": []
2026-06-05T00:45:23.5114791Z         },
2026-06-05T00:45:23.5115218Z         "unit": {
2026-06-05T00:45:23.5115675Z           "complete": true,
2026-06-05T00:45:23.5116109Z           "evidence": [
2026-06-05T00:45:23.5116528Z             {
2026-06-05T00:45:23.5117187Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5117642Z               "line": 397
2026-06-05T00:45:23.5118050Z             },
2026-06-05T00:45:23.5118469Z             {
2026-06-05T00:45:23.5119143Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5119633Z               "line": 404
2026-06-05T00:45:23.5120050Z             },
2026-06-05T00:45:23.5120447Z             {
2026-06-05T00:45:23.5121108Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5121557Z               "line": 414
2026-06-05T00:45:23.5121959Z             },
2026-06-05T00:45:23.5122373Z             {
2026-06-05T00:45:23.5123018Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5123459Z               "line": 420
2026-06-05T00:45:23.5123871Z             },
2026-06-05T00:45:23.5124292Z             {
2026-06-05T00:45:23.5124994Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5125781Z               "line": 440
2026-06-05T00:45:23.5126440Z             },
2026-06-05T00:45:23.5126914Z             {
2026-06-05T00:45:23.5127668Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T00:45:23.5128278Z               "line": 473
2026-06-05T00:45:23.5128695Z             }
2026-06-05T00:45:23.5129113Z           ]
2026-06-05T00:45:23.5129573Z         }
2026-06-05T00:45:23.5129983Z       }
2026-06-05T00:45:23.5130375Z     },
2026-06-05T00:45:23.5130780Z     {
2026-06-05T00:45:23.5131257Z       "id": "REQ-SEAM-UPDATE",
2026-06-05T00:45:23.5132176Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-05T00:45:23.5132646Z       "requiredStages": [
2026-06-05T00:45:23.5133068Z         "impl",
2026-06-05T00:45:23.5133526Z         "unit"
2026-06-05T00:45:23.5133928Z       ],
2026-06-05T00:45:23.5134353Z       "stages": {
2026-06-05T00:45:23.5134767Z         "doc": {
2026-06-05T00:45:23.5135237Z           "complete": false,
2026-06-05T00:45:23.5135689Z           "evidence": []
2026-06-05T00:45:23.5136111Z         },
2026-06-05T00:45:23.5136541Z         "impl": {
2026-06-05T00:45:23.5136997Z           "complete": true,
2026-06-05T00:45:23.5137446Z           "evidence": [
2026-06-05T00:45:23.5137865Z             {
2026-06-05T00:45:23.5138585Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5139024Z               "line": 28
2026-06-05T00:45:23.5139477Z             },
2026-06-05T00:45:23.5139896Z             {
2026-06-05T00:45:23.5140610Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5141058Z               "line": 83
2026-06-05T00:45:23.5141468Z             }
2026-06-05T00:45:23.5141886Z           ]
2026-06-05T00:45:23.5142304Z         },
2026-06-05T00:45:23.5142713Z         "int": {
2026-06-05T00:45:23.5143180Z           "complete": false,
2026-06-05T00:45:23.5143629Z           "evidence": []
2026-06-05T00:45:23.5144042Z         },
2026-06-05T00:45:23.5144453Z         "unit": {
2026-06-05T00:45:23.5144928Z           "complete": true,
2026-06-05T00:45:23.5145579Z           "evidence": [
2026-06-05T00:45:23.5146018Z             {
2026-06-05T00:45:23.5146753Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5147341Z               "line": 270
2026-06-05T00:45:23.5147757Z             },
2026-06-05T00:45:23.5148165Z             {
2026-06-05T00:45:23.5148893Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5149401Z               "line": 281
2026-06-05T00:45:23.5149813Z             }
2026-06-05T00:45:23.5150233Z           ]
2026-06-05T00:45:23.5150630Z         }
2026-06-05T00:45:23.5151043Z       }
2026-06-05T00:45:23.5151440Z     },
2026-06-05T00:45:23.5151849Z     {
2026-06-05T00:45:23.5152303Z       "id": "REQ-SEC-1",
2026-06-05T00:45:23.5154860Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-05T00:45:23.5155342Z       "requiredStages": [
2026-06-05T00:45:23.5155771Z         "impl",
2026-06-05T00:45:23.5156216Z         "unit"
2026-06-05T00:45:23.5156628Z       ],
2026-06-05T00:45:23.5157085Z       "stages": {
2026-06-05T00:45:23.5157526Z         "doc": {
2026-06-05T00:45:23.5162074Z           "complete": false,
2026-06-05T00:45:23.5162661Z           "evidence": []
2026-06-05T00:45:23.5163076Z         },
2026-06-05T00:45:23.5163511Z         "impl": {
2026-06-05T00:45:23.5163975Z           "complete": true,
2026-06-05T00:45:23.5164430Z           "evidence": [
2026-06-05T00:45:23.5164848Z             {
2026-06-05T00:45:23.5165495Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5165941Z               "line": 84
2026-06-05T00:45:23.5166350Z             },
2026-06-05T00:45:23.5166763Z             {
2026-06-05T00:45:23.5167392Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5167845Z               "line": 114
2026-06-05T00:45:23.5168259Z             },
2026-06-05T00:45:23.5168662Z             {
2026-06-05T00:45:23.5169404Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5169859Z               "line": 128
2026-06-05T00:45:23.5170278Z             },
2026-06-05T00:45:23.5170700Z             {
2026-06-05T00:45:23.5171320Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5171765Z               "line": 108
2026-06-05T00:45:23.5172177Z             },
2026-06-05T00:45:23.5172595Z             {
2026-06-05T00:45:23.5173196Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5173641Z               "line": 129
2026-06-05T00:45:23.5174046Z             },
2026-06-05T00:45:23.5174460Z             {
2026-06-05T00:45:23.5175073Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5175507Z               "line": 142
2026-06-05T00:45:23.5175918Z             },
2026-06-05T00:45:23.5176319Z             {
2026-06-05T00:45:23.5176930Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5177387Z               "line": 208
2026-06-05T00:45:23.5177799Z             },
2026-06-05T00:45:23.5178217Z             {
2026-06-05T00:45:23.5178825Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5179326Z               "line": 234
2026-06-05T00:45:23.5179736Z             },
2026-06-05T00:45:23.5180153Z             {
2026-06-05T00:45:23.5180701Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5181148Z               "line": 1378
2026-06-05T00:45:23.5181564Z             }
2026-06-05T00:45:23.5181970Z           ]
2026-06-05T00:45:23.5182380Z         },
2026-06-05T00:45:23.5182791Z         "int": {
2026-06-05T00:45:23.5183263Z           "complete": false,
2026-06-05T00:45:23.5183723Z           "evidence": []
2026-06-05T00:45:23.5184137Z         },
2026-06-05T00:45:23.5184558Z         "unit": {
2026-06-05T00:45:23.5185010Z           "complete": true,
2026-06-05T00:45:23.5185454Z           "evidence": [
2026-06-05T00:45:23.5185864Z             {
2026-06-05T00:45:23.5186804Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5187286Z               "line": 140
2026-06-05T00:45:23.5187693Z             },
2026-06-05T00:45:23.5188246Z             {
2026-06-05T00:45:23.5188879Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5189378Z               "line": 186
2026-06-05T00:45:23.5189794Z             },
2026-06-05T00:45:23.5190207Z             {
2026-06-05T00:45:23.5190835Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T00:45:23.5191269Z               "line": 218
2026-06-05T00:45:23.5191694Z             },
2026-06-05T00:45:23.5192099Z             {
2026-06-05T00:45:23.5192754Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-05T00:45:23.5193186Z               "line": 128
2026-06-05T00:45:23.5193603Z             },
2026-06-05T00:45:23.5194168Z             {
2026-06-05T00:45:23.5194963Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5195414Z               "line": 248
2026-06-05T00:45:23.5195831Z             },
2026-06-05T00:45:23.5196255Z             {
2026-06-05T00:45:23.5196861Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5197329Z               "line": 275
2026-06-05T00:45:23.5197751Z             },
2026-06-05T00:45:23.5198153Z             {
2026-06-05T00:45:23.5198766Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5199249Z               "line": 299
2026-06-05T00:45:23.5199675Z             },
2026-06-05T00:45:23.5200080Z             {
2026-06-05T00:45:23.5200692Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5201139Z               "line": 310
2026-06-05T00:45:23.5201550Z             },
2026-06-05T00:45:23.5201965Z             {
2026-06-05T00:45:23.5202575Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5203022Z               "line": 334
2026-06-05T00:45:23.5203433Z             },
2026-06-05T00:45:23.5203851Z             {
2026-06-05T00:45:23.5204488Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T00:45:23.5204928Z               "line": 350
2026-06-05T00:45:23.5205347Z             },
2026-06-05T00:45:23.5205760Z             {
2026-06-05T00:45:23.5206302Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5206741Z               "line": 2499
2026-06-05T00:45:23.5207153Z             }
2026-06-05T00:45:23.5207563Z           ]
2026-06-05T00:45:23.5207969Z         }
2026-06-05T00:45:23.5208379Z       }
2026-06-05T00:45:23.5208771Z     },
2026-06-05T00:45:23.5209227Z     {
2026-06-05T00:45:23.5209696Z       "id": "REQ-SHELL-1",
2026-06-05T00:45:23.5216559Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-05T00:45:23.5217191Z       "requiredStages": [
2026-06-05T00:45:23.5217660Z         "impl",
2026-06-05T00:45:23.5218126Z         "unit"
2026-06-05T00:45:23.5218562Z       ],
2026-06-05T00:45:23.5219039Z       "stages": {
2026-06-05T00:45:23.5219621Z         "doc": {
2026-06-05T00:45:23.5220264Z           "complete": false,
2026-06-05T00:45:23.5220730Z           "evidence": []
2026-06-05T00:45:23.5221149Z         },
2026-06-05T00:45:23.5221588Z         "impl": {
2026-06-05T00:45:23.5222052Z           "complete": true,
2026-06-05T00:45:23.5222511Z           "evidence": [
2026-06-05T00:45:23.5222954Z             {
2026-06-05T00:45:23.5223649Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5224146Z               "line": 27
2026-06-05T00:45:23.5224578Z             },
2026-06-05T00:45:23.5225014Z             {
2026-06-05T00:45:23.5225708Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5226186Z               "line": 52
2026-06-05T00:45:23.5226627Z             },
2026-06-05T00:45:23.5227372Z             {
2026-06-05T00:45:23.5228084Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5228540Z               "line": 128
2026-06-05T00:45:23.5229234Z             },
2026-06-05T00:45:23.5229995Z             {
2026-06-05T00:45:23.5230692Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5231164Z               "line": 160
2026-06-05T00:45:23.5231579Z             },
2026-06-05T00:45:23.5232007Z             {
2026-06-05T00:45:23.5232670Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5233218Z               "line": 22
2026-06-05T00:45:23.5233630Z             },
2026-06-05T00:45:23.5234050Z             {
2026-06-05T00:45:23.5234716Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5235154Z               "line": 65
2026-06-05T00:45:23.5235581Z             },
2026-06-05T00:45:23.5235998Z             {
2026-06-05T00:45:23.5236681Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5237165Z               "line": 76
2026-06-05T00:45:23.5237603Z             },
2026-06-05T00:45:23.5238059Z             {
2026-06-05T00:45:23.5238776Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5239461Z               "line": 140
2026-06-05T00:45:23.5240055Z             },
2026-06-05T00:45:23.5240516Z             {
2026-06-05T00:45:23.5241208Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5241671Z               "line": 199
2026-06-05T00:45:23.5252085Z             },
2026-06-05T00:45:23.5252678Z             {
2026-06-05T00:45:23.5253446Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5253957Z               "line": 236
2026-06-05T00:45:23.5254466Z             },
2026-06-05T00:45:23.5254956Z             {
2026-06-05T00:45:23.5255824Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5256482Z               "line": 257
2026-06-05T00:45:23.5256982Z             },
2026-06-05T00:45:23.5257538Z             {
2026-06-05T00:45:23.5258392Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5258852Z               "line": 270
2026-06-05T00:45:23.5259359Z             },
2026-06-05T00:45:23.5259776Z             {
2026-06-05T00:45:23.5260391Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.5261159Z               "line": 185
2026-06-05T00:45:23.5261890Z             },
2026-06-05T00:45:23.5262309Z             {
2026-06-05T00:45:23.5262935Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.5263388Z               "line": 201
2026-06-05T00:45:23.5263801Z             },
2026-06-05T00:45:23.5264216Z             {
2026-06-05T00:45:23.5264852Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.5265297Z               "line": 41
2026-06-05T00:45:23.5265701Z             },
2026-06-05T00:45:23.5266122Z             {
2026-06-05T00:45:23.5266774Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.5267216Z               "line": 204
2026-06-05T00:45:23.5267635Z             },
2026-06-05T00:45:23.5268036Z             {
2026-06-05T00:45:23.5268668Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T00:45:23.5269108Z               "line": 142
2026-06-05T00:45:23.5269575Z             },
2026-06-05T00:45:23.5269991Z             {
2026-06-05T00:45:23.5270559Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:23.5271010Z               "line": 272
2026-06-05T00:45:23.5271420Z             },
2026-06-05T00:45:23.5271837Z             {
2026-06-05T00:45:23.5272409Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T00:45:23.5272845Z               "line": 303
2026-06-05T00:45:23.5273264Z             },
2026-06-05T00:45:23.5273669Z             {
2026-06-05T00:45:23.5274305Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.5274754Z               "line": 240
2026-06-05T00:45:23.5275179Z             },
2026-06-05T00:45:23.5275979Z             {
2026-06-05T00:45:23.5276562Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5277013Z               "line": 1858
2026-06-05T00:45:23.5277598Z             },
2026-06-05T00:45:23.5278016Z             {
2026-06-05T00:45:23.5278551Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5278999Z               "line": 1969
2026-06-05T00:45:23.5279460Z             },
2026-06-05T00:45:23.5279871Z             {
2026-06-05T00:45:23.5280424Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5280879Z               "line": 2001
2026-06-05T00:45:23.5281305Z             }
2026-06-05T00:45:23.5281714Z           ]
2026-06-05T00:45:23.5282127Z         },
2026-06-05T00:45:23.5282551Z         "int": {
2026-06-05T00:45:23.5283007Z           "complete": true,
2026-06-05T00:45:23.5283452Z           "evidence": [
2026-06-05T00:45:23.5283860Z             {
2026-06-05T00:45:23.5284548Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T00:45:23.5284987Z               "line": 8
2026-06-05T00:45:23.5285413Z             },
2026-06-05T00:45:23.5285828Z             {
2026-06-05T00:45:23.5286501Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T00:45:23.5286953Z               "line": 46
2026-06-05T00:45:23.5287362Z             },
2026-06-05T00:45:23.5287780Z             {
2026-06-05T00:45:23.5288373Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T00:45:23.5288820Z               "line": 14
2026-06-05T00:45:23.5289278Z             }
2026-06-05T00:45:23.5289684Z           ]
2026-06-05T00:45:23.5290099Z         },
2026-06-05T00:45:23.5290518Z         "unit": {
2026-06-05T00:45:23.5290984Z           "complete": true,
2026-06-05T00:45:23.5291422Z           "evidence": [
2026-06-05T00:45:23.5291839Z             {
2026-06-05T00:45:23.5292498Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5292939Z               "line": 227
2026-06-05T00:45:23.5293357Z             },
2026-06-05T00:45:23.5293778Z             {
2026-06-05T00:45:23.5294446Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5294880Z               "line": 254
2026-06-05T00:45:23.5295313Z             },
2026-06-05T00:45:23.5295726Z             {
2026-06-05T00:45:23.5296377Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5296830Z               "line": 278
2026-06-05T00:45:23.5297236Z             },
2026-06-05T00:45:23.5297652Z             {
2026-06-05T00:45:23.5298304Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5298749Z               "line": 479
2026-06-05T00:45:23.5299210Z             },
2026-06-05T00:45:23.5299619Z             {
2026-06-05T00:45:23.5300279Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5300716Z               "line": 543
2026-06-05T00:45:23.5301133Z             },
2026-06-05T00:45:23.5301536Z             {
2026-06-05T00:45:23.5302216Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5302666Z               "line": 672
2026-06-05T00:45:23.5303072Z             },
2026-06-05T00:45:23.5303489Z             {
2026-06-05T00:45:23.5304104Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.5304551Z               "line": 524
2026-06-05T00:45:23.5304969Z             },
2026-06-05T00:45:23.5305374Z             {
2026-06-05T00:45:23.5306032Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T00:45:23.5306468Z               "line": 343
2026-06-05T00:45:23.5306883Z             },
2026-06-05T00:45:23.5307287Z             {
2026-06-05T00:45:23.5307844Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5308297Z               "line": 2714
2026-06-05T00:45:23.5308711Z             },
2026-06-05T00:45:23.5309120Z             {
2026-06-05T00:45:23.5309695Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5310141Z               "line": 2825
2026-06-05T00:45:23.5310545Z             },
2026-06-05T00:45:23.5311117Z             {
2026-06-05T00:45:23.5311684Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5312122Z               "line": 3138
2026-06-05T00:45:23.5312705Z             }
2026-06-05T00:45:23.5313119Z           ]
2026-06-05T00:45:23.5313531Z         }
2026-06-05T00:45:23.5313936Z       }
2026-06-05T00:45:23.5314347Z     },
2026-06-05T00:45:23.5314760Z     {
2026-06-05T00:45:23.5315215Z       "id": "REQ-SHELL-2",
2026-06-05T00:45:23.5324810Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-05T00:45:23.5325303Z       "requiredStages": [
2026-06-05T00:45:23.5325765Z         "impl",
2026-06-05T00:45:23.5326193Z         "unit"
2026-06-05T00:45:23.5326596Z       ],
2026-06-05T00:45:23.5327029Z       "stages": {
2026-06-05T00:45:23.5327463Z         "doc": {
2026-06-05T00:45:23.5327937Z           "complete": false,
2026-06-05T00:45:23.5328388Z           "evidence": []
2026-06-05T00:45:23.5328801Z         },
2026-06-05T00:45:23.5329262Z         "impl": {
2026-06-05T00:45:23.5329724Z           "complete": true,
2026-06-05T00:45:23.5330177Z           "evidence": [
2026-06-05T00:45:23.5330602Z             {
2026-06-05T00:45:23.5331300Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.5331742Z               "line": 291
2026-06-05T00:45:23.5332173Z             },
2026-06-05T00:45:23.5332594Z             {
2026-06-05T00:45:23.5333233Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.5333686Z               "line": 338
2026-06-05T00:45:23.5334095Z             },
2026-06-05T00:45:23.5334528Z             {
2026-06-05T00:45:23.5335192Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T00:45:23.5335648Z               "line": 111
2026-06-05T00:45:23.5336084Z             },
2026-06-05T00:45:23.5336489Z             {
2026-06-05T00:45:23.5337147Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5337588Z               "line": 343
2026-06-05T00:45:23.5338016Z             },
2026-06-05T00:45:23.5338430Z             {
2026-06-05T00:45:23.5339100Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5339599Z               "line": 427
2026-06-05T00:45:23.5340008Z             },
2026-06-05T00:45:23.5346303Z             {
2026-06-05T00:45:23.5347065Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5347713Z               "line": 1908
2026-06-05T00:45:23.5348290Z             },
2026-06-05T00:45:23.5349040Z             {
2026-06-05T00:45:23.5349715Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5350369Z               "line": 2084
2026-06-05T00:45:23.5350800Z             }
2026-06-05T00:45:23.5351212Z           ]
2026-06-05T00:45:23.5351630Z         },
2026-06-05T00:45:23.5352066Z         "int": {
2026-06-05T00:45:23.5352537Z           "complete": false,
2026-06-05T00:45:23.5352991Z           "evidence": []
2026-06-05T00:45:23.5353395Z         },
2026-06-05T00:45:23.5353816Z         "unit": {
2026-06-05T00:45:23.5354273Z           "complete": true,
2026-06-05T00:45:23.5354723Z           "evidence": [
2026-06-05T00:45:23.5355128Z             {
2026-06-05T00:45:23.5355783Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T00:45:23.5356228Z               "line": 652
2026-06-05T00:45:23.5356633Z             },
2026-06-05T00:45:23.5357049Z             {
2026-06-05T00:45:23.5357692Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5358139Z               "line": 574
2026-06-05T00:45:23.5358551Z             },
2026-06-05T00:45:23.5358955Z             {
2026-06-05T00:45:23.5360468Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5360976Z               "line": 614
2026-06-05T00:45:23.5361569Z             },
2026-06-05T00:45:23.5362139Z             {
2026-06-05T00:45:23.5362802Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T00:45:23.5363252Z               "line": 637
2026-06-05T00:45:23.5363659Z             },
2026-06-05T00:45:23.5364075Z             {
2026-06-05T00:45:23.5364604Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5365055Z               "line": 2767
2026-06-05T00:45:23.5365458Z             }
2026-06-05T00:45:23.5365873Z           ]
2026-06-05T00:45:23.5366288Z         }
2026-06-05T00:45:23.5366689Z       }
2026-06-05T00:45:23.5367099Z     },
2026-06-05T00:45:23.5367497Z     {
2026-06-05T00:45:23.5367956Z       "id": "REQ-START-1",
2026-06-05T00:45:23.5369075Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-05T00:45:23.5369806Z       "requiredStages": [
2026-06-05T00:45:23.5370422Z         "impl",
2026-06-05T00:45:23.5371273Z         "unit"
2026-06-05T00:45:23.5371735Z       ],
2026-06-05T00:45:23.5372326Z       "stages": {
2026-06-05T00:45:23.5372754Z         "doc": {
2026-06-05T00:45:23.5373211Z           "complete": false,
2026-06-05T00:45:23.5373659Z           "evidence": []
2026-06-05T00:45:23.5374078Z         },
2026-06-05T00:45:23.5374499Z         "impl": {
2026-06-05T00:45:23.5374969Z           "complete": true,
2026-06-05T00:45:23.5375850Z           "evidence": [
2026-06-05T00:45:23.5376299Z             {
2026-06-05T00:45:23.5377063Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T00:45:23.5377500Z               "line": 16
2026-06-05T00:45:23.5377917Z             }
2026-06-05T00:45:23.5378318Z           ]
2026-06-05T00:45:23.5378729Z         },
2026-06-05T00:45:23.5379145Z         "int": {
2026-06-05T00:45:23.5379671Z           "complete": false,
2026-06-05T00:45:23.5380116Z           "evidence": []
2026-06-05T00:45:23.5380547Z         },
2026-06-05T00:45:23.5380971Z         "unit": {
2026-06-05T00:45:23.5381423Z           "complete": true,
2026-06-05T00:45:23.5381869Z           "evidence": [
2026-06-05T00:45:23.5382284Z             {
2026-06-05T00:45:23.5382886Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T00:45:23.5383315Z               "line": 43
2026-06-05T00:45:23.5383743Z             },
2026-06-05T00:45:23.5384154Z             {
2026-06-05T00:45:23.5384739Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T00:45:23.5385177Z               "line": 59
2026-06-05T00:45:23.5385580Z             }
2026-06-05T00:45:23.5385991Z           ]
2026-06-05T00:45:23.5386394Z         }
2026-06-05T00:45:23.5386805Z       }
2026-06-05T00:45:23.5387210Z     },
2026-06-05T00:45:23.5387609Z     {
2026-06-05T00:45:23.5388375Z       "id": "REQ-START-2",
2026-06-05T00:45:23.5389400Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-05T00:45:23.5390064Z       "requiredStages": [
2026-06-05T00:45:23.5390490Z         "impl",
2026-06-05T00:45:23.5390919Z         "unit",
2026-06-05T00:45:23.5391344Z         "int"
2026-06-05T00:45:23.5391747Z       ],
2026-06-05T00:45:23.5392194Z       "stages": {
2026-06-05T00:45:23.5392605Z         "doc": {
2026-06-05T00:45:23.5393078Z           "complete": false,
2026-06-05T00:45:23.5393517Z           "evidence": []
2026-06-05T00:45:23.5393933Z         },
2026-06-05T00:45:23.5394351Z         "impl": {
2026-06-05T00:45:23.5394827Z           "complete": true,
2026-06-05T00:45:23.5395274Z           "evidence": [
2026-06-05T00:45:23.5395685Z             {
2026-06-05T00:45:23.5396302Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5396740Z               "line": 16
2026-06-05T00:45:23.5397155Z             },
2026-06-05T00:45:23.5397552Z             {
2026-06-05T00:45:23.5398161Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5398602Z               "line": 97
2026-06-05T00:45:23.5399009Z             },
2026-06-05T00:45:23.5399656Z             {
2026-06-05T00:45:23.5400277Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5400722Z               "line": 203
2026-06-05T00:45:23.5401276Z             }
2026-06-05T00:45:23.5401680Z           ]
2026-06-05T00:45:23.5402101Z         },
2026-06-05T00:45:23.5402516Z         "int": {
2026-06-05T00:45:23.5402987Z           "complete": true,
2026-06-05T00:45:23.5403427Z           "evidence": [
2026-06-05T00:45:23.5403845Z             {
2026-06-05T00:45:23.5404494Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.5404927Z               "line": 150
2026-06-05T00:45:23.5405341Z             }
2026-06-05T00:45:23.5405746Z           ]
2026-06-05T00:45:23.5406158Z         },
2026-06-05T00:45:23.5406572Z         "unit": {
2026-06-05T00:45:23.5407035Z           "complete": true,
2026-06-05T00:45:23.5407486Z           "evidence": [
2026-06-05T00:45:23.5407890Z             {
2026-06-05T00:45:23.5408521Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5408961Z               "line": 411
2026-06-05T00:45:23.5409428Z             },
2026-06-05T00:45:23.5409836Z             {
2026-06-05T00:45:23.5410461Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5410912Z               "line": 444
2026-06-05T00:45:23.5411323Z             }
2026-06-05T00:45:23.5411739Z           ]
2026-06-05T00:45:23.5412142Z         }
2026-06-05T00:45:23.5412550Z       }
2026-06-05T00:45:23.5412940Z     },
2026-06-05T00:45:23.5413342Z     {
2026-06-05T00:45:23.5413797Z       "id": "REQ-START-3",
2026-06-05T00:45:23.5414787Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-05T00:45:23.5415267Z       "requiredStages": [
2026-06-05T00:45:23.5415688Z         "impl",
2026-06-05T00:45:23.5416111Z         "unit",
2026-06-05T00:45:23.5416526Z         "int"
2026-06-05T00:45:23.5416941Z       ],
2026-06-05T00:45:23.5417382Z       "stages": {
2026-06-05T00:45:23.5417793Z         "doc": {
2026-06-05T00:45:23.5418270Z           "complete": false,
2026-06-05T00:45:23.5418711Z           "evidence": []
2026-06-05T00:45:23.5419120Z         },
2026-06-05T00:45:23.5419594Z         "impl": {
2026-06-05T00:45:23.5420061Z           "complete": true,
2026-06-05T00:45:23.5420496Z           "evidence": [
2026-06-05T00:45:23.5420921Z             {
2026-06-05T00:45:23.5421567Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5421996Z               "line": 23
2026-06-05T00:45:23.5422415Z             },
2026-06-05T00:45:23.5422822Z             {
2026-06-05T00:45:23.5423473Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5423928Z               "line": 167
2026-06-05T00:45:23.5424342Z             },
2026-06-05T00:45:23.5424763Z             {
2026-06-05T00:45:23.5425412Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5425866Z               "line": 180
2026-06-05T00:45:23.5431103Z             },
2026-06-05T00:45:23.5431694Z             {
2026-06-05T00:45:23.5432337Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5432773Z               "line": 17
2026-06-05T00:45:23.5433213Z             },
2026-06-05T00:45:23.5433618Z             {
2026-06-05T00:45:23.5434229Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5434664Z               "line": 43
2026-06-05T00:45:23.5435085Z             },
2026-06-05T00:45:23.5435501Z             {
2026-06-05T00:45:23.5436101Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5436547Z               "line": 98
2026-06-05T00:45:23.5436953Z             }
2026-06-05T00:45:23.5437369Z           ]
2026-06-05T00:45:23.5437773Z         },
2026-06-05T00:45:23.5438197Z         "int": {
2026-06-05T00:45:23.5438660Z           "complete": true,
2026-06-05T00:45:23.5439096Z           "evidence": [
2026-06-05T00:45:23.5439584Z             {
2026-06-05T00:45:23.5440212Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T00:45:23.5440915Z               "line": 321
2026-06-05T00:45:23.5441348Z             }
2026-06-05T00:45:23.5441760Z           ]
2026-06-05T00:45:23.5442176Z         },
2026-06-05T00:45:23.5442728Z         "unit": {
2026-06-05T00:45:23.5443195Z           "complete": true,
2026-06-05T00:45:23.5443631Z           "evidence": [
2026-06-05T00:45:23.5444044Z             {
2026-06-05T00:45:23.5444677Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5445126Z               "line": 245
2026-06-05T00:45:23.5445539Z             },
2026-06-05T00:45:23.5445949Z             {
2026-06-05T00:45:23.5446593Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5447027Z               "line": 263
2026-06-05T00:45:23.5447440Z             },
2026-06-05T00:45:23.5447839Z             {
2026-06-05T00:45:23.5448485Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T00:45:23.5448938Z               "line": 273
2026-06-05T00:45:23.5449389Z             },
2026-06-05T00:45:23.5449824Z             {
2026-06-05T00:45:23.5450422Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5450871Z               "line": 412
2026-06-05T00:45:23.5451289Z             },
2026-06-05T00:45:23.5451703Z             {
2026-06-05T00:45:23.5452310Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5452746Z               "line": 445
2026-06-05T00:45:23.5453162Z             },
2026-06-05T00:45:23.5453562Z             {
2026-06-05T00:45:23.5454165Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T00:45:23.5454607Z               "line": 453
2026-06-05T00:45:23.5455022Z             }
2026-06-05T00:45:23.5455431Z           ]
2026-06-05T00:45:23.5455837Z         }
2026-06-05T00:45:23.5456252Z       }
2026-06-05T00:45:23.5456646Z     },
2026-06-05T00:45:23.5457050Z     {
2026-06-05T00:45:23.5457501Z       "id": "REQ-START-4",
2026-06-05T00:45:23.5458264Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-05T00:45:23.5458748Z       "requiredStages": [
2026-06-05T00:45:23.5459203Z         "impl",
2026-06-05T00:45:23.5459646Z         "unit"
2026-06-05T00:45:23.5460233Z       ],
2026-06-05T00:45:23.5460714Z       "stages": {
2026-06-05T00:45:23.5461154Z         "doc": {
2026-06-05T00:45:23.5461658Z           "complete": false,
2026-06-05T00:45:23.5462149Z           "evidence": []
2026-06-05T00:45:23.5462591Z         },
2026-06-05T00:45:23.5463052Z         "impl": {
2026-06-05T00:45:23.5463547Z           "complete": true,
2026-06-05T00:45:23.5464025Z           "evidence": [
2026-06-05T00:45:23.5464471Z             {
2026-06-05T00:45:23.5465268Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.5465716Z               "line": 309
2026-06-05T00:45:23.5466121Z             }
2026-06-05T00:45:23.5466535Z           ]
2026-06-05T00:45:23.5466937Z         },
2026-06-05T00:45:23.5467360Z         "int": {
2026-06-05T00:45:23.5467816Z           "complete": false,
2026-06-05T00:45:23.5468274Z           "evidence": []
2026-06-05T00:45:23.5468704Z         },
2026-06-05T00:45:23.5469129Z         "unit": {
2026-06-05T00:45:23.5469670Z           "complete": true,
2026-06-05T00:45:23.5470112Z           "evidence": [
2026-06-05T00:45:23.5470547Z             {
2026-06-05T00:45:23.5471183Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T00:45:23.5471628Z               "line": 540
2026-06-05T00:45:23.5472047Z             }
2026-06-05T00:45:23.5472449Z           ]
2026-06-05T00:45:23.5472866Z         }
2026-06-05T00:45:23.5473270Z       }
2026-06-05T00:45:23.5473676Z     },
2026-06-05T00:45:23.5474070Z     {
2026-06-05T00:45:23.5474541Z       "id": "REQ-STORE-1",
2026-06-05T00:45:23.5480462Z       "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-05T00:45:23.5481129Z       "requiredStages": [
2026-06-05T00:45:23.5481573Z         "impl",
2026-06-05T00:45:23.5482000Z         "unit"
2026-06-05T00:45:23.5482415Z       ],
2026-06-05T00:45:23.5483044Z       "stages": {
2026-06-05T00:45:23.5483457Z         "doc": {
2026-06-05T00:45:23.5483925Z           "complete": false,
2026-06-05T00:45:23.5484365Z           "evidence": []
2026-06-05T00:45:23.5484779Z         },
2026-06-05T00:45:23.5485195Z         "impl": {
2026-06-05T00:45:23.5485665Z           "complete": true,
2026-06-05T00:45:23.5486107Z           "evidence": [
2026-06-05T00:45:23.5486507Z             {
2026-06-05T00:45:23.5487198Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5487628Z               "line": 23
2026-06-05T00:45:23.5488040Z             },
2026-06-05T00:45:23.5488441Z             {
2026-06-05T00:45:23.5489128Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5489620Z               "line": 46
2026-06-05T00:45:23.5490043Z             },
2026-06-05T00:45:23.5490458Z             {
2026-06-05T00:45:23.5491125Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5491587Z               "line": 88
2026-06-05T00:45:23.5492002Z             },
2026-06-05T00:45:23.5492402Z             {
2026-06-05T00:45:23.5493076Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5493514Z               "line": 109
2026-06-05T00:45:23.5493931Z             },
2026-06-05T00:45:23.5494343Z             {
2026-06-05T00:45:23.5495014Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5495463Z               "line": 152
2026-06-05T00:45:23.5495869Z             },
2026-06-05T00:45:23.5496277Z             {
2026-06-05T00:45:23.5496942Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5497385Z               "line": 165
2026-06-05T00:45:23.5497788Z             },
2026-06-05T00:45:23.5498202Z             {
2026-06-05T00:45:23.5498889Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5499369Z               "line": 353
2026-06-05T00:45:23.5499933Z             },
2026-06-05T00:45:23.5500348Z             {
2026-06-05T00:45:23.5501036Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5501470Z               "line": 25
2026-06-05T00:45:23.5501886Z             },
2026-06-05T00:45:23.5502309Z             {
2026-06-05T00:45:23.5502982Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5503431Z               "line": 101
2026-06-05T00:45:23.5503839Z             },
2026-06-05T00:45:23.5504254Z             {
2026-06-05T00:45:23.5504928Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5505379Z               "line": 126
2026-06-05T00:45:23.5505796Z             },
2026-06-05T00:45:23.5506202Z             {
2026-06-05T00:45:23.5506891Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5507336Z               "line": 140
2026-06-05T00:45:23.5507758Z             },
2026-06-05T00:45:23.5508158Z             {
2026-06-05T00:45:23.5508853Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5509349Z               "line": 154
2026-06-05T00:45:23.5509767Z             },
2026-06-05T00:45:23.5510178Z             {
2026-06-05T00:45:23.5510867Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5511315Z               "line": 163
2026-06-05T00:45:23.5511727Z             },
2026-06-05T00:45:23.5512129Z             {
2026-06-05T00:45:23.5512780Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T00:45:23.5513216Z               "line": 16
2026-06-05T00:45:23.5513634Z             },
2026-06-05T00:45:23.5518501Z             {
2026-06-05T00:45:23.5519353Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T00:45:23.5519816Z               "line": 63
2026-06-05T00:45:23.5520236Z             }
2026-06-05T00:45:23.5520650Z           ]
2026-06-05T00:45:23.5521300Z         },
2026-06-05T00:45:23.5521737Z         "int": {
2026-06-05T00:45:23.5522200Z           "complete": false,
2026-06-05T00:45:23.5522648Z           "evidence": []
2026-06-05T00:45:23.5523217Z         },
2026-06-05T00:45:23.5523637Z         "unit": {
2026-06-05T00:45:23.5524100Z           "complete": true,
2026-06-05T00:45:23.5524542Z           "evidence": [
2026-06-05T00:45:23.5524958Z             {
2026-06-05T00:45:23.5525628Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5526079Z               "line": 468
2026-06-05T00:45:23.5526499Z             },
2026-06-05T00:45:23.5526906Z             {
2026-06-05T00:45:23.5527586Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5528027Z               "line": 478
2026-06-05T00:45:23.5528449Z             },
2026-06-05T00:45:23.5528856Z             {
2026-06-05T00:45:23.5529588Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5530059Z               "line": 498
2026-06-05T00:45:23.5530475Z             },
2026-06-05T00:45:23.5530888Z             {
2026-06-05T00:45:23.5531555Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5532012Z               "line": 514
2026-06-05T00:45:23.5532415Z             },
2026-06-05T00:45:23.5532833Z             {
2026-06-05T00:45:23.5533514Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T00:45:23.5533953Z               "line": 535
2026-06-05T00:45:23.5534365Z             },
2026-06-05T00:45:23.5534768Z             {
2026-06-05T00:45:23.5535453Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5535887Z               "line": 427
2026-06-05T00:45:23.5536309Z             },
2026-06-05T00:45:23.5536720Z             {
2026-06-05T00:45:23.5537398Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T00:45:23.5537845Z               "line": 457
2026-06-05T00:45:23.5538249Z             },
2026-06-05T00:45:23.5538668Z             {
2026-06-05T00:45:23.5539330Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T00:45:23.5539785Z               "line": 116
2026-06-05T00:45:23.5540209Z             },
2026-06-05T00:45:23.5540609Z             {
2026-06-05T00:45:23.5541247Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T00:45:23.5541685Z               "line": 124
2026-06-05T00:45:23.5542101Z             }
2026-06-05T00:45:23.5542501Z           ]
2026-06-05T00:45:23.5542906Z         }
2026-06-05T00:45:23.5543313Z       }
2026-06-05T00:45:23.5543710Z     },
2026-06-05T00:45:23.5544111Z     {
2026-06-05T00:45:23.5544556Z       "id": "REQ-TERM-1",
2026-06-05T00:45:23.5545543Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-05T00:45:23.5546003Z       "requiredStages": [
2026-06-05T00:45:23.5546425Z         "impl",
2026-06-05T00:45:23.5546841Z         "unit"
2026-06-05T00:45:23.5547233Z       ],
2026-06-05T00:45:23.5547658Z       "stages": {
2026-06-05T00:45:23.5548079Z         "doc": {
2026-06-05T00:45:23.5548547Z           "complete": false,
2026-06-05T00:45:23.5548984Z           "evidence": []
2026-06-05T00:45:23.5549545Z         },
2026-06-05T00:45:23.5550003Z         "impl": {
2026-06-05T00:45:23.5550454Z           "complete": true,
2026-06-05T00:45:23.5550895Z           "evidence": [
2026-06-05T00:45:23.5551295Z             {
2026-06-05T00:45:23.5551893Z               "path": "crates/spt-term/src/pty.rs",
2026-06-05T00:45:23.5552331Z               "line": 61
2026-06-05T00:45:23.5552741Z             },
2026-06-05T00:45:23.5553151Z             {
2026-06-05T00:45:23.5553714Z               "path": "crates/spt-term/src/pty.rs",
2026-06-05T00:45:23.5554157Z               "line": 169
2026-06-05T00:45:23.5554555Z             },
2026-06-05T00:45:23.5554964Z             {
2026-06-05T00:45:23.5555563Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T00:45:23.5556004Z               "line": 95
2026-06-05T00:45:23.5556415Z             }
2026-06-05T00:45:23.5556977Z           ]
2026-06-05T00:45:23.5557411Z         },
2026-06-05T00:45:23.5557826Z         "int": {
2026-06-05T00:45:23.5558301Z           "complete": false,
2026-06-05T00:45:23.5558881Z           "evidence": []
2026-06-05T00:45:23.5559340Z         },
2026-06-05T00:45:23.5559773Z         "unit": {
2026-06-05T00:45:23.5560224Z           "complete": true,
2026-06-05T00:45:23.5560661Z           "evidence": [
2026-06-05T00:45:23.5561058Z             {
2026-06-05T00:45:23.5561696Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-05T00:45:23.5562125Z               "line": 28
2026-06-05T00:45:23.5562537Z             },
2026-06-05T00:45:23.5562944Z             {
2026-06-05T00:45:23.5563567Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-05T00:45:23.5564004Z               "line": 60
2026-06-05T00:45:23.5564404Z             }
2026-06-05T00:45:23.5564807Z           ]
2026-06-05T00:45:23.5565202Z         }
2026-06-05T00:45:23.5565618Z       }
2026-06-05T00:45:23.5566017Z     },
2026-06-05T00:45:23.5566418Z     {
2026-06-05T00:45:23.5566873Z       "id": "REQ-TERM-2",
2026-06-05T00:45:23.5567904Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-05T00:45:23.5568394Z       "requiredStages": [
2026-06-05T00:45:23.5568794Z         "impl",
2026-06-05T00:45:23.5569249Z         "unit"
2026-06-05T00:45:23.5569656Z       ],
2026-06-05T00:45:23.5570069Z       "stages": {
2026-06-05T00:45:23.5570483Z         "doc": {
2026-06-05T00:45:23.5570938Z           "complete": false,
2026-06-05T00:45:23.5571387Z           "evidence": []
2026-06-05T00:45:23.5571790Z         },
2026-06-05T00:45:23.5572217Z         "impl": {
2026-06-05T00:45:23.5572676Z           "complete": true,
2026-06-05T00:45:23.5573106Z           "evidence": [
2026-06-05T00:45:23.5573513Z             {
2026-06-05T00:45:23.5574121Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T00:45:23.5574564Z               "line": 112
2026-06-05T00:45:23.5574965Z             },
2026-06-05T00:45:23.5575389Z             {
2026-06-05T00:45:23.5576008Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T00:45:23.5576451Z               "line": 122
2026-06-05T00:45:23.5576876Z             }
2026-06-05T00:45:23.5577282Z           ]
2026-06-05T00:45:23.5577692Z         },
2026-06-05T00:45:23.5578100Z         "int": {
2026-06-05T00:45:23.5578572Z           "complete": false,
2026-06-05T00:45:23.5579021Z           "evidence": []
2026-06-05T00:45:23.5579456Z         },
2026-06-05T00:45:23.5579880Z         "unit": {
2026-06-05T00:45:23.5580330Z           "complete": true,
2026-06-05T00:45:23.5580774Z           "evidence": [
2026-06-05T00:45:23.5581178Z             {
2026-06-05T00:45:23.5581805Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-05T00:45:23.5582243Z               "line": 46
2026-06-05T00:45:23.5582646Z             },
2026-06-05T00:45:23.5583062Z             {
2026-06-05T00:45:23.5583689Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-05T00:45:23.5584145Z               "line": 71
2026-06-05T00:45:23.5584549Z             }
2026-06-05T00:45:23.5584967Z           ]
2026-06-05T00:45:23.5585376Z         }
2026-06-05T00:45:23.5585792Z       }
2026-06-05T00:45:23.5586194Z     },
2026-06-05T00:45:23.5586583Z     {
2026-06-05T00:45:23.5587038Z       "id": "REQ-TERM-3",
2026-06-05T00:45:23.5587809Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-05T00:45:23.5588283Z       "requiredStages": [
2026-06-05T00:45:23.5588703Z         "impl",
2026-06-05T00:45:23.5589114Z         "unit"
2026-06-05T00:45:23.5589565Z       ],
2026-06-05T00:45:23.5589982Z       "stages": {
2026-06-05T00:45:23.5590395Z         "doc": {
2026-06-05T00:45:23.5590845Z           "complete": false,
2026-06-05T00:45:23.5591293Z           "evidence": []
2026-06-05T00:45:23.5591700Z         },
2026-06-05T00:45:23.5592111Z         "impl": {
2026-06-05T00:45:23.5592566Z           "complete": true,
2026-06-05T00:45:23.5593001Z           "evidence": [
2026-06-05T00:45:23.5593567Z             {
2026-06-05T00:45:23.5594191Z               "path": "crates/spt-term/src/stream.rs",
2026-06-05T00:45:23.5598388Z               "line": 71
2026-06-05T00:45:23.5599126Z             }
2026-06-05T00:45:23.5599624Z           ]
2026-06-05T00:45:23.5600046Z         },
2026-06-05T00:45:23.5600466Z         "int": {
2026-06-05T00:45:23.5600941Z           "complete": false,
2026-06-05T00:45:23.5601380Z           "evidence": []
2026-06-05T00:45:23.5601790Z         },
2026-06-05T00:45:23.5602212Z         "unit": {
2026-06-05T00:45:23.5602663Z           "complete": true,
2026-06-05T00:45:23.5603107Z           "evidence": [
2026-06-05T00:45:23.5603510Z             {
2026-06-05T00:45:23.5604155Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-05T00:45:23.5604585Z               "line": 37
2026-06-05T00:45:23.5605001Z             },
2026-06-05T00:45:23.5605412Z             {
2026-06-05T00:45:23.5606031Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-05T00:45:23.5606490Z               "line": 67
2026-06-05T00:45:23.5606893Z             }
2026-06-05T00:45:23.5607304Z           ]
2026-06-05T00:45:23.5607711Z         }
2026-06-05T00:45:23.5608117Z       }
2026-06-05T00:45:23.5608532Z     },
2026-06-05T00:45:23.5608922Z     {
2026-06-05T00:45:23.5609408Z       "id": "REQ-TERM-4",
2026-06-05T00:45:23.5611620Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-05T00:45:23.5612093Z       "requiredStages": [
2026-06-05T00:45:23.5612502Z         "impl",
2026-06-05T00:45:23.5612922Z         "unit",
2026-06-05T00:45:23.5613332Z         "int"
2026-06-05T00:45:23.5613725Z       ],
2026-06-05T00:45:23.5614153Z       "stages": {
2026-06-05T00:45:23.5614559Z         "doc": {
2026-06-05T00:45:23.5615018Z           "complete": true,
2026-06-05T00:45:23.5615449Z           "evidence": [
2026-06-05T00:45:23.5615854Z             {
2026-06-05T00:45:23.5616360Z               "path": "docs/MANIFEST.md",
2026-06-05T00:45:23.5616801Z               "line": 115
2026-06-05T00:45:23.5617221Z             }
2026-06-05T00:45:23.5617623Z           ]
2026-06-05T00:45:23.5618029Z         },
2026-06-05T00:45:23.5618455Z         "impl": {
2026-06-05T00:45:23.5618914Z           "complete": true,
2026-06-05T00:45:23.5619390Z           "evidence": [
2026-06-05T00:45:23.5619808Z             {
2026-06-05T00:45:23.5620624Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T00:45:23.5621165Z               "line": 463
2026-06-05T00:45:23.5621670Z             },
2026-06-05T00:45:23.5622254Z             {
2026-06-05T00:45:23.5622900Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5623339Z               "line": 41
2026-06-05T00:45:23.5623746Z             },
2026-06-05T00:45:23.5624155Z             {
2026-06-05T00:45:23.5625104Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5625562Z               "line": 91
2026-06-05T00:45:23.5625972Z             },
2026-06-05T00:45:23.5626409Z             {
2026-06-05T00:45:23.5627045Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5627477Z               "line": 152
2026-06-05T00:45:23.5627908Z             },
2026-06-05T00:45:23.5628307Z             {
2026-06-05T00:45:23.5628939Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5629446Z               "line": 212
2026-06-05T00:45:23.5629861Z             },
2026-06-05T00:45:23.5630275Z             {
2026-06-05T00:45:23.5630930Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5631381Z               "line": 20
2026-06-05T00:45:23.5631784Z             },
2026-06-05T00:45:23.5632194Z             {
2026-06-05T00:45:23.5632851Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5633292Z               "line": 212
2026-06-05T00:45:23.5633707Z             },
2026-06-05T00:45:23.5634109Z             {
2026-06-05T00:45:23.5634999Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5635459Z               "line": 226
2026-06-05T00:45:23.5635873Z             },
2026-06-05T00:45:23.5636287Z             {
2026-06-05T00:45:23.5637127Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.5637573Z               "line": 585
2026-06-05T00:45:23.5637984Z             },
2026-06-05T00:45:23.5638394Z             {
2026-06-05T00:45:23.5638987Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5639481Z               "line": 157
2026-06-05T00:45:23.5639907Z             },
2026-06-05T00:45:23.5640307Z             {
2026-06-05T00:45:23.5640906Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5641344Z               "line": 199
2026-06-05T00:45:23.5641753Z             },
2026-06-05T00:45:23.5642153Z             {
2026-06-05T00:45:23.5642755Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5643203Z               "line": 226
2026-06-05T00:45:23.5643606Z             },
2026-06-05T00:45:23.5644032Z             {
2026-06-05T00:45:23.5644573Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5645018Z               "line": 508
2026-06-05T00:45:23.5645443Z             }
2026-06-05T00:45:23.5645863Z           ]
2026-06-05T00:45:23.5646268Z         },
2026-06-05T00:45:23.5646680Z         "int": {
2026-06-05T00:45:23.5647145Z           "complete": true,
2026-06-05T00:45:23.5647583Z           "evidence": [
2026-06-05T00:45:23.5647988Z             {
2026-06-05T00:45:23.5648626Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-05T00:45:23.5649066Z               "line": 18
2026-06-05T00:45:23.5649519Z             }
2026-06-05T00:45:23.5649919Z           ]
2026-06-05T00:45:23.5650323Z         },
2026-06-05T00:45:23.5650736Z         "unit": {
2026-06-05T00:45:23.5651193Z           "complete": true,
2026-06-05T00:45:23.5651632Z           "evidence": [
2026-06-05T00:45:23.5652042Z             {
2026-06-05T00:45:23.5652691Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5653134Z               "line": 250
2026-06-05T00:45:23.5653547Z             },
2026-06-05T00:45:23.5653953Z             {
2026-06-05T00:45:23.5654599Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5655041Z               "line": 263
2026-06-05T00:45:23.5655455Z             },
2026-06-05T00:45:23.5655868Z             {
2026-06-05T00:45:23.5656486Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5656932Z               "line": 275
2026-06-05T00:45:23.5657339Z             },
2026-06-05T00:45:23.5657764Z             {
2026-06-05T00:45:23.5658395Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5659212Z               "line": 290
2026-06-05T00:45:23.5659829Z             },
2026-06-05T00:45:23.5660314Z             {
2026-06-05T00:45:23.5661069Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5661865Z               "line": 305
2026-06-05T00:45:23.5662471Z             },
2026-06-05T00:45:23.5662892Z             {
2026-06-05T00:45:23.5663528Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5663979Z               "line": 327
2026-06-05T00:45:23.5664397Z             },
2026-06-05T00:45:23.5664806Z             {
2026-06-05T00:45:23.5665420Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5665865Z               "line": 337
2026-06-05T00:45:23.5666292Z             },
2026-06-05T00:45:23.5666699Z             {
2026-06-05T00:45:23.5667332Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T00:45:23.5667771Z               "line": 364
2026-06-05T00:45:23.5668186Z             },
2026-06-05T00:45:23.5668588Z             {
2026-06-05T00:45:23.5669466Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5670083Z               "line": 338
2026-06-05T00:45:23.5670491Z             },
2026-06-05T00:45:23.5670903Z             {
2026-06-05T00:45:23.5671732Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5672200Z               "line": 350
2026-06-05T00:45:23.5672608Z             },
2026-06-05T00:45:23.5673026Z             {
2026-06-05T00:45:23.5673831Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5674270Z               "line": 367
2026-06-05T00:45:23.5674830Z             },
2026-06-05T00:45:23.5675547Z             {
2026-06-05T00:45:23.5692235Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T00:45:23.5692705Z               "line": 378
2026-06-05T00:45:23.5693174Z             },
2026-06-05T00:45:23.5693589Z             {
2026-06-05T00:45:23.5694235Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.5694680Z               "line": 770
2026-06-05T00:45:23.5695082Z             },
2026-06-05T00:45:23.5700777Z             {
2026-06-05T00:45:23.5701523Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.5701974Z               "line": 777
2026-06-05T00:45:23.5702458Z             },
2026-06-05T00:45:23.5702862Z             {
2026-06-05T00:45:23.5703521Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.5703979Z               "line": 792
2026-06-05T00:45:23.5704393Z             },
2026-06-05T00:45:23.5704806Z             {
2026-06-05T00:45:23.5705421Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5705864Z               "line": 381
2026-06-05T00:45:23.5706268Z             },
2026-06-05T00:45:23.5706682Z             {
2026-06-05T00:45:23.5707276Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5707722Z               "line": 402
2026-06-05T00:45:23.5708133Z             },
2026-06-05T00:45:23.5708534Z             {
2026-06-05T00:45:23.5709131Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5709621Z               "line": 415
2026-06-05T00:45:23.5710037Z             },
2026-06-05T00:45:23.5710436Z             {
2026-06-05T00:45:23.5711052Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5711499Z               "line": 434
2026-06-05T00:45:23.5711901Z             },
2026-06-05T00:45:23.5712310Z             {
2026-06-05T00:45:23.5712915Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T00:45:23.5713357Z               "line": 461
2026-06-05T00:45:23.5713763Z             },
2026-06-05T00:45:23.5714169Z             {
2026-06-05T00:45:23.5714802Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-05T00:45:23.5715229Z               "line": 32
2026-06-05T00:45:23.5715644Z             },
2026-06-05T00:45:23.5716049Z             {
2026-06-05T00:45:23.5716597Z               "path": "crates/spt/src/cli.rs",
2026-06-05T00:45:23.5717032Z               "line": 3213
2026-06-05T00:45:23.5717446Z             }
2026-06-05T00:45:23.5717854Z           ]
2026-06-05T00:45:23.5718252Z         }
2026-06-05T00:45:23.5718666Z       }
2026-06-05T00:45:23.5719059Z     },
2026-06-05T00:45:23.5719507Z     {
2026-06-05T00:45:23.5719968Z       "id": "REQ-UPD-1",
2026-06-05T00:45:23.5720589Z       "title": "Peer-propagated update over P2P",
2026-06-05T00:45:23.5721061Z       "requiredStages": [
2026-06-05T00:45:23.5721487Z         "impl",
2026-06-05T00:45:23.5721905Z         "unit",
2026-06-05T00:45:23.5722312Z         "int"
2026-06-05T00:45:23.5722721Z       ],
2026-06-05T00:45:23.5723137Z       "stages": {
2026-06-05T00:45:23.5723559Z         "doc": {
2026-06-05T00:45:23.5724028Z           "complete": false,
2026-06-05T00:45:23.5724466Z           "evidence": []
2026-06-05T00:45:23.5724876Z         },
2026-06-05T00:45:23.5725289Z         "impl": {
2026-06-05T00:45:23.5725749Z           "complete": true,
2026-06-05T00:45:23.5726183Z           "evidence": [
2026-06-05T00:45:23.5726595Z             {
2026-06-05T00:45:23.5727261Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.5727693Z               "line": 28
2026-06-05T00:45:23.5728104Z             },
2026-06-05T00:45:23.5728504Z             {
2026-06-05T00:45:23.5729639Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.5730094Z               "line": 74
2026-06-05T00:45:23.5730503Z             },
2026-06-05T00:45:23.5731078Z             {
2026-06-05T00:45:23.5731746Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.5732189Z               "line": 209
2026-06-05T00:45:23.5732590Z             },
2026-06-05T00:45:23.5733000Z             {
2026-06-05T00:45:23.5733641Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5734082Z               "line": 22
2026-06-05T00:45:23.5734496Z             },
2026-06-05T00:45:23.5734899Z             {
2026-06-05T00:45:23.5735552Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5735977Z               "line": 67
2026-06-05T00:45:23.5736385Z             },
2026-06-05T00:45:23.5736785Z             {
2026-06-05T00:45:23.5737430Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5737883Z               "line": 80
2026-06-05T00:45:23.5738291Z             },
2026-06-05T00:45:23.5738701Z             {
2026-06-05T00:45:23.5739378Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5739841Z               "line": 101
2026-06-05T00:45:23.5740250Z             },
2026-06-05T00:45:23.5740659Z             {
2026-06-05T00:45:23.5741291Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T00:45:23.5741718Z               "line": 37
2026-06-05T00:45:23.5742128Z             }
2026-06-05T00:45:23.5742523Z           ]
2026-06-05T00:45:23.5742930Z         },
2026-06-05T00:45:23.5743335Z         "int": {
2026-06-05T00:45:23.5743796Z           "complete": true,
2026-06-05T00:45:23.5744241Z           "evidence": [
2026-06-05T00:45:23.5744636Z             {
2026-06-05T00:45:23.5745306Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T00:45:23.5745742Z               "line": 190
2026-06-05T00:45:23.5746154Z             },
2026-06-05T00:45:23.5746561Z             {
2026-06-05T00:45:23.5747212Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T00:45:23.5747654Z               "line": 732
2026-06-05T00:45:23.5748069Z             }
2026-06-05T00:45:23.5748478Z           ]
2026-06-05T00:45:23.5748874Z         },
2026-06-05T00:45:23.5749334Z         "unit": {
2026-06-05T00:45:23.5749794Z           "complete": true,
2026-06-05T00:45:23.5750233Z           "evidence": [
2026-06-05T00:45:23.5750642Z             {
2026-06-05T00:45:23.5751281Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5751727Z               "line": 120
2026-06-05T00:45:23.5752131Z             },
2026-06-05T00:45:23.5752541Z             {
2026-06-05T00:45:23.5753283Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T00:45:23.5753736Z               "line": 137
2026-06-05T00:45:23.5754152Z             },
2026-06-05T00:45:23.5754555Z             {
2026-06-05T00:45:23.5755258Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T00:45:23.5755700Z               "line": 201
2026-06-05T00:45:23.5756123Z             },
2026-06-05T00:45:23.5756685Z             {
2026-06-05T00:45:23.5757523Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T00:45:23.5757976Z               "line": 92
2026-06-05T00:45:23.5758390Z             },
2026-06-05T00:45:23.5758815Z             {
2026-06-05T00:45:23.5759650Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T00:45:23.5760288Z               "line": 128
2026-06-05T00:45:23.5760720Z             }
2026-06-05T00:45:23.5761131Z           ]
2026-06-05T00:45:23.5761549Z         }
2026-06-05T00:45:23.5761953Z       }
2026-06-05T00:45:23.5762367Z     },
2026-06-05T00:45:23.5762765Z     {
2026-06-05T00:45:23.5763242Z       "id": "REQ-UPD-2",
2026-06-05T00:45:23.5764071Z       "title": "All binaries signature-verified before handoff",
2026-06-05T00:45:23.5764572Z       "requiredStages": [
2026-06-05T00:45:23.5765006Z         "impl",
2026-06-05T00:45:23.5765641Z         "unit"
2026-06-05T00:45:23.5766090Z       ],
2026-06-05T00:45:23.5766532Z       "stages": {
2026-06-05T00:45:23.5766963Z         "doc": {
2026-06-05T00:45:23.5767582Z           "complete": false,
2026-06-05T00:45:23.5768048Z           "evidence": []
2026-06-05T00:45:23.5768468Z         },
2026-06-05T00:45:23.5768897Z         "impl": {
2026-06-05T00:45:23.5769591Z           "complete": true,
2026-06-05T00:45:23.5770186Z           "evidence": [
2026-06-05T00:45:23.5770606Z             {
2026-06-05T00:45:23.5771292Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.5771746Z               "line": 210
2026-06-05T00:45:23.5772167Z             },
2026-06-05T00:45:23.5772579Z             {
2026-06-05T00:45:23.5773242Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T00:45:23.5773676Z               "line": 294
2026-06-05T00:45:23.5774095Z             },
2026-06-05T00:45:23.5774506Z             {
2026-06-05T00:45:23.5775153Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5775600Z               "line": 29
2026-06-05T00:45:23.5776007Z             },
2026-06-05T00:45:23.5776424Z             {
2026-06-05T00:45:23.5777074Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5777519Z               "line": 126
2026-06-05T00:45:23.5777935Z             },
2026-06-05T00:45:23.5778336Z             {
2026-06-05T00:45:23.5784004Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5784584Z               "line": 138
2026-06-05T00:45:23.5785002Z             },
2026-06-05T00:45:23.5785409Z             {
2026-06-05T00:45:23.5786085Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5786532Z               "line": 220
2026-06-05T00:45:23.5786943Z             },
2026-06-05T00:45:23.5787356Z             {
2026-06-05T00:45:23.5787994Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5788443Z               "line": 301
2026-06-05T00:45:23.5788887Z             },
2026-06-05T00:45:23.5789400Z             {
2026-06-05T00:45:23.5790042Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5790494Z               "line": 149
2026-06-05T00:45:23.5790913Z             }
2026-06-05T00:45:23.5791318Z           ]
2026-06-05T00:45:23.5791732Z         },
2026-06-05T00:45:23.5792147Z         "int": {
2026-06-05T00:45:23.5792619Z           "complete": false,
2026-06-05T00:45:23.5793071Z           "evidence": []
2026-06-05T00:45:23.5793472Z         },
2026-06-05T00:45:23.5793891Z         "unit": {
2026-06-05T00:45:23.5794341Z           "complete": true,
2026-06-05T00:45:23.5794781Z           "evidence": [
2026-06-05T00:45:23.5795185Z             {
2026-06-05T00:45:23.5795830Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5796278Z               "line": 386
2026-06-05T00:45:23.5796681Z             },
2026-06-05T00:45:23.5797089Z             {
2026-06-05T00:45:23.5797734Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5798185Z               "line": 431
2026-06-05T00:45:23.5798591Z             },
2026-06-05T00:45:23.5799004Z             {
2026-06-05T00:45:23.5799707Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5800148Z               "line": 445
2026-06-05T00:45:23.5800567Z             },
2026-06-05T00:45:23.5800975Z             {
2026-06-05T00:45:23.5801615Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5802052Z               "line": 456
2026-06-05T00:45:23.5802469Z             },
2026-06-05T00:45:23.5802881Z             {
2026-06-05T00:45:23.5803510Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5803960Z               "line": 532
2026-06-05T00:45:23.5804364Z             },
2026-06-05T00:45:23.5804775Z             {
2026-06-05T00:45:23.5805411Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5805868Z               "line": 334
2026-06-05T00:45:23.5806288Z             },
2026-06-05T00:45:23.5806987Z             {
2026-06-05T00:45:23.5807648Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5808084Z               "line": 347
2026-06-05T00:45:23.5808643Z             },
2026-06-05T00:45:23.5809058Z             {
2026-06-05T00:45:23.5809798Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T00:45:23.5810251Z               "line": 242
2026-06-05T00:45:23.5810656Z             }
2026-06-05T00:45:23.5811075Z           ]
2026-06-05T00:45:23.5811478Z         }
2026-06-05T00:45:23.5811883Z       }
2026-06-05T00:45:23.5812289Z     },
2026-06-05T00:45:23.5812682Z     {
2026-06-05T00:45:23.5813138Z       "id": "REQ-UPD-3",
2026-06-05T00:45:23.5814125Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-05T00:45:23.5814600Z       "requiredStages": [
2026-06-05T00:45:23.5815018Z         "impl",
2026-06-05T00:45:23.5815437Z         "unit",
2026-06-05T00:45:23.5815853Z         "int"
2026-06-05T00:45:23.5816269Z       ],
2026-06-05T00:45:23.5816697Z       "stages": {
2026-06-05T00:45:23.5817107Z         "doc": {
2026-06-05T00:45:23.5817571Z           "complete": false,
2026-06-05T00:45:23.5818031Z           "evidence": []
2026-06-05T00:45:23.5818445Z         },
2026-06-05T00:45:23.5818860Z         "impl": {
2026-06-05T00:45:23.5819361Z           "complete": true,
2026-06-05T00:45:23.5819802Z           "evidence": [
2026-06-05T00:45:23.5820204Z             {
2026-06-05T00:45:23.5820844Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5821270Z               "line": 26
2026-06-05T00:45:23.5821680Z             },
2026-06-05T00:45:23.5822079Z             {
2026-06-05T00:45:23.5822720Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5823170Z               "line": 111
2026-06-05T00:45:23.5823571Z             },
2026-06-05T00:45:23.5823980Z             {
2026-06-05T00:45:23.5824608Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5825071Z               "line": 221
2026-06-05T00:45:23.5825486Z             }
2026-06-05T00:45:23.5825890Z           ]
2026-06-05T00:45:23.5826297Z         },
2026-06-05T00:45:23.5826725Z         "int": {
2026-06-05T00:45:23.5827181Z           "complete": true,
2026-06-05T00:45:23.5827612Z           "evidence": [
2026-06-05T00:45:23.5828022Z             {
2026-06-05T00:45:23.5828722Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-05T00:45:23.5829194Z               "line": 23
2026-06-05T00:45:23.5829615Z             }
2026-06-05T00:45:23.5830017Z           ]
2026-06-05T00:45:23.5830431Z         },
2026-06-05T00:45:23.5830851Z         "unit": {
2026-06-05T00:45:23.5831319Z           "complete": true,
2026-06-05T00:45:23.5831791Z           "evidence": [
2026-06-05T00:45:23.5832195Z             {
2026-06-05T00:45:23.5832836Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5833277Z               "line": 246
2026-06-05T00:45:23.5833692Z             },
2026-06-05T00:45:23.5834106Z             {
2026-06-05T00:45:23.5834737Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5835181Z               "line": 270
2026-06-05T00:45:23.5835597Z             },
2026-06-05T00:45:23.5836005Z             {
2026-06-05T00:45:23.5836632Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5837081Z               "line": 281
2026-06-05T00:45:23.5837485Z             },
2026-06-05T00:45:23.5837899Z             {
2026-06-05T00:45:23.5838535Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T00:45:23.5838963Z               "line": 294
2026-06-05T00:45:23.5839413Z             }
2026-06-05T00:45:23.5839818Z           ]
2026-06-05T00:45:23.5840228Z         }
2026-06-05T00:45:23.5840628Z       }
2026-06-05T00:45:23.5841036Z     },
2026-06-05T00:45:23.5841433Z     {
2026-06-05T00:45:23.5841876Z       "id": "REQ-UPD-4",
2026-06-05T00:45:23.5842942Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-05T00:45:23.5843562Z       "requiredStages": [
2026-06-05T00:45:23.5844002Z         "impl",
2026-06-05T00:45:23.5844416Z         "unit"
2026-06-05T00:45:23.5844823Z       ],
2026-06-05T00:45:23.5845394Z       "stages": {
2026-06-05T00:45:23.5845806Z         "doc": {
2026-06-05T00:45:23.5846280Z           "complete": false,
2026-06-05T00:45:23.5846728Z           "evidence": []
2026-06-05T00:45:23.5847143Z         },
2026-06-05T00:45:23.5847566Z         "impl": {
2026-06-05T00:45:23.5848029Z           "complete": true,
2026-06-05T00:45:23.5848489Z           "evidence": [
2026-06-05T00:45:23.5848905Z             {
2026-06-05T00:45:23.5849601Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5850041Z               "line": 23
2026-06-05T00:45:23.5850459Z             },
2026-06-05T00:45:23.5850861Z             {
2026-06-05T00:45:23.5851515Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5851961Z               "line": 56
2026-06-05T00:45:23.5852381Z             },
2026-06-05T00:45:23.5852793Z             {
2026-06-05T00:45:23.5853435Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5853890Z               "line": 77
2026-06-05T00:45:23.5854294Z             },
2026-06-05T00:45:23.5854704Z             {
2026-06-05T00:45:23.5855372Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T00:45:23.5855814Z               "line": 179
2026-06-05T00:45:23.5856230Z             },
2026-06-05T00:45:23.5856630Z             {
2026-06-05T00:45:23.5857247Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T00:45:23.5857674Z               "line": 98
2026-06-05T00:45:23.5858088Z             },
2026-06-05T00:45:23.5858506Z             {
2026-06-05T00:45:23.5859092Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.5859581Z               "line": 167
2026-06-05T00:45:23.5859986Z             }
2026-06-05T00:45:23.5860392Z           ]
2026-06-05T00:45:23.5860790Z         },
2026-06-05T00:45:23.5865076Z         "int": {
2026-06-05T00:45:23.5865595Z           "complete": false,
2026-06-05T00:45:23.5866032Z           "evidence": []
2026-06-05T00:45:23.5866451Z         },
2026-06-05T00:45:23.5866880Z         "unit": {
2026-06-05T00:45:23.5867335Z           "complete": true,
2026-06-05T00:45:23.5867763Z           "evidence": [
2026-06-05T00:45:23.5868175Z             {
2026-06-05T00:45:23.5868816Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T00:45:23.5869329Z               "line": 322
2026-06-05T00:45:23.5869750Z             },
2026-06-05T00:45:23.5870147Z             {
2026-06-05T00:45:23.5870791Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5871223Z               "line": 102
2026-06-05T00:45:23.5871633Z             },
2026-06-05T00:45:23.5872042Z             {
2026-06-05T00:45:23.5872669Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5873118Z               "line": 117
2026-06-05T00:45:23.5873525Z             },
2026-06-05T00:45:23.5873944Z             {
2026-06-05T00:45:23.5874573Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T00:45:23.5875011Z               "line": 136
2026-06-05T00:45:23.5875436Z             },
2026-06-05T00:45:23.5875831Z             {
2026-06-05T00:45:23.5876424Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T00:45:23.5876856Z               "line": 352
2026-06-05T00:45:23.5877267Z             },
2026-06-05T00:45:23.5877663Z             {
2026-06-05T00:45:23.5878264Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T00:45:23.5878706Z               "line": 495
2026-06-05T00:45:23.5879102Z             }
2026-06-05T00:45:23.5879547Z           ]
2026-06-05T00:45:23.5879940Z         }
2026-06-05T00:45:23.5880343Z       }
2026-06-05T00:45:23.5880732Z     },
2026-06-05T00:45:23.5881138Z     {
2026-06-05T00:45:23.5881586Z       "id": "REQ-UPD-5",
2026-06-05T00:45:23.5882340Z       "title": "spt-core ripple-updates registered adapters",
2026-06-05T00:45:23.5883028Z       "requiredStages": [
2026-06-05T00:45:23.5883462Z         "impl",
2026-06-05T00:45:23.5883876Z         "unit"
2026-06-05T00:45:23.5884270Z       ],
2026-06-05T00:45:23.5884840Z       "stages": {
2026-06-05T00:45:23.5885252Z         "doc": {
2026-06-05T00:45:23.5885707Z           "complete": false,
2026-06-05T00:45:23.5886149Z           "evidence": []
2026-06-05T00:45:23.5886541Z         },
2026-06-05T00:45:23.5886968Z         "impl": {
2026-06-05T00:45:23.5887412Z           "complete": true,
2026-06-05T00:45:23.5887855Z           "evidence": [
2026-06-05T00:45:23.5888264Z             {
2026-06-05T00:45:23.5888966Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5889448Z               "line": 27
2026-06-05T00:45:23.5889855Z             },
2026-06-05T00:45:23.5890263Z             {
2026-06-05T00:45:23.5890980Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5891416Z               "line": 82
2026-06-05T00:45:23.5891839Z             },
2026-06-05T00:45:23.5892238Z             {
2026-06-05T00:45:23.5892952Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5893399Z               "line": 134
2026-06-05T00:45:23.5893810Z             },
2026-06-05T00:45:23.5894218Z             {
2026-06-05T00:45:23.5894844Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5895289Z               "line": 260
2026-06-05T00:45:23.5895692Z             },
2026-06-05T00:45:23.5896099Z             {
2026-06-05T00:45:23.5896724Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T00:45:23.5897172Z               "line": 288
2026-06-05T00:45:23.5897585Z             }
2026-06-05T00:45:23.5897983Z           ]
2026-06-05T00:45:23.5898386Z         },
2026-06-05T00:45:23.5898792Z         "int": {
2026-06-05T00:45:23.5899296Z           "complete": false,
2026-06-05T00:45:23.5899738Z           "evidence": []
2026-06-05T00:45:23.5900142Z         },
2026-06-05T00:45:23.5900570Z         "unit": {
2026-06-05T00:45:23.5901026Z           "complete": true,
2026-06-05T00:45:23.5901509Z           "evidence": [
2026-06-05T00:45:23.5902094Z             {
2026-06-05T00:45:23.5902920Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5903384Z               "line": 216
2026-06-05T00:45:23.5903855Z             },
2026-06-05T00:45:23.5904349Z             {
2026-06-05T00:45:23.5905236Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5905677Z               "line": 230
2026-06-05T00:45:23.5906074Z             },
2026-06-05T00:45:23.5906481Z             {
2026-06-05T00:45:23.5907185Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5907626Z               "line": 244
2026-06-05T00:45:23.5908037Z             },
2026-06-05T00:45:23.5908429Z             {
2026-06-05T00:45:23.5909137Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5909651Z               "line": 258
2026-06-05T00:45:23.5910091Z             },
2026-06-05T00:45:23.5910494Z             {
2026-06-05T00:45:23.5911204Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T00:45:23.5911661Z               "line": 292
2026-06-05T00:45:23.5912062Z             },
2026-06-05T00:45:23.5912467Z             {
2026-06-05T00:45:23.5913107Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T00:45:23.5913544Z               "line": 740
2026-06-05T00:45:23.5913941Z             }
2026-06-05T00:45:23.5914350Z           ]
2026-06-05T00:45:23.5914755Z         }
2026-06-05T00:45:23.5915146Z       }
2026-06-05T00:45:23.5915543Z     }
2026-06-05T00:45:23.5915928Z   ],
2026-06-05T00:45:23.5916359Z   "findings": []
2026-06-05T00:45:23.5916748Z }
2026-06-05T00:45:23.6011055Z ##[group]Run ./traceable-reqs lint || true
2026-06-05T00:45:23.6011633Z [36;1m./traceable-reqs lint || true[0m
2026-06-05T00:45:23.6035205Z shell: /usr/bin/bash -e {0}
2026-06-05T00:45:23.6035657Z ##[endgroup]
2026-06-05T00:45:23.6269741Z Requirement quality findings (24); 135 requirements queued for agent review:
2026-06-05T00:45:23.6272352Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6274618Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-05T00:45:23.6276212Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-05T00:45:23.6278236Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-05T00:45:23.6280529Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-05T00:45:23.6282407Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-05T00:45:23.6284899Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6287207Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6288975Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-05T00:45:23.6291024Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-05T00:45:23.6293594Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6296239Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6298183Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-05T00:45:23.6300115Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-05T00:45:23.6301472Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-05T00:45:23.6302931Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-05T00:45:23.6304991Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6307049Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6309067Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T00:45:23.6310757Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-05T00:45:23.6312206Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-05T00:45:23.6313555Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-05T00:45:23.6314955Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-05T00:45:23.6316302Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-05T00:45:23.6316338Z 
2026-06-05T00:45:23.6316827Z # Requirement quality review
2026-06-05T00:45:23.6316847Z 
2026-06-05T00:45:23.6317991Z You are reviewing 135 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-05T00:45:23.6319127Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-05T00:45:23.6320645Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-05T00:45:23.6321484Z this command's output. Your task is the rubric items below.
2026-06-05T00:45:23.6321505Z 
2026-06-05T00:45:23.6321915Z ## Rubric
2026-06-05T00:45:23.6321934Z 
2026-06-05T00:45:23.6323285Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-05T00:45:23.6324454Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-05T00:45:23.6325690Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-05T00:45:23.6326392Z - **active-voice** — clear subject and active verb.
2026-06-05T00:45:23.6326413Z 
2026-06-05T00:45:23.6327570Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-05T00:45:23.6328016Z clear concerns.
2026-06-05T00:45:23.6328036Z 
2026-06-05T00:45:23.6328464Z ## Requirements
2026-06-05T00:45:23.6328482Z 
2026-06-05T00:45:23.6328913Z ### REQ-ARCH-1
2026-06-05T00:45:23.6329773Z - Title: Many small acyclically-layered crates
2026-06-05T00:45:23.6330397Z - Required stages: impl
2026-06-05T00:45:23.6330417Z 
2026-06-05T00:45:23.6330854Z ### REQ-ARCH-2
2026-06-05T00:45:23.6331670Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-05T00:45:23.6332150Z - Required stages: impl
2026-06-05T00:45:23.6332168Z 
2026-06-05T00:45:23.6332605Z ### REQ-ARCH-3
2026-06-05T00:45:23.6333743Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-05T00:45:23.6334246Z - Required stages: impl, unit
2026-06-05T00:45:23.6334265Z 
2026-06-05T00:45:23.6334679Z ### REQ-ARCH-4
2026-06-05T00:45:23.6335575Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-05T00:45:23.6336063Z - Required stages: impl, unit
2026-06-05T00:45:23.6336095Z 
2026-06-05T00:45:23.6336517Z ### REQ-DAEMON-1
2026-06-05T00:45:23.6337374Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-05T00:45:23.6337886Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6337906Z 
2026-06-05T00:45:23.6338350Z ### REQ-DAEMON-2
2026-06-05T00:45:23.6339019Z - Title: Broker/brain split for seamless self-update
2026-06-05T00:45:23.6339578Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6339599Z 
2026-06-05T00:45:23.6340044Z ### REQ-DAEMON-3
2026-06-05T00:45:23.6340810Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-05T00:45:23.6341344Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6341362Z 
2026-06-05T00:45:23.6341787Z ### REQ-DAEMON-4
2026-06-05T00:45:23.6342375Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-05T00:45:23.6342891Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6342910Z 
2026-06-05T00:45:23.6343333Z ### REQ-STORE-1
2026-06-05T00:45:23.6348924Z - 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-05T00:45:23.6349455Z - Required stages: impl, unit
2026-06-05T00:45:23.6349488Z 
2026-06-05T00:45:23.6349927Z ### REQ-MANIFEST-1
2026-06-05T00:45:23.6350911Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-05T00:45:23.6351418Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6351436Z 
2026-06-05T00:45:23.6351895Z ### REQ-SEAM-SPAWN
2026-06-05T00:45:23.6352375Z - Title: spawn-session seam
2026-06-05T00:45:23.6352875Z - Required stages: impl, unit
2026-06-05T00:45:23.6352894Z 
2026-06-05T00:45:23.6353360Z ### REQ-SEAM-POSTSPAWN
2026-06-05T00:45:23.6354007Z - Title: post-spawn / api bind seam with boot nonce
2026-06-05T00:45:23.6354501Z - Required stages: impl, unit
2026-06-05T00:45:23.6354520Z 
2026-06-05T00:45:23.6354971Z ### REQ-SEAM-PSYCHE
2026-06-05T00:45:23.6355661Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-05T00:45:23.6356390Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6356414Z 
2026-06-05T00:45:23.6356869Z ### REQ-SEAM-HISTORY
2026-06-05T00:45:23.6357837Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-05T00:45:23.6358344Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6358362Z 
2026-06-05T00:45:23.6358820Z ### REQ-SEAM-ACTIVITY
2026-06-05T00:45:23.6359829Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-05T00:45:23.6360459Z - Required stages: impl, unit
2026-06-05T00:45:23.6360481Z 
2026-06-05T00:45:23.6360938Z ### REQ-SEAM-INJECT
2026-06-05T00:45:23.6361770Z - Title: inject-input methods configurable per activity-state
2026-06-05T00:45:23.6362267Z - Required stages: impl, unit
2026-06-05T00:45:23.6362286Z 
2026-06-05T00:45:23.6371195Z ### REQ-SEAM-RESUME
2026-06-05T00:45:23.6372341Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-05T00:45:23.6372847Z - Required stages: impl, unit
2026-06-05T00:45:23.6372876Z 
2026-06-05T00:45:23.6373379Z ### REQ-SEAM-CAPABILITY
2026-06-05T00:45:23.6374098Z - Title: Hostable endpoint-types capability declaration
2026-06-05T00:45:23.6374593Z - Required stages: impl, unit
2026-06-05T00:45:23.6374612Z 
2026-06-05T00:45:23.6375058Z ### REQ-SEAM-UPDATE
2026-06-05T00:45:23.6375902Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-05T00:45:23.6376398Z - Required stages: impl, unit
2026-06-05T00:45:23.6376417Z 
2026-06-05T00:45:23.6376856Z ### REQ-API-1
2026-06-05T00:45:23.6377734Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-05T00:45:23.6378240Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6378259Z 
2026-06-05T00:45:23.6378686Z ### REQ-API-2
2026-06-05T00:45:23.6379849Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-05T00:45:23.6380368Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6380389Z 
2026-06-05T00:45:23.6380812Z ### REQ-API-3
2026-06-05T00:45:23.6381481Z - Title: commune/signoff are file-drops, not commands
2026-06-05T00:45:23.6382007Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6382026Z 
2026-06-05T00:45:23.6382453Z ### REQ-START-1
2026-06-05T00:45:23.6383484Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-05T00:45:23.6383980Z - Required stages: impl, unit
2026-06-05T00:45:23.6384001Z 
2026-06-05T00:45:23.6384424Z ### REQ-START-2
2026-06-05T00:45:23.6385105Z - Title: Harness-hosted startup: api seed then listen
2026-06-05T00:45:23.6385623Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6385642Z 
2026-06-05T00:45:23.6386072Z ### REQ-START-3
2026-06-05T00:45:23.6386963Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-05T00:45:23.6387463Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6387482Z 
2026-06-05T00:45:23.6387912Z ### REQ-START-4
2026-06-05T00:45:23.6388570Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-05T00:45:23.6389064Z - Required stages: impl, unit
2026-06-05T00:45:23.6389084Z 
2026-06-05T00:45:23.6389889Z ### REQ-EP-1
2026-06-05T00:45:23.6390529Z - Title: Day-one endpoint types; open type system
2026-06-05T00:45:23.6391027Z - Required stages: impl, unit
2026-06-05T00:45:23.6391046Z 
2026-06-05T00:45:23.6391466Z ### REQ-EP-2
2026-06-05T00:45:23.6392325Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-05T00:45:23.6392821Z - Required stages: impl, unit
2026-06-05T00:45:23.6392840Z 
2026-06-05T00:45:23.6393264Z ### REQ-EP-3
2026-06-05T00:45:23.6394245Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-05T00:45:23.6394723Z - Required stages: impl, unit
2026-06-05T00:45:23.6394741Z 
2026-06-05T00:45:23.6395164Z ### REQ-EP-4
2026-06-05T00:45:23.6395881Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-05T00:45:23.6396381Z - Required stages: impl, unit
2026-06-05T00:45:23.6396400Z 
2026-06-05T00:45:23.6396822Z ### REQ-EP-5
2026-06-05T00:45:23.6401442Z - 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-05T00:45:23.6401965Z - Required stages: impl, unit
2026-06-05T00:45:23.6401985Z 
2026-06-05T00:45:23.6402422Z ### REQ-INST-1
2026-06-05T00:45:23.6403218Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-05T00:45:23.6403674Z - Required stages: 
2026-06-05T00:45:23.6403872Z 
2026-06-05T00:45:23.6404303Z ### REQ-INST-2
2026-06-05T00:45:23.6404874Z - Title: Per-node files, synced Psyche mind
2026-06-05T00:45:23.6405358Z - Required stages: impl, unit
2026-06-05T00:45:23.6405390Z 
2026-06-05T00:45:23.6405806Z ### REQ-INST-3
2026-06-05T00:45:23.6406539Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-05T00:45:23.6407042Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6407063Z 
2026-06-05T00:45:23.6407492Z ### REQ-INST-4
2026-06-05T00:45:23.6408412Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-05T00:45:23.6408903Z - Required stages: impl, unit
2026-06-05T00:45:23.6408922Z 
2026-06-05T00:45:23.6409395Z ### REQ-INST-5
2026-06-05T00:45:23.6410299Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-05T00:45:23.6410810Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6410829Z 
2026-06-05T00:45:23.6411241Z ### REQ-INST-6
2026-06-05T00:45:23.6412210Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-05T00:45:23.6412674Z - Required stages: 
2026-06-05T00:45:23.6412693Z 
2026-06-05T00:45:23.6413117Z ### REQ-INST-7
2026-06-05T00:45:23.6413777Z - Title: Subnet registry + bare-id resolution policy
2026-06-05T00:45:23.6414273Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6414292Z 
2026-06-05T00:45:23.6414718Z ### REQ-INST-8
2026-06-05T00:45:23.6415477Z - Title: Remote-control mode distinct from local operation
2026-06-05T00:45:23.6415974Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6415991Z 
2026-06-05T00:45:23.6416423Z ### REQ-INST-9
2026-06-05T00:45:23.6417384Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-05T00:45:23.6417876Z - Required stages: impl, unit
2026-06-05T00:45:23.6417895Z 
2026-06-05T00:45:23.6418318Z ### REQ-INST-10
2026-06-05T00:45:23.6419464Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-05T00:45:23.6419961Z - Required stages: impl, unit
2026-06-05T00:45:23.6419992Z 
2026-06-05T00:45:23.6420413Z ### REQ-INST-11
2026-06-05T00:45:23.6421556Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-05T00:45:23.6422037Z - Required stages: impl, unit
2026-06-05T00:45:23.6422070Z 
2026-06-05T00:45:23.6422493Z ### REQ-INST-12
2026-06-05T00:45:23.6424162Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-05T00:45:23.6424644Z - Required stages: impl, unit
2026-06-05T00:45:23.6424664Z 
2026-06-05T00:45:23.6425110Z ### REQ-INST-13
2026-06-05T00:45:23.6426050Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-05T00:45:23.6426546Z - Required stages: impl, unit
2026-06-05T00:45:23.6426564Z 
2026-06-05T00:45:23.6426994Z ### REQ-INST-14
2026-06-05T00:45:23.6429252Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-05T00:45:23.6429783Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6429800Z 
2026-06-05T00:45:23.6430221Z ### REQ-INST-15
2026-06-05T00:45:23.6434814Z - 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-05T00:45:23.6435331Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6435348Z 
2026-06-05T00:45:23.6435766Z ### REQ-REACH-1
2026-06-05T00:45:23.6436643Z - Title: Off-node remote-drive detection + file transfer
2026-06-05T00:45:23.6437177Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6437196Z 
2026-06-05T00:45:23.6437619Z ### REQ-REACH-2
2026-06-05T00:45:23.6438388Z - Title: Remote command execution (deferred, consent-gated)
2026-06-05T00:45:23.6438829Z - Required stages: 
2026-06-05T00:45:23.6438848Z 
2026-06-05T00:45:23.6439314Z ### REQ-MSG-1
2026-06-05T00:45:23.6442193Z - 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-05T00:45:23.6442707Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6442725Z 
2026-06-05T00:45:23.6443152Z ### REQ-MSG-2
2026-06-05T00:45:23.6444657Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-05T00:45:23.6445154Z - Required stages: impl, unit
2026-06-05T00:45:23.6445173Z 
2026-06-05T00:45:23.6445603Z ### REQ-MSG-3
2026-06-05T00:45:23.6447877Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-05T00:45:23.6448395Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6448416Z 
2026-06-05T00:45:23.6448862Z ### REQ-NODE-IDENTITY
2026-06-05T00:45:23.6450136Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-05T00:45:23.6450653Z - Required stages: impl, unit
2026-06-05T00:45:23.6450671Z 
2026-06-05T00:45:23.6451085Z ### REQ-NET-1
2026-06-05T00:45:23.6452034Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-05T00:45:23.6452877Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6452897Z 
2026-06-05T00:45:23.6453321Z ### REQ-NET-2
2026-06-05T00:45:23.6454254Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-05T00:45:23.6454713Z - Required stages: impl
2026-06-05T00:45:23.6454731Z 
2026-06-05T00:45:23.6455155Z ### REQ-NET-3
2026-06-05T00:45:23.6455996Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-05T00:45:23.6456495Z - Required stages: impl, unit
2026-06-05T00:45:23.6456516Z 
2026-06-05T00:45:23.6456946Z ### REQ-PAIR-1
2026-06-05T00:45:23.6457449Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-05T00:45:23.6457955Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6457973Z 
2026-06-05T00:45:23.6458395Z ### REQ-PAIR-2
2026-06-05T00:45:23.6459080Z - Title: Local trust store with TOFU + warn-on-change
2026-06-05T00:45:23.6459606Z - Required stages: impl, unit
2026-06-05T00:45:23.6459637Z 
2026-06-05T00:45:23.6460063Z ### REQ-PAIR-3
2026-06-05T00:45:23.6460795Z - Title: Fetch current pairing code from any paired node
2026-06-05T00:45:23.6461275Z - Required stages: impl, unit
2026-06-05T00:45:23.6461294Z 
2026-06-05T00:45:23.6461721Z ### REQ-PAIR-4
2026-06-05T00:45:23.6462242Z - Title: Subnet naming on first pairing
2026-06-05T00:45:23.6462740Z - Required stages: impl, unit
2026-06-05T00:45:23.6462757Z 
2026-06-05T00:45:23.6463201Z ### REQ-PAIR-5
2026-06-05T00:45:23.6464926Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-05T00:45:23.6465433Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6465452Z 
2026-06-05T00:45:23.6465877Z ### REQ-PAIR-6
2026-06-05T00:45:23.6467334Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-05T00:45:23.6467841Z - Required stages: impl, unit
2026-06-05T00:45:23.6467860Z 
2026-06-05T00:45:23.6468283Z ### REQ-PAIR-7
2026-06-05T00:45:23.6469104Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-05T00:45:23.6469590Z - Required stages: 
2026-06-05T00:45:23.6469607Z 
2026-06-05T00:45:23.6470027Z ### REQ-SEC-1
2026-06-05T00:45:23.6472428Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-05T00:45:23.6472908Z - Required stages: impl, unit
2026-06-05T00:45:23.6473082Z 
2026-06-05T00:45:23.6473531Z ### REQ-NOTIF-1
2026-06-05T00:45:23.6475682Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-05T00:45:23.6476200Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6476219Z 
2026-06-05T00:45:23.6476647Z ### REQ-NOTIF-2
2026-06-05T00:45:23.6478133Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-05T00:45:23.6478800Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6478819Z 
2026-06-05T00:45:23.6479266Z ### REQ-UPD-1
2026-06-05T00:45:23.6479834Z - Title: Peer-propagated update over P2P
2026-06-05T00:45:23.6480347Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6480365Z 
2026-06-05T00:45:23.6480779Z ### REQ-UPD-2
2026-06-05T00:45:23.6481499Z - Title: All binaries signature-verified before handoff
2026-06-05T00:45:23.6481982Z - Required stages: impl, unit
2026-06-05T00:45:23.6482000Z 
2026-06-05T00:45:23.6482436Z ### REQ-UPD-3
2026-06-05T00:45:23.6483341Z - Title: No endpoint process terminates/suspends during self-update
2026-06-05T00:45:23.6483842Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6483858Z 
2026-06-05T00:45:23.6484284Z ### REQ-UPD-4
2026-06-05T00:45:23.6485236Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-05T00:45:23.6485731Z - Required stages: impl, unit
2026-06-05T00:45:23.6485761Z 
2026-06-05T00:45:23.6486191Z ### REQ-UPD-5
2026-06-05T00:45:23.6486869Z - Title: spt-core ripple-updates registered adapters
2026-06-05T00:45:23.6487354Z - Required stages: impl, unit
2026-06-05T00:45:23.6487372Z 
2026-06-05T00:45:23.6487790Z ### REQ-TERM-1
2026-06-05T00:45:23.6488675Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-05T00:45:23.6489190Z - Required stages: impl, unit
2026-06-05T00:45:23.6489209Z 
2026-06-05T00:45:23.6489640Z ### REQ-TERM-2
2026-06-05T00:45:23.6490598Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-05T00:45:23.6491089Z - Required stages: impl, unit
2026-06-05T00:45:23.6491108Z 
2026-06-05T00:45:23.6491535Z ### REQ-TERM-3
2026-06-05T00:45:23.6492205Z - Title: Byte-stream remote terminal streaming for v1
2026-06-05T00:45:23.6492696Z - Required stages: impl, unit
2026-06-05T00:45:23.6492714Z 
2026-06-05T00:45:23.6493142Z ### REQ-TERM-4
2026-06-05T00:45:23.6495250Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-05T00:45:23.6495776Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6495795Z 
2026-06-05T00:45:23.6496214Z ### REQ-FRONT-1
2026-06-05T00:45:23.6497121Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-05T00:45:23.6497572Z - Required stages: 
2026-06-05T00:45:23.6497591Z 
2026-06-05T00:45:23.6498019Z ### REQ-INSTALL-1
2026-06-05T00:45:23.6499045Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-05T00:45:23.6499537Z - Required stages: 
2026-06-05T00:45:23.6499555Z 
2026-06-05T00:45:23.6500003Z ### REQ-INSTALL-2
2026-06-05T00:45:23.6500685Z - Title: Marketplace-repackaging-friendly install
2026-06-05T00:45:23.6501132Z - Required stages: 
2026-06-05T00:45:23.6501151Z 
2026-06-05T00:45:23.6501596Z ### REQ-INSTALL-3
2026-06-05T00:45:23.6502270Z - Title: Idempotent + interactive-optional first run
2026-06-05T00:45:23.6502723Z - Required stages: 
2026-06-05T00:45:23.6502752Z 
2026-06-05T00:45:23.6503193Z ### REQ-INSTALL-4
2026-06-05T00:45:23.6507195Z - 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-05T00:45:23.6507691Z - Required stages: impl, unit
2026-06-05T00:45:23.6507710Z 
2026-06-05T00:45:23.6508143Z ### REQ-MIGRATE-1
2026-06-05T00:45:23.6509028Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-05T00:45:23.6509660Z - Required stages: 
2026-06-05T00:45:23.6509682Z 
2026-06-05T00:45:23.6510116Z ### REQ-INFRA-1
2026-06-05T00:45:23.6511063Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-05T00:45:23.6511504Z - Required stages: 
2026-06-05T00:45:23.6511523Z 
2026-06-05T00:45:23.6511961Z ### REQ-DOCS-1
2026-06-05T00:45:23.6513015Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-05T00:45:23.6513616Z - Required stages: 
2026-06-05T00:45:23.6513635Z 
2026-06-05T00:45:23.6514067Z ### REQ-DOCS-2
2026-06-05T00:45:23.6514879Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-05T00:45:23.6515328Z - Required stages: 
2026-06-05T00:45:23.6515345Z 
2026-06-05T00:45:23.6515765Z ### REQ-DOCS-3
2026-06-05T00:45:23.6516768Z - Title: Diátaxis structure; one canonical way to do X
2026-06-05T00:45:23.6517225Z - Required stages: 
2026-06-05T00:45:23.6517243Z 
2026-06-05T00:45:23.6517658Z ### REQ-DOCS-4
2026-06-05T00:45:23.6518717Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-05T00:45:23.6519212Z - Required stages: 
2026-06-05T00:45:23.6519231Z 
2026-06-05T00:45:23.6519670Z ### REQ-DOCS-5
2026-06-05T00:45:23.6520692Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-05T00:45:23.6521132Z - Required stages: 
2026-06-05T00:45:23.6521151Z 
2026-06-05T00:45:23.6521690Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-05T00:45:23.6522710Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-05T00:45:23.6523204Z - Required stages: impl, unit
2026-06-05T00:45:23.6523223Z 
2026-06-05T00:45:23.6523752Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-05T00:45:23.6524504Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-05T00:45:23.6525002Z - Required stages: impl, unit
2026-06-05T00:45:23.6525020Z 
2026-06-05T00:45:23.6525518Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-05T00:45:23.6526175Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-05T00:45:23.6526683Z - Required stages: impl, unit
2026-06-05T00:45:23.6526703Z 
2026-06-05T00:45:23.6527193Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-05T00:45:23.6528162Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-05T00:45:23.6528643Z - Required stages: impl, unit
2026-06-05T00:45:23.6528662Z 
2026-06-05T00:45:23.6529190Z ### REQ-HAZARD-WORKER-PATH
2026-06-05T00:45:23.6530144Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-05T00:45:23.6530652Z - Required stages: impl, unit
2026-06-05T00:45:23.6530670Z 
2026-06-05T00:45:23.6531204Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-05T00:45:23.6532197Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-05T00:45:23.6532651Z - Required stages: 
2026-06-05T00:45:23.6532669Z 
2026-06-05T00:45:23.6533165Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-05T00:45:23.6533821Z - Title: Stdin session_id precedence over env (2.2)
2026-06-05T00:45:23.6534282Z - Required stages: 
2026-06-05T00:45:23.6534312Z 
2026-06-05T00:45:23.6534833Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-05T00:45:23.6535665Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-05T00:45:23.6536144Z - Required stages: impl, unit
2026-06-05T00:45:23.6536162Z 
2026-06-05T00:45:23.6536659Z ### REQ-HAZARD-GEN-START-NOW
2026-06-05T00:45:23.6537391Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-05T00:45:23.6537883Z - Required stages: impl, int
2026-06-05T00:45:23.6537900Z 
2026-06-05T00:45:23.6538423Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-05T00:45:23.6539280Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-05T00:45:23.6539787Z - Required stages: impl, unit
2026-06-05T00:45:23.6539806Z 
2026-06-05T00:45:23.6540362Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-05T00:45:23.6541209Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-05T00:45:23.6541699Z - Required stages: impl, unit
2026-06-05T00:45:23.6541717Z 
2026-06-05T00:45:23.6542413Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-05T00:45:23.6543412Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-05T00:45:23.6543907Z - Required stages: impl, unit
2026-06-05T00:45:23.6543925Z 
2026-06-05T00:45:23.6544458Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-05T00:45:23.6545249Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-05T00:45:23.6545731Z - Required stages: impl, unit
2026-06-05T00:45:23.6545914Z 
2026-06-05T00:45:23.6546466Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-05T00:45:23.6547380Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-05T00:45:23.6547873Z - Required stages: impl, unit
2026-06-05T00:45:23.6547890Z 
2026-06-05T00:45:23.6548430Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-05T00:45:23.6549638Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-05T00:45:23.6550139Z - Required stages: impl, unit
2026-06-05T00:45:23.6550156Z 
2026-06-05T00:45:23.6550645Z ### REQ-HAZARD-ID-CHARSET
2026-06-05T00:45:23.6552016Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-05T00:45:23.6552512Z - Required stages: impl, unit
2026-06-05T00:45:23.6552530Z 
2026-06-05T00:45:23.6553050Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-05T00:45:23.6554058Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-05T00:45:23.6554568Z - Required stages: impl, unit
2026-06-05T00:45:23.6554585Z 
2026-06-05T00:45:23.6555103Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-05T00:45:23.6556533Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-05T00:45:23.6557018Z - Required stages: impl, unit
2026-06-05T00:45:23.6557037Z 
2026-06-05T00:45:23.6557581Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-05T00:45:23.6559575Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-05T00:45:23.6560097Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6560116Z 
2026-06-05T00:45:23.6560658Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-05T00:45:23.6562949Z - 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-05T00:45:23.6563449Z - Required stages: impl, unit
2026-06-05T00:45:23.6563468Z 
2026-06-05T00:45:23.6564023Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-05T00:45:23.6564655Z - Title: Deferred rows survive poll drain (4.4)
2026-06-05T00:45:23.6565152Z - Required stages: impl, unit
2026-06-05T00:45:23.6565171Z 
2026-06-05T00:45:23.6565672Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-05T00:45:23.6566318Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-05T00:45:23.6566817Z - Required stages: impl, unit
2026-06-05T00:45:23.6566835Z 
2026-06-05T00:45:23.6567357Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-05T00:45:23.6573505Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-05T00:45:23.6574209Z - Required stages: impl, unit
2026-06-05T00:45:23.6574236Z 
2026-06-05T00:45:23.6574741Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-05T00:45:23.6575604Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-05T00:45:23.6576101Z - Required stages: impl, unit
2026-06-05T00:45:23.6576120Z 
2026-06-05T00:45:23.6576644Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-05T00:45:23.6577392Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-05T00:45:23.6577912Z - Required stages: impl, unit
2026-06-05T00:45:23.6577932Z 
2026-06-05T00:45:23.6578431Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-05T00:45:23.6579299Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-05T00:45:23.6579791Z - Required stages: impl, unit
2026-06-05T00:45:23.6579810Z 
2026-06-05T00:45:23.6580347Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-05T00:45:23.6581334Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-05T00:45:23.6581819Z - Required stages: impl, unit
2026-06-05T00:45:23.6582104Z 
2026-06-05T00:45:23.6582620Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-05T00:45:23.6583646Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-05T00:45:23.6584143Z - Required stages: impl, unit
2026-06-05T00:45:23.6584162Z 
2026-06-05T00:45:23.6584699Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-05T00:45:23.6585584Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-05T00:45:23.6586234Z - Required stages: impl, unit
2026-06-05T00:45:23.6586253Z 
2026-06-05T00:45:23.6586801Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-05T00:45:23.6587538Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-05T00:45:23.6588038Z - Required stages: impl, unit
2026-06-05T00:45:23.6588059Z 
2026-06-05T00:45:23.6588615Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-05T00:45:23.6589851Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-05T00:45:23.6590339Z - Required stages: impl, unit
2026-06-05T00:45:23.6590357Z 
2026-06-05T00:45:23.6590942Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-05T00:45:23.6594509Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-05T00:45:23.6595004Z - Required stages: impl, unit
2026-06-05T00:45:23.6595021Z 
2026-06-05T00:45:23.6595584Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-05T00:45:23.6602099Z - Title: Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)
2026-06-05T00:45:23.6602600Z - Required stages: impl, unit
2026-06-05T00:45:23.6602620Z 
2026-06-05T00:45:23.6603106Z ### REQ-HAZARD-CONPTY-DSR
2026-06-05T00:45:23.6604286Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-05T00:45:23.6604786Z - Required stages: impl, unit
2026-06-05T00:45:23.6604803Z 
2026-06-05T00:45:23.6605304Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-05T00:45:23.6606461Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-05T00:45:23.6606957Z - Required stages: impl, unit
2026-06-05T00:45:23.6607005Z 
2026-06-05T00:45:23.6607526Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-05T00:45:23.6609029Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-05T00:45:23.6609592Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6609611Z 
2026-06-05T00:45:23.6610117Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-05T00:45:23.6611584Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-05T00:45:23.6612066Z - Required stages: impl, unit
2026-06-05T00:45:23.6612085Z 
2026-06-05T00:45:23.6612652Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-05T00:45:23.6615234Z - 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-05T00:45:23.6615743Z - Required stages: impl, unit, int
2026-06-05T00:45:23.6615761Z 
2026-06-05T00:45:23.6616311Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-05T00:45:23.6620960Z - 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-05T00:45:23.6621475Z - Required stages: impl, unit
2026-06-05T00:45:23.6621497Z 
2026-06-05T00:45:23.6622062Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-05T00:45:23.6626393Z - 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-05T00:45:23.6626913Z - Required stages: impl, unit
2026-06-05T00:45:23.6626935Z 
2026-06-05T00:45:23.6627477Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-05T00:45:23.6631344Z - 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-05T00:45:23.6632022Z - Required stages: impl, unit
2026-06-05T00:45:23.6632040Z 
2026-06-05T00:45:23.6632557Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-05T00:45:23.6636019Z - 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-05T00:45:23.6636512Z - Required stages: impl, unit
2026-06-05T00:45:23.6636530Z 
2026-06-05T00:45:23.6637057Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-05T00:45:23.6642339Z - 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-05T00:45:23.6642840Z - Required stages: impl, unit
2026-06-05T00:45:23.6642860Z 
2026-06-05T00:45:23.6643399Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-05T00:45:23.6647945Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-05T00:45:23.6648452Z - Required stages: doc, impl, unit
2026-06-05T00:45:23.6648482Z 
2026-06-05T00:45:23.6648912Z ### REQ-CONSENT-1
2026-06-05T00:45:23.6654930Z - Title: Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)
2026-06-05T00:45:23.6655422Z - Required stages: impl, unit
2026-06-05T00:45:23.6655442Z 
2026-06-05T00:45:23.6655876Z ### REQ-CONSENT-2
2026-06-05T00:45:23.6661423Z - Title: Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)
2026-06-05T00:45:23.6661947Z - Required stages: impl, unit
2026-06-05T00:45:23.6661968Z 
2026-06-05T00:45:23.6662404Z ### REQ-PRES-1
2026-06-05T00:45:23.6670621Z - Title: Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)
2026-06-05T00:45:23.6671078Z - Required stages: 
2026-06-05T00:45:23.6671098Z 
2026-06-05T00:45:23.6671551Z ### REQ-SHELL-1
2026-06-05T00:45:23.6677479Z - Title: Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)
2026-06-05T00:45:23.6677982Z - Required stages: impl, unit
2026-06-05T00:45:23.6678003Z 
2026-06-05T00:45:23.6678431Z ### REQ-SHELL-2
2026-06-05T00:45:23.6687532Z - Title: Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)
2026-06-05T00:45:23.6688184Z - Required stages: impl, unit
2026-06-05T00:45:23.6688206Z 
2026-06-05T00:45:23.6688662Z ## How to report back
2026-06-05T00:45:23.6688680Z 
2026-06-05T00:45:23.6689611Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-05T00:45:23.6689633Z 
2026-06-05T00:45:23.6690039Z     {
2026-06-05T00:45:23.6690544Z       "code": "requirement_quality",
2026-06-05T00:45:23.6691030Z       "requirementId": "REQ-...",
2026-06-05T00:45:23.6691931Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-05T00:45:23.6692445Z       "message": "<short reason>",
2026-06-05T00:45:23.6693055Z       "suggestedRevision": "<optional rewrite>"
2026-06-05T00:45:23.6693456Z     }
2026-06-05T00:45:23.6693474Z 
2026-06-05T00:45:23.6694487Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-05T00:45:23.6695239Z deterministic findings above don't need to be repeated.
2026-06-05T00:45:23.6993959Z Post job cleanup.
2026-06-05T00:45:23.8316493Z [command]/usr/bin/git version
2026-06-05T00:45:23.8382612Z git version 2.34.1
2026-06-05T00:45:23.8442913Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/baea44b5-5a82-48f3-85f1-1b7b32fed17d/.gitconfig'
2026-06-05T00:45:23.8470278Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/baea44b5-5a82-48f3-85f1-1b7b32fed17d' before making global git config changes
2026-06-05T00:45:23.8475779Z Adding repository directory to the temporary git global config as a safe directory
2026-06-05T00:45:23.8480135Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-05T00:45:23.8534239Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-05T00:45:23.8591616Z [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-05T00:45:23.8880594Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-05T00:45:23.8915246Z http.https://github.com/.extraheader
2026-06-05T00:45:23.8931963Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-05T00:45:23.8983495Z [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-05T00:45:23.9261913Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-05T00:45:23.9310553Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-05T00:45:23.9803371Z Cleaning up orphan processes
