﻿2026-06-05T02:56:32.7281415Z Current runner version: '2.334.0'
2026-06-05T02:56:32.7290802Z Runner name: 'gravity'
2026-06-05T02:56:32.7291983Z Runner group name: 'Default'
2026-06-05T02:56:32.7293364Z Machine name: 'gravity-linux'
2026-06-05T02:56:32.7297314Z ##[group]GITHUB_TOKEN Permissions
2026-06-05T02:56:32.7301401Z Contents: read
2026-06-05T02:56:32.7302257Z Metadata: read
2026-06-05T02:56:32.7303146Z Packages: read
2026-06-05T02:56:32.7303908Z ##[endgroup]
2026-06-05T02:56:32.7307246Z Secret source: Actions
2026-06-05T02:56:32.7308448Z Prepare workflow directory
2026-06-05T02:56:32.8064426Z Prepare all required actions
2026-06-05T02:56:32.8125100Z Getting action download info
2026-06-05T02:56:33.3708857Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-05T02:56:34.2116180Z Complete job name: traceability
2026-06-05T02:56:34.3477654Z ##[group]Run actions/checkout@v5
2026-06-05T02:56:34.3479992Z with:
2026-06-05T02:56:34.3480832Z   repository: SaberMage/spt-core
2026-06-05T02:56:34.3487788Z   token: ***
2026-06-05T02:56:34.3488584Z   ssh-strict: true
2026-06-05T02:56:34.3489627Z   ssh-user: git
2026-06-05T02:56:34.3490596Z   persist-credentials: true
2026-06-05T02:56:34.3491479Z   clean: true
2026-06-05T02:56:34.3492287Z   sparse-checkout-cone-mode: true
2026-06-05T02:56:34.3493200Z   fetch-depth: 1
2026-06-05T02:56:34.3494000Z   fetch-tags: false
2026-06-05T02:56:34.3494833Z   show-progress: true
2026-06-05T02:56:34.3495633Z   lfs: false
2026-06-05T02:56:34.3496404Z   submodules: false
2026-06-05T02:56:34.3497244Z   set-safe-directory: true
2026-06-05T02:56:34.3498822Z ##[endgroup]
2026-06-05T02:56:34.5054152Z Syncing repository: SaberMage/spt-core
2026-06-05T02:56:34.5058149Z ##[group]Getting Git version info
2026-06-05T02:56:34.5059955Z Working directory is '/home/david/actions-runner/_work/spt-core/spt-core'
2026-06-05T02:56:34.5062057Z [command]/usr/bin/git version
2026-06-05T02:56:34.5063019Z git version 2.34.1
2026-06-05T02:56:34.5066260Z ##[endgroup]
2026-06-05T02:56:34.5076892Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/14d7a5c5-e4d2-4854-bd3b-6415dbc43d25/.gitconfig'
2026-06-05T02:56:34.5082012Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/14d7a5c5-e4d2-4854-bd3b-6415dbc43d25' before making global git config changes
2026-06-05T02:56:34.5085339Z Adding repository directory to the temporary git global config as a safe directory
2026-06-05T02:56:34.5090205Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-05T02:56:34.5143145Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-05T02:56:34.5172729Z https://github.com/SaberMage/spt-core
2026-06-05T02:56:34.5191593Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-05T02:56:34.5197651Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-05T02:56:34.5226985Z refs/heads/dev-freeform
2026-06-05T02:56:34.5242249Z [command]/usr/bin/git checkout --detach
2026-06-05T02:56:34.5298772Z HEAD is now at 10e2dcc feat(daemon,net,cli): M5-D6b/c presence MRA API + cross-node redirect (REQ-PRES-1)
2026-06-05T02:56:34.5356134Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-05T02:56:34.5403483Z Deleted branch dev-freeform (was 10e2dcc).
2026-06-05T02:56:34.5452430Z ##[endgroup]
2026-06-05T02:56:34.5455655Z [command]/usr/bin/git submodule status
2026-06-05T02:56:34.5691753Z ##[group]Cleaning the repository
2026-06-05T02:56:34.5695734Z [command]/usr/bin/git clean -ffdx
2026-06-05T02:56:34.5734206Z Removing traceable-reqs
2026-06-05T02:56:34.5746463Z [command]/usr/bin/git reset --hard HEAD
2026-06-05T02:56:34.5804322Z HEAD is now at 10e2dcc feat(daemon,net,cli): M5-D6b/c presence MRA API + cross-node redirect (REQ-PRES-1)
2026-06-05T02:56:34.5810227Z ##[endgroup]
2026-06-05T02:56:34.5813056Z ##[group]Disabling automatic garbage collection
2026-06-05T02:56:34.5819536Z [command]/usr/bin/git config --local gc.auto 0
2026-06-05T02:56:34.5857849Z ##[endgroup]
2026-06-05T02:56:34.5860018Z ##[group]Setting up auth
2026-06-05T02:56:34.5868555Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-05T02:56:34.5909820Z [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-05T02:56:34.6151077Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-05T02:56:34.6190817Z [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-05T02:56:34.6438713Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-05T02:56:34.6481401Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-05T02:56:34.6729959Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-05T02:56:34.6801057Z ##[endgroup]
2026-06-05T02:56:34.6803079Z ##[group]Fetching the repository
2026-06-05T02:56:34.6816242Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +1ea2a35c868cf1e958918cd968ed4974265a53b3:refs/remotes/origin/dev-freeform
2026-06-05T02:56:35.3338318Z From https://github.com/SaberMage/spt-core
2026-06-05T02:56:35.3340067Z  + 10e2dcc...1ea2a35 1ea2a35c868cf1e958918cd968ed4974265a53b3 -> origin/dev-freeform  (forced update)
2026-06-05T02:56:35.3364770Z ##[endgroup]
2026-06-05T02:56:35.3365949Z ##[group]Determining the checkout info
2026-06-05T02:56:35.3367324Z ##[endgroup]
2026-06-05T02:56:35.3374533Z [command]/usr/bin/git sparse-checkout disable
2026-06-05T02:56:35.3424323Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-05T02:56:35.3460287Z ##[group]Checking out the ref
2026-06-05T02:56:35.3467701Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-05T02:56:35.3526555Z Warning: you are leaving 1 commit behind, not connected to
2026-06-05T02:56:35.3528155Z any of your branches:
2026-06-05T02:56:35.3528852Z 
2026-06-05T02:56:35.3529959Z   10e2dcc feat(daemon,net,cli): M5-D6b/c presence MRA API + cross-node redirect (REQ-PRES-1)
2026-06-05T02:56:35.3531695Z 
2026-06-05T02:56:35.3532501Z If you want to keep it by creating a new branch, this may be a good time
2026-06-05T02:56:35.3534292Z to do so with:
2026-06-05T02:56:35.3534882Z 
2026-06-05T02:56:35.3535831Z  git branch <new-branch-name> 10e2dcc
2026-06-05T02:56:35.3536817Z 
2026-06-05T02:56:35.3537776Z Switched to a new branch 'dev-freeform'
2026-06-05T02:56:35.3539732Z Branch 'dev-freeform' set up to track remote branch 'dev-freeform' from 'origin'.
2026-06-05T02:56:35.3552961Z ##[endgroup]
2026-06-05T02:56:35.3605963Z [command]/usr/bin/git log -1 --format=%H
2026-06-05T02:56:35.3640349Z 1ea2a35c868cf1e958918cd968ed4974265a53b3
2026-06-05T02:56:35.4043805Z ##[group]Run if command -v traceable-reqs >/dev/null; then
2026-06-05T02:56:35.4045053Z [36;1mif command -v traceable-reqs >/dev/null; then[0m
2026-06-05T02:56:35.4046077Z [36;1m  ln -sf "$(command -v traceable-reqs)" ./traceable-reqs[0m
2026-06-05T02:56:35.4046974Z [36;1melse[0m
2026-06-05T02:56:35.4047772Z [36;1m  gh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-05T02:56:35.4048894Z [36;1m    --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-05T02:56:35.4049896Z [36;1m  chmod +x traceable-reqs[0m
2026-06-05T02:56:35.4050610Z [36;1mfi[0m
2026-06-05T02:56:35.4076396Z shell: /usr/bin/bash -e {0}
2026-06-05T02:56:35.4077139Z env:
2026-06-05T02:56:35.4078508Z   GH_TOKEN: ***
2026-06-05T02:56:35.4079104Z ##[endgroup]
2026-06-05T02:56:35.4373366Z ##[group]Run ./traceable-reqs check --json
2026-06-05T02:56:35.4374308Z [36;1m./traceable-reqs check --json[0m
2026-06-05T02:56:35.4395641Z shell: /usr/bin/bash -e {0}
2026-06-05T02:56:35.4396372Z ##[endgroup]
2026-06-05T02:56:35.4616582Z {
2026-06-05T02:56:35.4617597Z   "schemaVersion": 1,
2026-06-05T02:56:35.4618313Z   "summary": {
2026-06-05T02:56:35.4618970Z     "requirementCount": 135,
2026-06-05T02:56:35.4619812Z     "completeCount": 135,
2026-06-05T02:56:35.4620533Z     "incompleteCount": 0,
2026-06-05T02:56:35.4621237Z     "findingCount": 0
2026-06-05T02:56:35.4621883Z   },
2026-06-05T02:56:35.4622477Z   "requirements": [
2026-06-05T02:56:35.4623118Z     {
2026-06-05T02:56:35.4623782Z       "id": "REQ-API-1",
2026-06-05T02:56:35.4624736Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-05T02:56:35.4625795Z       "requiredStages": [
2026-06-05T02:56:35.4626471Z         "impl",
2026-06-05T02:56:35.4627082Z         "unit",
2026-06-05T02:56:35.4627846Z         "int"
2026-06-05T02:56:35.4628451Z       ],
2026-06-05T02:56:35.4629027Z       "stages": {
2026-06-05T02:56:35.4629719Z         "doc": {
2026-06-05T02:56:35.4630398Z           "complete": false,
2026-06-05T02:56:35.4631167Z           "evidence": []
2026-06-05T02:56:35.4631850Z         },
2026-06-05T02:56:35.4632438Z         "impl": {
2026-06-05T02:56:35.4633100Z           "complete": true,
2026-06-05T02:56:35.4633825Z           "evidence": [
2026-06-05T02:56:35.4634494Z             {
2026-06-05T02:56:35.4635178Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.4636021Z               "line": 15
2026-06-05T02:56:35.4636684Z             }
2026-06-05T02:56:35.4637329Z           ]
2026-06-05T02:56:35.4637908Z         },
2026-06-05T02:56:35.4638489Z         "int": {
2026-06-05T02:56:35.4639137Z           "complete": true,
2026-06-05T02:56:35.4639911Z           "evidence": [
2026-06-05T02:56:35.4640572Z             {
2026-06-05T02:56:35.4641384Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.4642343Z               "line": 13
2026-06-05T02:56:35.4643104Z             }
2026-06-05T02:56:35.4643782Z           ]
2026-06-05T02:56:35.4644427Z         },
2026-06-05T02:56:35.4645067Z         "unit": {
2026-06-05T02:56:35.4645823Z           "complete": true,
2026-06-05T02:56:35.4646617Z           "evidence": [
2026-06-05T02:56:35.4647349Z             {
2026-06-05T02:56:35.4648082Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.4649317Z               "line": 403
2026-06-05T02:56:35.4650123Z             },
2026-06-05T02:56:35.4650754Z             {
2026-06-05T02:56:35.4651425Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.4652273Z               "line": 409
2026-06-05T02:56:35.4652919Z             },
2026-06-05T02:56:35.4653529Z             {
2026-06-05T02:56:35.4654303Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.4655090Z               "line": 429
2026-06-05T02:56:35.4655733Z             }
2026-06-05T02:56:35.4656281Z           ]
2026-06-05T02:56:35.4688263Z         }
2026-06-05T02:56:35.4688838Z       }
2026-06-05T02:56:35.4689639Z     },
2026-06-05T02:56:35.4690338Z     {
2026-06-05T02:56:35.4690880Z       "id": "REQ-API-2",
2026-06-05T02:56:35.4691888Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-05T02:56:35.4693001Z       "requiredStages": [
2026-06-05T02:56:35.4693646Z         "impl",
2026-06-05T02:56:35.4694213Z         "unit",
2026-06-05T02:56:35.4694787Z         "int"
2026-06-05T02:56:35.4695328Z       ],
2026-06-05T02:56:35.4695859Z       "stages": {
2026-06-05T02:56:35.4696429Z         "doc": {
2026-06-05T02:56:35.4697019Z           "complete": false,
2026-06-05T02:56:35.4697687Z           "evidence": []
2026-06-05T02:56:35.4698291Z         },
2026-06-05T02:56:35.4698832Z         "impl": {
2026-06-05T02:56:35.4699621Z           "complete": true,
2026-06-05T02:56:35.4700349Z           "evidence": [
2026-06-05T02:56:35.4701587Z             {
2026-06-05T02:56:35.4702336Z               "path": "crates/spt-store/src/history.rs",
2026-06-05T02:56:35.4703186Z               "line": 15
2026-06-05T02:56:35.4704031Z             },
2026-06-05T02:56:35.4704616Z             {
2026-06-05T02:56:35.4705285Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.4706122Z               "line": 20
2026-06-05T02:56:35.4706772Z             },
2026-06-05T02:56:35.4707346Z             {
2026-06-05T02:56:35.4708012Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.4708849Z               "line": 125
2026-06-05T02:56:35.4709718Z             },
2026-06-05T02:56:35.4710277Z             {
2026-06-05T02:56:35.4710923Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4711737Z               "line": 21
2026-06-05T02:56:35.4712363Z             },
2026-06-05T02:56:35.4712912Z             {
2026-06-05T02:56:35.4713573Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4714389Z               "line": 38
2026-06-05T02:56:35.4715010Z             },
2026-06-05T02:56:35.4715561Z             {
2026-06-05T02:56:35.4716240Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4717097Z               "line": 172
2026-06-05T02:56:35.4717727Z             },
2026-06-05T02:56:35.4718297Z             {
2026-06-05T02:56:35.4718955Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4720165Z               "line": 211
2026-06-05T02:56:35.4720792Z             },
2026-06-05T02:56:35.4721349Z             {
2026-06-05T02:56:35.4722002Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4722826Z               "line": 241
2026-06-05T02:56:35.4723443Z             },
2026-06-05T02:56:35.4724015Z             {
2026-06-05T02:56:35.4724666Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4725469Z               "line": 17
2026-06-05T02:56:35.4726088Z             },
2026-06-05T02:56:35.4726652Z             {
2026-06-05T02:56:35.4727290Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4728092Z               "line": 30
2026-06-05T02:56:35.4728758Z             },
2026-06-05T02:56:35.4729586Z             {
2026-06-05T02:56:35.4730656Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4731608Z               "line": 63
2026-06-05T02:56:35.4732390Z             },
2026-06-05T02:56:35.4733070Z             {
2026-06-05T02:56:35.4733749Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4734585Z               "line": 76
2026-06-05T02:56:35.4735226Z             }
2026-06-05T02:56:35.4736116Z           ]
2026-06-05T02:56:35.4736705Z         },
2026-06-05T02:56:35.4737265Z         "int": {
2026-06-05T02:56:35.4737880Z           "complete": true,
2026-06-05T02:56:35.4738567Z           "evidence": [
2026-06-05T02:56:35.4739253Z             {
2026-06-05T02:56:35.4740545Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.4741411Z               "line": 14
2026-06-05T02:56:35.4742044Z             },
2026-06-05T02:56:35.4742616Z             {
2026-06-05T02:56:35.4743291Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.4744120Z               "line": 151
2026-06-05T02:56:35.4744744Z             }
2026-06-05T02:56:35.4745295Z           ]
2026-06-05T02:56:35.4745831Z         },
2026-06-05T02:56:35.4746381Z         "unit": {
2026-06-05T02:56:35.4746987Z           "complete": true,
2026-06-05T02:56:35.4747649Z           "evidence": [
2026-06-05T02:56:35.4748269Z             {
2026-06-05T02:56:35.4748932Z               "path": "crates/spt-store/src/history.rs",
2026-06-05T02:56:35.4750139Z               "line": 42
2026-06-05T02:56:35.4750767Z             },
2026-06-05T02:56:35.4751322Z             {
2026-06-05T02:56:35.4751970Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.4752781Z               "line": 234
2026-06-05T02:56:35.4753406Z             },
2026-06-05T02:56:35.4754296Z             {
2026-06-05T02:56:35.4755018Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4755843Z               "line": 410
2026-06-05T02:56:35.4756639Z             },
2026-06-05T02:56:35.4757207Z             {
2026-06-05T02:56:35.4757880Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4758718Z               "line": 421
2026-06-05T02:56:35.4759678Z             },
2026-06-05T02:56:35.4760598Z             {
2026-06-05T02:56:35.4761250Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4762072Z               "line": 527
2026-06-05T02:56:35.4762691Z             },
2026-06-05T02:56:35.4763252Z             {
2026-06-05T02:56:35.4763916Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4764737Z               "line": 539
2026-06-05T02:56:35.4765351Z             },
2026-06-05T02:56:35.4765910Z             {
2026-06-05T02:56:35.4766560Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4767366Z               "line": 141
2026-06-05T02:56:35.4767992Z             },
2026-06-05T02:56:35.4768552Z             {
2026-06-05T02:56:35.4769255Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.4770467Z               "line": 176
2026-06-05T02:56:35.4771091Z             }
2026-06-05T02:56:35.4771636Z           ]
2026-06-05T02:56:35.4772167Z         }
2026-06-05T02:56:35.4772694Z       }
2026-06-05T02:56:35.4773205Z     },
2026-06-05T02:56:35.4773722Z     {
2026-06-05T02:56:35.4774265Z       "id": "REQ-API-3",
2026-06-05T02:56:35.4775087Z       "title": "commune/signoff are file-drops, not commands",
2026-06-05T02:56:35.4775996Z       "requiredStages": [
2026-06-05T02:56:35.4776656Z         "impl",
2026-06-05T02:56:35.4777228Z         "unit",
2026-06-05T02:56:35.4777793Z         "int"
2026-06-05T02:56:35.4778344Z       ],
2026-06-05T02:56:35.4778884Z       "stages": {
2026-06-05T02:56:35.4779715Z         "doc": {
2026-06-05T02:56:35.4780490Z           "complete": false,
2026-06-05T02:56:35.4781180Z           "evidence": []
2026-06-05T02:56:35.4781803Z         },
2026-06-05T02:56:35.4782349Z         "impl": {
2026-06-05T02:56:35.4782964Z           "complete": true,
2026-06-05T02:56:35.4783629Z           "evidence": [
2026-06-05T02:56:35.4784240Z             {
2026-06-05T02:56:35.4784894Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.4785701Z               "line": 27
2026-06-05T02:56:35.4786329Z             },
2026-06-05T02:56:35.4786889Z             {
2026-06-05T02:56:35.4787557Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4788382Z               "line": 347
2026-06-05T02:56:35.4789004Z             }
2026-06-05T02:56:35.4789804Z           ]
2026-06-05T02:56:35.4790501Z         },
2026-06-05T02:56:35.4791039Z         "int": {
2026-06-05T02:56:35.4791636Z           "complete": true,
2026-06-05T02:56:35.4792309Z           "evidence": [
2026-06-05T02:56:35.4792922Z             {
2026-06-05T02:56:35.4793595Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.4794426Z               "line": 203
2026-06-05T02:56:35.4795049Z             }
2026-06-05T02:56:35.4795621Z           ]
2026-06-05T02:56:35.4796155Z         },
2026-06-05T02:56:35.4796700Z         "unit": {
2026-06-05T02:56:35.4797313Z           "complete": true,
2026-06-05T02:56:35.4797963Z           "evidence": [
2026-06-05T02:56:35.4798566Z             {
2026-06-05T02:56:35.4799259Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.4800423Z               "line": 230
2026-06-05T02:56:35.4801045Z             },
2026-06-05T02:56:35.4801621Z             {
2026-06-05T02:56:35.4802285Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.4803111Z               "line": 568
2026-06-05T02:56:35.4803724Z             }
2026-06-05T02:56:35.4804275Z           ]
2026-06-05T02:56:35.4804806Z         }
2026-06-05T02:56:35.4805334Z       }
2026-06-05T02:56:35.4805857Z     },
2026-06-05T02:56:35.4806377Z     {
2026-06-05T02:56:35.4807131Z       "id": "REQ-ARCH-1",
2026-06-05T02:56:35.4807943Z       "title": "Many small acyclically-layered crates",
2026-06-05T02:56:35.4808953Z       "requiredStages": [
2026-06-05T02:56:35.4809853Z         "impl"
2026-06-05T02:56:35.4810572Z       ],
2026-06-05T02:56:35.4811114Z       "stages": {
2026-06-05T02:56:35.4811678Z         "doc": {
2026-06-05T02:56:35.4812271Z           "complete": false,
2026-06-05T02:56:35.4812937Z           "evidence": []
2026-06-05T02:56:35.4813555Z         },
2026-06-05T02:56:35.4814115Z         "impl": {
2026-06-05T02:56:35.4814713Z           "complete": true,
2026-06-05T02:56:35.4815378Z           "evidence": [
2026-06-05T02:56:35.4815981Z             {
2026-06-05T02:56:35.4816616Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-05T02:56:35.4817414Z               "line": 16
2026-06-05T02:56:35.4818031Z             },
2026-06-05T02:56:35.4818588Z             {
2026-06-05T02:56:35.4819267Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-05T02:56:35.4820432Z               "line": 12
2026-06-05T02:56:35.4821051Z             },
2026-06-05T02:56:35.4821607Z             {
2026-06-05T02:56:35.4822264Z               "path": "crates/spt-store/src/lib.rs",
2026-06-05T02:56:35.4823063Z               "line": 12
2026-06-05T02:56:35.4823676Z             }
2026-06-05T02:56:35.4824235Z           ]
2026-06-05T02:56:35.4824769Z         },
2026-06-05T02:56:35.4825323Z         "int": {
2026-06-05T02:56:35.4825917Z           "complete": false,
2026-06-05T02:56:35.4826586Z           "evidence": []
2026-06-05T02:56:35.4827207Z         },
2026-06-05T02:56:35.4827748Z         "unit": {
2026-06-05T02:56:35.4828344Z           "complete": false,
2026-06-05T02:56:35.4829008Z           "evidence": []
2026-06-05T02:56:35.4829675Z         }
2026-06-05T02:56:35.4830198Z       }
2026-06-05T02:56:35.4830719Z     },
2026-06-05T02:56:35.4831235Z     {
2026-06-05T02:56:35.4831778Z       "id": "REQ-ARCH-2",
2026-06-05T02:56:35.4832648Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-05T02:56:35.4833629Z       "requiredStages": [
2026-06-05T02:56:35.4834270Z         "impl"
2026-06-05T02:56:35.4834840Z       ],
2026-06-05T02:56:35.4835388Z       "stages": {
2026-06-05T02:56:35.4835956Z         "doc": {
2026-06-05T02:56:35.4836559Z           "complete": false,
2026-06-05T02:56:35.4837223Z           "evidence": []
2026-06-05T02:56:35.4837841Z         },
2026-06-05T02:56:35.4838377Z         "impl": {
2026-06-05T02:56:35.4838973Z           "complete": true,
2026-06-05T02:56:35.4839666Z           "evidence": [
2026-06-05T02:56:35.4840279Z             {
2026-06-05T02:56:35.4840928Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-05T02:56:35.4841750Z               "line": 18
2026-06-05T02:56:35.4842357Z             }
2026-06-05T02:56:35.4842908Z           ]
2026-06-05T02:56:35.4843443Z         },
2026-06-05T02:56:35.4843983Z         "int": {
2026-06-05T02:56:35.4844578Z           "complete": false,
2026-06-05T02:56:35.4845259Z           "evidence": []
2026-06-05T02:56:35.4845870Z         },
2026-06-05T02:56:35.4846400Z         "unit": {
2026-06-05T02:56:35.4847009Z           "complete": false,
2026-06-05T02:56:35.4847692Z           "evidence": []
2026-06-05T02:56:35.4848308Z         }
2026-06-05T02:56:35.4848835Z       }
2026-06-05T02:56:35.4849395Z     },
2026-06-05T02:56:35.4849928Z     {
2026-06-05T02:56:35.4850468Z       "id": "REQ-ARCH-3",
2026-06-05T02:56:35.4851448Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-05T02:56:35.4852567Z       "requiredStages": [
2026-06-05T02:56:35.4853220Z         "impl",
2026-06-05T02:56:35.4853790Z         "unit"
2026-06-05T02:56:35.4864467Z       ],
2026-06-05T02:56:35.4865068Z       "stages": {
2026-06-05T02:56:35.4865649Z         "doc": {
2026-06-05T02:56:35.4866247Z           "complete": false,
2026-06-05T02:56:35.4866919Z           "evidence": []
2026-06-05T02:56:35.4867535Z         },
2026-06-05T02:56:35.4868076Z         "impl": {
2026-06-05T02:56:35.4868990Z           "complete": true,
2026-06-05T02:56:35.4869802Z           "evidence": [
2026-06-05T02:56:35.4870419Z             {
2026-06-05T02:56:35.4871252Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T02:56:35.4872098Z               "line": 34
2026-06-05T02:56:35.4872715Z             },
2026-06-05T02:56:35.4877899Z             {
2026-06-05T02:56:35.4878591Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T02:56:35.4879511Z               "line": 41
2026-06-05T02:56:35.4880139Z             }
2026-06-05T02:56:35.4880687Z           ]
2026-06-05T02:56:35.4881218Z         },
2026-06-05T02:56:35.4881756Z         "int": {
2026-06-05T02:56:35.4882347Z           "complete": false,
2026-06-05T02:56:35.4883023Z           "evidence": []
2026-06-05T02:56:35.4883640Z         },
2026-06-05T02:56:35.4884181Z         "unit": {
2026-06-05T02:56:35.4884797Z           "complete": true,
2026-06-05T02:56:35.4885452Z           "evidence": [
2026-06-05T02:56:35.4886070Z             {
2026-06-05T02:56:35.4886755Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T02:56:35.4887593Z               "line": 51
2026-06-05T02:56:35.4888231Z             },
2026-06-05T02:56:35.4888792Z             {
2026-06-05T02:56:35.4889512Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T02:56:35.4890364Z               "line": 65
2026-06-05T02:56:35.4890977Z             },
2026-06-05T02:56:35.4891533Z             {
2026-06-05T02:56:35.4892193Z               "path": "crates/spt-proto/src/version.rs",
2026-06-05T02:56:35.4893022Z               "line": 74
2026-06-05T02:56:35.4893639Z             }
2026-06-05T02:56:35.4894195Z           ]
2026-06-05T02:56:35.4894727Z         }
2026-06-05T02:56:35.4895255Z       }
2026-06-05T02:56:35.4895779Z     },
2026-06-05T02:56:35.4896296Z     {
2026-06-05T02:56:35.4896843Z       "id": "REQ-ARCH-4",
2026-06-05T02:56:35.4897752Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-05T02:56:35.4898772Z       "requiredStages": [
2026-06-05T02:56:35.4899621Z         "impl",
2026-06-05T02:56:35.4900353Z         "unit"
2026-06-05T02:56:35.4900917Z       ],
2026-06-05T02:56:35.4901474Z       "stages": {
2026-06-05T02:56:35.4902061Z         "doc": {
2026-06-05T02:56:35.4902664Z           "complete": false,
2026-06-05T02:56:35.4903347Z           "evidence": []
2026-06-05T02:56:35.4903977Z         },
2026-06-05T02:56:35.4904512Z         "impl": {
2026-06-05T02:56:35.4905116Z           "complete": true,
2026-06-05T02:56:35.4905775Z           "evidence": [
2026-06-05T02:56:35.4906381Z             {
2026-06-05T02:56:35.4907048Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4907863Z               "line": 82
2026-06-05T02:56:35.4908484Z             },
2026-06-05T02:56:35.4909043Z             {
2026-06-05T02:56:35.4909748Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4910576Z               "line": 96
2026-06-05T02:56:35.4911200Z             },
2026-06-05T02:56:35.4911764Z             {
2026-06-05T02:56:35.4912434Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4913261Z               "line": 116
2026-06-05T02:56:35.4913904Z             },
2026-06-05T02:56:35.4914466Z             {
2026-06-05T02:56:35.4915115Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4915929Z               "line": 131
2026-06-05T02:56:35.4916552Z             },
2026-06-05T02:56:35.4917106Z             {
2026-06-05T02:56:35.4917760Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4918588Z               "line": 181
2026-06-05T02:56:35.4946945Z             }
2026-06-05T02:56:35.4947988Z           ]
2026-06-05T02:56:35.4948542Z         },
2026-06-05T02:56:35.4949075Z         "int": {
2026-06-05T02:56:35.4950061Z           "complete": false,
2026-06-05T02:56:35.4950737Z           "evidence": []
2026-06-05T02:56:35.4951357Z         },
2026-06-05T02:56:35.4951899Z         "unit": {
2026-06-05T02:56:35.4952985Z           "complete": true,
2026-06-05T02:56:35.4953688Z           "evidence": [
2026-06-05T02:56:35.4954299Z             {
2026-06-05T02:56:35.4954955Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4955984Z               "line": 245
2026-06-05T02:56:35.4956622Z             },
2026-06-05T02:56:35.4957177Z             {
2026-06-05T02:56:35.4957825Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4958648Z               "line": 255
2026-06-05T02:56:35.4959329Z             },
2026-06-05T02:56:35.4960240Z             {
2026-06-05T02:56:35.4960886Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4961699Z               "line": 266
2026-06-05T02:56:35.4962322Z             },
2026-06-05T02:56:35.4962876Z             {
2026-06-05T02:56:35.4963516Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4964320Z               "line": 277
2026-06-05T02:56:35.4964954Z             },
2026-06-05T02:56:35.4965509Z             {
2026-06-05T02:56:35.4966164Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4966980Z               "line": 289
2026-06-05T02:56:35.4967608Z             },
2026-06-05T02:56:35.4968163Z             {
2026-06-05T02:56:35.4968802Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4969959Z               "line": 302
2026-06-05T02:56:35.4970600Z             },
2026-06-05T02:56:35.4971159Z             {
2026-06-05T02:56:35.4971798Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4972646Z               "line": 313
2026-06-05T02:56:35.4973273Z             },
2026-06-05T02:56:35.4973823Z             {
2026-06-05T02:56:35.4974457Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4975264Z               "line": 327
2026-06-05T02:56:35.4975904Z             },
2026-06-05T02:56:35.4976454Z             {
2026-06-05T02:56:35.4977099Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.4977905Z               "line": 355
2026-06-05T02:56:35.4978536Z             }
2026-06-05T02:56:35.4979087Z           ]
2026-06-05T02:56:35.4979854Z         }
2026-06-05T02:56:35.4980543Z       }
2026-06-05T02:56:35.4981066Z     },
2026-06-05T02:56:35.4981598Z     {
2026-06-05T02:56:35.4982145Z       "id": "REQ-CONSENT-1",
2026-06-05T02:56:35.4985366Z       "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-05T02:56:35.4988683Z       "requiredStages": [
2026-06-05T02:56:35.4989555Z         "impl",
2026-06-05T02:56:35.4990141Z         "unit"
2026-06-05T02:56:35.4990695Z       ],
2026-06-05T02:56:35.4991237Z       "stages": {
2026-06-05T02:56:35.4991803Z         "doc": {
2026-06-05T02:56:35.4992397Z           "complete": false,
2026-06-05T02:56:35.4993081Z           "evidence": []
2026-06-05T02:56:35.4993706Z         },
2026-06-05T02:56:35.4994249Z         "impl": {
2026-06-05T02:56:35.4994850Z           "complete": true,
2026-06-05T02:56:35.4995502Z           "evidence": [
2026-06-05T02:56:35.4996143Z             {
2026-06-05T02:56:35.4997055Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.4997951Z               "line": 27
2026-06-05T02:56:35.4998661Z             },
2026-06-05T02:56:35.4999351Z             {
2026-06-05T02:56:35.5000104Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5001035Z               "line": 75
2026-06-05T02:56:35.5001836Z             },
2026-06-05T02:56:35.5002602Z             {
2026-06-05T02:56:35.5003447Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5004412Z               "line": 98
2026-06-05T02:56:35.5005129Z             },
2026-06-05T02:56:35.5005766Z             {
2026-06-05T02:56:35.5007177Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5014815Z               "line": 82
2026-06-05T02:56:35.5015625Z             },
2026-06-05T02:56:35.5016225Z             {
2026-06-05T02:56:35.5017885Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5018975Z               "line": 109
2026-06-05T02:56:35.5019999Z             },
2026-06-05T02:56:35.5020703Z             {
2026-06-05T02:56:35.5021453Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5022356Z               "line": 127
2026-06-05T02:56:35.5023095Z             },
2026-06-05T02:56:35.5023956Z             {
2026-06-05T02:56:35.5024708Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5025586Z               "line": 142
2026-06-05T02:56:35.5026313Z             },
2026-06-05T02:56:35.5026935Z             {
2026-06-05T02:56:35.5027607Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5028497Z               "line": 2343
2026-06-05T02:56:35.5029289Z             }
2026-06-05T02:56:35.5030455Z           ]
2026-06-05T02:56:35.5031189Z         },
2026-06-05T02:56:35.5031788Z         "int": {
2026-06-05T02:56:35.5032482Z           "complete": false,
2026-06-05T02:56:35.5033224Z           "evidence": []
2026-06-05T02:56:35.5033912Z         },
2026-06-05T02:56:35.5034469Z         "unit": {
2026-06-05T02:56:35.5035078Z           "complete": true,
2026-06-05T02:56:35.5035756Z           "evidence": [
2026-06-05T02:56:35.5036379Z             {
2026-06-05T02:56:35.5037052Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5037884Z               "line": 318
2026-06-05T02:56:35.5038522Z             },
2026-06-05T02:56:35.5039092Z             {
2026-06-05T02:56:35.5040155Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5040985Z               "line": 343
2026-06-05T02:56:35.5041620Z             },
2026-06-05T02:56:35.5042189Z             {
2026-06-05T02:56:35.5042869Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5043714Z               "line": 354
2026-06-05T02:56:35.5044356Z             },
2026-06-05T02:56:35.5044922Z             {
2026-06-05T02:56:35.5045611Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5046448Z               "line": 165
2026-06-05T02:56:35.5047086Z             },
2026-06-05T02:56:35.5047653Z             {
2026-06-05T02:56:35.5048326Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5049149Z               "line": 184
2026-06-05T02:56:35.5050062Z             },
2026-06-05T02:56:35.5050668Z             {
2026-06-05T02:56:35.5051373Z               "path": "crates/spt-store/src/grants.rs",
2026-06-05T02:56:35.5052226Z               "line": 204
2026-06-05T02:56:35.5052889Z             },
2026-06-05T02:56:35.5053481Z             {
2026-06-05T02:56:35.5054128Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5054958Z               "line": 2637
2026-06-05T02:56:35.5055622Z             }
2026-06-05T02:56:35.5056214Z           ]
2026-06-05T02:56:35.5056795Z         }
2026-06-05T02:56:35.5057370Z       }
2026-06-05T02:56:35.5057921Z     },
2026-06-05T02:56:35.5058475Z     {
2026-06-05T02:56:35.5059070Z       "id": "REQ-CONSENT-2",
2026-06-05T02:56:35.5062292Z       "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-05T02:56:35.5065362Z       "requiredStages": [
2026-06-05T02:56:35.5066016Z         "impl",
2026-06-05T02:56:35.5066607Z         "unit"
2026-06-05T02:56:35.5067246Z       ],
2026-06-05T02:56:35.5067795Z       "stages": {
2026-06-05T02:56:35.5068391Z         "doc": {
2026-06-05T02:56:35.5069009Z           "complete": false,
2026-06-05T02:56:35.5070080Z           "evidence": []
2026-06-05T02:56:35.5070722Z         },
2026-06-05T02:56:35.5071592Z         "impl": {
2026-06-05T02:56:35.5072267Z           "complete": true,
2026-06-05T02:56:35.5072968Z           "evidence": [
2026-06-05T02:56:35.5073760Z             {
2026-06-05T02:56:35.5074456Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5080372Z               "line": 140
2026-06-05T02:56:35.5081091Z             },
2026-06-05T02:56:35.5081664Z             {
2026-06-05T02:56:35.5082351Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5083193Z               "line": 158
2026-06-05T02:56:35.5083843Z             },
2026-06-05T02:56:35.5084408Z             {
2026-06-05T02:56:35.5085085Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5085926Z               "line": 192
2026-06-05T02:56:35.5086563Z             },
2026-06-05T02:56:35.5087127Z             {
2026-06-05T02:56:35.5087796Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5088648Z               "line": 234
2026-06-05T02:56:35.5089389Z             },
2026-06-05T02:56:35.5089969Z             {
2026-06-05T02:56:35.5090644Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5091492Z               "line": 262
2026-06-05T02:56:35.5092138Z             },
2026-06-05T02:56:35.5092707Z             {
2026-06-05T02:56:35.5093371Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5094208Z               "line": 293
2026-06-05T02:56:35.5094840Z             },
2026-06-05T02:56:35.5095418Z             {
2026-06-05T02:56:35.5096048Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5096853Z               "line": 2236
2026-06-05T02:56:35.5097503Z             },
2026-06-05T02:56:35.5098070Z             {
2026-06-05T02:56:35.5098700Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5099538Z               "line": 2276
2026-06-05T02:56:35.5100185Z             }
2026-06-05T02:56:35.5100754Z           ]
2026-06-05T02:56:35.5101305Z         },
2026-06-05T02:56:35.5101858Z         "int": {
2026-06-05T02:56:35.5102476Z           "complete": false,
2026-06-05T02:56:35.5103158Z           "evidence": []
2026-06-05T02:56:35.5103800Z         },
2026-06-05T02:56:35.5104352Z         "unit": {
2026-06-05T02:56:35.5104963Z           "complete": true,
2026-06-05T02:56:35.5105634Z           "evidence": [
2026-06-05T02:56:35.5106264Z             {
2026-06-05T02:56:35.5106937Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5107784Z               "line": 382
2026-06-05T02:56:35.5108435Z             },
2026-06-05T02:56:35.5109005Z             {
2026-06-05T02:56:35.5109721Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5110555Z               "line": 396
2026-06-05T02:56:35.5111195Z             },
2026-06-05T02:56:35.5111766Z             {
2026-06-05T02:56:35.5112440Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5113271Z               "line": 432
2026-06-05T02:56:35.5113908Z             },
2026-06-05T02:56:35.5114484Z             {
2026-06-05T02:56:35.5115155Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.5115986Z               "line": 464
2026-06-05T02:56:35.5116628Z             },
2026-06-05T02:56:35.5117195Z             {
2026-06-05T02:56:35.5117842Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5118646Z               "line": 3308
2026-06-05T02:56:35.5119338Z             },
2026-06-05T02:56:35.5119913Z             {
2026-06-05T02:56:35.5120548Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5121334Z               "line": 3368
2026-06-05T02:56:35.5121976Z             }
2026-06-05T02:56:35.5122537Z           ]
2026-06-05T02:56:35.5123100Z         }
2026-06-05T02:56:35.5123640Z       }
2026-06-05T02:56:35.5124159Z     },
2026-06-05T02:56:35.5124682Z     {
2026-06-05T02:56:35.5125237Z       "id": "REQ-DAEMON-1",
2026-06-05T02:56:35.5126153Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-05T02:56:35.5127422Z       "requiredStages": [
2026-06-05T02:56:35.5128114Z         "impl",
2026-06-05T02:56:35.5128699Z         "unit",
2026-06-05T02:56:35.5129329Z         "int"
2026-06-05T02:56:35.5130061Z       ],
2026-06-05T02:56:35.5130614Z       "stages": {
2026-06-05T02:56:35.5131212Z         "doc": {
2026-06-05T02:56:35.5131826Z           "complete": false,
2026-06-05T02:56:35.5132513Z           "evidence": []
2026-06-05T02:56:35.5133155Z         },
2026-06-05T02:56:35.5133706Z         "impl": {
2026-06-05T02:56:35.5137506Z           "complete": true,
2026-06-05T02:56:35.5138339Z           "evidence": [
2026-06-05T02:56:35.5138959Z             {
2026-06-05T02:56:35.5139729Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5140561Z               "line": 12
2026-06-05T02:56:35.5141179Z             },
2026-06-05T02:56:35.5141740Z             {
2026-06-05T02:56:35.5142414Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5143263Z               "line": 16
2026-06-05T02:56:35.5143913Z             },
2026-06-05T02:56:35.5144473Z             {
2026-06-05T02:56:35.5145130Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T02:56:35.5145957Z               "line": 15
2026-06-05T02:56:35.5146579Z             },
2026-06-05T02:56:35.5147129Z             {
2026-06-05T02:56:35.5147773Z               "path": "crates/spt/src/api/live.rs",
2026-06-05T02:56:35.5148573Z               "line": 13
2026-06-05T02:56:35.5149245Z             }
2026-06-05T02:56:35.5149800Z           ]
2026-06-05T02:56:35.5150334Z         },
2026-06-05T02:56:35.5150864Z         "int": {
2026-06-05T02:56:35.5151454Z           "complete": true,
2026-06-05T02:56:35.5152118Z           "evidence": [
2026-06-05T02:56:35.5152728Z             {
2026-06-05T02:56:35.5153420Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T02:56:35.5154276Z               "line": 32
2026-06-05T02:56:35.5154903Z             }
2026-06-05T02:56:35.5155448Z           ]
2026-06-05T02:56:35.5155980Z         },
2026-06-05T02:56:35.5156530Z         "unit": {
2026-06-05T02:56:35.5157127Z           "complete": true,
2026-06-05T02:56:35.5157783Z           "evidence": [
2026-06-05T02:56:35.5158397Z             {
2026-06-05T02:56:35.5159056Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5159934Z               "line": 254
2026-06-05T02:56:35.5160559Z             },
2026-06-05T02:56:35.5161104Z             {
2026-06-05T02:56:35.5161769Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5162594Z               "line": 262
2026-06-05T02:56:35.5163221Z             },
2026-06-05T02:56:35.5163775Z             {
2026-06-05T02:56:35.5164434Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5165252Z               "line": 275
2026-06-05T02:56:35.5165889Z             },
2026-06-05T02:56:35.5166439Z             {
2026-06-05T02:56:35.5167095Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5167914Z               "line": 283
2026-06-05T02:56:35.5168546Z             },
2026-06-05T02:56:35.5169096Z             {
2026-06-05T02:56:35.5169812Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5170679Z               "line": 536
2026-06-05T02:56:35.5171403Z             },
2026-06-05T02:56:35.5171976Z             {
2026-06-05T02:56:35.5172682Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5173530Z               "line": 595
2026-06-05T02:56:35.5174155Z             },
2026-06-05T02:56:35.5174705Z             {
2026-06-05T02:56:35.5175362Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T02:56:35.5176175Z               "line": 100
2026-06-05T02:56:35.5176809Z             },
2026-06-05T02:56:35.5177363Z             {
2026-06-05T02:56:35.5178018Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-05T02:56:35.5178835Z               "line": 125
2026-06-05T02:56:35.5179510Z             }
2026-06-05T02:56:35.5180053Z           ]
2026-06-05T02:56:35.5180884Z         }
2026-06-05T02:56:35.5181473Z       }
2026-06-05T02:56:35.5182002Z     },
2026-06-05T02:56:35.5182530Z     {
2026-06-05T02:56:35.5183228Z       "id": "REQ-DAEMON-2",
2026-06-05T02:56:35.5184057Z       "title": "Broker/brain split for seamless self-update",
2026-06-05T02:56:35.5184954Z       "requiredStages": [
2026-06-05T02:56:35.5185602Z         "impl",
2026-06-05T02:56:35.5186169Z         "unit",
2026-06-05T02:56:35.5186732Z         "int"
2026-06-05T02:56:35.5187282Z       ],
2026-06-05T02:56:35.5187816Z       "stages": {
2026-06-05T02:56:35.5188398Z         "doc": {
2026-06-05T02:56:35.5188991Z           "complete": false,
2026-06-05T02:56:35.5189723Z           "evidence": []
2026-06-05T02:56:35.5190346Z         },
2026-06-05T02:56:35.5190882Z         "impl": {
2026-06-05T02:56:35.5194534Z           "complete": true,
2026-06-05T02:56:35.5195312Z           "evidence": [
2026-06-05T02:56:35.5195929Z             {
2026-06-05T02:56:35.5196618Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.5197434Z               "line": 23
2026-06-05T02:56:35.5198054Z             },
2026-06-05T02:56:35.5198609Z             {
2026-06-05T02:56:35.5199357Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.5200187Z               "line": 489
2026-06-05T02:56:35.5200806Z             },
2026-06-05T02:56:35.5201354Z             {
2026-06-05T02:56:35.5201996Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.5202818Z               "line": 612
2026-06-05T02:56:35.5203439Z             },
2026-06-05T02:56:35.5203991Z             {
2026-06-05T02:56:35.5204640Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5205453Z               "line": 32
2026-06-05T02:56:35.5206066Z             },
2026-06-05T02:56:35.5206624Z             {
2026-06-05T02:56:35.5207291Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5208120Z               "line": 191
2026-06-05T02:56:35.5208739Z             },
2026-06-05T02:56:35.5209340Z             {
2026-06-05T02:56:35.5210014Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5210840Z               "line": 519
2026-06-05T02:56:35.5211456Z             },
2026-06-05T02:56:35.5212008Z             {
2026-06-05T02:56:35.5212661Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5213484Z               "line": 688
2026-06-05T02:56:35.5214103Z             },
2026-06-05T02:56:35.5214653Z             {
2026-06-05T02:56:35.5215304Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T02:56:35.5216113Z               "line": 11
2026-06-05T02:56:35.5216724Z             },
2026-06-05T02:56:35.5217281Z             {
2026-06-05T02:56:35.5217932Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5218746Z               "line": 69
2026-06-05T02:56:35.5219417Z             },
2026-06-05T02:56:35.5219975Z             {
2026-06-05T02:56:35.5220619Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5221442Z               "line": 13
2026-06-05T02:56:35.5222055Z             },
2026-06-05T02:56:35.5222614Z             {
2026-06-05T02:56:35.5223282Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5224108Z               "line": 27
2026-06-05T02:56:35.5224727Z             },
2026-06-05T02:56:35.5225277Z             {
2026-06-05T02:56:35.5225936Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5226755Z               "line": 94
2026-06-05T02:56:35.5227369Z             },
2026-06-05T02:56:35.5227929Z             {
2026-06-05T02:56:35.5228589Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5229465Z               "line": 393
2026-06-05T02:56:35.5230097Z             },
2026-06-05T02:56:35.5230655Z             {
2026-06-05T02:56:35.5231323Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5232150Z               "line": 460
2026-06-05T02:56:35.5232769Z             },
2026-06-05T02:56:35.5233561Z             {
2026-06-05T02:56:35.5234257Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5235236Z               "line": 494
2026-06-05T02:56:35.5235874Z             },
2026-06-05T02:56:35.5236436Z             {
2026-06-05T02:56:35.5237105Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5237948Z               "line": 536
2026-06-05T02:56:35.5238583Z             },
2026-06-05T02:56:35.5239149Z             {
2026-06-05T02:56:35.5239878Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5240723Z               "line": 581
2026-06-05T02:56:35.5241350Z             },
2026-06-05T02:56:35.5241924Z             {
2026-06-05T02:56:35.5242618Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T02:56:35.5243468Z               "line": 10
2026-06-05T02:56:35.5244084Z             }
2026-06-05T02:56:35.5244636Z           ]
2026-06-05T02:56:35.5245170Z         },
2026-06-05T02:56:35.5245718Z         "int": {
2026-06-05T02:56:35.5246312Z           "complete": true,
2026-06-05T02:56:35.5246979Z           "evidence": [
2026-06-05T02:56:35.5247605Z             {
2026-06-05T02:56:35.5248284Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-05T02:56:35.5249115Z               "line": 17
2026-06-05T02:56:35.5254416Z             },
2026-06-05T02:56:35.5255114Z             {
2026-06-05T02:56:35.5255828Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T02:56:35.5256696Z               "line": 33
2026-06-05T02:56:35.5257318Z             },
2026-06-05T02:56:35.5257885Z             {
2026-06-05T02:56:35.5258572Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-05T02:56:35.5259765Z               "line": 19
2026-06-05T02:56:35.5260555Z             },
2026-06-05T02:56:35.5261116Z             {
2026-06-05T02:56:35.5261806Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T02:56:35.5262649Z               "line": 70
2026-06-05T02:56:35.5263307Z             },
2026-06-05T02:56:35.5263878Z             {
2026-06-05T02:56:35.5264571Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T02:56:35.5265433Z               "line": 90
2026-06-05T02:56:35.5266054Z             },
2026-06-05T02:56:35.5266629Z             {
2026-06-05T02:56:35.5267317Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T02:56:35.5268182Z               "line": 160
2026-06-05T02:56:35.5268813Z             },
2026-06-05T02:56:35.5269637Z             {
2026-06-05T02:56:35.5270507Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T02:56:35.5271366Z               "line": 196
2026-06-05T02:56:35.5271997Z             },
2026-06-05T02:56:35.5272561Z             {
2026-06-05T02:56:35.5273253Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-05T02:56:35.5274108Z               "line": 121
2026-06-05T02:56:35.5274736Z             }
2026-06-05T02:56:35.5275377Z           ]
2026-06-05T02:56:35.5275950Z         },
2026-06-05T02:56:35.5276502Z         "unit": {
2026-06-05T02:56:35.5277120Z           "complete": true,
2026-06-05T02:56:35.5277785Z           "evidence": [
2026-06-05T02:56:35.5278411Z             {
2026-06-05T02:56:35.5279081Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T02:56:35.5280328Z               "line": 62
2026-06-05T02:56:35.5280954Z             },
2026-06-05T02:56:35.5281522Z             {
2026-06-05T02:56:35.5282183Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T02:56:35.5283013Z               "line": 76
2026-06-05T02:56:35.5283637Z             },
2026-06-05T02:56:35.5284199Z             {
2026-06-05T02:56:35.5284872Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-05T02:56:35.5285689Z               "line": 88
2026-06-05T02:56:35.5286316Z             },
2026-06-05T02:56:35.5286885Z             {
2026-06-05T02:56:35.5287580Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.5288413Z               "line": 264
2026-06-05T02:56:35.5289454Z             },
2026-06-05T02:56:35.5290066Z             {
2026-06-05T02:56:35.5290742Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5291734Z               "line": 506
2026-06-05T02:56:35.5292372Z             },
2026-06-05T02:56:35.5292945Z             {
2026-06-05T02:56:35.5293616Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5294445Z               "line": 514
2026-06-05T02:56:35.5295090Z             },
2026-06-05T02:56:35.5295654Z             {
2026-06-05T02:56:35.5296316Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5297143Z               "line": 531
2026-06-05T02:56:35.5297783Z             },
2026-06-05T02:56:35.5298346Z             {
2026-06-05T02:56:35.5299006Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5299904Z               "line": 576
2026-06-05T02:56:35.5300550Z             },
2026-06-05T02:56:35.5301120Z             {
2026-06-05T02:56:35.5301807Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5302652Z               "line": 648
2026-06-05T02:56:35.5303285Z             },
2026-06-05T02:56:35.5303859Z             {
2026-06-05T02:56:35.5304540Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5305401Z               "line": 660
2026-06-05T02:56:35.5306036Z             },
2026-06-05T02:56:35.5306602Z             {
2026-06-05T02:56:35.5307294Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T02:56:35.5308155Z               "line": 112
2026-06-05T02:56:35.5308786Z             }
2026-06-05T02:56:35.5309420Z           ]
2026-06-05T02:56:35.5309974Z         }
2026-06-05T02:56:35.5310508Z       }
2026-06-05T02:56:35.5311024Z     },
2026-06-05T02:56:35.5314943Z     {
2026-06-05T02:56:35.5315542Z       "id": "REQ-DAEMON-3",
2026-06-05T02:56:35.5316425Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-05T02:56:35.5317381Z       "requiredStages": [
2026-06-05T02:56:35.5318055Z         "impl",
2026-06-05T02:56:35.5318625Z         "unit",
2026-06-05T02:56:35.5319288Z         "int"
2026-06-05T02:56:35.5319862Z       ],
2026-06-05T02:56:35.5320408Z       "stages": {
2026-06-05T02:56:35.5320993Z         "doc": {
2026-06-05T02:56:35.5321592Z           "complete": false,
2026-06-05T02:56:35.5322259Z           "evidence": []
2026-06-05T02:56:35.5322884Z         },
2026-06-05T02:56:35.5323418Z         "impl": {
2026-06-05T02:56:35.5324014Z           "complete": true,
2026-06-05T02:56:35.5324678Z           "evidence": [
2026-06-05T02:56:35.5325294Z             {
2026-06-05T02:56:35.5325963Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5326792Z               "line": 14
2026-06-05T02:56:35.5327413Z             },
2026-06-05T02:56:35.5327968Z             {
2026-06-05T02:56:35.5328639Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-05T02:56:35.5329515Z               "line": 11
2026-06-05T02:56:35.5330136Z             },
2026-06-05T02:56:35.5330712Z             {
2026-06-05T02:56:35.5331351Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.5332148Z               "line": 247
2026-06-05T02:56:35.5332783Z             },
2026-06-05T02:56:35.5333336Z             {
2026-06-05T02:56:35.5333960Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5334738Z               "line": 887
2026-06-05T02:56:35.5335364Z             }
2026-06-05T02:56:35.5335941Z           ]
2026-06-05T02:56:35.5336481Z         },
2026-06-05T02:56:35.5337015Z         "int": {
2026-06-05T02:56:35.5337605Z           "complete": true,
2026-06-05T02:56:35.5338282Z           "evidence": [
2026-06-05T02:56:35.5338888Z             {
2026-06-05T02:56:35.5339644Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.5340473Z               "line": 43
2026-06-05T02:56:35.5341092Z             },
2026-06-05T02:56:35.5341664Z             {
2026-06-05T02:56:35.5342336Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.5343438Z               "line": 320
2026-06-05T02:56:35.5344123Z             }
2026-06-05T02:56:35.5344675Z           ]
2026-06-05T02:56:35.5345372Z         },
2026-06-05T02:56:35.5345908Z         "unit": {
2026-06-05T02:56:35.5346510Z           "complete": true,
2026-06-05T02:56:35.5347180Z           "evidence": [
2026-06-05T02:56:35.5347809Z             {
2026-06-05T02:56:35.5348503Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5349405Z               "line": 400
2026-06-05T02:56:35.5350056Z             }
2026-06-05T02:56:35.5350629Z           ]
2026-06-05T02:56:35.5351176Z         }
2026-06-05T02:56:35.5351713Z       }
2026-06-05T02:56:35.5352232Z     },
2026-06-05T02:56:35.5352757Z     {
2026-06-05T02:56:35.5353324Z       "id": "REQ-DAEMON-4",
2026-06-05T02:56:35.5354129Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-05T02:56:35.5354987Z       "requiredStages": [
2026-06-05T02:56:35.5355641Z         "impl",
2026-06-05T02:56:35.5356225Z         "unit",
2026-06-05T02:56:35.5356808Z         "int"
2026-06-05T02:56:35.5357368Z       ],
2026-06-05T02:56:35.5357912Z       "stages": {
2026-06-05T02:56:35.5358603Z         "doc": {
2026-06-05T02:56:35.5359900Z           "complete": false,
2026-06-05T02:56:35.5360815Z           "evidence": []
2026-06-05T02:56:35.5361638Z         },
2026-06-05T02:56:35.5362884Z         "impl": {
2026-06-05T02:56:35.5363636Z           "complete": true,
2026-06-05T02:56:35.5364448Z           "evidence": [
2026-06-05T02:56:35.5365107Z             {
2026-06-05T02:56:35.5365820Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5366717Z               "line": 347
2026-06-05T02:56:35.5367375Z             },
2026-06-05T02:56:35.5367954Z             {
2026-06-05T02:56:35.5368657Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5369799Z               "line": 409
2026-06-05T02:56:35.5374318Z             },
2026-06-05T02:56:35.5375073Z             {
2026-06-05T02:56:35.5375820Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5376687Z               "line": 431
2026-06-05T02:56:35.5377323Z             }
2026-06-05T02:56:35.5377892Z           ]
2026-06-05T02:56:35.5378436Z         },
2026-06-05T02:56:35.5378979Z         "int": {
2026-06-05T02:56:35.5379676Z           "complete": true,
2026-06-05T02:56:35.5380342Z           "evidence": [
2026-06-05T02:56:35.5380975Z             {
2026-06-05T02:56:35.5381676Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T02:56:35.5382537Z               "line": 34
2026-06-05T02:56:35.5383158Z             }
2026-06-05T02:56:35.5383711Z           ]
2026-06-05T02:56:35.5384244Z         },
2026-06-05T02:56:35.5384781Z         "unit": {
2026-06-05T02:56:35.5385442Z           "complete": true,
2026-06-05T02:56:35.5386106Z           "evidence": [
2026-06-05T02:56:35.5386724Z             {
2026-06-05T02:56:35.5387398Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.5388233Z               "line": 353
2026-06-05T02:56:35.5388870Z             },
2026-06-05T02:56:35.5389474Z             {
2026-06-05T02:56:35.5390158Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5391011Z               "line": 725
2026-06-05T02:56:35.5391638Z             },
2026-06-05T02:56:35.5392206Z             {
2026-06-05T02:56:35.5392892Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5393723Z               "line": 776
2026-06-05T02:56:35.5394353Z             },
2026-06-05T02:56:35.5394915Z             {
2026-06-05T02:56:35.5395591Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5396429Z               "line": 800
2026-06-05T02:56:35.5397057Z             },
2026-06-05T02:56:35.5397620Z             {
2026-06-05T02:56:35.5398309Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5399151Z               "line": 830
2026-06-05T02:56:35.5399861Z             }
2026-06-05T02:56:35.5400870Z           ]
2026-06-05T02:56:35.5401475Z         }
2026-06-05T02:56:35.5402013Z       }
2026-06-05T02:56:35.5402539Z     },
2026-06-05T02:56:35.5403234Z     {
2026-06-05T02:56:35.5403796Z       "id": "REQ-DOCS-1",
2026-06-05T02:56:35.5404794Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-05T02:56:35.5405888Z       "requiredStages": [],
2026-06-05T02:56:35.5406549Z       "stages": {
2026-06-05T02:56:35.5407129Z         "doc": {
2026-06-05T02:56:35.5407738Z           "complete": false,
2026-06-05T02:56:35.5408413Z           "evidence": []
2026-06-05T02:56:35.5409037Z         },
2026-06-05T02:56:35.5409646Z         "impl": {
2026-06-05T02:56:35.5410246Z           "complete": false,
2026-06-05T02:56:35.5410924Z           "evidence": []
2026-06-05T02:56:35.5411542Z         },
2026-06-05T02:56:35.5412085Z         "int": {
2026-06-05T02:56:35.5412676Z           "complete": false,
2026-06-05T02:56:35.5413339Z           "evidence": []
2026-06-05T02:56:35.5413955Z         },
2026-06-05T02:56:35.5414519Z         "unit": {
2026-06-05T02:56:35.5415127Z           "complete": false,
2026-06-05T02:56:35.5415813Z           "evidence": []
2026-06-05T02:56:35.5416442Z         }
2026-06-05T02:56:35.5416974Z       }
2026-06-05T02:56:35.5417504Z     },
2026-06-05T02:56:35.5418014Z     {
2026-06-05T02:56:35.5418556Z       "id": "REQ-DOCS-2",
2026-06-05T02:56:35.5419450Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-05T02:56:35.5420412Z       "requiredStages": [],
2026-06-05T02:56:35.5421062Z       "stages": {
2026-06-05T02:56:35.5421648Z         "doc": {
2026-06-05T02:56:35.5422235Z           "complete": false,
2026-06-05T02:56:35.5422903Z           "evidence": []
2026-06-05T02:56:35.5423517Z         },
2026-06-05T02:56:35.5424055Z         "impl": {
2026-06-05T02:56:35.5424645Z           "complete": false,
2026-06-05T02:56:35.5425315Z           "evidence": []
2026-06-05T02:56:35.5425928Z         },
2026-06-05T02:56:35.5426466Z         "int": {
2026-06-05T02:56:35.5427063Z           "complete": false,
2026-06-05T02:56:35.5431110Z           "evidence": []
2026-06-05T02:56:35.5431881Z         },
2026-06-05T02:56:35.5432452Z         "unit": {
2026-06-05T02:56:35.5433050Z           "complete": false,
2026-06-05T02:56:35.5433713Z           "evidence": []
2026-06-05T02:56:35.5434321Z         }
2026-06-05T02:56:35.5434844Z       }
2026-06-05T02:56:35.5435355Z     },
2026-06-05T02:56:35.5435884Z     {
2026-06-05T02:56:35.5436419Z       "id": "REQ-DOCS-3",
2026-06-05T02:56:35.5438323Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-05T02:56:35.5439546Z       "requiredStages": [],
2026-06-05T02:56:35.5440230Z       "stages": {
2026-06-05T02:56:35.5440798Z         "doc": {
2026-06-05T02:56:35.5441386Z           "complete": false,
2026-06-05T02:56:35.5442054Z           "evidence": []
2026-06-05T02:56:35.5442676Z         },
2026-06-05T02:56:35.5443209Z         "impl": {
2026-06-05T02:56:35.5443798Z           "complete": false,
2026-06-05T02:56:35.5444487Z           "evidence": []
2026-06-05T02:56:35.5445108Z         },
2026-06-05T02:56:35.5445642Z         "int": {
2026-06-05T02:56:35.5446255Z           "complete": false,
2026-06-05T02:56:35.5446912Z           "evidence": []
2026-06-05T02:56:35.5447535Z         },
2026-06-05T02:56:35.5448086Z         "unit": {
2026-06-05T02:56:35.5448682Z           "complete": false,
2026-06-05T02:56:35.5449385Z           "evidence": []
2026-06-05T02:56:35.5450020Z         }
2026-06-05T02:56:35.5450543Z       }
2026-06-05T02:56:35.5451059Z     },
2026-06-05T02:56:35.5451569Z     {
2026-06-05T02:56:35.5452107Z       "id": "REQ-DOCS-4",
2026-06-05T02:56:35.5453062Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-05T02:56:35.5454195Z       "requiredStages": [],
2026-06-05T02:56:35.5454841Z       "stages": {
2026-06-05T02:56:35.5455416Z         "doc": {
2026-06-05T02:56:35.5456010Z           "complete": false,
2026-06-05T02:56:35.5456663Z           "evidence": []
2026-06-05T02:56:35.5457554Z         },
2026-06-05T02:56:35.5458129Z         "impl": {
2026-06-05T02:56:35.5458721Z           "complete": false,
2026-06-05T02:56:35.5459596Z           "evidence": []
2026-06-05T02:56:35.5460233Z         },
2026-06-05T02:56:35.5460779Z         "int": {
2026-06-05T02:56:35.5461382Z           "complete": false,
2026-06-05T02:56:35.5462057Z           "evidence": []
2026-06-05T02:56:35.5462690Z         },
2026-06-05T02:56:35.5463229Z         "unit": {
2026-06-05T02:56:35.5463823Z           "complete": false,
2026-06-05T02:56:35.5464497Z           "evidence": []
2026-06-05T02:56:35.5465135Z         }
2026-06-05T02:56:35.5465672Z       }
2026-06-05T02:56:35.5466193Z     },
2026-06-05T02:56:35.5466708Z     {
2026-06-05T02:56:35.5467248Z       "id": "REQ-DOCS-5",
2026-06-05T02:56:35.5468218Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-05T02:56:35.5469350Z       "requiredStages": [],
2026-06-05T02:56:35.5470015Z       "stages": {
2026-06-05T02:56:35.5470612Z         "doc": {
2026-06-05T02:56:35.5471227Z           "complete": false,
2026-06-05T02:56:35.5471898Z           "evidence": []
2026-06-05T02:56:35.5472526Z         },
2026-06-05T02:56:35.5473068Z         "impl": {
2026-06-05T02:56:35.5473671Z           "complete": false,
2026-06-05T02:56:35.5474344Z           "evidence": []
2026-06-05T02:56:35.5474973Z         },
2026-06-05T02:56:35.5475511Z         "int": {
2026-06-05T02:56:35.5476119Z           "complete": false,
2026-06-05T02:56:35.5476786Z           "evidence": []
2026-06-05T02:56:35.5477401Z         },
2026-06-05T02:56:35.5477939Z         "unit": {
2026-06-05T02:56:35.5478537Z           "complete": false,
2026-06-05T02:56:35.5479265Z           "evidence": []
2026-06-05T02:56:35.5479895Z         }
2026-06-05T02:56:35.5480427Z       }
2026-06-05T02:56:35.5480940Z     },
2026-06-05T02:56:35.5481463Z     {
2026-06-05T02:56:35.5482026Z       "id": "REQ-EP-1",
2026-06-05T02:56:35.5482786Z       "title": "Day-one endpoint types; open type system",
2026-06-05T02:56:35.5483665Z       "requiredStages": [
2026-06-05T02:56:35.5484297Z         "impl",
2026-06-05T02:56:35.5488155Z         "unit"
2026-06-05T02:56:35.5488892Z       ],
2026-06-05T02:56:35.5489536Z       "stages": {
2026-06-05T02:56:35.5490122Z         "doc": {
2026-06-05T02:56:35.5490722Z           "complete": false,
2026-06-05T02:56:35.5491408Z           "evidence": []
2026-06-05T02:56:35.5492031Z         },
2026-06-05T02:56:35.5492569Z         "impl": {
2026-06-05T02:56:35.5493169Z           "complete": true,
2026-06-05T02:56:35.5493830Z           "evidence": [
2026-06-05T02:56:35.5494438Z             {
2026-06-05T02:56:35.5495102Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5495939Z               "line": 77
2026-06-05T02:56:35.5496555Z             },
2026-06-05T02:56:35.5497101Z             {
2026-06-05T02:56:35.5497759Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5498576Z               "line": 94
2026-06-05T02:56:35.5499229Z             }
2026-06-05T02:56:35.5499778Z           ]
2026-06-05T02:56:35.5500305Z         },
2026-06-05T02:56:35.5500846Z         "int": {
2026-06-05T02:56:35.5501445Z           "complete": false,
2026-06-05T02:56:35.5502111Z           "evidence": []
2026-06-05T02:56:35.5502726Z         },
2026-06-05T02:56:35.5503270Z         "unit": {
2026-06-05T02:56:35.5503857Z           "complete": true,
2026-06-05T02:56:35.5504511Z           "evidence": [
2026-06-05T02:56:35.5505109Z             {
2026-06-05T02:56:35.5505767Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5506602Z               "line": 161
2026-06-05T02:56:35.5507220Z             },
2026-06-05T02:56:35.5507770Z             {
2026-06-05T02:56:35.5508473Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5509353Z               "line": 178
2026-06-05T02:56:35.5509980Z             }
2026-06-05T02:56:35.5510620Z           ]
2026-06-05T02:56:35.5511555Z         }
2026-06-05T02:56:35.5512419Z       }
2026-06-05T02:56:35.5513705Z     },
2026-06-05T02:56:35.5514423Z     {
2026-06-05T02:56:35.5515099Z       "id": "REQ-EP-2",
2026-06-05T02:56:35.5516330Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-05T02:56:35.5517512Z       "requiredStages": [
2026-06-05T02:56:35.5518316Z         "impl",
2026-06-05T02:56:35.5518980Z         "unit"
2026-06-05T02:56:35.5519744Z       ],
2026-06-05T02:56:35.5520375Z       "stages": {
2026-06-05T02:56:35.5521013Z         "doc": {
2026-06-05T02:56:35.5521679Z           "complete": false,
2026-06-05T02:56:35.5522461Z           "evidence": []
2026-06-05T02:56:35.5523150Z         },
2026-06-05T02:56:35.5523757Z         "impl": {
2026-06-05T02:56:35.5524415Z           "complete": true,
2026-06-05T02:56:35.5525150Z           "evidence": [
2026-06-05T02:56:35.5525837Z             {
2026-06-05T02:56:35.5526606Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5527518Z               "line": 114
2026-06-05T02:56:35.5528327Z             },
2026-06-05T02:56:35.5528960Z             {
2026-06-05T02:56:35.5529991Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5530890Z               "line": 131
2026-06-05T02:56:35.5531566Z             },
2026-06-05T02:56:35.5532159Z             {
2026-06-05T02:56:35.5532902Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5533783Z               "line": 138
2026-06-05T02:56:35.5534462Z             }
2026-06-05T02:56:35.5535040Z           ]
2026-06-05T02:56:35.5535603Z         },
2026-06-05T02:56:35.5536160Z         "int": {
2026-06-05T02:56:35.5536801Z           "complete": false,
2026-06-05T02:56:35.5537519Z           "evidence": []
2026-06-05T02:56:35.5538173Z         },
2026-06-05T02:56:35.5538777Z         "unit": {
2026-06-05T02:56:35.5539839Z           "complete": true,
2026-06-05T02:56:35.5540807Z           "evidence": [
2026-06-05T02:56:35.5541532Z             {
2026-06-05T02:56:35.5542301Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5543256Z               "line": 193
2026-06-05T02:56:35.5544006Z             },
2026-06-05T02:56:35.5544638Z             {
2026-06-05T02:56:35.5545414Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5546334Z               "line": 211
2026-06-05T02:56:35.5553956Z             },
2026-06-05T02:56:35.5554608Z             {
2026-06-05T02:56:35.5555302Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-05T02:56:35.5556163Z               "line": 224
2026-06-05T02:56:35.5556804Z             }
2026-06-05T02:56:35.5557378Z           ]
2026-06-05T02:56:35.5557928Z         }
2026-06-05T02:56:35.5558487Z       }
2026-06-05T02:56:35.5559044Z     },
2026-06-05T02:56:35.5559885Z     {
2026-06-05T02:56:35.5560620Z       "id": "REQ-EP-3",
2026-06-05T02:56:35.5561595Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-05T02:56:35.5562701Z       "requiredStages": [
2026-06-05T02:56:35.5563393Z         "impl",
2026-06-05T02:56:35.5564038Z         "unit"
2026-06-05T02:56:35.5564650Z       ],
2026-06-05T02:56:35.5565210Z       "stages": {
2026-06-05T02:56:35.5565834Z         "doc": {
2026-06-05T02:56:35.5566453Z           "complete": false,
2026-06-05T02:56:35.5567172Z           "evidence": []
2026-06-05T02:56:35.5567824Z         },
2026-06-05T02:56:35.5568383Z         "impl": {
2026-06-05T02:56:35.5569002Z           "complete": true,
2026-06-05T02:56:35.5570115Z           "evidence": [
2026-06-05T02:56:35.5570825Z             {
2026-06-05T02:56:35.5571552Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5572426Z               "line": 31
2026-06-05T02:56:35.5573125Z             },
2026-06-05T02:56:35.5573728Z             {
2026-06-05T02:56:35.5574432Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5575302Z               "line": 49
2026-06-05T02:56:35.5575953Z             }
2026-06-05T02:56:35.5576550Z           ]
2026-06-05T02:56:35.5577113Z         },
2026-06-05T02:56:35.5578138Z         "int": {
2026-06-05T02:56:35.5578826Z           "complete": false,
2026-06-05T02:56:35.5579814Z           "evidence": []
2026-06-05T02:56:35.5580892Z         },
2026-06-05T02:56:35.5581482Z         "unit": {
2026-06-05T02:56:35.5582113Z           "complete": true,
2026-06-05T02:56:35.5582808Z           "evidence": [
2026-06-05T02:56:35.5583461Z             {
2026-06-05T02:56:35.5584159Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5585036Z               "line": 156
2026-06-05T02:56:35.5585716Z             },
2026-06-05T02:56:35.5586315Z             {
2026-06-05T02:56:35.5587031Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5587905Z               "line": 164
2026-06-05T02:56:35.5588563Z             },
2026-06-05T02:56:35.5589152Z             {
2026-06-05T02:56:35.5590285Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5591147Z               "line": 177
2026-06-05T02:56:35.5591824Z             },
2026-06-05T02:56:35.5592441Z             {
2026-06-05T02:56:35.5593174Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5594051Z               "line": 197
2026-06-05T02:56:35.5594713Z             },
2026-06-05T02:56:35.5595289Z             {
2026-06-05T02:56:35.5596009Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5596925Z               "line": 213
2026-06-05T02:56:35.5597612Z             },
2026-06-05T02:56:35.5598197Z             {
2026-06-05T02:56:35.5598895Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-05T02:56:35.5600073Z               "line": 227
2026-06-05T02:56:35.5600983Z             }
2026-06-05T02:56:35.5601576Z           ]
2026-06-05T02:56:35.5602162Z         }
2026-06-05T02:56:35.5602724Z       }
2026-06-05T02:56:35.5603273Z     },
2026-06-05T02:56:35.5603817Z     {
2026-06-05T02:56:35.5604406Z       "id": "REQ-EP-4",
2026-06-05T02:56:35.5605284Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-05T02:56:35.5606275Z       "requiredStages": [
2026-06-05T02:56:35.5607045Z         "impl",
2026-06-05T02:56:35.5607658Z         "unit"
2026-06-05T02:56:35.5608289Z       ],
2026-06-05T02:56:35.5608865Z       "stages": {
2026-06-05T02:56:35.5609734Z         "doc": {
2026-06-05T02:56:35.5610562Z           "complete": false,
2026-06-05T02:56:35.5611287Z           "evidence": []
2026-06-05T02:56:35.5611998Z         },
2026-06-05T02:56:35.5620443Z         "impl": {
2026-06-05T02:56:35.5621436Z           "complete": true,
2026-06-05T02:56:35.5622193Z           "evidence": [
2026-06-05T02:56:35.5622888Z             {
2026-06-05T02:56:35.5623650Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.5624591Z               "line": 419
2026-06-05T02:56:35.5625301Z             },
2026-06-05T02:56:35.5625960Z             {
2026-06-05T02:56:35.5626693Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.5627622Z               "line": 631
2026-06-05T02:56:35.5628408Z             },
2026-06-05T02:56:35.5629103Z             {
2026-06-05T02:56:35.5629990Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5631041Z               "line": 705
2026-06-05T02:56:35.5631768Z             },
2026-06-05T02:56:35.5632419Z             {
2026-06-05T02:56:35.5633194Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5634229Z               "line": 83
2026-06-05T02:56:35.5635025Z             },
2026-06-05T02:56:35.5635738Z             {
2026-06-05T02:56:35.5636454Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5637419Z               "line": 407
2026-06-05T02:56:35.5638106Z             },
2026-06-05T02:56:35.5638714Z             {
2026-06-05T02:56:35.5639513Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5640535Z               "line": 478
2026-06-05T02:56:35.5641201Z             },
2026-06-05T02:56:35.5641792Z             {
2026-06-05T02:56:35.5642947Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5643908Z               "line": 181
2026-06-05T02:56:35.5644575Z             },
2026-06-05T02:56:35.5645183Z             {
2026-06-05T02:56:35.5646155Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5647030Z               "line": 306
2026-06-05T02:56:35.5647683Z             },
2026-06-05T02:56:35.5648281Z             {
2026-06-05T02:56:35.5649017Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-05T02:56:35.5650338Z               "line": 613
2026-06-05T02:56:35.5651004Z             }
2026-06-05T02:56:35.5651574Z           ]
2026-06-05T02:56:35.5652120Z         },
2026-06-05T02:56:35.5652685Z         "int": {
2026-06-05T02:56:35.5653300Z           "complete": false,
2026-06-05T02:56:35.5654031Z           "evidence": []
2026-06-05T02:56:35.5654715Z         },
2026-06-05T02:56:35.5655316Z         "unit": {
2026-06-05T02:56:35.5655941Z           "complete": true,
2026-06-05T02:56:35.5656617Z           "evidence": [
2026-06-05T02:56:35.5657285Z             {
2026-06-05T02:56:35.5657981Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-05T02:56:35.5658847Z               "line": 551
2026-06-05T02:56:35.5659797Z             },
2026-06-05T02:56:35.5660559Z             {
2026-06-05T02:56:35.5661277Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-05T02:56:35.5662158Z               "line": 75
2026-06-05T02:56:35.5662806Z             },
2026-06-05T02:56:35.5663401Z             {
2026-06-05T02:56:35.5664108Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-05T02:56:35.5664983Z               "line": 131
2026-06-05T02:56:35.5665645Z             }
2026-06-05T02:56:35.5666223Z           ]
2026-06-05T02:56:35.5666808Z         }
2026-06-05T02:56:35.5667372Z       }
2026-06-05T02:56:35.5667895Z     },
2026-06-05T02:56:35.5668442Z     {
2026-06-05T02:56:35.5669023Z       "id": "REQ-EP-5",
2026-06-05T02:56:35.5672079Z       "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-05T02:56:35.5674800Z       "requiredStages": [
2026-06-05T02:56:35.5675493Z         "impl",
2026-06-05T02:56:35.5676102Z         "unit"
2026-06-05T02:56:35.5676679Z       ],
2026-06-05T02:56:35.5677227Z       "stages": {
2026-06-05T02:56:35.5677855Z         "doc": {
2026-06-05T02:56:35.5678513Z           "complete": false,
2026-06-05T02:56:35.5679327Z           "evidence": []
2026-06-05T02:56:35.5680403Z         },
2026-06-05T02:56:35.5681008Z         "impl": {
2026-06-05T02:56:35.5681662Z           "complete": true,
2026-06-05T02:56:35.5682369Z           "evidence": [
2026-06-05T02:56:35.5683056Z             {
2026-06-05T02:56:35.5697709Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T02:56:35.5699058Z               "line": 18
2026-06-05T02:56:35.5700081Z             },
2026-06-05T02:56:35.5700726Z             {
2026-06-05T02:56:35.5701452Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T02:56:35.5702358Z               "line": 58
2026-06-05T02:56:35.5703044Z             },
2026-06-05T02:56:35.5703637Z             {
2026-06-05T02:56:35.5704368Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T02:56:35.5705250Z               "line": 101
2026-06-05T02:56:35.5705928Z             },
2026-06-05T02:56:35.5706525Z             {
2026-06-05T02:56:35.5707244Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5708119Z               "line": 22
2026-06-05T02:56:35.5708754Z             },
2026-06-05T02:56:35.5709563Z             {
2026-06-05T02:56:35.5710426Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5711363Z               "line": 129
2026-06-05T02:56:35.5712066Z             },
2026-06-05T02:56:35.5712683Z             {
2026-06-05T02:56:35.5713427Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5714843Z               "line": 156
2026-06-05T02:56:35.5715590Z             },
2026-06-05T02:56:35.5716189Z             {
2026-06-05T02:56:35.5717142Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5718106Z               "line": 178
2026-06-05T02:56:35.5718778Z             },
2026-06-05T02:56:35.5719629Z             {
2026-06-05T02:56:35.5720571Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5721469Z               "line": 203
2026-06-05T02:56:35.5722140Z             },
2026-06-05T02:56:35.5722726Z             {
2026-06-05T02:56:35.5723495Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5724489Z               "line": 226
2026-06-05T02:56:35.5725221Z             },
2026-06-05T02:56:35.5726058Z             {
2026-06-05T02:56:35.5726998Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5728063Z               "line": 246
2026-06-05T02:56:35.5728879Z             },
2026-06-05T02:56:35.5729795Z             {
2026-06-05T02:56:35.5730549Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.5731430Z               "line": 81
2026-06-05T02:56:35.5732437Z             },
2026-06-05T02:56:35.5733043Z             {
2026-06-05T02:56:35.5733712Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5734589Z               "line": 1715
2026-06-05T02:56:35.5735277Z             },
2026-06-05T02:56:35.5735865Z             {
2026-06-05T02:56:35.5736515Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5737763Z               "line": 1832
2026-06-05T02:56:35.5738500Z             },
2026-06-05T02:56:35.5739109Z             {
2026-06-05T02:56:35.5739888Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5740752Z               "line": 1982
2026-06-05T02:56:35.5741460Z             },
2026-06-05T02:56:35.5742094Z             {
2026-06-05T02:56:35.5742766Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5743634Z               "line": 2275
2026-06-05T02:56:35.5744330Z             }
2026-06-05T02:56:35.5744932Z           ]
2026-06-05T02:56:35.5745536Z         },
2026-06-05T02:56:35.5746157Z         "int": {
2026-06-05T02:56:35.5746790Z           "complete": true,
2026-06-05T02:56:35.5747476Z           "evidence": [
2026-06-05T02:56:35.5748104Z             {
2026-06-05T02:56:35.5748775Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T02:56:35.5750001Z               "line": 15
2026-06-05T02:56:35.5751015Z             }
2026-06-05T02:56:35.5751705Z           ]
2026-06-05T02:56:35.5752240Z         },
2026-06-05T02:56:35.5752800Z         "unit": {
2026-06-05T02:56:35.5753404Z           "complete": true,
2026-06-05T02:56:35.5754074Z           "evidence": [
2026-06-05T02:56:35.5754681Z             {
2026-06-05T02:56:35.5755359Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T02:56:35.5756203Z               "line": 149
2026-06-05T02:56:35.5756828Z             },
2026-06-05T02:56:35.5757411Z             {
2026-06-05T02:56:35.5758097Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-05T02:56:35.5766239Z               "line": 206
2026-06-05T02:56:35.5766927Z             },
2026-06-05T02:56:35.5767514Z             {
2026-06-05T02:56:35.5768195Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5769041Z               "line": 262
2026-06-05T02:56:35.5769901Z             },
2026-06-05T02:56:35.5770459Z             {
2026-06-05T02:56:35.5771117Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.5771949Z               "line": 285
2026-06-05T02:56:35.5772562Z             },
2026-06-05T02:56:35.5773109Z             {
2026-06-05T02:56:35.5773760Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.5774565Z               "line": 459
2026-06-05T02:56:35.5775180Z             },
2026-06-05T02:56:35.5775736Z             {
2026-06-05T02:56:35.5776348Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5777563Z               "line": 2697
2026-06-05T02:56:35.5778229Z             },
2026-06-05T02:56:35.5778789Z             {
2026-06-05T02:56:35.5780015Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5780804Z               "line": 2755
2026-06-05T02:56:35.5781432Z             },
2026-06-05T02:56:35.5781986Z             {
2026-06-05T02:56:35.5782604Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5783395Z               "line": 3248
2026-06-05T02:56:35.5784019Z             },
2026-06-05T02:56:35.5784573Z             {
2026-06-05T02:56:35.5785176Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.5785945Z               "line": 3303
2026-06-05T02:56:35.5786569Z             }
2026-06-05T02:56:35.5787108Z           ]
2026-06-05T02:56:35.5787629Z         }
2026-06-05T02:56:35.5788150Z       }
2026-06-05T02:56:35.5788674Z     },
2026-06-05T02:56:35.5789226Z     {
2026-06-05T02:56:35.5790111Z       "id": "REQ-FRONT-1",
2026-06-05T02:56:35.5791047Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-05T02:56:35.5792065Z       "requiredStages": [],
2026-06-05T02:56:35.5792727Z       "stages": {
2026-06-05T02:56:35.5793308Z         "doc": {
2026-06-05T02:56:35.5793900Z           "complete": false,
2026-06-05T02:56:35.5794566Z           "evidence": []
2026-06-05T02:56:35.5795185Z         },
2026-06-05T02:56:35.5795721Z         "impl": {
2026-06-05T02:56:35.5795979Z           "complete": false,
2026-06-05T02:56:35.5796240Z           "evidence": []
2026-06-05T02:56:35.5796467Z         },
2026-06-05T02:56:35.5796710Z         "int": {
2026-06-05T02:56:35.5796974Z           "complete": false,
2026-06-05T02:56:35.5797219Z           "evidence": []
2026-06-05T02:56:35.5797457Z         },
2026-06-05T02:56:35.5797690Z         "unit": {
2026-06-05T02:56:35.5797955Z           "complete": false,
2026-06-05T02:56:35.5798203Z           "evidence": []
2026-06-05T02:56:35.5798442Z         }
2026-06-05T02:56:35.5798678Z       }
2026-06-05T02:56:35.5798912Z     },
2026-06-05T02:56:35.5799146Z     {
2026-06-05T02:56:35.5799841Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-05T02:56:35.5800377Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-05T02:56:35.5800638Z       "requiredStages": [
2026-06-05T02:56:35.5800888Z         "impl",
2026-06-05T02:56:35.5801130Z         "unit"
2026-06-05T02:56:35.5801359Z       ],
2026-06-05T02:56:35.5801609Z       "stages": {
2026-06-05T02:56:35.5801839Z         "doc": {
2026-06-05T02:56:35.5802103Z           "complete": false,
2026-06-05T02:56:35.5802344Z           "evidence": []
2026-06-05T02:56:35.5802580Z         },
2026-06-05T02:56:35.5802821Z         "impl": {
2026-06-05T02:56:35.5803072Z           "complete": true,
2026-06-05T02:56:35.5803322Z           "evidence": [
2026-06-05T02:56:35.5803551Z             {
2026-06-05T02:56:35.5803909Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.5804156Z               "line": 131
2026-06-05T02:56:35.5804405Z             },
2026-06-05T02:56:35.5804642Z             {
2026-06-05T02:56:35.5804963Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.5805235Z               "line": 18
2026-06-05T02:56:35.5805466Z             },
2026-06-05T02:56:35.5805706Z             {
2026-06-05T02:56:35.5806030Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.5806284Z               "line": 98
2026-06-05T02:56:35.5806519Z             }
2026-06-05T02:56:35.5806747Z           ]
2026-06-05T02:56:35.5806982Z         },
2026-06-05T02:56:35.5807216Z         "int": {
2026-06-05T02:56:35.5807481Z           "complete": false,
2026-06-05T02:56:35.5807723Z           "evidence": []
2026-06-05T02:56:35.5807962Z         },
2026-06-05T02:56:35.5808205Z         "unit": {
2026-06-05T02:56:35.5808456Z           "complete": true,
2026-06-05T02:56:35.5808707Z           "evidence": [
2026-06-05T02:56:35.5808932Z             {
2026-06-05T02:56:35.5809336Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.5809779Z               "line": 515
2026-06-05T02:56:35.5810046Z             },
2026-06-05T02:56:35.5810288Z             {
2026-06-05T02:56:35.5810792Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.5811047Z               "line": 156
2026-06-05T02:56:35.5811279Z             },
2026-06-05T02:56:35.5811516Z             {
2026-06-05T02:56:35.5811835Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.5812099Z               "line": 218
2026-06-05T02:56:35.5812338Z             }
2026-06-05T02:56:35.5812568Z           ]
2026-06-05T02:56:35.5812808Z         }
2026-06-05T02:56:35.5813031Z       }
2026-06-05T02:56:35.5813263Z     },
2026-06-05T02:56:35.5813486Z     {
2026-06-05T02:56:35.5813831Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-05T02:56:35.5815565Z       "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-05T02:56:35.5815827Z       "requiredStages": [
2026-06-05T02:56:35.5816072Z         "impl",
2026-06-05T02:56:35.5816313Z         "unit"
2026-06-05T02:56:35.5816550Z       ],
2026-06-05T02:56:35.5816801Z       "stages": {
2026-06-05T02:56:35.5817038Z         "doc": {
2026-06-05T02:56:35.5822759Z           "complete": false,
2026-06-05T02:56:35.5823128Z           "evidence": []
2026-06-05T02:56:35.5823418Z         },
2026-06-05T02:56:35.5823681Z         "impl": {
2026-06-05T02:56:35.5823956Z           "complete": true,
2026-06-05T02:56:35.5824213Z           "evidence": [
2026-06-05T02:56:35.5824447Z             {
2026-06-05T02:56:35.5824825Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T02:56:35.5825069Z               "line": 22
2026-06-05T02:56:35.5825311Z             },
2026-06-05T02:56:35.5825539Z             {
2026-06-05T02:56:35.5825876Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.5826173Z               "line": 417
2026-06-05T02:56:35.5826409Z             },
2026-06-05T02:56:35.5826651Z             {
2026-06-05T02:56:35.5826991Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T02:56:35.5827256Z               "line": 17
2026-06-05T02:56:35.5827486Z             },
2026-06-05T02:56:35.5827719Z             {
2026-06-05T02:56:35.5828068Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T02:56:35.5828317Z               "line": 125
2026-06-05T02:56:35.5828556Z             },
2026-06-05T02:56:35.5828783Z             {
2026-06-05T02:56:35.5829210Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.5829777Z               "line": 178
2026-06-05T02:56:35.5830023Z             },
2026-06-05T02:56:35.5830258Z             {
2026-06-05T02:56:35.5830624Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.5830881Z               "line": 206
2026-06-05T02:56:35.5831119Z             },
2026-06-05T02:56:35.5831367Z             {
2026-06-05T02:56:35.5831731Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.5831985Z               "line": 232
2026-06-05T02:56:35.5832238Z             },
2026-06-05T02:56:35.5832464Z             {
2026-06-05T02:56:35.5832818Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.5833067Z               "line": 122
2026-06-05T02:56:35.5833302Z             },
2026-06-05T02:56:35.5833530Z             {
2026-06-05T02:56:35.5833885Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.5834147Z               "line": 222
2026-06-05T02:56:35.5834379Z             }
2026-06-05T02:56:35.5834619Z           ]
2026-06-05T02:56:35.5834844Z         },
2026-06-05T02:56:35.5835086Z         "int": {
2026-06-05T02:56:35.5835346Z           "complete": false,
2026-06-05T02:56:35.5835602Z           "evidence": []
2026-06-05T02:56:35.5835840Z         },
2026-06-05T02:56:35.5836074Z         "unit": {
2026-06-05T02:56:35.5836586Z           "complete": true,
2026-06-05T02:56:35.5836866Z           "evidence": [
2026-06-05T02:56:35.5837108Z             {
2026-06-05T02:56:35.5837465Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T02:56:35.5837864Z               "line": 53
2026-06-05T02:56:35.5838105Z             },
2026-06-05T02:56:35.5838332Z             {
2026-06-05T02:56:35.5838700Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T02:56:35.5838945Z               "line": 60
2026-06-05T02:56:35.5839243Z             },
2026-06-05T02:56:35.5839474Z             {
2026-06-05T02:56:35.5840034Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-05T02:56:35.5840445Z               "line": 72
2026-06-05T02:56:35.5840675Z             },
2026-06-05T02:56:35.5840913Z             {
2026-06-05T02:56:35.5841249Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.5841503Z               "line": 298
2026-06-05T02:56:35.5841744Z             },
2026-06-05T02:56:35.5841973Z             {
2026-06-05T02:56:35.5842337Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T02:56:35.5842580Z               "line": 247
2026-06-05T02:56:35.5842830Z             },
2026-06-05T02:56:35.5843059Z             {
2026-06-05T02:56:35.5843413Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T02:56:35.5843665Z               "line": 282
2026-06-05T02:56:35.5843899Z             },
2026-06-05T02:56:35.5844138Z             {
2026-06-05T02:56:35.5844480Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-05T02:56:35.5844735Z               "line": 313
2026-06-05T02:56:35.5844969Z             },
2026-06-05T02:56:35.5845209Z             {
2026-06-05T02:56:35.5845585Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.5845832Z               "line": 613
2026-06-05T02:56:35.5846067Z             },
2026-06-05T02:56:35.5846296Z             {
2026-06-05T02:56:35.5846650Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.5846899Z               "line": 383
2026-06-05T02:56:35.5847143Z             },
2026-06-05T02:56:35.5847381Z             {
2026-06-05T02:56:35.5847742Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.5847995Z               "line": 420
2026-06-05T02:56:35.5848220Z             }
2026-06-05T02:56:35.5848457Z           ]
2026-06-05T02:56:35.5848682Z         }
2026-06-05T02:56:35.5848916Z       }
2026-06-05T02:56:35.5849153Z     },
2026-06-05T02:56:35.5849713Z     {
2026-06-05T02:56:35.5850023Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-05T02:56:35.5850673Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-05T02:56:35.5850953Z       "requiredStages": [
2026-06-05T02:56:35.5851186Z         "impl",
2026-06-05T02:56:35.5851433Z         "unit"
2026-06-05T02:56:35.5851673Z       ],
2026-06-05T02:56:35.5851907Z       "stages": {
2026-06-05T02:56:35.5852148Z         "doc": {
2026-06-05T02:56:35.5852414Z           "complete": false,
2026-06-05T02:56:35.5852680Z           "evidence": []
2026-06-05T02:56:35.5852912Z         },
2026-06-05T02:56:35.5853161Z         "impl": {
2026-06-05T02:56:35.5853437Z           "complete": true,
2026-06-05T02:56:35.5853682Z           "evidence": [
2026-06-05T02:56:35.5853918Z             {
2026-06-05T02:56:35.5854247Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T02:56:35.5854500Z               "line": 164
2026-06-05T02:56:35.5854733Z             }
2026-06-05T02:56:35.5854975Z           ]
2026-06-05T02:56:35.5855219Z         },
2026-06-05T02:56:35.5855453Z         "int": {
2026-06-05T02:56:35.5855717Z           "complete": true,
2026-06-05T02:56:35.5855957Z           "evidence": [
2026-06-05T02:56:35.5856195Z             {
2026-06-05T02:56:35.5856521Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-05T02:56:35.5856775Z               "line": 44
2026-06-05T02:56:35.5857020Z             },
2026-06-05T02:56:35.5857244Z             {
2026-06-05T02:56:35.5857727Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-05T02:56:35.5857995Z               "line": 66
2026-06-05T02:56:35.5858236Z             }
2026-06-05T02:56:35.5858602Z           ]
2026-06-05T02:56:35.5858843Z         },
2026-06-05T02:56:35.5859089Z         "unit": {
2026-06-05T02:56:35.5859626Z           "complete": true,
2026-06-05T02:56:35.5860036Z           "evidence": [
2026-06-05T02:56:35.5860264Z             {
2026-06-05T02:56:35.5860611Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T02:56:35.5860854Z               "line": 181
2026-06-05T02:56:35.5861090Z             },
2026-06-05T02:56:35.5861333Z             {
2026-06-05T02:56:35.5861665Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T02:56:35.5861919Z               "line": 233
2026-06-05T02:56:35.5862154Z             },
2026-06-05T02:56:35.5862394Z             {
2026-06-05T02:56:35.5862717Z               "path": "crates/spt-term/src/reader.rs",
2026-06-05T02:56:35.5862972Z               "line": 261
2026-06-05T02:56:35.5863221Z             }
2026-06-05T02:56:35.5863452Z           ]
2026-06-05T02:56:35.5863683Z         }
2026-06-05T02:56:35.5863907Z       }
2026-06-05T02:56:35.5864157Z     },
2026-06-05T02:56:35.5864381Z     {
2026-06-05T02:56:35.5864721Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-05T02:56:35.5866031Z       "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-05T02:56:35.5866296Z       "requiredStages": [
2026-06-05T02:56:35.5866536Z         "impl",
2026-06-05T02:56:35.5866764Z         "unit",
2026-06-05T02:56:35.5867005Z         "int"
2026-06-05T02:56:35.5867242Z       ],
2026-06-05T02:56:35.5867477Z       "stages": {
2026-06-05T02:56:35.5867725Z         "doc": {
2026-06-05T02:56:35.5867987Z           "complete": false,
2026-06-05T02:56:35.5868242Z           "evidence": []
2026-06-05T02:56:35.5868470Z         },
2026-06-05T02:56:35.5873323Z         "impl": {
2026-06-05T02:56:35.5873757Z           "complete": true,
2026-06-05T02:56:35.5874041Z           "evidence": [
2026-06-05T02:56:35.5874286Z             {
2026-06-05T02:56:35.5874672Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5874924Z               "line": 150
2026-06-05T02:56:35.5875152Z             },
2026-06-05T02:56:35.5875393Z             {
2026-06-05T02:56:35.5875756Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5876008Z               "line": 169
2026-06-05T02:56:35.5876248Z             },
2026-06-05T02:56:35.5876481Z             {
2026-06-05T02:56:35.5876812Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.5877055Z               "line": 79
2026-06-05T02:56:35.5877297Z             },
2026-06-05T02:56:35.5877538Z             {
2026-06-05T02:56:35.5877849Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.5878099Z               "line": 51
2026-06-05T02:56:35.5878331Z             },
2026-06-05T02:56:35.5878573Z             {
2026-06-05T02:56:35.5878894Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.5879149Z               "line": 154
2026-06-05T02:56:35.5879788Z             },
2026-06-05T02:56:35.5880019Z             {
2026-06-05T02:56:35.5880367Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5880614Z               "line": 27
2026-06-05T02:56:35.5880853Z             },
2026-06-05T02:56:35.5881080Z             {
2026-06-05T02:56:35.5881438Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5881701Z               "line": 79
2026-06-05T02:56:35.5881931Z             },
2026-06-05T02:56:35.5882168Z             {
2026-06-05T02:56:35.5882508Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5882763Z               "line": 102
2026-06-05T02:56:35.5882991Z             },
2026-06-05T02:56:35.5883236Z             {
2026-06-05T02:56:35.5883586Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.5884071Z               "line": 108
2026-06-05T02:56:35.5884332Z             }
2026-06-05T02:56:35.5884565Z           ]
2026-06-05T02:56:35.5884936Z         },
2026-06-05T02:56:35.5885174Z         "int": {
2026-06-05T02:56:35.5885446Z           "complete": true,
2026-06-05T02:56:35.5885701Z           "evidence": [
2026-06-05T02:56:35.5885932Z             {
2026-06-05T02:56:35.5886311Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-05T02:56:35.5886558Z               "line": 35
2026-06-05T02:56:35.5886796Z             }
2026-06-05T02:56:35.5887026Z           ]
2026-06-05T02:56:35.5887265Z         },
2026-06-05T02:56:35.5887512Z         "unit": {
2026-06-05T02:56:35.5887768Z           "complete": true,
2026-06-05T02:56:35.5888026Z           "evidence": [
2026-06-05T02:56:35.5888262Z             {
2026-06-05T02:56:35.5888626Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.5888876Z               "line": 552
2026-06-05T02:56:35.5889129Z             },
2026-06-05T02:56:35.5889626Z             {
2026-06-05T02:56:35.5890138Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.5890403Z               "line": 330
2026-06-05T02:56:35.5890639Z             },
2026-06-05T02:56:35.5890877Z             {
2026-06-05T02:56:35.5891221Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5891478Z               "line": 124
2026-06-05T02:56:35.5891720Z             },
2026-06-05T02:56:35.5891946Z             {
2026-06-05T02:56:35.5892299Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5892544Z               "line": 136
2026-06-05T02:56:35.5892790Z             },
2026-06-05T02:56:35.5893021Z             {
2026-06-05T02:56:35.5893371Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5893628Z               "line": 146
2026-06-05T02:56:35.5893863Z             },
2026-06-05T02:56:35.5894103Z             {
2026-06-05T02:56:35.5894456Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5894717Z               "line": 159
2026-06-05T02:56:35.5894960Z             },
2026-06-05T02:56:35.5895200Z             {
2026-06-05T02:56:35.5895551Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-05T02:56:35.5895803Z               "line": 171
2026-06-05T02:56:35.5896045Z             },
2026-06-05T02:56:35.5896277Z             {
2026-06-05T02:56:35.5896627Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.5896887Z               "line": 207
2026-06-05T02:56:35.5897115Z             }
2026-06-05T02:56:35.5897350Z           ]
2026-06-05T02:56:35.5897577Z         }
2026-06-05T02:56:35.5897815Z       }
2026-06-05T02:56:35.5898040Z     },
2026-06-05T02:56:35.5898279Z     {
2026-06-05T02:56:35.5898628Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-05T02:56:35.5900653Z       "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-05T02:56:35.5900937Z       "requiredStages": [
2026-06-05T02:56:35.5901178Z         "impl",
2026-06-05T02:56:35.5901423Z         "unit"
2026-06-05T02:56:35.5901653Z       ],
2026-06-05T02:56:35.5901903Z       "stages": {
2026-06-05T02:56:35.5902151Z         "doc": {
2026-06-05T02:56:35.5902410Z           "complete": false,
2026-06-05T02:56:35.5902665Z           "evidence": []
2026-06-05T02:56:35.5902892Z         },
2026-06-05T02:56:35.5903139Z         "impl": {
2026-06-05T02:56:35.5903584Z           "complete": true,
2026-06-05T02:56:35.5903907Z           "evidence": [
2026-06-05T02:56:35.5904218Z             {
2026-06-05T02:56:35.5904740Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5905018Z               "line": 222
2026-06-05T02:56:35.5905252Z             },
2026-06-05T02:56:35.5905499Z             {
2026-06-05T02:56:35.5906058Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.5906348Z               "line": 382
2026-06-05T02:56:35.5906588Z             }
2026-06-05T02:56:35.5906962Z           ]
2026-06-05T02:56:35.5907202Z         },
2026-06-05T02:56:35.5907436Z         "int": {
2026-06-05T02:56:35.5907712Z           "complete": false,
2026-06-05T02:56:35.5907965Z           "evidence": []
2026-06-05T02:56:35.5908204Z         },
2026-06-05T02:56:35.5908449Z         "unit": {
2026-06-05T02:56:35.5908706Z           "complete": true,
2026-06-05T02:56:35.5908960Z           "evidence": [
2026-06-05T02:56:35.5909253Z             {
2026-06-05T02:56:35.5909638Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T02:56:35.5909888Z               "line": 149
2026-06-05T02:56:35.5910137Z             }
2026-06-05T02:56:35.5910386Z           ]
2026-06-05T02:56:35.5910616Z         }
2026-06-05T02:56:35.5910853Z       }
2026-06-05T02:56:35.5911083Z     },
2026-06-05T02:56:35.5911322Z     {
2026-06-05T02:56:35.5911628Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-05T02:56:35.5912179Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-05T02:56:35.5912459Z       "requiredStages": [
2026-06-05T02:56:35.5912699Z         "impl",
2026-06-05T02:56:35.5912939Z         "unit"
2026-06-05T02:56:35.5913165Z       ],
2026-06-05T02:56:35.5913416Z       "stages": {
2026-06-05T02:56:35.5913650Z         "doc": {
2026-06-05T02:56:35.5913923Z           "complete": false,
2026-06-05T02:56:35.5914181Z           "evidence": []
2026-06-05T02:56:35.5914416Z         },
2026-06-05T02:56:35.5914662Z         "impl": {
2026-06-05T02:56:35.5914914Z           "complete": true,
2026-06-05T02:56:35.5915180Z           "evidence": [
2026-06-05T02:56:35.5915412Z             {
2026-06-05T02:56:35.5915752Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5916008Z               "line": 40
2026-06-05T02:56:35.5916240Z             },
2026-06-05T02:56:35.5916481Z             {
2026-06-05T02:56:35.5916817Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5917070Z               "line": 98
2026-06-05T02:56:35.5917298Z             },
2026-06-05T02:56:35.5917543Z             {
2026-06-05T02:56:35.5917881Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5918126Z               "line": 209
2026-06-05T02:56:35.5918368Z             },
2026-06-05T02:56:35.5918603Z             {
2026-06-05T02:56:35.5918942Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5919257Z               "line": 291
2026-06-05T02:56:35.5919493Z             }
2026-06-05T02:56:35.5919734Z           ]
2026-06-05T02:56:35.5919970Z         },
2026-06-05T02:56:35.5924643Z         "int": {
2026-06-05T02:56:35.5925057Z           "complete": false,
2026-06-05T02:56:35.5925330Z           "evidence": []
2026-06-05T02:56:35.5925568Z         },
2026-06-05T02:56:35.5925822Z         "unit": {
2026-06-05T02:56:35.5926092Z           "complete": true,
2026-06-05T02:56:35.5926371Z           "evidence": [
2026-06-05T02:56:35.5926618Z             {
2026-06-05T02:56:35.5926956Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5927231Z               "line": 326
2026-06-05T02:56:35.5927474Z             },
2026-06-05T02:56:35.5927712Z             {
2026-06-05T02:56:35.5928046Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5928300Z               "line": 372
2026-06-05T02:56:35.5928547Z             },
2026-06-05T02:56:35.5928777Z             {
2026-06-05T02:56:35.5929114Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5929451Z               "line": 413
2026-06-05T02:56:35.5929687Z             },
2026-06-05T02:56:35.5929927Z             {
2026-06-05T02:56:35.5930252Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5930506Z               "line": 432
2026-06-05T02:56:35.5930733Z             }
2026-06-05T02:56:35.5930970Z           ]
2026-06-05T02:56:35.5931208Z         }
2026-06-05T02:56:35.5931678Z       }
2026-06-05T02:56:35.5931939Z     },
2026-06-05T02:56:35.5932168Z     {
2026-06-05T02:56:35.5932519Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-05T02:56:35.5933023Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-05T02:56:35.5933299Z       "requiredStages": [
2026-06-05T02:56:35.5933546Z         "impl",
2026-06-05T02:56:35.5933780Z         "unit"
2026-06-05T02:56:35.5934021Z       ],
2026-06-05T02:56:35.5934264Z       "stages": {
2026-06-05T02:56:35.5934505Z         "doc": {
2026-06-05T02:56:35.5934765Z           "complete": false,
2026-06-05T02:56:35.5935023Z           "evidence": []
2026-06-05T02:56:35.5935263Z         },
2026-06-05T02:56:35.5935500Z         "impl": {
2026-06-05T02:56:35.5935769Z           "complete": true,
2026-06-05T02:56:35.5936014Z           "evidence": [
2026-06-05T02:56:35.5936250Z             {
2026-06-05T02:56:35.5936575Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5936838Z               "line": 111
2026-06-05T02:56:35.5937086Z             },
2026-06-05T02:56:35.5937319Z             {
2026-06-05T02:56:35.5937651Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5937914Z               "line": 202
2026-06-05T02:56:35.5938159Z             }
2026-06-05T02:56:35.5938392Z           ]
2026-06-05T02:56:35.5938635Z         },
2026-06-05T02:56:35.5938877Z         "int": {
2026-06-05T02:56:35.5939137Z           "complete": false,
2026-06-05T02:56:35.5939442Z           "evidence": []
2026-06-05T02:56:35.5939672Z         },
2026-06-05T02:56:35.5939922Z         "unit": {
2026-06-05T02:56:35.5940177Z           "complete": true,
2026-06-05T02:56:35.5940441Z           "evidence": [
2026-06-05T02:56:35.5940678Z             {
2026-06-05T02:56:35.5941024Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5941333Z               "line": 347
2026-06-05T02:56:35.5941609Z             },
2026-06-05T02:56:35.5942171Z             {
2026-06-05T02:56:35.5942546Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.5943011Z               "line": 391
2026-06-05T02:56:35.5943324Z             }
2026-06-05T02:56:35.5943625Z           ]
2026-06-05T02:56:35.5943933Z         }
2026-06-05T02:56:35.5944227Z       }
2026-06-05T02:56:35.5944518Z     },
2026-06-05T02:56:35.5944791Z     {
2026-06-05T02:56:35.5945256Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-05T02:56:35.5949053Z       "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-05T02:56:35.5949394Z       "requiredStages": [
2026-06-05T02:56:35.5949979Z         "impl",
2026-06-05T02:56:35.5950236Z         "unit"
2026-06-05T02:56:35.5950478Z       ],
2026-06-05T02:56:35.5950729Z       "stages": {
2026-06-05T02:56:35.5950995Z         "doc": {
2026-06-05T02:56:35.5951271Z           "complete": true,
2026-06-05T02:56:35.5951525Z           "evidence": [
2026-06-05T02:56:35.5951784Z             {
2026-06-05T02:56:35.5952090Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.5952352Z               "line": 188
2026-06-05T02:56:35.5952596Z             }
2026-06-05T02:56:35.5952831Z           ]
2026-06-05T02:56:35.5953076Z         },
2026-06-05T02:56:35.5953316Z         "impl": {
2026-06-05T02:56:35.5953582Z           "complete": true,
2026-06-05T02:56:35.5953829Z           "evidence": [
2026-06-05T02:56:35.5954078Z             {
2026-06-05T02:56:35.5954443Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5954696Z               "line": 250
2026-06-05T02:56:35.5954938Z             },
2026-06-05T02:56:35.5955171Z             {
2026-06-05T02:56:35.5955529Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5955784Z               "line": 340
2026-06-05T02:56:35.5956279Z             },
2026-06-05T02:56:35.5956553Z             {
2026-06-05T02:56:35.5956914Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.5957307Z               "line": 178
2026-06-05T02:56:35.5957546Z             }
2026-06-05T02:56:35.5957793Z           ]
2026-06-05T02:56:35.5958030Z         },
2026-06-05T02:56:35.5958277Z         "int": {
2026-06-05T02:56:35.5958554Z           "complete": false,
2026-06-05T02:56:35.5958817Z           "evidence": []
2026-06-05T02:56:35.5959060Z         },
2026-06-05T02:56:35.5959353Z         "unit": {
2026-06-05T02:56:35.5959625Z           "complete": true,
2026-06-05T02:56:35.5959874Z           "evidence": [
2026-06-05T02:56:35.5960116Z             {
2026-06-05T02:56:35.5960475Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.5960896Z               "line": 378
2026-06-05T02:56:35.5961164Z             },
2026-06-05T02:56:35.5961403Z             {
2026-06-05T02:56:35.5961752Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T02:56:35.5962003Z               "line": 54
2026-06-05T02:56:35.5962249Z             },
2026-06-05T02:56:35.5962499Z             {
2026-06-05T02:56:35.5962882Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-05T02:56:35.5963143Z               "line": 51
2026-06-05T02:56:35.5963378Z             }
2026-06-05T02:56:35.5963622Z           ]
2026-06-05T02:56:35.5963859Z         }
2026-06-05T02:56:35.5964116Z       }
2026-06-05T02:56:35.5964377Z     },
2026-06-05T02:56:35.5964902Z     {
2026-06-05T02:56:35.5965458Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-05T02:56:35.5966241Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-05T02:56:35.5966587Z       "requiredStages": [
2026-06-05T02:56:35.5966864Z         "impl",
2026-06-05T02:56:35.5967126Z         "unit"
2026-06-05T02:56:35.5967383Z       ],
2026-06-05T02:56:35.5967766Z       "stages": {
2026-06-05T02:56:35.5968033Z         "doc": {
2026-06-05T02:56:35.5968295Z           "complete": false,
2026-06-05T02:56:35.5968557Z           "evidence": []
2026-06-05T02:56:35.5968805Z         },
2026-06-05T02:56:35.5969061Z         "impl": {
2026-06-05T02:56:35.5969386Z           "complete": true,
2026-06-05T02:56:35.5969659Z           "evidence": [
2026-06-05T02:56:35.5969910Z             {
2026-06-05T02:56:35.5970438Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5970707Z               "line": 26
2026-06-05T02:56:35.5970941Z             },
2026-06-05T02:56:35.5971188Z             {
2026-06-05T02:56:35.5971532Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5971784Z               "line": 126
2026-06-05T02:56:35.5972029Z             },
2026-06-05T02:56:35.5972262Z             {
2026-06-05T02:56:35.5972642Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5972897Z               "line": 26
2026-06-05T02:56:35.5973160Z             },
2026-06-05T02:56:35.5973711Z             {
2026-06-05T02:56:35.5974255Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5974569Z               "line": 233
2026-06-05T02:56:35.5974836Z             }
2026-06-05T02:56:35.5975092Z           ]
2026-06-05T02:56:35.5975332Z         },
2026-06-05T02:56:35.5981714Z         "int": {
2026-06-05T02:56:35.5982222Z           "complete": false,
2026-06-05T02:56:35.5982487Z           "evidence": []
2026-06-05T02:56:35.5982739Z         },
2026-06-05T02:56:35.5982982Z         "unit": {
2026-06-05T02:56:35.5983250Z           "complete": true,
2026-06-05T02:56:35.5983499Z           "evidence": [
2026-06-05T02:56:35.5983741Z             {
2026-06-05T02:56:35.5984093Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5984337Z               "line": 152
2026-06-05T02:56:35.5984577Z             },
2026-06-05T02:56:35.5984804Z             {
2026-06-05T02:56:35.5985150Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5985736Z               "line": 161
2026-06-05T02:56:35.5986011Z             },
2026-06-05T02:56:35.5986251Z             {
2026-06-05T02:56:35.5986740Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5986998Z               "line": 170
2026-06-05T02:56:35.5987228Z             },
2026-06-05T02:56:35.5987471Z             {
2026-06-05T02:56:35.5987809Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5988071Z               "line": 179
2026-06-05T02:56:35.5988310Z             },
2026-06-05T02:56:35.5988545Z             {
2026-06-05T02:56:35.5988889Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5989133Z               "line": 188
2026-06-05T02:56:35.5989736Z             },
2026-06-05T02:56:35.5989978Z             {
2026-06-05T02:56:35.5990339Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5990602Z               "line": 205
2026-06-05T02:56:35.5990833Z             },
2026-06-05T02:56:35.5991072Z             {
2026-06-05T02:56:35.5991411Z               "path": "crates/spt-live/src/context.rs",
2026-06-05T02:56:35.5991665Z               "line": 231
2026-06-05T02:56:35.5991910Z             },
2026-06-05T02:56:35.5992139Z             {
2026-06-05T02:56:35.5992477Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.5992720Z               "line": 245
2026-06-05T02:56:35.5992959Z             },
2026-06-05T02:56:35.5993188Z             {
2026-06-05T02:56:35.5993530Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.5993782Z               "line": 212
2026-06-05T02:56:35.5994012Z             },
2026-06-05T02:56:35.5994249Z             {
2026-06-05T02:56:35.5994612Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5994868Z               "line": 256
2026-06-05T02:56:35.5995101Z             },
2026-06-05T02:56:35.5995339Z             {
2026-06-05T02:56:35.5995703Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5995952Z               "line": 281
2026-06-05T02:56:35.5996191Z             },
2026-06-05T02:56:35.5996423Z             {
2026-06-05T02:56:35.5996805Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5997047Z               "line": 293
2026-06-05T02:56:35.5997288Z             },
2026-06-05T02:56:35.5997527Z             {
2026-06-05T02:56:35.5997882Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-05T02:56:35.5998135Z               "line": 303
2026-06-05T02:56:35.5998368Z             },
2026-06-05T02:56:35.5998608Z             {
2026-06-05T02:56:35.5998951Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.5999252Z               "line": 502
2026-06-05T02:56:35.5999674Z             }
2026-06-05T02:56:35.5999911Z           ]
2026-06-05T02:56:35.6000285Z         }
2026-06-05T02:56:35.6000509Z       }
2026-06-05T02:56:35.6000745Z     },
2026-06-05T02:56:35.6000968Z     {
2026-06-05T02:56:35.6001324Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-05T02:56:35.6001759Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-05T02:56:35.6002023Z       "requiredStages": [
2026-06-05T02:56:35.6002273Z         "impl",
2026-06-05T02:56:35.6002501Z         "unit"
2026-06-05T02:56:35.6002741Z       ],
2026-06-05T02:56:35.6002977Z       "stages": {
2026-06-05T02:56:35.6003221Z         "doc": {
2026-06-05T02:56:35.6003489Z           "complete": false,
2026-06-05T02:56:35.6003733Z           "evidence": []
2026-06-05T02:56:35.6003975Z         },
2026-06-05T02:56:35.6004210Z         "impl": {
2026-06-05T02:56:35.6004472Z           "complete": true,
2026-06-05T02:56:35.6004716Z           "evidence": [
2026-06-05T02:56:35.6004953Z             {
2026-06-05T02:56:35.6005279Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.6005520Z               "line": 25
2026-06-05T02:56:35.6005754Z             },
2026-06-05T02:56:35.6005979Z             {
2026-06-05T02:56:35.6006523Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6006791Z               "line": 26
2026-06-05T02:56:35.6007031Z             },
2026-06-05T02:56:35.6007395Z             {
2026-06-05T02:56:35.6007726Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6007981Z               "line": 153
2026-06-05T02:56:35.6008209Z             }
2026-06-05T02:56:35.6008447Z           ]
2026-06-05T02:56:35.6008672Z         },
2026-06-05T02:56:35.6008919Z         "int": {
2026-06-05T02:56:35.6009240Z           "complete": false,
2026-06-05T02:56:35.6009506Z           "evidence": []
2026-06-05T02:56:35.6009744Z         },
2026-06-05T02:56:35.6009977Z         "unit": {
2026-06-05T02:56:35.6010242Z           "complete": true,
2026-06-05T02:56:35.6010488Z           "evidence": [
2026-06-05T02:56:35.6010727Z             {
2026-06-05T02:56:35.6011055Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.6011299Z               "line": 180
2026-06-05T02:56:35.6011540Z             },
2026-06-05T02:56:35.6011783Z             {
2026-06-05T02:56:35.6012109Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.6012351Z               "line": 205
2026-06-05T02:56:35.6012607Z             },
2026-06-05T02:56:35.6012847Z             {
2026-06-05T02:56:35.6013173Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6013430Z               "line": 180
2026-06-05T02:56:35.6013654Z             }
2026-06-05T02:56:35.6013895Z           ]
2026-06-05T02:56:35.6014123Z         }
2026-06-05T02:56:35.6014365Z       }
2026-06-05T02:56:35.6014597Z     },
2026-06-05T02:56:35.6014818Z     {
2026-06-05T02:56:35.6015114Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-05T02:56:35.6015616Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-05T02:56:35.6015892Z       "requiredStages": [
2026-06-05T02:56:35.6016133Z         "impl",
2026-06-05T02:56:35.6016383Z         "unit"
2026-06-05T02:56:35.6016626Z       ],
2026-06-05T02:56:35.6016866Z       "stages": {
2026-06-05T02:56:35.6017116Z         "doc": {
2026-06-05T02:56:35.6017378Z           "complete": false,
2026-06-05T02:56:35.6017642Z           "evidence": []
2026-06-05T02:56:35.6017884Z         },
2026-06-05T02:56:35.6018135Z         "impl": {
2026-06-05T02:56:35.6018400Z           "complete": true,
2026-06-05T02:56:35.6018648Z           "evidence": [
2026-06-05T02:56:35.6018888Z             {
2026-06-05T02:56:35.6019272Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6019534Z               "line": 48
2026-06-05T02:56:35.6019765Z             },
2026-06-05T02:56:35.6020007Z             {
2026-06-05T02:56:35.6020351Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6020592Z               "line": 55
2026-06-05T02:56:35.6020831Z             },
2026-06-05T02:56:35.6021059Z             {
2026-06-05T02:56:35.6021401Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6021647Z               "line": 74
2026-06-05T02:56:35.6021887Z             },
2026-06-05T02:56:35.6022131Z             {
2026-06-05T02:56:35.6022468Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6022732Z               "line": 91
2026-06-05T02:56:35.6022957Z             }
2026-06-05T02:56:35.6023197Z           ]
2026-06-05T02:56:35.6023423Z         },
2026-06-05T02:56:35.6023670Z         "int": {
2026-06-05T02:56:35.6023939Z           "complete": false,
2026-06-05T02:56:35.6024187Z           "evidence": []
2026-06-05T02:56:35.6024428Z         },
2026-06-05T02:56:35.6024662Z         "unit": {
2026-06-05T02:56:35.6024932Z           "complete": true,
2026-06-05T02:56:35.6025181Z           "evidence": [
2026-06-05T02:56:35.6025419Z             {
2026-06-05T02:56:35.6025769Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6026016Z               "line": 149
2026-06-05T02:56:35.6031359Z             },
2026-06-05T02:56:35.6031722Z             {
2026-06-05T02:56:35.6032087Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6032626Z               "line": 163
2026-06-05T02:56:35.6032876Z             },
2026-06-05T02:56:35.6033117Z             {
2026-06-05T02:56:35.6033599Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6033858Z               "line": 173
2026-06-05T02:56:35.6034092Z             },
2026-06-05T02:56:35.6034332Z             {
2026-06-05T02:56:35.6034678Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6034927Z               "line": 191
2026-06-05T02:56:35.6035169Z             },
2026-06-05T02:56:35.6035396Z             {
2026-06-05T02:56:35.6035738Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6035984Z               "line": 204
2026-06-05T02:56:35.6036223Z             }
2026-06-05T02:56:35.6036463Z           ]
2026-06-05T02:56:35.6036690Z         }
2026-06-05T02:56:35.6036926Z       }
2026-06-05T02:56:35.6037147Z     },
2026-06-05T02:56:35.6037380Z     {
2026-06-05T02:56:35.6037743Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-05T02:56:35.6038326Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-05T02:56:35.6038604Z       "requiredStages": [
2026-06-05T02:56:35.6038840Z         "impl",
2026-06-05T02:56:35.6039075Z         "unit"
2026-06-05T02:56:35.6039352Z       ],
2026-06-05T02:56:35.6039605Z       "stages": {
2026-06-05T02:56:35.6039837Z         "doc": {
2026-06-05T02:56:35.6040107Z           "complete": false,
2026-06-05T02:56:35.6040363Z           "evidence": []
2026-06-05T02:56:35.6040587Z         },
2026-06-05T02:56:35.6040831Z         "impl": {
2026-06-05T02:56:35.6041080Z           "complete": true,
2026-06-05T02:56:35.6041331Z           "evidence": [
2026-06-05T02:56:35.6041557Z             {
2026-06-05T02:56:35.6041923Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6042176Z               "line": 349
2026-06-05T02:56:35.6042403Z             },
2026-06-05T02:56:35.6042639Z             {
2026-06-05T02:56:35.6042974Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6043231Z               "line": 26
2026-06-05T02:56:35.6043456Z             }
2026-06-05T02:56:35.6043704Z           ]
2026-06-05T02:56:35.6043939Z         },
2026-06-05T02:56:35.6044166Z         "int": {
2026-06-05T02:56:35.6044432Z           "complete": false,
2026-06-05T02:56:35.6044678Z           "evidence": []
2026-06-05T02:56:35.6044919Z         },
2026-06-05T02:56:35.6045157Z         "unit": {
2026-06-05T02:56:35.6045418Z           "complete": true,
2026-06-05T02:56:35.6045668Z           "evidence": [
2026-06-05T02:56:35.6045893Z             {
2026-06-05T02:56:35.6046231Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6046475Z               "line": 139
2026-06-05T02:56:35.6046715Z             },
2026-06-05T02:56:35.6046944Z             {
2026-06-05T02:56:35.6047291Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6047550Z               "line": 182
2026-06-05T02:56:35.6047775Z             }
2026-06-05T02:56:35.6048017Z           ]
2026-06-05T02:56:35.6048243Z         }
2026-06-05T02:56:35.6048474Z       }
2026-06-05T02:56:35.6048704Z     },
2026-06-05T02:56:35.6048937Z     {
2026-06-05T02:56:35.6049321Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-05T02:56:35.6049783Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-05T02:56:35.6050054Z       "requiredStages": [
2026-06-05T02:56:35.6050288Z         "impl",
2026-06-05T02:56:35.6050523Z         "unit"
2026-06-05T02:56:35.6050748Z       ],
2026-06-05T02:56:35.6050996Z       "stages": {
2026-06-05T02:56:35.6051233Z         "doc": {
2026-06-05T02:56:35.6051494Z           "complete": false,
2026-06-05T02:56:35.6051747Z           "evidence": []
2026-06-05T02:56:35.6051982Z         },
2026-06-05T02:56:35.6052224Z         "impl": {
2026-06-05T02:56:35.6052480Z           "complete": true,
2026-06-05T02:56:35.6052731Z           "evidence": [
2026-06-05T02:56:35.6052967Z             {
2026-06-05T02:56:35.6053477Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6053749Z               "line": 36
2026-06-05T02:56:35.6053977Z             },
2026-06-05T02:56:35.6054352Z             {
2026-06-05T02:56:35.6054697Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6054954Z               "line": 68
2026-06-05T02:56:35.6055193Z             }
2026-06-05T02:56:35.6055418Z           ]
2026-06-05T02:56:35.6055651Z         },
2026-06-05T02:56:35.6055889Z         "int": {
2026-06-05T02:56:35.6056155Z           "complete": false,
2026-06-05T02:56:35.6056401Z           "evidence": []
2026-06-05T02:56:35.6056642Z         },
2026-06-05T02:56:35.6056881Z         "unit": {
2026-06-05T02:56:35.6057137Z           "complete": true,
2026-06-05T02:56:35.6057389Z           "evidence": [
2026-06-05T02:56:35.6057617Z             {
2026-06-05T02:56:35.6057973Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6058218Z               "line": 143
2026-06-05T02:56:35.6058466Z             },
2026-06-05T02:56:35.6058704Z             {
2026-06-05T02:56:35.6059051Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6059359Z               "line": 160
2026-06-05T02:56:35.6059595Z             },
2026-06-05T02:56:35.6059830Z             {
2026-06-05T02:56:35.6060173Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6060437Z               "line": 168
2026-06-05T02:56:35.6060677Z             }
2026-06-05T02:56:35.6060909Z           ]
2026-06-05T02:56:35.6061139Z         }
2026-06-05T02:56:35.6061361Z       }
2026-06-05T02:56:35.6061594Z     },
2026-06-05T02:56:35.6061820Z     {
2026-06-05T02:56:35.6062174Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-05T02:56:35.6062711Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-05T02:56:35.6062970Z       "requiredStages": [
2026-06-05T02:56:35.6063208Z         "impl",
2026-06-05T02:56:35.6063438Z         "unit"
2026-06-05T02:56:35.6063684Z       ],
2026-06-05T02:56:35.6063917Z       "stages": {
2026-06-05T02:56:35.6064160Z         "doc": {
2026-06-05T02:56:35.6064426Z           "complete": false,
2026-06-05T02:56:35.6064677Z           "evidence": []
2026-06-05T02:56:35.6064913Z         },
2026-06-05T02:56:35.6065147Z         "impl": {
2026-06-05T02:56:35.6065406Z           "complete": true,
2026-06-05T02:56:35.6065648Z           "evidence": [
2026-06-05T02:56:35.6065886Z             {
2026-06-05T02:56:35.6066244Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6066490Z               "line": 107
2026-06-05T02:56:35.6066720Z             }
2026-06-05T02:56:35.6066942Z           ]
2026-06-05T02:56:35.6067178Z         },
2026-06-05T02:56:35.6067403Z         "int": {
2026-06-05T02:56:35.6067664Z           "complete": false,
2026-06-05T02:56:35.6067916Z           "evidence": []
2026-06-05T02:56:35.6068140Z         },
2026-06-05T02:56:35.6068382Z         "unit": {
2026-06-05T02:56:35.6068635Z           "complete": true,
2026-06-05T02:56:35.6068898Z           "evidence": [
2026-06-05T02:56:35.6069124Z             {
2026-06-05T02:56:35.6069530Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6069803Z               "line": 184
2026-06-05T02:56:35.6070030Z             },
2026-06-05T02:56:35.6070267Z             {
2026-06-05T02:56:35.6070612Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6070868Z               "line": 193
2026-06-05T02:56:35.6071096Z             },
2026-06-05T02:56:35.6071329Z             {
2026-06-05T02:56:35.6071676Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6071916Z               "line": 201
2026-06-05T02:56:35.6072152Z             },
2026-06-05T02:56:35.6072378Z             {
2026-06-05T02:56:35.6072725Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6072969Z               "line": 210
2026-06-05T02:56:35.6073203Z             },
2026-06-05T02:56:35.6073445Z             {
2026-06-05T02:56:35.6073941Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-05T02:56:35.6074204Z               "line": 219
2026-06-05T02:56:35.6074596Z             }
2026-06-05T02:56:35.6079141Z           ]
2026-06-05T02:56:35.6079577Z         }
2026-06-05T02:56:35.6079827Z       }
2026-06-05T02:56:35.6080059Z     },
2026-06-05T02:56:35.6080289Z     {
2026-06-05T02:56:35.6080630Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-05T02:56:35.6081111Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-05T02:56:35.6081388Z       "requiredStages": [
2026-06-05T02:56:35.6081620Z         "impl",
2026-06-05T02:56:35.6081861Z         "unit"
2026-06-05T02:56:35.6082093Z       ],
2026-06-05T02:56:35.6082332Z       "stages": {
2026-06-05T02:56:35.6082570Z         "doc": {
2026-06-05T02:56:35.6082829Z           "complete": false,
2026-06-05T02:56:35.6083087Z           "evidence": []
2026-06-05T02:56:35.6083317Z         },
2026-06-05T02:56:35.6083565Z         "impl": {
2026-06-05T02:56:35.6083851Z           "complete": true,
2026-06-05T02:56:35.6084093Z           "evidence": [
2026-06-05T02:56:35.6084327Z             {
2026-06-05T02:56:35.6084654Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.6084908Z               "line": 14
2026-06-05T02:56:35.6085137Z             },
2026-06-05T02:56:35.6085374Z             {
2026-06-05T02:56:35.6085691Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.6085933Z               "line": 62
2026-06-05T02:56:35.6086171Z             }
2026-06-05T02:56:35.6086395Z           ]
2026-06-05T02:56:35.6086634Z         },
2026-06-05T02:56:35.6086867Z         "int": {
2026-06-05T02:56:35.6087131Z           "complete": false,
2026-06-05T02:56:35.6087383Z           "evidence": []
2026-06-05T02:56:35.6087612Z         },
2026-06-05T02:56:35.6087851Z         "unit": {
2026-06-05T02:56:35.6088100Z           "complete": true,
2026-06-05T02:56:35.6088353Z           "evidence": [
2026-06-05T02:56:35.6088581Z             {
2026-06-05T02:56:35.6088904Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.6089200Z               "line": 160
2026-06-05T02:56:35.6089442Z             },
2026-06-05T02:56:35.6089675Z             {
2026-06-05T02:56:35.6089981Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.6090241Z               "line": 197
2026-06-05T02:56:35.6090471Z             },
2026-06-05T02:56:35.6090706Z             {
2026-06-05T02:56:35.6091019Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.6091266Z               "line": 213
2026-06-05T02:56:35.6091503Z             }
2026-06-05T02:56:35.6091727Z           ]
2026-06-05T02:56:35.6091959Z         }
2026-06-05T02:56:35.6092184Z       }
2026-06-05T02:56:35.6092414Z     },
2026-06-05T02:56:35.6092642Z     {
2026-06-05T02:56:35.6092969Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-05T02:56:35.6093602Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-05T02:56:35.6093869Z       "requiredStages": [
2026-06-05T02:56:35.6094113Z         "impl",
2026-06-05T02:56:35.6094345Z         "unit"
2026-06-05T02:56:35.6094597Z       ],
2026-06-05T02:56:35.6094840Z       "stages": {
2026-06-05T02:56:35.6095070Z         "doc": {
2026-06-05T02:56:35.6095336Z           "complete": false,
2026-06-05T02:56:35.6095580Z           "evidence": []
2026-06-05T02:56:35.6095816Z         },
2026-06-05T02:56:35.6096049Z         "impl": {
2026-06-05T02:56:35.6096309Z           "complete": true,
2026-06-05T02:56:35.6096563Z           "evidence": [
2026-06-05T02:56:35.6096787Z             {
2026-06-05T02:56:35.6097127Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6097369Z               "line": 76
2026-06-05T02:56:35.6097606Z             },
2026-06-05T02:56:35.6097830Z             {
2026-06-05T02:56:35.6098159Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6098410Z               "line": 163
2026-06-05T02:56:35.6098637Z             },
2026-06-05T02:56:35.6099118Z             {
2026-06-05T02:56:35.6099526Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6099816Z               "line": 229
2026-06-05T02:56:35.6100207Z             },
2026-06-05T02:56:35.6100452Z             {
2026-06-05T02:56:35.6100795Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6101044Z               "line": 265
2026-06-05T02:56:35.6101280Z             }
2026-06-05T02:56:35.6101508Z           ]
2026-06-05T02:56:35.6101748Z         },
2026-06-05T02:56:35.6101973Z         "int": {
2026-06-05T02:56:35.6102240Z           "complete": false,
2026-06-05T02:56:35.6102492Z           "evidence": []
2026-06-05T02:56:35.6102721Z         },
2026-06-05T02:56:35.6102958Z         "unit": {
2026-06-05T02:56:35.6103213Z           "complete": true,
2026-06-05T02:56:35.6103465Z           "evidence": [
2026-06-05T02:56:35.6103691Z             {
2026-06-05T02:56:35.6104026Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6104289Z               "line": 310
2026-06-05T02:56:35.6104520Z             },
2026-06-05T02:56:35.6104756Z             {
2026-06-05T02:56:35.6105092Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6105342Z               "line": 318
2026-06-05T02:56:35.6105576Z             },
2026-06-05T02:56:35.6105805Z             {
2026-06-05T02:56:35.6106137Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6106384Z               "line": 341
2026-06-05T02:56:35.6106619Z             },
2026-06-05T02:56:35.6106844Z             {
2026-06-05T02:56:35.6107175Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6107428Z               "line": 378
2026-06-05T02:56:35.6107661Z             },
2026-06-05T02:56:35.6107896Z             {
2026-06-05T02:56:35.6108218Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6108462Z               "line": 389
2026-06-05T02:56:35.6108686Z             },
2026-06-05T02:56:35.6108920Z             {
2026-06-05T02:56:35.6109310Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6109562Z               "line": 401
2026-06-05T02:56:35.6109812Z             },
2026-06-05T02:56:35.6110041Z             {
2026-06-05T02:56:35.6110366Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-05T02:56:35.6110605Z               "line": 413
2026-06-05T02:56:35.6110842Z             }
2026-06-05T02:56:35.6111073Z           ]
2026-06-05T02:56:35.6111297Z         }
2026-06-05T02:56:35.6111526Z       }
2026-06-05T02:56:35.6111751Z     },
2026-06-05T02:56:35.6111985Z     {
2026-06-05T02:56:35.6112278Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-05T02:56:35.6112712Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-05T02:56:35.6112987Z       "requiredStages": [
2026-06-05T02:56:35.6113221Z         "impl",
2026-06-05T02:56:35.6113462Z         "int"
2026-06-05T02:56:35.6113692Z       ],
2026-06-05T02:56:35.6113935Z       "stages": {
2026-06-05T02:56:35.6114169Z         "doc": {
2026-06-05T02:56:35.6114433Z           "complete": false,
2026-06-05T02:56:35.6114683Z           "evidence": []
2026-06-05T02:56:35.6114917Z         },
2026-06-05T02:56:35.6115156Z         "impl": {
2026-06-05T02:56:35.6115408Z           "complete": true,
2026-06-05T02:56:35.6115661Z           "evidence": [
2026-06-05T02:56:35.6115883Z             {
2026-06-05T02:56:35.6116223Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.6116474Z               "line": 22
2026-06-05T02:56:35.6116707Z             }
2026-06-05T02:56:35.6116946Z           ]
2026-06-05T02:56:35.6117172Z         },
2026-06-05T02:56:35.6117408Z         "int": {
2026-06-05T02:56:35.6117659Z           "complete": true,
2026-06-05T02:56:35.6117915Z           "evidence": [
2026-06-05T02:56:35.6118149Z             {
2026-06-05T02:56:35.6118495Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-05T02:56:35.6118744Z               "line": 18
2026-06-05T02:56:35.6118970Z             }
2026-06-05T02:56:35.6119393Z           ]
2026-06-05T02:56:35.6119657Z         },
2026-06-05T02:56:35.6119905Z         "unit": {
2026-06-05T02:56:35.6120167Z           "complete": false,
2026-06-05T02:56:35.6120547Z           "evidence": []
2026-06-05T02:56:35.6120782Z         }
2026-06-05T02:56:35.6121011Z       }
2026-06-05T02:56:35.6121243Z     },
2026-06-05T02:56:35.6121469Z     {
2026-06-05T02:56:35.6121805Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-05T02:56:35.6126553Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-05T02:56:35.6126935Z       "requiredStages": [
2026-06-05T02:56:35.6127201Z         "impl",
2026-06-05T02:56:35.6127432Z         "unit"
2026-06-05T02:56:35.6127670Z       ],
2026-06-05T02:56:35.6127903Z       "stages": {
2026-06-05T02:56:35.6128148Z         "doc": {
2026-06-05T02:56:35.6128417Z           "complete": false,
2026-06-05T02:56:35.6128665Z           "evidence": []
2026-06-05T02:56:35.6128898Z         },
2026-06-05T02:56:35.6129238Z         "impl": {
2026-06-05T02:56:35.6129507Z           "complete": true,
2026-06-05T02:56:35.6129747Z           "evidence": [
2026-06-05T02:56:35.6129997Z             {
2026-06-05T02:56:35.6130373Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6130621Z               "line": 348
2026-06-05T02:56:35.6130857Z             },
2026-06-05T02:56:35.6131084Z             {
2026-06-05T02:56:35.6131427Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6131669Z               "line": 27
2026-06-05T02:56:35.6131910Z             }
2026-06-05T02:56:35.6132143Z           ]
2026-06-05T02:56:35.6132365Z         },
2026-06-05T02:56:35.6132600Z         "int": {
2026-06-05T02:56:35.6132858Z           "complete": false,
2026-06-05T02:56:35.6133113Z           "evidence": []
2026-06-05T02:56:35.6133335Z         },
2026-06-05T02:56:35.6133577Z         "unit": {
2026-06-05T02:56:35.6133845Z           "complete": true,
2026-06-05T02:56:35.6134089Z           "evidence": [
2026-06-05T02:56:35.6134331Z             {
2026-06-05T02:56:35.6134684Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6134943Z               "line": 753
2026-06-05T02:56:35.6135169Z             },
2026-06-05T02:56:35.6135402Z             {
2026-06-05T02:56:35.6135737Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6135982Z               "line": 164
2026-06-05T02:56:35.6136216Z             }
2026-06-05T02:56:35.6136442Z           ]
2026-06-05T02:56:35.6136672Z         }
2026-06-05T02:56:35.6136900Z       }
2026-06-05T02:56:35.6137136Z     },
2026-06-05T02:56:35.6137369Z     {
2026-06-05T02:56:35.6137704Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-05T02:56:35.6138190Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-05T02:56:35.6138448Z       "requiredStages": [
2026-06-05T02:56:35.6138686Z         "impl",
2026-06-05T02:56:35.6138919Z         "unit"
2026-06-05T02:56:35.6139197Z       ],
2026-06-05T02:56:35.6139462Z       "stages": {
2026-06-05T02:56:35.6139696Z         "doc": {
2026-06-05T02:56:35.6139961Z           "complete": false,
2026-06-05T02:56:35.6140213Z           "evidence": []
2026-06-05T02:56:35.6140450Z         },
2026-06-05T02:56:35.6140678Z         "impl": {
2026-06-05T02:56:35.6140937Z           "complete": true,
2026-06-05T02:56:35.6141191Z           "evidence": [
2026-06-05T02:56:35.6141422Z             {
2026-06-05T02:56:35.6141767Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6142007Z               "line": 20
2026-06-05T02:56:35.6142244Z             },
2026-06-05T02:56:35.6142467Z             {
2026-06-05T02:56:35.6142800Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6143045Z               "line": 94
2026-06-05T02:56:35.6143270Z             },
2026-06-05T02:56:35.6143500Z             {
2026-06-05T02:56:35.6143857Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T02:56:35.6144109Z               "line": 70
2026-06-05T02:56:35.6144594Z             },
2026-06-05T02:56:35.6144859Z             {
2026-06-05T02:56:35.6145228Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T02:56:35.6145606Z               "line": 82
2026-06-05T02:56:35.6145846Z             }
2026-06-05T02:56:35.6146076Z           ]
2026-06-05T02:56:35.6146313Z         },
2026-06-05T02:56:35.6146541Z         "int": {
2026-06-05T02:56:35.6146805Z           "complete": false,
2026-06-05T02:56:35.6147067Z           "evidence": []
2026-06-05T02:56:35.6147296Z         },
2026-06-05T02:56:35.6147540Z         "unit": {
2026-06-05T02:56:35.6147796Z           "complete": true,
2026-06-05T02:56:35.6148051Z           "evidence": [
2026-06-05T02:56:35.6148278Z             {
2026-06-05T02:56:35.6148621Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6148870Z               "line": 139
2026-06-05T02:56:35.6149097Z             },
2026-06-05T02:56:35.6149379Z             {
2026-06-05T02:56:35.6149725Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6149980Z               "line": 162
2026-06-05T02:56:35.6150207Z             },
2026-06-05T02:56:35.6150454Z             {
2026-06-05T02:56:35.6150792Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6151032Z               "line": 173
2026-06-05T02:56:35.6151267Z             },
2026-06-05T02:56:35.6151495Z             {
2026-06-05T02:56:35.6151830Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6152072Z               "line": 189
2026-06-05T02:56:35.6152310Z             },
2026-06-05T02:56:35.6152546Z             {
2026-06-05T02:56:35.6152875Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-05T02:56:35.6153124Z               "line": 200
2026-06-05T02:56:35.6153354Z             },
2026-06-05T02:56:35.6153590Z             {
2026-06-05T02:56:35.6153941Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-05T02:56:35.6154198Z               "line": 139
2026-06-05T02:56:35.6154439Z             }
2026-06-05T02:56:35.6154664Z           ]
2026-06-05T02:56:35.6154900Z         }
2026-06-05T02:56:35.6155120Z       }
2026-06-05T02:56:35.6155364Z     },
2026-06-05T02:56:35.6155584Z     {
2026-06-05T02:56:35.6155864Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-05T02:56:35.6156624Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-05T02:56:35.6156885Z       "requiredStages": [
2026-06-05T02:56:35.6157130Z         "impl",
2026-06-05T02:56:35.6157363Z         "unit"
2026-06-05T02:56:35.6157598Z       ],
2026-06-05T02:56:35.6157829Z       "stages": {
2026-06-05T02:56:35.6158070Z         "doc": {
2026-06-05T02:56:35.6158327Z           "complete": true,
2026-06-05T02:56:35.6158571Z           "evidence": [
2026-06-05T02:56:35.6158803Z             {
2026-06-05T02:56:35.6159103Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.6159397Z               "line": 131
2026-06-05T02:56:35.6159625Z             }
2026-06-05T02:56:35.6159873Z           ]
2026-06-05T02:56:35.6160107Z         },
2026-06-05T02:56:35.6160346Z         "impl": {
2026-06-05T02:56:35.6160608Z           "complete": true,
2026-06-05T02:56:35.6160861Z           "evidence": [
2026-06-05T02:56:35.6161099Z             {
2026-06-05T02:56:35.6161414Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.6161662Z               "line": 65
2026-06-05T02:56:35.6161901Z             },
2026-06-05T02:56:35.6162126Z             {
2026-06-05T02:56:35.6162451Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6162698Z               "line": 17
2026-06-05T02:56:35.6162939Z             },
2026-06-05T02:56:35.6163165Z             {
2026-06-05T02:56:35.6163497Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6163747Z               "line": 212
2026-06-05T02:56:35.6163974Z             },
2026-06-05T02:56:35.6164210Z             {
2026-06-05T02:56:35.6164537Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6164933Z               "line": 312
2026-06-05T02:56:35.6165189Z             },
2026-06-05T02:56:35.6165421Z             {
2026-06-05T02:56:35.6165935Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.6166177Z               "line": 32
2026-06-05T02:56:35.6166421Z             },
2026-06-05T02:56:35.6166646Z             {
2026-06-05T02:56:35.6166956Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6167210Z               "line": 1800
2026-06-05T02:56:35.6167443Z             },
2026-06-05T02:56:35.6167678Z             {
2026-06-05T02:56:35.6167980Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6168233Z               "line": 2053
2026-06-05T02:56:35.6168461Z             }
2026-06-05T02:56:35.6168698Z           ]
2026-06-05T02:56:35.6168934Z         },
2026-06-05T02:56:35.6169219Z         "int": {
2026-06-05T02:56:35.6173633Z           "complete": false,
2026-06-05T02:56:35.6174019Z           "evidence": []
2026-06-05T02:56:35.6174278Z         },
2026-06-05T02:56:35.6174541Z         "unit": {
2026-06-05T02:56:35.6174816Z           "complete": true,
2026-06-05T02:56:35.6175066Z           "evidence": [
2026-06-05T02:56:35.6175312Z             {
2026-06-05T02:56:35.6175646Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6175890Z               "line": 94
2026-06-05T02:56:35.6176126Z             },
2026-06-05T02:56:35.6176356Z             {
2026-06-05T02:56:35.6176684Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6176933Z               "line": 111
2026-06-05T02:56:35.6177167Z             },
2026-06-05T02:56:35.6177400Z             {
2026-06-05T02:56:35.6177712Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6177964Z               "line": 124
2026-06-05T02:56:35.6178198Z             },
2026-06-05T02:56:35.6178431Z             {
2026-06-05T02:56:35.6178746Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6178992Z               "line": 134
2026-06-05T02:56:35.6179316Z             },
2026-06-05T02:56:35.6179562Z             {
2026-06-05T02:56:35.6179888Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6180144Z               "line": 142
2026-06-05T02:56:35.6180376Z             },
2026-06-05T02:56:35.6180607Z             {
2026-06-05T02:56:35.6180911Z               "path": "crates/spt-proto/src/id.rs",
2026-06-05T02:56:35.6181163Z               "line": 154
2026-06-05T02:56:35.6181391Z             },
2026-06-05T02:56:35.6181626Z             {
2026-06-05T02:56:35.6181992Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6182245Z               "line": 645
2026-06-05T02:56:35.6182481Z             }
2026-06-05T02:56:35.6182704Z           ]
2026-06-05T02:56:35.6182934Z         }
2026-06-05T02:56:35.6183162Z       }
2026-06-05T02:56:35.6183393Z     },
2026-06-05T02:56:35.6183616Z     {
2026-06-05T02:56:35.6183920Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-05T02:56:35.6184316Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-05T02:56:35.6184574Z       "requiredStages": [
2026-06-05T02:56:35.6184817Z         "impl",
2026-06-05T02:56:35.6185056Z         "unit"
2026-06-05T02:56:35.6185290Z       ],
2026-06-05T02:56:35.6185520Z       "stages": {
2026-06-05T02:56:35.6185757Z         "doc": {
2026-06-05T02:56:35.6186017Z           "complete": false,
2026-06-05T02:56:35.6186260Z           "evidence": []
2026-06-05T02:56:35.6186491Z         },
2026-06-05T02:56:35.6186726Z         "impl": {
2026-06-05T02:56:35.6186986Z           "complete": true,
2026-06-05T02:56:35.6187227Z           "evidence": [
2026-06-05T02:56:35.6187463Z             {
2026-06-05T02:56:35.6187795Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.6188036Z               "line": 128
2026-06-05T02:56:35.6188270Z             }
2026-06-05T02:56:35.6188496Z           ]
2026-06-05T02:56:35.6188739Z         },
2026-06-05T02:56:35.6188973Z         "int": {
2026-06-05T02:56:35.6189276Z           "complete": false,
2026-06-05T02:56:35.6189775Z           "evidence": []
2026-06-05T02:56:35.6190037Z         },
2026-06-05T02:56:35.6190282Z         "unit": {
2026-06-05T02:56:35.6190685Z           "complete": true,
2026-06-05T02:56:35.6190941Z           "evidence": [
2026-06-05T02:56:35.6191175Z             {
2026-06-05T02:56:35.6191513Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.6191767Z               "line": 205
2026-06-05T02:56:35.6191993Z             }
2026-06-05T02:56:35.6192224Z           ]
2026-06-05T02:56:35.6192446Z         }
2026-06-05T02:56:35.6192677Z       }
2026-06-05T02:56:35.6192906Z     },
2026-06-05T02:56:35.6193136Z     {
2026-06-05T02:56:35.6193458Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-05T02:56:35.6193891Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-05T02:56:35.6194158Z       "requiredStages": [
2026-06-05T02:56:35.6194391Z         "impl",
2026-06-05T02:56:35.6194628Z         "unit"
2026-06-05T02:56:35.6194853Z       ],
2026-06-05T02:56:35.6195108Z       "stages": {
2026-06-05T02:56:35.6195352Z         "doc": {
2026-06-05T02:56:35.6195614Z           "complete": false,
2026-06-05T02:56:35.6195877Z           "evidence": []
2026-06-05T02:56:35.6196107Z         },
2026-06-05T02:56:35.6196345Z         "impl": {
2026-06-05T02:56:35.6196599Z           "complete": true,
2026-06-05T02:56:35.6196852Z           "evidence": [
2026-06-05T02:56:35.6197085Z             {
2026-06-05T02:56:35.6197407Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6197653Z               "line": 231
2026-06-05T02:56:35.6197885Z             },
2026-06-05T02:56:35.6198115Z             {
2026-06-05T02:56:35.6198431Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6198680Z               "line": 242
2026-06-05T02:56:35.6198917Z             },
2026-06-05T02:56:35.6199139Z             {
2026-06-05T02:56:35.6199520Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6199769Z               "line": 260
2026-06-05T02:56:35.6200017Z             }
2026-06-05T02:56:35.6200243Z           ]
2026-06-05T02:56:35.6200478Z         },
2026-06-05T02:56:35.6200724Z         "int": {
2026-06-05T02:56:35.6200986Z           "complete": false,
2026-06-05T02:56:35.6201236Z           "evidence": []
2026-06-05T02:56:35.6201467Z         },
2026-06-05T02:56:35.6201713Z         "unit": {
2026-06-05T02:56:35.6201970Z           "complete": true,
2026-06-05T02:56:35.6202222Z           "evidence": [
2026-06-05T02:56:35.6202453Z             {
2026-06-05T02:56:35.6202769Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6203018Z               "line": 284
2026-06-05T02:56:35.6203248Z             },
2026-06-05T02:56:35.6203486Z             {
2026-06-05T02:56:35.6203810Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6204064Z               "line": 302
2026-06-05T02:56:35.6204299Z             },
2026-06-05T02:56:35.6204521Z             {
2026-06-05T02:56:35.6204853Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6205097Z               "line": 467
2026-06-05T02:56:35.6205333Z             },
2026-06-05T02:56:35.6205565Z             {
2026-06-05T02:56:35.6205890Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6206143Z               "line": 478
2026-06-05T02:56:35.6206379Z             },
2026-06-05T02:56:35.6206613Z             {
2026-06-05T02:56:35.6206931Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6207183Z               "line": 491
2026-06-05T02:56:35.6207409Z             }
2026-06-05T02:56:35.6207643Z           ]
2026-06-05T02:56:35.6207872Z         }
2026-06-05T02:56:35.6208094Z       }
2026-06-05T02:56:35.6208324Z     },
2026-06-05T02:56:35.6208545Z     {
2026-06-05T02:56:35.6208839Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-05T02:56:35.6209561Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-05T02:56:35.6209841Z       "requiredStages": [
2026-06-05T02:56:35.6210241Z         "impl",
2026-06-05T02:56:35.6210487Z         "unit"
2026-06-05T02:56:35.6210722Z       ],
2026-06-05T02:56:35.6211089Z       "stages": {
2026-06-05T02:56:35.6211334Z         "doc": {
2026-06-05T02:56:35.6211593Z           "complete": false,
2026-06-05T02:56:35.6211851Z           "evidence": []
2026-06-05T02:56:35.6212088Z         },
2026-06-05T02:56:35.6212324Z         "impl": {
2026-06-05T02:56:35.6212590Z           "complete": true,
2026-06-05T02:56:35.6212843Z           "evidence": [
2026-06-05T02:56:35.6213083Z             {
2026-06-05T02:56:35.6213401Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6213652Z               "line": 14
2026-06-05T02:56:35.6213885Z             },
2026-06-05T02:56:35.6214113Z             {
2026-06-05T02:56:35.6214433Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.6214676Z               "line": 372
2026-06-05T02:56:35.6214915Z             }
2026-06-05T02:56:35.6215142Z           ]
2026-06-05T02:56:35.6215385Z         },
2026-06-05T02:56:35.6215626Z         "int": {
2026-06-05T02:56:35.6215873Z           "complete": false,
2026-06-05T02:56:35.6216138Z           "evidence": []
2026-06-05T02:56:35.6220619Z         },
2026-06-05T02:56:35.6221018Z         "unit": {
2026-06-05T02:56:35.6221296Z           "complete": true,
2026-06-05T02:56:35.6221559Z           "evidence": [
2026-06-05T02:56:35.6221803Z             {
2026-06-05T02:56:35.6222113Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6222370Z               "line": 130
2026-06-05T02:56:35.6222603Z             },
2026-06-05T02:56:35.6222840Z             {
2026-06-05T02:56:35.6223150Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6223407Z               "line": 138
2026-06-05T02:56:35.6223650Z             },
2026-06-05T02:56:35.6223875Z             {
2026-06-05T02:56:35.6224195Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6224440Z               "line": 146
2026-06-05T02:56:35.6224719Z             },
2026-06-05T02:56:35.6224953Z             {
2026-06-05T02:56:35.6225267Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6225533Z               "line": 154
2026-06-05T02:56:35.6225763Z             },
2026-06-05T02:56:35.6226001Z             {
2026-06-05T02:56:35.6226308Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6226560Z               "line": 162
2026-06-05T02:56:35.6226800Z             },
2026-06-05T02:56:35.6227033Z             {
2026-06-05T02:56:35.6227348Z               "path": "crates/spt/src/api/auth.rs",
2026-06-05T02:56:35.6227593Z               "line": 170
2026-06-05T02:56:35.6227824Z             }
2026-06-05T02:56:35.6228050Z           ]
2026-06-05T02:56:35.6228291Z         }
2026-06-05T02:56:35.6228520Z       }
2026-06-05T02:56:35.6228754Z     },
2026-06-05T02:56:35.6228986Z     {
2026-06-05T02:56:35.6229344Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-05T02:56:35.6232215Z       "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-05T02:56:35.6232502Z       "requiredStages": [
2026-06-05T02:56:35.6232751Z         "impl",
2026-06-05T02:56:35.6232985Z         "unit"
2026-06-05T02:56:35.6233212Z       ],
2026-06-05T02:56:35.6233456Z       "stages": {
2026-06-05T02:56:35.6233688Z         "doc": {
2026-06-05T02:56:35.6233952Z           "complete": false,
2026-06-05T02:56:35.6234199Z           "evidence": []
2026-06-05T02:56:35.6234434Z         },
2026-06-05T02:56:35.6234675Z         "impl": {
2026-06-05T02:56:35.6234930Z           "complete": true,
2026-06-05T02:56:35.6235181Z           "evidence": [
2026-06-05T02:56:35.6235407Z             {
2026-06-05T02:56:35.6235826Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6236066Z               "line": 34
2026-06-05T02:56:35.6236568Z             }
2026-06-05T02:56:35.6236832Z           ]
2026-06-05T02:56:35.6237060Z         },
2026-06-05T02:56:35.6237445Z         "int": {
2026-06-05T02:56:35.6237703Z           "complete": false,
2026-06-05T02:56:35.6237963Z           "evidence": []
2026-06-05T02:56:35.6238190Z         },
2026-06-05T02:56:35.6238434Z         "unit": {
2026-06-05T02:56:35.6238701Z           "complete": true,
2026-06-05T02:56:35.6238943Z           "evidence": [
2026-06-05T02:56:35.6239229Z             {
2026-06-05T02:56:35.6239861Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6240319Z               "line": 188
2026-06-05T02:56:35.6240550Z             },
2026-06-05T02:56:35.6240784Z             {
2026-06-05T02:56:35.6241193Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6241448Z               "line": 200
2026-06-05T02:56:35.6241694Z             },
2026-06-05T02:56:35.6241921Z             {
2026-06-05T02:56:35.6242338Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6242596Z               "line": 211
2026-06-05T02:56:35.6242831Z             },
2026-06-05T02:56:35.6243067Z             {
2026-06-05T02:56:35.6243466Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6243715Z               "line": 245
2026-06-05T02:56:35.6243940Z             },
2026-06-05T02:56:35.6244176Z             {
2026-06-05T02:56:35.6244580Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6244823Z               "line": 267
2026-06-05T02:56:35.6245063Z             },
2026-06-05T02:56:35.6245289Z             {
2026-06-05T02:56:35.6245692Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6245933Z               "line": 288
2026-06-05T02:56:35.6246173Z             },
2026-06-05T02:56:35.6246409Z             {
2026-06-05T02:56:35.6246815Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-05T02:56:35.6247070Z               "line": 304
2026-06-05T02:56:35.6247295Z             }
2026-06-05T02:56:35.6247532Z           ]
2026-06-05T02:56:35.6247763Z         }
2026-06-05T02:56:35.6247998Z       }
2026-06-05T02:56:35.6248230Z     },
2026-06-05T02:56:35.6248457Z     {
2026-06-05T02:56:35.6248770Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-05T02:56:35.6250441Z       "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-05T02:56:35.6250713Z       "requiredStages": [
2026-06-05T02:56:35.6250959Z         "impl",
2026-06-05T02:56:35.6251190Z         "unit"
2026-06-05T02:56:35.6251427Z       ],
2026-06-05T02:56:35.6251661Z       "stages": {
2026-06-05T02:56:35.6251899Z         "doc": {
2026-06-05T02:56:35.6252152Z           "complete": false,
2026-06-05T02:56:35.6252409Z           "evidence": []
2026-06-05T02:56:35.6252646Z         },
2026-06-05T02:56:35.6252891Z         "impl": {
2026-06-05T02:56:35.6253148Z           "complete": true,
2026-06-05T02:56:35.6253403Z           "evidence": [
2026-06-05T02:56:35.6253646Z             {
2026-06-05T02:56:35.6253981Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6254231Z               "line": 29
2026-06-05T02:56:35.6254454Z             },
2026-06-05T02:56:35.6254685Z             {
2026-06-05T02:56:35.6255024Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6255271Z               "line": 154
2026-06-05T02:56:35.6255513Z             },
2026-06-05T02:56:35.6255740Z             {
2026-06-05T02:56:35.6256079Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6256329Z               "line": 173
2026-06-05T02:56:35.6256556Z             },
2026-06-05T02:56:35.6256785Z             {
2026-06-05T02:56:35.6257110Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6257564Z               "line": 200
2026-06-05T02:56:35.6257806Z             }
2026-06-05T02:56:35.6258042Z           ]
2026-06-05T02:56:35.6258284Z         },
2026-06-05T02:56:35.6258659Z         "int": {
2026-06-05T02:56:35.6258925Z           "complete": false,
2026-06-05T02:56:35.6259213Z           "evidence": []
2026-06-05T02:56:35.6259454Z         },
2026-06-05T02:56:35.6259700Z         "unit": {
2026-06-05T02:56:35.6259967Z           "complete": true,
2026-06-05T02:56:35.6260215Z           "evidence": [
2026-06-05T02:56:35.6260439Z             {
2026-06-05T02:56:35.6260782Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6261024Z               "line": 276
2026-06-05T02:56:35.6261259Z             },
2026-06-05T02:56:35.6261487Z             {
2026-06-05T02:56:35.6261828Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6262079Z               "line": 291
2026-06-05T02:56:35.6262306Z             },
2026-06-05T02:56:35.6262541Z             {
2026-06-05T02:56:35.6262885Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6263146Z               "line": 310
2026-06-05T02:56:35.6263395Z             },
2026-06-05T02:56:35.6263635Z             {
2026-06-05T02:56:35.6263968Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6264215Z               "line": 326
2026-06-05T02:56:35.6264458Z             },
2026-06-05T02:56:35.6264685Z             {
2026-06-05T02:56:35.6265024Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6265267Z               "line": 376
2026-06-05T02:56:35.6265502Z             },
2026-06-05T02:56:35.6265735Z             {
2026-06-05T02:56:35.6266065Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6266314Z               "line": 390
2026-06-05T02:56:35.6266541Z             },
2026-06-05T02:56:35.6266773Z             {
2026-06-05T02:56:35.6267098Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6267361Z               "line": 401
2026-06-05T02:56:35.6267606Z             },
2026-06-05T02:56:35.6267836Z             {
2026-06-05T02:56:35.6272628Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6273081Z               "line": 412
2026-06-05T02:56:35.6273483Z             }
2026-06-05T02:56:35.6273757Z           ]
2026-06-05T02:56:35.6274037Z         }
2026-06-05T02:56:35.6274294Z       }
2026-06-05T02:56:35.6274526Z     },
2026-06-05T02:56:35.6274765Z     {
2026-06-05T02:56:35.6275118Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-05T02:56:35.6277485Z       "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-05T02:56:35.6277781Z       "requiredStages": [
2026-06-05T02:56:35.6278028Z         "impl",
2026-06-05T02:56:35.6278270Z         "unit"
2026-06-05T02:56:35.6278499Z       ],
2026-06-05T02:56:35.6278745Z       "stages": {
2026-06-05T02:56:35.6278998Z         "doc": {
2026-06-05T02:56:35.6279361Z           "complete": false,
2026-06-05T02:56:35.6279917Z           "evidence": []
2026-06-05T02:56:35.6280166Z         },
2026-06-05T02:56:35.6280410Z         "impl": {
2026-06-05T02:56:35.6280666Z           "complete": true,
2026-06-05T02:56:35.6280914Z           "evidence": [
2026-06-05T02:56:35.6281136Z             {
2026-06-05T02:56:35.6281529Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6281783Z               "line": 27
2026-06-05T02:56:35.6282011Z             },
2026-06-05T02:56:35.6282244Z             {
2026-06-05T02:56:35.6282615Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6282871Z               "line": 110
2026-06-05T02:56:35.6283101Z             },
2026-06-05T02:56:35.6283333Z             {
2026-06-05T02:56:35.6283711Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6283954Z               "line": 153
2026-06-05T02:56:35.6284514Z             },
2026-06-05T02:56:35.6284774Z             {
2026-06-05T02:56:35.6285162Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6285552Z               "line": 182
2026-06-05T02:56:35.6285793Z             },
2026-06-05T02:56:35.6286024Z             {
2026-06-05T02:56:35.6286435Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6286690Z               "line": 31
2026-06-05T02:56:35.6286916Z             },
2026-06-05T02:56:35.6287153Z             {
2026-06-05T02:56:35.6287564Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6287820Z               "line": 113
2026-06-05T02:56:35.6288059Z             },
2026-06-05T02:56:35.6288285Z             {
2026-06-05T02:56:35.6288698Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6288938Z               "line": 138
2026-06-05T02:56:35.6289231Z             }
2026-06-05T02:56:35.6289660Z           ]
2026-06-05T02:56:35.6290074Z         },
2026-06-05T02:56:35.6290321Z         "int": {
2026-06-05T02:56:35.6290577Z           "complete": false,
2026-06-05T02:56:35.6290842Z           "evidence": []
2026-06-05T02:56:35.6291069Z         },
2026-06-05T02:56:35.6291315Z         "unit": {
2026-06-05T02:56:35.6291567Z           "complete": true,
2026-06-05T02:56:35.6291821Z           "evidence": [
2026-06-05T02:56:35.6292083Z             {
2026-06-05T02:56:35.6292458Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6292711Z               "line": 261
2026-06-05T02:56:35.6292936Z             },
2026-06-05T02:56:35.6293170Z             {
2026-06-05T02:56:35.6293542Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6293794Z               "line": 276
2026-06-05T02:56:35.6294026Z             },
2026-06-05T02:56:35.6294250Z             {
2026-06-05T02:56:35.6294634Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6294889Z               "line": 293
2026-06-05T02:56:35.6295124Z             },
2026-06-05T02:56:35.6295349Z             {
2026-06-05T02:56:35.6295735Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6295990Z               "line": 310
2026-06-05T02:56:35.6296214Z             },
2026-06-05T02:56:35.6296452Z             {
2026-06-05T02:56:35.6296816Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6297068Z               "line": 327
2026-06-05T02:56:35.6297302Z             },
2026-06-05T02:56:35.6297530Z             {
2026-06-05T02:56:35.6297913Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.6298158Z               "line": 366
2026-06-05T02:56:35.6298397Z             },
2026-06-05T02:56:35.6298622Z             {
2026-06-05T02:56:35.6299040Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6299348Z               "line": 179
2026-06-05T02:56:35.6299772Z             },
2026-06-05T02:56:35.6300181Z             {
2026-06-05T02:56:35.6300595Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6300853Z               "line": 194
2026-06-05T02:56:35.6301080Z             },
2026-06-05T02:56:35.6301314Z             {
2026-06-05T02:56:35.6301733Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6301973Z               "line": 204
2026-06-05T02:56:35.6302205Z             },
2026-06-05T02:56:35.6302432Z             {
2026-06-05T02:56:35.6302846Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6303086Z               "line": 259
2026-06-05T02:56:35.6303325Z             },
2026-06-05T02:56:35.6303560Z             {
2026-06-05T02:56:35.6303979Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6304227Z               "line": 269
2026-06-05T02:56:35.6304459Z             },
2026-06-05T02:56:35.6304695Z             {
2026-06-05T02:56:35.6305266Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.6305525Z               "line": 283
2026-06-05T02:56:35.6305894Z             }
2026-06-05T02:56:35.6306129Z           ]
2026-06-05T02:56:35.6306362Z         }
2026-06-05T02:56:35.6306580Z       }
2026-06-05T02:56:35.6306814Z     },
2026-06-05T02:56:35.6307033Z     {
2026-06-05T02:56:35.6307352Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-05T02:56:35.6307929Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-05T02:56:35.6308190Z       "requiredStages": [],
2026-06-05T02:56:35.6308434Z       "stages": {
2026-06-05T02:56:35.6308663Z         "doc": {
2026-06-05T02:56:35.6308929Z           "complete": false,
2026-06-05T02:56:35.6309238Z           "evidence": []
2026-06-05T02:56:35.6309661Z         },
2026-06-05T02:56:35.6310089Z         "impl": {
2026-06-05T02:56:35.6310340Z           "complete": false,
2026-06-05T02:56:35.6310588Z           "evidence": []
2026-06-05T02:56:35.6310820Z         },
2026-06-05T02:56:35.6311058Z         "int": {
2026-06-05T02:56:35.6311327Z           "complete": false,
2026-06-05T02:56:35.6311587Z           "evidence": []
2026-06-05T02:56:35.6311820Z         },
2026-06-05T02:56:35.6312046Z         "unit": {
2026-06-05T02:56:35.6312307Z           "complete": false,
2026-06-05T02:56:35.6312548Z           "evidence": []
2026-06-05T02:56:35.6312777Z         }
2026-06-05T02:56:35.6312995Z       }
2026-06-05T02:56:35.6313224Z     },
2026-06-05T02:56:35.6313451Z     {
2026-06-05T02:56:35.6313786Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-05T02:56:35.6323181Z       "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-05T02:56:35.6323535Z       "requiredStages": [
2026-06-05T02:56:35.6323782Z         "impl",
2026-06-05T02:56:35.6324079Z         "unit"
2026-06-05T02:56:35.6324314Z       ],
2026-06-05T02:56:35.6324562Z       "stages": {
2026-06-05T02:56:35.6324811Z         "doc": {
2026-06-05T02:56:35.6325090Z           "complete": false,
2026-06-05T02:56:35.6325346Z           "evidence": []
2026-06-05T02:56:35.6325581Z         },
2026-06-05T02:56:35.6325823Z         "impl": {
2026-06-05T02:56:35.6326077Z           "complete": true,
2026-06-05T02:56:35.6326332Z           "evidence": [
2026-06-05T02:56:35.6326556Z             {
2026-06-05T02:56:35.6326922Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6327178Z               "line": 26
2026-06-05T02:56:35.6327408Z             },
2026-06-05T02:56:35.6327647Z             {
2026-06-05T02:56:35.6327997Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6328253Z               "line": 93
2026-06-05T02:56:35.6328480Z             },
2026-06-05T02:56:35.6328715Z             {
2026-06-05T02:56:35.6329088Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6329402Z               "line": 162
2026-06-05T02:56:35.6329646Z             },
2026-06-05T02:56:35.6329878Z             {
2026-06-05T02:56:35.6336047Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6336422Z               "line": 19
2026-06-05T02:56:35.6336688Z             },
2026-06-05T02:56:35.6337009Z             {
2026-06-05T02:56:35.6337368Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6337625Z               "line": 50
2026-06-05T02:56:35.6337857Z             },
2026-06-05T02:56:35.6338095Z             {
2026-06-05T02:56:35.6338418Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T02:56:35.6338672Z               "line": 18
2026-06-05T02:56:35.6338917Z             },
2026-06-05T02:56:35.6339142Z             {
2026-06-05T02:56:35.6339573Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T02:56:35.6339819Z               "line": 65
2026-06-05T02:56:35.6340412Z             },
2026-06-05T02:56:35.6340666Z             {
2026-06-05T02:56:35.6341016Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.6341418Z               "line": 70
2026-06-05T02:56:35.6341644Z             }
2026-06-05T02:56:35.6341882Z           ]
2026-06-05T02:56:35.6342106Z         },
2026-06-05T02:56:35.6342348Z         "int": {
2026-06-05T02:56:35.6342606Z           "complete": false,
2026-06-05T02:56:35.6342870Z           "evidence": []
2026-06-05T02:56:35.6343106Z         },
2026-06-05T02:56:35.6343345Z         "unit": {
2026-06-05T02:56:35.6343610Z           "complete": true,
2026-06-05T02:56:35.6343854Z           "evidence": [
2026-06-05T02:56:35.6344095Z             {
2026-06-05T02:56:35.6344458Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6344714Z               "line": 280
2026-06-05T02:56:35.6344952Z             },
2026-06-05T02:56:35.6345184Z             {
2026-06-05T02:56:35.6345551Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6345798Z               "line": 299
2026-06-05T02:56:35.6346039Z             },
2026-06-05T02:56:35.6346267Z             {
2026-06-05T02:56:35.6346633Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6346887Z               "line": 327
2026-06-05T02:56:35.6347119Z             },
2026-06-05T02:56:35.6347353Z             {
2026-06-05T02:56:35.6347700Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6347960Z               "line": 376
2026-06-05T02:56:35.6348191Z             },
2026-06-05T02:56:35.6348430Z             {
2026-06-05T02:56:35.6348789Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6349034Z               "line": 387
2026-06-05T02:56:35.6349317Z             },
2026-06-05T02:56:35.6349545Z             {
2026-06-05T02:56:35.6349906Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6350161Z               "line": 418
2026-06-05T02:56:35.6350393Z             },
2026-06-05T02:56:35.6350638Z             {
2026-06-05T02:56:35.6350991Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.6351258Z               "line": 429
2026-06-05T02:56:35.6351486Z             },
2026-06-05T02:56:35.6351727Z             {
2026-06-05T02:56:35.6352082Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6352327Z               "line": 77
2026-06-05T02:56:35.6352560Z             },
2026-06-05T02:56:35.6352784Z             {
2026-06-05T02:56:35.6353134Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6353372Z               "line": 95
2026-06-05T02:56:35.6353612Z             },
2026-06-05T02:56:35.6353844Z             {
2026-06-05T02:56:35.6354182Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6354432Z               "line": 106
2026-06-05T02:56:35.6354662Z             },
2026-06-05T02:56:35.6354895Z             {
2026-06-05T02:56:35.6355235Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6355491Z               "line": 117
2026-06-05T02:56:35.6355725Z             },
2026-06-05T02:56:35.6355962Z             {
2026-06-05T02:56:35.6356308Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6356554Z               "line": 124
2026-06-05T02:56:35.6356792Z             },
2026-06-05T02:56:35.6357023Z             {
2026-06-05T02:56:35.6357373Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-05T02:56:35.6357625Z               "line": 137
2026-06-05T02:56:35.6357857Z             },
2026-06-05T02:56:35.6358094Z             {
2026-06-05T02:56:35.6358410Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T02:56:35.6358667Z               "line": 106
2026-06-05T02:56:35.6358895Z             },
2026-06-05T02:56:35.6359127Z             {
2026-06-05T02:56:35.6359489Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T02:56:35.6359749Z               "line": 118
2026-06-05T02:56:35.6359994Z             },
2026-06-05T02:56:35.6360512Z             {
2026-06-05T02:56:35.6360886Z               "path": "crates/spt-proto/src/event.rs",
2026-06-05T02:56:35.6361265Z               "line": 336
2026-06-05T02:56:35.6361504Z             }
2026-06-05T02:56:35.6361745Z           ]
2026-06-05T02:56:35.6362288Z         }
2026-06-05T02:56:35.6362551Z       }
2026-06-05T02:56:35.6362776Z     },
2026-06-05T02:56:35.6363015Z     {
2026-06-05T02:56:35.6363335Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-05T02:56:35.6364123Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-05T02:56:35.6364393Z       "requiredStages": [
2026-06-05T02:56:35.6364632Z         "impl",
2026-06-05T02:56:35.6364875Z         "unit"
2026-06-05T02:56:35.6365102Z       ],
2026-06-05T02:56:35.6365350Z       "stages": {
2026-06-05T02:56:35.6365581Z         "doc": {
2026-06-05T02:56:35.6365851Z           "complete": true,
2026-06-05T02:56:35.6366109Z           "evidence": [
2026-06-05T02:56:35.6366355Z             {
2026-06-05T02:56:35.6366667Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.6366908Z               "line": 137
2026-06-05T02:56:35.6367154Z             }
2026-06-05T02:56:35.6367380Z           ]
2026-06-05T02:56:35.6367621Z         },
2026-06-05T02:56:35.6367865Z         "impl": {
2026-06-05T02:56:35.6368121Z           "complete": true,
2026-06-05T02:56:35.6368372Z           "evidence": [
2026-06-05T02:56:35.6368602Z             {
2026-06-05T02:56:35.6368923Z               "path": "crates/spt-store/src/db.rs",
2026-06-05T02:56:35.6369236Z               "line": 29
2026-06-05T02:56:35.6369485Z             },
2026-06-05T02:56:35.6369721Z             {
2026-06-05T02:56:35.6370043Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.6370298Z               "line": 101
2026-06-05T02:56:35.6370527Z             },
2026-06-05T02:56:35.6370773Z             {
2026-06-05T02:56:35.6371117Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6371386Z               "line": 30
2026-06-05T02:56:35.6371628Z             },
2026-06-05T02:56:35.6371853Z             {
2026-06-05T02:56:35.6372195Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.6372435Z               "line": 48
2026-06-05T02:56:35.6372672Z             }
2026-06-05T02:56:35.6372898Z           ]
2026-06-05T02:56:35.6373138Z         },
2026-06-05T02:56:35.6373374Z         "int": {
2026-06-05T02:56:35.6373630Z           "complete": false,
2026-06-05T02:56:35.6373887Z           "evidence": []
2026-06-05T02:56:35.6374117Z         },
2026-06-05T02:56:35.6374360Z         "unit": {
2026-06-05T02:56:35.6374614Z           "complete": true,
2026-06-05T02:56:35.6374869Z           "evidence": [
2026-06-05T02:56:35.6375099Z             {
2026-06-05T02:56:35.6375440Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6375691Z               "line": 152
2026-06-05T02:56:35.6375917Z             }
2026-06-05T02:56:35.6376150Z           ]
2026-06-05T02:56:35.6376385Z         }
2026-06-05T02:56:35.6376627Z       }
2026-06-05T02:56:35.6376854Z     },
2026-06-05T02:56:35.6377073Z     {
2026-06-05T02:56:35.6377401Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-05T02:56:35.6378621Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-05T02:56:35.6378892Z       "requiredStages": [
2026-06-05T02:56:35.6379136Z         "doc",
2026-06-05T02:56:35.6379424Z         "impl",
2026-06-05T02:56:35.6379674Z         "unit"
2026-06-05T02:56:35.6379901Z       ],
2026-06-05T02:56:35.6380151Z       "stages": {
2026-06-05T02:56:35.6380386Z         "doc": {
2026-06-05T02:56:35.6380647Z           "complete": true,
2026-06-05T02:56:35.6380897Z           "evidence": [
2026-06-05T02:56:35.6385833Z             {
2026-06-05T02:56:35.6386301Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.6386567Z               "line": 149
2026-06-05T02:56:35.6386807Z             }
2026-06-05T02:56:35.6387319Z           ]
2026-06-05T02:56:35.6387574Z         },
2026-06-05T02:56:35.6387949Z         "impl": {
2026-06-05T02:56:35.6388357Z           "complete": true,
2026-06-05T02:56:35.6388613Z           "evidence": [
2026-06-05T02:56:35.6388842Z             {
2026-06-05T02:56:35.6389287Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6389538Z               "line": 22
2026-06-05T02:56:35.6389776Z             }
2026-06-05T02:56:35.6390018Z           ]
2026-06-05T02:56:35.6390247Z         },
2026-06-05T02:56:35.6390489Z         "int": {
2026-06-05T02:56:35.6390747Z           "complete": false,
2026-06-05T02:56:35.6391000Z           "evidence": []
2026-06-05T02:56:35.6391225Z         },
2026-06-05T02:56:35.6391473Z         "unit": {
2026-06-05T02:56:35.6391724Z           "complete": true,
2026-06-05T02:56:35.6391975Z           "evidence": [
2026-06-05T02:56:35.6392211Z             {
2026-06-05T02:56:35.6392565Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6392823Z               "line": 257
2026-06-05T02:56:35.6393049Z             }
2026-06-05T02:56:35.6393283Z           ]
2026-06-05T02:56:35.6393522Z         }
2026-06-05T02:56:35.6393748Z       }
2026-06-05T02:56:35.6393981Z     },
2026-06-05T02:56:35.6394202Z     {
2026-06-05T02:56:35.6394538Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-05T02:56:35.6395854Z       "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-05T02:56:35.6396129Z       "requiredStages": [
2026-06-05T02:56:35.6396372Z         "impl",
2026-06-05T02:56:35.6396604Z         "unit"
2026-06-05T02:56:35.6396842Z       ],
2026-06-05T02:56:35.6397076Z       "stages": {
2026-06-05T02:56:35.6397315Z         "doc": {
2026-06-05T02:56:35.6397567Z           "complete": true,
2026-06-05T02:56:35.6397818Z           "evidence": [
2026-06-05T02:56:35.6398053Z             {
2026-06-05T02:56:35.6398366Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.6398622Z               "line": 143
2026-06-05T02:56:35.6398853Z             }
2026-06-05T02:56:35.6399097Z           ]
2026-06-05T02:56:35.6399370Z         },
2026-06-05T02:56:35.6399616Z         "impl": {
2026-06-05T02:56:35.6399874Z           "complete": true,
2026-06-05T02:56:35.6400114Z           "evidence": [
2026-06-05T02:56:35.6400350Z             {
2026-06-05T02:56:35.6400692Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6400953Z               "line": 147
2026-06-05T02:56:35.6401182Z             },
2026-06-05T02:56:35.6401415Z             {
2026-06-05T02:56:35.6401751Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T02:56:35.6401992Z               "line": 15
2026-06-05T02:56:35.6402228Z             }
2026-06-05T02:56:35.6402455Z           ]
2026-06-05T02:56:35.6402694Z         },
2026-06-05T02:56:35.6402927Z         "int": {
2026-06-05T02:56:35.6403194Z           "complete": false,
2026-06-05T02:56:35.6403458Z           "evidence": []
2026-06-05T02:56:35.6403681Z         },
2026-06-05T02:56:35.6403923Z         "unit": {
2026-06-05T02:56:35.6404180Z           "complete": true,
2026-06-05T02:56:35.6404434Z           "evidence": [
2026-06-05T02:56:35.6404658Z             {
2026-06-05T02:56:35.6405034Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-05T02:56:35.6405286Z               "line": 87
2026-06-05T02:56:35.6405517Z             },
2026-06-05T02:56:35.6405747Z             {
2026-06-05T02:56:35.6406092Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6406345Z               "line": 583
2026-06-05T02:56:35.6406573Z             },
2026-06-05T02:56:35.6406810Z             {
2026-06-05T02:56:35.6407164Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6407412Z               "line": 602
2026-06-05T02:56:35.6407651Z             },
2026-06-05T02:56:35.6407879Z             {
2026-06-05T02:56:35.6408409Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.6408669Z               "line": 148
2026-06-05T02:56:35.6408908Z             },
2026-06-05T02:56:35.6409325Z             {
2026-06-05T02:56:35.6409659Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T02:56:35.6409911Z               "line": 74
2026-06-05T02:56:35.6410140Z             },
2026-06-05T02:56:35.6410381Z             {
2026-06-05T02:56:35.6410702Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T02:56:35.6410952Z               "line": 88
2026-06-05T02:56:35.6411190Z             },
2026-06-05T02:56:35.6411414Z             {
2026-06-05T02:56:35.6411746Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-05T02:56:35.6411989Z               "line": 104
2026-06-05T02:56:35.6412225Z             }
2026-06-05T02:56:35.6412451Z           ]
2026-06-05T02:56:35.6412685Z         }
2026-06-05T02:56:35.6412922Z       }
2026-06-05T02:56:35.6413148Z     },
2026-06-05T02:56:35.6413384Z     {
2026-06-05T02:56:35.6413716Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-05T02:56:35.6414291Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-05T02:56:35.6414560Z       "requiredStages": [
2026-06-05T02:56:35.6414803Z         "impl",
2026-06-05T02:56:35.6415044Z         "unit"
2026-06-05T02:56:35.6415267Z       ],
2026-06-05T02:56:35.6415511Z       "stages": {
2026-06-05T02:56:35.6415749Z         "doc": {
2026-06-05T02:56:35.6416019Z           "complete": false,
2026-06-05T02:56:35.6416263Z           "evidence": []
2026-06-05T02:56:35.6416496Z         },
2026-06-05T02:56:35.6416740Z         "impl": {
2026-06-05T02:56:35.6416993Z           "complete": true,
2026-06-05T02:56:35.6417249Z           "evidence": [
2026-06-05T02:56:35.6417476Z             {
2026-06-05T02:56:35.6417810Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6418054Z               "line": 15
2026-06-05T02:56:35.6418293Z             },
2026-06-05T02:56:35.6418527Z             {
2026-06-05T02:56:35.6418880Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6419131Z               "line": 55
2026-06-05T02:56:35.6419418Z             },
2026-06-05T02:56:35.6419664Z             {
2026-06-05T02:56:35.6420002Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6420261Z               "line": 62
2026-06-05T02:56:35.6420509Z             },
2026-06-05T02:56:35.6420737Z             {
2026-06-05T02:56:35.6421082Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6421326Z               "line": 107
2026-06-05T02:56:35.6421570Z             },
2026-06-05T02:56:35.6421806Z             {
2026-06-05T02:56:35.6422146Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6422397Z               "line": 128
2026-06-05T02:56:35.6422621Z             }
2026-06-05T02:56:35.6422855Z           ]
2026-06-05T02:56:35.6423078Z         },
2026-06-05T02:56:35.6423320Z         "int": {
2026-06-05T02:56:35.6423589Z           "complete": false,
2026-06-05T02:56:35.6423840Z           "evidence": []
2026-06-05T02:56:35.6424075Z         },
2026-06-05T02:56:35.6424309Z         "unit": {
2026-06-05T02:56:35.6424581Z           "complete": true,
2026-06-05T02:56:35.6424826Z           "evidence": [
2026-06-05T02:56:35.6425069Z             {
2026-06-05T02:56:35.6425408Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6425652Z               "line": 145
2026-06-05T02:56:35.6425891Z             },
2026-06-05T02:56:35.6426118Z             {
2026-06-05T02:56:35.6426444Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6426686Z               "line": 151
2026-06-05T02:56:35.6426924Z             },
2026-06-05T02:56:35.6427157Z             {
2026-06-05T02:56:35.6427476Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6427732Z               "line": 162
2026-06-05T02:56:35.6427961Z             },
2026-06-05T02:56:35.6428192Z             {
2026-06-05T02:56:35.6428668Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6428937Z               "line": 171
2026-06-05T02:56:35.6429245Z             },
2026-06-05T02:56:35.6429646Z             {
2026-06-05T02:56:35.6430014Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6430263Z               "line": 183
2026-06-05T02:56:35.6434946Z             },
2026-06-05T02:56:35.6435296Z             {
2026-06-05T02:56:35.6435698Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6435958Z               "line": 193
2026-06-05T02:56:35.6436191Z             },
2026-06-05T02:56:35.6436429Z             {
2026-06-05T02:56:35.6436768Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6437026Z               "line": 237
2026-06-05T02:56:35.6437263Z             },
2026-06-05T02:56:35.6437499Z             {
2026-06-05T02:56:35.6437855Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6438102Z               "line": 249
2026-06-05T02:56:35.6438371Z             },
2026-06-05T02:56:35.6438604Z             {
2026-06-05T02:56:35.6438960Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.6439288Z               "line": 275
2026-06-05T02:56:35.6439530Z             }
2026-06-05T02:56:35.6439770Z           ]
2026-06-05T02:56:35.6439997Z         }
2026-06-05T02:56:35.6440240Z       }
2026-06-05T02:56:35.6440463Z     },
2026-06-05T02:56:35.6440693Z     {
2026-06-05T02:56:35.6441001Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-05T02:56:35.6441813Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-05T02:56:35.6442081Z       "requiredStages": [
2026-06-05T02:56:35.6442314Z         "impl",
2026-06-05T02:56:35.6442549Z         "unit",
2026-06-05T02:56:35.6442777Z         "int"
2026-06-05T02:56:35.6443017Z       ],
2026-06-05T02:56:35.6443253Z       "stages": {
2026-06-05T02:56:35.6443497Z         "doc": {
2026-06-05T02:56:35.6443773Z           "complete": false,
2026-06-05T02:56:35.6444020Z           "evidence": []
2026-06-05T02:56:35.6444253Z         },
2026-06-05T02:56:35.6444489Z         "impl": {
2026-06-05T02:56:35.6444765Z           "complete": true,
2026-06-05T02:56:35.6445016Z           "evidence": [
2026-06-05T02:56:35.6445255Z             {
2026-06-05T02:56:35.6445591Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.6445841Z               "line": 246
2026-06-05T02:56:35.6446083Z             },
2026-06-05T02:56:35.6446313Z             {
2026-06-05T02:56:35.6446650Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.6446895Z               "line": 506
2026-06-05T02:56:35.6447135Z             },
2026-06-05T02:56:35.6447371Z             {
2026-06-05T02:56:35.6447696Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.6447948Z               "line": 529
2026-06-05T02:56:35.6448178Z             },
2026-06-05T02:56:35.6448415Z             {
2026-06-05T02:56:35.6448754Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.6449017Z               "line": 553
2026-06-05T02:56:35.6449298Z             },
2026-06-05T02:56:35.6449546Z             {
2026-06-05T02:56:35.6449889Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.6450133Z               "line": 472
2026-06-05T02:56:35.6450371Z             },
2026-06-05T02:56:35.6450605Z             {
2026-06-05T02:56:35.6450951Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.6451202Z               "line": 553
2026-06-05T02:56:35.6451432Z             },
2026-06-05T02:56:35.6451665Z             {
2026-06-05T02:56:35.6451997Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.6452246Z               "line": 597
2026-06-05T02:56:35.6452479Z             },
2026-06-05T02:56:35.6452706Z             {
2026-06-05T02:56:35.6453044Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-05T02:56:35.6453286Z               "line": 640
2026-06-05T02:56:35.6453789Z             },
2026-06-05T02:56:35.6454043Z             {
2026-06-05T02:56:35.6454390Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.6454775Z               "line": 46
2026-06-05T02:56:35.6455007Z             },
2026-06-05T02:56:35.6455239Z             {
2026-06-05T02:56:35.6455574Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.6455829Z               "line": 160
2026-06-05T02:56:35.6456060Z             },
2026-06-05T02:56:35.6456296Z             {
2026-06-05T02:56:35.6456623Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T02:56:35.6456874Z               "line": 71
2026-06-05T02:56:35.6457121Z             },
2026-06-05T02:56:35.6457346Z             {
2026-06-05T02:56:35.6457685Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.6457931Z               "line": 128
2026-06-05T02:56:35.6458167Z             },
2026-06-05T02:56:35.6458400Z             {
2026-06-05T02:56:35.6458732Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.6458984Z               "line": 174
2026-06-05T02:56:35.6459264Z             }
2026-06-05T02:56:35.6459520Z           ]
2026-06-05T02:56:35.6459749Z         },
2026-06-05T02:56:35.6459992Z         "int": {
2026-06-05T02:56:35.6460256Z           "complete": true,
2026-06-05T02:56:35.6460497Z           "evidence": [
2026-06-05T02:56:35.6460734Z             {
2026-06-05T02:56:35.6461103Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-05T02:56:35.6461359Z               "line": 27
2026-06-05T02:56:35.6461588Z             },
2026-06-05T02:56:35.6461828Z             {
2026-06-05T02:56:35.6462195Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-05T02:56:35.6462440Z               "line": 125
2026-06-05T02:56:35.6462677Z             },
2026-06-05T02:56:35.6462906Z             {
2026-06-05T02:56:35.6463272Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-05T02:56:35.6463525Z               "line": 189
2026-06-05T02:56:35.6463765Z             }
2026-06-05T02:56:35.6464008Z           ]
2026-06-05T02:56:35.6464240Z         },
2026-06-05T02:56:35.6464495Z         "unit": {
2026-06-05T02:56:35.6464747Z           "complete": true,
2026-06-05T02:56:35.6464997Z           "evidence": [
2026-06-05T02:56:35.6465221Z             {
2026-06-05T02:56:35.6465568Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.6465823Z               "line": 282
2026-06-05T02:56:35.6466055Z             },
2026-06-05T02:56:35.6466290Z             {
2026-06-05T02:56:35.6466622Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.6466877Z               "line": 300
2026-06-05T02:56:35.6467105Z             },
2026-06-05T02:56:35.6467342Z             {
2026-06-05T02:56:35.6467682Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-05T02:56:35.6467926Z               "line": 318
2026-06-05T02:56:35.6468165Z             },
2026-06-05T02:56:35.6468392Z             {
2026-06-05T02:56:35.6468769Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T02:56:35.6469023Z               "line": 221
2026-06-05T02:56:35.6469309Z             },
2026-06-05T02:56:35.6469553Z             {
2026-06-05T02:56:35.6469889Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T02:56:35.6470144Z               "line": 204
2026-06-05T02:56:35.6470372Z             },
2026-06-05T02:56:35.6470607Z             {
2026-06-05T02:56:35.6470949Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T02:56:35.6471196Z               "line": 182
2026-06-05T02:56:35.6471433Z             },
2026-06-05T02:56:35.6471661Z             {
2026-06-05T02:56:35.6471994Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.6472236Z               "line": 441
2026-06-05T02:56:35.6472475Z             },
2026-06-05T02:56:35.6472708Z             {
2026-06-05T02:56:35.6473028Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.6473433Z               "line": 465
2026-06-05T02:56:35.6473675Z             }
2026-06-05T02:56:35.6473912Z           ]
2026-06-05T02:56:35.6474146Z         }
2026-06-05T02:56:35.6474515Z       }
2026-06-05T02:56:35.6474760Z     },
2026-06-05T02:56:35.6474987Z     {
2026-06-05T02:56:35.6475319Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-05T02:56:35.6475875Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-05T02:56:35.6476147Z       "requiredStages": [
2026-06-05T02:56:35.6476386Z         "impl",
2026-06-05T02:56:35.6476633Z         "unit"
2026-06-05T02:56:35.6476875Z       ],
2026-06-05T02:56:35.6477112Z       "stages": {
2026-06-05T02:56:35.6477350Z         "doc": {
2026-06-05T02:56:35.6477608Z           "complete": false,
2026-06-05T02:56:35.6477869Z           "evidence": []
2026-06-05T02:56:35.6478097Z         },
2026-06-05T02:56:35.6478347Z         "impl": {
2026-06-05T02:56:35.6478606Z           "complete": true,
2026-06-05T02:56:35.6483258Z           "evidence": [
2026-06-05T02:56:35.6483623Z             {
2026-06-05T02:56:35.6484041Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6484310Z               "line": 56
2026-06-05T02:56:35.6484551Z             },
2026-06-05T02:56:35.6484787Z             {
2026-06-05T02:56:35.6485162Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6485410Z               "line": 65
2026-06-05T02:56:35.6485650Z             },
2026-06-05T02:56:35.6485875Z             {
2026-06-05T02:56:35.6486253Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6486497Z               "line": 72
2026-06-05T02:56:35.6486734Z             },
2026-06-05T02:56:35.6486974Z             {
2026-06-05T02:56:35.6487296Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6487547Z               "line": 33
2026-06-05T02:56:35.6487778Z             },
2026-06-05T02:56:35.6488012Z             {
2026-06-05T02:56:35.6488342Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6488592Z               "line": 61
2026-06-05T02:56:35.6488827Z             },
2026-06-05T02:56:35.6489062Z             {
2026-06-05T02:56:35.6489465Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6489709Z               "line": 70
2026-06-05T02:56:35.6489951Z             },
2026-06-05T02:56:35.6490174Z             {
2026-06-05T02:56:35.6490513Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6490766Z               "line": 79
2026-06-05T02:56:35.6490993Z             },
2026-06-05T02:56:35.6491228Z             {
2026-06-05T02:56:35.6491556Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6491807Z               "line": 88
2026-06-05T02:56:35.6492037Z             },
2026-06-05T02:56:35.6492271Z             {
2026-06-05T02:56:35.6492600Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6492840Z               "line": 97
2026-06-05T02:56:35.6493092Z             },
2026-06-05T02:56:35.6493322Z             {
2026-06-05T02:56:35.6493657Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6493922Z               "line": 105
2026-06-05T02:56:35.6494147Z             },
2026-06-05T02:56:35.6494382Z             {
2026-06-05T02:56:35.6494711Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6494964Z               "line": 114
2026-06-05T02:56:35.6495189Z             },
2026-06-05T02:56:35.6495425Z             {
2026-06-05T02:56:35.6495756Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6496000Z               "line": 123
2026-06-05T02:56:35.6496235Z             },
2026-06-05T02:56:35.6496462Z             {
2026-06-05T02:56:35.6496791Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6497030Z               "line": 130
2026-06-05T02:56:35.6497268Z             },
2026-06-05T02:56:35.6497502Z             {
2026-06-05T02:56:35.6498054Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6498331Z               "line": 137
2026-06-05T02:56:35.6498561Z             },
2026-06-05T02:56:35.6498801Z             {
2026-06-05T02:56:35.6499318Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6499577Z               "line": 145
2026-06-05T02:56:35.6499818Z             },
2026-06-05T02:56:35.6500040Z             {
2026-06-05T02:56:35.6500375Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6500614Z               "line": 154
2026-06-05T02:56:35.6500851Z             },
2026-06-05T02:56:35.6501079Z             {
2026-06-05T02:56:35.6501414Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6501667Z               "line": 163
2026-06-05T02:56:35.6501894Z             },
2026-06-05T02:56:35.6502125Z             {
2026-06-05T02:56:35.6502449Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6502698Z               "line": 172
2026-06-05T02:56:35.6502925Z             },
2026-06-05T02:56:35.6503174Z             {
2026-06-05T02:56:35.6503511Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6503767Z               "line": 184
2026-06-05T02:56:35.6504000Z             },
2026-06-05T02:56:35.6504228Z             {
2026-06-05T02:56:35.6504566Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6504813Z               "line": 191
2026-06-05T02:56:35.6505052Z             },
2026-06-05T02:56:35.6505287Z             {
2026-06-05T02:56:35.6505615Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6505871Z               "line": 200
2026-06-05T02:56:35.6506103Z             },
2026-06-05T02:56:35.6506336Z             {
2026-06-05T02:56:35.6506663Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6506919Z               "line": 207
2026-06-05T02:56:35.6507158Z             },
2026-06-05T02:56:35.6507381Z             {
2026-06-05T02:56:35.6507717Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6507973Z               "line": 274
2026-06-05T02:56:35.6508217Z             },
2026-06-05T02:56:35.6508453Z             {
2026-06-05T02:56:35.6508785Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6509036Z               "line": 286
2026-06-05T02:56:35.6509313Z             },
2026-06-05T02:56:35.6509722Z             {
2026-06-05T02:56:35.6510099Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6510555Z               "line": 373
2026-06-05T02:56:35.6511005Z             }
2026-06-05T02:56:35.6511292Z           ]
2026-06-05T02:56:35.6511591Z         },
2026-06-05T02:56:35.6511863Z         "int": {
2026-06-05T02:56:35.6512166Z           "complete": false,
2026-06-05T02:56:35.6512444Z           "evidence": []
2026-06-05T02:56:35.6512721Z         },
2026-06-05T02:56:35.6512981Z         "unit": {
2026-06-05T02:56:35.6513260Z           "complete": true,
2026-06-05T02:56:35.6513533Z           "evidence": [
2026-06-05T02:56:35.6513797Z             {
2026-06-05T02:56:35.6514164Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6514445Z               "line": 443
2026-06-05T02:56:35.6514726Z             },
2026-06-05T02:56:35.6514970Z             {
2026-06-05T02:56:35.6515334Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6515611Z               "line": 469
2026-06-05T02:56:35.6515897Z             },
2026-06-05T02:56:35.6516170Z             {
2026-06-05T02:56:35.6516571Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6516871Z               "line": 482
2026-06-05T02:56:35.6517147Z             },
2026-06-05T02:56:35.6517411Z             {
2026-06-05T02:56:35.6517759Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6518027Z               "line": 547
2026-06-05T02:56:35.6518279Z             }
2026-06-05T02:56:35.6518543Z           ]
2026-06-05T02:56:35.6518788Z         }
2026-06-05T02:56:35.6519065Z       }
2026-06-05T02:56:35.6519434Z     },
2026-06-05T02:56:35.6520082Z     {
2026-06-05T02:56:35.6520453Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-05T02:56:35.6521078Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-05T02:56:35.6521783Z       "requiredStages": [
2026-06-05T02:56:35.6522094Z         "impl",
2026-06-05T02:56:35.6522419Z         "unit"
2026-06-05T02:56:35.6522720Z       ],
2026-06-05T02:56:35.6523309Z       "stages": {
2026-06-05T02:56:35.6523597Z         "doc": {
2026-06-05T02:56:35.6523930Z           "complete": false,
2026-06-05T02:56:35.6524237Z           "evidence": []
2026-06-05T02:56:35.6524502Z         },
2026-06-05T02:56:35.6524797Z         "impl": {
2026-06-05T02:56:35.6525120Z           "complete": true,
2026-06-05T02:56:35.6525426Z           "evidence": [
2026-06-05T02:56:35.6525677Z             {
2026-06-05T02:56:35.6526056Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.6526356Z               "line": 132
2026-06-05T02:56:35.6526622Z             },
2026-06-05T02:56:35.6526908Z             {
2026-06-05T02:56:35.6527294Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.6527590Z               "line": 130
2026-06-05T02:56:35.6527848Z             }
2026-06-05T02:56:35.6535369Z           ]
2026-06-05T02:56:35.6535846Z         },
2026-06-05T02:56:35.6536105Z         "int": {
2026-06-05T02:56:35.6536400Z           "complete": false,
2026-06-05T02:56:35.6536658Z           "evidence": []
2026-06-05T02:56:35.6536908Z         },
2026-06-05T02:56:35.6537509Z         "unit": {
2026-06-05T02:56:35.6537801Z           "complete": true,
2026-06-05T02:56:35.6538063Z           "evidence": [
2026-06-05T02:56:35.6538296Z             {
2026-06-05T02:56:35.6538647Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.6538901Z               "line": 250
2026-06-05T02:56:35.6539146Z             },
2026-06-05T02:56:35.6539669Z             {
2026-06-05T02:56:35.6540022Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.6540317Z               "line": 497
2026-06-05T02:56:35.6540548Z             },
2026-06-05T02:56:35.6540787Z             {
2026-06-05T02:56:35.6541146Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.6541400Z               "line": 507
2026-06-05T02:56:35.6541638Z             }
2026-06-05T02:56:35.6541862Z           ]
2026-06-05T02:56:35.6542096Z         }
2026-06-05T02:56:35.6542317Z       }
2026-06-05T02:56:35.6542548Z     },
2026-06-05T02:56:35.6542773Z     {
2026-06-05T02:56:35.6543081Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-05T02:56:35.6543487Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-05T02:56:35.6543746Z       "requiredStages": [
2026-06-05T02:56:35.6543987Z         "impl",
2026-06-05T02:56:35.6544220Z         "unit"
2026-06-05T02:56:35.6544455Z       ],
2026-06-05T02:56:35.6544686Z       "stages": {
2026-06-05T02:56:35.6544924Z         "doc": {
2026-06-05T02:56:35.6545195Z           "complete": false,
2026-06-05T02:56:35.6545450Z           "evidence": []
2026-06-05T02:56:35.6545685Z         },
2026-06-05T02:56:35.6545923Z         "impl": {
2026-06-05T02:56:35.6546191Z           "complete": true,
2026-06-05T02:56:35.6546444Z           "evidence": [
2026-06-05T02:56:35.6546679Z             {
2026-06-05T02:56:35.6547036Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.6547278Z               "line": 54
2026-06-05T02:56:35.6547514Z             },
2026-06-05T02:56:35.6547740Z             {
2026-06-05T02:56:35.6548115Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.6548358Z               "line": 393
2026-06-05T02:56:35.6548593Z             }
2026-06-05T02:56:35.6548827Z           ]
2026-06-05T02:56:35.6549050Z         },
2026-06-05T02:56:35.6549329Z         "int": {
2026-06-05T02:56:35.6549595Z           "complete": false,
2026-06-05T02:56:35.6549852Z           "evidence": []
2026-06-05T02:56:35.6550079Z         },
2026-06-05T02:56:35.6550321Z         "unit": {
2026-06-05T02:56:35.6550999Z           "complete": true,
2026-06-05T02:56:35.6551272Z           "evidence": [
2026-06-05T02:56:35.6551511Z             {
2026-06-05T02:56:35.6552037Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.6552294Z               "line": 425
2026-06-05T02:56:35.6552522Z             }
2026-06-05T02:56:35.6552761Z           ]
2026-06-05T02:56:35.6552997Z         }
2026-06-05T02:56:35.6553224Z       }
2026-06-05T02:56:35.6553462Z     },
2026-06-05T02:56:35.6553691Z     {
2026-06-05T02:56:35.6554040Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-05T02:56:35.6554530Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-05T02:56:35.6554806Z       "requiredStages": [
2026-06-05T02:56:35.6555052Z         "impl",
2026-06-05T02:56:35.6555281Z         "unit"
2026-06-05T02:56:35.6555518Z       ],
2026-06-05T02:56:35.6555757Z       "stages": {
2026-06-05T02:56:35.6556000Z         "doc": {
2026-06-05T02:56:35.6556260Z           "complete": false,
2026-06-05T02:56:35.6556539Z           "evidence": []
2026-06-05T02:56:35.6556783Z         },
2026-06-05T02:56:35.6557027Z         "impl": {
2026-06-05T02:56:35.6557311Z           "complete": true,
2026-06-05T02:56:35.6557560Z           "evidence": [
2026-06-05T02:56:35.6557804Z             {
2026-06-05T02:56:35.6558162Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6558421Z               "line": 432
2026-06-05T02:56:35.6558660Z             },
2026-06-05T02:56:35.6558890Z             {
2026-06-05T02:56:35.6559294Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6559551Z               "line": 28
2026-06-05T02:56:35.6559800Z             }
2026-06-05T02:56:35.6560031Z           ]
2026-06-05T02:56:35.6560274Z         },
2026-06-05T02:56:35.6560517Z         "int": {
2026-06-05T02:56:35.6560781Z           "complete": false,
2026-06-05T02:56:35.6561045Z           "evidence": []
2026-06-05T02:56:35.6561278Z         },
2026-06-05T02:56:35.6561532Z         "unit": {
2026-06-05T02:56:35.6561792Z           "complete": true,
2026-06-05T02:56:35.6562052Z           "evidence": [
2026-06-05T02:56:35.6562308Z             {
2026-06-05T02:56:35.6562644Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6562902Z               "line": 200
2026-06-05T02:56:35.6563136Z             }
2026-06-05T02:56:35.6563373Z           ]
2026-06-05T02:56:35.6563599Z         }
2026-06-05T02:56:35.6563839Z       }
2026-06-05T02:56:35.6564067Z     },
2026-06-05T02:56:35.6564306Z     {
2026-06-05T02:56:35.6564627Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-05T02:56:35.6565021Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-05T02:56:35.6565298Z       "requiredStages": [],
2026-06-05T02:56:35.6565543Z       "stages": {
2026-06-05T02:56:35.6565791Z         "doc": {
2026-06-05T02:56:35.6566064Z           "complete": false,
2026-06-05T02:56:35.6566316Z           "evidence": []
2026-06-05T02:56:35.6566558Z         },
2026-06-05T02:56:35.6566809Z         "impl": {
2026-06-05T02:56:35.6567082Z           "complete": false,
2026-06-05T02:56:35.6567334Z           "evidence": []
2026-06-05T02:56:35.6567588Z         },
2026-06-05T02:56:35.6567823Z         "int": {
2026-06-05T02:56:35.6568089Z           "complete": false,
2026-06-05T02:56:35.6568345Z           "evidence": []
2026-06-05T02:56:35.6568573Z         },
2026-06-05T02:56:35.6568820Z         "unit": {
2026-06-05T02:56:35.6569079Z           "complete": false,
2026-06-05T02:56:35.6569397Z           "evidence": []
2026-06-05T02:56:35.6569636Z         }
2026-06-05T02:56:35.6569875Z       }
2026-06-05T02:56:35.6570111Z     },
2026-06-05T02:56:35.6570341Z     {
2026-06-05T02:56:35.6570668Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-05T02:56:35.6571101Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-05T02:56:35.6571372Z       "requiredStages": [
2026-06-05T02:56:35.6571607Z         "impl",
2026-06-05T02:56:35.6571849Z         "unit"
2026-06-05T02:56:35.6572254Z       ],
2026-06-05T02:56:35.6572513Z       "stages": {
2026-06-05T02:56:35.6572756Z         "doc": {
2026-06-05T02:56:35.6573019Z           "complete": false,
2026-06-05T02:56:35.6573419Z           "evidence": []
2026-06-05T02:56:35.6573654Z         },
2026-06-05T02:56:35.6573902Z         "impl": {
2026-06-05T02:56:35.6574173Z           "complete": true,
2026-06-05T02:56:35.6574427Z           "evidence": [
2026-06-05T02:56:35.6574671Z             {
2026-06-05T02:56:35.6575000Z               "path": "crates/spt-live/src/turn.rs",
2026-06-05T02:56:35.6575260Z               "line": 19
2026-06-05T02:56:35.6575494Z             },
2026-06-05T02:56:35.6575740Z             {
2026-06-05T02:56:35.6576103Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.6576351Z               "line": 325
2026-06-05T02:56:35.6576590Z             },
2026-06-05T02:56:35.6576821Z             {
2026-06-05T02:56:35.6577184Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.6577456Z               "line": 361
2026-06-05T02:56:35.6577690Z             },
2026-06-05T02:56:35.6577931Z             {
2026-06-05T02:56:35.6578279Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T02:56:35.6578547Z               "line": 15
2026-06-05T02:56:35.6578784Z             },
2026-06-05T02:56:35.6579027Z             {
2026-06-05T02:56:35.6579421Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T02:56:35.6579677Z               "line": 48
2026-06-05T02:56:35.6585446Z             },
2026-06-05T02:56:35.6585802Z             {
2026-06-05T02:56:35.6586174Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T02:56:35.6586427Z               "line": 106
2026-06-05T02:56:35.6586683Z             }
2026-06-05T02:56:35.6586935Z           ]
2026-06-05T02:56:35.6587164Z         },
2026-06-05T02:56:35.6587421Z         "int": {
2026-06-05T02:56:35.6587686Z           "complete": false,
2026-06-05T02:56:35.6587948Z           "evidence": []
2026-06-05T02:56:35.6588178Z         },
2026-06-05T02:56:35.6588454Z         "unit": {
2026-06-05T02:56:35.6588733Z           "complete": true,
2026-06-05T02:56:35.6588979Z           "evidence": [
2026-06-05T02:56:35.6589298Z             {
2026-06-05T02:56:35.6589660Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.6589916Z               "line": 453
2026-06-05T02:56:35.6590144Z             },
2026-06-05T02:56:35.6590387Z             {
2026-06-05T02:56:35.6590739Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T02:56:35.6590986Z               "line": 149
2026-06-05T02:56:35.6591224Z             },
2026-06-05T02:56:35.6591451Z             {
2026-06-05T02:56:35.6591793Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-05T02:56:35.6592036Z               "line": 156
2026-06-05T02:56:35.6592275Z             }
2026-06-05T02:56:35.6592505Z           ]
2026-06-05T02:56:35.6592736Z         }
2026-06-05T02:56:35.6592971Z       }
2026-06-05T02:56:35.6593192Z     },
2026-06-05T02:56:35.6593418Z     {
2026-06-05T02:56:35.6593760Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-05T02:56:35.6594231Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-05T02:56:35.6594513Z       "requiredStages": [
2026-06-05T02:56:35.6594752Z         "impl",
2026-06-05T02:56:35.6594997Z         "unit"
2026-06-05T02:56:35.6595224Z       ],
2026-06-05T02:56:35.6595476Z       "stages": {
2026-06-05T02:56:35.6595716Z         "doc": {
2026-06-05T02:56:35.6595987Z           "complete": false,
2026-06-05T02:56:35.6596244Z           "evidence": []
2026-06-05T02:56:35.6596471Z         },
2026-06-05T02:56:35.6596718Z         "impl": {
2026-06-05T02:56:35.6596975Z           "complete": true,
2026-06-05T02:56:35.6597232Z           "evidence": [
2026-06-05T02:56:35.6597461Z             {
2026-06-05T02:56:35.6597809Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6598059Z               "line": 35
2026-06-05T02:56:35.6598287Z             }
2026-06-05T02:56:35.6598528Z           ]
2026-06-05T02:56:35.6599003Z         },
2026-06-05T02:56:35.6599323Z         "int": {
2026-06-05T02:56:35.6599594Z           "complete": false,
2026-06-05T02:56:35.6599989Z           "evidence": []
2026-06-05T02:56:35.6600230Z         },
2026-06-05T02:56:35.6600464Z         "unit": {
2026-06-05T02:56:35.6600729Z           "complete": true,
2026-06-05T02:56:35.6600981Z           "evidence": [
2026-06-05T02:56:35.6601214Z             {
2026-06-05T02:56:35.6601549Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-05T02:56:35.6601809Z               "line": 217
2026-06-05T02:56:35.6602051Z             }
2026-06-05T02:56:35.6602278Z           ]
2026-06-05T02:56:35.6602516Z         }
2026-06-05T02:56:35.6602739Z       }
2026-06-05T02:56:35.6602980Z     },
2026-06-05T02:56:35.6603203Z     {
2026-06-05T02:56:35.6603520Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-05T02:56:35.6604341Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-05T02:56:35.6604617Z       "requiredStages": [
2026-06-05T02:56:35.6604862Z         "impl",
2026-06-05T02:56:35.6605095Z         "unit"
2026-06-05T02:56:35.6605344Z       ],
2026-06-05T02:56:35.6605579Z       "stages": {
2026-06-05T02:56:35.6605823Z         "doc": {
2026-06-05T02:56:35.6606093Z           "complete": false,
2026-06-05T02:56:35.6606343Z           "evidence": []
2026-06-05T02:56:35.6606583Z         },
2026-06-05T02:56:35.6606821Z         "impl": {
2026-06-05T02:56:35.6607082Z           "complete": true,
2026-06-05T02:56:35.6607328Z           "evidence": [
2026-06-05T02:56:35.6607567Z             {
2026-06-05T02:56:35.6607945Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.6608194Z               "line": 256
2026-06-05T02:56:35.6608432Z             },
2026-06-05T02:56:35.6608660Z             {
2026-06-05T02:56:35.6609011Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.6609303Z               "line": 221
2026-06-05T02:56:35.6609558Z             },
2026-06-05T02:56:35.6609795Z             {
2026-06-05T02:56:35.6610138Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.6610402Z               "line": 150
2026-06-05T02:56:35.6610628Z             }
2026-06-05T02:56:35.6610866Z           ]
2026-06-05T02:56:35.6611100Z         },
2026-06-05T02:56:35.6611346Z         "int": {
2026-06-05T02:56:35.6611613Z           "complete": false,
2026-06-05T02:56:35.6611858Z           "evidence": []
2026-06-05T02:56:35.6612119Z         },
2026-06-05T02:56:35.6612353Z         "unit": {
2026-06-05T02:56:35.6612616Z           "complete": true,
2026-06-05T02:56:35.6612864Z           "evidence": [
2026-06-05T02:56:35.6613100Z             {
2026-06-05T02:56:35.6613457Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.6613705Z               "line": 477
2026-06-05T02:56:35.6613947Z             },
2026-06-05T02:56:35.6614175Z             {
2026-06-05T02:56:35.6614539Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.6614788Z               "line": 488
2026-06-05T02:56:35.6615027Z             },
2026-06-05T02:56:35.6615262Z             {
2026-06-05T02:56:35.6615614Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.6615868Z               "line": 504
2026-06-05T02:56:35.6616099Z             },
2026-06-05T02:56:35.6616340Z             {
2026-06-05T02:56:35.6616681Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.6616937Z               "line": 518
2026-06-05T02:56:35.6617174Z             },
2026-06-05T02:56:35.6617401Z             {
2026-06-05T02:56:35.6617782Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T02:56:35.6618030Z               "line": 268
2026-06-05T02:56:35.6618271Z             }
2026-06-05T02:56:35.6618506Z           ]
2026-06-05T02:56:35.6618751Z         }
2026-06-05T02:56:35.6618984Z       }
2026-06-05T02:56:35.6619260Z     },
2026-06-05T02:56:35.6619500Z     {
2026-06-05T02:56:35.6619989Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-05T02:56:35.6622661Z       "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-05T02:56:35.6623080Z       "requiredStages": [
2026-06-05T02:56:35.6623312Z         "doc",
2026-06-05T02:56:35.6623561Z         "impl",
2026-06-05T02:56:35.6623797Z         "unit"
2026-06-05T02:56:35.6624034Z       ],
2026-06-05T02:56:35.6624272Z       "stages": {
2026-06-05T02:56:35.6624519Z         "doc": {
2026-06-05T02:56:35.6624787Z           "complete": true,
2026-06-05T02:56:35.6625035Z           "evidence": [
2026-06-05T02:56:35.6625275Z             {
2026-06-05T02:56:35.6625580Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-05T02:56:35.6625838Z               "line": 266
2026-06-05T02:56:35.6626066Z             }
2026-06-05T02:56:35.6626309Z           ]
2026-06-05T02:56:35.6626563Z         },
2026-06-05T02:56:35.6626801Z         "impl": {
2026-06-05T02:56:35.6627063Z           "complete": true,
2026-06-05T02:56:35.6627320Z           "evidence": [
2026-06-05T02:56:35.6627560Z             {
2026-06-05T02:56:35.6627902Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.6628157Z               "line": 85
2026-06-05T02:56:35.6628393Z             },
2026-06-05T02:56:35.6628622Z             {
2026-06-05T02:56:35.6628971Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.6629266Z               "line": 99
2026-06-05T02:56:35.6629511Z             },
2026-06-05T02:56:35.6629740Z             {
2026-06-05T02:56:35.6630103Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.6630357Z               "line": 54
2026-06-05T02:56:35.6630599Z             },
2026-06-05T02:56:35.6630835Z             {
2026-06-05T02:56:35.6631185Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.6636354Z               "line": 89
2026-06-05T02:56:35.6636700Z             },
2026-06-05T02:56:35.6636965Z             {
2026-06-05T02:56:35.6637382Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.6637632Z               "line": 29
2026-06-05T02:56:35.6637880Z             },
2026-06-05T02:56:35.6638116Z             {
2026-06-05T02:56:35.6638481Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.6638723Z               "line": 75
2026-06-05T02:56:35.6638964Z             },
2026-06-05T02:56:35.6639278Z             {
2026-06-05T02:56:35.6639657Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6639920Z               "line": 121
2026-06-05T02:56:35.6640154Z             },
2026-06-05T02:56:35.6640402Z             {
2026-06-05T02:56:35.6640740Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-05T02:56:35.6640996Z               "line": 28
2026-06-05T02:56:35.6641234Z             },
2026-06-05T02:56:35.6641475Z             {
2026-06-05T02:56:35.6641831Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-05T02:56:35.6642079Z               "line": 74
2026-06-05T02:56:35.6642328Z             },
2026-06-05T02:56:35.6642573Z             {
2026-06-05T02:56:35.6642902Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6643189Z               "line": 40
2026-06-05T02:56:35.6643446Z             },
2026-06-05T02:56:35.6643854Z             {
2026-06-05T02:56:35.6644351Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6644806Z               "line": 161
2026-06-05T02:56:35.6645100Z             },
2026-06-05T02:56:35.6645381Z             {
2026-06-05T02:56:35.6645791Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T02:56:35.6646213Z               "line": 70
2026-06-05T02:56:35.6646457Z             },
2026-06-05T02:56:35.6646687Z             {
2026-06-05T02:56:35.6647027Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.6647579Z               "line": 210
2026-06-05T02:56:35.6647843Z             },
2026-06-05T02:56:35.6648087Z             {
2026-06-05T02:56:35.6648568Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T02:56:35.6648827Z               "line": 37
2026-06-05T02:56:35.6649061Z             },
2026-06-05T02:56:35.6649357Z             {
2026-06-05T02:56:35.6649720Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T02:56:35.6649968Z               "line": 38
2026-06-05T02:56:35.6650215Z             },
2026-06-05T02:56:35.6650446Z             {
2026-06-05T02:56:35.6650799Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.6651045Z               "line": 36
2026-06-05T02:56:35.6651289Z             },
2026-06-05T02:56:35.6651532Z             {
2026-06-05T02:56:35.6651865Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T02:56:35.6652121Z               "line": 40
2026-06-05T02:56:35.6652354Z             }
2026-06-05T02:56:35.6652605Z           ]
2026-06-05T02:56:35.6652840Z         },
2026-06-05T02:56:35.6653085Z         "int": {
2026-06-05T02:56:35.6653357Z           "complete": false,
2026-06-05T02:56:35.6653616Z           "evidence": []
2026-06-05T02:56:35.6653852Z         },
2026-06-05T02:56:35.6654088Z         "unit": {
2026-06-05T02:56:35.6654357Z           "complete": true,
2026-06-05T02:56:35.6654603Z           "evidence": [
2026-06-05T02:56:35.6654842Z             {
2026-06-05T02:56:35.6655204Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.6655451Z               "line": 179
2026-06-05T02:56:35.6655695Z             },
2026-06-05T02:56:35.6655930Z             {
2026-06-05T02:56:35.6656306Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-05T02:56:35.6656552Z               "line": 117
2026-06-05T02:56:35.6656798Z             },
2026-06-05T02:56:35.6657038Z             {
2026-06-05T02:56:35.6657405Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T02:56:35.6657673Z               "line": 344
2026-06-05T02:56:35.6657911Z             },
2026-06-05T02:56:35.6658157Z             {
2026-06-05T02:56:35.6658501Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.6658761Z               "line": 204
2026-06-05T02:56:35.6659004Z             },
2026-06-05T02:56:35.6659279Z             {
2026-06-05T02:56:35.6659640Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T02:56:35.6659895Z               "line": 147
2026-06-05T02:56:35.6660140Z             },
2026-06-05T02:56:35.6660375Z             {
2026-06-05T02:56:35.6660729Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.6660990Z               "line": 106
2026-06-05T02:56:35.6661219Z             },
2026-06-05T02:56:35.6661459Z             {
2026-06-05T02:56:35.6661793Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T02:56:35.6662053Z               "line": 142
2026-06-05T02:56:35.6662296Z             },
2026-06-05T02:56:35.6662538Z             {
2026-06-05T02:56:35.6662893Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T02:56:35.6663141Z               "line": 139
2026-06-05T02:56:35.6663389Z             },
2026-06-05T02:56:35.6663619Z             {
2026-06-05T02:56:35.6663970Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.6664228Z               "line": 126
2026-06-05T02:56:35.6664466Z             },
2026-06-05T02:56:35.6664705Z             {
2026-06-05T02:56:35.6665033Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T02:56:35.6665292Z               "line": 135
2026-06-05T02:56:35.6665526Z             }
2026-06-05T02:56:35.6665768Z           ]
2026-06-05T02:56:35.6666007Z         }
2026-06-05T02:56:35.6666234Z       }
2026-06-05T02:56:35.6666471Z     },
2026-06-05T02:56:35.6666699Z     {
2026-06-05T02:56:35.6667028Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-05T02:56:35.6667497Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-05T02:56:35.6667920Z       "requiredStages": [
2026-06-05T02:56:35.6668190Z         "impl",
2026-06-05T02:56:35.6668428Z         "unit"
2026-06-05T02:56:35.6668825Z       ],
2026-06-05T02:56:35.6669077Z       "stages": {
2026-06-05T02:56:35.6669372Z         "doc": {
2026-06-05T02:56:35.6669646Z           "complete": false,
2026-06-05T02:56:35.6669916Z           "evidence": []
2026-06-05T02:56:35.6670156Z         },
2026-06-05T02:56:35.6670396Z         "impl": {
2026-06-05T02:56:35.6670660Z           "complete": true,
2026-06-05T02:56:35.6670915Z           "evidence": [
2026-06-05T02:56:35.6671154Z             {
2026-06-05T02:56:35.6671489Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.6671752Z               "line": 95
2026-06-05T02:56:35.6672009Z             },
2026-06-05T02:56:35.6672269Z             {
2026-06-05T02:56:35.6672947Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6673394Z               "line": 99
2026-06-05T02:56:35.6673692Z             }
2026-06-05T02:56:35.6673974Z           ]
2026-06-05T02:56:35.6674364Z         },
2026-06-05T02:56:35.6674612Z         "int": {
2026-06-05T02:56:35.6674890Z           "complete": false,
2026-06-05T02:56:35.6675146Z           "evidence": []
2026-06-05T02:56:35.6675373Z         },
2026-06-05T02:56:35.6675621Z         "unit": {
2026-06-05T02:56:35.6675888Z           "complete": true,
2026-06-05T02:56:35.6676144Z           "evidence": [
2026-06-05T02:56:35.6676393Z             {
2026-06-05T02:56:35.6676727Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.6676989Z               "line": 250
2026-06-05T02:56:35.6677227Z             },
2026-06-05T02:56:35.6677469Z             {
2026-06-05T02:56:35.6677802Z               "path": "crates/spt-store/src/proc.rs",
2026-06-05T02:56:35.6678067Z               "line": 191
2026-06-05T02:56:35.6678315Z             },
2026-06-05T02:56:35.6678548Z             {
2026-06-05T02:56:35.6678887Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6679145Z               "line": 432
2026-06-05T02:56:35.6679444Z             },
2026-06-05T02:56:35.6679676Z             {
2026-06-05T02:56:35.6680047Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6680310Z               "line": 462
2026-06-05T02:56:35.6680538Z             }
2026-06-05T02:56:35.6680781Z           ]
2026-06-05T02:56:35.6681013Z         }
2026-06-05T02:56:35.6681257Z       }
2026-06-05T02:56:35.6681485Z     },
2026-06-05T02:56:35.6681726Z     {
2026-06-05T02:56:35.6682028Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-05T02:56:35.6682576Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-05T02:56:35.6688319Z       "requiredStages": [
2026-06-05T02:56:35.6688738Z         "impl",
2026-06-05T02:56:35.6688993Z         "unit"
2026-06-05T02:56:35.6689286Z       ],
2026-06-05T02:56:35.6689548Z       "stages": {
2026-06-05T02:56:35.6689797Z         "doc": {
2026-06-05T02:56:35.6690060Z           "complete": false,
2026-06-05T02:56:35.6690348Z           "evidence": []
2026-06-05T02:56:35.6690583Z         },
2026-06-05T02:56:35.6690828Z         "impl": {
2026-06-05T02:56:35.6691097Z           "complete": true,
2026-06-05T02:56:35.6691350Z           "evidence": [
2026-06-05T02:56:35.6691597Z             {
2026-06-05T02:56:35.6691939Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6692196Z               "line": 230
2026-06-05T02:56:35.6692432Z             },
2026-06-05T02:56:35.6692672Z             {
2026-06-05T02:56:35.6692995Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6693253Z               "line": 275
2026-06-05T02:56:35.6693497Z             },
2026-06-05T02:56:35.6693720Z             {
2026-06-05T02:56:35.6694051Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6694298Z               "line": 287
2026-06-05T02:56:35.6694542Z             }
2026-06-05T02:56:35.6694768Z           ]
2026-06-05T02:56:35.6695010Z         },
2026-06-05T02:56:35.6695539Z         "int": {
2026-06-05T02:56:35.6695836Z           "complete": false,
2026-06-05T02:56:35.6696097Z           "evidence": []
2026-06-05T02:56:35.6696458Z         },
2026-06-05T02:56:35.6696709Z         "unit": {
2026-06-05T02:56:35.6696963Z           "complete": true,
2026-06-05T02:56:35.6697219Z           "evidence": [
2026-06-05T02:56:35.6697457Z             {
2026-06-05T02:56:35.6697787Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6698043Z               "line": 423
2026-06-05T02:56:35.6698273Z             },
2026-06-05T02:56:35.6698510Z             {
2026-06-05T02:56:35.6698838Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.6699093Z               "line": 452
2026-06-05T02:56:35.6699385Z             }
2026-06-05T02:56:35.6699625Z           ]
2026-06-05T02:56:35.6699865Z         }
2026-06-05T02:56:35.6700089Z       }
2026-06-05T02:56:35.6700326Z     },
2026-06-05T02:56:35.6700546Z     {
2026-06-05T02:56:35.6700811Z       "id": "REQ-INFRA-1",
2026-06-05T02:56:35.6701346Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-05T02:56:35.6701606Z       "requiredStages": [],
2026-06-05T02:56:35.6701856Z       "stages": {
2026-06-05T02:56:35.6702092Z         "doc": {
2026-06-05T02:56:35.6702362Z           "complete": false,
2026-06-05T02:56:35.6702635Z           "evidence": []
2026-06-05T02:56:35.6703188Z         },
2026-06-05T02:56:35.6703457Z         "impl": {
2026-06-05T02:56:35.6703903Z           "complete": false,
2026-06-05T02:56:35.6704219Z           "evidence": []
2026-06-05T02:56:35.6704520Z         },
2026-06-05T02:56:35.6704872Z         "int": {
2026-06-05T02:56:35.6705213Z           "complete": false,
2026-06-05T02:56:35.6705567Z           "evidence": []
2026-06-05T02:56:35.6705874Z         },
2026-06-05T02:56:35.6706160Z         "unit": {
2026-06-05T02:56:35.6706472Z           "complete": false,
2026-06-05T02:56:35.6706756Z           "evidence": []
2026-06-05T02:56:35.6707046Z         }
2026-06-05T02:56:35.6707317Z       }
2026-06-05T02:56:35.6707586Z     },
2026-06-05T02:56:35.6708194Z     {
2026-06-05T02:56:35.6708562Z       "id": "REQ-INST-1",
2026-06-05T02:56:35.6709134Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-05T02:56:35.6709518Z       "requiredStages": [],
2026-06-05T02:56:35.6709832Z       "stages": {
2026-06-05T02:56:35.6710136Z         "doc": {
2026-06-05T02:56:35.6710462Z           "complete": false,
2026-06-05T02:56:35.6710763Z           "evidence": []
2026-06-05T02:56:35.6711005Z         },
2026-06-05T02:56:35.6711257Z         "impl": {
2026-06-05T02:56:35.6711526Z           "complete": false,
2026-06-05T02:56:35.6711793Z           "evidence": []
2026-06-05T02:56:35.6712029Z         },
2026-06-05T02:56:35.6712289Z         "int": {
2026-06-05T02:56:35.6712564Z           "complete": false,
2026-06-05T02:56:35.6712820Z           "evidence": []
2026-06-05T02:56:35.6713231Z         },
2026-06-05T02:56:35.6713493Z         "unit": {
2026-06-05T02:56:35.6713794Z           "complete": false,
2026-06-05T02:56:35.6714054Z           "evidence": []
2026-06-05T02:56:35.6714306Z         }
2026-06-05T02:56:35.6714559Z       }
2026-06-05T02:56:35.6714793Z     },
2026-06-05T02:56:35.6715036Z     {
2026-06-05T02:56:35.6715301Z       "id": "REQ-INST-10",
2026-06-05T02:56:35.6715957Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-05T02:56:35.6716223Z       "requiredStages": [
2026-06-05T02:56:35.6716481Z         "impl",
2026-06-05T02:56:35.6716734Z         "unit"
2026-06-05T02:56:35.6716967Z       ],
2026-06-05T02:56:35.6717260Z       "stages": {
2026-06-05T02:56:35.6717504Z         "doc": {
2026-06-05T02:56:35.6717776Z           "complete": false,
2026-06-05T02:56:35.6718035Z           "evidence": []
2026-06-05T02:56:35.6718289Z         },
2026-06-05T02:56:35.6718543Z         "impl": {
2026-06-05T02:56:35.6718813Z           "complete": true,
2026-06-05T02:56:35.6719080Z           "evidence": [
2026-06-05T02:56:35.6719723Z             {
2026-06-05T02:56:35.6720152Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6720410Z               "line": 426
2026-06-05T02:56:35.6720987Z             },
2026-06-05T02:56:35.6721231Z             {
2026-06-05T02:56:35.6721589Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6721848Z               "line": 481
2026-06-05T02:56:35.6722084Z             },
2026-06-05T02:56:35.6722330Z             {
2026-06-05T02:56:35.6722667Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6722926Z               "line": 13
2026-06-05T02:56:35.6723171Z             },
2026-06-05T02:56:35.6723402Z             {
2026-06-05T02:56:35.6723739Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6723989Z               "line": 67
2026-06-05T02:56:35.6724237Z             },
2026-06-05T02:56:35.6724469Z             {
2026-06-05T02:56:35.6724804Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.6725076Z               "line": 18
2026-06-05T02:56:35.6725318Z             }
2026-06-05T02:56:35.6725563Z           ]
2026-06-05T02:56:35.6725794Z         },
2026-06-05T02:56:35.6726054Z         "int": {
2026-06-05T02:56:35.6726314Z           "complete": false,
2026-06-05T02:56:35.6726573Z           "evidence": []
2026-06-05T02:56:35.6726818Z         },
2026-06-05T02:56:35.6727055Z         "unit": {
2026-06-05T02:56:35.6727323Z           "complete": true,
2026-06-05T02:56:35.6727567Z           "evidence": [
2026-06-05T02:56:35.6727813Z             {
2026-06-05T02:56:35.6728169Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6728430Z               "line": 625
2026-06-05T02:56:35.6728674Z             },
2026-06-05T02:56:35.6728904Z             {
2026-06-05T02:56:35.6729341Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6729617Z               "line": 759
2026-06-05T02:56:35.6729873Z             },
2026-06-05T02:56:35.6730112Z             {
2026-06-05T02:56:35.6730481Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6730747Z               "line": 767
2026-06-05T02:56:35.6730993Z             },
2026-06-05T02:56:35.6731244Z             {
2026-06-05T02:56:35.6731597Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6731862Z               "line": 780
2026-06-05T02:56:35.6732097Z             },
2026-06-05T02:56:35.6732346Z             {
2026-06-05T02:56:35.6732717Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6732969Z               "line": 793
2026-06-05T02:56:35.6733219Z             },
2026-06-05T02:56:35.6733452Z             {
2026-06-05T02:56:35.6733818Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6734087Z               "line": 809
2026-06-05T02:56:35.6734325Z             },
2026-06-05T02:56:35.6734566Z             {
2026-06-05T02:56:35.6734930Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6741484Z               "line": 1038
2026-06-05T02:56:35.6742016Z             },
2026-06-05T02:56:35.6742283Z             {
2026-06-05T02:56:35.6742705Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6742992Z               "line": 121
2026-06-05T02:56:35.6743270Z             },
2026-06-05T02:56:35.6743523Z             {
2026-06-05T02:56:35.6743949Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6744231Z               "line": 142
2026-06-05T02:56:35.6744484Z             },
2026-06-05T02:56:35.6744733Z             {
2026-06-05T02:56:35.6745082Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6745351Z               "line": 150
2026-06-05T02:56:35.6745597Z             },
2026-06-05T02:56:35.6745831Z             {
2026-06-05T02:56:35.6746182Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-05T02:56:35.6746432Z               "line": 158
2026-06-05T02:56:35.6746676Z             }
2026-06-05T02:56:35.6746911Z           ]
2026-06-05T02:56:35.6747364Z         }
2026-06-05T02:56:35.6747621Z       }
2026-06-05T02:56:35.6747854Z     },
2026-06-05T02:56:35.6748087Z     {
2026-06-05T02:56:35.6748496Z       "id": "REQ-INST-11",
2026-06-05T02:56:35.6749254Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-05T02:56:35.6749533Z       "requiredStages": [
2026-06-05T02:56:35.6749926Z         "impl",
2026-06-05T02:56:35.6750171Z         "unit"
2026-06-05T02:56:35.6750396Z       ],
2026-06-05T02:56:35.6750636Z       "stages": {
2026-06-05T02:56:35.6750866Z         "doc": {
2026-06-05T02:56:35.6751134Z           "complete": false,
2026-06-05T02:56:35.6751377Z           "evidence": []
2026-06-05T02:56:35.6751614Z         },
2026-06-05T02:56:35.6751864Z         "impl": {
2026-06-05T02:56:35.6752116Z           "complete": true,
2026-06-05T02:56:35.6752372Z           "evidence": [
2026-06-05T02:56:35.6752598Z             {
2026-06-05T02:56:35.6752963Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6753207Z               "line": 328
2026-06-05T02:56:35.6753451Z             },
2026-06-05T02:56:35.6753686Z             {
2026-06-05T02:56:35.6754054Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6754308Z               "line": 252
2026-06-05T02:56:35.6754532Z             },
2026-06-05T02:56:35.6754766Z             {
2026-06-05T02:56:35.6755092Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T02:56:35.6755342Z               "line": 59
2026-06-05T02:56:35.6755578Z             },
2026-06-05T02:56:35.6755801Z             {
2026-06-05T02:56:35.6756103Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6756350Z               "line": 1455
2026-06-05T02:56:35.6756583Z             },
2026-06-05T02:56:35.6756809Z             {
2026-06-05T02:56:35.6757115Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6757371Z               "line": 2424
2026-06-05T02:56:35.6757596Z             }
2026-06-05T02:56:35.6757836Z           ]
2026-06-05T02:56:35.6758060Z         },
2026-06-05T02:56:35.6758295Z         "int": {
2026-06-05T02:56:35.6758548Z           "complete": false,
2026-06-05T02:56:35.6758808Z           "evidence": []
2026-06-05T02:56:35.6759041Z         },
2026-06-05T02:56:35.6759314Z         "unit": {
2026-06-05T02:56:35.6759777Z           "complete": true,
2026-06-05T02:56:35.6760210Z           "evidence": [
2026-06-05T02:56:35.6760445Z             {
2026-06-05T02:56:35.6760790Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6761046Z               "line": 902
2026-06-05T02:56:35.6761284Z             },
2026-06-05T02:56:35.6761513Z             {
2026-06-05T02:56:35.6761866Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6762105Z               "line": 925
2026-06-05T02:56:35.6762343Z             },
2026-06-05T02:56:35.6762569Z             {
2026-06-05T02:56:35.6762938Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6763202Z               "line": 471
2026-06-05T02:56:35.6763429Z             },
2026-06-05T02:56:35.6763669Z             {
2026-06-05T02:56:35.6764006Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T02:56:35.6764265Z               "line": 156
2026-06-05T02:56:35.6764491Z             },
2026-06-05T02:56:35.6764725Z             {
2026-06-05T02:56:35.6765064Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T02:56:35.6765307Z               "line": 177
2026-06-05T02:56:35.6765542Z             },
2026-06-05T02:56:35.6765763Z             {
2026-06-05T02:56:35.6766099Z               "path": "crates/spt-store/src/rename.rs",
2026-06-05T02:56:35.6766344Z               "line": 209
2026-06-05T02:56:35.6766585Z             },
2026-06-05T02:56:35.6766821Z             {
2026-06-05T02:56:35.6767119Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6767370Z               "line": 2517
2026-06-05T02:56:35.6767593Z             }
2026-06-05T02:56:35.6767824Z           ]
2026-06-05T02:56:35.6768203Z         }
2026-06-05T02:56:35.6768457Z       }
2026-06-05T02:56:35.6768692Z     },
2026-06-05T02:56:35.6768911Z     {
2026-06-05T02:56:35.6769522Z       "id": "REQ-INST-12",
2026-06-05T02:56:35.6770587Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-05T02:56:35.6770861Z       "requiredStages": [
2026-06-05T02:56:35.6771103Z         "impl",
2026-06-05T02:56:35.6771335Z         "unit"
2026-06-05T02:56:35.6771575Z       ],
2026-06-05T02:56:35.6771807Z       "stages": {
2026-06-05T02:56:35.6772042Z         "doc": {
2026-06-05T02:56:35.6772295Z           "complete": false,
2026-06-05T02:56:35.6772550Z           "evidence": []
2026-06-05T02:56:35.6772781Z         },
2026-06-05T02:56:35.6773016Z         "impl": {
2026-06-05T02:56:35.6773277Z           "complete": true,
2026-06-05T02:56:35.6773521Z           "evidence": [
2026-06-05T02:56:35.6773756Z             {
2026-06-05T02:56:35.6774124Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6774378Z               "line": 380
2026-06-05T02:56:35.6774618Z             },
2026-06-05T02:56:35.6774849Z             {
2026-06-05T02:56:35.6775206Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6775453Z               "line": 437
2026-06-05T02:56:35.6775691Z             },
2026-06-05T02:56:35.6775915Z             {
2026-06-05T02:56:35.6776284Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6776530Z               "line": 495
2026-06-05T02:56:35.6776754Z             },
2026-06-05T02:56:35.6776991Z             {
2026-06-05T02:56:35.6777318Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6777567Z               "line": 87
2026-06-05T02:56:35.6777788Z             },
2026-06-05T02:56:35.6778017Z             {
2026-06-05T02:56:35.6778352Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6778595Z               "line": 216
2026-06-05T02:56:35.6778834Z             },
2026-06-05T02:56:35.6779058Z             {
2026-06-05T02:56:35.6779649Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6779914Z               "line": 132
2026-06-05T02:56:35.6780309Z             }
2026-06-05T02:56:35.6780544Z           ]
2026-06-05T02:56:35.6780772Z         },
2026-06-05T02:56:35.6781009Z         "int": {
2026-06-05T02:56:35.6781264Z           "complete": false,
2026-06-05T02:56:35.6781518Z           "evidence": []
2026-06-05T02:56:35.6781742Z         },
2026-06-05T02:56:35.6781981Z         "unit": {
2026-06-05T02:56:35.6782243Z           "complete": true,
2026-06-05T02:56:35.6782483Z           "evidence": [
2026-06-05T02:56:35.6782715Z             {
2026-06-05T02:56:35.6783065Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6783311Z               "line": 960
2026-06-05T02:56:35.6783535Z             },
2026-06-05T02:56:35.6783772Z             {
2026-06-05T02:56:35.6784135Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6784380Z               "line": 977
2026-06-05T02:56:35.6784619Z             },
2026-06-05T02:56:35.6784849Z             {
2026-06-05T02:56:35.6785207Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6785453Z               "line": 1008
2026-06-05T02:56:35.6785690Z             },
2026-06-05T02:56:35.6785929Z             {
2026-06-05T02:56:35.6786257Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.6792424Z               "line": 350
2026-06-05T02:56:35.6792791Z             },
2026-06-05T02:56:35.6793175Z             {
2026-06-05T02:56:35.6793549Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6793807Z               "line": 169
2026-06-05T02:56:35.6794041Z             },
2026-06-05T02:56:35.6794266Z             {
2026-06-05T02:56:35.6794622Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6794862Z               "line": 181
2026-06-05T02:56:35.6795360Z             },
2026-06-05T02:56:35.6795607Z             {
2026-06-05T02:56:35.6795969Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6796497Z               "line": 198
2026-06-05T02:56:35.6796723Z             }
2026-06-05T02:56:35.6796962Z           ]
2026-06-05T02:56:35.6797185Z         }
2026-06-05T02:56:35.6797415Z       }
2026-06-05T02:56:35.6797633Z     },
2026-06-05T02:56:35.6797863Z     {
2026-06-05T02:56:35.6798122Z       "id": "REQ-INST-13",
2026-06-05T02:56:35.6798665Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-05T02:56:35.6798931Z       "requiredStages": [
2026-06-05T02:56:35.6799220Z         "impl",
2026-06-05T02:56:35.6799777Z         "unit"
2026-06-05T02:56:35.6800004Z       ],
2026-06-05T02:56:35.6800254Z       "stages": {
2026-06-05T02:56:35.6800493Z         "doc": {
2026-06-05T02:56:35.6800754Z           "complete": false,
2026-06-05T02:56:35.6801013Z           "evidence": []
2026-06-05T02:56:35.6801252Z         },
2026-06-05T02:56:35.6801498Z         "impl": {
2026-06-05T02:56:35.6801745Z           "complete": true,
2026-06-05T02:56:35.6802003Z           "evidence": [
2026-06-05T02:56:35.6802234Z             {
2026-06-05T02:56:35.6802564Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6802813Z               "line": 94
2026-06-05T02:56:35.6803037Z             },
2026-06-05T02:56:35.6803274Z             {
2026-06-05T02:56:35.6803621Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6803873Z               "line": 155
2026-06-05T02:56:35.6804111Z             }
2026-06-05T02:56:35.6804335Z           ]
2026-06-05T02:56:35.6804569Z         },
2026-06-05T02:56:35.6804798Z         "int": {
2026-06-05T02:56:35.6805064Z           "complete": false,
2026-06-05T02:56:35.6805309Z           "evidence": []
2026-06-05T02:56:35.6805542Z         },
2026-06-05T02:56:35.6805778Z         "unit": {
2026-06-05T02:56:35.6806028Z           "complete": true,
2026-06-05T02:56:35.6806286Z           "evidence": [
2026-06-05T02:56:35.6806513Z             {
2026-06-05T02:56:35.6806876Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6807124Z               "line": 221
2026-06-05T02:56:35.6807358Z             },
2026-06-05T02:56:35.6807592Z             {
2026-06-05T02:56:35.6807933Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-05T02:56:35.6808186Z               "line": 233
2026-06-05T02:56:35.6808414Z             }
2026-06-05T02:56:35.6808644Z           ]
2026-06-05T02:56:35.6808868Z         }
2026-06-05T02:56:35.6809098Z       }
2026-06-05T02:56:35.6809377Z     },
2026-06-05T02:56:35.6809606Z     {
2026-06-05T02:56:35.6809862Z       "id": "REQ-INST-14",
2026-06-05T02:56:35.6811048Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-05T02:56:35.6811309Z       "requiredStages": [
2026-06-05T02:56:35.6811550Z         "doc",
2026-06-05T02:56:35.6811793Z         "impl",
2026-06-05T02:56:35.6812033Z         "unit"
2026-06-05T02:56:35.6812255Z       ],
2026-06-05T02:56:35.6812507Z       "stages": {
2026-06-05T02:56:35.6812734Z         "doc": {
2026-06-05T02:56:35.6812998Z           "complete": true,
2026-06-05T02:56:35.6813244Z           "evidence": [
2026-06-05T02:56:35.6813467Z             {
2026-06-05T02:56:35.6813747Z               "path": "docs/STORAGE.md",
2026-06-05T02:56:35.6813985Z               "line": 49
2026-06-05T02:56:35.6814221Z             }
2026-06-05T02:56:35.6814447Z           ]
2026-06-05T02:56:35.6814680Z         },
2026-06-05T02:56:35.6814928Z         "impl": {
2026-06-05T02:56:35.6815179Z           "complete": true,
2026-06-05T02:56:35.6815430Z           "evidence": [
2026-06-05T02:56:35.6815651Z             {
2026-06-05T02:56:35.6816028Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6816269Z               "line": 242
2026-06-05T02:56:35.6816504Z             },
2026-06-05T02:56:35.6816892Z             {
2026-06-05T02:56:35.6817256Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6817630Z               "line": 195
2026-06-05T02:56:35.6817859Z             },
2026-06-05T02:56:35.6818088Z             {
2026-06-05T02:56:35.6818407Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6818656Z               "line": 202
2026-06-05T02:56:35.6818889Z             },
2026-06-05T02:56:35.6819114Z             {
2026-06-05T02:56:35.6819468Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6819715Z               "line": 694
2026-06-05T02:56:35.6819960Z             }
2026-06-05T02:56:35.6820183Z           ]
2026-06-05T02:56:35.6820420Z         },
2026-06-05T02:56:35.6820656Z         "int": {
2026-06-05T02:56:35.6820909Z           "complete": false,
2026-06-05T02:56:35.6821165Z           "evidence": []
2026-06-05T02:56:35.6821388Z         },
2026-06-05T02:56:35.6821623Z         "unit": {
2026-06-05T02:56:35.6821889Z           "complete": true,
2026-06-05T02:56:35.6822145Z           "evidence": [
2026-06-05T02:56:35.6822386Z             {
2026-06-05T02:56:35.6822766Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6823019Z               "line": 399
2026-06-05T02:56:35.6823248Z             },
2026-06-05T02:56:35.6823482Z             {
2026-06-05T02:56:35.6823823Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6824085Z               "line": 634
2026-06-05T02:56:35.6824317Z             },
2026-06-05T02:56:35.6824539Z             {
2026-06-05T02:56:35.6824891Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6825134Z               "line": 711
2026-06-05T02:56:35.6825369Z             },
2026-06-05T02:56:35.6825594Z             {
2026-06-05T02:56:35.6825921Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6826172Z               "line": 411
2026-06-05T02:56:35.6826486Z             },
2026-06-05T02:56:35.6826732Z             {
2026-06-05T02:56:35.6827025Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6827278Z               "line": 2533
2026-06-05T02:56:35.6827514Z             }
2026-06-05T02:56:35.6827755Z           ]
2026-06-05T02:56:35.6827987Z         }
2026-06-05T02:56:35.6828206Z       }
2026-06-05T02:56:35.6828434Z     },
2026-06-05T02:56:35.6828652Z     {
2026-06-05T02:56:35.6828912Z       "id": "REQ-INST-15",
2026-06-05T02:56:35.6831179Z       "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-05T02:56:35.6831453Z       "requiredStages": [
2026-06-05T02:56:35.6831690Z         "doc",
2026-06-05T02:56:35.6831919Z         "impl",
2026-06-05T02:56:35.6832159Z         "unit"
2026-06-05T02:56:35.6832381Z       ],
2026-06-05T02:56:35.6832626Z       "stages": {
2026-06-05T02:56:35.6832878Z         "doc": {
2026-06-05T02:56:35.6833134Z           "complete": true,
2026-06-05T02:56:35.6833393Z           "evidence": [
2026-06-05T02:56:35.6833631Z             {
2026-06-05T02:56:35.6834143Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-05T02:56:35.6834381Z               "line": 3
2026-06-05T02:56:35.6834620Z             }
2026-06-05T02:56:35.6834854Z           ]
2026-06-05T02:56:35.6835076Z         },
2026-06-05T02:56:35.6835324Z         "impl": {
2026-06-05T02:56:35.6835589Z           "complete": true,
2026-06-05T02:56:35.6835846Z           "evidence": [
2026-06-05T02:56:35.6836072Z             {
2026-06-05T02:56:35.6836447Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6836703Z               "line": 206
2026-06-05T02:56:35.6836930Z             },
2026-06-05T02:56:35.6837169Z             {
2026-06-05T02:56:35.6837483Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.6837880Z               "line": 60
2026-06-05T02:56:35.6838127Z             },
2026-06-05T02:56:35.6843264Z             {
2026-06-05T02:56:35.6843788Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6844331Z               "line": 326
2026-06-05T02:56:35.6844574Z             },
2026-06-05T02:56:35.6844801Z             {
2026-06-05T02:56:35.6845174Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6845420Z               "line": 376
2026-06-05T02:56:35.6845666Z             },
2026-06-05T02:56:35.6845897Z             {
2026-06-05T02:56:35.6846212Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6846463Z               "line": 19
2026-06-05T02:56:35.6846688Z             },
2026-06-05T02:56:35.6846926Z             {
2026-06-05T02:56:35.6847247Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6847505Z               "line": 67
2026-06-05T02:56:35.6847747Z             },
2026-06-05T02:56:35.6847983Z             {
2026-06-05T02:56:35.6848313Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6848556Z               "line": 91
2026-06-05T02:56:35.6848806Z             },
2026-06-05T02:56:35.6849032Z             {
2026-06-05T02:56:35.6849429Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6849683Z               "line": 116
2026-06-05T02:56:35.6849909Z             },
2026-06-05T02:56:35.6850142Z             {
2026-06-05T02:56:35.6850455Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6850706Z               "line": 167
2026-06-05T02:56:35.6850938Z             },
2026-06-05T02:56:35.6851184Z             {
2026-06-05T02:56:35.6851514Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6851758Z               "line": 141
2026-06-05T02:56:35.6851996Z             },
2026-06-05T02:56:35.6852219Z             {
2026-06-05T02:56:35.6852521Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6852776Z               "line": 586
2026-06-05T02:56:35.6853008Z             }
2026-06-05T02:56:35.6853243Z           ]
2026-06-05T02:56:35.6853468Z         },
2026-06-05T02:56:35.6853716Z         "int": {
2026-06-05T02:56:35.6853971Z           "complete": false,
2026-06-05T02:56:35.6854225Z           "evidence": []
2026-06-05T02:56:35.6854452Z         },
2026-06-05T02:56:35.6854692Z         "unit": {
2026-06-05T02:56:35.6854953Z           "complete": true,
2026-06-05T02:56:35.6855195Z           "evidence": [
2026-06-05T02:56:35.6855429Z             {
2026-06-05T02:56:35.6855790Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6856043Z               "line": 515
2026-06-05T02:56:35.6856281Z             },
2026-06-05T02:56:35.6856511Z             {
2026-06-05T02:56:35.6856878Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.6857119Z               "line": 571
2026-06-05T02:56:35.6857354Z             },
2026-06-05T02:56:35.6857578Z             {
2026-06-05T02:56:35.6857908Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6858160Z               "line": 206
2026-06-05T02:56:35.6858391Z             },
2026-06-05T02:56:35.6858632Z             {
2026-06-05T02:56:35.6858946Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6859236Z               "line": 239
2026-06-05T02:56:35.6859469Z             },
2026-06-05T02:56:35.6859708Z             {
2026-06-05T02:56:35.6860029Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6860270Z               "line": 252
2026-06-05T02:56:35.6860508Z             },
2026-06-05T02:56:35.6860731Z             {
2026-06-05T02:56:35.6861053Z               "path": "crates/spt-store/src/home.rs",
2026-06-05T02:56:35.6861296Z               "line": 316
2026-06-05T02:56:35.6861542Z             },
2026-06-05T02:56:35.6861775Z             {
2026-06-05T02:56:35.6862095Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.6862347Z               "line": 477
2026-06-05T02:56:35.6862750Z             },
2026-06-05T02:56:35.6863007Z             {
2026-06-05T02:56:35.6863306Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6863694Z               "line": 2520
2026-06-05T02:56:35.6863931Z             },
2026-06-05T02:56:35.6864158Z             {
2026-06-05T02:56:35.6864463Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6864707Z               "line": 3501
2026-06-05T02:56:35.6864943Z             }
2026-06-05T02:56:35.6865172Z           ]
2026-06-05T02:56:35.6865409Z         }
2026-06-05T02:56:35.6865646Z       }
2026-06-05T02:56:35.6865868Z     },
2026-06-05T02:56:35.6866099Z     {
2026-06-05T02:56:35.6866350Z       "id": "REQ-INST-2",
2026-06-05T02:56:35.6866703Z       "title": "Per-node files, synced Psyche mind",
2026-06-05T02:56:35.6866957Z       "requiredStages": [
2026-06-05T02:56:35.6867197Z         "impl",
2026-06-05T02:56:35.6867438Z         "unit"
2026-06-05T02:56:35.6867662Z       ],
2026-06-05T02:56:35.6867907Z       "stages": {
2026-06-05T02:56:35.6868147Z         "doc": {
2026-06-05T02:56:35.6868413Z           "complete": false,
2026-06-05T02:56:35.6868656Z           "evidence": []
2026-06-05T02:56:35.6868904Z         },
2026-06-05T02:56:35.6869144Z         "impl": {
2026-06-05T02:56:35.6869456Z           "complete": true,
2026-06-05T02:56:35.6869706Z           "evidence": [
2026-06-05T02:56:35.6869933Z             {
2026-06-05T02:56:35.6870291Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6870537Z               "line": 86
2026-06-05T02:56:35.6870778Z             },
2026-06-05T02:56:35.6871016Z             {
2026-06-05T02:56:35.6871340Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6871589Z               "line": 28
2026-06-05T02:56:35.6871819Z             },
2026-06-05T02:56:35.6872052Z             {
2026-06-05T02:56:35.6872372Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6872620Z               "line": 74
2026-06-05T02:56:35.6872873Z             },
2026-06-05T02:56:35.6873100Z             {
2026-06-05T02:56:35.6873429Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6873677Z               "line": 96
2026-06-05T02:56:35.6873916Z             },
2026-06-05T02:56:35.6874141Z             {
2026-06-05T02:56:35.6874464Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.6874714Z               "line": 81
2026-06-05T02:56:35.6874937Z             },
2026-06-05T02:56:35.6875173Z             {
2026-06-05T02:56:35.6875495Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-05T02:56:35.6875751Z               "line": 118
2026-06-05T02:56:35.6875975Z             }
2026-06-05T02:56:35.6876220Z           ]
2026-06-05T02:56:35.6876453Z         },
2026-06-05T02:56:35.6876685Z         "int": {
2026-06-05T02:56:35.6876943Z           "complete": false,
2026-06-05T02:56:35.6877185Z           "evidence": []
2026-06-05T02:56:35.6877421Z         },
2026-06-05T02:56:35.6877647Z         "unit": {
2026-06-05T02:56:35.6877910Z           "complete": true,
2026-06-05T02:56:35.6878160Z           "evidence": [
2026-06-05T02:56:35.6878384Z             {
2026-06-05T02:56:35.6878715Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-05T02:56:35.6878956Z               "line": 203
2026-06-05T02:56:35.6879250Z             },
2026-06-05T02:56:35.6879508Z             {
2026-06-05T02:56:35.6879887Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.6880181Z               "line": 232
2026-06-05T02:56:35.6880768Z             }
2026-06-05T02:56:35.6881024Z           ]
2026-06-05T02:56:35.6881443Z         }
2026-06-05T02:56:35.6881726Z       }
2026-06-05T02:56:35.6881987Z     },
2026-06-05T02:56:35.6882294Z     {
2026-06-05T02:56:35.6882610Z       "id": "REQ-INST-3",
2026-06-05T02:56:35.6883221Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-05T02:56:35.6883672Z       "requiredStages": [
2026-06-05T02:56:35.6884078Z         "doc",
2026-06-05T02:56:35.6884768Z         "impl",
2026-06-05T02:56:35.6885065Z         "unit"
2026-06-05T02:56:35.6885320Z       ],
2026-06-05T02:56:35.6885710Z       "stages": {
2026-06-05T02:56:35.6886137Z         "doc": {
2026-06-05T02:56:35.6886409Z           "complete": true,
2026-06-05T02:56:35.6886652Z           "evidence": [
2026-06-05T02:56:35.6886890Z             {
2026-06-05T02:56:35.6887199Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-05T02:56:35.6887450Z               "line": 3
2026-06-05T02:56:35.6887686Z             }
2026-06-05T02:56:35.6887916Z           ]
2026-06-05T02:56:35.6896573Z         },
2026-06-05T02:56:35.6897044Z         "impl": {
2026-06-05T02:56:35.6897316Z           "complete": true,
2026-06-05T02:56:35.6897635Z           "evidence": [
2026-06-05T02:56:35.6897875Z             {
2026-06-05T02:56:35.6898234Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.6898475Z               "line": 70
2026-06-05T02:56:35.6898711Z             },
2026-06-05T02:56:35.6898937Z             {
2026-06-05T02:56:35.6899746Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.6900005Z               "line": 404
2026-06-05T02:56:35.6900257Z             },
2026-06-05T02:56:35.6900493Z             {
2026-06-05T02:56:35.6900846Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6901103Z               "line": 197
2026-06-05T02:56:35.6901332Z             },
2026-06-05T02:56:35.6901569Z             {
2026-06-05T02:56:35.6901914Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6902171Z               "line": 272
2026-06-05T02:56:35.6902411Z             },
2026-06-05T02:56:35.6902635Z             {
2026-06-05T02:56:35.6902990Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6903233Z               "line": 301
2026-06-05T02:56:35.6903472Z             },
2026-06-05T02:56:35.6903696Z             {
2026-06-05T02:56:35.6904045Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T02:56:35.6904304Z               "line": 234
2026-06-05T02:56:35.6904535Z             },
2026-06-05T02:56:35.6904776Z             {
2026-06-05T02:56:35.6905149Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6905405Z               "line": 147
2026-06-05T02:56:35.6905644Z             },
2026-06-05T02:56:35.6905868Z             {
2026-06-05T02:56:35.6906235Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6906478Z               "line": 228
2026-06-05T02:56:35.6906719Z             },
2026-06-05T02:56:35.6906943Z             {
2026-06-05T02:56:35.6907284Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6907534Z               "line": 45
2026-06-05T02:56:35.6907764Z             },
2026-06-05T02:56:35.6908002Z             {
2026-06-05T02:56:35.6908333Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6908591Z               "line": 114
2026-06-05T02:56:35.6908819Z             },
2026-06-05T02:56:35.6909066Z             {
2026-06-05T02:56:35.6909458Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6909707Z               "line": 152
2026-06-05T02:56:35.6909951Z             },
2026-06-05T02:56:35.6910178Z             {
2026-06-05T02:56:35.6910519Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6910759Z               "line": 168
2026-06-05T02:56:35.6910997Z             },
2026-06-05T02:56:35.6911233Z             {
2026-06-05T02:56:35.6911562Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6911809Z               "line": 178
2026-06-05T02:56:35.6912035Z             },
2026-06-05T02:56:35.6912273Z             {
2026-06-05T02:56:35.6912609Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6912858Z               "line": 210
2026-06-05T02:56:35.6913093Z             },
2026-06-05T02:56:35.6913320Z             {
2026-06-05T02:56:35.6913933Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6914196Z               "line": 283
2026-06-05T02:56:35.6914438Z             },
2026-06-05T02:56:35.6914663Z             {
2026-06-05T02:56:35.6915133Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6915390Z               "line": 307
2026-06-05T02:56:35.6915617Z             },
2026-06-05T02:56:35.6915848Z             {
2026-06-05T02:56:35.6916178Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6916431Z               "line": 378
2026-06-05T02:56:35.6916665Z             },
2026-06-05T02:56:35.6916888Z             {
2026-06-05T02:56:35.6917231Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6917473Z               "line": 427
2026-06-05T02:56:35.6917711Z             },
2026-06-05T02:56:35.6917936Z             {
2026-06-05T02:56:35.6918282Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-05T02:56:35.6918530Z               "line": 37
2026-06-05T02:56:35.6918758Z             },
2026-06-05T02:56:35.6919010Z             {
2026-06-05T02:56:35.6919411Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6919684Z               "line": 62
2026-06-05T02:56:35.6919909Z             },
2026-06-05T02:56:35.6920149Z             {
2026-06-05T02:56:35.6920476Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6920719Z               "line": 184
2026-06-05T02:56:35.6920954Z             },
2026-06-05T02:56:35.6921180Z             {
2026-06-05T02:56:35.6921480Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6921722Z               "line": 793
2026-06-05T02:56:35.6921960Z             }
2026-06-05T02:56:35.6922194Z           ]
2026-06-05T02:56:35.6922421Z         },
2026-06-05T02:56:35.6922658Z         "int": {
2026-06-05T02:56:35.6922914Z           "complete": false,
2026-06-05T02:56:35.6923165Z           "evidence": []
2026-06-05T02:56:35.6923390Z         },
2026-06-05T02:56:35.6923632Z         "unit": {
2026-06-05T02:56:35.6923897Z           "complete": true,
2026-06-05T02:56:35.6924139Z           "evidence": [
2026-06-05T02:56:35.6924373Z             {
2026-06-05T02:56:35.6924717Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.6924970Z               "line": 305
2026-06-05T02:56:35.6925195Z             },
2026-06-05T02:56:35.6925434Z             {
2026-06-05T02:56:35.6925788Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6926030Z               "line": 618
2026-06-05T02:56:35.6926268Z             },
2026-06-05T02:56:35.6926491Z             {
2026-06-05T02:56:35.6926844Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6927086Z               "line": 669
2026-06-05T02:56:35.6927328Z             },
2026-06-05T02:56:35.6927567Z             {
2026-06-05T02:56:35.6927928Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6928182Z               "line": 493
2026-06-05T02:56:35.6928409Z             },
2026-06-05T02:56:35.6928657Z             {
2026-06-05T02:56:35.6929013Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.6929316Z               "line": 540
2026-06-05T02:56:35.6929560Z             },
2026-06-05T02:56:35.6929787Z             {
2026-06-05T02:56:35.6930135Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6930380Z               "line": 438
2026-06-05T02:56:35.6930627Z             },
2026-06-05T02:56:35.6930852Z             {
2026-06-05T02:56:35.6931195Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6931451Z               "line": 467
2026-06-05T02:56:35.6931683Z             },
2026-06-05T02:56:35.6931915Z             {
2026-06-05T02:56:35.6932244Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6932524Z               "line": 500
2026-06-05T02:56:35.6932759Z             },
2026-06-05T02:56:35.6932984Z             {
2026-06-05T02:56:35.6933468Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6933731Z               "line": 608
2026-06-05T02:56:35.6933971Z             },
2026-06-05T02:56:35.6934196Z             {
2026-06-05T02:56:35.6934674Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6934933Z               "line": 808
2026-06-05T02:56:35.6935164Z             },
2026-06-05T02:56:35.6935403Z             {
2026-06-05T02:56:35.6935738Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6935989Z               "line": 822
2026-06-05T02:56:35.6936216Z             },
2026-06-05T02:56:35.6936455Z             {
2026-06-05T02:56:35.6936804Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.6937043Z               "line": 740
2026-06-05T02:56:35.6937277Z             },
2026-06-05T02:56:35.6937502Z             {
2026-06-05T02:56:35.6937825Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.6938064Z               "line": 371
2026-06-05T02:56:35.6938305Z             },
2026-06-05T02:56:35.6938548Z             {
2026-06-05T02:56:35.6938848Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.6939109Z               "line": 2547
2026-06-05T02:56:35.6939386Z             }
2026-06-05T02:56:35.6939632Z           ]
2026-06-05T02:56:35.6939863Z         }
2026-06-05T02:56:35.6940099Z       }
2026-06-05T02:56:35.6940336Z     },
2026-06-05T02:56:35.6947056Z     {
2026-06-05T02:56:35.6947561Z       "id": "REQ-INST-4",
2026-06-05T02:56:35.6948155Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-05T02:56:35.6948462Z       "requiredStages": [
2026-06-05T02:56:35.6949020Z         "impl",
2026-06-05T02:56:35.6949481Z         "unit"
2026-06-05T02:56:35.6950075Z       ],
2026-06-05T02:56:35.6950358Z       "stages": {
2026-06-05T02:56:35.6950661Z         "doc": {
2026-06-05T02:56:35.6950972Z           "complete": false,
2026-06-05T02:56:35.6951289Z           "evidence": []
2026-06-05T02:56:35.6951603Z         },
2026-06-05T02:56:35.6951941Z         "impl": {
2026-06-05T02:56:35.6952283Z           "complete": true,
2026-06-05T02:56:35.6952573Z           "evidence": [
2026-06-05T02:56:35.6952879Z             {
2026-06-05T02:56:35.6953325Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6953655Z               "line": 273
2026-06-05T02:56:35.6953945Z             },
2026-06-05T02:56:35.6954235Z             {
2026-06-05T02:56:35.6954647Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6954949Z               "line": 202
2026-06-05T02:56:35.6955217Z             },
2026-06-05T02:56:35.6955488Z             {
2026-06-05T02:56:35.6955880Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6956180Z               "line": 234
2026-06-05T02:56:35.6956453Z             },
2026-06-05T02:56:35.6957043Z             {
2026-06-05T02:56:35.6957500Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6957784Z               "line": 270
2026-06-05T02:56:35.6958067Z             }
2026-06-05T02:56:35.6958337Z           ]
2026-06-05T02:56:35.6958603Z         },
2026-06-05T02:56:35.6958873Z         "int": {
2026-06-05T02:56:35.6959296Z           "complete": false,
2026-06-05T02:56:35.6959757Z           "evidence": []
2026-06-05T02:56:35.6960003Z         },
2026-06-05T02:56:35.6960273Z         "unit": {
2026-06-05T02:56:35.6960549Z           "complete": true,
2026-06-05T02:56:35.6960828Z           "evidence": [
2026-06-05T02:56:35.6961074Z             {
2026-06-05T02:56:35.6961456Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.6961734Z               "line": 664
2026-06-05T02:56:35.6961969Z             },
2026-06-05T02:56:35.6962214Z             {
2026-06-05T02:56:35.6962565Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6962834Z               "line": 518
2026-06-05T02:56:35.6963089Z             },
2026-06-05T02:56:35.6963329Z             {
2026-06-05T02:56:35.6964171Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6964493Z               "line": 583
2026-06-05T02:56:35.6964747Z             },
2026-06-05T02:56:35.6965154Z             {
2026-06-05T02:56:35.6965529Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.6965807Z               "line": 650
2026-06-05T02:56:35.6966053Z             }
2026-06-05T02:56:35.6966304Z           ]
2026-06-05T02:56:35.6966557Z         }
2026-06-05T02:56:35.6966847Z       }
2026-06-05T02:56:35.6967099Z     },
2026-06-05T02:56:35.6967372Z     {
2026-06-05T02:56:35.6967666Z       "id": "REQ-INST-5",
2026-06-05T02:56:35.6968255Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-05T02:56:35.6968554Z       "requiredStages": [
2026-06-05T02:56:35.6968805Z         "impl",
2026-06-05T02:56:35.6969060Z         "unit",
2026-06-05T02:56:35.6969541Z         "int"
2026-06-05T02:56:35.6969837Z       ],
2026-06-05T02:56:35.6970260Z       "stages": {
2026-06-05T02:56:35.6970510Z         "doc": {
2026-06-05T02:56:35.6970814Z           "complete": false,
2026-06-05T02:56:35.6971083Z           "evidence": []
2026-06-05T02:56:35.6971329Z         },
2026-06-05T02:56:35.6971600Z         "impl": {
2026-06-05T02:56:35.6971918Z           "complete": true,
2026-06-05T02:56:35.6972199Z           "evidence": [
2026-06-05T02:56:35.6972454Z             {
2026-06-05T02:56:35.6972846Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T02:56:35.6973105Z               "line": 39
2026-06-05T02:56:35.6973358Z             },
2026-06-05T02:56:35.6973605Z             {
2026-06-05T02:56:35.6973939Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6974214Z               "line": 68
2026-06-05T02:56:35.6974449Z             },
2026-06-05T02:56:35.6974695Z             {
2026-06-05T02:56:35.6975035Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6975325Z               "line": 93
2026-06-05T02:56:35.6975588Z             },
2026-06-05T02:56:35.6975831Z             {
2026-06-05T02:56:35.6976193Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6976466Z               "line": 160
2026-06-05T02:56:35.6976726Z             },
2026-06-05T02:56:35.6976964Z             {
2026-06-05T02:56:35.6977316Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6977575Z               "line": 271
2026-06-05T02:56:35.6977802Z             }
2026-06-05T02:56:35.6978044Z           ]
2026-06-05T02:56:35.6978268Z         },
2026-06-05T02:56:35.6978513Z         "int": {
2026-06-05T02:56:35.6978771Z           "complete": true,
2026-06-05T02:56:35.6979039Z           "evidence": [
2026-06-05T02:56:35.6979341Z             {
2026-06-05T02:56:35.6979902Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.6980307Z               "line": 142
2026-06-05T02:56:35.6980537Z             },
2026-06-05T02:56:35.6980776Z             {
2026-06-05T02:56:35.6981134Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T02:56:35.6981406Z               "line": 102
2026-06-05T02:56:35.6981651Z             },
2026-06-05T02:56:35.6981881Z             {
2026-06-05T02:56:35.6982249Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.6982498Z               "line": 517
2026-06-05T02:56:35.6982743Z             },
2026-06-05T02:56:35.6982970Z             {
2026-06-05T02:56:35.6983327Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.6983584Z               "line": 723
2026-06-05T02:56:35.6983824Z             }
2026-06-05T02:56:35.6984064Z           ]
2026-06-05T02:56:35.6984302Z         },
2026-06-05T02:56:35.6984554Z         "unit": {
2026-06-05T02:56:35.6984806Z           "complete": true,
2026-06-05T02:56:35.6985066Z           "evidence": [
2026-06-05T02:56:35.6985302Z             {
2026-06-05T02:56:35.6985627Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6985885Z               "line": 461
2026-06-05T02:56:35.6986111Z             },
2026-06-05T02:56:35.6986556Z             {
2026-06-05T02:56:35.6986913Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.6987166Z               "line": 495
2026-06-05T02:56:35.6987608Z             },
2026-06-05T02:56:35.6987840Z             {
2026-06-05T02:56:35.6988184Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.6988429Z               "line": 199
2026-06-05T02:56:35.6988664Z             }
2026-06-05T02:56:35.6988902Z           ]
2026-06-05T02:56:35.6989125Z         }
2026-06-05T02:56:35.6989595Z       }
2026-06-05T02:56:35.6989846Z     },
2026-06-05T02:56:35.6990249Z     {
2026-06-05T02:56:35.6990502Z       "id": "REQ-INST-6",
2026-06-05T02:56:35.6991061Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-05T02:56:35.6991328Z       "requiredStages": [
2026-06-05T02:56:35.6991562Z         "impl",
2026-06-05T02:56:35.6991807Z         "unit",
2026-06-05T02:56:35.6992036Z         "int"
2026-06-05T02:56:35.6992273Z       ],
2026-06-05T02:56:35.6992520Z       "stages": {
2026-06-05T02:56:35.6992766Z         "doc": {
2026-06-05T02:56:35.6993022Z           "complete": true,
2026-06-05T02:56:35.6993286Z           "evidence": [
2026-06-05T02:56:35.6993524Z             {
2026-06-05T02:56:35.6993809Z               "path": "docs/DEFERRED.md",
2026-06-05T02:56:35.6994071Z               "line": 13
2026-06-05T02:56:35.6994298Z             }
2026-06-05T02:56:35.6994537Z           ]
2026-06-05T02:56:35.6994766Z         },
2026-06-05T02:56:35.7001900Z         "impl": {
2026-06-05T02:56:35.7002367Z           "complete": true,
2026-06-05T02:56:35.7002644Z           "evidence": [
2026-06-05T02:56:35.7002884Z             {
2026-06-05T02:56:35.7003262Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7003519Z               "line": 356
2026-06-05T02:56:35.7003770Z             },
2026-06-05T02:56:35.7004013Z             {
2026-06-05T02:56:35.7004364Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-05T02:56:35.7004652Z               "line": 27
2026-06-05T02:56:35.7004892Z             },
2026-06-05T02:56:35.7005135Z             {
2026-06-05T02:56:35.7005500Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-05T02:56:35.7005761Z               "line": 73
2026-06-05T02:56:35.7006011Z             },
2026-06-05T02:56:35.7006250Z             {
2026-06-05T02:56:35.7006608Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-05T02:56:35.7006861Z               "line": 165
2026-06-05T02:56:35.7007108Z             },
2026-06-05T02:56:35.7007351Z             {
2026-06-05T02:56:35.7007713Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.7007979Z               "line": 415
2026-06-05T02:56:35.7008212Z             },
2026-06-05T02:56:35.7008457Z             {
2026-06-05T02:56:35.7008795Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-05T02:56:35.7009060Z               "line": 31
2026-06-05T02:56:35.7009355Z             },
2026-06-05T02:56:35.7009622Z             {
2026-06-05T02:56:35.7010105Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7010348Z               "line": 168
2026-06-05T02:56:35.7010603Z             },
2026-06-05T02:56:35.7010830Z             {
2026-06-05T02:56:35.7011156Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.7011414Z               "line": 81
2026-06-05T02:56:35.7011646Z             },
2026-06-05T02:56:35.7011889Z             {
2026-06-05T02:56:35.7012188Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7012441Z               "line": 794
2026-06-05T02:56:35.7012671Z             },
2026-06-05T02:56:35.7012917Z             {
2026-06-05T02:56:35.7013236Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7013484Z               "line": 161
2026-06-05T02:56:35.7013723Z             },
2026-06-05T02:56:35.7013950Z             {
2026-06-05T02:56:35.7014266Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7014768Z               "line": 190
2026-06-05T02:56:35.7015027Z             }
2026-06-05T02:56:35.7015269Z           ]
2026-06-05T02:56:35.7015495Z         },
2026-06-05T02:56:35.7015876Z         "int": {
2026-06-05T02:56:35.7016133Z           "complete": true,
2026-06-05T02:56:35.7016388Z           "evidence": [
2026-06-05T02:56:35.7016617Z             {
2026-06-05T02:56:35.7016935Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7017188Z               "line": 412
2026-06-05T02:56:35.7017413Z             }
2026-06-05T02:56:35.7017650Z           ]
2026-06-05T02:56:35.7017881Z         },
2026-06-05T02:56:35.7018125Z         "unit": {
2026-06-05T02:56:35.7018383Z           "complete": true,
2026-06-05T02:56:35.7018634Z           "evidence": [
2026-06-05T02:56:35.7018870Z             {
2026-06-05T02:56:35.7019265Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7019730Z               "line": 577
2026-06-05T02:56:35.7020162Z             },
2026-06-05T02:56:35.7020411Z             {
2026-06-05T02:56:35.7020750Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.7021009Z               "line": 783
2026-06-05T02:56:35.7021258Z             },
2026-06-05T02:56:35.7021487Z             {
2026-06-05T02:56:35.7021822Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-05T02:56:35.7022066Z               "line": 62
2026-06-05T02:56:35.7022305Z             },
2026-06-05T02:56:35.7022533Z             {
2026-06-05T02:56:35.7022876Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7023129Z               "line": 252
2026-06-05T02:56:35.7023363Z             },
2026-06-05T02:56:35.7023604Z             {
2026-06-05T02:56:35.7023924Z               "path": "crates/spt/src/api/worker.rs",
2026-06-05T02:56:35.7024180Z               "line": 192
2026-06-05T02:56:35.7024408Z             }
2026-06-05T02:56:35.7024642Z           ]
2026-06-05T02:56:35.7024879Z         }
2026-06-05T02:56:35.7025100Z       }
2026-06-05T02:56:35.7025331Z     },
2026-06-05T02:56:35.7025562Z     {
2026-06-05T02:56:35.7025822Z       "id": "REQ-INST-7",
2026-06-05T02:56:35.7026216Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-05T02:56:35.7026493Z       "requiredStages": [
2026-06-05T02:56:35.7026733Z         "impl",
2026-06-05T02:56:35.7026960Z         "unit",
2026-06-05T02:56:35.7027195Z         "int"
2026-06-05T02:56:35.7027422Z       ],
2026-06-05T02:56:35.7027664Z       "stages": {
2026-06-05T02:56:35.7027892Z         "doc": {
2026-06-05T02:56:35.7028160Z           "complete": false,
2026-06-05T02:56:35.7028415Z           "evidence": []
2026-06-05T02:56:35.7028643Z         },
2026-06-05T02:56:35.7028888Z         "impl": {
2026-06-05T02:56:35.7029146Z           "complete": true,
2026-06-05T02:56:35.7029643Z           "evidence": [
2026-06-05T02:56:35.7029899Z             {
2026-06-05T02:56:35.7030402Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7030661Z               "line": 380
2026-06-05T02:56:35.7030899Z             },
2026-06-05T02:56:35.7031138Z             {
2026-06-05T02:56:35.7031483Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T02:56:35.7031741Z               "line": 40
2026-06-05T02:56:35.7031971Z             },
2026-06-05T02:56:35.7032219Z             {
2026-06-05T02:56:35.7032622Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7032869Z               "line": 27
2026-06-05T02:56:35.7033111Z             },
2026-06-05T02:56:35.7033340Z             {
2026-06-05T02:56:35.7033721Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7033969Z               "line": 120
2026-06-05T02:56:35.7034210Z             },
2026-06-05T02:56:35.7034448Z             {
2026-06-05T02:56:35.7034816Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7035069Z               "line": 197
2026-06-05T02:56:35.7035302Z             },
2026-06-05T02:56:35.7035540Z             {
2026-06-05T02:56:35.7036026Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-05T02:56:35.7036302Z               "line": 56
2026-06-05T02:56:35.7036547Z             },
2026-06-05T02:56:35.7036902Z             {
2026-06-05T02:56:35.7037261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7037506Z               "line": 41
2026-06-05T02:56:35.7037748Z             },
2026-06-05T02:56:35.7037971Z             {
2026-06-05T02:56:35.7038335Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7038582Z               "line": 27
2026-06-05T02:56:35.7038812Z             },
2026-06-05T02:56:35.7039047Z             {
2026-06-05T02:56:35.7039640Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7040050Z               "line": 59
2026-06-05T02:56:35.7040289Z             },
2026-06-05T02:56:35.7040525Z             {
2026-06-05T02:56:35.7040889Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7041136Z               "line": 68
2026-06-05T02:56:35.7041386Z             },
2026-06-05T02:56:35.7041616Z             {
2026-06-05T02:56:35.7041967Z               "path": "crates/spt-store/src/registry.rs",
2026-06-05T02:56:35.7042238Z               "line": 129
2026-06-05T02:56:35.7042465Z             }
2026-06-05T02:56:35.7042702Z           ]
2026-06-05T02:56:35.7042927Z         },
2026-06-05T02:56:35.7043169Z         "int": {
2026-06-05T02:56:35.7043426Z           "complete": true,
2026-06-05T02:56:35.7043676Z           "evidence": [
2026-06-05T02:56:35.7043910Z             {
2026-06-05T02:56:35.7044264Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T02:56:35.7044518Z               "line": 102
2026-06-05T02:56:35.7044743Z             },
2026-06-05T02:56:35.7044978Z             {
2026-06-05T02:56:35.7045328Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7045588Z               "line": 481
2026-06-05T02:56:35.7045831Z             },
2026-06-05T02:56:35.7046060Z             {
2026-06-05T02:56:35.7046421Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7046669Z               "line": 639
2026-06-05T02:56:35.7046912Z             }
2026-06-05T02:56:35.7052439Z           ]
2026-06-05T02:56:35.7052799Z         },
2026-06-05T02:56:35.7053068Z         "unit": {
2026-06-05T02:56:35.7053331Z           "complete": true,
2026-06-05T02:56:35.7053586Z           "evidence": [
2026-06-05T02:56:35.7053816Z             {
2026-06-05T02:56:35.7054217Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7054464Z               "line": 376
2026-06-05T02:56:35.7054704Z             },
2026-06-05T02:56:35.7054941Z             {
2026-06-05T02:56:35.7055312Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7055568Z               "line": 586
2026-06-05T02:56:35.7055797Z             },
2026-06-05T02:56:35.7056035Z             {
2026-06-05T02:56:35.7056397Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-05T02:56:35.7056683Z               "line": 83
2026-06-05T02:56:35.7056924Z             },
2026-06-05T02:56:35.7057155Z             {
2026-06-05T02:56:35.7057532Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7057787Z               "line": 550
2026-06-05T02:56:35.7058129Z             },
2026-06-05T02:56:35.7058354Z             {
2026-06-05T02:56:35.7058708Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7058968Z               "line": 561
2026-06-05T02:56:35.7059262Z             },
2026-06-05T02:56:35.7059698Z             {
2026-06-05T02:56:35.7060220Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7060482Z               "line": 570
2026-06-05T02:56:35.7060713Z             },
2026-06-05T02:56:35.7060955Z             {
2026-06-05T02:56:35.7061320Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7061561Z               "line": 90
2026-06-05T02:56:35.7061798Z             },
2026-06-05T02:56:35.7062264Z             {
2026-06-05T02:56:35.7062657Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7063054Z               "line": 105
2026-06-05T02:56:35.7063288Z             },
2026-06-05T02:56:35.7063526Z             {
2026-06-05T02:56:35.7063886Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-05T02:56:35.7064146Z               "line": 131
2026-06-05T02:56:35.7064373Z             }
2026-06-05T02:56:35.7064614Z           ]
2026-06-05T02:56:35.7064855Z         }
2026-06-05T02:56:35.7065080Z       }
2026-06-05T02:56:35.7065313Z     },
2026-06-05T02:56:35.7065536Z     {
2026-06-05T02:56:35.7065797Z       "id": "REQ-INST-8",
2026-06-05T02:56:35.7066246Z       "title": "Remote-control mode distinct from local operation",
2026-06-05T02:56:35.7066518Z       "requiredStages": [
2026-06-05T02:56:35.7066768Z         "impl",
2026-06-05T02:56:35.7067002Z         "unit",
2026-06-05T02:56:35.7067242Z         "int"
2026-06-05T02:56:35.7067470Z       ],
2026-06-05T02:56:35.7067720Z       "stages": {
2026-06-05T02:56:35.7067953Z         "doc": {
2026-06-05T02:56:35.7068221Z           "complete": false,
2026-06-05T02:56:35.7068477Z           "evidence": []
2026-06-05T02:56:35.7068719Z         },
2026-06-05T02:56:35.7068962Z         "impl": {
2026-06-05T02:56:35.7069267Z           "complete": true,
2026-06-05T02:56:35.7069717Z           "evidence": [
2026-06-05T02:56:35.7070093Z             {
2026-06-05T02:56:35.7070446Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.7070689Z               "line": 98
2026-06-05T02:56:35.7070932Z             },
2026-06-05T02:56:35.7071167Z             {
2026-06-05T02:56:35.7071504Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.7071764Z               "line": 202
2026-06-05T02:56:35.7071990Z             },
2026-06-05T02:56:35.7072232Z             {
2026-06-05T02:56:35.7072576Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.7072829Z               "line": 220
2026-06-05T02:56:35.7073067Z             },
2026-06-05T02:56:35.7073292Z             {
2026-06-05T02:56:35.7073642Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T02:56:35.7073892Z               "line": 35
2026-06-05T02:56:35.7074129Z             }
2026-06-05T02:56:35.7074371Z           ]
2026-06-05T02:56:35.7074603Z         },
2026-06-05T02:56:35.7074845Z         "int": {
2026-06-05T02:56:35.7075095Z           "complete": true,
2026-06-05T02:56:35.7075346Z           "evidence": [
2026-06-05T02:56:35.7075577Z             {
2026-06-05T02:56:35.7075947Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7076196Z               "line": 375
2026-06-05T02:56:35.7076426Z             },
2026-06-05T02:56:35.7076659Z             {
2026-06-05T02:56:35.7077007Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7077261Z               "line": 688
2026-06-05T02:56:35.7077490Z             }
2026-06-05T02:56:35.7077728Z           ]
2026-06-05T02:56:35.7077977Z         },
2026-06-05T02:56:35.7078212Z         "unit": {
2026-06-05T02:56:35.7078479Z           "complete": true,
2026-06-05T02:56:35.7078732Z           "evidence": [
2026-06-05T02:56:35.7078975Z             {
2026-06-05T02:56:35.7079379Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T02:56:35.7079804Z               "line": 172
2026-06-05T02:56:35.7080229Z             },
2026-06-05T02:56:35.7080460Z             {
2026-06-05T02:56:35.7080823Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T02:56:35.7081071Z               "line": 226
2026-06-05T02:56:35.7081312Z             },
2026-06-05T02:56:35.7081543Z             {
2026-06-05T02:56:35.7081894Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T02:56:35.7082151Z               "line": 70
2026-06-05T02:56:35.7082383Z             },
2026-06-05T02:56:35.7082621Z             {
2026-06-05T02:56:35.7082961Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-05T02:56:35.7083409Z               "line": 101
2026-06-05T02:56:35.7083658Z             }
2026-06-05T02:56:35.7083904Z           ]
2026-06-05T02:56:35.7084286Z         }
2026-06-05T02:56:35.7084515Z       }
2026-06-05T02:56:35.7084753Z     },
2026-06-05T02:56:35.7084978Z     {
2026-06-05T02:56:35.7085242Z       "id": "REQ-INST-9",
2026-06-05T02:56:35.7085789Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-05T02:56:35.7086061Z       "requiredStages": [
2026-06-05T02:56:35.7086304Z         "impl",
2026-06-05T02:56:35.7086535Z         "unit"
2026-06-05T02:56:35.7086772Z       ],
2026-06-05T02:56:35.7087006Z       "stages": {
2026-06-05T02:56:35.7087249Z         "doc": {
2026-06-05T02:56:35.7087513Z           "complete": false,
2026-06-05T02:56:35.7087769Z           "evidence": []
2026-06-05T02:56:35.7088006Z         },
2026-06-05T02:56:35.7088243Z         "impl": {
2026-06-05T02:56:35.7088512Z           "complete": true,
2026-06-05T02:56:35.7088755Z           "evidence": [
2026-06-05T02:56:35.7088996Z             {
2026-06-05T02:56:35.7089569Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7090025Z               "line": 266
2026-06-05T02:56:35.7090260Z             }
2026-06-05T02:56:35.7090488Z           ]
2026-06-05T02:56:35.7090724Z         },
2026-06-05T02:56:35.7090956Z         "int": {
2026-06-05T02:56:35.7091223Z           "complete": false,
2026-06-05T02:56:35.7091474Z           "evidence": []
2026-06-05T02:56:35.7091712Z         },
2026-06-05T02:56:35.7091952Z         "unit": {
2026-06-05T02:56:35.7092206Z           "complete": true,
2026-06-05T02:56:35.7092460Z           "evidence": [
2026-06-05T02:56:35.7092690Z             {
2026-06-05T02:56:35.7093047Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7093293Z               "line": 826
2026-06-05T02:56:35.7093535Z             },
2026-06-05T02:56:35.7093771Z             {
2026-06-05T02:56:35.7094123Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7094374Z               "line": 835
2026-06-05T02:56:35.7094600Z             },
2026-06-05T02:56:35.7094835Z             {
2026-06-05T02:56:35.7095198Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7095452Z               "line": 849
2026-06-05T02:56:35.7095695Z             },
2026-06-05T02:56:35.7095927Z             {
2026-06-05T02:56:35.7096281Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7096529Z               "line": 859
2026-06-05T02:56:35.7096772Z             },
2026-06-05T02:56:35.7097001Z             {
2026-06-05T02:56:35.7097358Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7102404Z               "line": 878
2026-06-05T02:56:35.7102758Z             }
2026-06-05T02:56:35.7103022Z           ]
2026-06-05T02:56:35.7103251Z         }
2026-06-05T02:56:35.7103492Z       }
2026-06-05T02:56:35.7103718Z     },
2026-06-05T02:56:35.7103953Z     {
2026-06-05T02:56:35.7104267Z       "id": "REQ-INSTALL-1",
2026-06-05T02:56:35.7104854Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-05T02:56:35.7105138Z       "requiredStages": [],
2026-06-05T02:56:35.7105381Z       "stages": {
2026-06-05T02:56:35.7105624Z         "doc": {
2026-06-05T02:56:35.7105888Z           "complete": false,
2026-06-05T02:56:35.7106148Z           "evidence": []
2026-06-05T02:56:35.7106385Z         },
2026-06-05T02:56:35.7106622Z         "impl": {
2026-06-05T02:56:35.7106889Z           "complete": false,
2026-06-05T02:56:35.7107136Z           "evidence": []
2026-06-05T02:56:35.7107375Z         },
2026-06-05T02:56:35.7107605Z         "int": {
2026-06-05T02:56:35.7107873Z           "complete": false,
2026-06-05T02:56:35.7108125Z           "evidence": []
2026-06-05T02:56:35.7108356Z         },
2026-06-05T02:56:35.7108600Z         "unit": {
2026-06-05T02:56:35.7108855Z           "complete": false,
2026-06-05T02:56:35.7109114Z           "evidence": []
2026-06-05T02:56:35.7109656Z         }
2026-06-05T02:56:35.7109925Z       }
2026-06-05T02:56:35.7110163Z     },
2026-06-05T02:56:35.7110387Z     {
2026-06-05T02:56:35.7110788Z       "id": "REQ-INSTALL-2",
2026-06-05T02:56:35.7111177Z       "title": "Marketplace-repackaging-friendly install",
2026-06-05T02:56:35.7111453Z       "requiredStages": [],
2026-06-05T02:56:35.7111694Z       "stages": {
2026-06-05T02:56:35.7111939Z         "doc": {
2026-06-05T02:56:35.7112209Z           "complete": false,
2026-06-05T02:56:35.7112463Z           "evidence": []
2026-06-05T02:56:35.7112701Z         },
2026-06-05T02:56:35.7112935Z         "impl": {
2026-06-05T02:56:35.7113200Z           "complete": false,
2026-06-05T02:56:35.7113451Z           "evidence": []
2026-06-05T02:56:35.7113692Z         },
2026-06-05T02:56:35.7113935Z         "int": {
2026-06-05T02:56:35.7114197Z           "complete": false,
2026-06-05T02:56:35.7114450Z           "evidence": []
2026-06-05T02:56:35.7114674Z         },
2026-06-05T02:56:35.7114915Z         "unit": {
2026-06-05T02:56:35.7115182Z           "complete": false,
2026-06-05T02:56:35.7115435Z           "evidence": []
2026-06-05T02:56:35.7115673Z         }
2026-06-05T02:56:35.7115910Z       }
2026-06-05T02:56:35.7116143Z     },
2026-06-05T02:56:35.7116366Z     {
2026-06-05T02:56:35.7116632Z       "id": "REQ-INSTALL-3",
2026-06-05T02:56:35.7117044Z       "title": "Idempotent + interactive-optional first run",
2026-06-05T02:56:35.7117317Z       "requiredStages": [],
2026-06-05T02:56:35.7117569Z       "stages": {
2026-06-05T02:56:35.7117815Z         "doc": {
2026-06-05T02:56:35.7118085Z           "complete": false,
2026-06-05T02:56:35.7118332Z           "evidence": []
2026-06-05T02:56:35.7118569Z         },
2026-06-05T02:56:35.7118805Z         "impl": {
2026-06-05T02:56:35.7119073Z           "complete": false,
2026-06-05T02:56:35.7119388Z           "evidence": []
2026-06-05T02:56:35.7119629Z         },
2026-06-05T02:56:35.7119884Z         "int": {
2026-06-05T02:56:35.7120141Z           "complete": false,
2026-06-05T02:56:35.7120410Z           "evidence": []
2026-06-05T02:56:35.7120645Z         },
2026-06-05T02:56:35.7120890Z         "unit": {
2026-06-05T02:56:35.7121152Z           "complete": false,
2026-06-05T02:56:35.7121411Z           "evidence": []
2026-06-05T02:56:35.7121653Z         }
2026-06-05T02:56:35.7121883Z       }
2026-06-05T02:56:35.7122118Z     },
2026-06-05T02:56:35.7122345Z     {
2026-06-05T02:56:35.7122616Z       "id": "REQ-INSTALL-4",
2026-06-05T02:56:35.7124635Z       "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-05T02:56:35.7124899Z       "requiredStages": [
2026-06-05T02:56:35.7125152Z         "impl",
2026-06-05T02:56:35.7125387Z         "unit"
2026-06-05T02:56:35.7125630Z       ],
2026-06-05T02:56:35.7125869Z       "stages": {
2026-06-05T02:56:35.7126115Z         "doc": {
2026-06-05T02:56:35.7126392Z           "complete": false,
2026-06-05T02:56:35.7126645Z           "evidence": []
2026-06-05T02:56:35.7126882Z         },
2026-06-05T02:56:35.7127122Z         "impl": {
2026-06-05T02:56:35.7127394Z           "complete": true,
2026-06-05T02:56:35.7127640Z           "evidence": [
2026-06-05T02:56:35.7127881Z             {
2026-06-05T02:56:35.7128273Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.7128526Z               "line": 149
2026-06-05T02:56:35.7128766Z             },
2026-06-05T02:56:35.7128997Z             {
2026-06-05T02:56:35.7129489Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7129745Z               "line": 29
2026-06-05T02:56:35.7129991Z             },
2026-06-05T02:56:35.7130228Z             {
2026-06-05T02:56:35.7130589Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7130846Z               "line": 117
2026-06-05T02:56:35.7131080Z             },
2026-06-05T02:56:35.7131323Z             {
2026-06-05T02:56:35.7131841Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7132105Z               "line": 161
2026-06-05T02:56:35.7132481Z             },
2026-06-05T02:56:35.7132715Z             {
2026-06-05T02:56:35.7133081Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7133331Z               "line": 191
2026-06-05T02:56:35.7133576Z             },
2026-06-05T02:56:35.7133811Z             {
2026-06-05T02:56:35.7134161Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7134420Z               "line": 223
2026-06-05T02:56:35.7134652Z             },
2026-06-05T02:56:35.7134892Z             {
2026-06-05T02:56:35.7135198Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7135454Z               "line": 1555
2026-06-05T02:56:35.7135689Z             }
2026-06-05T02:56:35.7135919Z           ]
2026-06-05T02:56:35.7136153Z         },
2026-06-05T02:56:35.7136387Z         "int": {
2026-06-05T02:56:35.7136666Z           "complete": false,
2026-06-05T02:56:35.7136922Z           "evidence": []
2026-06-05T02:56:35.7137160Z         },
2026-06-05T02:56:35.7137410Z         "unit": {
2026-06-05T02:56:35.7137674Z           "complete": true,
2026-06-05T02:56:35.7137926Z           "evidence": [
2026-06-05T02:56:35.7138153Z             {
2026-06-05T02:56:35.7138544Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.7138792Z               "line": 311
2026-06-05T02:56:35.7139030Z             },
2026-06-05T02:56:35.7139327Z             {
2026-06-05T02:56:35.7139683Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7139935Z               "line": 269
2026-06-05T02:56:35.7140163Z             },
2026-06-05T02:56:35.7140394Z             {
2026-06-05T02:56:35.7140745Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7141006Z               "line": 304
2026-06-05T02:56:35.7141246Z             },
2026-06-05T02:56:35.7141474Z             {
2026-06-05T02:56:35.7141842Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-05T02:56:35.7142088Z               "line": 321
2026-06-05T02:56:35.7142340Z             },
2026-06-05T02:56:35.7142567Z             {
2026-06-05T02:56:35.7142880Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7143135Z               "line": 2672
2026-06-05T02:56:35.7143365Z             }
2026-06-05T02:56:35.7143600Z           ]
2026-06-05T02:56:35.7143821Z         }
2026-06-05T02:56:35.7144055Z       }
2026-06-05T02:56:35.7144276Z     },
2026-06-05T02:56:35.7144504Z     {
2026-06-05T02:56:35.7144774Z       "id": "REQ-MANIFEST-1",
2026-06-05T02:56:35.7145333Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-05T02:56:35.7145597Z       "requiredStages": [
2026-06-05T02:56:35.7145825Z         "doc",
2026-06-05T02:56:35.7146066Z         "impl",
2026-06-05T02:56:35.7146292Z         "unit"
2026-06-05T02:56:35.7146531Z       ],
2026-06-05T02:56:35.7146775Z       "stages": {
2026-06-05T02:56:35.7147012Z         "doc": {
2026-06-05T02:56:35.7147278Z           "complete": true,
2026-06-05T02:56:35.7152216Z           "evidence": [
2026-06-05T02:56:35.7152608Z             {
2026-06-05T02:56:35.7152921Z               "path": "docs/MANIFEST.md",
2026-06-05T02:56:35.7153181Z               "line": 19
2026-06-05T02:56:35.7153425Z             }
2026-06-05T02:56:35.7153654Z           ]
2026-06-05T02:56:35.7153891Z         },
2026-06-05T02:56:35.7154130Z         "impl": {
2026-06-05T02:56:35.7154395Z           "complete": true,
2026-06-05T02:56:35.7154641Z           "evidence": [
2026-06-05T02:56:35.7154879Z             {
2026-06-05T02:56:35.7155256Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7155506Z               "line": 18
2026-06-05T02:56:35.7155746Z             }
2026-06-05T02:56:35.7155976Z           ]
2026-06-05T02:56:35.7156213Z         },
2026-06-05T02:56:35.7156447Z         "int": {
2026-06-05T02:56:35.7156715Z           "complete": false,
2026-06-05T02:56:35.7157227Z           "evidence": []
2026-06-05T02:56:35.7157474Z         },
2026-06-05T02:56:35.7157723Z         "unit": {
2026-06-05T02:56:35.7158113Z           "complete": true,
2026-06-05T02:56:35.7158362Z           "evidence": [
2026-06-05T02:56:35.7158587Z             {
2026-06-05T02:56:35.7158962Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7159289Z               "line": 706
2026-06-05T02:56:35.7159536Z             },
2026-06-05T02:56:35.7159776Z             {
2026-06-05T02:56:35.7160139Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7160399Z               "line": 802
2026-06-05T02:56:35.7160635Z             },
2026-06-05T02:56:35.7160873Z             {
2026-06-05T02:56:35.7161235Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7161481Z               "line": 814
2026-06-05T02:56:35.7161725Z             },
2026-06-05T02:56:35.7161956Z             {
2026-06-05T02:56:35.7162333Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7162579Z               "line": 822
2026-06-05T02:56:35.7162823Z             },
2026-06-05T02:56:35.7163073Z             {
2026-06-05T02:56:35.7163422Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7163682Z               "line": 839
2026-06-05T02:56:35.7163910Z             },
2026-06-05T02:56:35.7164152Z             {
2026-06-05T02:56:35.7164502Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7164761Z               "line": 853
2026-06-05T02:56:35.7165006Z             },
2026-06-05T02:56:35.7165237Z             {
2026-06-05T02:56:35.7165609Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7165856Z               "line": 868
2026-06-05T02:56:35.7166099Z             },
2026-06-05T02:56:35.7166339Z             {
2026-06-05T02:56:35.7166694Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7166948Z               "line": 883
2026-06-05T02:56:35.7167187Z             },
2026-06-05T02:56:35.7167427Z             {
2026-06-05T02:56:35.7167784Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7168056Z               "line": 898
2026-06-05T02:56:35.7168291Z             },
2026-06-05T02:56:35.7168517Z             {
2026-06-05T02:56:35.7168878Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7169122Z               "line": 909
2026-06-05T02:56:35.7169398Z             }
2026-06-05T02:56:35.7169628Z           ]
2026-06-05T02:56:35.7169865Z         }
2026-06-05T02:56:35.7170095Z       }
2026-06-05T02:56:35.7170315Z     },
2026-06-05T02:56:35.7170550Z     {
2026-06-05T02:56:35.7170813Z       "id": "REQ-MIGRATE-1",
2026-06-05T02:56:35.7171723Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-05T02:56:35.7172005Z       "requiredStages": [],
2026-06-05T02:56:35.7172255Z       "stages": {
2026-06-05T02:56:35.7172496Z         "doc": {
2026-06-05T02:56:35.7172768Z           "complete": false,
2026-06-05T02:56:35.7173030Z           "evidence": []
2026-06-05T02:56:35.7173257Z         },
2026-06-05T02:56:35.7173511Z         "impl": {
2026-06-05T02:56:35.7173774Z           "complete": false,
2026-06-05T02:56:35.7174031Z           "evidence": []
2026-06-05T02:56:35.7174270Z         },
2026-06-05T02:56:35.7174501Z         "int": {
2026-06-05T02:56:35.7174765Z           "complete": false,
2026-06-05T02:56:35.7175015Z           "evidence": []
2026-06-05T02:56:35.7175250Z         },
2026-06-05T02:56:35.7175481Z         "unit": {
2026-06-05T02:56:35.7175744Z           "complete": false,
2026-06-05T02:56:35.7175998Z           "evidence": []
2026-06-05T02:56:35.7176226Z         }
2026-06-05T02:56:35.7176459Z       }
2026-06-05T02:56:35.7176678Z     },
2026-06-05T02:56:35.7176908Z     {
2026-06-05T02:56:35.7177177Z       "id": "REQ-MSG-1",
2026-06-05T02:56:35.7178845Z       "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-05T02:56:35.7179133Z       "requiredStages": [
2026-06-05T02:56:35.7179564Z         "impl",
2026-06-05T02:56:35.7179813Z         "unit",
2026-06-05T02:56:35.7180044Z         "int"
2026-06-05T02:56:35.7180286Z       ],
2026-06-05T02:56:35.7180526Z       "stages": {
2026-06-05T02:56:35.7180772Z         "doc": {
2026-06-05T02:56:35.7181040Z           "complete": false,
2026-06-05T02:56:35.7181289Z           "evidence": []
2026-06-05T02:56:35.7181529Z         },
2026-06-05T02:56:35.7181768Z         "impl": {
2026-06-05T02:56:35.7182035Z           "complete": true,
2026-06-05T02:56:35.7182283Z           "evidence": [
2026-06-05T02:56:35.7182525Z             {
2026-06-05T02:56:35.7182875Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7183121Z               "line": 28
2026-06-05T02:56:35.7183356Z             },
2026-06-05T02:56:35.7183583Z             {
2026-06-05T02:56:35.7183938Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7184188Z               "line": 94
2026-06-05T02:56:35.7184429Z             },
2026-06-05T02:56:35.7184679Z             {
2026-06-05T02:56:35.7185017Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7185268Z               "line": 127
2026-06-05T02:56:35.7185501Z             },
2026-06-05T02:56:35.7185737Z             {
2026-06-05T02:56:35.7186065Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7186324Z               "line": 149
2026-06-05T02:56:35.7186569Z             },
2026-06-05T02:56:35.7186791Z             {
2026-06-05T02:56:35.7187136Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7187386Z               "line": 174
2026-06-05T02:56:35.7187630Z             },
2026-06-05T02:56:35.7187856Z             {
2026-06-05T02:56:35.7188207Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7188462Z               "line": 18
2026-06-05T02:56:35.7188691Z             },
2026-06-05T02:56:35.7188933Z             {
2026-06-05T02:56:35.7189303Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.7189576Z               "line": 13
2026-06-05T02:56:35.7189806Z             },
2026-06-05T02:56:35.7190040Z             {
2026-06-05T02:56:35.7190366Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.7190611Z               "line": 61
2026-06-05T02:56:35.7190847Z             },
2026-06-05T02:56:35.7191074Z             {
2026-06-05T02:56:35.7191397Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T02:56:35.7191640Z               "line": 10
2026-06-05T02:56:35.7191926Z             }
2026-06-05T02:56:35.7192168Z           ]
2026-06-05T02:56:35.7192409Z         },
2026-06-05T02:56:35.7192827Z         "int": {
2026-06-05T02:56:35.7193280Z           "complete": true,
2026-06-05T02:56:35.7193732Z           "evidence": [
2026-06-05T02:56:35.7194173Z             {
2026-06-05T02:56:35.7194598Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T02:56:35.7194854Z               "line": 9
2026-06-05T02:56:35.7195083Z             },
2026-06-05T02:56:35.7195318Z             {
2026-06-05T02:56:35.7195735Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T02:56:35.7196033Z               "line": 66
2026-06-05T02:56:35.7196285Z             },
2026-06-05T02:56:35.7196521Z             {
2026-06-05T02:56:35.7196935Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T02:56:35.7197187Z               "line": 116
2026-06-05T02:56:35.7197428Z             }
2026-06-05T02:56:35.7197660Z           ]
2026-06-05T02:56:35.7197900Z         },
2026-06-05T02:56:35.7198142Z         "unit": {
2026-06-05T02:56:35.7203697Z           "complete": true,
2026-06-05T02:56:35.7203976Z           "evidence": [
2026-06-05T02:56:35.7204210Z             {
2026-06-05T02:56:35.7204560Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7204809Z               "line": 203
2026-06-05T02:56:35.7205333Z             },
2026-06-05T02:56:35.7205602Z             {
2026-06-05T02:56:35.7205935Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7206344Z               "line": 232
2026-06-05T02:56:35.7206578Z             },
2026-06-05T02:56:35.7206811Z             {
2026-06-05T02:56:35.7207141Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7207396Z               "line": 277
2026-06-05T02:56:35.7207639Z             },
2026-06-05T02:56:35.7207868Z             {
2026-06-05T02:56:35.7208199Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7208443Z               "line": 300
2026-06-05T02:56:35.7208681Z             },
2026-06-05T02:56:35.7208918Z             {
2026-06-05T02:56:35.7209319Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-05T02:56:35.7209576Z               "line": 322
2026-06-05T02:56:35.7209809Z             },
2026-06-05T02:56:35.7210047Z             {
2026-06-05T02:56:35.7210386Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7210643Z               "line": 203
2026-06-05T02:56:35.7210871Z             },
2026-06-05T02:56:35.7211116Z             {
2026-06-05T02:56:35.7211458Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7211708Z               "line": 233
2026-06-05T02:56:35.7211948Z             },
2026-06-05T02:56:35.7212180Z             {
2026-06-05T02:56:35.7212523Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7212768Z               "line": 247
2026-06-05T02:56:35.7213015Z             },
2026-06-05T02:56:35.7213248Z             {
2026-06-05T02:56:35.7213575Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7213826Z               "line": 259
2026-06-05T02:56:35.7214055Z             },
2026-06-05T02:56:35.7214289Z             {
2026-06-05T02:56:35.7214595Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.7214852Z               "line": 158
2026-06-05T02:56:35.7215103Z             },
2026-06-05T02:56:35.7215333Z             {
2026-06-05T02:56:35.7215653Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-05T02:56:35.7215906Z               "line": 235
2026-06-05T02:56:35.7216146Z             },
2026-06-05T02:56:35.7216373Z             {
2026-06-05T02:56:35.7216691Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T02:56:35.7216946Z               "line": 68
2026-06-05T02:56:35.7217174Z             },
2026-06-05T02:56:35.7217409Z             {
2026-06-05T02:56:35.7217723Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T02:56:35.7217976Z               "line": 74
2026-06-05T02:56:35.7218206Z             },
2026-06-05T02:56:35.7218444Z             {
2026-06-05T02:56:35.7218760Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T02:56:35.7219003Z               "line": 80
2026-06-05T02:56:35.7219287Z             },
2026-06-05T02:56:35.7219519Z             {
2026-06-05T02:56:35.7219851Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-05T02:56:35.7220106Z               "line": 99
2026-06-05T02:56:35.7220333Z             }
2026-06-05T02:56:35.7220566Z           ]
2026-06-05T02:56:35.7220801Z         }
2026-06-05T02:56:35.7221040Z       }
2026-06-05T02:56:35.7221260Z     },
2026-06-05T02:56:35.7221496Z     {
2026-06-05T02:56:35.7221746Z       "id": "REQ-MSG-2",
2026-06-05T02:56:35.7222562Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-05T02:56:35.7222830Z       "requiredStages": [
2026-06-05T02:56:35.7223063Z         "impl",
2026-06-05T02:56:35.7223302Z         "unit"
2026-06-05T02:56:35.7223528Z       ],
2026-06-05T02:56:35.7223775Z       "stages": {
2026-06-05T02:56:35.7224009Z         "doc": {
2026-06-05T02:56:35.7224280Z           "complete": false,
2026-06-05T02:56:35.7224539Z           "evidence": []
2026-06-05T02:56:35.7224769Z         },
2026-06-05T02:56:35.7225016Z         "impl": {
2026-06-05T02:56:35.7225274Z           "complete": true,
2026-06-05T02:56:35.7225682Z           "evidence": [
2026-06-05T02:56:35.7225927Z             {
2026-06-05T02:56:35.7226248Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7226620Z               "line": 11
2026-06-05T02:56:35.7226857Z             },
2026-06-05T02:56:35.7227095Z             {
2026-06-05T02:56:35.7227400Z               "path": "crates/spt/src/main.rs",
2026-06-05T02:56:35.7227650Z               "line": 8
2026-06-05T02:56:35.7227890Z             }
2026-06-05T02:56:35.7228118Z           ]
2026-06-05T02:56:35.7228358Z         },
2026-06-05T02:56:35.7228593Z         "int": {
2026-06-05T02:56:35.7228856Z           "complete": false,
2026-06-05T02:56:35.7229100Z           "evidence": []
2026-06-05T02:56:35.7229382Z         },
2026-06-05T02:56:35.7229621Z         "unit": {
2026-06-05T02:56:35.7229885Z           "complete": true,
2026-06-05T02:56:35.7230143Z           "evidence": [
2026-06-05T02:56:35.7230377Z             {
2026-06-05T02:56:35.7230689Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7230938Z               "line": 2504
2026-06-05T02:56:35.7231177Z             },
2026-06-05T02:56:35.7231405Z             {
2026-06-05T02:56:35.7231727Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7231978Z               "line": 3473
2026-06-05T02:56:35.7232214Z             },
2026-06-05T02:56:35.7232455Z             {
2026-06-05T02:56:35.7232749Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7233004Z               "line": 3482
2026-06-05T02:56:35.7233241Z             },
2026-06-05T02:56:35.7233466Z             {
2026-06-05T02:56:35.7233776Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7234020Z               "line": 3494
2026-06-05T02:56:35.7234262Z             }
2026-06-05T02:56:35.7234492Z           ]
2026-06-05T02:56:35.7234723Z         }
2026-06-05T02:56:35.7234947Z       }
2026-06-05T02:56:35.7235180Z     },
2026-06-05T02:56:35.7235408Z     {
2026-06-05T02:56:35.7235654Z       "id": "REQ-MSG-3",
2026-06-05T02:56:35.7236856Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-05T02:56:35.7237129Z       "requiredStages": [
2026-06-05T02:56:35.7237370Z         "impl",
2026-06-05T02:56:35.7237614Z         "unit",
2026-06-05T02:56:35.7237845Z         "int"
2026-06-05T02:56:35.7238079Z       ],
2026-06-05T02:56:35.7238312Z       "stages": {
2026-06-05T02:56:35.7238556Z         "doc": {
2026-06-05T02:56:35.7238811Z           "complete": false,
2026-06-05T02:56:35.7239066Z           "evidence": []
2026-06-05T02:56:35.7239343Z         },
2026-06-05T02:56:35.7239581Z         "impl": {
2026-06-05T02:56:35.7239845Z           "complete": true,
2026-06-05T02:56:35.7240087Z           "evidence": [
2026-06-05T02:56:35.7240319Z             {
2026-06-05T02:56:35.7240653Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-05T02:56:35.7240907Z               "line": 19
2026-06-05T02:56:35.7241143Z             },
2026-06-05T02:56:35.7241379Z             {
2026-06-05T02:56:35.7241704Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7241956Z               "line": 21
2026-06-05T02:56:35.7242197Z             },
2026-06-05T02:56:35.7242423Z             {
2026-06-05T02:56:35.7242747Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7242998Z               "line": 48
2026-06-05T02:56:35.7243228Z             },
2026-06-05T02:56:35.7243463Z             {
2026-06-05T02:56:35.7243775Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7244025Z               "line": 131
2026-06-05T02:56:35.7244252Z             }
2026-06-05T02:56:35.7244486Z           ]
2026-06-05T02:56:35.7244723Z         },
2026-06-05T02:56:35.7244953Z         "int": {
2026-06-05T02:56:35.7245212Z           "complete": true,
2026-06-05T02:56:35.7245450Z           "evidence": [
2026-06-05T02:56:35.7245682Z             {
2026-06-05T02:56:35.7246224Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T02:56:35.7246498Z               "line": 10
2026-06-05T02:56:35.7246740Z             },
2026-06-05T02:56:35.7247132Z             {
2026-06-05T02:56:35.7247532Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-05T02:56:35.7252449Z               "line": 66
2026-06-05T02:56:35.7252805Z             }
2026-06-05T02:56:35.7253053Z           ]
2026-06-05T02:56:35.7253292Z         },
2026-06-05T02:56:35.7253541Z         "unit": {
2026-06-05T02:56:35.7253806Z           "complete": true,
2026-06-05T02:56:35.7254085Z           "evidence": [
2026-06-05T02:56:35.7254318Z             {
2026-06-05T02:56:35.7254661Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7254908Z               "line": 185
2026-06-05T02:56:35.7255148Z             },
2026-06-05T02:56:35.7255381Z             {
2026-06-05T02:56:35.7255708Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7255965Z               "line": 204
2026-06-05T02:56:35.7256223Z             },
2026-06-05T02:56:35.7256459Z             {
2026-06-05T02:56:35.7256788Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-05T02:56:35.7257053Z               "line": 223
2026-06-05T02:56:35.7257295Z             }
2026-06-05T02:56:35.7257519Z           ]
2026-06-05T02:56:35.7257752Z         }
2026-06-05T02:56:35.7257975Z       }
2026-06-05T02:56:35.7258209Z     },
2026-06-05T02:56:35.7258432Z     {
2026-06-05T02:56:35.7258688Z       "id": "REQ-NET-1",
2026-06-05T02:56:35.7259327Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-05T02:56:35.7259597Z       "requiredStages": [
2026-06-05T02:56:35.7259844Z         "impl",
2026-06-05T02:56:35.7260089Z         "unit",
2026-06-05T02:56:35.7260328Z         "int"
2026-06-05T02:56:35.7260558Z       ],
2026-06-05T02:56:35.7260803Z       "stages": {
2026-06-05T02:56:35.7261045Z         "doc": {
2026-06-05T02:56:35.7261305Z           "complete": false,
2026-06-05T02:56:35.7261560Z           "evidence": []
2026-06-05T02:56:35.7261797Z         },
2026-06-05T02:56:35.7262043Z         "impl": {
2026-06-05T02:56:35.7262297Z           "complete": true,
2026-06-05T02:56:35.7262563Z           "evidence": [
2026-06-05T02:56:35.7262797Z             {
2026-06-05T02:56:35.7263161Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7263421Z               "line": 53
2026-06-05T02:56:35.7263650Z             },
2026-06-05T02:56:35.7263889Z             {
2026-06-05T02:56:35.7264247Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7264501Z               "line": 515
2026-06-05T02:56:35.7264742Z             },
2026-06-05T02:56:35.7264970Z             {
2026-06-05T02:56:35.7265311Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-05T02:56:35.7265556Z               "line": 69
2026-06-05T02:56:35.7265797Z             },
2026-06-05T02:56:35.7266022Z             {
2026-06-05T02:56:35.7266393Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7266652Z               "line": 65
2026-06-05T02:56:35.7266885Z             },
2026-06-05T02:56:35.7267123Z             {
2026-06-05T02:56:35.7267491Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7267753Z               "line": 127
2026-06-05T02:56:35.7267982Z             },
2026-06-05T02:56:35.7268216Z             {
2026-06-05T02:56:35.7268589Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7268834Z               "line": 143
2026-06-05T02:56:35.7269070Z             },
2026-06-05T02:56:35.7269330Z             {
2026-06-05T02:56:35.7269710Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7269956Z               "line": 158
2026-06-05T02:56:35.7270198Z             },
2026-06-05T02:56:35.7270439Z             {
2026-06-05T02:56:35.7270799Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7271053Z               "line": 220
2026-06-05T02:56:35.7271279Z             },
2026-06-05T02:56:35.7271786Z             {
2026-06-05T02:56:35.7272198Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7272453Z               "line": 255
2026-06-05T02:56:35.7272844Z             },
2026-06-05T02:56:35.7273072Z             {
2026-06-05T02:56:35.7273442Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7273696Z               "line": 261
2026-06-05T02:56:35.7273942Z             },
2026-06-05T02:56:35.7274180Z             {
2026-06-05T02:56:35.7274536Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7274789Z               "line": 267
2026-06-05T02:56:35.7275019Z             },
2026-06-05T02:56:35.7275258Z             {
2026-06-05T02:56:35.7275611Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7275867Z               "line": 283
2026-06-05T02:56:35.7276105Z             },
2026-06-05T02:56:35.7276331Z             {
2026-06-05T02:56:35.7276706Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7276952Z               "line": 303
2026-06-05T02:56:35.7277200Z             },
2026-06-05T02:56:35.7277460Z             {
2026-06-05T02:56:35.7277901Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.7278167Z               "line": 35
2026-06-05T02:56:35.7278400Z             },
2026-06-05T02:56:35.7278638Z             {
2026-06-05T02:56:35.7278985Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.7279300Z               "line": 82
2026-06-05T02:56:35.7279549Z             },
2026-06-05T02:56:35.7279790Z             {
2026-06-05T02:56:35.7280132Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.7280379Z               "line": 129
2026-06-05T02:56:35.7280618Z             },
2026-06-05T02:56:35.7280845Z             {
2026-06-05T02:56:35.7281153Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7281408Z               "line": 1131
2026-06-05T02:56:35.7281648Z             },
2026-06-05T02:56:35.7281897Z             {
2026-06-05T02:56:35.7282222Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7282470Z               "line": 17
2026-06-05T02:56:35.7282707Z             }
2026-06-05T02:56:35.7282948Z           ]
2026-06-05T02:56:35.7283180Z         },
2026-06-05T02:56:35.7283428Z         "int": {
2026-06-05T02:56:35.7283694Z           "complete": true,
2026-06-05T02:56:35.7283938Z           "evidence": [
2026-06-05T02:56:35.7284170Z             {
2026-06-05T02:56:35.7284541Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7284799Z               "line": 314
2026-06-05T02:56:35.7285028Z             },
2026-06-05T02:56:35.7285264Z             {
2026-06-05T02:56:35.7285637Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7285882Z               "line": 488
2026-06-05T02:56:35.7286123Z             },
2026-06-05T02:56:35.7286353Z             {
2026-06-05T02:56:35.7286726Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7286987Z               "line": 645
2026-06-05T02:56:35.7287211Z             }
2026-06-05T02:56:35.7287458Z           ]
2026-06-05T02:56:35.7287687Z         },
2026-06-05T02:56:35.7287931Z         "unit": {
2026-06-05T02:56:35.7288186Z           "complete": true,
2026-06-05T02:56:35.7288440Z           "evidence": [
2026-06-05T02:56:35.7288667Z             {
2026-06-05T02:56:35.7289033Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7289340Z               "line": 567
2026-06-05T02:56:35.7289575Z             },
2026-06-05T02:56:35.7289808Z             {
2026-06-05T02:56:35.7290168Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7290431Z               "line": 600
2026-06-05T02:56:35.7290669Z             },
2026-06-05T02:56:35.7290897Z             {
2026-06-05T02:56:35.7291281Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7291528Z               "line": 621
2026-06-05T02:56:35.7291923Z             },
2026-06-05T02:56:35.7292176Z             {
2026-06-05T02:56:35.7292550Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-05T02:56:35.7292954Z               "line": 142
2026-06-05T02:56:35.7293185Z             },
2026-06-05T02:56:35.7293419Z             {
2026-06-05T02:56:35.7293775Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7294035Z               "line": 357
2026-06-05T02:56:35.7294263Z             },
2026-06-05T02:56:35.7294499Z             {
2026-06-05T02:56:35.7294875Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7295120Z               "line": 371
2026-06-05T02:56:35.7295362Z             },
2026-06-05T02:56:35.7295593Z             {
2026-06-05T02:56:35.7295957Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7296207Z               "line": 390
2026-06-05T02:56:35.7296446Z             },
2026-06-05T02:56:35.7301451Z             {
2026-06-05T02:56:35.7302004Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.7302292Z               "line": 106
2026-06-05T02:56:35.7302524Z             },
2026-06-05T02:56:35.7302771Z             {
2026-06-05T02:56:35.7303125Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-05T02:56:35.7303388Z               "line": 148
2026-06-05T02:56:35.7303628Z             },
2026-06-05T02:56:35.7303856Z             {
2026-06-05T02:56:35.7304200Z               "path": "crates/spt-store/src/spool.rs",
2026-06-05T02:56:35.7304449Z               "line": 445
2026-06-05T02:56:35.7304684Z             },
2026-06-05T02:56:35.7304908Z             {
2026-06-05T02:56:35.7305232Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7305488Z               "line": 324
2026-06-05T02:56:35.7305716Z             },
2026-06-05T02:56:35.7305948Z             {
2026-06-05T02:56:35.7306264Z               "path": "crates/spt/src/wansend.rs",
2026-06-05T02:56:35.7306522Z               "line": 540
2026-06-05T02:56:35.7306762Z             }
2026-06-05T02:56:35.7306999Z           ]
2026-06-05T02:56:35.7307233Z         }
2026-06-05T02:56:35.7307455Z       }
2026-06-05T02:56:35.7307696Z     },
2026-06-05T02:56:35.7307917Z     {
2026-06-05T02:56:35.7308177Z       "id": "REQ-NET-2",
2026-06-05T02:56:35.7308721Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-05T02:56:35.7308994Z       "requiredStages": [
2026-06-05T02:56:35.7309303Z         "impl"
2026-06-05T02:56:35.7309536Z       ],
2026-06-05T02:56:35.7309779Z       "stages": {
2026-06-05T02:56:35.7310008Z         "doc": {
2026-06-05T02:56:35.7310275Z           "complete": false,
2026-06-05T02:56:35.7310524Z           "evidence": []
2026-06-05T02:56:35.7310760Z         },
2026-06-05T02:56:35.7311002Z         "impl": {
2026-06-05T02:56:35.7311262Z           "complete": true,
2026-06-05T02:56:35.7311509Z           "evidence": [
2026-06-05T02:56:35.7311736Z             {
2026-06-05T02:56:35.7312099Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.7312347Z               "line": 49
2026-06-05T02:56:35.7312585Z             },
2026-06-05T02:56:35.7312834Z             {
2026-06-05T02:56:35.7313190Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7313441Z               "line": 39
2026-06-05T02:56:35.7313674Z             },
2026-06-05T02:56:35.7313908Z             {
2026-06-05T02:56:35.7314264Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7314519Z               "line": 49
2026-06-05T02:56:35.7314756Z             },
2026-06-05T02:56:35.7314985Z             {
2026-06-05T02:56:35.7315342Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7315587Z               "line": 127
2026-06-05T02:56:35.7315820Z             },
2026-06-05T02:56:35.7316056Z             {
2026-06-05T02:56:35.7316407Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7316664Z               "line": 143
2026-06-05T02:56:35.7317152Z             },
2026-06-05T02:56:35.7317417Z             {
2026-06-05T02:56:35.7317770Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-05T02:56:35.7318165Z               "line": 158
2026-06-05T02:56:35.7318403Z             }
2026-06-05T02:56:35.7318630Z           ]
2026-06-05T02:56:35.7318864Z         },
2026-06-05T02:56:35.7319095Z         "int": {
2026-06-05T02:56:35.7319409Z           "complete": false,
2026-06-05T02:56:35.7319654Z           "evidence": []
2026-06-05T02:56:35.7319893Z         },
2026-06-05T02:56:35.7320134Z         "unit": {
2026-06-05T02:56:35.7320388Z           "complete": true,
2026-06-05T02:56:35.7320639Z           "evidence": [
2026-06-05T02:56:35.7320865Z             {
2026-06-05T02:56:35.7321218Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.7321470Z               "line": 334
2026-06-05T02:56:35.7321713Z             }
2026-06-05T02:56:35.7321947Z           ]
2026-06-05T02:56:35.7322171Z         }
2026-06-05T02:56:35.7322409Z       }
2026-06-05T02:56:35.7322643Z     },
2026-06-05T02:56:35.7322877Z     {
2026-06-05T02:56:35.7323126Z       "id": "REQ-NET-3",
2026-06-05T02:56:35.7323660Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-05T02:56:35.7323926Z       "requiredStages": [
2026-06-05T02:56:35.7324159Z         "impl",
2026-06-05T02:56:35.7324395Z         "unit"
2026-06-05T02:56:35.7324620Z       ],
2026-06-05T02:56:35.7324862Z       "stages": {
2026-06-05T02:56:35.7325094Z         "doc": {
2026-06-05T02:56:35.7325361Z           "complete": false,
2026-06-05T02:56:35.7325613Z           "evidence": []
2026-06-05T02:56:35.7325844Z         },
2026-06-05T02:56:35.7326090Z         "impl": {
2026-06-05T02:56:35.7326342Z           "complete": true,
2026-06-05T02:56:35.7326593Z           "evidence": [
2026-06-05T02:56:35.7326818Z             {
2026-06-05T02:56:35.7327157Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.7327408Z               "line": 39
2026-06-05T02:56:35.7327643Z             },
2026-06-05T02:56:35.7327875Z             {
2026-06-05T02:56:35.7328207Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.7328471Z               "line": 159
2026-06-05T02:56:35.7328699Z             },
2026-06-05T02:56:35.7328939Z             {
2026-06-05T02:56:35.7329318Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-05T02:56:35.7329571Z               "line": 290
2026-06-05T02:56:35.7329810Z             },
2026-06-05T02:56:35.7330038Z             {
2026-06-05T02:56:35.7330380Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T02:56:35.7330623Z               "line": 36
2026-06-05T02:56:35.7330860Z             },
2026-06-05T02:56:35.7331095Z             {
2026-06-05T02:56:35.7331458Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7331719Z               "line": 135
2026-06-05T02:56:35.7331953Z             },
2026-06-05T02:56:35.7332195Z             {
2026-06-05T02:56:35.7332567Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7332829Z               "line": 172
2026-06-05T02:56:35.7333063Z             },
2026-06-05T02:56:35.7333302Z             {
2026-06-05T02:56:35.7333674Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7333917Z               "line": 184
2026-06-05T02:56:35.7334158Z             },
2026-06-05T02:56:35.7334394Z             {
2026-06-05T02:56:35.7334763Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7335027Z               "line": 222
2026-06-05T02:56:35.7335262Z             },
2026-06-05T02:56:35.7335501Z             {
2026-06-05T02:56:35.7335862Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7336122Z               "line": 237
2026-06-05T02:56:35.7336351Z             },
2026-06-05T02:56:35.7336589Z             {
2026-06-05T02:56:35.7336956Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7337201Z               "line": 273
2026-06-05T02:56:35.7337588Z             },
2026-06-05T02:56:35.7337830Z             {
2026-06-05T02:56:35.7338206Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7338630Z               "line": 314
2026-06-05T02:56:35.7338874Z             },
2026-06-05T02:56:35.7339108Z             {
2026-06-05T02:56:35.7339545Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.7339803Z               "line": 327
2026-06-05T02:56:35.7340034Z             },
2026-06-05T02:56:35.7340278Z             {
2026-06-05T02:56:35.7340638Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7340881Z               "line": 29
2026-06-05T02:56:35.7341118Z             },
2026-06-05T02:56:35.7341352Z             {
2026-06-05T02:56:35.7341708Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7341952Z               "line": 70
2026-06-05T02:56:35.7342194Z             },
2026-06-05T02:56:35.7342432Z             {
2026-06-05T02:56:35.7342794Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7343057Z               "line": 121
2026-06-05T02:56:35.7343294Z             }
2026-06-05T02:56:35.7343533Z           ]
2026-06-05T02:56:35.7343763Z         },
2026-06-05T02:56:35.7344007Z         "int": {
2026-06-05T02:56:35.7344279Z           "complete": false,
2026-06-05T02:56:35.7344533Z           "evidence": []
2026-06-05T02:56:35.7344773Z         },
2026-06-05T02:56:35.7345002Z         "unit": {
2026-06-05T02:56:35.7345264Z           "complete": true,
2026-06-05T02:56:35.7350097Z           "evidence": [
2026-06-05T02:56:35.7350466Z             {
2026-06-05T02:56:35.7350868Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.7351120Z               "line": 203
2026-06-05T02:56:35.7351360Z             },
2026-06-05T02:56:35.7351589Z             {
2026-06-05T02:56:35.7351948Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.7352197Z               "line": 303
2026-06-05T02:56:35.7352465Z             },
2026-06-05T02:56:35.7352705Z             {
2026-06-05T02:56:35.7353049Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-05T02:56:35.7353314Z               "line": 399
2026-06-05T02:56:35.7353543Z             },
2026-06-05T02:56:35.7353779Z             {
2026-06-05T02:56:35.7354114Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T02:56:35.7354366Z               "line": 93
2026-06-05T02:56:35.7354601Z             },
2026-06-05T02:56:35.7354827Z             {
2026-06-05T02:56:35.7355178Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-05T02:56:35.7355421Z               "line": 131
2026-06-05T02:56:35.7355660Z             },
2026-06-05T02:56:35.7355885Z             {
2026-06-05T02:56:35.7356249Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7356501Z               "line": 308
2026-06-05T02:56:35.7356734Z             },
2026-06-05T02:56:35.7356966Z             {
2026-06-05T02:56:35.7357321Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7357583Z               "line": 345
2026-06-05T02:56:35.7357814Z             },
2026-06-05T02:56:35.7358059Z             {
2026-06-05T02:56:35.7358424Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-05T02:56:35.7358669Z               "line": 469
2026-06-05T02:56:35.7358905Z             }
2026-06-05T02:56:35.7359133Z           ]
2026-06-05T02:56:35.7359436Z         }
2026-06-05T02:56:35.7359662Z       }
2026-06-05T02:56:35.7359897Z     },
2026-06-05T02:56:35.7360125Z     {
2026-06-05T02:56:35.7360395Z       "id": "REQ-NODE-IDENTITY",
2026-06-05T02:56:35.7361138Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-05T02:56:35.7361399Z       "requiredStages": [
2026-06-05T02:56:35.7361648Z         "impl",
2026-06-05T02:56:35.7361878Z         "unit"
2026-06-05T02:56:35.7362119Z       ],
2026-06-05T02:56:35.7362362Z       "stages": {
2026-06-05T02:56:35.7362590Z         "doc": {
2026-06-05T02:56:35.7363095Z           "complete": false,
2026-06-05T02:56:35.7363378Z           "evidence": []
2026-06-05T02:56:35.7363620Z         },
2026-06-05T02:56:35.7363995Z         "impl": {
2026-06-05T02:56:35.7364262Z           "complete": true,
2026-06-05T02:56:35.7364514Z           "evidence": [
2026-06-05T02:56:35.7364745Z             {
2026-06-05T02:56:35.7365110Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7365357Z               "line": 60
2026-06-05T02:56:35.7365604Z             },
2026-06-05T02:56:35.7365836Z             {
2026-06-05T02:56:35.7366198Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7366454Z               "line": 68
2026-06-05T02:56:35.7366689Z             },
2026-06-05T02:56:35.7366928Z             {
2026-06-05T02:56:35.7367274Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7367529Z               "line": 86
2026-06-05T02:56:35.7367759Z             },
2026-06-05T02:56:35.7368005Z             {
2026-06-05T02:56:35.7368370Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7368618Z               "line": 120
2026-06-05T02:56:35.7368868Z             },
2026-06-05T02:56:35.7369101Z             {
2026-06-05T02:56:35.7369519Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7369777Z               "line": 127
2026-06-05T02:56:35.7370015Z             },
2026-06-05T02:56:35.7370254Z             {
2026-06-05T02:56:35.7370602Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7370859Z               "line": 143
2026-06-05T02:56:35.7371087Z             },
2026-06-05T02:56:35.7371326Z             {
2026-06-05T02:56:35.7371669Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T02:56:35.7371924Z               "line": 16
2026-06-05T02:56:35.7372164Z             }
2026-06-05T02:56:35.7372391Z           ]
2026-06-05T02:56:35.7372627Z         },
2026-06-05T02:56:35.7372859Z         "int": {
2026-06-05T02:56:35.7373139Z           "complete": false,
2026-06-05T02:56:35.7373391Z           "evidence": []
2026-06-05T02:56:35.7373622Z         },
2026-06-05T02:56:35.7373870Z         "unit": {
2026-06-05T02:56:35.7374122Z           "complete": true,
2026-06-05T02:56:35.7374369Z           "evidence": [
2026-06-05T02:56:35.7374595Z             {
2026-06-05T02:56:35.7374956Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7375210Z               "line": 199
2026-06-05T02:56:35.7375438Z             },
2026-06-05T02:56:35.7375671Z             {
2026-06-05T02:56:35.7376015Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7376271Z               "line": 218
2026-06-05T02:56:35.7376502Z             },
2026-06-05T02:56:35.7376737Z             {
2026-06-05T02:56:35.7377089Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7377333Z               "line": 232
2026-06-05T02:56:35.7377572Z             },
2026-06-05T02:56:35.7377797Z             {
2026-06-05T02:56:35.7378167Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-05T02:56:35.7378414Z               "line": 248
2026-06-05T02:56:35.7378661Z             },
2026-06-05T02:56:35.7378897Z             {
2026-06-05T02:56:35.7379274Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T02:56:35.7379537Z               "line": 125
2026-06-05T02:56:35.7379768Z             },
2026-06-05T02:56:35.7380001Z             {
2026-06-05T02:56:35.7380332Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T02:56:35.7380584Z               "line": 141
2026-06-05T02:56:35.7380829Z             },
2026-06-05T02:56:35.7381061Z             {
2026-06-05T02:56:35.7381412Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-05T02:56:35.7381658Z               "line": 153
2026-06-05T02:56:35.7381891Z             }
2026-06-05T02:56:35.7382123Z           ]
2026-06-05T02:56:35.7382396Z         }
2026-06-05T02:56:35.7382644Z       }
2026-06-05T02:56:35.7382865Z     },
2026-06-05T02:56:35.7383250Z     {
2026-06-05T02:56:35.7383524Z       "id": "REQ-NOTIF-1",
2026-06-05T02:56:35.7384694Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-05T02:56:35.7385093Z       "requiredStages": [
2026-06-05T02:56:35.7385335Z         "impl",
2026-06-05T02:56:35.7385578Z         "unit",
2026-06-05T02:56:35.7385806Z         "int"
2026-06-05T02:56:35.7386042Z       ],
2026-06-05T02:56:35.7386276Z       "stages": {
2026-06-05T02:56:35.7386512Z         "doc": {
2026-06-05T02:56:35.7386771Z           "complete": false,
2026-06-05T02:56:35.7387029Z           "evidence": []
2026-06-05T02:56:35.7387261Z         },
2026-06-05T02:56:35.7387492Z         "impl": {
2026-06-05T02:56:35.7387755Z           "complete": true,
2026-06-05T02:56:35.7387996Z           "evidence": [
2026-06-05T02:56:35.7388227Z             {
2026-06-05T02:56:35.7388582Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7388844Z               "line": 438
2026-06-05T02:56:35.7389082Z             },
2026-06-05T02:56:35.7389359Z             {
2026-06-05T02:56:35.7389726Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7389969Z               "line": 30
2026-06-05T02:56:35.7390211Z             },
2026-06-05T02:56:35.7390436Z             {
2026-06-05T02:56:35.7390785Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7391034Z               "line": 62
2026-06-05T02:56:35.7391264Z             },
2026-06-05T02:56:35.7391501Z             {
2026-06-05T02:56:35.7391831Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7392079Z               "line": 83
2026-06-05T02:56:35.7392315Z             },
2026-06-05T02:56:35.7392542Z             {
2026-06-05T02:56:35.7392886Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7393125Z               "line": 97
2026-06-05T02:56:35.7393366Z             },
2026-06-05T02:56:35.7393607Z             {
2026-06-05T02:56:35.7393943Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7394198Z               "line": 126
2026-06-05T02:56:35.7394434Z             },
2026-06-05T02:56:35.7399244Z             {
2026-06-05T02:56:35.7399759Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7400036Z               "line": 167
2026-06-05T02:56:35.7400266Z             },
2026-06-05T02:56:35.7400510Z             {
2026-06-05T02:56:35.7400855Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7401113Z               "line": 213
2026-06-05T02:56:35.7401348Z             },
2026-06-05T02:56:35.7401581Z             {
2026-06-05T02:56:35.7401922Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7402169Z               "line": 273
2026-06-05T02:56:35.7402403Z             },
2026-06-05T02:56:35.7402641Z             {
2026-06-05T02:56:35.7402971Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7403259Z               "line": 321
2026-06-05T02:56:35.7403493Z             },
2026-06-05T02:56:35.7403726Z             {
2026-06-05T02:56:35.7404093Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7404348Z               "line": 24
2026-06-05T02:56:35.7404585Z             },
2026-06-05T02:56:35.7404813Z             {
2026-06-05T02:56:35.7405173Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7405415Z               "line": 34
2026-06-05T02:56:35.7405652Z             },
2026-06-05T02:56:35.7405879Z             {
2026-06-05T02:56:35.7406247Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7406494Z               "line": 55
2026-06-05T02:56:35.7406720Z             },
2026-06-05T02:56:35.7406963Z             {
2026-06-05T02:56:35.7407321Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7407570Z               "line": 76
2026-06-05T02:56:35.7407797Z             },
2026-06-05T02:56:35.7408282Z             {
2026-06-05T02:56:35.7408673Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7408920Z               "line": 88
2026-06-05T02:56:35.7409341Z             },
2026-06-05T02:56:35.7409578Z             {
2026-06-05T02:56:35.7409941Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-05T02:56:35.7410184Z               "line": 41
2026-06-05T02:56:35.7410421Z             },
2026-06-05T02:56:35.7410656Z             {
2026-06-05T02:56:35.7411006Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.7411257Z               "line": 94
2026-06-05T02:56:35.7411480Z             },
2026-06-05T02:56:35.7411713Z             {
2026-06-05T02:56:35.7412057Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.7412300Z               "line": 20
2026-06-05T02:56:35.7412537Z             },
2026-06-05T02:56:35.7412763Z             {
2026-06-05T02:56:35.7413115Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.7413363Z               "line": 30
2026-06-05T02:56:35.7413604Z             },
2026-06-05T02:56:35.7413843Z             {
2026-06-05T02:56:35.7414191Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.7414443Z               "line": 50
2026-06-05T02:56:35.7414672Z             },
2026-06-05T02:56:35.7414910Z             {
2026-06-05T02:56:35.7415238Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7415490Z               "line": 28
2026-06-05T02:56:35.7415729Z             },
2026-06-05T02:56:35.7415957Z             {
2026-06-05T02:56:35.7416299Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7416547Z               "line": 126
2026-06-05T02:56:35.7416785Z             },
2026-06-05T02:56:35.7417011Z             {
2026-06-05T02:56:35.7417348Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7417604Z               "line": 161
2026-06-05T02:56:35.7417836Z             },
2026-06-05T02:56:35.7418080Z             {
2026-06-05T02:56:35.7418404Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7418654Z               "line": 197
2026-06-05T02:56:35.7418892Z             },
2026-06-05T02:56:35.7419135Z             {
2026-06-05T02:56:35.7419514Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7419758Z               "line": 208
2026-06-05T02:56:35.7419990Z             },
2026-06-05T02:56:35.7420215Z             {
2026-06-05T02:56:35.7420555Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7420808Z               "line": 231
2026-06-05T02:56:35.7421051Z             },
2026-06-05T02:56:35.7421283Z             {
2026-06-05T02:56:35.7421605Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7421858Z               "line": 251
2026-06-05T02:56:35.7422088Z             },
2026-06-05T02:56:35.7422320Z             {
2026-06-05T02:56:35.7422665Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7422925Z               "line": 63
2026-06-05T02:56:35.7423162Z             }
2026-06-05T02:56:35.7423388Z           ]
2026-06-05T02:56:35.7423628Z         },
2026-06-05T02:56:35.7423861Z         "int": {
2026-06-05T02:56:35.7424122Z           "complete": true,
2026-06-05T02:56:35.7424361Z           "evidence": [
2026-06-05T02:56:35.7424594Z             {
2026-06-05T02:56:35.7424965Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7425211Z               "line": 265
2026-06-05T02:56:35.7425446Z             },
2026-06-05T02:56:35.7425672Z             {
2026-06-05T02:56:35.7426054Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-05T02:56:35.7426298Z               "line": 102
2026-06-05T02:56:35.7426536Z             },
2026-06-05T02:56:35.7426771Z             {
2026-06-05T02:56:35.7427121Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7427379Z               "line": 497
2026-06-05T02:56:35.7427608Z             },
2026-06-05T02:56:35.7428042Z             {
2026-06-05T02:56:35.7428421Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7428820Z               "line": 745
2026-06-05T02:56:35.7429056Z             }
2026-06-05T02:56:35.7429330Z           ]
2026-06-05T02:56:35.7429566Z         },
2026-06-05T02:56:35.7429804Z         "unit": {
2026-06-05T02:56:35.7430069Z           "complete": true,
2026-06-05T02:56:35.7430315Z           "evidence": [
2026-06-05T02:56:35.7430551Z             {
2026-06-05T02:56:35.7430895Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7431139Z               "line": 396
2026-06-05T02:56:35.7431374Z             },
2026-06-05T02:56:35.7431598Z             {
2026-06-05T02:56:35.7431938Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7432191Z               "line": 434
2026-06-05T02:56:35.7432421Z             },
2026-06-05T02:56:35.7432655Z             {
2026-06-05T02:56:35.7433005Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7433264Z               "line": 515
2026-06-05T02:56:35.7433488Z             },
2026-06-05T02:56:35.7433729Z             {
2026-06-05T02:56:35.7434070Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7434317Z               "line": 536
2026-06-05T02:56:35.7434552Z             },
2026-06-05T02:56:35.7434775Z             {
2026-06-05T02:56:35.7435110Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7435352Z               "line": 589
2026-06-05T02:56:35.7435590Z             },
2026-06-05T02:56:35.7435818Z             {
2026-06-05T02:56:35.7436151Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7436403Z               "line": 628
2026-06-05T02:56:35.7436632Z             },
2026-06-05T02:56:35.7436868Z             {
2026-06-05T02:56:35.7437196Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7437449Z               "line": 720
2026-06-05T02:56:35.7437684Z             },
2026-06-05T02:56:35.7437925Z             {
2026-06-05T02:56:35.7438296Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7438545Z               "line": 133
2026-06-05T02:56:35.7438782Z             },
2026-06-05T02:56:35.7439011Z             {
2026-06-05T02:56:35.7439423Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7439682Z               "line": 208
2026-06-05T02:56:35.7439907Z             },
2026-06-05T02:56:35.7440136Z             {
2026-06-05T02:56:35.7440497Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-05T02:56:35.7440755Z               "line": 227
2026-06-05T02:56:35.7440981Z             },
2026-06-05T02:56:35.7441216Z             {
2026-06-05T02:56:35.7441578Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.7441823Z               "line": 332
2026-06-05T02:56:35.7442070Z             },
2026-06-05T02:56:35.7442299Z             {
2026-06-05T02:56:35.7442661Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-05T02:56:35.7442905Z               "line": 361
2026-06-05T02:56:35.7443140Z             },
2026-06-05T02:56:35.7447897Z             {
2026-06-05T02:56:35.7448424Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-05T02:56:35.7448686Z               "line": 112
2026-06-05T02:56:35.7448917Z             },
2026-06-05T02:56:35.7449147Z             {
2026-06-05T02:56:35.7449566Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.7449813Z               "line": 72
2026-06-05T02:56:35.7450050Z             },
2026-06-05T02:56:35.7450278Z             {
2026-06-05T02:56:35.7450626Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-05T02:56:35.7450867Z               "line": 94
2026-06-05T02:56:35.7451101Z             },
2026-06-05T02:56:35.7451335Z             {
2026-06-05T02:56:35.7451661Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7451913Z               "line": 365
2026-06-05T02:56:35.7452401Z             },
2026-06-05T02:56:35.7452662Z             {
2026-06-05T02:56:35.7452993Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7453398Z               "line": 396
2026-06-05T02:56:35.7453635Z             },
2026-06-05T02:56:35.7453858Z             {
2026-06-05T02:56:35.7454195Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7454437Z               "line": 410
2026-06-05T02:56:35.7454673Z             },
2026-06-05T02:56:35.7454898Z             {
2026-06-05T02:56:35.7455228Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7455478Z               "line": 441
2026-06-05T02:56:35.7455708Z             },
2026-06-05T02:56:35.7455941Z             {
2026-06-05T02:56:35.7456264Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7456520Z               "line": 458
2026-06-05T02:56:35.7456750Z             },
2026-06-05T02:56:35.7456981Z             {
2026-06-05T02:56:35.7457325Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7457571Z               "line": 483
2026-06-05T02:56:35.7457808Z             },
2026-06-05T02:56:35.7458040Z             {
2026-06-05T02:56:35.7458371Z               "path": "crates/spt-store/src/notif.rs",
2026-06-05T02:56:35.7458615Z               "line": 507
2026-06-05T02:56:35.7458849Z             },
2026-06-05T02:56:35.7459083Z             {
2026-06-05T02:56:35.7459499Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7459756Z               "line": 427
2026-06-05T02:56:35.7459984Z             }
2026-06-05T02:56:35.7460222Z           ]
2026-06-05T02:56:35.7460442Z         }
2026-06-05T02:56:35.7460678Z       }
2026-06-05T02:56:35.7460905Z     },
2026-06-05T02:56:35.7461128Z     {
2026-06-05T02:56:35.7461396Z       "id": "REQ-NOTIF-2",
2026-06-05T02:56:35.7462212Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-05T02:56:35.7462482Z       "requiredStages": [
2026-06-05T02:56:35.7462717Z         "doc",
2026-06-05T02:56:35.7462955Z         "impl",
2026-06-05T02:56:35.7463192Z         "unit"
2026-06-05T02:56:35.7463428Z       ],
2026-06-05T02:56:35.7463669Z       "stages": {
2026-06-05T02:56:35.7463898Z         "doc": {
2026-06-05T02:56:35.7464158Z           "complete": true,
2026-06-05T02:56:35.7464395Z           "evidence": [
2026-06-05T02:56:35.7464629Z             {
2026-06-05T02:56:35.7464925Z               "path": "docs/MANIFEST.md",
2026-06-05T02:56:35.7465162Z               "line": 62
2026-06-05T02:56:35.7465391Z             }
2026-06-05T02:56:35.7465612Z           ]
2026-06-05T02:56:35.7465843Z         },
2026-06-05T02:56:35.7466074Z         "impl": {
2026-06-05T02:56:35.7466338Z           "complete": true,
2026-06-05T02:56:35.7466588Z           "evidence": [
2026-06-05T02:56:35.7466811Z             {
2026-06-05T02:56:35.7467153Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7467394Z               "line": 242
2026-06-05T02:56:35.7467637Z             },
2026-06-05T02:56:35.7467865Z             {
2026-06-05T02:56:35.7468216Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7468475Z               "line": 256
2026-06-05T02:56:35.7468702Z             },
2026-06-05T02:56:35.7468934Z             {
2026-06-05T02:56:35.7469333Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.7469596Z               "line": 125
2026-06-05T02:56:35.7469823Z             },
2026-06-05T02:56:35.7470057Z             {
2026-06-05T02:56:35.7470410Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7470650Z               "line": 72
2026-06-05T02:56:35.7470880Z             },
2026-06-05T02:56:35.7471104Z             {
2026-06-05T02:56:35.7471416Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7471665Z               "line": 908
2026-06-05T02:56:35.7471890Z             },
2026-06-05T02:56:35.7472121Z             {
2026-06-05T02:56:35.7472572Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7472848Z               "line": 940
2026-06-05T02:56:35.7473074Z             },
2026-06-05T02:56:35.7473437Z             {
2026-06-05T02:56:35.7473746Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7473997Z               "line": 1012
2026-06-05T02:56:35.7474233Z             },
2026-06-05T02:56:35.7474460Z             {
2026-06-05T02:56:35.7474766Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7475011Z               "line": 1048
2026-06-05T02:56:35.7475250Z             }
2026-06-05T02:56:35.7475485Z           ]
2026-06-05T02:56:35.7475710Z         },
2026-06-05T02:56:35.7475948Z         "int": {
2026-06-05T02:56:35.7476206Z           "complete": false,
2026-06-05T02:56:35.7476464Z           "evidence": []
2026-06-05T02:56:35.7476691Z         },
2026-06-05T02:56:35.7476930Z         "unit": {
2026-06-05T02:56:35.7477189Z           "complete": true,
2026-06-05T02:56:35.7477427Z           "evidence": [
2026-06-05T02:56:35.7477671Z             {
2026-06-05T02:56:35.7478009Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7478265Z               "line": 678
2026-06-05T02:56:35.7478507Z             },
2026-06-05T02:56:35.7478748Z             {
2026-06-05T02:56:35.7479052Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7479352Z               "line": 2566
2026-06-05T02:56:35.7479592Z             },
2026-06-05T02:56:35.7479813Z             {
2026-06-05T02:56:35.7480118Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7480360Z               "line": 2588
2026-06-05T02:56:35.7480603Z             }
2026-06-05T02:56:35.7480835Z           ]
2026-06-05T02:56:35.7481061Z         }
2026-06-05T02:56:35.7481293Z       }
2026-06-05T02:56:35.7481515Z     },
2026-06-05T02:56:35.7481745Z     {
2026-06-05T02:56:35.7482002Z       "id": "REQ-PAIR-1",
2026-06-05T02:56:35.7482320Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-05T02:56:35.7482579Z       "requiredStages": [
2026-06-05T02:56:35.7482818Z         "impl",
2026-06-05T02:56:35.7483054Z         "unit",
2026-06-05T02:56:35.7483284Z         "int"
2026-06-05T02:56:35.7483511Z       ],
2026-06-05T02:56:35.7483750Z       "stages": {
2026-06-05T02:56:35.7483991Z         "doc": {
2026-06-05T02:56:35.7484245Z           "complete": false,
2026-06-05T02:56:35.7484495Z           "evidence": []
2026-06-05T02:56:35.7484732Z         },
2026-06-05T02:56:35.7484963Z         "impl": {
2026-06-05T02:56:35.7485222Z           "complete": true,
2026-06-05T02:56:35.7485464Z           "evidence": [
2026-06-05T02:56:35.7485697Z             {
2026-06-05T02:56:35.7486088Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7486340Z               "line": 27
2026-06-05T02:56:35.7486573Z             },
2026-06-05T02:56:35.7486795Z             {
2026-06-05T02:56:35.7487179Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7487419Z               "line": 88
2026-06-05T02:56:35.7487655Z             },
2026-06-05T02:56:35.7487898Z             {
2026-06-05T02:56:35.7488285Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7488547Z               "line": 110
2026-06-05T02:56:35.7488770Z             },
2026-06-05T02:56:35.7489003Z             {
2026-06-05T02:56:35.7489421Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7489679Z               "line": 153
2026-06-05T02:56:35.7489919Z             },
2026-06-05T02:56:35.7490139Z             {
2026-06-05T02:56:35.7490532Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7490772Z               "line": 182
2026-06-05T02:56:35.7495514Z             },
2026-06-05T02:56:35.7495897Z             {
2026-06-05T02:56:35.7496343Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7496622Z               "line": 29
2026-06-05T02:56:35.7496862Z             },
2026-06-05T02:56:35.7497113Z             {
2026-06-05T02:56:35.7497803Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-05T02:56:35.7498108Z               "line": 31
2026-06-05T02:56:35.7498350Z             },
2026-06-05T02:56:35.7498754Z             {
2026-06-05T02:56:35.7499222Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7499516Z               "line": 40
2026-06-05T02:56:35.7499771Z             },
2026-06-05T02:56:35.7500016Z             {
2026-06-05T02:56:35.7500413Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7500667Z               "line": 131
2026-06-05T02:56:35.7500914Z             },
2026-06-05T02:56:35.7501161Z             {
2026-06-05T02:56:35.7501538Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7501803Z               "line": 306
2026-06-05T02:56:35.7502038Z             }
2026-06-05T02:56:35.7502283Z           ]
2026-06-05T02:56:35.7502521Z         },
2026-06-05T02:56:35.7502772Z         "int": {
2026-06-05T02:56:35.7503053Z           "complete": true,
2026-06-05T02:56:35.7503305Z           "evidence": [
2026-06-05T02:56:35.7503546Z             {
2026-06-05T02:56:35.7503916Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7504181Z               "line": 433
2026-06-05T02:56:35.7504419Z             },
2026-06-05T02:56:35.7504664Z             {
2026-06-05T02:56:35.7505039Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7505291Z               "line": 549
2026-06-05T02:56:35.7505535Z             }
2026-06-05T02:56:35.7505777Z           ]
2026-06-05T02:56:35.7506026Z         },
2026-06-05T02:56:35.7506268Z         "unit": {
2026-06-05T02:56:35.7506538Z           "complete": true,
2026-06-05T02:56:35.7506795Z           "evidence": [
2026-06-05T02:56:35.7507032Z             {
2026-06-05T02:56:35.7507424Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7507678Z               "line": 236
2026-06-05T02:56:35.7507923Z             },
2026-06-05T02:56:35.7508176Z             {
2026-06-05T02:56:35.7508564Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-05T02:56:35.7508835Z               "line": 349
2026-06-05T02:56:35.7509074Z             },
2026-06-05T02:56:35.7509366Z             {
2026-06-05T02:56:35.7509758Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7510027Z               "line": 194
2026-06-05T02:56:35.7510279Z             },
2026-06-05T02:56:35.7510521Z             {
2026-06-05T02:56:35.7510906Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7511158Z               "line": 216
2026-06-05T02:56:35.7511412Z             },
2026-06-05T02:56:35.7511667Z             {
2026-06-05T02:56:35.7512082Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7512347Z               "line": 230
2026-06-05T02:56:35.7512589Z             },
2026-06-05T02:56:35.7512833Z             {
2026-06-05T02:56:35.7513228Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7513494Z               "line": 242
2026-06-05T02:56:35.7513734Z             },
2026-06-05T02:56:35.7513988Z             {
2026-06-05T02:56:35.7514379Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7514631Z               "line": 256
2026-06-05T02:56:35.7514883Z             },
2026-06-05T02:56:35.7515122Z             {
2026-06-05T02:56:35.7515506Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7515758Z               "line": 270
2026-06-05T02:56:35.7516004Z             },
2026-06-05T02:56:35.7516248Z             {
2026-06-05T02:56:35.7516630Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7516896Z               "line": 277
2026-06-05T02:56:35.7517143Z             },
2026-06-05T02:56:35.7517388Z             {
2026-06-05T02:56:35.7517767Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-05T02:56:35.7518228Z               "line": 295
2026-06-05T02:56:35.7518505Z             },
2026-06-05T02:56:35.7518741Z             {
2026-06-05T02:56:35.7519132Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7519611Z               "line": 696
2026-06-05T02:56:35.7519875Z             },
2026-06-05T02:56:35.7520123Z             {
2026-06-05T02:56:35.7520497Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7520761Z               "line": 757
2026-06-05T02:56:35.7521000Z             },
2026-06-05T02:56:35.7521246Z             {
2026-06-05T02:56:35.7521619Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7521886Z               "line": 814
2026-06-05T02:56:35.7522136Z             },
2026-06-05T02:56:35.7522372Z             {
2026-06-05T02:56:35.7522754Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7523012Z               "line": 868
2026-06-05T02:56:35.7523258Z             },
2026-06-05T02:56:35.7523506Z             {
2026-06-05T02:56:35.7523894Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7524164Z               "line": 920
2026-06-05T02:56:35.7524414Z             },
2026-06-05T02:56:35.7524665Z             {
2026-06-05T02:56:35.7525039Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7525309Z               "line": 1084
2026-06-05T02:56:35.7525550Z             }
2026-06-05T02:56:35.7525799Z           ]
2026-06-05T02:56:35.7526044Z         }
2026-06-05T02:56:35.7526277Z       }
2026-06-05T02:56:35.7526526Z     },
2026-06-05T02:56:35.7526755Z     {
2026-06-05T02:56:35.7527027Z       "id": "REQ-PAIR-2",
2026-06-05T02:56:35.7527435Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-05T02:56:35.7527714Z       "requiredStages": [
2026-06-05T02:56:35.7527969Z         "impl",
2026-06-05T02:56:35.7528217Z         "unit"
2026-06-05T02:56:35.7528467Z       ],
2026-06-05T02:56:35.7528718Z       "stages": {
2026-06-05T02:56:35.7528976Z         "doc": {
2026-06-05T02:56:35.7529291Z           "complete": false,
2026-06-05T02:56:35.7529561Z           "evidence": []
2026-06-05T02:56:35.7529818Z         },
2026-06-05T02:56:35.7530063Z         "impl": {
2026-06-05T02:56:35.7530338Z           "complete": true,
2026-06-05T02:56:35.7530588Z           "evidence": [
2026-06-05T02:56:35.7530834Z             {
2026-06-05T02:56:35.7531176Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7531445Z               "line": 42
2026-06-05T02:56:35.7531695Z             },
2026-06-05T02:56:35.7531929Z             {
2026-06-05T02:56:35.7532271Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7532532Z               "line": 151
2026-06-05T02:56:35.7532781Z             },
2026-06-05T02:56:35.7533172Z             {
2026-06-05T02:56:35.7533605Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7534078Z               "line": 171
2026-06-05T02:56:35.7534494Z             },
2026-06-05T02:56:35.7534815Z             {
2026-06-05T02:56:35.7535781Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7536724Z               "line": 209
2026-06-05T02:56:35.7537390Z             },
2026-06-05T02:56:35.7537942Z             {
2026-06-05T02:56:35.7538616Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7539834Z               "line": 232
2026-06-05T02:56:35.7540855Z             }
2026-06-05T02:56:35.7541579Z           ]
2026-06-05T02:56:35.7542343Z         },
2026-06-05T02:56:35.7543028Z         "int": {
2026-06-05T02:56:35.7552980Z           "complete": false,
2026-06-05T02:56:35.7553943Z           "evidence": []
2026-06-05T02:56:35.7554837Z         },
2026-06-05T02:56:35.7555510Z         "unit": {
2026-06-05T02:56:35.7556236Z           "complete": true,
2026-06-05T02:56:35.7556951Z           "evidence": [
2026-06-05T02:56:35.7557638Z             {
2026-06-05T02:56:35.7558452Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7560742Z               "line": 253
2026-06-05T02:56:35.7561470Z             },
2026-06-05T02:56:35.7562080Z             {
2026-06-05T02:56:35.7562988Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7564019Z               "line": 272
2026-06-05T02:56:35.7564712Z             },
2026-06-05T02:56:35.7565303Z             {
2026-06-05T02:56:35.7565986Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7566881Z               "line": 284
2026-06-05T02:56:35.7567586Z             },
2026-06-05T02:56:35.7568447Z             {
2026-06-05T02:56:35.7569317Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7570356Z               "line": 303
2026-06-05T02:56:35.7570986Z             },
2026-06-05T02:56:35.7571553Z             {
2026-06-05T02:56:35.7572549Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7573384Z               "line": 319
2026-06-05T02:56:35.7574032Z             },
2026-06-05T02:56:35.7574591Z             {
2026-06-05T02:56:35.7575404Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7576249Z               "line": 331
2026-06-05T02:56:35.7577065Z             },
2026-06-05T02:56:35.7577639Z             {
2026-06-05T02:56:35.7578304Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7579133Z               "line": 343
2026-06-05T02:56:35.7579830Z             },
2026-06-05T02:56:35.7580397Z             {
2026-06-05T02:56:35.7581048Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7581870Z               "line": 356
2026-06-05T02:56:35.7582503Z             },
2026-06-05T02:56:35.7583055Z             {
2026-06-05T02:56:35.7583701Z               "path": "crates/spt-store/src/trust.rs",
2026-06-05T02:56:35.7584531Z               "line": 370
2026-06-05T02:56:35.7585178Z             }
2026-06-05T02:56:35.7585729Z           ]
2026-06-05T02:56:35.7586267Z         }
2026-06-05T02:56:35.7586794Z       }
2026-06-05T02:56:35.7587309Z     },
2026-06-05T02:56:35.7587847Z     {
2026-06-05T02:56:35.7588398Z       "id": "REQ-PAIR-3",
2026-06-05T02:56:35.7589297Z       "title": "Fetch current pairing code from any paired node",
2026-06-05T02:56:35.7590263Z       "requiredStages": [
2026-06-05T02:56:35.7590931Z         "impl",
2026-06-05T02:56:35.7591503Z         "unit"
2026-06-05T02:56:35.7592073Z       ],
2026-06-05T02:56:35.7592609Z       "stages": {
2026-06-05T02:56:35.7593227Z         "doc": {
2026-06-05T02:56:35.7593831Z           "complete": false,
2026-06-05T02:56:35.7594521Z           "evidence": []
2026-06-05T02:56:35.7595148Z         },
2026-06-05T02:56:35.7595694Z         "impl": {
2026-06-05T02:56:35.7596312Z           "complete": true,
2026-06-05T02:56:35.7596969Z           "evidence": [
2026-06-05T02:56:35.7597587Z             {
2026-06-05T02:56:35.7598210Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7599000Z               "line": 1324
2026-06-05T02:56:35.7599675Z             },
2026-06-05T02:56:35.7600239Z             {
2026-06-05T02:56:35.7600877Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7601687Z               "line": 1360
2026-06-05T02:56:35.7602332Z             },
2026-06-05T02:56:35.7602887Z             {
2026-06-05T02:56:35.7603512Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7604316Z               "line": 1420
2026-06-05T02:56:35.7604960Z             }
2026-06-05T02:56:35.7605521Z           ]
2026-06-05T02:56:35.7606191Z         },
2026-06-05T02:56:35.7606743Z         "int": {
2026-06-05T02:56:35.7607361Z           "complete": false,
2026-06-05T02:56:35.7615225Z           "evidence": []
2026-06-05T02:56:35.7616044Z         },
2026-06-05T02:56:35.7616645Z         "unit": {
2026-06-05T02:56:35.7617754Z           "complete": true,
2026-06-05T02:56:35.7618519Z           "evidence": [
2026-06-05T02:56:35.7619352Z             {
2026-06-05T02:56:35.7620130Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7621221Z               "line": 3584
2026-06-05T02:56:35.7622399Z             },
2026-06-05T02:56:35.7623574Z             {
2026-06-05T02:56:35.7624410Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7625520Z               "line": 3601
2026-06-05T02:56:35.7626489Z             },
2026-06-05T02:56:35.7627183Z             {
2026-06-05T02:56:35.7627980Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7628788Z               "line": 3615
2026-06-05T02:56:35.7629657Z             },
2026-06-05T02:56:35.7630247Z             {
2026-06-05T02:56:35.7630884Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7631696Z               "line": 3631
2026-06-05T02:56:35.7632348Z             },
2026-06-05T02:56:35.7632921Z             {
2026-06-05T02:56:35.7633564Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7634375Z               "line": 3652
2026-06-05T02:56:35.7635012Z             },
2026-06-05T02:56:35.7635574Z             {
2026-06-05T02:56:35.7636326Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7637137Z               "line": 3668
2026-06-05T02:56:35.7637780Z             },
2026-06-05T02:56:35.7638338Z             {
2026-06-05T02:56:35.7638979Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7639842Z               "line": 3681
2026-06-05T02:56:35.7640476Z             },
2026-06-05T02:56:35.7641039Z             {
2026-06-05T02:56:35.7641661Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7642456Z               "line": 3690
2026-06-05T02:56:35.7643091Z             }
2026-06-05T02:56:35.7643650Z           ]
2026-06-05T02:56:35.7644195Z         }
2026-06-05T02:56:35.7644724Z       }
2026-06-05T02:56:35.7645259Z     },
2026-06-05T02:56:35.7645778Z     {
2026-06-05T02:56:35.7646321Z       "id": "REQ-PAIR-4",
2026-06-05T02:56:35.7647048Z       "title": "Subnet naming on first pairing",
2026-06-05T02:56:35.7647883Z       "requiredStages": [
2026-06-05T02:56:35.7648536Z         "impl",
2026-06-05T02:56:35.7649111Z         "unit"
2026-06-05T02:56:35.7649733Z       ],
2026-06-05T02:56:35.7650292Z       "stages": {
2026-06-05T02:56:35.7650867Z         "doc": {
2026-06-05T02:56:35.7651462Z           "complete": false,
2026-06-05T02:56:35.7652153Z           "evidence": []
2026-06-05T02:56:35.7652785Z         },
2026-06-05T02:56:35.7653325Z         "impl": {
2026-06-05T02:56:35.7653937Z           "complete": true,
2026-06-05T02:56:35.7654613Z           "evidence": [
2026-06-05T02:56:35.7655244Z             {
2026-06-05T02:56:35.7655932Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-05T02:56:35.7656762Z               "line": 154
2026-06-05T02:56:35.7657391Z             }
2026-06-05T02:56:35.7657954Z           ]
2026-06-05T02:56:35.7658500Z         },
2026-06-05T02:56:35.7659039Z         "int": {
2026-06-05T02:56:35.7659698Z           "complete": false,
2026-06-05T02:56:35.7660388Z           "evidence": []
2026-06-05T02:56:35.7661018Z         },
2026-06-05T02:56:35.7661575Z         "unit": {
2026-06-05T02:56:35.7662178Z           "complete": true,
2026-06-05T02:56:35.7662864Z           "evidence": [
2026-06-05T02:56:35.7663478Z             {
2026-06-05T02:56:35.7664188Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7665082Z               "line": 972
2026-06-05T02:56:35.7665713Z             }
2026-06-05T02:56:35.7666269Z           ]
2026-06-05T02:56:35.7666818Z         }
2026-06-05T02:56:35.7667355Z       }
2026-06-05T02:56:35.7667874Z     },
2026-06-05T02:56:35.7668395Z     {
2026-06-05T02:56:35.7668949Z       "id": "REQ-PAIR-5",
2026-06-05T02:56:35.7670340Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-05T02:56:35.7671816Z       "requiredStages": [
2026-06-05T02:56:35.7679427Z         "impl",
2026-06-05T02:56:35.7680253Z         "unit",
2026-06-05T02:56:35.7680839Z         "int"
2026-06-05T02:56:35.7681388Z       ],
2026-06-05T02:56:35.7681921Z       "stages": {
2026-06-05T02:56:35.7682511Z         "doc": {
2026-06-05T02:56:35.7683532Z           "complete": false,
2026-06-05T02:56:35.7684255Z           "evidence": []
2026-06-05T02:56:35.7684880Z         },
2026-06-05T02:56:35.7685642Z         "impl": {
2026-06-05T02:56:35.7686244Z           "complete": true,
2026-06-05T02:56:35.7686913Z           "evidence": [
2026-06-05T02:56:35.7687516Z             {
2026-06-05T02:56:35.7688250Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7689234Z               "line": 33
2026-06-05T02:56:35.7689868Z             },
2026-06-05T02:56:35.7690424Z             {
2026-06-05T02:56:35.7691159Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7692079Z               "line": 45
2026-06-05T02:56:35.7692717Z             },
2026-06-05T02:56:35.7693269Z             {
2026-06-05T02:56:35.7693993Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7694905Z               "line": 59
2026-06-05T02:56:35.7695516Z             },
2026-06-05T02:56:35.7696077Z             {
2026-06-05T02:56:35.7696758Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7697624Z               "line": 306
2026-06-05T02:56:35.7698264Z             }
2026-06-05T02:56:35.7698813Z           ]
2026-06-05T02:56:35.7699388Z         },
2026-06-05T02:56:35.7699926Z         "int": {
2026-06-05T02:56:35.7700523Z           "complete": true,
2026-06-05T02:56:35.7701187Z           "evidence": [
2026-06-05T02:56:35.7701795Z             {
2026-06-05T02:56:35.7702466Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7703320Z               "line": 549
2026-06-05T02:56:35.7703932Z             }
2026-06-05T02:56:35.7704484Z           ]
2026-06-05T02:56:35.7705013Z         },
2026-06-05T02:56:35.7705542Z         "unit": {
2026-06-05T02:56:35.7706126Z           "complete": true,
2026-06-05T02:56:35.7706844Z           "evidence": [
2026-06-05T02:56:35.7707449Z             {
2026-06-05T02:56:35.7708190Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7709115Z               "line": 72
2026-06-05T02:56:35.7709787Z             },
2026-06-05T02:56:35.7710351Z             {
2026-06-05T02:56:35.7711086Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7712004Z               "line": 82
2026-06-05T02:56:35.7712620Z             },
2026-06-05T02:56:35.7713169Z             {
2026-06-05T02:56:35.7713901Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7714827Z               "line": 92
2026-06-05T02:56:35.7715445Z             },
2026-06-05T02:56:35.7715992Z             {
2026-06-05T02:56:35.7716719Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7717637Z               "line": 102
2026-06-05T02:56:35.7718267Z             },
2026-06-05T02:56:35.7718812Z             {
2026-06-05T02:56:35.7719608Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-05T02:56:35.7720545Z               "line": 117
2026-06-05T02:56:35.7721186Z             },
2026-06-05T02:56:35.7721737Z             {
2026-06-05T02:56:35.7722427Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7723308Z               "line": 750
2026-06-05T02:56:35.7723926Z             },
2026-06-05T02:56:35.7724475Z             {
2026-06-05T02:56:35.7725162Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7726038Z               "line": 806
2026-06-05T02:56:35.7726660Z             },
2026-06-05T02:56:35.7727214Z             {
2026-06-05T02:56:35.7727909Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-05T02:56:35.7728777Z               "line": 1026
2026-06-05T02:56:35.7729453Z             }
2026-06-05T02:56:35.7730000Z           ]
2026-06-05T02:56:35.7730536Z         }
2026-06-05T02:56:35.7731056Z       }
2026-06-05T02:56:35.7731574Z     },
2026-06-05T02:56:35.7732089Z     {
2026-06-05T02:56:35.7732622Z       "id": "REQ-PAIR-6",
2026-06-05T02:56:35.7734019Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-05T02:56:35.7735482Z       "requiredStages": [
2026-06-05T02:56:35.7742010Z         "impl",
2026-06-05T02:56:35.7742645Z         "unit"
2026-06-05T02:56:35.7743208Z       ],
2026-06-05T02:56:35.7743748Z       "stages": {
2026-06-05T02:56:35.7744329Z         "doc": {
2026-06-05T02:56:35.7744918Z           "complete": false,
2026-06-05T02:56:35.7745595Z           "evidence": []
2026-06-05T02:56:35.7746207Z         },
2026-06-05T02:56:35.7746742Z         "impl": {
2026-06-05T02:56:35.7747331Z           "complete": true,
2026-06-05T02:56:35.7747985Z           "evidence": [
2026-06-05T02:56:35.7748582Z             {
2026-06-05T02:56:35.7749259Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7750050Z               "line": 1360
2026-06-05T02:56:35.7750672Z             },
2026-06-05T02:56:35.7751218Z             {
2026-06-05T02:56:35.7751842Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7752625Z               "line": 1420
2026-06-05T02:56:35.7753252Z             },
2026-06-05T02:56:35.7753820Z             {
2026-06-05T02:56:35.7754443Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T02:56:35.7755257Z               "line": 18
2026-06-05T02:56:35.7755874Z             },
2026-06-05T02:56:35.7756433Z             {
2026-06-05T02:56:35.7757061Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T02:56:35.7757851Z               "line": 49
2026-06-05T02:56:35.7758466Z             },
2026-06-05T02:56:35.7759011Z             {
2026-06-05T02:56:35.7759686Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T02:56:35.7760495Z               "line": 70
2026-06-05T02:56:35.7761112Z             }
2026-06-05T02:56:35.7761647Z           ]
2026-06-05T02:56:35.7762173Z         },
2026-06-05T02:56:35.7762698Z         "int": {
2026-06-05T02:56:35.7763277Z           "complete": false,
2026-06-05T02:56:35.7763963Z           "evidence": []
2026-06-05T02:56:35.7764574Z         },
2026-06-05T02:56:35.7765114Z         "unit": {
2026-06-05T02:56:35.7765724Z           "complete": true,
2026-06-05T02:56:35.7766387Z           "evidence": [
2026-06-05T02:56:35.7766985Z             {
2026-06-05T02:56:35.7767603Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7768384Z               "line": 3703
2026-06-05T02:56:35.7769018Z             },
2026-06-05T02:56:35.7769604Z             {
2026-06-05T02:56:35.7770218Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.7771006Z               "line": 3720
2026-06-05T02:56:35.7771632Z             },
2026-06-05T02:56:35.7772183Z             {
2026-06-05T02:56:35.7772820Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T02:56:35.7773634Z               "line": 132
2026-06-05T02:56:35.7774257Z             },
2026-06-05T02:56:35.7774812Z             {
2026-06-05T02:56:35.7775447Z               "path": "crates/spt/src/elevation.rs",
2026-06-05T02:56:35.7776262Z               "line": 141
2026-06-05T02:56:35.7776900Z             }
2026-06-05T02:56:35.7777450Z           ]
2026-06-05T02:56:35.7777973Z         }
2026-06-05T02:56:35.7778509Z       }
2026-06-05T02:56:35.7779018Z     },
2026-06-05T02:56:35.7779587Z     {
2026-06-05T02:56:35.7780138Z       "id": "REQ-PAIR-7",
2026-06-05T02:56:35.7781007Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-05T02:56:35.7782010Z       "requiredStages": [],
2026-06-05T02:56:35.7782668Z       "stages": {
2026-06-05T02:56:35.7783235Z         "doc": {
2026-06-05T02:56:35.7783833Z           "complete": false,
2026-06-05T02:56:35.7784510Z           "evidence": []
2026-06-05T02:56:35.7785123Z         },
2026-06-05T02:56:35.7785664Z         "impl": {
2026-06-05T02:56:35.7786258Z           "complete": false,
2026-06-05T02:56:35.7786938Z           "evidence": []
2026-06-05T02:56:35.7787564Z         },
2026-06-05T02:56:35.7788092Z         "int": {
2026-06-05T02:56:35.7788684Z           "complete": false,
2026-06-05T02:56:35.7789643Z           "evidence": []
2026-06-05T02:56:35.7790294Z         },
2026-06-05T02:56:35.7790833Z         "unit": {
2026-06-05T02:56:35.7791576Z           "complete": false,
2026-06-05T02:56:35.7792258Z           "evidence": []
2026-06-05T02:56:35.7792882Z         }
2026-06-05T02:56:35.7798863Z       }
2026-06-05T02:56:35.7799976Z     },
2026-06-05T02:56:35.7800535Z     {
2026-06-05T02:56:35.7801119Z       "id": "REQ-PRES-1",
2026-06-05T02:56:35.7805795Z       "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-05T02:56:35.7810013Z       "requiredStages": [
2026-06-05T02:56:35.7810688Z         "impl",
2026-06-05T02:56:35.7811312Z         "unit",
2026-06-05T02:56:35.7811900Z         "int"
2026-06-05T02:56:35.7812467Z       ],
2026-06-05T02:56:35.7813039Z       "stages": {
2026-06-05T02:56:35.7813626Z         "doc": {
2026-06-05T02:56:35.7814240Z           "complete": true,
2026-06-05T02:56:35.7814922Z           "evidence": [
2026-06-05T02:56:35.7815539Z             {
2026-06-05T02:56:35.7816170Z               "path": "docs/DEFERRED.md",
2026-06-05T02:56:35.7816928Z               "line": 11
2026-06-05T02:56:35.7817563Z             }
2026-06-05T02:56:35.7818132Z           ]
2026-06-05T02:56:35.7818686Z         },
2026-06-05T02:56:35.7819278Z         "impl": {
2026-06-05T02:56:35.7819896Z           "complete": true,
2026-06-05T02:56:35.7820572Z           "evidence": [
2026-06-05T02:56:35.7821214Z             {
2026-06-05T02:56:35.7821898Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7822756Z               "line": 439
2026-06-05T02:56:35.7823394Z             },
2026-06-05T02:56:35.7823979Z             {
2026-06-05T02:56:35.7824664Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-05T02:56:35.7825515Z               "line": 487
2026-06-05T02:56:35.7826148Z             },
2026-06-05T02:56:35.7826718Z             {
2026-06-05T02:56:35.7827396Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7828226Z               "line": 168
2026-06-05T02:56:35.7828862Z             },
2026-06-05T02:56:35.7829477Z             {
2026-06-05T02:56:35.7830151Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7830993Z               "line": 186
2026-06-05T02:56:35.7831642Z             },
2026-06-05T02:56:35.7832216Z             {
2026-06-05T02:56:35.7832916Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7833753Z               "line": 28
2026-06-05T02:56:35.7834385Z             },
2026-06-05T02:56:35.7834960Z             {
2026-06-05T02:56:35.7835654Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7836496Z               "line": 99
2026-06-05T02:56:35.7837132Z             },
2026-06-05T02:56:35.7837710Z             {
2026-06-05T02:56:35.7838406Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7839284Z               "line": 153
2026-06-05T02:56:35.7839937Z             },
2026-06-05T02:56:35.7840515Z             {
2026-06-05T02:56:35.7841199Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7842043Z               "line": 172
2026-06-05T02:56:35.7842710Z             },
2026-06-05T02:56:35.7843327Z             {
2026-06-05T02:56:35.7844045Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7844930Z               "line": 251
2026-06-05T02:56:35.7845569Z             },
2026-06-05T02:56:35.7846115Z             {
2026-06-05T02:56:35.7846780Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.7847615Z               "line": 282
2026-06-05T02:56:35.7848499Z             },
2026-06-05T02:56:35.7849087Z             {
2026-06-05T02:56:35.7849796Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.7850791Z               "line": 329
2026-06-05T02:56:35.7851410Z             },
2026-06-05T02:56:35.7851955Z             {
2026-06-05T02:56:35.7852616Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.7853440Z               "line": 355
2026-06-05T02:56:35.7854056Z             },
2026-06-05T02:56:35.7854609Z             {
2026-06-05T02:56:35.7855268Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7856094Z               "line": 100
2026-06-05T02:56:35.7856701Z             }
2026-06-05T02:56:35.7857236Z           ]
2026-06-05T02:56:35.7857763Z         },
2026-06-05T02:56:35.7858305Z         "int": {
2026-06-05T02:56:35.7858886Z           "complete": true,
2026-06-05T02:56:35.7859582Z           "evidence": [
2026-06-05T02:56:35.7860191Z             {
2026-06-05T02:56:35.7860879Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7867675Z               "line": 517
2026-06-05T02:56:35.7868340Z             }
2026-06-05T02:56:35.7868949Z           ]
2026-06-05T02:56:35.7869598Z         },
2026-06-05T02:56:35.7870154Z         "unit": {
2026-06-05T02:56:35.7870764Z           "complete": true,
2026-06-05T02:56:35.7871437Z           "evidence": [
2026-06-05T02:56:35.7872057Z             {
2026-06-05T02:56:35.7872737Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.7873558Z               "line": 461
2026-06-05T02:56:35.7874190Z             },
2026-06-05T02:56:35.7874762Z             {
2026-06-05T02:56:35.7875445Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7876288Z               "line": 217
2026-06-05T02:56:35.7876923Z             },
2026-06-05T02:56:35.7877497Z             {
2026-06-05T02:56:35.7878177Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7879026Z               "line": 248
2026-06-05T02:56:35.7879723Z             },
2026-06-05T02:56:35.7880299Z             {
2026-06-05T02:56:35.7880983Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7881828Z               "line": 281
2026-06-05T02:56:35.7882466Z             },
2026-06-05T02:56:35.7883040Z             {
2026-06-05T02:56:35.7883717Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-05T02:56:35.7884561Z               "line": 312
2026-06-05T02:56:35.7885207Z             },
2026-06-05T02:56:35.7885787Z             {
2026-06-05T02:56:35.7886491Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-05T02:56:35.7887352Z               "line": 449
2026-06-05T02:56:35.7887982Z             },
2026-06-05T02:56:35.7888555Z             {
2026-06-05T02:56:35.7889278Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-05T02:56:35.7890137Z               "line": 676
2026-06-05T02:56:35.7890776Z             }
2026-06-05T02:56:35.7891345Z           ]
2026-06-05T02:56:35.7891909Z         }
2026-06-05T02:56:35.7892455Z       }
2026-06-05T02:56:35.7892991Z     },
2026-06-05T02:56:35.7893519Z     {
2026-06-05T02:56:35.7894082Z       "id": "REQ-REACH-1",
2026-06-05T02:56:35.7894922Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-05T02:56:35.7895849Z       "requiredStages": [
2026-06-05T02:56:35.7896498Z         "impl",
2026-06-05T02:56:35.7897065Z         "unit",
2026-06-05T02:56:35.7897640Z         "int"
2026-06-05T02:56:35.7898193Z       ],
2026-06-05T02:56:35.7898735Z       "stages": {
2026-06-05T02:56:35.7899359Z         "doc": {
2026-06-05T02:56:35.7899964Z           "complete": false,
2026-06-05T02:56:35.7900646Z           "evidence": []
2026-06-05T02:56:35.7901298Z         },
2026-06-05T02:56:35.7901857Z         "impl": {
2026-06-05T02:56:35.7902442Z           "complete": true,
2026-06-05T02:56:35.7903079Z           "evidence": [
2026-06-05T02:56:35.7903673Z             {
2026-06-05T02:56:35.7904572Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-05T02:56:35.7905413Z               "line": 133
2026-06-05T02:56:35.7906025Z             },
2026-06-05T02:56:35.7906576Z             {
2026-06-05T02:56:35.7907410Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7908196Z               "line": 76
2026-06-05T02:56:35.7908794Z             },
2026-06-05T02:56:35.7909378Z             {
2026-06-05T02:56:35.7910004Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7910785Z               "line": 209
2026-06-05T02:56:35.7911400Z             },
2026-06-05T02:56:35.7911945Z             {
2026-06-05T02:56:35.7912571Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7913362Z               "line": 386
2026-06-05T02:56:35.7913970Z             },
2026-06-05T02:56:35.7914515Z             {
2026-06-05T02:56:35.7915134Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7915908Z               "line": 484
2026-06-05T02:56:35.7916509Z             },
2026-06-05T02:56:35.7917062Z             {
2026-06-05T02:56:35.7917696Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T02:56:35.7918492Z               "line": 39
2026-06-05T02:56:35.7919096Z             },
2026-06-05T02:56:35.7919686Z             {
2026-06-05T02:56:35.7920310Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.7927015Z               "line": 217
2026-06-05T02:56:35.7927698Z             },
2026-06-05T02:56:35.7928242Z             {
2026-06-05T02:56:35.7928872Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T02:56:35.7929746Z               "line": 82
2026-06-05T02:56:35.7930361Z             },
2026-06-05T02:56:35.7930907Z             {
2026-06-05T02:56:35.7931221Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T02:56:35.7931480Z               "line": 92
2026-06-05T02:56:35.7931898Z             },
2026-06-05T02:56:35.7932183Z             {
2026-06-05T02:56:35.7932594Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7932931Z               "line": 189
2026-06-05T02:56:35.7933324Z             }
2026-06-05T02:56:35.7933556Z           ]
2026-06-05T02:56:35.7933800Z         },
2026-06-05T02:56:35.7934042Z         "int": {
2026-06-05T02:56:35.7934295Z           "complete": true,
2026-06-05T02:56:35.7934544Z           "evidence": [
2026-06-05T02:56:35.7934773Z             {
2026-06-05T02:56:35.7935137Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7935749Z               "line": 375
2026-06-05T02:56:35.7936031Z             },
2026-06-05T02:56:35.7936268Z             {
2026-06-05T02:56:35.7936624Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.7936874Z               "line": 478
2026-06-05T02:56:35.7937102Z             },
2026-06-05T02:56:35.7937336Z             {
2026-06-05T02:56:35.7937688Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7937936Z               "line": 661
2026-06-05T02:56:35.7938172Z             },
2026-06-05T02:56:35.7938408Z             {
2026-06-05T02:56:35.7938761Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.7939014Z               "line": 755
2026-06-05T02:56:35.7939293Z             }
2026-06-05T02:56:35.7939533Z           ]
2026-06-05T02:56:35.7939755Z         },
2026-06-05T02:56:35.7939993Z         "unit": {
2026-06-05T02:56:35.7940246Z           "complete": true,
2026-06-05T02:56:35.7940499Z           "evidence": [
2026-06-05T02:56:35.7940725Z             {
2026-06-05T02:56:35.7941059Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7941311Z               "line": 585
2026-06-05T02:56:35.7941535Z             },
2026-06-05T02:56:35.7941766Z             {
2026-06-05T02:56:35.7942086Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-05T02:56:35.7942338Z               "line": 606
2026-06-05T02:56:35.7942568Z             },
2026-06-05T02:56:35.7942828Z             {
2026-06-05T02:56:35.7944002Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-05T02:56:35.7944357Z               "line": 337
2026-06-05T02:56:35.7944645Z             },
2026-06-05T02:56:35.7945105Z             {
2026-06-05T02:56:35.7945606Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T02:56:35.7945857Z               "line": 92
2026-06-05T02:56:35.7946096Z             },
2026-06-05T02:56:35.7946329Z             {
2026-06-05T02:56:35.7946661Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-05T02:56:35.7946916Z               "line": 176
2026-06-05T02:56:35.7947142Z             },
2026-06-05T02:56:35.7947380Z             {
2026-06-05T02:56:35.7947702Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T02:56:35.7947961Z               "line": 92
2026-06-05T02:56:35.7948196Z             },
2026-06-05T02:56:35.7948423Z             {
2026-06-05T02:56:35.7948757Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-05T02:56:35.7949001Z               "line": 123
2026-06-05T02:56:35.7949307Z             },
2026-06-05T02:56:35.7949550Z             {
2026-06-05T02:56:35.7949880Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.7950148Z               "line": 436
2026-06-05T02:56:35.7950378Z             },
2026-06-05T02:56:35.7950608Z             {
2026-06-05T02:56:35.7950923Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T02:56:35.7951178Z               "line": 112
2026-06-05T02:56:35.7951407Z             },
2026-06-05T02:56:35.7951644Z             {
2026-06-05T02:56:35.7951969Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-05T02:56:35.7952209Z               "line": 136
2026-06-05T02:56:35.7952446Z             },
2026-06-05T02:56:35.7952673Z             {
2026-06-05T02:56:35.7953022Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7953270Z               "line": 548
2026-06-05T02:56:35.7953503Z             }
2026-06-05T02:56:35.7953739Z           ]
2026-06-05T02:56:35.7953963Z         }
2026-06-05T02:56:35.7954205Z       }
2026-06-05T02:56:35.7954435Z     },
2026-06-05T02:56:35.7954674Z     {
2026-06-05T02:56:35.7954923Z       "id": "REQ-REACH-2",
2026-06-05T02:56:35.7955373Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-05T02:56:35.7955643Z       "requiredStages": [],
2026-06-05T02:56:35.7955883Z       "stages": {
2026-06-05T02:56:35.7956126Z         "doc": {
2026-06-05T02:56:35.7956381Z           "complete": false,
2026-06-05T02:56:35.7956640Z           "evidence": []
2026-06-05T02:56:35.7956868Z         },
2026-06-05T02:56:35.7957111Z         "impl": {
2026-06-05T02:56:35.7957374Z           "complete": false,
2026-06-05T02:56:35.7957611Z           "evidence": []
2026-06-05T02:56:35.7957849Z         },
2026-06-05T02:56:35.7958082Z         "int": {
2026-06-05T02:56:35.7958344Z           "complete": false,
2026-06-05T02:56:35.7958582Z           "evidence": []
2026-06-05T02:56:35.7958819Z         },
2026-06-05T02:56:35.7959060Z         "unit": {
2026-06-05T02:56:35.7959382Z           "complete": false,
2026-06-05T02:56:35.7959639Z           "evidence": []
2026-06-05T02:56:35.7959863Z         }
2026-06-05T02:56:35.7960097Z       }
2026-06-05T02:56:35.7960323Z     },
2026-06-05T02:56:35.7960560Z     {
2026-06-05T02:56:35.7960878Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-05T02:56:35.7961405Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-05T02:56:35.7961669Z       "requiredStages": [
2026-06-05T02:56:35.7961899Z         "impl",
2026-06-05T02:56:35.7962137Z         "unit"
2026-06-05T02:56:35.7962360Z       ],
2026-06-05T02:56:35.7962604Z       "stages": {
2026-06-05T02:56:35.7962837Z         "doc": {
2026-06-05T02:56:35.7963088Z           "complete": false,
2026-06-05T02:56:35.7963343Z           "evidence": []
2026-06-05T02:56:35.7963564Z         },
2026-06-05T02:56:35.7963803Z         "impl": {
2026-06-05T02:56:35.7964050Z           "complete": true,
2026-06-05T02:56:35.7964305Z           "evidence": [
2026-06-05T02:56:35.7964544Z             {
2026-06-05T02:56:35.7965046Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7965324Z               "line": 18
2026-06-05T02:56:35.7965685Z             },
2026-06-05T02:56:35.7965929Z             {
2026-06-05T02:56:35.7966257Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7966509Z               "line": 35
2026-06-05T02:56:35.7966745Z             },
2026-06-05T02:56:35.7966970Z             {
2026-06-05T02:56:35.7967307Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7967548Z               "line": 65
2026-06-05T02:56:35.7967784Z             }
2026-06-05T02:56:35.7968015Z           ]
2026-06-05T02:56:35.7968249Z         },
2026-06-05T02:56:35.7968492Z         "int": {
2026-06-05T02:56:35.7968745Z           "complete": false,
2026-06-05T02:56:35.7969003Z           "evidence": []
2026-06-05T02:56:35.7969291Z         },
2026-06-05T02:56:35.7969538Z         "unit": {
2026-06-05T02:56:35.7969793Z           "complete": true,
2026-06-05T02:56:35.7970074Z           "evidence": [
2026-06-05T02:56:35.7970319Z             {
2026-06-05T02:56:35.7970650Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7970917Z               "line": 200
2026-06-05T02:56:35.7971151Z             },
2026-06-05T02:56:35.7971389Z             {
2026-06-05T02:56:35.7971718Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7971971Z               "line": 214
2026-06-05T02:56:35.7972210Z             },
2026-06-05T02:56:35.7979062Z             {
2026-06-05T02:56:35.7979703Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.7979966Z               "line": 223
2026-06-05T02:56:35.7980204Z             }
2026-06-05T02:56:35.7980430Z           ]
2026-06-05T02:56:35.7980686Z         }
2026-06-05T02:56:35.7980921Z       }
2026-06-05T02:56:35.7981145Z     },
2026-06-05T02:56:35.7981375Z     {
2026-06-05T02:56:35.7981652Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-05T02:56:35.7982132Z       "title": "Hostable endpoint-types capability declaration",
2026-06-05T02:56:35.7982398Z       "requiredStages": [
2026-06-05T02:56:35.7982642Z         "impl",
2026-06-05T02:56:35.7982889Z         "unit"
2026-06-05T02:56:35.7983117Z       ],
2026-06-05T02:56:35.7983358Z       "stages": {
2026-06-05T02:56:35.7983587Z         "doc": {
2026-06-05T02:56:35.7983853Z           "complete": false,
2026-06-05T02:56:35.7984093Z           "evidence": []
2026-06-05T02:56:35.7984326Z         },
2026-06-05T02:56:35.7984563Z         "impl": {
2026-06-05T02:56:35.7984809Z           "complete": true,
2026-06-05T02:56:35.7985055Z           "evidence": [
2026-06-05T02:56:35.7985280Z             {
2026-06-05T02:56:35.7985639Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7985877Z               "line": 376
2026-06-05T02:56:35.7986115Z             }
2026-06-05T02:56:35.7986346Z           ]
2026-06-05T02:56:35.7986568Z         },
2026-06-05T02:56:35.7986804Z         "int": {
2026-06-05T02:56:35.7987060Z           "complete": false,
2026-06-05T02:56:35.7987316Z           "evidence": []
2026-06-05T02:56:35.7987539Z         },
2026-06-05T02:56:35.7987782Z         "unit": {
2026-06-05T02:56:35.7988048Z           "complete": true,
2026-06-05T02:56:35.7988287Z           "evidence": [
2026-06-05T02:56:35.7988524Z             {
2026-06-05T02:56:35.7988862Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.7989117Z               "line": 581
2026-06-05T02:56:35.7989399Z             }
2026-06-05T02:56:35.7989638Z           ]
2026-06-05T02:56:35.7989872Z         }
2026-06-05T02:56:35.7990101Z       }
2026-06-05T02:56:35.7990328Z     },
2026-06-05T02:56:35.7990546Z     {
2026-06-05T02:56:35.7990822Z       "id": "REQ-SEAM-HISTORY",
2026-06-05T02:56:35.7991345Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-05T02:56:35.7991615Z       "requiredStages": [
2026-06-05T02:56:35.7991852Z         "impl",
2026-06-05T02:56:35.7992077Z         "unit",
2026-06-05T02:56:35.7992579Z         "int"
2026-06-05T02:56:35.7992836Z       ],
2026-06-05T02:56:35.7993081Z       "stages": {
2026-06-05T02:56:35.7993318Z         "doc": {
2026-06-05T02:56:35.7993726Z           "complete": false,
2026-06-05T02:56:35.7993983Z           "evidence": []
2026-06-05T02:56:35.7994205Z         },
2026-06-05T02:56:35.7994448Z         "impl": {
2026-06-05T02:56:35.7994698Z           "complete": true,
2026-06-05T02:56:35.7994947Z           "evidence": [
2026-06-05T02:56:35.7995171Z             {
2026-06-05T02:56:35.7995499Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.7995754Z               "line": 24
2026-06-05T02:56:35.7995983Z             },
2026-06-05T02:56:35.7996217Z             {
2026-06-05T02:56:35.7996549Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.7996798Z               "line": 22
2026-06-05T02:56:35.7997027Z             }
2026-06-05T02:56:35.7997260Z           ]
2026-06-05T02:56:35.7997497Z         },
2026-06-05T02:56:35.7997726Z         "int": {
2026-06-05T02:56:35.7997995Z           "complete": true,
2026-06-05T02:56:35.7998241Z           "evidence": [
2026-06-05T02:56:35.7998480Z             {
2026-06-05T02:56:35.7998838Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.7999093Z               "line": 202
2026-06-05T02:56:35.7999377Z             }
2026-06-05T02:56:35.7999609Z           ]
2026-06-05T02:56:35.7999846Z         },
2026-06-05T02:56:35.8000074Z         "unit": {
2026-06-05T02:56:35.8000333Z           "complete": true,
2026-06-05T02:56:35.8000576Z           "evidence": [
2026-06-05T02:56:35.8000811Z             {
2026-06-05T02:56:35.8001139Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.8001385Z               "line": 163
2026-06-05T02:56:35.8001629Z             },
2026-06-05T02:56:35.8001855Z             {
2026-06-05T02:56:35.8002185Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.8002427Z               "line": 186
2026-06-05T02:56:35.8002667Z             },
2026-06-05T02:56:35.8002912Z             {
2026-06-05T02:56:35.8003225Z               "path": "crates/spt-live/src/echo.rs",
2026-06-05T02:56:35.8003492Z               "line": 195
2026-06-05T02:56:35.8003721Z             },
2026-06-05T02:56:35.8003955Z             {
2026-06-05T02:56:35.8004286Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8004542Z               "line": 195
2026-06-05T02:56:35.8004782Z             },
2026-06-05T02:56:35.8005009Z             {
2026-06-05T02:56:35.8005349Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8005588Z               "line": 209
2026-06-05T02:56:35.8005824Z             },
2026-06-05T02:56:35.8006056Z             {
2026-06-05T02:56:35.8006393Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8006642Z               "line": 228
2026-06-05T02:56:35.8006870Z             },
2026-06-05T02:56:35.8007101Z             {
2026-06-05T02:56:35.8007437Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8007694Z               "line": 248
2026-06-05T02:56:35.8007934Z             },
2026-06-05T02:56:35.8008161Z             {
2026-06-05T02:56:35.8008516Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8008760Z               "line": 264
2026-06-05T02:56:35.8008997Z             },
2026-06-05T02:56:35.8009267Z             {
2026-06-05T02:56:35.8009609Z               "path": "crates/spt-live/src/history.rs",
2026-06-05T02:56:35.8009859Z               "line": 279
2026-06-05T02:56:35.8010085Z             }
2026-06-05T02:56:35.8010322Z           ]
2026-06-05T02:56:35.8010550Z         }
2026-06-05T02:56:35.8010788Z       }
2026-06-05T02:56:35.8011005Z     },
2026-06-05T02:56:35.8011233Z     {
2026-06-05T02:56:35.8011504Z       "id": "REQ-SEAM-INJECT",
2026-06-05T02:56:35.8011974Z       "title": "inject-input methods configurable per activity-state",
2026-06-05T02:56:35.8012239Z       "requiredStages": [
2026-06-05T02:56:35.8012480Z         "impl",
2026-06-05T02:56:35.8012946Z         "unit"
2026-06-05T02:56:35.8013192Z       ],
2026-06-05T02:56:35.8013441Z       "stages": {
2026-06-05T02:56:35.8013684Z         "doc": {
2026-06-05T02:56:35.8014089Z           "complete": false,
2026-06-05T02:56:35.8014341Z           "evidence": []
2026-06-05T02:56:35.8014568Z         },
2026-06-05T02:56:35.8014811Z         "impl": {
2026-06-05T02:56:35.8015064Z           "complete": true,
2026-06-05T02:56:35.8015316Z           "evidence": [
2026-06-05T02:56:35.8015556Z             {
2026-06-05T02:56:35.8015893Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.8016147Z               "line": 19
2026-06-05T02:56:35.8016374Z             },
2026-06-05T02:56:35.8016610Z             {
2026-06-05T02:56:35.8016942Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.8017200Z               "line": 104
2026-06-05T02:56:35.8017432Z             }
2026-06-05T02:56:35.8017656Z           ]
2026-06-05T02:56:35.8017887Z         },
2026-06-05T02:56:35.8018122Z         "int": {
2026-06-05T02:56:35.8018386Z           "complete": false,
2026-06-05T02:56:35.8018629Z           "evidence": []
2026-06-05T02:56:35.8018868Z         },
2026-06-05T02:56:35.8019110Z         "unit": {
2026-06-05T02:56:35.8019420Z           "complete": true,
2026-06-05T02:56:35.8019677Z           "evidence": [
2026-06-05T02:56:35.8019904Z             {
2026-06-05T02:56:35.8020244Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.8020486Z               "line": 291
2026-06-05T02:56:35.8020721Z             },
2026-06-05T02:56:35.8020957Z             {
2026-06-05T02:56:35.8021286Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.8021539Z               "line": 305
2026-06-05T02:56:35.8021767Z             }
2026-06-05T02:56:35.8027575Z           ]
2026-06-05T02:56:35.8027920Z         }
2026-06-05T02:56:35.8028186Z       }
2026-06-05T02:56:35.8028417Z     },
2026-06-05T02:56:35.8028644Z     {
2026-06-05T02:56:35.8028976Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-05T02:56:35.8029459Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-05T02:56:35.8029739Z       "requiredStages": [
2026-06-05T02:56:35.8029992Z         "impl",
2026-06-05T02:56:35.8030236Z         "unit"
2026-06-05T02:56:35.8030470Z       ],
2026-06-05T02:56:35.8030702Z       "stages": {
2026-06-05T02:56:35.8030941Z         "doc": {
2026-06-05T02:56:35.8031199Z           "complete": false,
2026-06-05T02:56:35.8031455Z           "evidence": []
2026-06-05T02:56:35.8031678Z         },
2026-06-05T02:56:35.8031922Z         "impl": {
2026-06-05T02:56:35.8032180Z           "complete": true,
2026-06-05T02:56:35.8032422Z           "evidence": [
2026-06-05T02:56:35.8032656Z             {
2026-06-05T02:56:35.8032990Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8033236Z               "line": 18
2026-06-05T02:56:35.8033462Z             },
2026-06-05T02:56:35.8033699Z             {
2026-06-05T02:56:35.8034051Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8034324Z               "line": 304
2026-06-05T02:56:35.8034569Z             }
2026-06-05T02:56:35.8034794Z           ]
2026-06-05T02:56:35.8035035Z         },
2026-06-05T02:56:35.8035262Z         "int": {
2026-06-05T02:56:35.8035528Z           "complete": false,
2026-06-05T02:56:35.8035786Z           "evidence": []
2026-06-05T02:56:35.8036009Z         },
2026-06-05T02:56:35.8036247Z         "unit": {
2026-06-05T02:56:35.8036495Z           "complete": true,
2026-06-05T02:56:35.8036743Z           "evidence": [
2026-06-05T02:56:35.8036966Z             {
2026-06-05T02:56:35.8037313Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8037565Z               "line": 526
2026-06-05T02:56:35.8037794Z             },
2026-06-05T02:56:35.8038028Z             {
2026-06-05T02:56:35.8038355Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8038609Z               "line": 536
2026-06-05T02:56:35.8038836Z             }
2026-06-05T02:56:35.8039346Z           ]
2026-06-05T02:56:35.8039616Z         }
2026-06-05T02:56:35.8039846Z       }
2026-06-05T02:56:35.8040079Z     },
2026-06-05T02:56:35.8040426Z     {
2026-06-05T02:56:35.8040708Z       "id": "REQ-SEAM-PSYCHE",
2026-06-05T02:56:35.8041121Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-05T02:56:35.8041397Z       "requiredStages": [
2026-06-05T02:56:35.8041644Z         "impl",
2026-06-05T02:56:35.8041873Z         "unit",
2026-06-05T02:56:35.8042107Z         "int"
2026-06-05T02:56:35.8042330Z       ],
2026-06-05T02:56:35.8042566Z       "stages": {
2026-06-05T02:56:35.8042796Z         "doc": {
2026-06-05T02:56:35.8043060Z           "complete": false,
2026-06-05T02:56:35.8043304Z           "evidence": []
2026-06-05T02:56:35.8043534Z         },
2026-06-05T02:56:35.8043773Z         "impl": {
2026-06-05T02:56:35.8044023Z           "complete": true,
2026-06-05T02:56:35.8044273Z           "evidence": [
2026-06-05T02:56:35.8044494Z             {
2026-06-05T02:56:35.8044841Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T02:56:35.8045091Z               "line": 19
2026-06-05T02:56:35.8045322Z             },
2026-06-05T02:56:35.8045570Z             {
2026-06-05T02:56:35.8045888Z               "path": "crates/spt/src/api/live.rs",
2026-06-05T02:56:35.8046135Z               "line": 12
2026-06-05T02:56:35.8046365Z             },
2026-06-05T02:56:35.8046600Z             {
2026-06-05T02:56:35.8046940Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8047183Z               "line": 204
2026-06-05T02:56:35.8047426Z             }
2026-06-05T02:56:35.8047649Z           ]
2026-06-05T02:56:35.8047886Z         },
2026-06-05T02:56:35.8048117Z         "int": {
2026-06-05T02:56:35.8048378Z           "complete": true,
2026-06-05T02:56:35.8048628Z           "evidence": [
2026-06-05T02:56:35.8048851Z             {
2026-06-05T02:56:35.8049260Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.8049509Z               "line": 201
2026-06-05T02:56:35.8049757Z             }
2026-06-05T02:56:35.8049986Z           ]
2026-06-05T02:56:35.8050220Z         },
2026-06-05T02:56:35.8050463Z         "unit": {
2026-06-05T02:56:35.8050732Z           "complete": true,
2026-06-05T02:56:35.8050984Z           "evidence": [
2026-06-05T02:56:35.8051212Z             {
2026-06-05T02:56:35.8051547Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T02:56:35.8051788Z               "line": 161
2026-06-05T02:56:35.8052027Z             },
2026-06-05T02:56:35.8052259Z             {
2026-06-05T02:56:35.8052590Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T02:56:35.8052843Z               "line": 168
2026-06-05T02:56:35.8053069Z             },
2026-06-05T02:56:35.8053301Z             {
2026-06-05T02:56:35.8053632Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-05T02:56:35.8053883Z               "line": 191
2026-06-05T02:56:35.8054124Z             },
2026-06-05T02:56:35.8054354Z             {
2026-06-05T02:56:35.8054697Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T02:56:35.8054950Z               "line": 106
2026-06-05T02:56:35.8055180Z             },
2026-06-05T02:56:35.8055415Z             {
2026-06-05T02:56:35.8055756Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T02:56:35.8056008Z               "line": 123
2026-06-05T02:56:35.8056236Z             },
2026-06-05T02:56:35.8056465Z             {
2026-06-05T02:56:35.8056782Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-05T02:56:35.8057037Z               "line": 137
2026-06-05T02:56:35.8057266Z             }
2026-06-05T02:56:35.8057501Z           ]
2026-06-05T02:56:35.8057735Z         }
2026-06-05T02:56:35.8057959Z       }
2026-06-05T02:56:35.8058190Z     },
2026-06-05T02:56:35.8058411Z     {
2026-06-05T02:56:35.8058681Z       "id": "REQ-SEAM-RESUME",
2026-06-05T02:56:35.8059275Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-05T02:56:35.8059548Z       "requiredStages": [
2026-06-05T02:56:35.8059932Z         "impl",
2026-06-05T02:56:35.8060181Z         "unit"
2026-06-05T02:56:35.8060421Z       ],
2026-06-05T02:56:35.8060653Z       "stages": {
2026-06-05T02:56:35.8061017Z         "doc": {
2026-06-05T02:56:35.8061275Z           "complete": false,
2026-06-05T02:56:35.8061538Z           "evidence": []
2026-06-05T02:56:35.8061772Z         },
2026-06-05T02:56:35.8062003Z         "impl": {
2026-06-05T02:56:35.8062268Z           "complete": true,
2026-06-05T02:56:35.8062513Z           "evidence": [
2026-06-05T02:56:35.8062742Z             {
2026-06-05T02:56:35.8063072Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.8063326Z               "line": 19
2026-06-05T02:56:35.8063561Z             }
2026-06-05T02:56:35.8063791Z           ]
2026-06-05T02:56:35.8064023Z         },
2026-06-05T02:56:35.8064254Z         "int": {
2026-06-05T02:56:35.8064522Z           "complete": false,
2026-06-05T02:56:35.8064770Z           "evidence": []
2026-06-05T02:56:35.8065000Z         },
2026-06-05T02:56:35.8065248Z         "unit": {
2026-06-05T02:56:35.8065496Z           "complete": true,
2026-06-05T02:56:35.8065741Z           "evidence": [
2026-06-05T02:56:35.8065975Z             {
2026-06-05T02:56:35.8066309Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.8066550Z               "line": 168
2026-06-05T02:56:35.8066788Z             },
2026-06-05T02:56:35.8067016Z             {
2026-06-05T02:56:35.8067341Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.8067596Z               "line": 187
2026-06-05T02:56:35.8067828Z             },
2026-06-05T02:56:35.8068068Z             {
2026-06-05T02:56:35.8068396Z               "path": "crates/spt-live/src/resume.rs",
2026-06-05T02:56:35.8068674Z               "line": 205
2026-06-05T02:56:35.8068948Z             }
2026-06-05T02:56:35.8069489Z           ]
2026-06-05T02:56:35.8069788Z         }
2026-06-05T02:56:35.8070354Z       }
2026-06-05T02:56:35.8076897Z     },
2026-06-05T02:56:35.8077347Z     {
2026-06-05T02:56:35.8077759Z       "id": "REQ-SEAM-SPAWN",
2026-06-05T02:56:35.8078111Z       "title": "spawn-session seam",
2026-06-05T02:56:35.8078401Z       "requiredStages": [
2026-06-05T02:56:35.8078701Z         "impl",
2026-06-05T02:56:35.8078971Z         "unit"
2026-06-05T02:56:35.8079337Z       ],
2026-06-05T02:56:35.8079758Z       "stages": {
2026-06-05T02:56:35.8080025Z         "doc": {
2026-06-05T02:56:35.8080311Z           "complete": false,
2026-06-05T02:56:35.8080580Z           "evidence": []
2026-06-05T02:56:35.8080836Z         },
2026-06-05T02:56:35.8081096Z         "impl": {
2026-06-05T02:56:35.8081397Z           "complete": true,
2026-06-05T02:56:35.8081649Z           "evidence": [
2026-06-05T02:56:35.8081872Z             {
2026-06-05T02:56:35.8082254Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8082514Z               "line": 20
2026-06-05T02:56:35.8082746Z             }
2026-06-05T02:56:35.8082991Z           ]
2026-06-05T02:56:35.8083275Z         },
2026-06-05T02:56:35.8083544Z         "int": {
2026-06-05T02:56:35.8083842Z           "complete": false,
2026-06-05T02:56:35.8084109Z           "evidence": []
2026-06-05T02:56:35.8084376Z         },
2026-06-05T02:56:35.8084621Z         "unit": {
2026-06-05T02:56:35.8084885Z           "complete": true,
2026-06-05T02:56:35.8085150Z           "evidence": [
2026-06-05T02:56:35.8085387Z             {
2026-06-05T02:56:35.8085746Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8085989Z               "line": 397
2026-06-05T02:56:35.8086225Z             },
2026-06-05T02:56:35.8086451Z             {
2026-06-05T02:56:35.8086811Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8087070Z               "line": 404
2026-06-05T02:56:35.8087299Z             },
2026-06-05T02:56:35.8087531Z             {
2026-06-05T02:56:35.8087871Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8088122Z               "line": 414
2026-06-05T02:56:35.8088349Z             },
2026-06-05T02:56:35.8089019Z             {
2026-06-05T02:56:35.8089484Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8089890Z               "line": 420
2026-06-05T02:56:35.8090128Z             },
2026-06-05T02:56:35.8090356Z             {
2026-06-05T02:56:35.8090720Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8090966Z               "line": 440
2026-06-05T02:56:35.8091203Z             },
2026-06-05T02:56:35.8091441Z             {
2026-06-05T02:56:35.8091785Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-05T02:56:35.8092041Z               "line": 473
2026-06-05T02:56:35.8092286Z             }
2026-06-05T02:56:35.8092549Z           ]
2026-06-05T02:56:35.8093079Z         }
2026-06-05T02:56:35.8093334Z       }
2026-06-05T02:56:35.8093760Z     },
2026-06-05T02:56:35.8094023Z     {
2026-06-05T02:56:35.8094325Z       "id": "REQ-SEAM-UPDATE",
2026-06-05T02:56:35.8094844Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-05T02:56:35.8095128Z       "requiredStages": [
2026-06-05T02:56:35.8095369Z         "impl",
2026-06-05T02:56:35.8095634Z         "unit"
2026-06-05T02:56:35.8095878Z       ],
2026-06-05T02:56:35.8096119Z       "stages": {
2026-06-05T02:56:35.8096372Z         "doc": {
2026-06-05T02:56:35.8096641Z           "complete": false,
2026-06-05T02:56:35.8096916Z           "evidence": []
2026-06-05T02:56:35.8097150Z         },
2026-06-05T02:56:35.8097408Z         "impl": {
2026-06-05T02:56:35.8097681Z           "complete": true,
2026-06-05T02:56:35.8097938Z           "evidence": [
2026-06-05T02:56:35.8098182Z             {
2026-06-05T02:56:35.8098593Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8098856Z               "line": 28
2026-06-05T02:56:35.8099106Z             },
2026-06-05T02:56:35.8099590Z             {
2026-06-05T02:56:35.8099993Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8100234Z               "line": 83
2026-06-05T02:56:35.8100485Z             }
2026-06-05T02:56:35.8100718Z           ]
2026-06-05T02:56:35.8100959Z         },
2026-06-05T02:56:35.8101197Z         "int": {
2026-06-05T02:56:35.8101467Z           "complete": false,
2026-06-05T02:56:35.8101730Z           "evidence": []
2026-06-05T02:56:35.8101961Z         },
2026-06-05T02:56:35.8102209Z         "unit": {
2026-06-05T02:56:35.8102470Z           "complete": true,
2026-06-05T02:56:35.8102725Z           "evidence": [
2026-06-05T02:56:35.8102955Z             {
2026-06-05T02:56:35.8103355Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8103615Z               "line": 270
2026-06-05T02:56:35.8103891Z             },
2026-06-05T02:56:35.8104132Z             {
2026-06-05T02:56:35.8104517Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8104778Z               "line": 281
2026-06-05T02:56:35.8105015Z             }
2026-06-05T02:56:35.8105258Z           ]
2026-06-05T02:56:35.8105510Z         }
2026-06-05T02:56:35.8105744Z       }
2026-06-05T02:56:35.8105978Z     },
2026-06-05T02:56:35.8106200Z     {
2026-06-05T02:56:35.8106471Z       "id": "REQ-SEC-1",
2026-06-05T02:56:35.8107677Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-05T02:56:35.8107948Z       "requiredStages": [
2026-06-05T02:56:35.8108193Z         "impl",
2026-06-05T02:56:35.8108425Z         "unit"
2026-06-05T02:56:35.8108660Z       ],
2026-06-05T02:56:35.8108892Z       "stages": {
2026-06-05T02:56:35.8109130Z         "doc": {
2026-06-05T02:56:35.8109444Z           "complete": false,
2026-06-05T02:56:35.8109694Z           "evidence": []
2026-06-05T02:56:35.8109928Z         },
2026-06-05T02:56:35.8110160Z         "impl": {
2026-06-05T02:56:35.8110423Z           "complete": true,
2026-06-05T02:56:35.8110665Z           "evidence": [
2026-06-05T02:56:35.8110902Z             {
2026-06-05T02:56:35.8111493Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8111768Z               "line": 84
2026-06-05T02:56:35.8112010Z             },
2026-06-05T02:56:35.8112369Z             {
2026-06-05T02:56:35.8112724Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8112969Z               "line": 114
2026-06-05T02:56:35.8113205Z             },
2026-06-05T02:56:35.8113444Z             {
2026-06-05T02:56:35.8113783Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8114038Z               "line": 128
2026-06-05T02:56:35.8114265Z             },
2026-06-05T02:56:35.8114503Z             {
2026-06-05T02:56:35.8114837Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8115093Z               "line": 108
2026-06-05T02:56:35.8115330Z             },
2026-06-05T02:56:35.8115558Z             {
2026-06-05T02:56:35.8115895Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8116139Z               "line": 129
2026-06-05T02:56:35.8116387Z             },
2026-06-05T02:56:35.8116625Z             {
2026-06-05T02:56:35.8116964Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8117230Z               "line": 142
2026-06-05T02:56:35.8117460Z             },
2026-06-05T02:56:35.8117696Z             {
2026-06-05T02:56:35.8118028Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8118282Z               "line": 208
2026-06-05T02:56:35.8118507Z             },
2026-06-05T02:56:35.8118742Z             {
2026-06-05T02:56:35.8119081Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8119377Z               "line": 234
2026-06-05T02:56:35.8119620Z             },
2026-06-05T02:56:35.8119851Z             {
2026-06-05T02:56:35.8120163Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8120406Z               "line": 1459
2026-06-05T02:56:35.8120647Z             }
2026-06-05T02:56:35.8120882Z           ]
2026-06-05T02:56:35.8121103Z         },
2026-06-05T02:56:35.8121352Z         "int": {
2026-06-05T02:56:35.8121611Z           "complete": false,
2026-06-05T02:56:35.8121869Z           "evidence": []
2026-06-05T02:56:35.8122099Z         },
2026-06-05T02:56:35.8122344Z         "unit": {
2026-06-05T02:56:35.8129259Z           "complete": true,
2026-06-05T02:56:35.8129664Z           "evidence": [
2026-06-05T02:56:35.8129926Z             {
2026-06-05T02:56:35.8130287Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8130546Z               "line": 140
2026-06-05T02:56:35.8130782Z             },
2026-06-05T02:56:35.8131022Z             {
2026-06-05T02:56:35.8131375Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8131626Z               "line": 186
2026-06-05T02:56:35.8131868Z             },
2026-06-05T02:56:35.8132104Z             {
2026-06-05T02:56:35.8132458Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-05T02:56:35.8132705Z               "line": 218
2026-06-05T02:56:35.8132948Z             },
2026-06-05T02:56:35.8133214Z             {
2026-06-05T02:56:35.8133573Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-05T02:56:35.8133840Z               "line": 128
2026-06-05T02:56:35.8134070Z             },
2026-06-05T02:56:35.8134311Z             {
2026-06-05T02:56:35.8134648Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8134910Z               "line": 248
2026-06-05T02:56:35.8135147Z             },
2026-06-05T02:56:35.8135378Z             {
2026-06-05T02:56:35.8135723Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8135979Z               "line": 275
2026-06-05T02:56:35.8136222Z             },
2026-06-05T02:56:35.8136461Z             {
2026-06-05T02:56:35.8136798Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8137058Z               "line": 299
2026-06-05T02:56:35.8137289Z             },
2026-06-05T02:56:35.8137550Z             {
2026-06-05T02:56:35.8138146Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8138432Z               "line": 310
2026-06-05T02:56:35.8138677Z             },
2026-06-05T02:56:35.8138911Z             {
2026-06-05T02:56:35.8139445Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8139697Z               "line": 334
2026-06-05T02:56:35.8139941Z             },
2026-06-05T02:56:35.8140173Z             {
2026-06-05T02:56:35.8140522Z               "path": "crates/spt-store/src/access.rs",
2026-06-05T02:56:35.8140781Z               "line": 350
2026-06-05T02:56:35.8141012Z             },
2026-06-05T02:56:35.8141246Z             {
2026-06-05T02:56:35.8141547Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8141804Z               "line": 2610
2026-06-05T02:56:35.8142041Z             }
2026-06-05T02:56:35.8142279Z           ]
2026-06-05T02:56:35.8142516Z         }
2026-06-05T02:56:35.8142749Z       }
2026-06-05T02:56:35.8142983Z     },
2026-06-05T02:56:35.8143209Z     {
2026-06-05T02:56:35.8143490Z       "id": "REQ-SHELL-1",
2026-06-05T02:56:35.8146253Z       "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-05T02:56:35.8146548Z       "requiredStages": [
2026-06-05T02:56:35.8146792Z         "impl",
2026-06-05T02:56:35.8147027Z         "unit"
2026-06-05T02:56:35.8147267Z       ],
2026-06-05T02:56:35.8147506Z       "stages": {
2026-06-05T02:56:35.8147749Z         "doc": {
2026-06-05T02:56:35.8148019Z           "complete": false,
2026-06-05T02:56:35.8148267Z           "evidence": []
2026-06-05T02:56:35.8148503Z         },
2026-06-05T02:56:35.8148739Z         "impl": {
2026-06-05T02:56:35.8149006Z           "complete": true,
2026-06-05T02:56:35.8149286Z           "evidence": [
2026-06-05T02:56:35.8149536Z             {
2026-06-05T02:56:35.8149922Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8150175Z               "line": 27
2026-06-05T02:56:35.8150423Z             },
2026-06-05T02:56:35.8150655Z             {
2026-06-05T02:56:35.8151021Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8151268Z               "line": 52
2026-06-05T02:56:35.8151509Z             },
2026-06-05T02:56:35.8151756Z             {
2026-06-05T02:56:35.8152114Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8152382Z               "line": 128
2026-06-05T02:56:35.8152612Z             },
2026-06-05T02:56:35.8152848Z             {
2026-06-05T02:56:35.8153206Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8153463Z               "line": 160
2026-06-05T02:56:35.8153701Z             },
2026-06-05T02:56:35.8153933Z             {
2026-06-05T02:56:35.8154301Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8154555Z               "line": 22
2026-06-05T02:56:35.8154794Z             },
2026-06-05T02:56:35.8155019Z             {
2026-06-05T02:56:35.8155385Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8155649Z               "line": 65
2026-06-05T02:56:35.8155878Z             },
2026-06-05T02:56:35.8156119Z             {
2026-06-05T02:56:35.8156473Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8156728Z               "line": 76
2026-06-05T02:56:35.8156963Z             },
2026-06-05T02:56:35.8157202Z             {
2026-06-05T02:56:35.8157572Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8157817Z               "line": 145
2026-06-05T02:56:35.8158058Z             },
2026-06-05T02:56:35.8158291Z             {
2026-06-05T02:56:35.8158658Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8158909Z               "line": 204
2026-06-05T02:56:35.8159194Z             },
2026-06-05T02:56:35.8159599Z             {
2026-06-05T02:56:35.8159973Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8160232Z               "line": 241
2026-06-05T02:56:35.8160601Z             },
2026-06-05T02:56:35.8160849Z             {
2026-06-05T02:56:35.8161209Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8161473Z               "line": 262
2026-06-05T02:56:35.8161717Z             },
2026-06-05T02:56:35.8161954Z             {
2026-06-05T02:56:35.8162322Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8162571Z               "line": 275
2026-06-05T02:56:35.8162816Z             },
2026-06-05T02:56:35.8163058Z             {
2026-06-05T02:56:35.8163395Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.8163653Z               "line": 185
2026-06-05T02:56:35.8163886Z             },
2026-06-05T02:56:35.8164129Z             {
2026-06-05T02:56:35.8164461Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.8164732Z               "line": 201
2026-06-05T02:56:35.8164978Z             },
2026-06-05T02:56:35.8165209Z             {
2026-06-05T02:56:35.8165578Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.8165824Z               "line": 41
2026-06-05T02:56:35.8166066Z             },
2026-06-05T02:56:35.8166297Z             {
2026-06-05T02:56:35.8166661Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.8166918Z               "line": 204
2026-06-05T02:56:35.8167151Z             },
2026-06-05T02:56:35.8167390Z             {
2026-06-05T02:56:35.8167728Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-05T02:56:35.8167992Z               "line": 142
2026-06-05T02:56:35.8168220Z             },
2026-06-05T02:56:35.8168457Z             {
2026-06-05T02:56:35.8168787Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.8169039Z               "line": 283
2026-06-05T02:56:35.8169331Z             },
2026-06-05T02:56:35.8169575Z             {
2026-06-05T02:56:35.8169904Z               "path": "crates/spt/src/api/mod.rs",
2026-06-05T02:56:35.8170150Z               "line": 314
2026-06-05T02:56:35.8170404Z             },
2026-06-05T02:56:35.8170650Z             {
2026-06-05T02:56:35.8170998Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.8171256Z               "line": 240
2026-06-05T02:56:35.8171488Z             },
2026-06-05T02:56:35.8171729Z             {
2026-06-05T02:56:35.8172031Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8172295Z               "line": 1939
2026-06-05T02:56:35.8172538Z             },
2026-06-05T02:56:35.8172767Z             {
2026-06-05T02:56:35.8173080Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8173323Z               "line": 2074
2026-06-05T02:56:35.8173570Z             },
2026-06-05T02:56:35.8173799Z             {
2026-06-05T02:56:35.8174115Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8174380Z               "line": 2106
2026-06-05T02:56:35.8174617Z             }
2026-06-05T02:56:35.8174856Z           ]
2026-06-05T02:56:35.8175082Z         },
2026-06-05T02:56:35.8175340Z         "int": {
2026-06-05T02:56:35.8175598Z           "complete": true,
2026-06-05T02:56:35.8181359Z           "evidence": [
2026-06-05T02:56:35.8181706Z             {
2026-06-05T02:56:35.8182120Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T02:56:35.8182374Z               "line": 8
2026-06-05T02:56:35.8182610Z             },
2026-06-05T02:56:35.8182849Z             {
2026-06-05T02:56:35.8183219Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-05T02:56:35.8183477Z               "line": 46
2026-06-05T02:56:35.8183721Z             },
2026-06-05T02:56:35.8183954Z             {
2026-06-05T02:56:35.8184296Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-05T02:56:35.8184541Z               "line": 14
2026-06-05T02:56:35.8184780Z             }
2026-06-05T02:56:35.8185007Z           ]
2026-06-05T02:56:35.8185482Z         },
2026-06-05T02:56:35.8185750Z         "unit": {
2026-06-05T02:56:35.8186011Z           "complete": true,
2026-06-05T02:56:35.8186437Z           "evidence": [
2026-06-05T02:56:35.8186667Z             {
2026-06-05T02:56:35.8187046Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8187307Z               "line": 227
2026-06-05T02:56:35.8187547Z             },
2026-06-05T02:56:35.8187786Z             {
2026-06-05T02:56:35.8188141Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8188403Z               "line": 254
2026-06-05T02:56:35.8188631Z             },
2026-06-05T02:56:35.8188878Z             {
2026-06-05T02:56:35.8189296Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8189552Z               "line": 278
2026-06-05T02:56:35.8189795Z             },
2026-06-05T02:56:35.8190023Z             {
2026-06-05T02:56:35.8190390Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8190648Z               "line": 505
2026-06-05T02:56:35.8190891Z             },
2026-06-05T02:56:35.8191126Z             {
2026-06-05T02:56:35.8191494Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8191755Z               "line": 569
2026-06-05T02:56:35.8191987Z             },
2026-06-05T02:56:35.8192222Z             {
2026-06-05T02:56:35.8192581Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8192840Z               "line": 698
2026-06-05T02:56:35.8193082Z             },
2026-06-05T02:56:35.8193310Z             {
2026-06-05T02:56:35.8193651Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.8193896Z               "line": 524
2026-06-05T02:56:35.8194135Z             },
2026-06-05T02:56:35.8194362Z             {
2026-06-05T02:56:35.8194726Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-05T02:56:35.8194983Z               "line": 343
2026-06-05T02:56:35.8195213Z             },
2026-06-05T02:56:35.8195456Z             {
2026-06-05T02:56:35.8195761Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8196023Z               "line": 2825
2026-06-05T02:56:35.8196268Z             },
2026-06-05T02:56:35.8196504Z             {
2026-06-05T02:56:35.8196817Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8197063Z               "line": 3072
2026-06-05T02:56:35.8197300Z             },
2026-06-05T02:56:35.8197528Z             {
2026-06-05T02:56:35.8197837Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8198086Z               "line": 3385
2026-06-05T02:56:35.8198325Z             }
2026-06-05T02:56:35.8198563Z           ]
2026-06-05T02:56:35.8198796Z         }
2026-06-05T02:56:35.8199031Z       }
2026-06-05T02:56:35.8199301Z     },
2026-06-05T02:56:35.8199540Z     {
2026-06-05T02:56:35.8199796Z       "id": "REQ-SHELL-2",
2026-06-05T02:56:35.8204450Z       "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-05T02:56:35.8204744Z       "requiredStages": [
2026-06-05T02:56:35.8204992Z         "impl",
2026-06-05T02:56:35.8205258Z         "unit",
2026-06-05T02:56:35.8205508Z         "int"
2026-06-05T02:56:35.8205743Z       ],
2026-06-05T02:56:35.8205992Z       "stages": {
2026-06-05T02:56:35.8206370Z         "doc": {
2026-06-05T02:56:35.8206669Z           "complete": false,
2026-06-05T02:56:35.8206936Z           "evidence": []
2026-06-05T02:56:35.8207190Z         },
2026-06-05T02:56:35.8207438Z         "impl": {
2026-06-05T02:56:35.8207715Z           "complete": true,
2026-06-05T02:56:35.8207980Z           "evidence": [
2026-06-05T02:56:35.8208398Z             {
2026-06-05T02:56:35.8208786Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-05T02:56:35.8209046Z               "line": 158
2026-06-05T02:56:35.8209506Z             },
2026-06-05T02:56:35.8209765Z             {
2026-06-05T02:56:35.8210126Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-05T02:56:35.8210396Z               "line": 243
2026-06-05T02:56:35.8210634Z             },
2026-06-05T02:56:35.8210883Z             {
2026-06-05T02:56:35.8211255Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.8211522Z               "line": 291
2026-06-05T02:56:35.8211773Z             },
2026-06-05T02:56:35.8212013Z             {
2026-06-05T02:56:35.8212377Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.8212633Z               "line": 339
2026-06-05T02:56:35.8212882Z             },
2026-06-05T02:56:35.8213120Z             {
2026-06-05T02:56:35.8213495Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-05T02:56:35.8213777Z               "line": 111
2026-06-05T02:56:35.8214026Z             },
2026-06-05T02:56:35.8214282Z             {
2026-06-05T02:56:35.8214657Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8214925Z               "line": 116
2026-06-05T02:56:35.8215161Z             },
2026-06-05T02:56:35.8215410Z             {
2026-06-05T02:56:35.8215787Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8216100Z               "line": 348
2026-06-05T02:56:35.8216410Z             },
2026-06-05T02:56:35.8216806Z             {
2026-06-05T02:56:35.8217178Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8217426Z               "line": 453
2026-06-05T02:56:35.8217666Z             },
2026-06-05T02:56:35.8217904Z             {
2026-06-05T02:56:35.8218253Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8218509Z               "line": 24
2026-06-05T02:56:35.8218745Z             },
2026-06-05T02:56:35.8218997Z             {
2026-06-05T02:56:35.8219407Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8219687Z               "line": 72
2026-06-05T02:56:35.8219929Z             },
2026-06-05T02:56:35.8220158Z             {
2026-06-05T02:56:35.8220522Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8220773Z               "line": 150
2026-06-05T02:56:35.8221018Z             },
2026-06-05T02:56:35.8221249Z             {
2026-06-05T02:56:35.8221607Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8221863Z               "line": 173
2026-06-05T02:56:35.8222089Z             },
2026-06-05T02:56:35.8222327Z             {
2026-06-05T02:56:35.8222677Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8222936Z               "line": 266
2026-06-05T02:56:35.8223175Z             },
2026-06-05T02:56:35.8223405Z             {
2026-06-05T02:56:35.8223775Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8224019Z               "line": 438
2026-06-05T02:56:35.8224277Z             },
2026-06-05T02:56:35.8224525Z             {
2026-06-05T02:56:35.8224893Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8225148Z               "line": 513
2026-06-05T02:56:35.8225382Z             },
2026-06-05T02:56:35.8225622Z             {
2026-06-05T02:56:35.8225959Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.8226211Z               "line": 298
2026-06-05T02:56:35.8226445Z             },
2026-06-05T02:56:35.8226686Z             {
2026-06-05T02:56:35.8226994Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8227245Z               "line": 864
2026-06-05T02:56:35.8227486Z             },
2026-06-05T02:56:35.8227720Z             {
2026-06-05T02:56:35.8228024Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8228275Z               "line": 1948
2026-06-05T02:56:35.8228520Z             },
2026-06-05T02:56:35.8228921Z             {
2026-06-05T02:56:35.8229283Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8229679Z               "line": 2009
2026-06-05T02:56:35.8229911Z             },
2026-06-05T02:56:35.8230150Z             {
2026-06-05T02:56:35.8230449Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8230710Z               "line": 2037
2026-06-05T02:56:35.8236566Z             },
2026-06-05T02:56:35.8236960Z             {
2026-06-05T02:56:35.8237320Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8237579Z               "line": 2189
2026-06-05T02:56:35.8237823Z             }
2026-06-05T02:56:35.8238059Z           ]
2026-06-05T02:56:35.8238310Z         },
2026-06-05T02:56:35.8238556Z         "int": {
2026-06-05T02:56:35.8238821Z           "complete": true,
2026-06-05T02:56:35.8239086Z           "evidence": [
2026-06-05T02:56:35.8239537Z             {
2026-06-05T02:56:35.8239977Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-05T02:56:35.8240226Z               "line": 18
2026-06-05T02:56:35.8240458Z             }
2026-06-05T02:56:35.8240691Z           ]
2026-06-05T02:56:35.8240930Z         },
2026-06-05T02:56:35.8241170Z         "unit": {
2026-06-05T02:56:35.8241421Z           "complete": true,
2026-06-05T02:56:35.8241673Z           "evidence": [
2026-06-05T02:56:35.8241894Z             {
2026-06-05T02:56:35.8242245Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-05T02:56:35.8242502Z               "line": 687
2026-06-05T02:56:35.8242729Z             },
2026-06-05T02:56:35.8242965Z             {
2026-06-05T02:56:35.8243315Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8243573Z               "line": 600
2026-06-05T02:56:35.8243800Z             },
2026-06-05T02:56:35.8244033Z             {
2026-06-05T02:56:35.8244388Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8244635Z               "line": 640
2026-06-05T02:56:35.8244881Z             },
2026-06-05T02:56:35.8245107Z             {
2026-06-05T02:56:35.8245473Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-05T02:56:35.8245723Z               "line": 663
2026-06-05T02:56:35.8245969Z             },
2026-06-05T02:56:35.8246205Z             {
2026-06-05T02:56:35.8246558Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8246811Z               "line": 569
2026-06-05T02:56:35.8247040Z             },
2026-06-05T02:56:35.8247273Z             {
2026-06-05T02:56:35.8247621Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8247873Z               "line": 582
2026-06-05T02:56:35.8248104Z             },
2026-06-05T02:56:35.8248325Z             {
2026-06-05T02:56:35.8248678Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8248926Z               "line": 603
2026-06-05T02:56:35.8249200Z             },
2026-06-05T02:56:35.8249444Z             {
2026-06-05T02:56:35.8249802Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8250053Z               "line": 648
2026-06-05T02:56:35.8250278Z             },
2026-06-05T02:56:35.8250519Z             {
2026-06-05T02:56:35.8250866Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8251120Z               "line": 663
2026-06-05T02:56:35.8251353Z             },
2026-06-05T02:56:35.8251576Z             {
2026-06-05T02:56:35.8251937Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8252180Z               "line": 690
2026-06-05T02:56:35.8252416Z             },
2026-06-05T02:56:35.8252639Z             {
2026-06-05T02:56:35.8252997Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-05T02:56:35.8253251Z               "line": 761
2026-06-05T02:56:35.8253474Z             },
2026-06-05T02:56:35.8253709Z             {
2026-06-05T02:56:35.8254006Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8254263Z               "line": 2550
2026-06-05T02:56:35.8254760Z             },
2026-06-05T02:56:35.8255019Z             {
2026-06-05T02:56:35.8255336Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8255719Z               "line": 2878
2026-06-05T02:56:35.8255957Z             },
2026-06-05T02:56:35.8256185Z             {
2026-06-05T02:56:35.8256496Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8256744Z               "line": 2936
2026-06-05T02:56:35.8256983Z             },
2026-06-05T02:56:35.8257221Z             {
2026-06-05T02:56:35.8257529Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8257783Z               "line": 2962
2026-06-05T02:56:35.8258010Z             }
2026-06-05T02:56:35.8258246Z           ]
2026-06-05T02:56:35.8258469Z         }
2026-06-05T02:56:35.8258702Z       }
2026-06-05T02:56:35.8258932Z     },
2026-06-05T02:56:35.8259152Z     {
2026-06-05T02:56:35.8259453Z       "id": "REQ-START-1",
2026-06-05T02:56:35.8260041Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-05T02:56:35.8260316Z       "requiredStages": [
2026-06-05T02:56:35.8260547Z         "impl",
2026-06-05T02:56:35.8260793Z         "unit"
2026-06-05T02:56:35.8261025Z       ],
2026-06-05T02:56:35.8261256Z       "stages": {
2026-06-05T02:56:35.8261490Z         "doc": {
2026-06-05T02:56:35.8261750Z           "complete": false,
2026-06-05T02:56:35.8262000Z           "evidence": []
2026-06-05T02:56:35.8262225Z         },
2026-06-05T02:56:35.8262477Z         "impl": {
2026-06-05T02:56:35.8262741Z           "complete": true,
2026-06-05T02:56:35.8262982Z           "evidence": [
2026-06-05T02:56:35.8263214Z             {
2026-06-05T02:56:35.8263541Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T02:56:35.8263794Z               "line": 16
2026-06-05T02:56:35.8264023Z             }
2026-06-05T02:56:35.8264267Z           ]
2026-06-05T02:56:35.8264501Z         },
2026-06-05T02:56:35.8264729Z         "int": {
2026-06-05T02:56:35.8264997Z           "complete": false,
2026-06-05T02:56:35.8265247Z           "evidence": []
2026-06-05T02:56:35.8265486Z         },
2026-06-05T02:56:35.8265714Z         "unit": {
2026-06-05T02:56:35.8265987Z           "complete": true,
2026-06-05T02:56:35.8266241Z           "evidence": [
2026-06-05T02:56:35.8266468Z             {
2026-06-05T02:56:35.8266800Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T02:56:35.8267038Z               "line": 43
2026-06-05T02:56:35.8267271Z             },
2026-06-05T02:56:35.8267496Z             {
2026-06-05T02:56:35.8267830Z               "path": "crates/spt-store/src/seed.rs",
2026-06-05T02:56:35.8268083Z               "line": 59
2026-06-05T02:56:35.8268309Z             }
2026-06-05T02:56:35.8268546Z           ]
2026-06-05T02:56:35.8268769Z         }
2026-06-05T02:56:35.8269006Z       }
2026-06-05T02:56:35.8269273Z     },
2026-06-05T02:56:35.8269510Z     {
2026-06-05T02:56:35.8269777Z       "id": "REQ-START-2",
2026-06-05T02:56:35.8270188Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-05T02:56:35.8270469Z       "requiredStages": [
2026-06-05T02:56:35.8270700Z         "impl",
2026-06-05T02:56:35.8270936Z         "unit",
2026-06-05T02:56:35.8271173Z         "int"
2026-06-05T02:56:35.8271406Z       ],
2026-06-05T02:56:35.8271647Z       "stages": {
2026-06-05T02:56:35.8271874Z         "doc": {
2026-06-05T02:56:35.8272138Z           "complete": false,
2026-06-05T02:56:35.8272376Z           "evidence": []
2026-06-05T02:56:35.8272613Z         },
2026-06-05T02:56:35.8272844Z         "impl": {
2026-06-05T02:56:35.8273106Z           "complete": true,
2026-06-05T02:56:35.8273356Z           "evidence": [
2026-06-05T02:56:35.8273581Z             {
2026-06-05T02:56:35.8273923Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8274163Z               "line": 16
2026-06-05T02:56:35.8274401Z             },
2026-06-05T02:56:35.8274623Z             {
2026-06-05T02:56:35.8274959Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8275374Z               "line": 97
2026-06-05T02:56:35.8275613Z             },
2026-06-05T02:56:35.8275850Z             {
2026-06-05T02:56:35.8276183Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8276616Z               "line": 203
2026-06-05T02:56:35.8276841Z             }
2026-06-05T02:56:35.8277079Z           ]
2026-06-05T02:56:35.8277311Z         },
2026-06-05T02:56:35.8277539Z         "int": {
2026-06-05T02:56:35.8277803Z           "complete": true,
2026-06-05T02:56:35.8278044Z           "evidence": [
2026-06-05T02:56:35.8278286Z             {
2026-06-05T02:56:35.8278670Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.8278991Z               "line": 150
2026-06-05T02:56:35.8279294Z             }
2026-06-05T02:56:35.8279534Z           ]
2026-06-05T02:56:35.8279772Z         },
2026-06-05T02:56:35.8285451Z         "unit": {
2026-06-05T02:56:35.8285870Z           "complete": true,
2026-06-05T02:56:35.8286131Z           "evidence": [
2026-06-05T02:56:35.8286373Z             {
2026-06-05T02:56:35.8286755Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8287009Z               "line": 411
2026-06-05T02:56:35.8287265Z             },
2026-06-05T02:56:35.8287494Z             {
2026-06-05T02:56:35.8287836Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8288079Z               "line": 444
2026-06-05T02:56:35.8288315Z             }
2026-06-05T02:56:35.8288547Z           ]
2026-06-05T02:56:35.8288768Z         }
2026-06-05T02:56:35.8288997Z       }
2026-06-05T02:56:35.8289295Z     },
2026-06-05T02:56:35.8289532Z     {
2026-06-05T02:56:35.8289786Z       "id": "REQ-START-3",
2026-06-05T02:56:35.8290295Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-05T02:56:35.8290567Z       "requiredStages": [
2026-06-05T02:56:35.8290798Z         "impl",
2026-06-05T02:56:35.8291036Z         "unit",
2026-06-05T02:56:35.8291266Z         "int"
2026-06-05T02:56:35.8291499Z       ],
2026-06-05T02:56:35.8291742Z       "stages": {
2026-06-05T02:56:35.8291986Z         "doc": {
2026-06-05T02:56:35.8292252Z           "complete": false,
2026-06-05T02:56:35.8292501Z           "evidence": []
2026-06-05T02:56:35.8292741Z         },
2026-06-05T02:56:35.8292974Z         "impl": {
2026-06-05T02:56:35.8293239Z           "complete": true,
2026-06-05T02:56:35.8293483Z           "evidence": [
2026-06-05T02:56:35.8293720Z             {
2026-06-05T02:56:35.8294068Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8294314Z               "line": 23
2026-06-05T02:56:35.8294551Z             },
2026-06-05T02:56:35.8294775Z             {
2026-06-05T02:56:35.8295119Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8295363Z               "line": 167
2026-06-05T02:56:35.8295607Z             },
2026-06-05T02:56:35.8295845Z             {
2026-06-05T02:56:35.8296181Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8296430Z               "line": 180
2026-06-05T02:56:35.8296666Z             },
2026-06-05T02:56:35.8296897Z             {
2026-06-05T02:56:35.8297216Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8297476Z               "line": 17
2026-06-05T02:56:35.8297711Z             },
2026-06-05T02:56:35.8297934Z             {
2026-06-05T02:56:35.8298264Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8298504Z               "line": 43
2026-06-05T02:56:35.8298737Z             },
2026-06-05T02:56:35.8298958Z             {
2026-06-05T02:56:35.8299344Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8299599Z               "line": 98
2026-06-05T02:56:35.8299821Z             }
2026-06-05T02:56:35.8300054Z           ]
2026-06-05T02:56:35.8300277Z         },
2026-06-05T02:56:35.8300517Z         "int": {
2026-06-05T02:56:35.8300766Z           "complete": true,
2026-06-05T02:56:35.8301015Z           "evidence": [
2026-06-05T02:56:35.8301248Z             {
2026-06-05T02:56:35.8301834Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-05T02:56:35.8302126Z               "line": 321
2026-06-05T02:56:35.8302353Z             }
2026-06-05T02:56:35.8302729Z           ]
2026-06-05T02:56:35.8302952Z         },
2026-06-05T02:56:35.8303195Z         "unit": {
2026-06-05T02:56:35.8303462Z           "complete": true,
2026-06-05T02:56:35.8303702Z           "evidence": [
2026-06-05T02:56:35.8303937Z             {
2026-06-05T02:56:35.8304275Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8304533Z               "line": 245
2026-06-05T02:56:35.8304763Z             },
2026-06-05T02:56:35.8305009Z             {
2026-06-05T02:56:35.8305358Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8305600Z               "line": 263
2026-06-05T02:56:35.8305840Z             },
2026-06-05T02:56:35.8306066Z             {
2026-06-05T02:56:35.8306413Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-05T02:56:35.8306657Z               "line": 273
2026-06-05T02:56:35.8306891Z             },
2026-06-05T02:56:35.8307125Z             {
2026-06-05T02:56:35.8307444Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8307703Z               "line": 412
2026-06-05T02:56:35.8307925Z             },
2026-06-05T02:56:35.8308157Z             {
2026-06-05T02:56:35.8308488Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8308726Z               "line": 445
2026-06-05T02:56:35.8308965Z             },
2026-06-05T02:56:35.8309234Z             {
2026-06-05T02:56:35.8309569Z               "path": "crates/spt/src/api/startup.rs",
2026-06-05T02:56:35.8309809Z               "line": 453
2026-06-05T02:56:35.8310048Z             }
2026-06-05T02:56:35.8310281Z           ]
2026-06-05T02:56:35.8310509Z         }
2026-06-05T02:56:35.8310741Z       }
2026-06-05T02:56:35.8310964Z     },
2026-06-05T02:56:35.8311194Z     {
2026-06-05T02:56:35.8311444Z       "id": "REQ-START-4",
2026-06-05T02:56:35.8311860Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-05T02:56:35.8312127Z       "requiredStages": [
2026-06-05T02:56:35.8312357Z         "impl",
2026-06-05T02:56:35.8312612Z         "unit"
2026-06-05T02:56:35.8312839Z       ],
2026-06-05T02:56:35.8313080Z       "stages": {
2026-06-05T02:56:35.8313308Z         "doc": {
2026-06-05T02:56:35.8313568Z           "complete": false,
2026-06-05T02:56:35.8313821Z           "evidence": []
2026-06-05T02:56:35.8314044Z         },
2026-06-05T02:56:35.8314288Z         "impl": {
2026-06-05T02:56:35.8314540Z           "complete": true,
2026-06-05T02:56:35.8314793Z           "evidence": [
2026-06-05T02:56:35.8315024Z             {
2026-06-05T02:56:35.8315373Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.8315626Z               "line": 363
2026-06-05T02:56:35.8315847Z             }
2026-06-05T02:56:35.8316081Z           ]
2026-06-05T02:56:35.8316304Z         },
2026-06-05T02:56:35.8316545Z         "int": {
2026-06-05T02:56:35.8316806Z           "complete": false,
2026-06-05T02:56:35.8317074Z           "evidence": []
2026-06-05T02:56:35.8317298Z         },
2026-06-05T02:56:35.8317536Z         "unit": {
2026-06-05T02:56:35.8317800Z           "complete": true,
2026-06-05T02:56:35.8318044Z           "evidence": [
2026-06-05T02:56:35.8318275Z             {
2026-06-05T02:56:35.8318610Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-05T02:56:35.8318861Z               "line": 594
2026-06-05T02:56:35.8319097Z             }
2026-06-05T02:56:35.8319363Z           ]
2026-06-05T02:56:35.8319598Z         }
2026-06-05T02:56:35.8319821Z       }
2026-06-05T02:56:35.8320053Z     },
2026-06-05T02:56:35.8320275Z     {
2026-06-05T02:56:35.8320539Z       "id": "REQ-STORE-1",
2026-06-05T02:56:35.8323464Z       "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-05T02:56:35.8323738Z       "requiredStages": [
2026-06-05T02:56:35.8323983Z         "impl",
2026-06-05T02:56:35.8324348Z         "unit"
2026-06-05T02:56:35.8324592Z       ],
2026-06-05T02:56:35.8324841Z       "stages": {
2026-06-05T02:56:35.8325075Z         "doc": {
2026-06-05T02:56:35.8325341Z           "complete": false,
2026-06-05T02:56:35.8325586Z           "evidence": []
2026-06-05T02:56:35.8325820Z         },
2026-06-05T02:56:35.8326052Z         "impl": {
2026-06-05T02:56:35.8326313Z           "complete": true,
2026-06-05T02:56:35.8326560Z           "evidence": [
2026-06-05T02:56:35.8326788Z             {
2026-06-05T02:56:35.8327162Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8327405Z               "line": 23
2026-06-05T02:56:35.8327639Z             },
2026-06-05T02:56:35.8327871Z             {
2026-06-05T02:56:35.8328248Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8328504Z               "line": 46
2026-06-05T02:56:35.8328732Z             },
2026-06-05T02:56:35.8328967Z             {
2026-06-05T02:56:35.8329377Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8329633Z               "line": 88
2026-06-05T02:56:35.8329864Z             },
2026-06-05T02:56:35.8330099Z             {
2026-06-05T02:56:35.8335706Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8336271Z               "line": 109
2026-06-05T02:56:35.8336836Z             },
2026-06-05T02:56:35.8337367Z             {
2026-06-05T02:56:35.8337787Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8338049Z               "line": 152
2026-06-05T02:56:35.8338432Z             },
2026-06-05T02:56:35.8338664Z             {
2026-06-05T02:56:35.8339032Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8339383Z               "line": 165
2026-06-05T02:56:35.8339627Z             },
2026-06-05T02:56:35.8339892Z             {
2026-06-05T02:56:35.8340252Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8340503Z               "line": 353
2026-06-05T02:56:35.8340749Z             },
2026-06-05T02:56:35.8340977Z             {
2026-06-05T02:56:35.8341348Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8341589Z               "line": 25
2026-06-05T02:56:35.8341823Z             },
2026-06-05T02:56:35.8342046Z             {
2026-06-05T02:56:35.8342420Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8342673Z               "line": 101
2026-06-05T02:56:35.8342896Z             },
2026-06-05T02:56:35.8343129Z             {
2026-06-05T02:56:35.8343498Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8343755Z               "line": 126
2026-06-05T02:56:35.8343992Z             },
2026-06-05T02:56:35.8344218Z             {
2026-06-05T02:56:35.8344595Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8344839Z               "line": 140
2026-06-05T02:56:35.8345074Z             },
2026-06-05T02:56:35.8345310Z             {
2026-06-05T02:56:35.8345688Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8345938Z               "line": 154
2026-06-05T02:56:35.8346162Z             },
2026-06-05T02:56:35.8346394Z             {
2026-06-05T02:56:35.8346752Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8347005Z               "line": 163
2026-06-05T02:56:35.8347236Z             },
2026-06-05T02:56:35.8347468Z             {
2026-06-05T02:56:35.8347814Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T02:56:35.8348060Z               "line": 16
2026-06-05T02:56:35.8348292Z             },
2026-06-05T02:56:35.8348515Z             {
2026-06-05T02:56:35.8348862Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T02:56:35.8349105Z               "line": 63
2026-06-05T02:56:35.8349622Z             }
2026-06-05T02:56:35.8349882Z           ]
2026-06-05T02:56:35.8350106Z         },
2026-06-05T02:56:35.8350344Z         "int": {
2026-06-05T02:56:35.8350730Z           "complete": false,
2026-06-05T02:56:35.8350989Z           "evidence": []
2026-06-05T02:56:35.8351217Z         },
2026-06-05T02:56:35.8351461Z         "unit": {
2026-06-05T02:56:35.8351728Z           "complete": true,
2026-06-05T02:56:35.8351969Z           "evidence": [
2026-06-05T02:56:35.8352203Z             {
2026-06-05T02:56:35.8352563Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8352812Z               "line": 468
2026-06-05T02:56:35.8353041Z             },
2026-06-05T02:56:35.8353274Z             {
2026-06-05T02:56:35.8353636Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8353879Z               "line": 478
2026-06-05T02:56:35.8354118Z             },
2026-06-05T02:56:35.8354337Z             {
2026-06-05T02:56:35.8354716Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8354962Z               "line": 498
2026-06-05T02:56:35.8355200Z             },
2026-06-05T02:56:35.8355447Z             {
2026-06-05T02:56:35.8355805Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8356059Z               "line": 514
2026-06-05T02:56:35.8356285Z             },
2026-06-05T02:56:35.8356521Z             {
2026-06-05T02:56:35.8356878Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-05T02:56:35.8357131Z               "line": 535
2026-06-05T02:56:35.8357368Z             },
2026-06-05T02:56:35.8357593Z             {
2026-06-05T02:56:35.8357968Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8358209Z               "line": 427
2026-06-05T02:56:35.8358450Z             },
2026-06-05T02:56:35.8358684Z             {
2026-06-05T02:56:35.8359048Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-05T02:56:35.8359342Z               "line": 457
2026-06-05T02:56:35.8359585Z             },
2026-06-05T02:56:35.8359815Z             {
2026-06-05T02:56:35.8360154Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T02:56:35.8360413Z               "line": 116
2026-06-05T02:56:35.8360650Z             },
2026-06-05T02:56:35.8360880Z             {
2026-06-05T02:56:35.8361226Z               "path": "crates/spt-store/src/project.rs",
2026-06-05T02:56:35.8361468Z               "line": 124
2026-06-05T02:56:35.8361700Z             }
2026-06-05T02:56:35.8361923Z           ]
2026-06-05T02:56:35.8362157Z         }
2026-06-05T02:56:35.8362390Z       }
2026-06-05T02:56:35.8362613Z     },
2026-06-05T02:56:35.8362841Z     {
2026-06-05T02:56:35.8363094Z       "id": "REQ-TERM-1",
2026-06-05T02:56:35.8363610Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-05T02:56:35.8363869Z       "requiredStages": [
2026-06-05T02:56:35.8364111Z         "impl",
2026-06-05T02:56:35.8364349Z         "unit"
2026-06-05T02:56:35.8364580Z       ],
2026-06-05T02:56:35.8364830Z       "stages": {
2026-06-05T02:56:35.8365061Z         "doc": {
2026-06-05T02:56:35.8365322Z           "complete": false,
2026-06-05T02:56:35.8365568Z           "evidence": []
2026-06-05T02:56:35.8365800Z         },
2026-06-05T02:56:35.8366048Z         "impl": {
2026-06-05T02:56:35.8366297Z           "complete": true,
2026-06-05T02:56:35.8366546Z           "evidence": [
2026-06-05T02:56:35.8366770Z             {
2026-06-05T02:56:35.8367108Z               "path": "crates/spt-term/src/pty.rs",
2026-06-05T02:56:35.8367349Z               "line": 61
2026-06-05T02:56:35.8367586Z             },
2026-06-05T02:56:35.8367820Z             {
2026-06-05T02:56:35.8368129Z               "path": "crates/spt-term/src/pty.rs",
2026-06-05T02:56:35.8368378Z               "line": 169
2026-06-05T02:56:35.8368601Z             },
2026-06-05T02:56:35.8368835Z             {
2026-06-05T02:56:35.8369213Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T02:56:35.8369467Z               "line": 95
2026-06-05T02:56:35.8369987Z             }
2026-06-05T02:56:35.8370253Z           ]
2026-06-05T02:56:35.8370495Z         },
2026-06-05T02:56:35.8370866Z         "int": {
2026-06-05T02:56:35.8371131Z           "complete": false,
2026-06-05T02:56:35.8371370Z           "evidence": []
2026-06-05T02:56:35.8371602Z         },
2026-06-05T02:56:35.8371844Z         "unit": {
2026-06-05T02:56:35.8372097Z           "complete": true,
2026-06-05T02:56:35.8372345Z           "evidence": [
2026-06-05T02:56:35.8372573Z             {
2026-06-05T02:56:35.8372927Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-05T02:56:35.8373167Z               "line": 28
2026-06-05T02:56:35.8373405Z             },
2026-06-05T02:56:35.8373640Z             {
2026-06-05T02:56:35.8373978Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-05T02:56:35.8374228Z               "line": 60
2026-06-05T02:56:35.8374449Z             }
2026-06-05T02:56:35.8374682Z           ]
2026-06-05T02:56:35.8374903Z         }
2026-06-05T02:56:35.8375151Z       }
2026-06-05T02:56:35.8375383Z     },
2026-06-05T02:56:35.8375602Z     {
2026-06-05T02:56:35.8375860Z       "id": "REQ-TERM-2",
2026-06-05T02:56:35.8376424Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-05T02:56:35.8376687Z       "requiredStages": [
2026-06-05T02:56:35.8376920Z         "impl",
2026-06-05T02:56:35.8377157Z         "unit"
2026-06-05T02:56:35.8377389Z       ],
2026-06-05T02:56:35.8377626Z       "stages": {
2026-06-05T02:56:35.8377863Z         "doc": {
2026-06-05T02:56:35.8378124Z           "complete": false,
2026-06-05T02:56:35.8378380Z           "evidence": []
2026-06-05T02:56:35.8378604Z         },
2026-06-05T02:56:35.8378842Z         "impl": {
2026-06-05T02:56:35.8379106Z           "complete": true,
2026-06-05T02:56:35.8379402Z           "evidence": [
2026-06-05T02:56:35.8379644Z             {
2026-06-05T02:56:35.8379981Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T02:56:35.8380234Z               "line": 112
2026-06-05T02:56:35.8386322Z             },
2026-06-05T02:56:35.8386931Z             {
2026-06-05T02:56:35.8387337Z               "path": "crates/spt-term/src/surface.rs",
2026-06-05T02:56:35.8387617Z               "line": 122
2026-06-05T02:56:35.8387865Z             }
2026-06-05T02:56:35.8388102Z           ]
2026-06-05T02:56:35.8388344Z         },
2026-06-05T02:56:35.8388590Z         "int": {
2026-06-05T02:56:35.8388891Z           "complete": false,
2026-06-05T02:56:35.8389280Z           "evidence": []
2026-06-05T02:56:35.8389689Z         },
2026-06-05T02:56:35.8390096Z         "unit": {
2026-06-05T02:56:35.8390357Z           "complete": true,
2026-06-05T02:56:35.8390623Z           "evidence": [
2026-06-05T02:56:35.8390855Z             {
2026-06-05T02:56:35.8391241Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-05T02:56:35.8391510Z               "line": 46
2026-06-05T02:56:35.8391750Z             },
2026-06-05T02:56:35.8392000Z             {
2026-06-05T02:56:35.8392376Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-05T02:56:35.8392640Z               "line": 71
2026-06-05T02:56:35.8392882Z             }
2026-06-05T02:56:35.8393142Z           ]
2026-06-05T02:56:35.8393402Z         }
2026-06-05T02:56:35.8393643Z       }
2026-06-05T02:56:35.8393891Z     },
2026-06-05T02:56:35.8394124Z     {
2026-06-05T02:56:35.8394402Z       "id": "REQ-TERM-3",
2026-06-05T02:56:35.8394834Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-05T02:56:35.8395125Z       "requiredStages": [
2026-06-05T02:56:35.8395386Z         "impl",
2026-06-05T02:56:35.8395635Z         "unit"
2026-06-05T02:56:35.8395887Z       ],
2026-06-05T02:56:35.8396138Z       "stages": {
2026-06-05T02:56:35.8396400Z         "doc": {
2026-06-05T02:56:35.8396680Z           "complete": false,
2026-06-05T02:56:35.8397056Z           "evidence": []
2026-06-05T02:56:35.8397308Z         },
2026-06-05T02:56:35.8397563Z         "impl": {
2026-06-05T02:56:35.8397852Z           "complete": true,
2026-06-05T02:56:35.8398550Z           "evidence": [
2026-06-05T02:56:35.8398841Z             {
2026-06-05T02:56:35.8399354Z               "path": "crates/spt-term/src/stream.rs",
2026-06-05T02:56:35.8399996Z               "line": 71
2026-06-05T02:56:35.8400264Z             }
2026-06-05T02:56:35.8400519Z           ]
2026-06-05T02:56:35.8400770Z         },
2026-06-05T02:56:35.8401026Z         "int": {
2026-06-05T02:56:35.8401323Z           "complete": false,
2026-06-05T02:56:35.8401596Z           "evidence": []
2026-06-05T02:56:35.8401853Z         },
2026-06-05T02:56:35.8402121Z         "unit": {
2026-06-05T02:56:35.8402397Z           "complete": true,
2026-06-05T02:56:35.8402683Z           "evidence": [
2026-06-05T02:56:35.8402930Z             {
2026-06-05T02:56:35.8403335Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-05T02:56:35.8403636Z               "line": 37
2026-06-05T02:56:35.8403940Z             },
2026-06-05T02:56:35.8404237Z             {
2026-06-05T02:56:35.8404660Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-05T02:56:35.8404967Z               "line": 67
2026-06-05T02:56:35.8405217Z             }
2026-06-05T02:56:35.8405494Z           ]
2026-06-05T02:56:35.8405752Z         }
2026-06-05T02:56:35.8406022Z       }
2026-06-05T02:56:35.8406268Z     },
2026-06-05T02:56:35.8406544Z     {
2026-06-05T02:56:35.8406832Z       "id": "REQ-TERM-4",
2026-06-05T02:56:35.8408054Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-05T02:56:35.8408367Z       "requiredStages": [
2026-06-05T02:56:35.8408627Z         "impl",
2026-06-05T02:56:35.8408888Z         "unit",
2026-06-05T02:56:35.8409149Z         "int"
2026-06-05T02:56:35.8409621Z       ],
2026-06-05T02:56:35.8409882Z       "stages": {
2026-06-05T02:56:35.8410119Z         "doc": {
2026-06-05T02:56:35.8410408Z           "complete": true,
2026-06-05T02:56:35.8410667Z           "evidence": [
2026-06-05T02:56:35.8410918Z             {
2026-06-05T02:56:35.8411234Z               "path": "docs/MANIFEST.md",
2026-06-05T02:56:35.8411491Z               "line": 115
2026-06-05T02:56:35.8411737Z             }
2026-06-05T02:56:35.8411985Z           ]
2026-06-05T02:56:35.8412233Z         },
2026-06-05T02:56:35.8412481Z         "impl": {
2026-06-05T02:56:35.8412756Z           "complete": true,
2026-06-05T02:56:35.8413012Z           "evidence": [
2026-06-05T02:56:35.8413249Z             {
2026-06-05T02:56:35.8413621Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-05T02:56:35.8413879Z               "line": 463
2026-06-05T02:56:35.8414127Z             },
2026-06-05T02:56:35.8414365Z             {
2026-06-05T02:56:35.8414755Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8415020Z               "line": 41
2026-06-05T02:56:35.8415252Z             },
2026-06-05T02:56:35.8415498Z             {
2026-06-05T02:56:35.8415864Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8416123Z               "line": 91
2026-06-05T02:56:35.8416374Z             },
2026-06-05T02:56:35.8416623Z             {
2026-06-05T02:56:35.8416984Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8417252Z               "line": 152
2026-06-05T02:56:35.8417501Z             },
2026-06-05T02:56:35.8417732Z             {
2026-06-05T02:56:35.8418097Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8418356Z               "line": 212
2026-06-05T02:56:35.8418612Z             },
2026-06-05T02:56:35.8418854Z             {
2026-06-05T02:56:35.8419442Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8419740Z               "line": 20
2026-06-05T02:56:35.8420135Z             },
2026-06-05T02:56:35.8420375Z             {
2026-06-05T02:56:35.8420737Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8420999Z               "line": 212
2026-06-05T02:56:35.8421250Z             },
2026-06-05T02:56:35.8421484Z             {
2026-06-05T02:56:35.8422126Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8422427Z               "line": 226
2026-06-05T02:56:35.8422843Z             },
2026-06-05T02:56:35.8423083Z             {
2026-06-05T02:56:35.8423466Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.8423727Z               "line": 585
2026-06-05T02:56:35.8423961Z             },
2026-06-05T02:56:35.8424204Z             {
2026-06-05T02:56:35.8424550Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8424814Z               "line": 157
2026-06-05T02:56:35.8425096Z             },
2026-06-05T02:56:35.8425353Z             {
2026-06-05T02:56:35.8425713Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8425987Z               "line": 199
2026-06-05T02:56:35.8426244Z             },
2026-06-05T02:56:35.8426495Z             {
2026-06-05T02:56:35.8426867Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8427140Z               "line": 226
2026-06-05T02:56:35.8427375Z             },
2026-06-05T02:56:35.8427613Z             {
2026-06-05T02:56:35.8427911Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8428183Z               "line": 517
2026-06-05T02:56:35.8428412Z             }
2026-06-05T02:56:35.8428664Z           ]
2026-06-05T02:56:35.8428914Z         },
2026-06-05T02:56:35.8429226Z         "int": {
2026-06-05T02:56:35.8429698Z           "complete": true,
2026-06-05T02:56:35.8430111Z           "evidence": [
2026-06-05T02:56:35.8430361Z             {
2026-06-05T02:56:35.8430723Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-05T02:56:35.8431000Z               "line": 18
2026-06-05T02:56:35.8431260Z             }
2026-06-05T02:56:35.8431503Z           ]
2026-06-05T02:56:35.8431749Z         },
2026-06-05T02:56:35.8431997Z         "unit": {
2026-06-05T02:56:35.8432266Z           "complete": true,
2026-06-05T02:56:35.8432530Z           "evidence": [
2026-06-05T02:56:35.8432783Z             {
2026-06-05T02:56:35.8433203Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8433487Z               "line": 250
2026-06-05T02:56:35.8433785Z             },
2026-06-05T02:56:35.8434040Z             {
2026-06-05T02:56:35.8434422Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8434698Z               "line": 263
2026-06-05T02:56:35.8434964Z             },
2026-06-05T02:56:35.8442788Z             {
2026-06-05T02:56:35.8443477Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8443776Z               "line": 275
2026-06-05T02:56:35.8444035Z             },
2026-06-05T02:56:35.8444304Z             {
2026-06-05T02:56:35.8444690Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8444988Z               "line": 290
2026-06-05T02:56:35.8445261Z             },
2026-06-05T02:56:35.8445517Z             {
2026-06-05T02:56:35.8445912Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8446221Z               "line": 305
2026-06-05T02:56:35.8446499Z             },
2026-06-05T02:56:35.8446763Z             {
2026-06-05T02:56:35.8447162Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8447470Z               "line": 327
2026-06-05T02:56:35.8447732Z             },
2026-06-05T02:56:35.8447999Z             {
2026-06-05T02:56:35.8448382Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8448678Z               "line": 337
2026-06-05T02:56:35.8448943Z             },
2026-06-05T02:56:35.8449294Z             {
2026-06-05T02:56:35.8449846Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-05T02:56:35.8450114Z               "line": 364
2026-06-05T02:56:35.8450382Z             },
2026-06-05T02:56:35.8450637Z             {
2026-06-05T02:56:35.8451042Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8451323Z               "line": 338
2026-06-05T02:56:35.8451600Z             },
2026-06-05T02:56:35.8451872Z             {
2026-06-05T02:56:35.8452681Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8453022Z               "line": 350
2026-06-05T02:56:35.8453434Z             },
2026-06-05T02:56:35.8453707Z             {
2026-06-05T02:56:35.8454085Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8454375Z               "line": 367
2026-06-05T02:56:35.8454635Z             },
2026-06-05T02:56:35.8454882Z             {
2026-06-05T02:56:35.8455269Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-05T02:56:35.8455534Z               "line": 378
2026-06-05T02:56:35.8455790Z             },
2026-06-05T02:56:35.8456042Z             {
2026-06-05T02:56:35.8456426Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.8456707Z               "line": 770
2026-06-05T02:56:35.8456954Z             },
2026-06-05T02:56:35.8457215Z             {
2026-06-05T02:56:35.8457593Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.8457893Z               "line": 777
2026-06-05T02:56:35.8458152Z             },
2026-06-05T02:56:35.8458404Z             {
2026-06-05T02:56:35.8458805Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.8459081Z               "line": 792
2026-06-05T02:56:35.8459591Z             },
2026-06-05T02:56:35.8460013Z             {
2026-06-05T02:56:35.8460375Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8460648Z               "line": 381
2026-06-05T02:56:35.8460895Z             },
2026-06-05T02:56:35.8461153Z             {
2026-06-05T02:56:35.8461504Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8461789Z               "line": 402
2026-06-05T02:56:35.8462029Z             },
2026-06-05T02:56:35.8462284Z             {
2026-06-05T02:56:35.8462657Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8462938Z               "line": 415
2026-06-05T02:56:35.8463200Z             },
2026-06-05T02:56:35.8463455Z             {
2026-06-05T02:56:35.8463817Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8464092Z               "line": 434
2026-06-05T02:56:35.8464362Z             },
2026-06-05T02:56:35.8464612Z             {
2026-06-05T02:56:35.8464967Z               "path": "crates/spt-term/src/digest.rs",
2026-06-05T02:56:35.8465238Z               "line": 461
2026-06-05T02:56:35.8465492Z             },
2026-06-05T02:56:35.8465759Z             {
2026-06-05T02:56:35.8466136Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-05T02:56:35.8466423Z               "line": 32
2026-06-05T02:56:35.8466702Z             },
2026-06-05T02:56:35.8466954Z             {
2026-06-05T02:56:35.8467281Z               "path": "crates/spt/src/cli.rs",
2026-06-05T02:56:35.8467542Z               "line": 3460
2026-06-05T02:56:35.8467798Z             }
2026-06-05T02:56:35.8468037Z           ]
2026-06-05T02:56:35.8468296Z         }
2026-06-05T02:56:35.8468564Z       }
2026-06-05T02:56:35.8468823Z     },
2026-06-05T02:56:35.8469095Z     {
2026-06-05T02:56:35.8469612Z       "id": "REQ-UPD-1",
2026-06-05T02:56:35.8470010Z       "title": "Peer-propagated update over P2P",
2026-06-05T02:56:35.8470335Z       "requiredStages": [
2026-06-05T02:56:35.8471048Z         "impl",
2026-06-05T02:56:35.8471348Z         "unit",
2026-06-05T02:56:35.8471620Z         "int"
2026-06-05T02:56:35.8471925Z       ],
2026-06-05T02:56:35.8472214Z       "stages": {
2026-06-05T02:56:35.8472510Z         "doc": {
2026-06-05T02:56:35.8472821Z           "complete": false,
2026-06-05T02:56:35.8473122Z           "evidence": []
2026-06-05T02:56:35.8473397Z         },
2026-06-05T02:56:35.8473679Z         "impl": {
2026-06-05T02:56:35.8473999Z           "complete": true,
2026-06-05T02:56:35.8474312Z           "evidence": [
2026-06-05T02:56:35.8474644Z             {
2026-06-05T02:56:35.8475132Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.8475504Z               "line": 28
2026-06-05T02:56:35.8475838Z             },
2026-06-05T02:56:35.8476529Z             {
2026-06-05T02:56:35.8477020Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.8477501Z               "line": 74
2026-06-05T02:56:35.8477796Z             },
2026-06-05T02:56:35.8478072Z             {
2026-06-05T02:56:35.8478506Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.8478799Z               "line": 209
2026-06-05T02:56:35.8479073Z             },
2026-06-05T02:56:35.8479467Z             {
2026-06-05T02:56:35.8479907Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8480247Z               "line": 22
2026-06-05T02:56:35.8480584Z             },
2026-06-05T02:56:35.8480931Z             {
2026-06-05T02:56:35.8481529Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8481806Z               "line": 67
2026-06-05T02:56:35.8482068Z             },
2026-06-05T02:56:35.8482327Z             {
2026-06-05T02:56:35.8482739Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8483032Z               "line": 80
2026-06-05T02:56:35.8483297Z             },
2026-06-05T02:56:35.8484033Z             {
2026-06-05T02:56:35.8484462Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8484757Z               "line": 101
2026-06-05T02:56:35.8485021Z             },
2026-06-05T02:56:35.8485290Z             {
2026-06-05T02:56:35.8485696Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T02:56:35.8485977Z               "line": 37
2026-06-05T02:56:35.8486240Z             }
2026-06-05T02:56:35.8486501Z           ]
2026-06-05T02:56:35.8486771Z         },
2026-06-05T02:56:35.8487041Z         "int": {
2026-06-05T02:56:35.8487338Z           "complete": true,
2026-06-05T02:56:35.8487635Z           "evidence": [
2026-06-05T02:56:35.8487915Z             {
2026-06-05T02:56:35.8488340Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-05T02:56:35.8488631Z               "line": 190
2026-06-05T02:56:35.8488927Z             },
2026-06-05T02:56:35.8489268Z             {
2026-06-05T02:56:35.8489700Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-05T02:56:35.8490153Z               "line": 732
2026-06-05T02:56:35.8490410Z             }
2026-06-05T02:56:35.8490674Z           ]
2026-06-05T02:56:35.8490935Z         },
2026-06-05T02:56:35.8491211Z         "unit": {
2026-06-05T02:56:35.8491515Z           "complete": true,
2026-06-05T02:56:35.8491821Z           "evidence": [
2026-06-05T02:56:35.8492092Z             {
2026-06-05T02:56:35.8492493Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8492792Z               "line": 120
2026-06-05T02:56:35.8493059Z             },
2026-06-05T02:56:35.8493333Z             {
2026-06-05T02:56:35.8493714Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-05T02:56:35.8494008Z               "line": 137
2026-06-05T02:56:35.8494275Z             },
2026-06-05T02:56:35.8494526Z             {
2026-06-05T02:56:35.8494961Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T02:56:35.8495236Z               "line": 201
2026-06-05T02:56:35.8495514Z             },
2026-06-05T02:56:35.8503308Z             {
2026-06-05T02:56:35.8503950Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T02:56:35.8504240Z               "line": 92
2026-06-05T02:56:35.8504494Z             },
2026-06-05T02:56:35.8504754Z             {
2026-06-05T02:56:35.8505129Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-05T02:56:35.8505402Z               "line": 128
2026-06-05T02:56:35.8505650Z             }
2026-06-05T02:56:35.8505909Z           ]
2026-06-05T02:56:35.8506164Z         }
2026-06-05T02:56:35.8506416Z       }
2026-06-05T02:56:35.8506665Z     },
2026-06-05T02:56:35.8506908Z     {
2026-06-05T02:56:35.8507193Z       "id": "REQ-UPD-2",
2026-06-05T02:56:35.8507650Z       "title": "All binaries signature-verified before handoff",
2026-06-05T02:56:35.8507944Z       "requiredStages": [
2026-06-05T02:56:35.8508720Z         "impl",
2026-06-05T02:56:35.8509029Z         "unit"
2026-06-05T02:56:35.8509384Z       ],
2026-06-05T02:56:35.8509663Z       "stages": {
2026-06-05T02:56:35.8510136Z         "doc": {
2026-06-05T02:56:35.8510432Z           "complete": false,
2026-06-05T02:56:35.8510713Z           "evidence": []
2026-06-05T02:56:35.8510976Z         },
2026-06-05T02:56:35.8511244Z         "impl": {
2026-06-05T02:56:35.8511537Z           "complete": true,
2026-06-05T02:56:35.8511809Z           "evidence": [
2026-06-05T02:56:35.8512070Z             {
2026-06-05T02:56:35.8512462Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.8512738Z               "line": 210
2026-06-05T02:56:35.8512994Z             },
2026-06-05T02:56:35.8513247Z             {
2026-06-05T02:56:35.8513800Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-05T02:56:35.8514055Z               "line": 294
2026-06-05T02:56:35.8514307Z             },
2026-06-05T02:56:35.8514540Z             {
2026-06-05T02:56:35.8514930Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8515214Z               "line": 29
2026-06-05T02:56:35.8515464Z             },
2026-06-05T02:56:35.8515706Z             {
2026-06-05T02:56:35.8516064Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8516339Z               "line": 126
2026-06-05T02:56:35.8516576Z             },
2026-06-05T02:56:35.8516829Z             {
2026-06-05T02:56:35.8517196Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8517461Z               "line": 138
2026-06-05T02:56:35.8517715Z             },
2026-06-05T02:56:35.8517957Z             {
2026-06-05T02:56:35.8518339Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8518599Z               "line": 220
2026-06-05T02:56:35.8518858Z             },
2026-06-05T02:56:35.8519110Z             {
2026-06-05T02:56:35.8519863Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8520166Z               "line": 301
2026-06-05T02:56:35.8520416Z             },
2026-06-05T02:56:35.8520678Z             {
2026-06-05T02:56:35.8521055Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8521335Z               "line": 149
2026-06-05T02:56:35.8521587Z             }
2026-06-05T02:56:35.8521824Z           ]
2026-06-05T02:56:35.8522076Z         },
2026-06-05T02:56:35.8522319Z         "int": {
2026-06-05T02:56:35.8522599Z           "complete": false,
2026-06-05T02:56:35.8522866Z           "evidence": []
2026-06-05T02:56:35.8523119Z         },
2026-06-05T02:56:35.8523379Z         "unit": {
2026-06-05T02:56:35.8523647Z           "complete": true,
2026-06-05T02:56:35.8523922Z           "evidence": [
2026-06-05T02:56:35.8524160Z             {
2026-06-05T02:56:35.8524533Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8524807Z               "line": 386
2026-06-05T02:56:35.8525065Z             },
2026-06-05T02:56:35.8525336Z             {
2026-06-05T02:56:35.8525897Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8526228Z               "line": 431
2026-06-05T02:56:35.8526540Z             },
2026-06-05T02:56:35.8526874Z             {
2026-06-05T02:56:35.8527359Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8527704Z               "line": 445
2026-06-05T02:56:35.8527999Z             },
2026-06-05T02:56:35.8528267Z             {
2026-06-05T02:56:35.8528657Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8528958Z               "line": 456
2026-06-05T02:56:35.8529334Z             },
2026-06-05T02:56:35.8529635Z             {
2026-06-05T02:56:35.8530052Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8530362Z               "line": 532
2026-06-05T02:56:35.8530642Z             },
2026-06-05T02:56:35.8530902Z             {
2026-06-05T02:56:35.8531273Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8531867Z               "line": 334
2026-06-05T02:56:35.8532180Z             },
2026-06-05T02:56:35.8532433Z             {
2026-06-05T02:56:35.8532828Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8533307Z               "line": 347
2026-06-05T02:56:35.8533607Z             },
2026-06-05T02:56:35.8533906Z             {
2026-06-05T02:56:35.8534338Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-05T02:56:35.8534622Z               "line": 242
2026-06-05T02:56:35.8534879Z             }
2026-06-05T02:56:35.8535165Z           ]
2026-06-05T02:56:35.8535457Z         }
2026-06-05T02:56:35.8535720Z       }
2026-06-05T02:56:35.8535969Z     },
2026-06-05T02:56:35.8536227Z     {
2026-06-05T02:56:35.8536514Z       "id": "REQ-UPD-3",
2026-06-05T02:56:35.8537076Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-05T02:56:35.8537358Z       "requiredStages": [
2026-06-05T02:56:35.8537615Z         "impl",
2026-06-05T02:56:35.8537875Z         "unit",
2026-06-05T02:56:35.8538154Z         "int"
2026-06-05T02:56:35.8538424Z       ],
2026-06-05T02:56:35.8538696Z       "stages": {
2026-06-05T02:56:35.8538959Z         "doc": {
2026-06-05T02:56:35.8539310Z           "complete": false,
2026-06-05T02:56:35.8539588Z           "evidence": []
2026-06-05T02:56:35.8539839Z         },
2026-06-05T02:56:35.8540093Z         "impl": {
2026-06-05T02:56:35.8540373Z           "complete": true,
2026-06-05T02:56:35.8540655Z           "evidence": [
2026-06-05T02:56:35.8540905Z             {
2026-06-05T02:56:35.8541280Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8541550Z               "line": 26
2026-06-05T02:56:35.8541809Z             },
2026-06-05T02:56:35.8542057Z             {
2026-06-05T02:56:35.8542432Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8542709Z               "line": 111
2026-06-05T02:56:35.8542946Z             },
2026-06-05T02:56:35.8543206Z             {
2026-06-05T02:56:35.8543595Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8543890Z               "line": 221
2026-06-05T02:56:35.8544157Z             }
2026-06-05T02:56:35.8544424Z           ]
2026-06-05T02:56:35.8544672Z         },
2026-06-05T02:56:35.8544915Z         "int": {
2026-06-05T02:56:35.8545203Z           "complete": true,
2026-06-05T02:56:35.8545464Z           "evidence": [
2026-06-05T02:56:35.8545737Z             {
2026-06-05T02:56:35.8546155Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-05T02:56:35.8546433Z               "line": 23
2026-06-05T02:56:35.8546685Z             }
2026-06-05T02:56:35.8546941Z           ]
2026-06-05T02:56:35.8547216Z         },
2026-06-05T02:56:35.8547466Z         "unit": {
2026-06-05T02:56:35.8547753Z           "complete": true,
2026-06-05T02:56:35.8548018Z           "evidence": [
2026-06-05T02:56:35.8548269Z             {
2026-06-05T02:56:35.8548646Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8548940Z               "line": 246
2026-06-05T02:56:35.8549288Z             },
2026-06-05T02:56:35.8549584Z             {
2026-06-05T02:56:35.8549985Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8550287Z               "line": 270
2026-06-05T02:56:35.8550569Z             },
2026-06-05T02:56:35.8550844Z             {
2026-06-05T02:56:35.8551228Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8551514Z               "line": 281
2026-06-05T02:56:35.8551772Z             },
2026-06-05T02:56:35.8552038Z             {
2026-06-05T02:56:35.8552412Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-05T02:56:35.8552703Z               "line": 294
2026-06-05T02:56:35.8560379Z             }
2026-06-05T02:56:35.8560854Z           ]
2026-06-05T02:56:35.8561268Z         }
2026-06-05T02:56:35.8561503Z       }
2026-06-05T02:56:35.8561747Z     },
2026-06-05T02:56:35.8561983Z     {
2026-06-05T02:56:35.8562288Z       "id": "REQ-UPD-4",
2026-06-05T02:56:35.8563336Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-05T02:56:35.8563650Z       "requiredStages": [
2026-06-05T02:56:35.8563910Z         "impl",
2026-06-05T02:56:35.8564369Z         "unit"
2026-06-05T02:56:35.8564616Z       ],
2026-06-05T02:56:35.8564860Z       "stages": {
2026-06-05T02:56:35.8565107Z         "doc": {
2026-06-05T02:56:35.8565392Z           "complete": false,
2026-06-05T02:56:35.8565651Z           "evidence": []
2026-06-05T02:56:35.8565904Z         },
2026-06-05T02:56:35.8566152Z         "impl": {
2026-06-05T02:56:35.8566427Z           "complete": true,
2026-06-05T02:56:35.8566682Z           "evidence": [
2026-06-05T02:56:35.8566935Z             {
2026-06-05T02:56:35.8567308Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8567563Z               "line": 23
2026-06-05T02:56:35.8567816Z             },
2026-06-05T02:56:35.8568055Z             {
2026-06-05T02:56:35.8568434Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8568695Z               "line": 56
2026-06-05T02:56:35.8568944Z             },
2026-06-05T02:56:35.8569434Z             {
2026-06-05T02:56:35.8569848Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8570288Z               "line": 77
2026-06-05T02:56:35.8570533Z             },
2026-06-05T02:56:35.8570789Z             {
2026-06-05T02:56:35.8571167Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-05T02:56:35.8571457Z               "line": 179
2026-06-05T02:56:35.8571713Z             },
2026-06-05T02:56:35.8571958Z             {
2026-06-05T02:56:35.8572330Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-05T02:56:35.8572596Z               "line": 98
2026-06-05T02:56:35.8572857Z             },
2026-06-05T02:56:35.8573107Z             {
2026-06-05T02:56:35.8573463Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.8573740Z               "line": 167
2026-06-05T02:56:35.8573985Z             }
2026-06-05T02:56:35.8574244Z           ]
2026-06-05T02:56:35.8574502Z         },
2026-06-05T02:56:35.8574765Z         "int": {
2026-06-05T02:56:35.8575042Z           "complete": false,
2026-06-05T02:56:35.8575342Z           "evidence": []
2026-06-05T02:56:35.8575609Z         },
2026-06-05T02:56:35.8575885Z         "unit": {
2026-06-05T02:56:35.8576198Z           "complete": true,
2026-06-05T02:56:35.8576640Z           "evidence": [
2026-06-05T02:56:35.8576958Z             {
2026-06-05T02:56:35.8577418Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-05T02:56:35.8577775Z               "line": 322
2026-06-05T02:56:35.8578090Z             },
2026-06-05T02:56:35.8578418Z             {
2026-06-05T02:56:35.8578897Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8579312Z               "line": 102
2026-06-05T02:56:35.8579642Z             },
2026-06-05T02:56:35.8579954Z             {
2026-06-05T02:56:35.8580419Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8580836Z               "line": 117
2026-06-05T02:56:35.8581148Z             },
2026-06-05T02:56:35.8581472Z             {
2026-06-05T02:56:35.8581907Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-05T02:56:35.8582236Z               "line": 136
2026-06-05T02:56:35.8582501Z             },
2026-06-05T02:56:35.8582735Z             {
2026-06-05T02:56:35.8583086Z               "path": "crates/spt-store/src/info.rs",
2026-06-05T02:56:35.8583362Z               "line": 352
2026-06-05T02:56:35.8583633Z             },
2026-06-05T02:56:35.8583910Z             {
2026-06-05T02:56:35.8584344Z               "path": "crates/spt-store/src/perch.rs",
2026-06-05T02:56:35.8584702Z               "line": 495
2026-06-05T02:56:35.8585011Z             }
2026-06-05T02:56:35.8585319Z           ]
2026-06-05T02:56:35.8585632Z         }
2026-06-05T02:56:35.8585907Z       }
2026-06-05T02:56:35.8586160Z     },
2026-06-05T02:56:35.8586417Z     {
2026-06-05T02:56:35.8586708Z       "id": "REQ-UPD-5",
2026-06-05T02:56:35.8587863Z       "title": "spt-core ripple-updates registered adapters",
2026-06-05T02:56:35.8588270Z       "requiredStages": [
2026-06-05T02:56:35.8588529Z         "impl",
2026-06-05T02:56:35.8588995Z         "unit"
2026-06-05T02:56:35.8589328Z       ],
2026-06-05T02:56:35.8589631Z       "stages": {
2026-06-05T02:56:35.8589919Z         "doc": {
2026-06-05T02:56:35.8590219Z           "complete": false,
2026-06-05T02:56:35.8590517Z           "evidence": []
2026-06-05T02:56:35.8590976Z         },
2026-06-05T02:56:35.8591282Z         "impl": {
2026-06-05T02:56:35.8591568Z           "complete": true,
2026-06-05T02:56:35.8591867Z           "evidence": [
2026-06-05T02:56:35.8592134Z             {
2026-06-05T02:56:35.8592586Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8592884Z               "line": 27
2026-06-05T02:56:35.8593148Z             },
2026-06-05T02:56:35.8593405Z             {
2026-06-05T02:56:35.8593816Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8594101Z               "line": 82
2026-06-05T02:56:35.8594358Z             },
2026-06-05T02:56:35.8594597Z             {
2026-06-05T02:56:35.8594998Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8595288Z               "line": 134
2026-06-05T02:56:35.8595562Z             },
2026-06-05T02:56:35.8595809Z             {
2026-06-05T02:56:35.8596185Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8596465Z               "line": 260
2026-06-05T02:56:35.8596712Z             },
2026-06-05T02:56:35.8596964Z             {
2026-06-05T02:56:35.8597320Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-05T02:56:35.8597600Z               "line": 288
2026-06-05T02:56:35.8597848Z             }
2026-06-05T02:56:35.8598100Z           ]
2026-06-05T02:56:35.8598349Z         },
2026-06-05T02:56:35.8598587Z         "int": {
2026-06-05T02:56:35.8598865Z           "complete": false,
2026-06-05T02:56:35.8599126Z           "evidence": []
2026-06-05T02:56:35.8599452Z         },
2026-06-05T02:56:35.8599708Z         "unit": {
2026-06-05T02:56:35.8599999Z           "complete": true,
2026-06-05T02:56:35.8600294Z           "evidence": [
2026-06-05T02:56:35.8600539Z             {
2026-06-05T02:56:35.8600990Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8601276Z               "line": 216
2026-06-05T02:56:35.8601536Z             },
2026-06-05T02:56:35.8601770Z             {
2026-06-05T02:56:35.8602170Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8602433Z               "line": 230
2026-06-05T02:56:35.8602675Z             },
2026-06-05T02:56:35.8602918Z             {
2026-06-05T02:56:35.8603321Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8603642Z               "line": 244
2026-06-05T02:56:35.8603906Z             },
2026-06-05T02:56:35.8604164Z             {
2026-06-05T02:56:35.8604584Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8604889Z               "line": 258
2026-06-05T02:56:35.8605199Z             },
2026-06-05T02:56:35.8605503Z             {
2026-06-05T02:56:35.8606024Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-05T02:56:35.8606356Z               "line": 292
2026-06-05T02:56:35.8606615Z             },
2026-06-05T02:56:35.8606876Z             {
2026-06-05T02:56:35.8607249Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-05T02:56:35.8607517Z               "line": 740
2026-06-05T02:56:35.8607756Z             }
2026-06-05T02:56:35.8608008Z           ]
2026-06-05T02:56:35.8608259Z         }
2026-06-05T02:56:35.8608494Z       }
2026-06-05T02:56:35.8608975Z     }
2026-06-05T02:56:35.8609268Z   ],
2026-06-05T02:56:35.8609560Z   "findings": []
2026-06-05T02:56:35.8609951Z }
2026-06-05T02:56:35.8677803Z ##[group]Run ./traceable-reqs lint || true
2026-06-05T02:56:35.8678265Z [36;1m./traceable-reqs lint || true[0m
2026-06-05T02:56:35.8699561Z shell: /usr/bin/bash -e {0}
2026-06-05T02:56:35.8699851Z ##[endgroup]
2026-06-05T02:56:35.8951100Z Requirement quality findings (24); 135 requirements queued for agent review:
2026-06-05T02:56:35.8954217Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8955606Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-05T02:56:35.8957025Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-05T02:56:35.8958956Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-05T02:56:35.8960806Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-05T02:56:35.8962347Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-05T02:56:35.8964396Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8966313Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8967641Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-05T02:56:35.8969040Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-05T02:56:35.8971105Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8973102Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8974546Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-05T02:56:35.8975835Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-05T02:56:35.8976901Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-05T02:56:35.8977990Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-05T02:56:35.8980087Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8981807Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8983429Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-05T02:56:35.8984465Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-05T02:56:35.8985573Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-05T02:56:35.8986988Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-05T02:56:35.8988344Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-05T02:56:35.8990198Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-05T02:56:35.8990228Z 
2026-06-05T02:56:35.8990584Z # Requirement quality review
2026-06-05T02:56:35.8990600Z 
2026-06-05T02:56:35.8991545Z You are reviewing 135 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-05T02:56:35.8992477Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-05T02:56:35.8993930Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-05T02:56:35.8994578Z this command's output. Your task is the rubric items below.
2026-06-05T02:56:35.8994595Z 
2026-06-05T02:56:35.8994853Z ## Rubric
2026-06-05T02:56:35.8994867Z 
2026-06-05T02:56:35.8996058Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-05T02:56:35.8997256Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-05T02:56:35.8998111Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-05T02:56:35.8998638Z - **active-voice** — clear subject and active verb.
2026-06-05T02:56:35.8998655Z 
2026-06-05T02:56:35.8999688Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-05T02:56:35.8999977Z clear concerns.
2026-06-05T02:56:35.8999995Z 
2026-06-05T02:56:35.9000271Z ## Requirements
2026-06-05T02:56:35.9000285Z 
2026-06-05T02:56:35.9010875Z ### REQ-ARCH-1
2026-06-05T02:56:35.9011535Z - Title: Many small acyclically-layered crates
2026-06-05T02:56:35.9011824Z - Required stages: impl
2026-06-05T02:56:35.9011840Z 
2026-06-05T02:56:35.9012103Z ### REQ-ARCH-2
2026-06-05T02:56:35.9012723Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-05T02:56:35.9013006Z - Required stages: impl
2026-06-05T02:56:35.9013035Z 
2026-06-05T02:56:35.9013293Z ### REQ-ARCH-3
2026-06-05T02:56:35.9014226Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-05T02:56:35.9014545Z - Required stages: impl, unit
2026-06-05T02:56:35.9014559Z 
2026-06-05T02:56:35.9014808Z ### REQ-ARCH-4
2026-06-05T02:56:35.9015531Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-05T02:56:35.9015848Z - Required stages: impl, unit
2026-06-05T02:56:35.9015862Z 
2026-06-05T02:56:35.9016119Z ### REQ-DAEMON-1
2026-06-05T02:56:35.9016792Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-05T02:56:35.9017122Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9017136Z 
2026-06-05T02:56:35.9017402Z ### REQ-DAEMON-2
2026-06-05T02:56:35.9017900Z - Title: Broker/brain split for seamless self-update
2026-06-05T02:56:35.9018227Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9018241Z 
2026-06-05T02:56:35.9018502Z ### REQ-DAEMON-3
2026-06-05T02:56:35.9019111Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-05T02:56:35.9019508Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9019524Z 
2026-06-05T02:56:35.9019788Z ### REQ-DAEMON-4
2026-06-05T02:56:35.9020177Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-05T02:56:35.9020510Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9020522Z 
2026-06-05T02:56:35.9020775Z ### REQ-STORE-1
2026-06-05T02:56:35.9026550Z - 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-05T02:56:35.9026878Z - Required stages: impl, unit
2026-06-05T02:56:35.9026892Z 
2026-06-05T02:56:35.9027162Z ### REQ-MANIFEST-1
2026-06-05T02:56:35.9027996Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-05T02:56:35.9028332Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9028346Z 
2026-06-05T02:56:35.9028632Z ### REQ-SEAM-SPAWN
2026-06-05T02:56:35.9028948Z - Title: spawn-session seam
2026-06-05T02:56:35.9029298Z - Required stages: impl, unit
2026-06-05T02:56:35.9029312Z 
2026-06-05T02:56:35.9029624Z ### REQ-SEAM-POSTSPAWN
2026-06-05T02:56:35.9030224Z - Title: post-spawn / api bind seam with boot nonce
2026-06-05T02:56:35.9030533Z - Required stages: impl, unit
2026-06-05T02:56:35.9030547Z 
2026-06-05T02:56:35.9030821Z ### REQ-SEAM-PSYCHE
2026-06-05T02:56:35.9031300Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-05T02:56:35.9031961Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9031980Z 
2026-06-05T02:56:35.9032260Z ### REQ-SEAM-HISTORY
2026-06-05T02:56:35.9033029Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-05T02:56:35.9033348Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9033361Z 
2026-06-05T02:56:35.9033634Z ### REQ-SEAM-ACTIVITY
2026-06-05T02:56:35.9034548Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-05T02:56:35.9034851Z - Required stages: impl, unit
2026-06-05T02:56:35.9034864Z 
2026-06-05T02:56:35.9035134Z ### REQ-SEAM-INJECT
2026-06-05T02:56:35.9035964Z - Title: inject-input methods configurable per activity-state
2026-06-05T02:56:35.9036287Z - Required stages: impl, unit
2026-06-05T02:56:35.9036303Z 
2026-06-05T02:56:35.9036744Z ### REQ-SEAM-RESUME
2026-06-05T02:56:35.9037505Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-05T02:56:35.9037812Z - Required stages: impl, unit
2026-06-05T02:56:35.9037825Z 
2026-06-05T02:56:35.9038114Z ### REQ-SEAM-CAPABILITY
2026-06-05T02:56:35.9038663Z - Title: Hostable endpoint-types capability declaration
2026-06-05T02:56:35.9038976Z - Required stages: impl, unit
2026-06-05T02:56:35.9038989Z 
2026-06-05T02:56:35.9039598Z ### REQ-SEAM-UPDATE
2026-06-05T02:56:35.9040332Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-05T02:56:35.9040651Z - Required stages: impl, unit
2026-06-05T02:56:35.9040663Z 
2026-06-05T02:56:35.9040924Z ### REQ-API-1
2026-06-05T02:56:35.9041661Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-05T02:56:35.9041979Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9041992Z 
2026-06-05T02:56:35.9042248Z ### REQ-API-2
2026-06-05T02:56:35.9043204Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-05T02:56:35.9043539Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9043553Z 
2026-06-05T02:56:35.9043804Z ### REQ-API-3
2026-06-05T02:56:35.9044296Z - Title: commune/signoff are file-drops, not commands
2026-06-05T02:56:35.9044630Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9044645Z 
2026-06-05T02:56:35.9044896Z ### REQ-START-1
2026-06-05T02:56:35.9045764Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-05T02:56:35.9046078Z - Required stages: impl, unit
2026-06-05T02:56:35.9046090Z 
2026-06-05T02:56:35.9046345Z ### REQ-START-2
2026-06-05T02:56:35.9046848Z - Title: Harness-hosted startup: api seed then listen
2026-06-05T02:56:35.9047161Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9047174Z 
2026-06-05T02:56:35.9047437Z ### REQ-START-3
2026-06-05T02:56:35.9048140Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-05T02:56:35.9048453Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9048467Z 
2026-06-05T02:56:35.9048720Z ### REQ-START-4
2026-06-05T02:56:35.9049246Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-05T02:56:35.9049869Z - Required stages: impl, unit
2026-06-05T02:56:35.9049882Z 
2026-06-05T02:56:35.9050131Z ### REQ-EP-1
2026-06-05T02:56:35.9050590Z - Title: Day-one endpoint types; open type system
2026-06-05T02:56:35.9050899Z - Required stages: impl, unit
2026-06-05T02:56:35.9050914Z 
2026-06-05T02:56:35.9051153Z ### REQ-EP-2
2026-06-05T02:56:35.9051841Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-05T02:56:35.9052155Z - Required stages: impl, unit
2026-06-05T02:56:35.9052166Z 
2026-06-05T02:56:35.9052417Z ### REQ-EP-3
2026-06-05T02:56:35.9053230Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-05T02:56:35.9053531Z - Required stages: impl, unit
2026-06-05T02:56:35.9053544Z 
2026-06-05T02:56:35.9053792Z ### REQ-EP-4
2026-06-05T02:56:35.9054339Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-05T02:56:35.9054647Z - Required stages: impl, unit
2026-06-05T02:56:35.9054662Z 
2026-06-05T02:56:35.9054912Z ### REQ-EP-5
2026-06-05T02:56:35.9059834Z - 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-05T02:56:35.9060189Z - Required stages: impl, unit
2026-06-05T02:56:35.9060202Z 
2026-06-05T02:56:35.9060453Z ### REQ-INST-1
2026-06-05T02:56:35.9061126Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-05T02:56:35.9061564Z - Required stages: 
2026-06-05T02:56:35.9061578Z 
2026-06-05T02:56:35.9061830Z ### REQ-INST-2
2026-06-05T02:56:35.9062225Z - Title: Per-node files, synced Psyche mind
2026-06-05T02:56:35.9062534Z - Required stages: impl, unit
2026-06-05T02:56:35.9062547Z 
2026-06-05T02:56:35.9062802Z ### REQ-INST-3
2026-06-05T02:56:35.9063385Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-05T02:56:35.9063706Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9063719Z 
2026-06-05T02:56:35.9063975Z ### REQ-INST-4
2026-06-05T02:56:35.9064769Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-05T02:56:35.9065089Z - Required stages: impl, unit
2026-06-05T02:56:35.9065102Z 
2026-06-05T02:56:35.9065362Z ### REQ-INST-5
2026-06-05T02:56:35.9066140Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-05T02:56:35.9066472Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9066485Z 
2026-06-05T02:56:35.9066743Z ### REQ-INST-6
2026-06-05T02:56:35.9067617Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-05T02:56:35.9067945Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9067969Z 
2026-06-05T02:56:35.9068218Z ### REQ-INST-7
2026-06-05T02:56:35.9068740Z - Title: Subnet registry + bare-id resolution policy
2026-06-05T02:56:35.9069059Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9069073Z 
2026-06-05T02:56:35.9069549Z ### REQ-INST-8
2026-06-05T02:56:35.9070324Z - Title: Remote-control mode distinct from local operation
2026-06-05T02:56:35.9070659Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9070672Z 
2026-06-05T02:56:35.9070938Z ### REQ-INST-9
2026-06-05T02:56:35.9071795Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-05T02:56:35.9072111Z - Required stages: impl, unit
2026-06-05T02:56:35.9072123Z 
2026-06-05T02:56:35.9072368Z ### REQ-INST-10
2026-06-05T02:56:35.9073404Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-05T02:56:35.9073729Z - Required stages: impl, unit
2026-06-05T02:56:35.9073742Z 
2026-06-05T02:56:35.9073986Z ### REQ-INST-11
2026-06-05T02:56:35.9075034Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-05T02:56:35.9075335Z - Required stages: impl, unit
2026-06-05T02:56:35.9075347Z 
2026-06-05T02:56:35.9075607Z ### REQ-INST-12
2026-06-05T02:56:35.9077272Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-05T02:56:35.9077603Z - Required stages: impl, unit
2026-06-05T02:56:35.9077616Z 
2026-06-05T02:56:35.9077894Z ### REQ-INST-13
2026-06-05T02:56:35.9078738Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-05T02:56:35.9079073Z - Required stages: impl, unit
2026-06-05T02:56:35.9079085Z 
2026-06-05T02:56:35.9079695Z ### REQ-INST-14
2026-06-05T02:56:35.9082054Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-05T02:56:35.9082415Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9082428Z 
2026-06-05T02:56:35.9082695Z ### REQ-INST-15
2026-06-05T02:56:35.9087622Z - 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-05T02:56:35.9087974Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9087987Z 
2026-06-05T02:56:35.9088257Z ### REQ-REACH-1
2026-06-05T02:56:35.9088996Z - Title: Off-node remote-drive detection + file transfer
2026-06-05T02:56:35.9089388Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9089583Z 
2026-06-05T02:56:35.9090033Z ### REQ-REACH-2
2026-06-05T02:56:35.9090671Z - Title: Remote command execution (deferred, consent-gated)
2026-06-05T02:56:35.9090952Z - Required stages: 
2026-06-05T02:56:35.9091092Z 
2026-06-05T02:56:35.9091376Z ### REQ-MSG-1
2026-06-05T02:56:35.9094165Z - 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-05T02:56:35.9094518Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9094533Z 
2026-06-05T02:56:35.9094802Z ### REQ-MSG-2
2026-06-05T02:56:35.9096215Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-05T02:56:35.9096547Z - Required stages: impl, unit
2026-06-05T02:56:35.9096560Z 
2026-06-05T02:56:35.9096822Z ### REQ-MSG-3
2026-06-05T02:56:35.9099125Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-05T02:56:35.9099699Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9099714Z 
2026-06-05T02:56:35.9100176Z ### REQ-NODE-IDENTITY
2026-06-05T02:56:35.9101320Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-05T02:56:35.9101645Z - Required stages: impl, unit
2026-06-05T02:56:35.9101668Z 
2026-06-05T02:56:35.9101925Z ### REQ-NET-1
2026-06-05T02:56:35.9102753Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-05T02:56:35.9103093Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9103106Z 
2026-06-05T02:56:35.9103382Z ### REQ-NET-2
2026-06-05T02:56:35.9104169Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-05T02:56:35.9104497Z - Required stages: impl
2026-06-05T02:56:35.9104510Z 
2026-06-05T02:56:35.9104789Z ### REQ-NET-3
2026-06-05T02:56:35.9105475Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-05T02:56:35.9105803Z - Required stages: impl, unit
2026-06-05T02:56:35.9105816Z 
2026-06-05T02:56:35.9106083Z ### REQ-PAIR-1
2026-06-05T02:56:35.9106441Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-05T02:56:35.9106786Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9106808Z 
2026-06-05T02:56:35.9107082Z ### REQ-PAIR-2
2026-06-05T02:56:35.9107598Z - Title: Local trust store with TOFU + warn-on-change
2026-06-05T02:56:35.9107918Z - Required stages: impl, unit
2026-06-05T02:56:35.9107932Z 
2026-06-05T02:56:35.9108210Z ### REQ-PAIR-3
2026-06-05T02:56:35.9108788Z - Title: Fetch current pairing code from any paired node
2026-06-05T02:56:35.9109110Z - Required stages: impl, unit
2026-06-05T02:56:35.9109123Z 
2026-06-05T02:56:35.9109613Z ### REQ-PAIR-4
2026-06-05T02:56:35.9110174Z - Title: Subnet naming on first pairing
2026-06-05T02:56:35.9110508Z - Required stages: impl, unit
2026-06-05T02:56:35.9110521Z 
2026-06-05T02:56:35.9110798Z ### REQ-PAIR-5
2026-06-05T02:56:35.9112484Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-05T02:56:35.9112838Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9112851Z 
2026-06-05T02:56:35.9113120Z ### REQ-PAIR-6
2026-06-05T02:56:35.9114507Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-05T02:56:35.9114828Z - Required stages: impl, unit
2026-06-05T02:56:35.9114851Z 
2026-06-05T02:56:35.9115120Z ### REQ-PAIR-7
2026-06-05T02:56:35.9115803Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-05T02:56:35.9116087Z - Required stages: 
2026-06-05T02:56:35.9116101Z 
2026-06-05T02:56:35.9116371Z ### REQ-SEC-1
2026-06-05T02:56:35.9118683Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-05T02:56:35.9119245Z - Required stages: impl, unit
2026-06-05T02:56:35.9119265Z 
2026-06-05T02:56:35.9119722Z ### REQ-NOTIF-1
2026-06-05T02:56:35.9122005Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-05T02:56:35.9122354Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9122368Z 
2026-06-05T02:56:35.9122818Z ### REQ-NOTIF-2
2026-06-05T02:56:35.9124265Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-05T02:56:35.9124611Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9124623Z 
2026-06-05T02:56:35.9124890Z ### REQ-UPD-1
2026-06-05T02:56:35.9125284Z - Title: Peer-propagated update over P2P
2026-06-05T02:56:35.9125615Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9125628Z 
2026-06-05T02:56:35.9125903Z ### REQ-UPD-2
2026-06-05T02:56:35.9126465Z - Title: All binaries signature-verified before handoff
2026-06-05T02:56:35.9126788Z - Required stages: impl, unit
2026-06-05T02:56:35.9126812Z 
2026-06-05T02:56:35.9127087Z ### REQ-UPD-3
2026-06-05T02:56:35.9127850Z - Title: No endpoint process terminates/suspends during self-update
2026-06-05T02:56:35.9128201Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9128214Z 
2026-06-05T02:56:35.9128485Z ### REQ-UPD-4
2026-06-05T02:56:35.9129344Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-05T02:56:35.9129695Z - Required stages: impl, unit
2026-06-05T02:56:35.9129708Z 
2026-06-05T02:56:35.9129964Z ### REQ-UPD-5
2026-06-05T02:56:35.9130496Z - Title: spt-core ripple-updates registered adapters
2026-06-05T02:56:35.9130831Z - Required stages: impl, unit
2026-06-05T02:56:35.9130843Z 
2026-06-05T02:56:35.9131109Z ### REQ-TERM-1
2026-06-05T02:56:35.9131862Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-05T02:56:35.9132182Z - Required stages: impl, unit
2026-06-05T02:56:35.9132196Z 
2026-06-05T02:56:35.9132472Z ### REQ-TERM-2
2026-06-05T02:56:35.9133302Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-05T02:56:35.9133624Z - Required stages: impl, unit
2026-06-05T02:56:35.9133636Z 
2026-06-05T02:56:35.9133913Z ### REQ-TERM-3
2026-06-05T02:56:35.9134441Z - Title: Byte-stream remote terminal streaming for v1
2026-06-05T02:56:35.9134776Z - Required stages: impl, unit
2026-06-05T02:56:35.9134797Z 
2026-06-05T02:56:35.9135057Z ### REQ-TERM-4
2026-06-05T02:56:35.9137150Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-05T02:56:35.9137489Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9137502Z 
2026-06-05T02:56:35.9137769Z ### REQ-FRONT-1
2026-06-05T02:56:35.9138536Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-05T02:56:35.9138818Z - Required stages: 
2026-06-05T02:56:35.9138848Z 
2026-06-05T02:56:35.9139126Z ### REQ-INSTALL-1
2026-06-05T02:56:35.9140063Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-05T02:56:35.9140360Z - Required stages: 
2026-06-05T02:56:35.9140375Z 
2026-06-05T02:56:35.9140664Z ### REQ-INSTALL-2
2026-06-05T02:56:35.9141185Z - Title: Marketplace-repackaging-friendly install
2026-06-05T02:56:35.9141477Z - Required stages: 
2026-06-05T02:56:35.9141489Z 
2026-06-05T02:56:35.9141771Z ### REQ-INSTALL-3
2026-06-05T02:56:35.9142291Z - Title: Idempotent + interactive-optional first run
2026-06-05T02:56:35.9142589Z - Required stages: 
2026-06-05T02:56:35.9142601Z 
2026-06-05T02:56:35.9142871Z ### REQ-INSTALL-4
2026-06-05T02:56:35.9146900Z - 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-05T02:56:35.9147230Z - Required stages: impl, unit
2026-06-05T02:56:35.9147244Z 
2026-06-05T02:56:35.9147518Z ### REQ-MIGRATE-1
2026-06-05T02:56:35.9148413Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-05T02:56:35.9148728Z - Required stages: 
2026-06-05T02:56:35.9148741Z 
2026-06-05T02:56:35.9149019Z ### REQ-INFRA-1
2026-06-05T02:56:35.9149892Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-05T02:56:35.9150182Z - Required stages: 
2026-06-05T02:56:35.9150195Z 
2026-06-05T02:56:35.9150472Z ### REQ-DOCS-1
2026-06-05T02:56:35.9151548Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-05T02:56:35.9151861Z - Required stages: 
2026-06-05T02:56:35.9151877Z 
2026-06-05T02:56:35.9152157Z ### REQ-DOCS-2
2026-06-05T02:56:35.9152833Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-05T02:56:35.9153127Z - Required stages: 
2026-06-05T02:56:35.9153139Z 
2026-06-05T02:56:35.9153405Z ### REQ-DOCS-3
2026-06-05T02:56:35.9154288Z - Title: Diátaxis structure; one canonical way to do X
2026-06-05T02:56:35.9154577Z - Required stages: 
2026-06-05T02:56:35.9154603Z 
2026-06-05T02:56:35.9154872Z ### REQ-DOCS-4
2026-06-05T02:56:35.9155807Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-05T02:56:35.9156103Z - Required stages: 
2026-06-05T02:56:35.9156115Z 
2026-06-05T02:56:35.9156394Z ### REQ-DOCS-5
2026-06-05T02:56:35.9157298Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-05T02:56:35.9157614Z - Required stages: 
2026-06-05T02:56:35.9157628Z 
2026-06-05T02:56:35.9158024Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-05T02:56:35.9158887Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-05T02:56:35.9159296Z - Required stages: impl, unit
2026-06-05T02:56:35.9159310Z 
2026-06-05T02:56:35.9159680Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-05T02:56:35.9160287Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-05T02:56:35.9160612Z - Required stages: impl, unit
2026-06-05T02:56:35.9160626Z 
2026-06-05T02:56:35.9160956Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-05T02:56:35.9161448Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-05T02:56:35.9161763Z - Required stages: impl, unit
2026-06-05T02:56:35.9161776Z 
2026-06-05T02:56:35.9162115Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-05T02:56:35.9162946Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-05T02:56:35.9163254Z - Required stages: impl, unit
2026-06-05T02:56:35.9163280Z 
2026-06-05T02:56:35.9163605Z ### REQ-HAZARD-WORKER-PATH
2026-06-05T02:56:35.9164393Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-05T02:56:35.9164716Z - Required stages: impl, unit
2026-06-05T02:56:35.9164730Z 
2026-06-05T02:56:35.9165095Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-05T02:56:35.9165938Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-05T02:56:35.9166220Z - Required stages: 
2026-06-05T02:56:35.9166237Z 
2026-06-05T02:56:35.9166562Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-05T02:56:35.9167053Z - Title: Stdin session_id precedence over env (2.2)
2026-06-05T02:56:35.9167344Z - Required stages: 
2026-06-05T02:56:35.9167360Z 
2026-06-05T02:56:35.9167709Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-05T02:56:35.9168396Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-05T02:56:35.9168701Z - Required stages: impl, unit
2026-06-05T02:56:35.9168715Z 
2026-06-05T02:56:35.9169045Z ### REQ-HAZARD-GEN-START-NOW
2026-06-05T02:56:35.9169686Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-05T02:56:35.9169995Z - Required stages: impl, int
2026-06-05T02:56:35.9170007Z 
2026-06-05T02:56:35.9170371Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-05T02:56:35.9171036Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-05T02:56:35.9171364Z - Required stages: impl, unit
2026-06-05T02:56:35.9171379Z 
2026-06-05T02:56:35.9171757Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-05T02:56:35.9172469Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-05T02:56:35.9172793Z - Required stages: impl, unit
2026-06-05T02:56:35.9172807Z 
2026-06-05T02:56:35.9173314Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-05T02:56:35.9174190Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-05T02:56:35.9174502Z - Required stages: impl, unit
2026-06-05T02:56:35.9174528Z 
2026-06-05T02:56:35.9174896Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-05T02:56:35.9175533Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-05T02:56:35.9175974Z - Required stages: impl, unit
2026-06-05T02:56:35.9175988Z 
2026-06-05T02:56:35.9176369Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-05T02:56:35.9177126Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-05T02:56:35.9177452Z - Required stages: impl, unit
2026-06-05T02:56:35.9177465Z 
2026-06-05T02:56:35.9193293Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-05T02:56:35.9194315Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-05T02:56:35.9194650Z - Required stages: impl, unit
2026-06-05T02:56:35.9194665Z 
2026-06-05T02:56:35.9195020Z ### REQ-HAZARD-ID-CHARSET
2026-06-05T02:56:35.9196198Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-05T02:56:35.9196524Z - Required stages: impl, unit
2026-06-05T02:56:35.9196536Z 
2026-06-05T02:56:35.9196903Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-05T02:56:35.9197727Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-05T02:56:35.9198054Z - Required stages: impl, unit
2026-06-05T02:56:35.9198066Z 
2026-06-05T02:56:35.9198424Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-05T02:56:35.9199744Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-05T02:56:35.9200059Z - Required stages: impl, unit
2026-06-05T02:56:35.9200071Z 
2026-06-05T02:56:35.9200427Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-05T02:56:35.9202206Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-05T02:56:35.9202558Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9202571Z 
2026-06-05T02:56:35.9202932Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-05T02:56:35.9204969Z - 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-05T02:56:35.9205300Z - Required stages: impl, unit
2026-06-05T02:56:35.9205325Z 
2026-06-05T02:56:35.9205706Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-05T02:56:35.9206653Z - Title: Deferred rows survive poll drain (4.4)
2026-06-05T02:56:35.9207078Z - Required stages: impl, unit
2026-06-05T02:56:35.9207091Z 
2026-06-05T02:56:35.9207514Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-05T02:56:35.9208011Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-05T02:56:35.9208418Z - Required stages: impl, unit
2026-06-05T02:56:35.9208430Z 
2026-06-05T02:56:35.9208912Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-05T02:56:35.9209701Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-05T02:56:35.9210118Z - Required stages: impl, unit
2026-06-05T02:56:35.9210133Z 
2026-06-05T02:56:35.9210489Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-05T02:56:35.9211238Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-05T02:56:35.9211695Z - Required stages: impl, unit
2026-06-05T02:56:35.9211708Z 
2026-06-05T02:56:35.9212152Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-05T02:56:35.9212788Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-05T02:56:35.9213150Z - Required stages: impl, unit
2026-06-05T02:56:35.9213162Z 
2026-06-05T02:56:35.9213584Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-05T02:56:35.9214316Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-05T02:56:35.9214699Z - Required stages: impl, unit
2026-06-05T02:56:35.9214713Z 
2026-06-05T02:56:35.9215155Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-05T02:56:35.9215966Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-05T02:56:35.9216381Z - Required stages: impl, unit
2026-06-05T02:56:35.9216752Z 
2026-06-05T02:56:35.9217226Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-05T02:56:35.9218118Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-05T02:56:35.9218521Z - Required stages: impl, unit
2026-06-05T02:56:35.9218535Z 
2026-06-05T02:56:35.9218926Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-05T02:56:35.9219949Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-05T02:56:35.9220409Z - Required stages: impl, unit
2026-06-05T02:56:35.9220424Z 
2026-06-05T02:56:35.9220867Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-05T02:56:35.9221501Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-05T02:56:35.9221873Z - Required stages: impl, unit
2026-06-05T02:56:35.9221936Z 
2026-06-05T02:56:35.9222367Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-05T02:56:35.9223469Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-05T02:56:35.9223851Z - Required stages: impl, unit
2026-06-05T02:56:35.9223875Z 
2026-06-05T02:56:35.9224358Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-05T02:56:35.9227652Z - 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-05T02:56:35.9228025Z - Required stages: impl, unit
2026-06-05T02:56:35.9228038Z 
2026-06-05T02:56:35.9228535Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-05T02:56:35.9234669Z - 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-05T02:56:35.9235081Z - Required stages: impl, unit
2026-06-05T02:56:35.9235095Z 
2026-06-05T02:56:35.9235474Z ### REQ-HAZARD-CONPTY-DSR
2026-06-05T02:56:35.9236495Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-05T02:56:35.9236946Z - Required stages: impl, unit
2026-06-05T02:56:35.9236959Z 
2026-06-05T02:56:35.9237387Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-05T02:56:35.9238391Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-05T02:56:35.9238809Z - Required stages: impl, unit
2026-06-05T02:56:35.9238822Z 
2026-06-05T02:56:35.9239250Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-05T02:56:35.9240656Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-05T02:56:35.9241112Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9241125Z 
2026-06-05T02:56:35.9241505Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-05T02:56:35.9242836Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-05T02:56:35.9243193Z - Required stages: impl, unit
2026-06-05T02:56:35.9243206Z 
2026-06-05T02:56:35.9243730Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-05T02:56:35.9246137Z - 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-05T02:56:35.9246631Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9246651Z 
2026-06-05T02:56:35.9247110Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-05T02:56:35.9251340Z - 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-05T02:56:35.9251788Z - Required stages: impl, unit
2026-06-05T02:56:35.9251802Z 
2026-06-05T02:56:35.9252300Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-05T02:56:35.9256198Z - 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-05T02:56:35.9256624Z - Required stages: impl, unit
2026-06-05T02:56:35.9256636Z 
2026-06-05T02:56:35.9257069Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-05T02:56:35.9260680Z - 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-05T02:56:35.9261285Z - Required stages: impl, unit
2026-06-05T02:56:35.9261300Z 
2026-06-05T02:56:35.9261738Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-05T02:56:35.9264776Z - 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-05T02:56:35.9265187Z - Required stages: impl, unit
2026-06-05T02:56:35.9265201Z 
2026-06-05T02:56:35.9265651Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-05T02:56:35.9270420Z - 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-05T02:56:35.9270856Z - Required stages: impl, unit
2026-06-05T02:56:35.9270870Z 
2026-06-05T02:56:35.9271245Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-05T02:56:35.9275411Z - 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-05T02:56:35.9275923Z - Required stages: doc, impl, unit
2026-06-05T02:56:35.9275937Z 
2026-06-05T02:56:35.9276258Z ### REQ-CONSENT-1
2026-06-05T02:56:35.9281727Z - 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-05T02:56:35.9282187Z - Required stages: impl, unit
2026-06-05T02:56:35.9282210Z 
2026-06-05T02:56:35.9282506Z ### REQ-CONSENT-2
2026-06-05T02:56:35.9287421Z - 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-05T02:56:35.9287791Z - Required stages: impl, unit
2026-06-05T02:56:35.9287855Z 
2026-06-05T02:56:35.9288170Z ### REQ-PRES-1
2026-06-05T02:56:35.9295583Z - 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-05T02:56:35.9295963Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9296103Z 
2026-06-05T02:56:35.9296437Z ### REQ-SHELL-1
2026-06-05T02:56:35.9301691Z - 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-05T02:56:35.9302061Z - Required stages: impl, unit
2026-06-05T02:56:35.9302073Z 
2026-06-05T02:56:35.9302426Z ### REQ-SHELL-2
2026-06-05T02:56:35.9310550Z - 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-05T02:56:35.9311085Z - Required stages: impl, unit, int
2026-06-05T02:56:35.9311099Z 
2026-06-05T02:56:35.9311499Z ## How to report back
2026-06-05T02:56:35.9311512Z 
2026-06-05T02:56:35.9312280Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-05T02:56:35.9312292Z 
2026-06-05T02:56:35.9312575Z     {
2026-06-05T02:56:35.9313041Z       "code": "requirement_quality",
2026-06-05T02:56:35.9313447Z       "requirementId": "REQ-...",
2026-06-05T02:56:35.9314242Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-05T02:56:35.9314642Z       "message": "<short reason>",
2026-06-05T02:56:35.9315093Z       "suggestedRevision": "<optional rewrite>"
2026-06-05T02:56:35.9315458Z     }
2026-06-05T02:56:35.9315471Z 
2026-06-05T02:56:35.9316326Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-05T02:56:35.9316977Z deterministic findings above don't need to be repeated.
2026-06-05T02:56:35.9563418Z Post job cleanup.
2026-06-05T02:56:36.0796828Z [command]/usr/bin/git version
2026-06-05T02:56:36.0850463Z git version 2.34.1
2026-06-05T02:56:36.0898275Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/25eec112-e316-4c2f-bd45-f9ffae4d0e10/.gitconfig'
2026-06-05T02:56:36.0925340Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/25eec112-e316-4c2f-bd45-f9ffae4d0e10' before making global git config changes
2026-06-05T02:56:36.0929913Z Adding repository directory to the temporary git global config as a safe directory
2026-06-05T02:56:36.0933367Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-05T02:56:36.0981790Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-05T02:56:36.1065750Z [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-05T02:56:36.1322863Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-05T02:56:36.1372120Z http.https://github.com/.extraheader
2026-06-05T02:56:36.1381921Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-05T02:56:36.1417569Z [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-05T02:56:36.1658748Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-05T02:56:36.1699845Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-05T02:56:36.2150022Z Cleaning up orphan processes
