﻿2026-06-13T11:54:05.8553447Z Current runner version: '2.335.1'
2026-06-13T11:54:05.8558046Z Runner name: 'kitsubito'
2026-06-13T11:54:05.8558556Z Runner group name: 'Default'
2026-06-13T11:54:05.8559296Z Machine name: 'KITSUBITO'
2026-06-13T11:54:05.8561165Z ##[group]GITHUB_TOKEN Permissions
2026-06-13T11:54:05.8562877Z Contents: read
2026-06-13T11:54:05.8563291Z Metadata: read
2026-06-13T11:54:05.8563663Z Packages: read
2026-06-13T11:54:05.8564022Z ##[endgroup]
2026-06-13T11:54:05.8565615Z Secret source: Actions
2026-06-13T11:54:05.8566126Z Prepare workflow directory
2026-06-13T11:54:05.8920875Z Prepare all required actions
2026-06-13T11:54:05.8948809Z Getting action download info
2026-06-13T11:54:06.3672813Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-13T11:54:06.8702381Z Complete job name: traceability
2026-06-13T11:54:06.9701928Z ##[group]Run actions/checkout@v5
2026-06-13T11:54:06.9702847Z with:
2026-06-13T11:54:06.9703447Z   repository: SaberMage/spt-core
2026-06-13T11:54:06.9707220Z   token: ***
2026-06-13T11:54:06.9707663Z   ssh-strict: true
2026-06-13T11:54:06.9708248Z   ssh-user: git
2026-06-13T11:54:06.9708680Z   persist-credentials: true
2026-06-13T11:54:06.9709243Z   clean: true
2026-06-13T11:54:06.9709681Z   sparse-checkout-cone-mode: true
2026-06-13T11:54:06.9710168Z   fetch-depth: 1
2026-06-13T11:54:06.9710577Z   fetch-tags: false
2026-06-13T11:54:06.9710991Z   show-progress: true
2026-06-13T11:54:06.9711435Z   lfs: false
2026-06-13T11:54:06.9711845Z   submodules: false
2026-06-13T11:54:06.9712273Z   set-safe-directory: true
2026-06-13T11:54:06.9713009Z ##[endgroup]
2026-06-13T11:54:07.0548525Z Syncing repository: SaberMage/spt-core
2026-06-13T11:54:07.0550326Z ##[group]Getting Git version info
2026-06-13T11:54:07.0551116Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-13T11:54:07.0552099Z [command]/usr/bin/git version
2026-06-13T11:54:07.0552575Z git version 2.43.0
2026-06-13T11:54:07.0558153Z ##[endgroup]
2026-06-13T11:54:07.0569521Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/439b21e0-bea2-4ca7-a488-e5d529803c7a' before making global git config changes
2026-06-13T11:54:07.0570885Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T11:54:07.0573432Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T11:54:07.0607260Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-13T11:54:07.0625152Z https://github.com/SaberMage/spt-core
2026-06-13T11:54:07.0635176Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-13T11:54:07.0637351Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-13T11:54:07.0653797Z HEAD
2026-06-13T11:54:07.0683280Z ##[endgroup]
2026-06-13T11:54:07.0684051Z [command]/usr/bin/git submodule status
2026-06-13T11:54:07.0868302Z ##[group]Cleaning the repository
2026-06-13T11:54:07.0869907Z [command]/usr/bin/git clean -ffdx
2026-06-13T11:54:07.8285266Z Removing target/
2026-06-13T11:54:07.8294023Z [command]/usr/bin/git reset --hard HEAD
2026-06-13T11:54:07.8443300Z HEAD is now at 0fcd563 Merge 58f034feb3783dd515d39353b9ce0c10b264eea4 into 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11
2026-06-13T11:54:07.8448364Z ##[endgroup]
2026-06-13T11:54:07.8450044Z ##[group]Disabling automatic garbage collection
2026-06-13T11:54:07.8453845Z [command]/usr/bin/git config --local gc.auto 0
2026-06-13T11:54:07.8480426Z ##[endgroup]
2026-06-13T11:54:07.8481515Z ##[group]Setting up auth
2026-06-13T11:54:07.8485244Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T11:54:07.8513128Z [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-13T11:54:07.8741373Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T11:54:07.8770273Z [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-13T11:54:07.8959393Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T11:54:07.8984890Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T11:54:07.9184460Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-13T11:54:07.9230674Z ##[endgroup]
2026-06-13T11:54:07.9232339Z ##[group]Fetching the repository
2026-06-13T11:54:07.9241898Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +0fcd56347ebbf9692fa8b6c31704ae6364b5e279:refs/remotes/pull/9/merge
2026-06-13T11:54:08.3343142Z ##[endgroup]
2026-06-13T11:54:08.3344686Z ##[group]Determining the checkout info
2026-06-13T11:54:08.3346458Z ##[endgroup]
2026-06-13T11:54:08.3347525Z [command]/usr/bin/git sparse-checkout disable
2026-06-13T11:54:08.3424046Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-13T11:54:08.3451016Z ##[group]Checking out the ref
2026-06-13T11:54:08.3458178Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/9/merge
2026-06-13T11:54:08.3497770Z HEAD is now at 0fcd563 Merge 58f034feb3783dd515d39353b9ce0c10b264eea4 into 77e0fb1bc77f8f2f500c9bdadcd65e158b5d4c11
2026-06-13T11:54:08.3502163Z ##[endgroup]
2026-06-13T11:54:08.3528915Z [command]/usr/bin/git log -1 --format=%H
2026-06-13T11:54:08.3548929Z 0fcd56347ebbf9692fa8b6c31704ae6364b5e279
2026-06-13T11:54:08.3784516Z ##[group]Run WANT=0.1.2
2026-06-13T11:54:08.3785423Z [36;1mWANT=0.1.2[0m
2026-06-13T11:54:08.3786276Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-13T11:54:08.3787550Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-13T11:54:08.3788808Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T11:54:08.3789818Z [36;1melse[0m
2026-06-13T11:54:08.3790921Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-13T11:54:08.3792448Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-13T11:54:08.3793675Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-13T11:54:08.3794585Z [36;1m  rm -rf "$SRC"[0m
2026-06-13T11:54:08.3795485Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-13T11:54:08.3797076Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-13T11:54:08.3798857Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-13T11:54:08.3800183Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-13T11:54:08.3801277Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-13T11:54:08.3802420Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-13T11:54:08.3803326Z [36;1mfi[0m
2026-06-13T11:54:08.3804053Z [36;1m./traceable-reqs --version[0m
2026-06-13T11:54:08.3821527Z shell: /usr/bin/bash -e {0}
2026-06-13T11:54:08.3822344Z env:
2026-06-13T11:54:08.3824113Z   GH_TOKEN: ***
2026-06-13T11:54:08.3824815Z ##[endgroup]
2026-06-13T11:54:08.3956793Z traceable-reqs 0.1.2
2026-06-13T11:54:08.4055869Z ##[group]Run ./traceable-reqs check --json
2026-06-13T11:54:08.4057287Z [36;1m./traceable-reqs check --json[0m
2026-06-13T11:54:08.4073360Z shell: /usr/bin/bash -e {0}
2026-06-13T11:54:08.4074223Z ##[endgroup]
2026-06-13T11:54:08.4356262Z {
2026-06-13T11:54:08.4357583Z   "schemaVersion": 1,
2026-06-13T11:54:08.4358874Z   "summary": {
2026-06-13T11:54:08.4360276Z     "requirementCount": 190,
2026-06-13T11:54:08.4361675Z     "completeCount": 190,
2026-06-13T11:54:08.4363071Z     "incompleteCount": 0,
2026-06-13T11:54:08.4364361Z     "findingCount": 0
2026-06-13T11:54:08.4365339Z   },
2026-06-13T11:54:08.4366226Z   "requirements": [
2026-06-13T11:54:08.4367199Z     {
2026-06-13T11:54:08.4368615Z       "id": "REQ-API-1",
2026-06-13T11:54:08.4370184Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-13T11:54:08.4371878Z       "requiredStages": [
2026-06-13T11:54:08.4372931Z         "impl",
2026-06-13T11:54:08.4373858Z         "unit",
2026-06-13T11:54:08.4374868Z         "int"
2026-06-13T11:54:08.4375769Z       ],
2026-06-13T11:54:08.4376649Z       "stages": {
2026-06-13T11:54:08.4377612Z         "doc": {
2026-06-13T11:54:08.4378594Z           "complete": false,
2026-06-13T11:54:08.4379833Z           "evidence": []
2026-06-13T11:54:08.4380871Z         },
2026-06-13T11:54:08.4381785Z         "impl": {
2026-06-13T11:54:08.4382781Z           "complete": true,
2026-06-13T11:54:08.4383926Z           "evidence": [
2026-06-13T11:54:08.4384737Z             {
2026-06-13T11:54:08.4385676Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.4387046Z               "line": 15
2026-06-13T11:54:08.4388092Z             }
2026-06-13T11:54:08.4389254Z           ]
2026-06-13T11:54:08.4390206Z         },
2026-06-13T11:54:08.4391108Z         "int": {
2026-06-13T11:54:08.4397855Z           "complete": true,
2026-06-13T11:54:08.4398676Z           "evidence": [
2026-06-13T11:54:08.4399639Z             {
2026-06-13T11:54:08.4400485Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.4401521Z               "line": 13
2026-06-13T11:54:08.4402279Z             }
2026-06-13T11:54:08.4402948Z           ]
2026-06-13T11:54:08.4403606Z         },
2026-06-13T11:54:08.4404264Z         "unit": {
2026-06-13T11:54:08.4404984Z           "complete": true,
2026-06-13T11:54:08.4405782Z           "evidence": [
2026-06-13T11:54:08.4406520Z             {
2026-06-13T11:54:08.4407284Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.4408286Z               "line": 471
2026-06-13T11:54:08.4409178Z             },
2026-06-13T11:54:08.4409851Z             {
2026-06-13T11:54:08.4410617Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.4411632Z               "line": 509
2026-06-13T11:54:08.4412448Z             },
2026-06-13T11:54:08.4413152Z             {
2026-06-13T11:54:08.4414232Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.4415616Z               "line": 576
2026-06-13T11:54:08.4416685Z             }
2026-06-13T11:54:08.4417629Z           ]
2026-06-13T11:54:08.4418548Z         }
2026-06-13T11:54:08.4419538Z       }
2026-06-13T11:54:08.4420430Z     },
2026-06-13T11:54:08.4421310Z     {
2026-06-13T11:54:08.4422216Z       "id": "REQ-API-2",
2026-06-13T11:54:08.4423967Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-13T11:54:08.4425998Z       "requiredStages": [
2026-06-13T11:54:08.4427559Z         "impl",
2026-06-13T11:54:08.4428361Z         "unit",
2026-06-13T11:54:08.4429192Z         "int"
2026-06-13T11:54:08.4429873Z       ],
2026-06-13T11:54:08.4430536Z       "stages": {
2026-06-13T11:54:08.4431232Z         "doc": {
2026-06-13T11:54:08.4431957Z           "complete": false,
2026-06-13T11:54:08.4432819Z           "evidence": []
2026-06-13T11:54:08.4433583Z         },
2026-06-13T11:54:08.4434605Z         "impl": {
2026-06-13T11:54:08.4435648Z           "complete": true,
2026-06-13T11:54:08.4436742Z           "evidence": [
2026-06-13T11:54:08.4437947Z             {
2026-06-13T11:54:08.4438773Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T11:54:08.4439914Z               "line": 15
2026-06-13T11:54:08.4440667Z             },
2026-06-13T11:54:08.4441330Z             {
2026-06-13T11:54:08.4442112Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.4443108Z               "line": 20
2026-06-13T11:54:08.4443847Z             },
2026-06-13T11:54:08.4444510Z             {
2026-06-13T11:54:08.4445306Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.4446304Z               "line": 139
2026-06-13T11:54:08.4447062Z             },
2026-06-13T11:54:08.4447854Z             {
2026-06-13T11:54:08.4449324Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4450346Z               "line": 21
2026-06-13T11:54:08.4451098Z             },
2026-06-13T11:54:08.4451757Z             {
2026-06-13T11:54:08.4452557Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4453591Z               "line": 38
2026-06-13T11:54:08.4454331Z             },
2026-06-13T11:54:08.4454980Z             {
2026-06-13T11:54:08.4455767Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4456764Z               "line": 190
2026-06-13T11:54:08.4457494Z             },
2026-06-13T11:54:08.4458145Z             {
2026-06-13T11:54:08.4458935Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4460046Z               "line": 232
2026-06-13T11:54:08.4460793Z             },
2026-06-13T11:54:08.4461450Z             {
2026-06-13T11:54:08.4462245Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4463257Z               "line": 262
2026-06-13T11:54:08.4464014Z             },
2026-06-13T11:54:08.4464662Z             {
2026-06-13T11:54:08.4465429Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4466427Z               "line": 17
2026-06-13T11:54:08.4467172Z             },
2026-06-13T11:54:08.4467849Z             {
2026-06-13T11:54:08.4468611Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4469676Z               "line": 30
2026-06-13T11:54:08.4470420Z             },
2026-06-13T11:54:08.4471092Z             {
2026-06-13T11:54:08.4471865Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4472844Z               "line": 63
2026-06-13T11:54:08.4473579Z             },
2026-06-13T11:54:08.4474246Z             {
2026-06-13T11:54:08.4475026Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4476013Z               "line": 76
2026-06-13T11:54:08.4476744Z             }
2026-06-13T11:54:08.4477403Z           ]
2026-06-13T11:54:08.4478042Z         },
2026-06-13T11:54:08.4478696Z         "int": {
2026-06-13T11:54:08.4479488Z           "complete": true,
2026-06-13T11:54:08.4480280Z           "evidence": [
2026-06-13T11:54:08.4481004Z             {
2026-06-13T11:54:08.4481808Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.4482913Z               "line": 14
2026-06-13T11:54:08.4483666Z             },
2026-06-13T11:54:08.4484334Z             {
2026-06-13T11:54:08.4485130Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.4486240Z               "line": 187
2026-06-13T11:54:08.4486992Z             }
2026-06-13T11:54:08.4487648Z           ]
2026-06-13T11:54:08.4488278Z         },
2026-06-13T11:54:08.4488917Z         "unit": {
2026-06-13T11:54:08.4489702Z           "complete": true,
2026-06-13T11:54:08.4490487Z           "evidence": [
2026-06-13T11:54:08.4491207Z             {
2026-06-13T11:54:08.4492003Z               "path": "crates/spt-store/src/history.rs",
2026-06-13T11:54:08.4493010Z               "line": 42
2026-06-13T11:54:08.4493755Z             },
2026-06-13T11:54:08.4494412Z             {
2026-06-13T11:54:08.4495179Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.4496161Z               "line": 254
2026-06-13T11:54:08.4496916Z             },
2026-06-13T11:54:08.4497846Z             {
2026-06-13T11:54:08.4498642Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4499725Z               "line": 517
2026-06-13T11:54:08.4500462Z             },
2026-06-13T11:54:08.4501119Z             {
2026-06-13T11:54:08.4501904Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4502900Z               "line": 528
2026-06-13T11:54:08.4503633Z             },
2026-06-13T11:54:08.4504291Z             {
2026-06-13T11:54:08.4505077Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4506087Z               "line": 660
2026-06-13T11:54:08.4506837Z             },
2026-06-13T11:54:08.4507486Z             {
2026-06-13T11:54:08.4508420Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4509484Z               "line": 672
2026-06-13T11:54:08.4510213Z             },
2026-06-13T11:54:08.4510865Z             {
2026-06-13T11:54:08.4511893Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4512976Z               "line": 141
2026-06-13T11:54:08.4513810Z             },
2026-06-13T11:54:08.4514607Z             {
2026-06-13T11:54:08.4515471Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.4516515Z               "line": 185
2026-06-13T11:54:08.4517421Z             }
2026-06-13T11:54:08.4518144Z           ]
2026-06-13T11:54:08.4518880Z         }
2026-06-13T11:54:08.4519663Z       }
2026-06-13T11:54:08.4520330Z     },
2026-06-13T11:54:08.4521078Z     {
2026-06-13T11:54:08.4521790Z       "id": "REQ-API-3",
2026-06-13T11:54:08.4522849Z       "title": "commune/signoff are file-drops, not commands",
2026-06-13T11:54:08.4524078Z       "requiredStages": [
2026-06-13T11:54:08.4524906Z         "impl",
2026-06-13T11:54:08.4561322Z         "unit",
2026-06-13T11:54:08.4562151Z         "int"
2026-06-13T11:54:08.4562800Z       ],
2026-06-13T11:54:08.4563405Z       "stages": {
2026-06-13T11:54:08.4564049Z         "doc": {
2026-06-13T11:54:08.4564728Z           "complete": false,
2026-06-13T11:54:08.4565542Z           "evidence": []
2026-06-13T11:54:08.4566256Z         },
2026-06-13T11:54:08.4566859Z         "impl": {
2026-06-13T11:54:08.4567527Z           "complete": true,
2026-06-13T11:54:08.4568287Z           "evidence": [
2026-06-13T11:54:08.4569071Z             {
2026-06-13T11:54:08.4569805Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.4570749Z               "line": 27
2026-06-13T11:54:08.4571440Z             },
2026-06-13T11:54:08.4572076Z             {
2026-06-13T11:54:08.4572840Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4573808Z               "line": 374
2026-06-13T11:54:08.4574524Z             }
2026-06-13T11:54:08.4575172Z           ]
2026-06-13T11:54:08.4575779Z         },
2026-06-13T11:54:08.4576393Z         "int": {
2026-06-13T11:54:08.4577091Z           "complete": true,
2026-06-13T11:54:08.4577845Z           "evidence": [
2026-06-13T11:54:08.4578537Z             {
2026-06-13T11:54:08.4579380Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.4580346Z               "line": 261
2026-06-13T11:54:08.4581063Z             }
2026-06-13T11:54:08.4581697Z           ]
2026-06-13T11:54:08.4582312Z         },
2026-06-13T11:54:08.4582927Z         "unit": {
2026-06-13T11:54:08.4583610Z           "complete": true,
2026-06-13T11:54:08.4584368Z           "evidence": [
2026-06-13T11:54:08.4585066Z             {
2026-06-13T11:54:08.4585828Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.4586792Z               "line": 280
2026-06-13T11:54:08.4587501Z             },
2026-06-13T11:54:08.4588129Z             {
2026-06-13T11:54:08.4588891Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.4589945Z               "line": 701
2026-06-13T11:54:08.4590654Z             }
2026-06-13T11:54:08.4591279Z           ]
2026-06-13T11:54:08.4591879Z         }
2026-06-13T11:54:08.4592484Z       }
2026-06-13T11:54:08.4593078Z     },
2026-06-13T11:54:08.4593679Z     {
2026-06-13T11:54:08.4594771Z       "id": "REQ-ARCH-1",
2026-06-13T11:54:08.4595663Z       "title": "Many small acyclically-layered crates",
2026-06-13T11:54:08.4596669Z       "requiredStages": [
2026-06-13T11:54:08.4597414Z         "impl"
2026-06-13T11:54:08.4598037Z       ],
2026-06-13T11:54:08.4598645Z       "stages": {
2026-06-13T11:54:08.4599370Z         "doc": {
2026-06-13T11:54:08.4600052Z           "complete": false,
2026-06-13T11:54:08.4600832Z           "evidence": []
2026-06-13T11:54:08.4601539Z         },
2026-06-13T11:54:08.4602159Z         "impl": {
2026-06-13T11:54:08.4602856Z           "complete": true,
2026-06-13T11:54:08.4603609Z           "evidence": [
2026-06-13T11:54:08.4604300Z             {
2026-06-13T11:54:08.4605192Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-13T11:54:08.4606115Z               "line": 16
2026-06-13T11:54:08.4606824Z             },
2026-06-13T11:54:08.4607468Z             {
2026-06-13T11:54:08.4608203Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-13T11:54:08.4609210Z               "line": 12
2026-06-13T11:54:08.4609921Z             },
2026-06-13T11:54:08.4610551Z             {
2026-06-13T11:54:08.4611270Z               "path": "crates/spt-store/src/lib.rs",
2026-06-13T11:54:08.4612204Z               "line": 12
2026-06-13T11:54:08.4612905Z             }
2026-06-13T11:54:08.4613524Z           ]
2026-06-13T11:54:08.4614128Z         },
2026-06-13T11:54:08.4614732Z         "int": {
2026-06-13T11:54:08.4615399Z           "complete": false,
2026-06-13T11:54:08.4616172Z           "evidence": []
2026-06-13T11:54:08.4616884Z         },
2026-06-13T11:54:08.4617489Z         "unit": {
2026-06-13T11:54:08.4618153Z           "complete": false,
2026-06-13T11:54:08.4619293Z           "evidence": []
2026-06-13T11:54:08.4620003Z         }
2026-06-13T11:54:08.4620600Z       }
2026-06-13T11:54:08.4621191Z     },
2026-06-13T11:54:08.4621783Z     {
2026-06-13T11:54:08.4622397Z       "id": "REQ-ARCH-2",
2026-06-13T11:54:08.4623450Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-13T11:54:08.4624601Z       "requiredStages": [
2026-06-13T11:54:08.4625326Z         "impl"
2026-06-13T11:54:08.4625941Z       ],
2026-06-13T11:54:08.4626552Z       "stages": {
2026-06-13T11:54:08.4627199Z         "doc": {
2026-06-13T11:54:08.4627873Z           "complete": false,
2026-06-13T11:54:08.4628650Z           "evidence": []
2026-06-13T11:54:08.4629425Z         },
2026-06-13T11:54:08.4630035Z         "impl": {
2026-06-13T11:54:08.4630717Z           "complete": true,
2026-06-13T11:54:08.4631456Z           "evidence": [
2026-06-13T11:54:08.4632152Z             {
2026-06-13T11:54:08.4632890Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-13T11:54:08.4633859Z               "line": 18
2026-06-13T11:54:08.4634564Z             }
2026-06-13T11:54:08.4635180Z           ]
2026-06-13T11:54:08.4635782Z         },
2026-06-13T11:54:08.4636386Z         "int": {
2026-06-13T11:54:08.4637074Z           "complete": false,
2026-06-13T11:54:08.4637861Z           "evidence": []
2026-06-13T11:54:08.4638576Z         },
2026-06-13T11:54:08.4639258Z         "unit": {
2026-06-13T11:54:08.4639946Z           "complete": false,
2026-06-13T11:54:08.4640715Z           "evidence": []
2026-06-13T11:54:08.4641419Z         }
2026-06-13T11:54:08.4642011Z       }
2026-06-13T11:54:08.4642597Z     },
2026-06-13T11:54:08.4643188Z     {
2026-06-13T11:54:08.4643804Z       "id": "REQ-ARCH-3",
2026-06-13T11:54:08.4644985Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-13T11:54:08.4646298Z       "requiredStages": [
2026-06-13T11:54:08.4647043Z         "impl",
2026-06-13T11:54:08.4647691Z         "unit"
2026-06-13T11:54:08.4648328Z       ],
2026-06-13T11:54:08.4649018Z       "stages": {
2026-06-13T11:54:08.4649690Z         "doc": {
2026-06-13T11:54:08.4650372Z           "complete": false,
2026-06-13T11:54:08.4651160Z           "evidence": []
2026-06-13T11:54:08.4651870Z         },
2026-06-13T11:54:08.4652486Z         "impl": {
2026-06-13T11:54:08.4653572Z           "complete": true,
2026-06-13T11:54:08.4654340Z           "evidence": [
2026-06-13T11:54:08.4655027Z             {
2026-06-13T11:54:08.4655788Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:54:08.4656753Z               "line": 34
2026-06-13T11:54:08.4657458Z             },
2026-06-13T11:54:08.4658093Z             {
2026-06-13T11:54:08.4658860Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:54:08.4659902Z               "line": 41
2026-06-13T11:54:08.4660603Z             }
2026-06-13T11:54:08.4661217Z           ]
2026-06-13T11:54:08.4661817Z         },
2026-06-13T11:54:08.4662421Z         "int": {
2026-06-13T11:54:08.4663102Z           "complete": false,
2026-06-13T11:54:08.4664024Z           "evidence": []
2026-06-13T11:54:08.4664737Z         },
2026-06-13T11:54:08.4665352Z         "unit": {
2026-06-13T11:54:08.4666034Z           "complete": true,
2026-06-13T11:54:08.4666779Z           "evidence": [
2026-06-13T11:54:08.4667467Z             {
2026-06-13T11:54:08.4668244Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:54:08.4669267Z               "line": 51
2026-06-13T11:54:08.4669966Z             },
2026-06-13T11:54:08.4670600Z             {
2026-06-13T11:54:08.4671364Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:54:08.4672319Z               "line": 71
2026-06-13T11:54:08.4673029Z             },
2026-06-13T11:54:08.4673649Z             {
2026-06-13T11:54:08.4674406Z               "path": "crates/spt-proto/src/version.rs",
2026-06-13T11:54:08.4675349Z               "line": 83
2026-06-13T11:54:08.4676050Z             }
2026-06-13T11:54:08.4676690Z           ]
2026-06-13T11:54:08.4677292Z         }
2026-06-13T11:54:08.4677916Z       }
2026-06-13T11:54:08.4678522Z     },
2026-06-13T11:54:08.4679189Z     {
2026-06-13T11:54:08.4679809Z       "id": "REQ-ARCH-4",
2026-06-13T11:54:08.4680894Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-13T11:54:08.4682071Z       "requiredStages": [
2026-06-13T11:54:08.4682802Z         "impl",
2026-06-13T11:54:08.4683446Z         "unit"
2026-06-13T11:54:08.4684066Z       ],
2026-06-13T11:54:08.4684666Z       "stages": {
2026-06-13T11:54:08.4685309Z         "doc": {
2026-06-13T11:54:08.4685981Z           "complete": false,
2026-06-13T11:54:08.4686755Z           "evidence": []
2026-06-13T11:54:08.4687482Z         },
2026-06-13T11:54:08.4688100Z         "impl": {
2026-06-13T11:54:08.4688786Z           "complete": true,
2026-06-13T11:54:08.4689608Z           "evidence": [
2026-06-13T11:54:08.4690293Z             {
2026-06-13T11:54:08.4691043Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4692016Z               "line": 157
2026-06-13T11:54:08.4692757Z             },
2026-06-13T11:54:08.4693372Z             {
2026-06-13T11:54:08.4694116Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4695065Z               "line": 180
2026-06-13T11:54:08.4695793Z             },
2026-06-13T11:54:08.4696437Z             {
2026-06-13T11:54:08.4697181Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4698128Z               "line": 200
2026-06-13T11:54:08.4698841Z             },
2026-06-13T11:54:08.4699557Z             {
2026-06-13T11:54:08.4700314Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4701260Z               "line": 215
2026-06-13T11:54:08.4701975Z             },
2026-06-13T11:54:08.4702595Z             {
2026-06-13T11:54:08.4703341Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4704291Z               "line": 265
2026-06-13T11:54:08.4705005Z             }
2026-06-13T11:54:08.4705629Z           ]
2026-06-13T11:54:08.4706259Z         },
2026-06-13T11:54:08.4706869Z         "int": {
2026-06-13T11:54:08.4707555Z           "complete": false,
2026-06-13T11:54:08.4708336Z           "evidence": []
2026-06-13T11:54:08.4709096Z         },
2026-06-13T11:54:08.4709722Z         "unit": {
2026-06-13T11:54:08.4710957Z           "complete": true,
2026-06-13T11:54:08.4711736Z           "evidence": [
2026-06-13T11:54:08.4712431Z             {
2026-06-13T11:54:08.4713189Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4714136Z               "line": 326
2026-06-13T11:54:08.4714865Z             },
2026-06-13T11:54:08.4715504Z             {
2026-06-13T11:54:08.4716251Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4717195Z               "line": 336
2026-06-13T11:54:08.4717919Z             },
2026-06-13T11:54:08.4718554Z             {
2026-06-13T11:54:08.4719377Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4720315Z               "line": 347
2026-06-13T11:54:08.4721250Z             },
2026-06-13T11:54:08.4721880Z             {
2026-06-13T11:54:08.4722615Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4723545Z               "line": 358
2026-06-13T11:54:08.4724263Z             },
2026-06-13T11:54:08.4724881Z             {
2026-06-13T11:54:08.4725629Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4726568Z               "line": 370
2026-06-13T11:54:08.4727276Z             },
2026-06-13T11:54:08.4727907Z             {
2026-06-13T11:54:08.4728642Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4729652Z               "line": 383
2026-06-13T11:54:08.4730360Z             },
2026-06-13T11:54:08.4730989Z             {
2026-06-13T11:54:08.4731723Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4732661Z               "line": 394
2026-06-13T11:54:08.4733365Z             },
2026-06-13T11:54:08.4733994Z             {
2026-06-13T11:54:08.4734735Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4735680Z               "line": 411
2026-06-13T11:54:08.4736395Z             },
2026-06-13T11:54:08.4737023Z             {
2026-06-13T11:54:08.4737758Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.4738705Z               "line": 539
2026-06-13T11:54:08.4739475Z             }
2026-06-13T11:54:08.4740104Z           ]
2026-06-13T11:54:08.4740705Z         }
2026-06-13T11:54:08.4741310Z       }
2026-06-13T11:54:08.4741888Z     },
2026-06-13T11:54:08.4742479Z     {
2026-06-13T11:54:08.4743132Z       "id": "REQ-CLI-1",
2026-06-13T11:54:08.4747613Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-13T11:54:08.4752181Z       "requiredStages": [
2026-06-13T11:54:08.4752916Z         "impl",
2026-06-13T11:54:08.4753556Z         "unit"
2026-06-13T11:54:08.4754175Z       ],
2026-06-13T11:54:08.4754781Z       "stages": {
2026-06-13T11:54:08.4755439Z         "doc": {
2026-06-13T11:54:08.4756108Z           "complete": false,
2026-06-13T11:54:08.4756881Z           "evidence": []
2026-06-13T11:54:08.4757591Z         },
2026-06-13T11:54:08.4758202Z         "impl": {
2026-06-13T11:54:08.4758869Z           "complete": true,
2026-06-13T11:54:08.4759694Z           "evidence": [
2026-06-13T11:54:08.4760375Z             {
2026-06-13T11:54:08.4761085Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4761984Z               "line": 200
2026-06-13T11:54:08.4762702Z             },
2026-06-13T11:54:08.4763337Z             {
2026-06-13T11:54:08.4764034Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4764931Z               "line": 864
2026-06-13T11:54:08.4765680Z             },
2026-06-13T11:54:08.4766315Z             {
2026-06-13T11:54:08.4767024Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4767922Z               "line": 1244
2026-06-13T11:54:08.4768643Z             },
2026-06-13T11:54:08.4769362Z             {
2026-06-13T11:54:08.4770372Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4771273Z               "line": 2447
2026-06-13T11:54:08.4771983Z             }
2026-06-13T11:54:08.4772609Z           ]
2026-06-13T11:54:08.4773216Z         },
2026-06-13T11:54:08.4773821Z         "int": {
2026-06-13T11:54:08.4774492Z           "complete": false,
2026-06-13T11:54:08.4775262Z           "evidence": []
2026-06-13T11:54:08.4775983Z         },
2026-06-13T11:54:08.4776584Z         "unit": {
2026-06-13T11:54:08.4777252Z           "complete": true,
2026-06-13T11:54:08.4778010Z           "evidence": [
2026-06-13T11:54:08.4778696Z             {
2026-06-13T11:54:08.4779475Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4780528Z               "line": 5811
2026-06-13T11:54:08.4781247Z             }
2026-06-13T11:54:08.4781872Z           ]
2026-06-13T11:54:08.4782477Z         }
2026-06-13T11:54:08.4783066Z       }
2026-06-13T11:54:08.4783671Z     },
2026-06-13T11:54:08.4784263Z     {
2026-06-13T11:54:08.4784912Z       "id": "REQ-CLI-2",
2026-06-13T11:54:08.4788067Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-13T11:54:08.4791379Z       "requiredStages": [
2026-06-13T11:54:08.4792126Z         "impl",
2026-06-13T11:54:08.4792775Z         "unit"
2026-06-13T11:54:08.4793401Z       ],
2026-06-13T11:54:08.4794002Z       "stages": {
2026-06-13T11:54:08.4794660Z         "doc": {
2026-06-13T11:54:08.4795347Z           "complete": false,
2026-06-13T11:54:08.4796118Z           "evidence": []
2026-06-13T11:54:08.4796845Z         },
2026-06-13T11:54:08.4797466Z         "impl": {
2026-06-13T11:54:08.4798147Z           "complete": true,
2026-06-13T11:54:08.4798916Z           "evidence": [
2026-06-13T11:54:08.4799684Z             {
2026-06-13T11:54:08.4800451Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.4801418Z               "line": 345
2026-06-13T11:54:08.4802133Z             },
2026-06-13T11:54:08.4802782Z             {
2026-06-13T11:54:08.4803550Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:54:08.4804529Z               "line": 78
2026-06-13T11:54:08.4805253Z             },
2026-06-13T11:54:08.4805893Z             {
2026-06-13T11:54:08.4806664Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.4807640Z               "line": 239
2026-06-13T11:54:08.4808355Z             },
2026-06-13T11:54:08.4809069Z             {
2026-06-13T11:54:08.4809776Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4810701Z               "line": 358
2026-06-13T11:54:08.4811422Z             },
2026-06-13T11:54:08.4812059Z             {
2026-06-13T11:54:08.4812776Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4823840Z               "line": 908
2026-06-13T11:54:08.4824652Z             },
2026-06-13T11:54:08.4825321Z             {
2026-06-13T11:54:08.4826049Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4826969Z               "line": 1435
2026-06-13T11:54:08.4827707Z             },
2026-06-13T11:54:08.4828344Z             {
2026-06-13T11:54:08.4829122Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4830039Z               "line": 1514
2026-06-13T11:54:08.4830774Z             },
2026-06-13T11:54:08.4831408Z             {
2026-06-13T11:54:08.4832113Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4833019Z               "line": 1575
2026-06-13T11:54:08.4833733Z             }
2026-06-13T11:54:08.4834353Z           ]
2026-06-13T11:54:08.4834963Z         },
2026-06-13T11:54:08.4835590Z         "int": {
2026-06-13T11:54:08.4836280Z           "complete": false,
2026-06-13T11:54:08.4837049Z           "evidence": []
2026-06-13T11:54:08.4837760Z         },
2026-06-13T11:54:08.4838368Z         "unit": {
2026-06-13T11:54:08.4839519Z           "complete": true,
2026-06-13T11:54:08.4840312Z           "evidence": [
2026-06-13T11:54:08.4841000Z             {
2026-06-13T11:54:08.4841771Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.4842739Z               "line": 309
2026-06-13T11:54:08.4843451Z             },
2026-06-13T11:54:08.4844083Z             {
2026-06-13T11:54:08.4844780Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4845671Z               "line": 5949
2026-06-13T11:54:08.4846383Z             }
2026-06-13T11:54:08.4847008Z           ]
2026-06-13T11:54:08.4847604Z         }
2026-06-13T11:54:08.4848200Z       }
2026-06-13T11:54:08.4848780Z     },
2026-06-13T11:54:08.4849455Z     {
2026-06-13T11:54:08.4850248Z       "id": "REQ-CLI-3",
2026-06-13T11:54:08.4853416Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-13T11:54:08.4856668Z       "requiredStages": [
2026-06-13T11:54:08.4857387Z         "impl",
2026-06-13T11:54:08.4858021Z         "unit"
2026-06-13T11:54:08.4858645Z       ],
2026-06-13T11:54:08.4859326Z       "stages": {
2026-06-13T11:54:08.4859972Z         "doc": {
2026-06-13T11:54:08.4860630Z           "complete": false,
2026-06-13T11:54:08.4861394Z           "evidence": []
2026-06-13T11:54:08.4862093Z         },
2026-06-13T11:54:08.4862707Z         "impl": {
2026-06-13T11:54:08.4863365Z           "complete": true,
2026-06-13T11:54:08.4864108Z           "evidence": [
2026-06-13T11:54:08.4864770Z             {
2026-06-13T11:54:08.4865451Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4866338Z               "line": 858
2026-06-13T11:54:08.4867043Z             }
2026-06-13T11:54:08.4867637Z           ]
2026-06-13T11:54:08.4868233Z         },
2026-06-13T11:54:08.4868820Z         "int": {
2026-06-13T11:54:08.4869553Z           "complete": false,
2026-06-13T11:54:08.4870303Z           "evidence": []
2026-06-13T11:54:08.4870991Z         },
2026-06-13T11:54:08.4871596Z         "unit": {
2026-06-13T11:54:08.4872251Z           "complete": true,
2026-06-13T11:54:08.4872962Z           "evidence": [
2026-06-13T11:54:08.4873638Z             {
2026-06-13T11:54:08.4874320Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4875194Z               "line": 5776
2026-06-13T11:54:08.4875908Z             }
2026-06-13T11:54:08.4876522Z           ]
2026-06-13T11:54:08.4877128Z         }
2026-06-13T11:54:08.4877718Z       }
2026-06-13T11:54:08.4878302Z     },
2026-06-13T11:54:08.4878879Z     {
2026-06-13T11:54:08.4880225Z       "id": "REQ-CONSENT-1",
2026-06-13T11:54:08.4885204Z       "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-13T11:54:08.4890059Z       "requiredStages": [
2026-06-13T11:54:08.4890964Z         "impl",
2026-06-13T11:54:08.4891753Z         "unit"
2026-06-13T11:54:08.4892535Z       ],
2026-06-13T11:54:08.4893274Z       "stages": {
2026-06-13T11:54:08.4894034Z         "doc": {
2026-06-13T11:54:08.4894749Z           "complete": false,
2026-06-13T11:54:08.4895516Z           "evidence": []
2026-06-13T11:54:08.4896356Z         },
2026-06-13T11:54:08.4897033Z         "impl": {
2026-06-13T11:54:08.4897714Z           "complete": true,
2026-06-13T11:54:08.4898467Z           "evidence": [
2026-06-13T11:54:08.4899317Z             {
2026-06-13T11:54:08.4900114Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4901248Z               "line": 27
2026-06-13T11:54:08.4901945Z             },
2026-06-13T11:54:08.4902575Z             {
2026-06-13T11:54:08.4903335Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4904589Z               "line": 75
2026-06-13T11:54:08.4905305Z             },
2026-06-13T11:54:08.4905929Z             {
2026-06-13T11:54:08.4906667Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4907588Z               "line": 98
2026-06-13T11:54:08.4908279Z             },
2026-06-13T11:54:08.4908893Z             {
2026-06-13T11:54:08.4909706Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4910616Z               "line": 82
2026-06-13T11:54:08.4911299Z             },
2026-06-13T11:54:08.4911905Z             {
2026-06-13T11:54:08.4912674Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4913608Z               "line": 109
2026-06-13T11:54:08.4914428Z             },
2026-06-13T11:54:08.4915044Z             {
2026-06-13T11:54:08.4915774Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4916694Z               "line": 127
2026-06-13T11:54:08.4917387Z             },
2026-06-13T11:54:08.4918009Z             {
2026-06-13T11:54:08.4918729Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4919744Z               "line": 142
2026-06-13T11:54:08.4920428Z             },
2026-06-13T11:54:08.4921029Z             {
2026-06-13T11:54:08.4921720Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4922589Z               "line": 5413
2026-06-13T11:54:08.4923272Z             }
2026-06-13T11:54:08.4923868Z           ]
2026-06-13T11:54:08.4924450Z         },
2026-06-13T11:54:08.4925032Z         "int": {
2026-06-13T11:54:08.4925690Z           "complete": false,
2026-06-13T11:54:08.4926429Z           "evidence": []
2026-06-13T11:54:08.4927106Z         },
2026-06-13T11:54:08.4927703Z         "unit": {
2026-06-13T11:54:08.4928351Z           "complete": true,
2026-06-13T11:54:08.4929136Z           "evidence": [
2026-06-13T11:54:08.4929804Z             {
2026-06-13T11:54:08.4930528Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4931427Z               "line": 334
2026-06-13T11:54:08.4932105Z             },
2026-06-13T11:54:08.4932705Z             {
2026-06-13T11:54:08.4933428Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4934347Z               "line": 380
2026-06-13T11:54:08.4935025Z             },
2026-06-13T11:54:08.4935635Z             {
2026-06-13T11:54:08.4936341Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4937243Z               "line": 391
2026-06-13T11:54:08.4937911Z             },
2026-06-13T11:54:08.4938521Z             {
2026-06-13T11:54:08.4939320Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4940212Z               "line": 165
2026-06-13T11:54:08.4940898Z             },
2026-06-13T11:54:08.4941497Z             {
2026-06-13T11:54:08.4942216Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4943108Z               "line": 184
2026-06-13T11:54:08.4943775Z             },
2026-06-13T11:54:08.4944368Z             {
2026-06-13T11:54:08.4945060Z               "path": "crates/spt-store/src/grants.rs",
2026-06-13T11:54:08.4945952Z               "line": 204
2026-06-13T11:54:08.4946630Z             },
2026-06-13T11:54:08.4947230Z             {
2026-06-13T11:54:08.4947902Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4948743Z               "line": 6129
2026-06-13T11:54:08.4949556Z             }
2026-06-13T11:54:08.4950148Z           ]
2026-06-13T11:54:08.4950730Z         }
2026-06-13T11:54:08.4951302Z       }
2026-06-13T11:54:08.4951884Z     },
2026-06-13T11:54:08.4952581Z     {
2026-06-13T11:54:08.4953191Z       "id": "REQ-CONSENT-2",
2026-06-13T11:54:08.4956563Z       "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-13T11:54:08.4960144Z       "requiredStages": [
2026-06-13T11:54:08.4960846Z         "impl",
2026-06-13T11:54:08.4961461Z         "unit"
2026-06-13T11:54:08.4962075Z       ],
2026-06-13T11:54:08.4962664Z       "stages": {
2026-06-13T11:54:08.4963275Z         "doc": {
2026-06-13T11:54:08.4963903Z           "complete": false,
2026-06-13T11:54:08.4964628Z           "evidence": []
2026-06-13T11:54:08.4965292Z         },
2026-06-13T11:54:08.4965874Z         "impl": {
2026-06-13T11:54:08.4966513Z           "complete": true,
2026-06-13T11:54:08.4967214Z           "evidence": [
2026-06-13T11:54:08.4967873Z             {
2026-06-13T11:54:08.4968595Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4969581Z               "line": 140
2026-06-13T11:54:08.4970357Z             },
2026-06-13T11:54:08.4970959Z             {
2026-06-13T11:54:08.4971682Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4972578Z               "line": 165
2026-06-13T11:54:08.4973238Z             },
2026-06-13T11:54:08.4973840Z             {
2026-06-13T11:54:08.4974559Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4975460Z               "line": 199
2026-06-13T11:54:08.4976129Z             },
2026-06-13T11:54:08.4976735Z             {
2026-06-13T11:54:08.4977513Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4978414Z               "line": 241
2026-06-13T11:54:08.4979188Z             },
2026-06-13T11:54:08.4979784Z             {
2026-06-13T11:54:08.4980504Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4981404Z               "line": 269
2026-06-13T11:54:08.4982076Z             },
2026-06-13T11:54:08.4982687Z             {
2026-06-13T11:54:08.4983418Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4984314Z               "line": 300
2026-06-13T11:54:08.4984986Z             },
2026-06-13T11:54:08.4985578Z             {
2026-06-13T11:54:08.4986253Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4987119Z               "line": 5278
2026-06-13T11:54:08.4987802Z             },
2026-06-13T11:54:08.4988402Z             {
2026-06-13T11:54:08.4989142Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.4990010Z               "line": 5336
2026-06-13T11:54:08.4990693Z             }
2026-06-13T11:54:08.4991279Z           ]
2026-06-13T11:54:08.4991863Z         },
2026-06-13T11:54:08.4992459Z         "int": {
2026-06-13T11:54:08.4993108Z           "complete": false,
2026-06-13T11:54:08.4993836Z           "evidence": []
2026-06-13T11:54:08.4994507Z         },
2026-06-13T11:54:08.4995088Z         "unit": {
2026-06-13T11:54:08.4995732Z           "complete": true,
2026-06-13T11:54:08.4996458Z           "evidence": [
2026-06-13T11:54:08.4997122Z             {
2026-06-13T11:54:08.4997847Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.4998757Z               "line": 419
2026-06-13T11:54:08.4999544Z             },
2026-06-13T11:54:08.5000150Z             {
2026-06-13T11:54:08.5000875Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.5001781Z               "line": 436
2026-06-13T11:54:08.5002447Z             },
2026-06-13T11:54:08.5003034Z             {
2026-06-13T11:54:08.5003750Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.5004647Z               "line": 472
2026-06-13T11:54:08.5005304Z             },
2026-06-13T11:54:08.5005901Z             {
2026-06-13T11:54:08.5006617Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.5007509Z               "line": 516
2026-06-13T11:54:08.5008181Z             },
2026-06-13T11:54:08.5008768Z             {
2026-06-13T11:54:08.5009508Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5010371Z               "line": 7196
2026-06-13T11:54:08.5011058Z             },
2026-06-13T11:54:08.5011654Z             {
2026-06-13T11:54:08.5012331Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5013175Z               "line": 7278
2026-06-13T11:54:08.5013975Z             }
2026-06-13T11:54:08.5014576Z           ]
2026-06-13T11:54:08.5015155Z         }
2026-06-13T11:54:08.5015723Z       }
2026-06-13T11:54:08.5016286Z     },
2026-06-13T11:54:08.5016852Z     {
2026-06-13T11:54:08.5017458Z       "id": "REQ-CONV-1",
2026-06-13T11:54:08.5022606Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-13T11:54:08.5027422Z       "requiredStages": [
2026-06-13T11:54:08.5028110Z         "impl",
2026-06-13T11:54:08.5028715Z         "unit"
2026-06-13T11:54:08.5029379Z       ],
2026-06-13T11:54:08.5029965Z       "stages": {
2026-06-13T11:54:08.5030566Z         "doc": {
2026-06-13T11:54:08.5031191Z           "complete": false,
2026-06-13T11:54:08.5031911Z           "evidence": []
2026-06-13T11:54:08.5032580Z         },
2026-06-13T11:54:08.5033156Z         "impl": {
2026-06-13T11:54:08.5033794Z           "complete": true,
2026-06-13T11:54:08.5034496Z           "evidence": [
2026-06-13T11:54:08.5035144Z             {
2026-06-13T11:54:08.5035860Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5036738Z               "line": 696
2026-06-13T11:54:08.5037401Z             },
2026-06-13T11:54:08.5038002Z             {
2026-06-13T11:54:08.5038736Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.5039729Z               "line": 94
2026-06-13T11:54:08.5040396Z             },
2026-06-13T11:54:08.5040993Z             {
2026-06-13T11:54:08.5041719Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.5042634Z               "line": 345
2026-06-13T11:54:08.5043311Z             },
2026-06-13T11:54:08.5043916Z             {
2026-06-13T11:54:08.5044654Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.5045561Z               "line": 387
2026-06-13T11:54:08.5046242Z             },
2026-06-13T11:54:08.5046840Z             {
2026-06-13T11:54:08.5047564Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.5048480Z               "line": 472
2026-06-13T11:54:08.5049244Z             },
2026-06-13T11:54:08.5049845Z             {
2026-06-13T11:54:08.5050575Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5051496Z               "line": 667
2026-06-13T11:54:08.5052171Z             },
2026-06-13T11:54:08.5052770Z             {
2026-06-13T11:54:08.5053485Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5054462Z               "line": 693
2026-06-13T11:54:08.5055134Z             },
2026-06-13T11:54:08.5055759Z             {
2026-06-13T11:54:08.5056492Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.5057400Z               "line": 369
2026-06-13T11:54:08.5058072Z             },
2026-06-13T11:54:08.5058664Z             {
2026-06-13T11:54:08.5059485Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:54:08.5060391Z               "line": 19
2026-06-13T11:54:08.5061054Z             }
2026-06-13T11:54:08.5061645Z           ]
2026-06-13T11:54:08.5062222Z         },
2026-06-13T11:54:08.5062801Z         "int": {
2026-06-13T11:54:08.5063445Z           "complete": false,
2026-06-13T11:54:08.5064169Z           "evidence": []
2026-06-13T11:54:08.5064836Z         },
2026-06-13T11:54:08.5065408Z         "unit": {
2026-06-13T11:54:08.5066061Z           "complete": true,
2026-06-13T11:54:08.5066781Z           "evidence": [
2026-06-13T11:54:08.5067444Z             {
2026-06-13T11:54:08.5068171Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5069162Z               "line": 1263
2026-06-13T11:54:08.5069963Z             },
2026-06-13T11:54:08.5070581Z             {
2026-06-13T11:54:08.5071314Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:54:08.5072224Z               "line": 108
2026-06-13T11:54:08.5072903Z             },
2026-06-13T11:54:08.5073503Z             {
2026-06-13T11:54:08.5074234Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:54:08.5075140Z               "line": 134
2026-06-13T11:54:08.5075827Z             },
2026-06-13T11:54:08.5076421Z             {
2026-06-13T11:54:08.5077141Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-13T11:54:08.5078095Z               "line": 144
2026-06-13T11:54:08.5078764Z             }
2026-06-13T11:54:08.5079549Z           ]
2026-06-13T11:54:08.5080118Z         }
2026-06-13T11:54:08.5080681Z       }
2026-06-13T11:54:08.5081242Z     },
2026-06-13T11:54:08.5081812Z     {
2026-06-13T11:54:08.5141132Z       "id": "REQ-CONV-2",
2026-06-13T11:54:08.5145649Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-13T11:54:08.5149594Z       "requiredStages": [
2026-06-13T11:54:08.5150294Z         "impl",
2026-06-13T11:54:08.5150914Z         "unit"
2026-06-13T11:54:08.5151529Z       ],
2026-06-13T11:54:08.5152111Z       "stages": {
2026-06-13T11:54:08.5152747Z         "doc": {
2026-06-13T11:54:08.5153390Z           "complete": false,
2026-06-13T11:54:08.5154124Z           "evidence": []
2026-06-13T11:54:08.5154827Z         },
2026-06-13T11:54:08.5155408Z         "impl": {
2026-06-13T11:54:08.5156042Z           "complete": true,
2026-06-13T11:54:08.5156768Z           "evidence": [
2026-06-13T11:54:08.5157417Z             {
2026-06-13T11:54:08.5158153Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5159158Z               "line": 359
2026-06-13T11:54:08.5159873Z             },
2026-06-13T11:54:08.5160478Z             {
2026-06-13T11:54:08.5161227Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.5162162Z               "line": 119
2026-06-13T11:54:08.5162847Z             },
2026-06-13T11:54:08.5163449Z             {
2026-06-13T11:54:08.5164213Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.5165138Z               "line": 789
2026-06-13T11:54:08.5165808Z             },
2026-06-13T11:54:08.5166403Z             {
2026-06-13T11:54:08.5167152Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.5168090Z               "line": 800
2026-06-13T11:54:08.5168764Z             },
2026-06-13T11:54:08.5169460Z             {
2026-06-13T11:54:08.5170182Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.5171066Z               "line": 334
2026-06-13T11:54:08.5171748Z             },
2026-06-13T11:54:08.5172344Z             {
2026-06-13T11:54:08.5173003Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5173843Z               "line": 2402
2026-06-13T11:54:08.5174519Z             },
2026-06-13T11:54:08.5175131Z             {
2026-06-13T11:54:08.5175798Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5176639Z               "line": 2418
2026-06-13T11:54:08.5177321Z             },
2026-06-13T11:54:08.5178021Z             {
2026-06-13T11:54:08.5178693Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5179630Z               "line": 2475
2026-06-13T11:54:08.5180302Z             }
2026-06-13T11:54:08.5180893Z           ]
2026-06-13T11:54:08.5181490Z         },
2026-06-13T11:54:08.5182076Z         "int": {
2026-06-13T11:54:08.5182710Z           "complete": false,
2026-06-13T11:54:08.5183438Z           "evidence": []
2026-06-13T11:54:08.5184107Z         },
2026-06-13T11:54:08.5184680Z         "unit": {
2026-06-13T11:54:08.5185662Z           "complete": true,
2026-06-13T11:54:08.5186377Z           "evidence": [
2026-06-13T11:54:08.5187032Z             {
2026-06-13T11:54:08.5187757Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5188663Z               "line": 889
2026-06-13T11:54:08.5189429Z             },
2026-06-13T11:54:08.5190038Z             {
2026-06-13T11:54:08.5190762Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5191659Z               "line": 1014
2026-06-13T11:54:08.5192336Z             },
2026-06-13T11:54:08.5192922Z             {
2026-06-13T11:54:08.5193674Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.5194767Z               "line": 215
2026-06-13T11:54:08.5195435Z             }
2026-06-13T11:54:08.5196055Z           ]
2026-06-13T11:54:08.5196636Z         }
2026-06-13T11:54:08.5197208Z       }
2026-06-13T11:54:08.5197764Z     },
2026-06-13T11:54:08.5198341Z     {
2026-06-13T11:54:08.5198936Z       "id": "REQ-DAEMON-1",
2026-06-13T11:54:08.5200013Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-13T11:54:08.5201084Z       "requiredStages": [
2026-06-13T11:54:08.5201775Z         "impl",
2026-06-13T11:54:08.5202381Z         "unit",
2026-06-13T11:54:08.5202985Z         "int"
2026-06-13T11:54:08.5203568Z       ],
2026-06-13T11:54:08.5204140Z       "stages": {
2026-06-13T11:54:08.5204756Z         "doc": {
2026-06-13T11:54:08.5205404Z           "complete": false,
2026-06-13T11:54:08.5206134Z           "evidence": []
2026-06-13T11:54:08.5206806Z         },
2026-06-13T11:54:08.5207389Z         "impl": {
2026-06-13T11:54:08.5208044Z           "complete": true,
2026-06-13T11:54:08.5208753Z           "evidence": [
2026-06-13T11:54:08.5209496Z             {
2026-06-13T11:54:08.5210218Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5211100Z               "line": 12
2026-06-13T11:54:08.5211764Z             },
2026-06-13T11:54:08.5212364Z             {
2026-06-13T11:54:08.5213090Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5213989Z               "line": 16
2026-06-13T11:54:08.5214667Z             },
2026-06-13T11:54:08.5215267Z             {
2026-06-13T11:54:08.5216003Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5216910Z               "line": 259
2026-06-13T11:54:08.5217582Z             },
2026-06-13T11:54:08.5218168Z             {
2026-06-13T11:54:08.5218875Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:54:08.5220196Z               "line": 15
2026-06-13T11:54:08.5220868Z             },
2026-06-13T11:54:08.5221461Z             {
2026-06-13T11:54:08.5222181Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T11:54:08.5223035Z               "line": 13
2026-06-13T11:54:08.5223698Z             }
2026-06-13T11:54:08.5224277Z           ]
2026-06-13T11:54:08.5224854Z         },
2026-06-13T11:54:08.5225421Z         "int": {
2026-06-13T11:54:08.5226060Z           "complete": true,
2026-06-13T11:54:08.5226767Z           "evidence": [
2026-06-13T11:54:08.5227416Z             {
2026-06-13T11:54:08.5228146Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:54:08.5229173Z               "line": 32
2026-06-13T11:54:08.5229836Z             }
2026-06-13T11:54:08.5230418Z           ]
2026-06-13T11:54:08.5230986Z         },
2026-06-13T11:54:08.5231560Z         "unit": {
2026-06-13T11:54:08.5232201Z           "complete": true,
2026-06-13T11:54:08.5232903Z           "evidence": [
2026-06-13T11:54:08.5233547Z             {
2026-06-13T11:54:08.5234249Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5235138Z               "line": 285
2026-06-13T11:54:08.5235816Z             },
2026-06-13T11:54:08.5236412Z             {
2026-06-13T11:54:08.5237123Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5238001Z               "line": 293
2026-06-13T11:54:08.5238669Z             },
2026-06-13T11:54:08.5239985Z             {
2026-06-13T11:54:08.5240753Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5241650Z               "line": 309
2026-06-13T11:54:08.5242319Z             },
2026-06-13T11:54:08.5242906Z             {
2026-06-13T11:54:08.5243620Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5244508Z               "line": 317
2026-06-13T11:54:08.5245175Z             },
2026-06-13T11:54:08.5245770Z             {
2026-06-13T11:54:08.5246499Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5247398Z               "line": 609
2026-06-13T11:54:08.5248079Z             },
2026-06-13T11:54:08.5248670Z             {
2026-06-13T11:54:08.5249624Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5250531Z               "line": 679
2026-06-13T11:54:08.5251194Z             },
2026-06-13T11:54:08.5251781Z             {
2026-06-13T11:54:08.5252482Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:54:08.5253379Z               "line": 104
2026-06-13T11:54:08.5254057Z             },
2026-06-13T11:54:08.5254658Z             {
2026-06-13T11:54:08.5255349Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-13T11:54:08.5256234Z               "line": 129
2026-06-13T11:54:08.5256898Z             }
2026-06-13T11:54:08.5257493Z           ]
2026-06-13T11:54:08.5258076Z         }
2026-06-13T11:54:08.5258640Z       }
2026-06-13T11:54:08.5259293Z     },
2026-06-13T11:54:08.5259865Z     {
2026-06-13T11:54:08.5260457Z       "id": "REQ-DAEMON-2",
2026-06-13T11:54:08.5261329Z       "title": "Broker/brain split for seamless self-update",
2026-06-13T11:54:08.5262297Z       "requiredStages": [
2026-06-13T11:54:08.5263005Z         "impl",
2026-06-13T11:54:08.5263615Z         "unit",
2026-06-13T11:54:08.5264244Z         "int"
2026-06-13T11:54:08.5264835Z       ],
2026-06-13T11:54:08.5265418Z       "stages": {
2026-06-13T11:54:08.5266037Z         "doc": {
2026-06-13T11:54:08.5266713Z           "complete": true,
2026-06-13T11:54:08.5267409Z           "evidence": [
2026-06-13T11:54:08.5268058Z             {
2026-06-13T11:54:08.5268751Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-13T11:54:08.5269686Z               "line": 250
2026-06-13T11:54:08.5270349Z             }
2026-06-13T11:54:08.5270935Z           ]
2026-06-13T11:54:08.5271499Z         },
2026-06-13T11:54:08.5272072Z         "impl": {
2026-06-13T11:54:08.5272700Z           "complete": true,
2026-06-13T11:54:08.5273396Z           "evidence": [
2026-06-13T11:54:08.5274108Z             {
2026-06-13T11:54:08.5274895Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5275873Z               "line": 23
2026-06-13T11:54:08.5276869Z             },
2026-06-13T11:54:08.5277698Z             {
2026-06-13T11:54:08.5278527Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5279631Z               "line": 730
2026-06-13T11:54:08.5280427Z             },
2026-06-13T11:54:08.5281176Z             {
2026-06-13T11:54:08.5282021Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5283017Z               "line": 783
2026-06-13T11:54:08.5283805Z             },
2026-06-13T11:54:08.5284490Z             {
2026-06-13T11:54:08.5285317Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5286329Z               "line": 968
2026-06-13T11:54:08.5286629Z             },
2026-06-13T11:54:08.5286982Z             {
2026-06-13T11:54:08.5287415Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5287781Z               "line": 32
2026-06-13T11:54:08.5288082Z             },
2026-06-13T11:54:08.5288415Z             {
2026-06-13T11:54:08.5288893Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5289340Z               "line": 255
2026-06-13T11:54:08.5289676Z             },
2026-06-13T11:54:08.5289972Z             {
2026-06-13T11:54:08.5290423Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5290973Z               "line": 687
2026-06-13T11:54:08.5291302Z             },
2026-06-13T11:54:08.5291635Z             {
2026-06-13T11:54:08.5292051Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5292402Z               "line": 953
2026-06-13T11:54:08.5292690Z             },
2026-06-13T11:54:08.5293106Z             {
2026-06-13T11:54:08.5293545Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:54:08.5293859Z               "line": 11
2026-06-13T11:54:08.5294197Z             },
2026-06-13T11:54:08.5294492Z             {
2026-06-13T11:54:08.5294992Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5295310Z               "line": 146
2026-06-13T11:54:08.5295782Z             },
2026-06-13T11:54:08.5296130Z             {
2026-06-13T11:54:08.5296535Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5296951Z               "line": 274
2026-06-13T11:54:08.5297252Z             },
2026-06-13T11:54:08.5297586Z             {
2026-06-13T11:54:08.5298046Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5298346Z               "line": 13
2026-06-13T11:54:08.5298742Z             },
2026-06-13T11:54:08.5299138Z             {
2026-06-13T11:54:08.5299643Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5299967Z               "line": 27
2026-06-13T11:54:08.5300326Z             },
2026-06-13T11:54:08.5300708Z             {
2026-06-13T11:54:08.5301133Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5301495Z               "line": 109
2026-06-13T11:54:08.5301795Z             },
2026-06-13T11:54:08.5302115Z             {
2026-06-13T11:54:08.5302616Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5302938Z               "line": 447
2026-06-13T11:54:08.5303298Z             },
2026-06-13T11:54:08.5303608Z             {
2026-06-13T11:54:08.5304043Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5304395Z               "line": 614
2026-06-13T11:54:08.5304742Z             },
2026-06-13T11:54:08.5305091Z             {
2026-06-13T11:54:08.5305509Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5305846Z               "line": 715
2026-06-13T11:54:08.5306185Z             },
2026-06-13T11:54:08.5306538Z             {
2026-06-13T11:54:08.5306957Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5307310Z               "line": 764
2026-06-13T11:54:08.5307629Z             },
2026-06-13T11:54:08.5307973Z             {
2026-06-13T11:54:08.5308449Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5308763Z               "line": 812
2026-06-13T11:54:08.5309188Z             },
2026-06-13T11:54:08.5309502Z             {
2026-06-13T11:54:08.5309974Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:54:08.5310357Z               "line": 10
2026-06-13T11:54:08.5310655Z             }
2026-06-13T11:54:08.5310977Z           ]
2026-06-13T11:54:08.5311282Z         },
2026-06-13T11:54:08.5311641Z         "int": {
2026-06-13T11:54:08.5312026Z           "complete": true,
2026-06-13T11:54:08.5312341Z           "evidence": [
2026-06-13T11:54:08.5312675Z             {
2026-06-13T11:54:08.5313099Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-13T11:54:08.5313484Z               "line": 17
2026-06-13T11:54:08.5313810Z             },
2026-06-13T11:54:08.5314144Z             {
2026-06-13T11:54:08.5314627Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:54:08.5314946Z               "line": 71
2026-06-13T11:54:08.5315312Z             },
2026-06-13T11:54:08.5315622Z             {
2026-06-13T11:54:08.5316118Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:54:08.5316463Z               "line": 91
2026-06-13T11:54:08.5316760Z             },
2026-06-13T11:54:08.5317131Z             {
2026-06-13T11:54:08.5317593Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:54:08.5318057Z               "line": 167
2026-06-13T11:54:08.5318353Z             },
2026-06-13T11:54:08.5318696Z             {
2026-06-13T11:54:08.5319290Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:54:08.5319653Z               "line": 209
2026-06-13T11:54:08.5319973Z             },
2026-06-13T11:54:08.5320259Z             {
2026-06-13T11:54:08.5320748Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T11:54:08.5321134Z               "line": 128
2026-06-13T11:54:08.5321447Z             },
2026-06-13T11:54:08.5321771Z             {
2026-06-13T11:54:08.5322191Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:54:08.5322568Z               "line": 59
2026-06-13T11:54:08.5322968Z             }
2026-06-13T11:54:08.5323363Z           ]
2026-06-13T11:54:08.5323697Z         },
2026-06-13T11:54:08.5323992Z         "unit": {
2026-06-13T11:54:08.5324342Z           "complete": true,
2026-06-13T11:54:08.5324647Z           "evidence": [
2026-06-13T11:54:08.5325029Z             {
2026-06-13T11:54:08.5325426Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:54:08.5325788Z               "line": 62
2026-06-13T11:54:08.5326112Z             },
2026-06-13T11:54:08.5326394Z             {
2026-06-13T11:54:08.5326937Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:54:08.5327276Z               "line": 76
2026-06-13T11:54:08.5327605Z             },
2026-06-13T11:54:08.5327935Z             {
2026-06-13T11:54:08.5328326Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-13T11:54:08.5328721Z               "line": 88
2026-06-13T11:54:08.5329112Z             },
2026-06-13T11:54:08.5329435Z             {
2026-06-13T11:54:08.5329870Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.5330208Z               "line": 294
2026-06-13T11:54:08.5330609Z             },
2026-06-13T11:54:08.5330905Z             {
2026-06-13T11:54:08.5331338Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5331656Z               "line": 620
2026-06-13T11:54:08.5331973Z             },
2026-06-13T11:54:08.5332297Z             {
2026-06-13T11:54:08.5332746Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5333085Z               "line": 628
2026-06-13T11:54:08.5333371Z             },
2026-06-13T11:54:08.5333676Z             {
2026-06-13T11:54:08.5334110Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5334490Z               "line": 645
2026-06-13T11:54:08.5334817Z             },
2026-06-13T11:54:08.5335104Z             {
2026-06-13T11:54:08.5335517Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5335889Z               "line": 699
2026-06-13T11:54:08.5336248Z             },
2026-06-13T11:54:08.5336543Z             {
2026-06-13T11:54:08.5336992Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5337323Z               "line": 883
2026-06-13T11:54:08.5337675Z             },
2026-06-13T11:54:08.5338018Z             {
2026-06-13T11:54:08.5338441Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5338776Z               "line": 895
2026-06-13T11:54:08.5339154Z             },
2026-06-13T11:54:08.5339535Z             {
2026-06-13T11:54:08.5340005Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:54:08.5340319Z               "line": 110
2026-06-13T11:54:08.5340657Z             },
2026-06-13T11:54:08.5340963Z             {
2026-06-13T11:54:08.5341441Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:54:08.5341803Z               "line": 142
2026-06-13T11:54:08.5342090Z             }
2026-06-13T11:54:08.5342412Z           ]
2026-06-13T11:54:08.5342730Z         }
2026-06-13T11:54:08.5343077Z       }
2026-06-13T11:54:08.5343383Z     },
2026-06-13T11:54:08.5343707Z     {
2026-06-13T11:54:08.5344073Z       "id": "REQ-DAEMON-3",
2026-06-13T11:54:08.5344599Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-13T11:54:08.5345107Z       "requiredStages": [
2026-06-13T11:54:08.5345434Z         "impl",
2026-06-13T11:54:08.5345767Z         "unit",
2026-06-13T11:54:08.5346087Z         "int"
2026-06-13T11:54:08.5346449Z       ],
2026-06-13T11:54:08.5346818Z       "stages": {
2026-06-13T11:54:08.5347133Z         "doc": {
2026-06-13T11:54:08.5347500Z           "complete": false,
2026-06-13T11:54:08.5347812Z           "evidence": []
2026-06-13T11:54:08.5348139Z         },
2026-06-13T11:54:08.5348492Z         "impl": {
2026-06-13T11:54:08.5348835Z           "complete": true,
2026-06-13T11:54:08.5349379Z           "evidence": [
2026-06-13T11:54:08.5349670Z             {
2026-06-13T11:54:08.5350123Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5350560Z               "line": 14
2026-06-13T11:54:08.5350975Z             },
2026-06-13T11:54:08.5351305Z             {
2026-06-13T11:54:08.5351729Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:54:08.5352072Z               "line": 11
2026-06-13T11:54:08.5352349Z             },
2026-06-13T11:54:08.5352739Z             {
2026-06-13T11:54:08.5353122Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.5353465Z               "line": 262
2026-06-13T11:54:08.5353789Z             },
2026-06-13T11:54:08.5354076Z             {
2026-06-13T11:54:08.5354544Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5354854Z               "line": 1433
2026-06-13T11:54:08.5355188Z             },
2026-06-13T11:54:08.5355508Z             {
2026-06-13T11:54:08.5355863Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5356280Z               "line": 3362
2026-06-13T11:54:08.5356577Z             },
2026-06-13T11:54:08.5356910Z             {
2026-06-13T11:54:08.5357276Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5357601Z               "line": 3383
2026-06-13T11:54:08.5357993Z             }
2026-06-13T11:54:08.5358281Z           ]
2026-06-13T11:54:08.5358608Z         },
2026-06-13T11:54:08.5358909Z         "int": {
2026-06-13T11:54:08.5359349Z           "complete": true,
2026-06-13T11:54:08.5359724Z           "evidence": [
2026-06-13T11:54:08.5360067Z             {
2026-06-13T11:54:08.5360516Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.5360816Z               "line": 49
2026-06-13T11:54:08.5361144Z             },
2026-06-13T11:54:08.5361468Z             {
2026-06-13T11:54:08.5361932Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.5362275Z               "line": 439
2026-06-13T11:54:08.5362566Z             }
2026-06-13T11:54:08.5362895Z           ]
2026-06-13T11:54:08.5363228Z         },
2026-06-13T11:54:08.5363569Z         "unit": {
2026-06-13T11:54:08.5363908Z           "complete": true,
2026-06-13T11:54:08.5364274Z           "evidence": [
2026-06-13T11:54:08.5364579Z             {
2026-06-13T11:54:08.5365027Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5365396Z               "line": 767
2026-06-13T11:54:08.5365701Z             },
2026-06-13T11:54:08.5366039Z             {
2026-06-13T11:54:08.5366404Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5366774Z               "line": 8277
2026-06-13T11:54:08.5367108Z             }
2026-06-13T11:54:08.5367399Z           ]
2026-06-13T11:54:08.5367732Z         }
2026-06-13T11:54:08.5368033Z       }
2026-06-13T11:54:08.5368372Z     },
2026-06-13T11:54:08.5368682Z     {
2026-06-13T11:54:08.5369145Z       "id": "REQ-DAEMON-4",
2026-06-13T11:54:08.5369618Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-13T11:54:08.5369946Z       "requiredStages": [
2026-06-13T11:54:08.5370308Z         "impl",
2026-06-13T11:54:08.5370623Z         "unit",
2026-06-13T11:54:08.5370975Z         "int"
2026-06-13T11:54:08.5371299Z       ],
2026-06-13T11:54:08.5371595Z       "stages": {
2026-06-13T11:54:08.5371952Z         "doc": {
2026-06-13T11:54:08.5372281Z           "complete": false,
2026-06-13T11:54:08.5372653Z           "evidence": []
2026-06-13T11:54:08.5373083Z         },
2026-06-13T11:54:08.5373427Z         "impl": {
2026-06-13T11:54:08.5373816Z           "complete": true,
2026-06-13T11:54:08.5374162Z           "evidence": [
2026-06-13T11:54:08.5374495Z             {
2026-06-13T11:54:08.5374924Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5375278Z               "line": 414
2026-06-13T11:54:08.5375563Z             },
2026-06-13T11:54:08.5375961Z             {
2026-06-13T11:54:08.5376421Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5376736Z               "line": 479
2026-06-13T11:54:08.5377062Z             },
2026-06-13T11:54:08.5377339Z             {
2026-06-13T11:54:08.5378091Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5378435Z               "line": 501
2026-06-13T11:54:08.5378735Z             }
2026-06-13T11:54:08.5379142Z           ]
2026-06-13T11:54:08.5379435Z         },
2026-06-13T11:54:08.5379819Z         "int": {
2026-06-13T11:54:08.5380159Z           "complete": true,
2026-06-13T11:54:08.5380512Z           "evidence": [
2026-06-13T11:54:08.5380859Z             {
2026-06-13T11:54:08.5381292Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:54:08.5381685Z               "line": 37
2026-06-13T11:54:08.5381980Z             }
2026-06-13T11:54:08.5382312Z           ]
2026-06-13T11:54:08.5382607Z         },
2026-06-13T11:54:08.5389740Z         "unit": {
2026-06-13T11:54:08.5390110Z           "complete": true,
2026-06-13T11:54:08.5390409Z           "evidence": [
2026-06-13T11:54:08.5390681Z             {
2026-06-13T11:54:08.5391076Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.5391391Z               "line": 428
2026-06-13T11:54:08.5391663Z             },
2026-06-13T11:54:08.5391935Z             {
2026-06-13T11:54:08.5392322Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5392607Z               "line": 907
2026-06-13T11:54:08.5392882Z             },
2026-06-13T11:54:08.5393153Z             {
2026-06-13T11:54:08.5393555Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5393850Z               "line": 977
2026-06-13T11:54:08.5394122Z             },
2026-06-13T11:54:08.5394379Z             {
2026-06-13T11:54:08.5394784Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5395065Z               "line": 1007
2026-06-13T11:54:08.5395329Z             },
2026-06-13T11:54:08.5395588Z             {
2026-06-13T11:54:08.5395987Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5396274Z               "line": 1040
2026-06-13T11:54:08.5396541Z             }
2026-06-13T11:54:08.5396813Z           ]
2026-06-13T11:54:08.5397066Z         }
2026-06-13T11:54:08.5397323Z       }
2026-06-13T11:54:08.5397585Z     },
2026-06-13T11:54:08.5397851Z     {
2026-06-13T11:54:08.5398154Z       "id": "REQ-DAEMON-5",
2026-06-13T11:54:08.5402380Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-13T11:54:08.5402695Z       "requiredStages": [
2026-06-13T11:54:08.5402966Z         "impl",
2026-06-13T11:54:08.5403243Z         "unit"
2026-06-13T11:54:08.5403509Z       ],
2026-06-13T11:54:08.5403786Z       "stages": {
2026-06-13T11:54:08.5404062Z         "doc": {
2026-06-13T11:54:08.5404367Z           "complete": false,
2026-06-13T11:54:08.5404677Z           "evidence": []
2026-06-13T11:54:08.5404944Z         },
2026-06-13T11:54:08.5405220Z         "impl": {
2026-06-13T11:54:08.5405516Z           "complete": true,
2026-06-13T11:54:08.5405801Z           "evidence": [
2026-06-13T11:54:08.5406066Z             {
2026-06-13T11:54:08.5406633Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5406929Z               "line": 476
2026-06-13T11:54:08.5407200Z             },
2026-06-13T11:54:08.5407469Z             {
2026-06-13T11:54:08.5407863Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5408154Z               "line": 769
2026-06-13T11:54:08.5408426Z             },
2026-06-13T11:54:08.5408691Z             {
2026-06-13T11:54:08.5409301Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5409588Z               "line": 782
2026-06-13T11:54:08.5409859Z             },
2026-06-13T11:54:08.5410125Z             {
2026-06-13T11:54:08.5410513Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5410913Z               "line": 800
2026-06-13T11:54:08.5411178Z             },
2026-06-13T11:54:08.5411443Z             {
2026-06-13T11:54:08.5411839Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5412130Z               "line": 841
2026-06-13T11:54:08.5412411Z             }
2026-06-13T11:54:08.5412672Z           ]
2026-06-13T11:54:08.5412935Z         },
2026-06-13T11:54:08.5413207Z         "int": {
2026-06-13T11:54:08.5413507Z           "complete": false,
2026-06-13T11:54:08.5413803Z           "evidence": []
2026-06-13T11:54:08.5414069Z         },
2026-06-13T11:54:08.5414341Z         "unit": {
2026-06-13T11:54:08.5414632Z           "complete": true,
2026-06-13T11:54:08.5414932Z           "evidence": [
2026-06-13T11:54:08.5415194Z             {
2026-06-13T11:54:08.5415595Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5415886Z               "line": 1189
2026-06-13T11:54:08.5416156Z             },
2026-06-13T11:54:08.5416426Z             {
2026-06-13T11:54:08.5416807Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5417103Z               "line": 1213
2026-06-13T11:54:08.5417361Z             },
2026-06-13T11:54:08.5417628Z             {
2026-06-13T11:54:08.5418029Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.5418314Z               "line": 1239
2026-06-13T11:54:08.5418587Z             }
2026-06-13T11:54:08.5418849Z           ]
2026-06-13T11:54:08.5419214Z         }
2026-06-13T11:54:08.5419479Z       }
2026-06-13T11:54:08.5419745Z     },
2026-06-13T11:54:08.5420013Z     {
2026-06-13T11:54:08.5420308Z       "id": "REQ-DAEMON-6",
2026-06-13T11:54:08.5426251Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-13T11:54:08.5426571Z       "requiredStages": [
2026-06-13T11:54:08.5426846Z         "impl",
2026-06-13T11:54:08.5427114Z         "unit"
2026-06-13T11:54:08.5427376Z       ],
2026-06-13T11:54:08.5427654Z       "stages": {
2026-06-13T11:54:08.5427916Z         "doc": {
2026-06-13T11:54:08.5428217Z           "complete": false,
2026-06-13T11:54:08.5428503Z           "evidence": []
2026-06-13T11:54:08.5428761Z         },
2026-06-13T11:54:08.5429104Z         "impl": {
2026-06-13T11:54:08.5429400Z           "complete": true,
2026-06-13T11:54:08.5429698Z           "evidence": [
2026-06-13T11:54:08.5429963Z             {
2026-06-13T11:54:08.5430364Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5430650Z               "line": 426
2026-06-13T11:54:08.5430916Z             },
2026-06-13T11:54:08.5431179Z             {
2026-06-13T11:54:08.5431671Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5431972Z               "line": 457
2026-06-13T11:54:08.5432236Z             },
2026-06-13T11:54:08.5432501Z             {
2026-06-13T11:54:08.5432873Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5433159Z               "line": 55
2026-06-13T11:54:08.5433421Z             },
2026-06-13T11:54:08.5433683Z             {
2026-06-13T11:54:08.5434060Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5434336Z               "line": 70
2026-06-13T11:54:08.5434604Z             },
2026-06-13T11:54:08.5434863Z             {
2026-06-13T11:54:08.5435185Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5435476Z               "line": 1487
2026-06-13T11:54:08.5435838Z             },
2026-06-13T11:54:08.5436100Z             {
2026-06-13T11:54:08.5436449Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5436740Z               "line": 1513
2026-06-13T11:54:08.5437006Z             }
2026-06-13T11:54:08.5437267Z           ]
2026-06-13T11:54:08.5437532Z         },
2026-06-13T11:54:08.5437790Z         "int": {
2026-06-13T11:54:08.5438086Z           "complete": false,
2026-06-13T11:54:08.5438367Z           "evidence": []
2026-06-13T11:54:08.5438629Z         },
2026-06-13T11:54:08.5438891Z         "unit": {
2026-06-13T11:54:08.5439248Z           "complete": true,
2026-06-13T11:54:08.5439558Z           "evidence": [
2026-06-13T11:54:08.5439816Z             {
2026-06-13T11:54:08.5440206Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5440479Z               "line": 288
2026-06-13T11:54:08.5440752Z             },
2026-06-13T11:54:08.5441019Z             {
2026-06-13T11:54:08.5441387Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5441681Z               "line": 299
2026-06-13T11:54:08.5441940Z             },
2026-06-13T11:54:08.5442202Z             {
2026-06-13T11:54:08.5442589Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5442868Z               "line": 325
2026-06-13T11:54:08.5443138Z             },
2026-06-13T11:54:08.5443404Z             {
2026-06-13T11:54:08.5443796Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5444072Z               "line": 351
2026-06-13T11:54:08.5444339Z             }
2026-06-13T11:54:08.5444592Z           ]
2026-06-13T11:54:08.5444854Z         }
2026-06-13T11:54:08.5445123Z       }
2026-06-13T11:54:08.5445370Z     },
2026-06-13T11:54:08.5445630Z     {
2026-06-13T11:54:08.5445926Z       "id": "REQ-DAEMON-7",
2026-06-13T11:54:08.5450318Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-13T11:54:08.5450629Z       "requiredStages": [
2026-06-13T11:54:08.5450894Z         "impl",
2026-06-13T11:54:08.5451165Z         "unit"
2026-06-13T11:54:08.5451417Z       ],
2026-06-13T11:54:08.5451693Z       "stages": {
2026-06-13T11:54:08.5451951Z         "doc": {
2026-06-13T11:54:08.5452251Z           "complete": false,
2026-06-13T11:54:08.5452538Z           "evidence": []
2026-06-13T11:54:08.5452801Z         },
2026-06-13T11:54:08.5453073Z         "impl": {
2026-06-13T11:54:08.5453366Z           "complete": true,
2026-06-13T11:54:08.5453650Z           "evidence": [
2026-06-13T11:54:08.5453912Z             {
2026-06-13T11:54:08.5454303Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5454603Z               "line": 476
2026-06-13T11:54:08.5454870Z             },
2026-06-13T11:54:08.5455138Z             {
2026-06-13T11:54:08.5455528Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.5455815Z               "line": 601
2026-06-13T11:54:08.5456190Z             },
2026-06-13T11:54:08.5456443Z             {
2026-06-13T11:54:08.5456819Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5457101Z               "line": 89
2026-06-13T11:54:08.5457368Z             },
2026-06-13T11:54:08.5457631Z             {
2026-06-13T11:54:08.5457960Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5458242Z               "line": 1434
2026-06-13T11:54:08.5458506Z             }
2026-06-13T11:54:08.5458761Z           ]
2026-06-13T11:54:08.5459105Z         },
2026-06-13T11:54:08.5459377Z         "int": {
2026-06-13T11:54:08.5459672Z           "complete": false,
2026-06-13T11:54:08.5459954Z           "evidence": []
2026-06-13T11:54:08.5460331Z         },
2026-06-13T11:54:08.5460598Z         "unit": {
2026-06-13T11:54:08.5460883Z           "complete": true,
2026-06-13T11:54:08.5461161Z           "evidence": [
2026-06-13T11:54:08.5461422Z             {
2026-06-13T11:54:08.5461802Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5462078Z               "line": 314
2026-06-13T11:54:08.5462345Z             },
2026-06-13T11:54:08.5462601Z             {
2026-06-13T11:54:08.5462940Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5463221Z               "line": 5949
2026-06-13T11:54:08.5463488Z             }
2026-06-13T11:54:08.5463751Z           ]
2026-06-13T11:54:08.5464021Z         }
2026-06-13T11:54:08.5464277Z       }
2026-06-13T11:54:08.5464534Z     },
2026-06-13T11:54:08.5464796Z     {
2026-06-13T11:54:08.5465078Z       "id": "REQ-DAEMON-8",
2026-06-13T11:54:08.5467995Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-13T11:54:08.5468314Z       "requiredStages": [
2026-06-13T11:54:08.5468571Z         "impl",
2026-06-13T11:54:08.5468844Z         "unit"
2026-06-13T11:54:08.5469185Z       ],
2026-06-13T11:54:08.5469456Z       "stages": {
2026-06-13T11:54:08.5469718Z         "doc": {
2026-06-13T11:54:08.5470014Z           "complete": false,
2026-06-13T11:54:08.5470294Z           "evidence": []
2026-06-13T11:54:08.5470561Z         },
2026-06-13T11:54:08.5470834Z         "impl": {
2026-06-13T11:54:08.5471129Z           "complete": true,
2026-06-13T11:54:08.5471415Z           "evidence": [
2026-06-13T11:54:08.5471670Z             {
2026-06-13T11:54:08.5472057Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5472338Z               "line": 376
2026-06-13T11:54:08.5472615Z             },
2026-06-13T11:54:08.5472881Z             {
2026-06-13T11:54:08.5473263Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5473539Z               "line": 56
2026-06-13T11:54:08.5473805Z             }
2026-06-13T11:54:08.5474073Z           ]
2026-06-13T11:54:08.5474334Z         },
2026-06-13T11:54:08.5474605Z         "int": {
2026-06-13T11:54:08.5474895Z           "complete": false,
2026-06-13T11:54:08.5475176Z           "evidence": []
2026-06-13T11:54:08.5475442Z         },
2026-06-13T11:54:08.5475695Z         "unit": {
2026-06-13T11:54:08.5475995Z           "complete": true,
2026-06-13T11:54:08.5476277Z           "evidence": [
2026-06-13T11:54:08.5476549Z             {
2026-06-13T11:54:08.5476935Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5477220Z               "line": 288
2026-06-13T11:54:08.5477483Z             },
2026-06-13T11:54:08.5477846Z             {
2026-06-13T11:54:08.5478235Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-13T11:54:08.5478532Z               "line": 325
2026-06-13T11:54:08.5478798Z             }
2026-06-13T11:54:08.5479141Z           ]
2026-06-13T11:54:08.5479405Z         }
2026-06-13T11:54:08.5479684Z       }
2026-06-13T11:54:08.5479940Z     },
2026-06-13T11:54:08.5480197Z     {
2026-06-13T11:54:08.5480627Z       "id": "REQ-DAEMON-9",
2026-06-13T11:54:08.5491983Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-13T11:54:08.5492484Z       "requiredStages": [
2026-06-13T11:54:08.5492770Z         "impl",
2026-06-13T11:54:08.5493059Z         "unit"
2026-06-13T11:54:08.5493337Z       ],
2026-06-13T11:54:08.5493609Z       "stages": {
2026-06-13T11:54:08.5493886Z         "doc": {
2026-06-13T11:54:08.5494187Z           "complete": false,
2026-06-13T11:54:08.5494473Z           "evidence": []
2026-06-13T11:54:08.5494745Z         },
2026-06-13T11:54:08.5495022Z         "impl": {
2026-06-13T11:54:08.5495313Z           "complete": true,
2026-06-13T11:54:08.5495587Z           "evidence": [
2026-06-13T11:54:08.5495866Z             {
2026-06-13T11:54:08.5496272Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5496553Z               "line": 262
2026-06-13T11:54:08.5496825Z             },
2026-06-13T11:54:08.5497087Z             {
2026-06-13T11:54:08.5497492Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5497779Z               "line": 306
2026-06-13T11:54:08.5498050Z             },
2026-06-13T11:54:08.5498317Z             {
2026-06-13T11:54:08.5498712Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5499162Z               "line": 190
2026-06-13T11:54:08.5499437Z             },
2026-06-13T11:54:08.5499704Z             {
2026-06-13T11:54:08.5500086Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5500367Z               "line": 275
2026-06-13T11:54:08.5500637Z             },
2026-06-13T11:54:08.5500898Z             {
2026-06-13T11:54:08.5501283Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5501565Z               "line": 312
2026-06-13T11:54:08.5501832Z             },
2026-06-13T11:54:08.5502095Z             {
2026-06-13T11:54:08.5502433Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5502710Z               "line": 1542
2026-06-13T11:54:08.5502973Z             }
2026-06-13T11:54:08.5503229Z           ]
2026-06-13T11:54:08.5503490Z         },
2026-06-13T11:54:08.5503751Z         "int": {
2026-06-13T11:54:08.5504046Z           "complete": false,
2026-06-13T11:54:08.5504328Z           "evidence": []
2026-06-13T11:54:08.5504600Z         },
2026-06-13T11:54:08.5504871Z         "unit": {
2026-06-13T11:54:08.5505162Z           "complete": true,
2026-06-13T11:54:08.5505433Z           "evidence": [
2026-06-13T11:54:08.5505695Z             {
2026-06-13T11:54:08.5506072Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5506337Z               "line": 723
2026-06-13T11:54:08.5506604Z             },
2026-06-13T11:54:08.5506867Z             {
2026-06-13T11:54:08.5507200Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5507481Z               "line": 8142
2026-06-13T11:54:08.5507742Z             }
2026-06-13T11:54:08.5508010Z           ]
2026-06-13T11:54:08.5508272Z         }
2026-06-13T11:54:08.5508544Z       }
2026-06-13T11:54:08.5508798Z     },
2026-06-13T11:54:08.5509197Z     {
2026-06-13T11:54:08.5509487Z       "id": "REQ-DOCS-1",
2026-06-13T11:54:08.5510131Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-13T11:54:08.5510541Z       "requiredStages": [
2026-06-13T11:54:08.5510812Z         "doc",
2026-06-13T11:54:08.5511085Z         "impl"
2026-06-13T11:54:08.5511346Z       ],
2026-06-13T11:54:08.5511625Z       "stages": {
2026-06-13T11:54:08.5511891Z         "doc": {
2026-06-13T11:54:08.5512177Z           "complete": true,
2026-06-13T11:54:08.5512464Z           "evidence": [
2026-06-13T11:54:08.5512721Z             {
2026-06-13T11:54:08.5513060Z               "path": "docs-site/src/index.md",
2026-06-13T11:54:08.5513351Z               "line": 50
2026-06-13T11:54:08.5513609Z             }
2026-06-13T11:54:08.5513867Z           ]
2026-06-13T11:54:08.5514131Z         },
2026-06-13T11:54:08.5514410Z         "impl": {
2026-06-13T11:54:08.5514806Z           "complete": true,
2026-06-13T11:54:08.5515087Z           "evidence": [
2026-06-13T11:54:08.5515345Z             {
2026-06-13T11:54:08.5515755Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T11:54:08.5516022Z               "line": 12
2026-06-13T11:54:08.5516299Z             },
2026-06-13T11:54:08.5516561Z             {
2026-06-13T11:54:08.5516897Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.5517179Z               "line": 14
2026-06-13T11:54:08.5517446Z             }
2026-06-13T11:54:08.5517712Z           ]
2026-06-13T11:54:08.5517974Z         },
2026-06-13T11:54:08.5518250Z         "int": {
2026-06-13T11:54:08.5518555Z           "complete": false,
2026-06-13T11:54:08.5518842Z           "evidence": []
2026-06-13T11:54:08.5519199Z         },
2026-06-13T11:54:08.5519480Z         "unit": {
2026-06-13T11:54:08.5519780Z           "complete": false,
2026-06-13T11:54:08.5520062Z           "evidence": []
2026-06-13T11:54:08.5520325Z         }
2026-06-13T11:54:08.5520596Z       }
2026-06-13T11:54:08.5520853Z     },
2026-06-13T11:54:08.5521115Z     {
2026-06-13T11:54:08.5521396Z       "id": "REQ-DOCS-2",
2026-06-13T11:54:08.5521920Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-13T11:54:08.5522223Z       "requiredStages": [
2026-06-13T11:54:08.5522495Z         "doc",
2026-06-13T11:54:08.5522761Z         "int"
2026-06-13T11:54:08.5523019Z       ],
2026-06-13T11:54:08.5523291Z       "stages": {
2026-06-13T11:54:08.5523558Z         "doc": {
2026-06-13T11:54:08.5523854Z           "complete": true,
2026-06-13T11:54:08.5524132Z           "evidence": [
2026-06-13T11:54:08.5524398Z             {
2026-06-13T11:54:08.5524970Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-13T11:54:08.5525257Z               "line": 3
2026-06-13T11:54:08.5525525Z             },
2026-06-13T11:54:08.5525791Z             {
2026-06-13T11:54:08.5526197Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-13T11:54:08.5526483Z               "line": 3
2026-06-13T11:54:08.5526755Z             },
2026-06-13T11:54:08.5527022Z             {
2026-06-13T11:54:08.5527438Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T11:54:08.5527719Z               "line": 3
2026-06-13T11:54:08.5527996Z             }
2026-06-13T11:54:08.5528268Z           ]
2026-06-13T11:54:08.5528529Z         },
2026-06-13T11:54:08.5528801Z         "impl": {
2026-06-13T11:54:08.5529217Z           "complete": false,
2026-06-13T11:54:08.5529502Z           "evidence": []
2026-06-13T11:54:08.5529764Z         },
2026-06-13T11:54:08.5530030Z         "int": {
2026-06-13T11:54:08.5530327Z           "complete": true,
2026-06-13T11:54:08.5530612Z           "evidence": [
2026-06-13T11:54:08.5530885Z             {
2026-06-13T11:54:08.5531279Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:54:08.5531561Z               "line": 14
2026-06-13T11:54:08.5531839Z             }
2026-06-13T11:54:08.5532110Z           ]
2026-06-13T11:54:08.5532375Z         },
2026-06-13T11:54:08.5532640Z         "unit": {
2026-06-13T11:54:08.5532940Z           "complete": false,
2026-06-13T11:54:08.5533231Z           "evidence": []
2026-06-13T11:54:08.5533489Z         }
2026-06-13T11:54:08.5533752Z       }
2026-06-13T11:54:08.5534113Z     },
2026-06-13T11:54:08.5534391Z     {
2026-06-13T11:54:08.5534677Z       "id": "REQ-DOCS-3",
2026-06-13T11:54:08.5535213Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-13T11:54:08.5535517Z       "requiredStages": [
2026-06-13T11:54:08.5535784Z         "doc"
2026-06-13T11:54:08.5536056Z       ],
2026-06-13T11:54:08.5536323Z       "stages": {
2026-06-13T11:54:08.5536595Z         "doc": {
2026-06-13T11:54:08.5536886Z           "complete": true,
2026-06-13T11:54:08.5537171Z           "evidence": [
2026-06-13T11:54:08.5537434Z             {
2026-06-13T11:54:08.5537776Z               "path": "docs-site/src/index.md",
2026-06-13T11:54:08.5538055Z               "line": 42
2026-06-13T11:54:08.5538416Z             }
2026-06-13T11:54:08.5538684Z           ]
2026-06-13T11:54:08.5539027Z         },
2026-06-13T11:54:08.5539309Z         "impl": {
2026-06-13T11:54:08.5539600Z           "complete": false,
2026-06-13T11:54:08.5539881Z           "evidence": []
2026-06-13T11:54:08.5540168Z         },
2026-06-13T11:54:08.5540426Z         "int": {
2026-06-13T11:54:08.5540724Z           "complete": false,
2026-06-13T11:54:08.5541019Z           "evidence": []
2026-06-13T11:54:08.5541300Z         },
2026-06-13T11:54:08.5541568Z         "unit": {
2026-06-13T11:54:08.5541869Z           "complete": false,
2026-06-13T11:54:08.5542159Z           "evidence": []
2026-06-13T11:54:08.5542422Z         }
2026-06-13T11:54:08.5542685Z       }
2026-06-13T11:54:08.5542949Z     },
2026-06-13T11:54:08.5543205Z     {
2026-06-13T11:54:08.5543491Z       "id": "REQ-DOCS-4",
2026-06-13T11:54:08.5544130Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-13T11:54:08.5544426Z       "requiredStages": [
2026-06-13T11:54:08.5544707Z         "doc",
2026-06-13T11:54:08.5544975Z         "impl",
2026-06-13T11:54:08.5545242Z         "unit"
2026-06-13T11:54:08.5545509Z       ],
2026-06-13T11:54:08.5545779Z       "stages": {
2026-06-13T11:54:08.5546048Z         "doc": {
2026-06-13T11:54:08.5546353Z           "complete": true,
2026-06-13T11:54:08.5546640Z           "evidence": [
2026-06-13T11:54:08.5546911Z             {
2026-06-13T11:54:08.5547254Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-13T11:54:08.5547536Z               "line": 35
2026-06-13T11:54:08.5547804Z             }
2026-06-13T11:54:08.5548071Z           ]
2026-06-13T11:54:08.5548340Z         },
2026-06-13T11:54:08.5548615Z         "impl": {
2026-06-13T11:54:08.5548915Z           "complete": true,
2026-06-13T11:54:08.5549296Z           "evidence": [
2026-06-13T11:54:08.5549569Z             {
2026-06-13T11:54:08.5549964Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.5550255Z               "line": 596
2026-06-13T11:54:08.5550537Z             },
2026-06-13T11:54:08.5550798Z             {
2026-06-13T11:54:08.5551146Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.5551419Z               "line": 15
2026-06-13T11:54:08.5551690Z             }
2026-06-13T11:54:08.5551971Z           ]
2026-06-13T11:54:08.5552228Z         },
2026-06-13T11:54:08.5552499Z         "int": {
2026-06-13T11:54:08.5552791Z           "complete": false,
2026-06-13T11:54:08.5553076Z           "evidence": []
2026-06-13T11:54:08.5553335Z         },
2026-06-13T11:54:08.5553605Z         "unit": {
2026-06-13T11:54:08.5553884Z           "complete": true,
2026-06-13T11:54:08.5554170Z           "evidence": [
2026-06-13T11:54:08.5554442Z             {
2026-06-13T11:54:08.5554839Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.5555119Z               "line": 1102
2026-06-13T11:54:08.5555381Z             }
2026-06-13T11:54:08.5555649Z           ]
2026-06-13T11:54:08.5555906Z         }
2026-06-13T11:54:08.5556179Z       }
2026-06-13T11:54:08.5556429Z     },
2026-06-13T11:54:08.5556684Z     {
2026-06-13T11:54:08.5556970Z       "id": "REQ-DOCS-5",
2026-06-13T11:54:08.5557590Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-13T11:54:08.5558001Z       "requiredStages": [
2026-06-13T11:54:08.5558263Z         "impl",
2026-06-13T11:54:08.5558535Z         "int"
2026-06-13T11:54:08.5558797Z       ],
2026-06-13T11:54:08.5559156Z       "stages": {
2026-06-13T11:54:08.5559447Z         "doc": {
2026-06-13T11:54:08.5559729Z           "complete": false,
2026-06-13T11:54:08.5560019Z           "evidence": []
2026-06-13T11:54:08.5560273Z         },
2026-06-13T11:54:08.5560548Z         "impl": {
2026-06-13T11:54:08.5560830Z           "complete": true,
2026-06-13T11:54:08.5561111Z           "evidence": [
2026-06-13T11:54:08.5561373Z             {
2026-06-13T11:54:08.5561768Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.5562054Z               "line": 597
2026-06-13T11:54:08.5562411Z             },
2026-06-13T11:54:08.5562674Z             {
2026-06-13T11:54:08.5563022Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.5563294Z               "line": 113
2026-06-13T11:54:08.5563557Z             }
2026-06-13T11:54:08.5563819Z           ]
2026-06-13T11:54:08.5564084Z         },
2026-06-13T11:54:08.5564349Z         "int": {
2026-06-13T11:54:08.5564654Z           "complete": true,
2026-06-13T11:54:08.5564926Z           "evidence": [
2026-06-13T11:54:08.5565179Z             {
2026-06-13T11:54:08.5565523Z               "path": ".github/workflows/ci.yml",
2026-06-13T11:54:08.5565794Z               "line": 86
2026-06-13T11:54:08.5566062Z             },
2026-06-13T11:54:08.5566319Z             {
2026-06-13T11:54:08.5566730Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.5567023Z               "line": 1139
2026-06-13T11:54:08.5567288Z             }
2026-06-13T11:54:08.5567554Z           ]
2026-06-13T11:54:08.5567807Z         },
2026-06-13T11:54:08.5568080Z         "unit": {
2026-06-13T11:54:08.5568370Z           "complete": false,
2026-06-13T11:54:08.5568657Z           "evidence": []
2026-06-13T11:54:08.5568919Z         }
2026-06-13T11:54:08.5569258Z       }
2026-06-13T11:54:08.5569513Z     },
2026-06-13T11:54:08.5569783Z     {
2026-06-13T11:54:08.5570078Z       "id": "REQ-DOCS-6",
2026-06-13T11:54:08.5571157Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-13T11:54:08.5571453Z       "requiredStages": [
2026-06-13T11:54:08.5571724Z         "impl",
2026-06-13T11:54:08.5571986Z         "unit",
2026-06-13T11:54:08.5572252Z         "int"
2026-06-13T11:54:08.5572515Z       ],
2026-06-13T11:54:08.5572787Z       "stages": {
2026-06-13T11:54:08.5573048Z         "doc": {
2026-06-13T11:54:08.5573344Z           "complete": true,
2026-06-13T11:54:08.5573625Z           "evidence": [
2026-06-13T11:54:08.5573888Z             {
2026-06-13T11:54:08.5574322Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-13T11:54:08.5574592Z               "line": 4
2026-06-13T11:54:08.5574843Z             }
2026-06-13T11:54:08.5575106Z           ]
2026-06-13T11:54:08.5575363Z         },
2026-06-13T11:54:08.5575630Z         "impl": {
2026-06-13T11:54:08.5575911Z           "complete": true,
2026-06-13T11:54:08.5576196Z           "evidence": [
2026-06-13T11:54:08.5576464Z             {
2026-06-13T11:54:08.5576807Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5577083Z               "line": 4245
2026-06-13T11:54:08.5577346Z             }
2026-06-13T11:54:08.5577602Z           ]
2026-06-13T11:54:08.5577939Z         },
2026-06-13T11:54:08.5578211Z         "int": {
2026-06-13T11:54:08.5578492Z           "complete": true,
2026-06-13T11:54:08.5578778Z           "evidence": [
2026-06-13T11:54:08.5579131Z             {
2026-06-13T11:54:08.5579523Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:54:08.5579818Z               "line": 39
2026-06-13T11:54:08.5580078Z             }
2026-06-13T11:54:08.5580333Z           ]
2026-06-13T11:54:08.5580591Z         },
2026-06-13T11:54:08.5580868Z         "unit": {
2026-06-13T11:54:08.5581159Z           "complete": true,
2026-06-13T11:54:08.5581564Z           "evidence": [
2026-06-13T11:54:08.5581950Z             {
2026-06-13T11:54:08.5582418Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5582710Z               "line": 8304
2026-06-13T11:54:08.5582974Z             }
2026-06-13T11:54:08.5583245Z           ]
2026-06-13T11:54:08.5583517Z         }
2026-06-13T11:54:08.5583780Z       }
2026-06-13T11:54:08.5584057Z     },
2026-06-13T11:54:08.5584306Z     {
2026-06-13T11:54:08.5584587Z       "id": "REQ-EP-1",
2026-06-13T11:54:08.5584996Z       "title": "Day-one endpoint types; open type system",
2026-06-13T11:54:08.5585300Z       "requiredStages": [
2026-06-13T11:54:08.5585565Z         "impl",
2026-06-13T11:54:08.5585832Z         "unit"
2026-06-13T11:54:08.5586233Z       ],
2026-06-13T11:54:08.5586510Z       "stages": {
2026-06-13T11:54:08.5586781Z         "doc": {
2026-06-13T11:54:08.5587085Z           "complete": false,
2026-06-13T11:54:08.5587367Z           "evidence": []
2026-06-13T11:54:08.5587629Z         },
2026-06-13T11:54:08.5587901Z         "impl": {
2026-06-13T11:54:08.5588200Z           "complete": true,
2026-06-13T11:54:08.5588475Z           "evidence": [
2026-06-13T11:54:08.5588737Z             {
2026-06-13T11:54:08.5589205Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5589481Z               "line": 77
2026-06-13T11:54:08.5589749Z             },
2026-06-13T11:54:08.5590011Z             {
2026-06-13T11:54:08.5590402Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5590681Z               "line": 94
2026-06-13T11:54:08.5590955Z             }
2026-06-13T11:54:08.5591222Z           ]
2026-06-13T11:54:08.5591485Z         },
2026-06-13T11:54:08.5591752Z         "int": {
2026-06-13T11:54:08.5592066Z           "complete": false,
2026-06-13T11:54:08.5592349Z           "evidence": []
2026-06-13T11:54:08.5592606Z         },
2026-06-13T11:54:08.5592873Z         "unit": {
2026-06-13T11:54:08.5593154Z           "complete": true,
2026-06-13T11:54:08.5593439Z           "evidence": [
2026-06-13T11:54:08.5593692Z             {
2026-06-13T11:54:08.5594077Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5594364Z               "line": 161
2026-06-13T11:54:08.5594631Z             },
2026-06-13T11:54:08.5594899Z             {
2026-06-13T11:54:08.5595284Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5595566Z               "line": 178
2026-06-13T11:54:08.5595832Z             }
2026-06-13T11:54:08.5596091Z           ]
2026-06-13T11:54:08.5596358Z         }
2026-06-13T11:54:08.5596611Z       }
2026-06-13T11:54:08.5596860Z     },
2026-06-13T11:54:08.5597117Z     {
2026-06-13T11:54:08.5597404Z       "id": "REQ-EP-2",
2026-06-13T11:54:08.5597937Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-13T11:54:08.5598233Z       "requiredStages": [
2026-06-13T11:54:08.5598499Z         "impl",
2026-06-13T11:54:08.5598755Z         "unit"
2026-06-13T11:54:08.5599088Z       ],
2026-06-13T11:54:08.5599355Z       "stages": {
2026-06-13T11:54:08.5599627Z         "doc": {
2026-06-13T11:54:08.5599922Z           "complete": false,
2026-06-13T11:54:08.5600213Z           "evidence": []
2026-06-13T11:54:08.5600465Z         },
2026-06-13T11:54:08.5600723Z         "impl": {
2026-06-13T11:54:08.5601010Z           "complete": true,
2026-06-13T11:54:08.5601279Z           "evidence": [
2026-06-13T11:54:08.5601549Z             {
2026-06-13T11:54:08.5601941Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5602222Z               "line": 114
2026-06-13T11:54:08.5602489Z             },
2026-06-13T11:54:08.5602746Z             {
2026-06-13T11:54:08.5603133Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5603428Z               "line": 131
2026-06-13T11:54:08.5603685Z             },
2026-06-13T11:54:08.5603938Z             {
2026-06-13T11:54:08.5604337Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5604628Z               "line": 138
2026-06-13T11:54:08.5604990Z             }
2026-06-13T11:54:08.5605262Z           ]
2026-06-13T11:54:08.5605529Z         },
2026-06-13T11:54:08.5605802Z         "int": {
2026-06-13T11:54:08.5606098Z           "complete": false,
2026-06-13T11:54:08.5606392Z           "evidence": []
2026-06-13T11:54:08.5606657Z         },
2026-06-13T11:54:08.5606927Z         "unit": {
2026-06-13T11:54:08.5607228Z           "complete": true,
2026-06-13T11:54:08.5607505Z           "evidence": [
2026-06-13T11:54:08.5607773Z             {
2026-06-13T11:54:08.5608158Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5608444Z               "line": 190
2026-06-13T11:54:08.5608720Z             },
2026-06-13T11:54:08.5609069Z             {
2026-06-13T11:54:08.5609576Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5609857Z               "line": 208
2026-06-13T11:54:08.5613969Z             },
2026-06-13T11:54:08.5614260Z             {
2026-06-13T11:54:08.5614679Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-13T11:54:08.5614959Z               "line": 221
2026-06-13T11:54:08.5615217Z             }
2026-06-13T11:54:08.5615480Z           ]
2026-06-13T11:54:08.5615742Z         }
2026-06-13T11:54:08.5616000Z       }
2026-06-13T11:54:08.5616263Z     },
2026-06-13T11:54:08.5616524Z     {
2026-06-13T11:54:08.5616809Z       "id": "REQ-EP-3",
2026-06-13T11:54:08.5617421Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-13T11:54:08.5617727Z       "requiredStages": [
2026-06-13T11:54:08.5617994Z         "impl",
2026-06-13T11:54:08.5618266Z         "unit"
2026-06-13T11:54:08.5618529Z       ],
2026-06-13T11:54:08.5618790Z       "stages": {
2026-06-13T11:54:08.5619153Z         "doc": {
2026-06-13T11:54:08.5619445Z           "complete": false,
2026-06-13T11:54:08.5619732Z           "evidence": []
2026-06-13T11:54:08.5620002Z         },
2026-06-13T11:54:08.5620274Z         "impl": {
2026-06-13T11:54:08.5620566Z           "complete": true,
2026-06-13T11:54:08.5620847Z           "evidence": [
2026-06-13T11:54:08.5621110Z             {
2026-06-13T11:54:08.5621495Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5621772Z               "line": 31
2026-06-13T11:54:08.5622030Z             },
2026-06-13T11:54:08.5622290Z             {
2026-06-13T11:54:08.5622679Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5622956Z               "line": 49
2026-06-13T11:54:08.5623222Z             }
2026-06-13T11:54:08.5623476Z           ]
2026-06-13T11:54:08.5623733Z         },
2026-06-13T11:54:08.5623991Z         "int": {
2026-06-13T11:54:08.5624287Z           "complete": false,
2026-06-13T11:54:08.5624568Z           "evidence": []
2026-06-13T11:54:08.5624829Z         },
2026-06-13T11:54:08.5625091Z         "unit": {
2026-06-13T11:54:08.5625377Z           "complete": true,
2026-06-13T11:54:08.5625663Z           "evidence": [
2026-06-13T11:54:08.5625926Z             {
2026-06-13T11:54:08.5626307Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5626584Z               "line": 156
2026-06-13T11:54:08.5626842Z             },
2026-06-13T11:54:08.5627103Z             {
2026-06-13T11:54:08.5627483Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5627757Z               "line": 164
2026-06-13T11:54:08.5628019Z             },
2026-06-13T11:54:08.5628278Z             {
2026-06-13T11:54:08.5628653Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5628926Z               "line": 177
2026-06-13T11:54:08.5629288Z             },
2026-06-13T11:54:08.5629550Z             {
2026-06-13T11:54:08.5629937Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5630227Z               "line": 200
2026-06-13T11:54:08.5630501Z             },
2026-06-13T11:54:08.5630768Z             {
2026-06-13T11:54:08.5631149Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5631436Z               "line": 216
2026-06-13T11:54:08.5631836Z             },
2026-06-13T11:54:08.5632112Z             {
2026-06-13T11:54:08.5632499Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-13T11:54:08.5632794Z               "line": 233
2026-06-13T11:54:08.5633053Z             }
2026-06-13T11:54:08.5633316Z           ]
2026-06-13T11:54:08.5633588Z         }
2026-06-13T11:54:08.5633845Z       }
2026-06-13T11:54:08.5634111Z     },
2026-06-13T11:54:08.5634369Z     {
2026-06-13T11:54:08.5634656Z       "id": "REQ-EP-4",
2026-06-13T11:54:08.5635138Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-13T11:54:08.5635438Z       "requiredStages": [
2026-06-13T11:54:08.5635712Z         "impl",
2026-06-13T11:54:08.5635980Z         "unit"
2026-06-13T11:54:08.5636365Z       ],
2026-06-13T11:54:08.5636638Z       "stages": {
2026-06-13T11:54:08.5636910Z         "doc": {
2026-06-13T11:54:08.5637206Z           "complete": false,
2026-06-13T11:54:08.5637487Z           "evidence": []
2026-06-13T11:54:08.5637755Z         },
2026-06-13T11:54:08.5638034Z         "impl": {
2026-06-13T11:54:08.5638327Z           "complete": true,
2026-06-13T11:54:08.5638608Z           "evidence": [
2026-06-13T11:54:08.5638875Z             {
2026-06-13T11:54:08.5639348Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5639630Z               "line": 673
2026-06-13T11:54:08.5639901Z             },
2026-06-13T11:54:08.5640163Z             {
2026-06-13T11:54:08.5640536Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5640825Z               "line": 990
2026-06-13T11:54:08.5641089Z             },
2026-06-13T11:54:08.5641372Z             {
2026-06-13T11:54:08.5641771Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5642067Z               "line": 970
2026-06-13T11:54:08.5642329Z             },
2026-06-13T11:54:08.5642597Z             {
2026-06-13T11:54:08.5642949Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5643231Z               "line": 83
2026-06-13T11:54:08.5643506Z             },
2026-06-13T11:54:08.5643776Z             {
2026-06-13T11:54:08.5644134Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5644415Z               "line": 497
2026-06-13T11:54:08.5644681Z             },
2026-06-13T11:54:08.5644977Z             {
2026-06-13T11:54:08.5645334Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5645621Z               "line": 583
2026-06-13T11:54:08.5645883Z             },
2026-06-13T11:54:08.5646140Z             {
2026-06-13T11:54:08.5646526Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5646812Z               "line": 196
2026-06-13T11:54:08.5647070Z             },
2026-06-13T11:54:08.5647333Z             {
2026-06-13T11:54:08.5647714Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5647995Z               "line": 337
2026-06-13T11:54:08.5648257Z             },
2026-06-13T11:54:08.5648518Z             {
2026-06-13T11:54:08.5648911Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.5649274Z               "line": 847
2026-06-13T11:54:08.5649541Z             }
2026-06-13T11:54:08.5649807Z           ]
2026-06-13T11:54:08.5650065Z         },
2026-06-13T11:54:08.5650337Z         "int": {
2026-06-13T11:54:08.5650633Z           "complete": false,
2026-06-13T11:54:08.5650910Z           "evidence": []
2026-06-13T11:54:08.5651168Z         },
2026-06-13T11:54:08.5651427Z         "unit": {
2026-06-13T11:54:08.5651706Z           "complete": true,
2026-06-13T11:54:08.5651983Z           "evidence": [
2026-06-13T11:54:08.5652275Z             {
2026-06-13T11:54:08.5652650Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.5652933Z               "line": 674
2026-06-13T11:54:08.5653208Z             },
2026-06-13T11:54:08.5653472Z             {
2026-06-13T11:54:08.5653871Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T11:54:08.5654146Z               "line": 76
2026-06-13T11:54:08.5654413Z             },
2026-06-13T11:54:08.5654779Z             {
2026-06-13T11:54:08.5655193Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-13T11:54:08.5655480Z               "line": 147
2026-06-13T11:54:08.5655737Z             }
2026-06-13T11:54:08.5656001Z           ]
2026-06-13T11:54:08.5656263Z         }
2026-06-13T11:54:08.5656529Z       }
2026-06-13T11:54:08.5656795Z     },
2026-06-13T11:54:08.5657053Z     {
2026-06-13T11:54:08.5657329Z       "id": "REQ-EP-5",
2026-06-13T11:54:08.5659806Z       "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-13T11:54:08.5660249Z       "requiredStages": [
2026-06-13T11:54:08.5660516Z         "impl",
2026-06-13T11:54:08.5660784Z         "unit",
2026-06-13T11:54:08.5661045Z         "int"
2026-06-13T11:54:08.5661316Z       ],
2026-06-13T11:54:08.5661589Z       "stages": {
2026-06-13T11:54:08.5661870Z         "doc": {
2026-06-13T11:54:08.5662167Z           "complete": false,
2026-06-13T11:54:08.5662453Z           "evidence": []
2026-06-13T11:54:08.5662721Z         },
2026-06-13T11:54:08.5662988Z         "impl": {
2026-06-13T11:54:08.5663269Z           "complete": true,
2026-06-13T11:54:08.5663544Z           "evidence": [
2026-06-13T11:54:08.5663807Z             {
2026-06-13T11:54:08.5664223Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.5664502Z               "line": 367
2026-06-13T11:54:08.5664758Z             },
2026-06-13T11:54:08.5665011Z             {
2026-06-13T11:54:08.5665402Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5665688Z               "line": 18
2026-06-13T11:54:08.5665955Z             },
2026-06-13T11:54:08.5666222Z             {
2026-06-13T11:54:08.5666613Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5666895Z               "line": 63
2026-06-13T11:54:08.5667162Z             },
2026-06-13T11:54:08.5667426Z             {
2026-06-13T11:54:08.5667813Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5668090Z               "line": 92
2026-06-13T11:54:08.5668351Z             },
2026-06-13T11:54:08.5668609Z             {
2026-06-13T11:54:08.5669078Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5669358Z               "line": 167
2026-06-13T11:54:08.5669623Z             },
2026-06-13T11:54:08.5669879Z             {
2026-06-13T11:54:08.5670265Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5670546Z               "line": 179
2026-06-13T11:54:08.5670800Z             },
2026-06-13T11:54:08.5671071Z             {
2026-06-13T11:54:08.5671453Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.5671734Z               "line": 114
2026-06-13T11:54:08.5671988Z             },
2026-06-13T11:54:08.5672250Z             {
2026-06-13T11:54:08.5672643Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5672913Z               "line": 22
2026-06-13T11:54:08.5673185Z             },
2026-06-13T11:54:08.5673442Z             {
2026-06-13T11:54:08.5673824Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5674100Z               "line": 145
2026-06-13T11:54:08.5674362Z             },
2026-06-13T11:54:08.5674620Z             {
2026-06-13T11:54:08.5675006Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5675280Z               "line": 174
2026-06-13T11:54:08.5675557Z             },
2026-06-13T11:54:08.5675814Z             {
2026-06-13T11:54:08.5676210Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5676501Z               "line": 196
2026-06-13T11:54:08.5676763Z             },
2026-06-13T11:54:08.5677025Z             {
2026-06-13T11:54:08.5677417Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5677891Z               "line": 221
2026-06-13T11:54:08.5678160Z             },
2026-06-13T11:54:08.5678426Z             {
2026-06-13T11:54:08.5678813Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5679183Z               "line": 247
2026-06-13T11:54:08.5679446Z             },
2026-06-13T11:54:08.5679709Z             {
2026-06-13T11:54:08.5680098Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5680383Z               "line": 270
2026-06-13T11:54:08.5680649Z             },
2026-06-13T11:54:08.5680911Z             {
2026-06-13T11:54:08.5681303Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.5681580Z               "line": 81
2026-06-13T11:54:08.5681951Z             },
2026-06-13T11:54:08.5682219Z             {
2026-06-13T11:54:08.5682553Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5682839Z               "line": 4653
2026-06-13T11:54:08.5683103Z             },
2026-06-13T11:54:08.5683368Z             {
2026-06-13T11:54:08.5683706Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5683997Z               "line": 4787
2026-06-13T11:54:08.5684265Z             },
2026-06-13T11:54:08.5684522Z             {
2026-06-13T11:54:08.5684851Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5685138Z               "line": 4953
2026-06-13T11:54:08.5685406Z             },
2026-06-13T11:54:08.5685670Z             {
2026-06-13T11:54:08.5686001Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5686287Z               "line": 5335
2026-06-13T11:54:08.5686545Z             }
2026-06-13T11:54:08.5686803Z           ]
2026-06-13T11:54:08.5687051Z         },
2026-06-13T11:54:08.5687309Z         "int": {
2026-06-13T11:54:08.5687604Z           "complete": true,
2026-06-13T11:54:08.5687880Z           "evidence": [
2026-06-13T11:54:08.5688143Z             {
2026-06-13T11:54:08.5688547Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:54:08.5688823Z               "line": 16
2026-06-13T11:54:08.5689171Z             },
2026-06-13T11:54:08.5689438Z             {
2026-06-13T11:54:08.5689796Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:54:08.5690077Z               "line": 15
2026-06-13T11:54:08.5690335Z             }
2026-06-13T11:54:08.5690593Z           ]
2026-06-13T11:54:08.5690849Z         },
2026-06-13T11:54:08.5691113Z         "unit": {
2026-06-13T11:54:08.5691404Z           "complete": true,
2026-06-13T11:54:08.5691685Z           "evidence": [
2026-06-13T11:54:08.5691949Z             {
2026-06-13T11:54:08.5692334Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5692616Z               "line": 246
2026-06-13T11:54:08.5692873Z             },
2026-06-13T11:54:08.5693146Z             {
2026-06-13T11:54:08.5693540Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5693825Z               "line": 306
2026-06-13T11:54:08.5694077Z             },
2026-06-13T11:54:08.5694334Z             {
2026-06-13T11:54:08.5694725Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-13T11:54:08.5695012Z               "line": 363
2026-06-13T11:54:08.5695268Z             },
2026-06-13T11:54:08.5695535Z             {
2026-06-13T11:54:08.5695927Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5696211Z               "line": 286
2026-06-13T11:54:08.5696457Z             },
2026-06-13T11:54:08.5696715Z             {
2026-06-13T11:54:08.5697096Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.5697373Z               "line": 338
2026-06-13T11:54:08.5697635Z             },
2026-06-13T11:54:08.5697889Z             {
2026-06-13T11:54:08.5698260Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.5698551Z               "line": 570
2026-06-13T11:54:08.5698823Z             },
2026-06-13T11:54:08.5699160Z             {
2026-06-13T11:54:08.5699489Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5699785Z               "line": 6364
2026-06-13T11:54:08.5700147Z             },
2026-06-13T11:54:08.5700404Z             {
2026-06-13T11:54:08.5700749Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5701020Z               "line": 6488
2026-06-13T11:54:08.5701271Z             },
2026-06-13T11:54:08.5701527Z             {
2026-06-13T11:54:08.5701865Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5702141Z               "line": 7075
2026-06-13T11:54:08.5702400Z             },
2026-06-13T11:54:08.5702657Z             {
2026-06-13T11:54:08.5702976Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5703252Z               "line": 7191
2026-06-13T11:54:08.5703514Z             }
2026-06-13T11:54:08.5703872Z           ]
2026-06-13T11:54:08.5704133Z         }
2026-06-13T11:54:08.5704390Z       }
2026-06-13T11:54:08.5704642Z     },
2026-06-13T11:54:08.5704889Z     {
2026-06-13T11:54:08.5705170Z       "id": "REQ-EP-6",
2026-06-13T11:54:08.5709725Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-13T11:54:08.5710030Z       "requiredStages": [
2026-06-13T11:54:08.5710296Z         "doc",
2026-06-13T11:54:08.5710568Z         "impl",
2026-06-13T11:54:08.5710826Z         "unit"
2026-06-13T11:54:08.5711079Z       ],
2026-06-13T11:54:08.5711351Z       "stages": {
2026-06-13T11:54:08.5711638Z         "doc": {
2026-06-13T11:54:08.5711931Z           "complete": true,
2026-06-13T11:54:08.5712210Z           "evidence": [
2026-06-13T11:54:08.5712468Z             {
2026-06-13T11:54:08.5712759Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.5713030Z               "line": 206
2026-06-13T11:54:08.5713298Z             }
2026-06-13T11:54:08.5713551Z           ]
2026-06-13T11:54:08.5713798Z         },
2026-06-13T11:54:08.5714056Z         "impl": {
2026-06-13T11:54:08.5714346Z           "complete": true,
2026-06-13T11:54:08.5714623Z           "evidence": [
2026-06-13T11:54:08.5714879Z             {
2026-06-13T11:54:08.5715249Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.5715527Z               "line": 174
2026-06-13T11:54:08.5715793Z             }
2026-06-13T11:54:08.5716064Z           ]
2026-06-13T11:54:08.5716321Z         },
2026-06-13T11:54:08.5716598Z         "int": {
2026-06-13T11:54:08.5716879Z           "complete": true,
2026-06-13T11:54:08.5717162Z           "evidence": [
2026-06-13T11:54:08.5717432Z             {
2026-06-13T11:54:08.5717807Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T11:54:08.5718088Z               "line": 18
2026-06-13T11:54:08.5718345Z             }
2026-06-13T11:54:08.5718616Z           ]
2026-06-13T11:54:08.5718878Z         },
2026-06-13T11:54:08.5719213Z         "unit": {
2026-06-13T11:54:08.5719504Z           "complete": true,
2026-06-13T11:54:08.5719784Z           "evidence": [
2026-06-13T11:54:08.5720047Z             {
2026-06-13T11:54:08.5720432Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.5720705Z               "line": 525
2026-06-13T11:54:08.5720967Z             },
2026-06-13T11:54:08.5721234Z             {
2026-06-13T11:54:08.5721615Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.5721883Z               "line": 599
2026-06-13T11:54:08.5722149Z             }
2026-06-13T11:54:08.5722400Z           ]
2026-06-13T11:54:08.5722656Z         }
2026-06-13T11:54:08.5722919Z       }
2026-06-13T11:54:08.5723167Z     },
2026-06-13T11:54:08.5723423Z     {
2026-06-13T11:54:08.5723700Z       "id": "REQ-EP-7",
2026-06-13T11:54:08.5728886Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-13T11:54:08.5729273Z       "requiredStages": [
2026-06-13T11:54:08.5729540Z         "doc",
2026-06-13T11:54:08.5729816Z         "impl",
2026-06-13T11:54:08.5730082Z         "unit"
2026-06-13T11:54:08.5730349Z       ],
2026-06-13T11:54:08.5730622Z       "stages": {
2026-06-13T11:54:08.5731007Z         "doc": {
2026-06-13T11:54:08.5731303Z           "complete": true,
2026-06-13T11:54:08.5731589Z           "evidence": [
2026-06-13T11:54:08.5731856Z             {
2026-06-13T11:54:08.5732162Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.5732463Z               "line": 379
2026-06-13T11:54:08.5732729Z             }
2026-06-13T11:54:08.5732999Z           ]
2026-06-13T11:54:08.5733259Z         },
2026-06-13T11:54:08.5733531Z         "impl": {
2026-06-13T11:54:08.5733827Z           "complete": true,
2026-06-13T11:54:08.5734104Z           "evidence": [
2026-06-13T11:54:08.5734376Z             {
2026-06-13T11:54:08.5734747Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.5735034Z               "line": 505
2026-06-13T11:54:08.5735301Z             },
2026-06-13T11:54:08.5735557Z             {
2026-06-13T11:54:08.5735918Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.5736197Z               "line": 87
2026-06-13T11:54:08.5736479Z             },
2026-06-13T11:54:08.5736742Z             {
2026-06-13T11:54:08.5737155Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5737433Z               "line": 81
2026-06-13T11:54:08.5737690Z             },
2026-06-13T11:54:08.5737958Z             {
2026-06-13T11:54:08.5738371Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5738660Z               "line": 166
2026-06-13T11:54:08.5738922Z             },
2026-06-13T11:54:08.5739242Z             {
2026-06-13T11:54:08.5739570Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5739852Z               "line": 1172
2026-06-13T11:54:08.5740124Z             }
2026-06-13T11:54:08.5740386Z           ]
2026-06-13T11:54:08.5740657Z         },
2026-06-13T11:54:08.5740919Z         "int": {
2026-06-13T11:54:08.5741215Z           "complete": false,
2026-06-13T11:54:08.5741507Z           "evidence": []
2026-06-13T11:54:08.5741764Z         },
2026-06-13T11:54:08.5742025Z         "unit": {
2026-06-13T11:54:08.5742316Z           "complete": true,
2026-06-13T11:54:08.5742597Z           "evidence": [
2026-06-13T11:54:08.5742854Z             {
2026-06-13T11:54:08.5743221Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.5743507Z               "line": 623
2026-06-13T11:54:08.5743772Z             },
2026-06-13T11:54:08.5744034Z             {
2026-06-13T11:54:08.5744401Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.5744687Z               "line": 212
2026-06-13T11:54:08.5744941Z             },
2026-06-13T11:54:08.5745212Z             {
2026-06-13T11:54:08.5745585Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.5745866Z               "line": 299
2026-06-13T11:54:08.5746127Z             },
2026-06-13T11:54:08.5746384Z             {
2026-06-13T11:54:08.5746715Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5746987Z               "line": 5653
2026-06-13T11:54:08.5747254Z             },
2026-06-13T11:54:08.5747531Z             {
2026-06-13T11:54:08.5747860Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5748137Z               "line": 5680
2026-06-13T11:54:08.5748399Z             }
2026-06-13T11:54:08.5748670Z           ]
2026-06-13T11:54:08.5748931Z         }
2026-06-13T11:54:08.5749406Z       }
2026-06-13T11:54:08.5749677Z     },
2026-06-13T11:54:08.5749934Z     {
2026-06-13T11:54:08.5750235Z       "id": "REQ-FRONT-1",
2026-06-13T11:54:08.5750803Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-13T11:54:08.5751108Z       "requiredStages": [],
2026-06-13T11:54:08.5751381Z       "stages": {
2026-06-13T11:54:08.5751653Z         "doc": {
2026-06-13T11:54:08.5751951Z           "complete": false,
2026-06-13T11:54:08.5752241Z           "evidence": []
2026-06-13T11:54:08.5752513Z         },
2026-06-13T11:54:08.5752785Z         "impl": {
2026-06-13T11:54:08.5753081Z           "complete": false,
2026-06-13T11:54:08.5753362Z           "evidence": []
2026-06-13T11:54:08.5753729Z         },
2026-06-13T11:54:08.5754001Z         "int": {
2026-06-13T11:54:08.5754290Z           "complete": false,
2026-06-13T11:54:08.5754580Z           "evidence": []
2026-06-13T11:54:08.5754842Z         },
2026-06-13T11:54:08.5755128Z         "unit": {
2026-06-13T11:54:08.5755428Z           "complete": false,
2026-06-13T11:54:08.5755719Z           "evidence": []
2026-06-13T11:54:08.5755986Z         }
2026-06-13T11:54:08.5756248Z       }
2026-06-13T11:54:08.5756507Z     },
2026-06-13T11:54:08.5756765Z     {
2026-06-13T11:54:08.5757130Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-13T11:54:08.5764717Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-13T11:54:08.5765054Z       "requiredStages": [
2026-06-13T11:54:08.5765321Z         "doc",
2026-06-13T11:54:08.5765592Z         "impl",
2026-06-13T11:54:08.5765856Z         "unit",
2026-06-13T11:54:08.5766127Z         "int"
2026-06-13T11:54:08.5766390Z       ],
2026-06-13T11:54:08.5766662Z       "stages": {
2026-06-13T11:54:08.5766933Z         "doc": {
2026-06-13T11:54:08.5767233Z           "complete": true,
2026-06-13T11:54:08.5767518Z           "evidence": [
2026-06-13T11:54:08.5767783Z             {
2026-06-13T11:54:08.5768149Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.5768431Z               "line": 319
2026-06-13T11:54:08.5768703Z             }
2026-06-13T11:54:08.5769046Z           ]
2026-06-13T11:54:08.5769309Z         },
2026-06-13T11:54:08.5769591Z         "impl": {
2026-06-13T11:54:08.5769887Z           "complete": true,
2026-06-13T11:54:08.5770175Z           "evidence": [
2026-06-13T11:54:08.5770434Z             {
2026-06-13T11:54:08.5770841Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5771127Z               "line": 480
2026-06-13T11:54:08.5771393Z             },
2026-06-13T11:54:08.5771665Z             {
2026-06-13T11:54:08.5772061Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5772338Z               "line": 485
2026-06-13T11:54:08.5772600Z             },
2026-06-13T11:54:08.5772872Z             {
2026-06-13T11:54:08.5773271Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5773553Z               "line": 860
2026-06-13T11:54:08.5773816Z             },
2026-06-13T11:54:08.5774078Z             {
2026-06-13T11:54:08.5774478Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5774760Z               "line": 901
2026-06-13T11:54:08.5775027Z             },
2026-06-13T11:54:08.5775514Z             {
2026-06-13T11:54:08.5775919Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5776210Z               "line": 912
2026-06-13T11:54:08.5776477Z             },
2026-06-13T11:54:08.5776745Z             {
2026-06-13T11:54:08.5777135Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.5777417Z               "line": 358
2026-06-13T11:54:08.5777683Z             }
2026-06-13T11:54:08.5778003Z           ]
2026-06-13T11:54:08.5778273Z         },
2026-06-13T11:54:08.5778543Z         "int": {
2026-06-13T11:54:08.5778839Z           "complete": true,
2026-06-13T11:54:08.5779212Z           "evidence": [
2026-06-13T11:54:08.5779473Z             {
2026-06-13T11:54:08.5779997Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-13T11:54:08.5780278Z               "line": 30
2026-06-13T11:54:08.5780546Z             }
2026-06-13T11:54:08.5780802Z           ]
2026-06-13T11:54:08.5781067Z         },
2026-06-13T11:54:08.5781353Z         "unit": {
2026-06-13T11:54:08.5781643Z           "complete": true,
2026-06-13T11:54:08.5781925Z           "evidence": [
2026-06-13T11:54:08.5782188Z             {
2026-06-13T11:54:08.5782588Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5782865Z               "line": 1453
2026-06-13T11:54:08.5783136Z             },
2026-06-13T11:54:08.5783399Z             {
2026-06-13T11:54:08.5783775Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5784061Z               "line": 1478
2026-06-13T11:54:08.5784323Z             },
2026-06-13T11:54:08.5784580Z             {
2026-06-13T11:54:08.5784958Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5785249Z               "line": 1495
2026-06-13T11:54:08.5785515Z             },
2026-06-13T11:54:08.5785766Z             {
2026-06-13T11:54:08.5786159Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5786441Z               "line": 1538
2026-06-13T11:54:08.5786708Z             }
2026-06-13T11:54:08.5786966Z           ]
2026-06-13T11:54:08.5787228Z         }
2026-06-13T11:54:08.5787482Z       }
2026-06-13T11:54:08.5787733Z     },
2026-06-13T11:54:08.5787987Z     {
2026-06-13T11:54:08.5788363Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-13T11:54:08.5796190Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-13T11:54:08.5796507Z       "requiredStages": [
2026-06-13T11:54:08.5796778Z         "doc",
2026-06-13T11:54:08.5797049Z         "impl",
2026-06-13T11:54:08.5797310Z         "unit",
2026-06-13T11:54:08.5797573Z         "int"
2026-06-13T11:54:08.5797841Z       ],
2026-06-13T11:54:08.5798099Z       "stages": {
2026-06-13T11:54:08.5798366Z         "doc": {
2026-06-13T11:54:08.5798662Z           "complete": true,
2026-06-13T11:54:08.5799029Z           "evidence": [
2026-06-13T11:54:08.5799303Z             {
2026-06-13T11:54:08.5799640Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.5799945Z               "line": 288
2026-06-13T11:54:08.5800202Z             }
2026-06-13T11:54:08.5800469Z           ]
2026-06-13T11:54:08.5800731Z         },
2026-06-13T11:54:08.5800999Z         "impl": {
2026-06-13T11:54:08.5801290Z           "complete": true,
2026-06-13T11:54:08.5801681Z           "evidence": [
2026-06-13T11:54:08.5801960Z             {
2026-06-13T11:54:08.5802350Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.5802636Z               "line": 108
2026-06-13T11:54:08.5802894Z             },
2026-06-13T11:54:08.5803156Z             {
2026-06-13T11:54:08.5803533Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5803814Z               "line": 729
2026-06-13T11:54:08.5804076Z             },
2026-06-13T11:54:08.5804342Z             {
2026-06-13T11:54:08.5804708Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.5804999Z               "line": 936
2026-06-13T11:54:08.5805247Z             },
2026-06-13T11:54:08.5805619Z             {
2026-06-13T11:54:08.5806020Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5806301Z               "line": 23
2026-06-13T11:54:08.5806563Z             },
2026-06-13T11:54:08.5806835Z             {
2026-06-13T11:54:08.5807241Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5807523Z               "line": 113
2026-06-13T11:54:08.5807795Z             },
2026-06-13T11:54:08.5808053Z             {
2026-06-13T11:54:08.5808448Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5808744Z               "line": 158
2026-06-13T11:54:08.5809097Z             },
2026-06-13T11:54:08.5809368Z             {
2026-06-13T11:54:08.5809754Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5810043Z               "line": 215
2026-06-13T11:54:08.5810305Z             },
2026-06-13T11:54:08.5810572Z             {
2026-06-13T11:54:08.5810963Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5811254Z               "line": 247
2026-06-13T11:54:08.5811521Z             },
2026-06-13T11:54:08.5811779Z             {
2026-06-13T11:54:08.5812175Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5812463Z               "line": 261
2026-06-13T11:54:08.5812738Z             },
2026-06-13T11:54:08.5813000Z             {
2026-06-13T11:54:08.5813387Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5813672Z               "line": 306
2026-06-13T11:54:08.5813934Z             },
2026-06-13T11:54:08.5814202Z             {
2026-06-13T11:54:08.5814588Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5814874Z               "line": 333
2026-06-13T11:54:08.5815145Z             },
2026-06-13T11:54:08.5815403Z             {
2026-06-13T11:54:08.5815798Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5816080Z               "line": 345
2026-06-13T11:54:08.5816366Z             },
2026-06-13T11:54:08.5816624Z             {
2026-06-13T11:54:08.5817009Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5817292Z               "line": 359
2026-06-13T11:54:08.5817551Z             },
2026-06-13T11:54:08.5817816Z             {
2026-06-13T11:54:08.5818208Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5818484Z               "line": 386
2026-06-13T11:54:08.5818746Z             },
2026-06-13T11:54:08.5819089Z             {
2026-06-13T11:54:08.5819482Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5819748Z               "line": 629
2026-06-13T11:54:08.5820010Z             },
2026-06-13T11:54:08.5820272Z             {
2026-06-13T11:54:08.5820659Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5820941Z               "line": 958
2026-06-13T11:54:08.5821209Z             },
2026-06-13T11:54:08.5821480Z             {
2026-06-13T11:54:08.5821852Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5822138Z               "line": 111
2026-06-13T11:54:08.5822401Z             },
2026-06-13T11:54:08.5822668Z             {
2026-06-13T11:54:08.5823042Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5823433Z               "line": 296
2026-06-13T11:54:08.5823709Z             },
2026-06-13T11:54:08.5823962Z             {
2026-06-13T11:54:08.5824333Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5824615Z               "line": 368
2026-06-13T11:54:08.5824872Z             },
2026-06-13T11:54:08.5825138Z             {
2026-06-13T11:54:08.5825511Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5825795Z               "line": 380
2026-06-13T11:54:08.5826058Z             },
2026-06-13T11:54:08.5826321Z             {
2026-06-13T11:54:08.5826692Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5826978Z               "line": 716
2026-06-13T11:54:08.5827345Z             },
2026-06-13T11:54:08.5827607Z             {
2026-06-13T11:54:08.5827983Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5828262Z               "line": 181
2026-06-13T11:54:08.5828535Z             },
2026-06-13T11:54:08.5828807Z             {
2026-06-13T11:54:08.5829268Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5829555Z               "line": 223
2026-06-13T11:54:08.5829816Z             },
2026-06-13T11:54:08.5830075Z             {
2026-06-13T11:54:08.5830432Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5830724Z               "line": 234
2026-06-13T11:54:08.5830979Z             },
2026-06-13T11:54:08.5831238Z             {
2026-06-13T11:54:08.5831620Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.5835218Z               "line": 260
2026-06-13T11:54:08.5835528Z             },
2026-06-13T11:54:08.5835791Z             {
2026-06-13T11:54:08.5836219Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5836500Z               "line": 56
2026-06-13T11:54:08.5836762Z             },
2026-06-13T11:54:08.5837028Z             {
2026-06-13T11:54:08.5837415Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5837696Z               "line": 188
2026-06-13T11:54:08.5837957Z             },
2026-06-13T11:54:08.5838249Z             {
2026-06-13T11:54:08.5838851Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-13T11:54:08.5839318Z               "line": 63
2026-06-13T11:54:08.5839682Z             },
2026-06-13T11:54:08.5840020Z             {
2026-06-13T11:54:08.5840553Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5840926Z               "line": 258
2026-06-13T11:54:08.5841294Z             },
2026-06-13T11:54:08.5841648Z             {
2026-06-13T11:54:08.5842142Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.5842525Z               "line": 424
2026-06-13T11:54:08.5842910Z             },
2026-06-13T11:54:08.5843272Z             {
2026-06-13T11:54:08.5843707Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.5844092Z               "line": 1473
2026-06-13T11:54:08.5844442Z             }
2026-06-13T11:54:08.5844796Z           ]
2026-06-13T11:54:08.5845158Z         },
2026-06-13T11:54:08.5845525Z         "int": {
2026-06-13T11:54:08.5845972Z           "complete": true,
2026-06-13T11:54:08.5846346Z           "evidence": [
2026-06-13T11:54:08.5846699Z             {
2026-06-13T11:54:08.5847220Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:54:08.5847602Z               "line": 57
2026-06-13T11:54:08.5847956Z             },
2026-06-13T11:54:08.5848309Z             {
2026-06-13T11:54:08.5848804Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T11:54:08.5849275Z               "line": 41
2026-06-13T11:54:08.5849640Z             }
2026-06-13T11:54:08.5850003Z           ]
2026-06-13T11:54:08.5850374Z         },
2026-06-13T11:54:08.5850741Z         "unit": {
2026-06-13T11:54:08.5851123Z           "complete": true,
2026-06-13T11:54:08.5851501Z           "evidence": [
2026-06-13T11:54:08.5851849Z             {
2026-06-13T11:54:08.5852570Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.5852969Z               "line": 532
2026-06-13T11:54:08.5853327Z             },
2026-06-13T11:54:08.5853690Z             {
2026-06-13T11:54:08.5854214Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.5854599Z               "line": 754
2026-06-13T11:54:08.5854954Z             },
2026-06-13T11:54:08.5855312Z             {
2026-06-13T11:54:08.5855851Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5856232Z               "line": 1027
2026-06-13T11:54:08.5856596Z             },
2026-06-13T11:54:08.5856935Z             {
2026-06-13T11:54:08.5857461Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5858001Z               "line": 1061
2026-06-13T11:54:08.5858363Z             },
2026-06-13T11:54:08.5858725Z             {
2026-06-13T11:54:08.5859330Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5859721Z               "line": 1103
2026-06-13T11:54:08.5860090Z             },
2026-06-13T11:54:08.5860439Z             {
2026-06-13T11:54:08.5860949Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5861340Z               "line": 1175
2026-06-13T11:54:08.5861693Z             },
2026-06-13T11:54:08.5862056Z             {
2026-06-13T11:54:08.5862588Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5862948Z               "line": 1188
2026-06-13T11:54:08.5863311Z             },
2026-06-13T11:54:08.5863664Z             {
2026-06-13T11:54:08.5864192Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5864580Z               "line": 1211
2026-06-13T11:54:08.5864928Z             },
2026-06-13T11:54:08.5865298Z             {
2026-06-13T11:54:08.5865815Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5866192Z               "line": 1237
2026-06-13T11:54:08.5866546Z             },
2026-06-13T11:54:08.5866908Z             {
2026-06-13T11:54:08.5867447Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5867819Z               "line": 1251
2026-06-13T11:54:08.5868165Z             },
2026-06-13T11:54:08.5868514Z             {
2026-06-13T11:54:08.5869115Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5869495Z               "line": 1275
2026-06-13T11:54:08.5869852Z             },
2026-06-13T11:54:08.5870201Z             {
2026-06-13T11:54:08.5870722Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5871113Z               "line": 1407
2026-06-13T11:54:08.5871457Z             },
2026-06-13T11:54:08.5871852Z             {
2026-06-13T11:54:08.5872386Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5872772Z               "line": 1583
2026-06-13T11:54:08.5873129Z             },
2026-06-13T11:54:08.5873489Z             {
2026-06-13T11:54:08.5874028Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5874418Z               "line": 1638
2026-06-13T11:54:08.5874777Z             },
2026-06-13T11:54:08.5875135Z             {
2026-06-13T11:54:08.5875657Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5876041Z               "line": 1684
2026-06-13T11:54:08.5876399Z             },
2026-06-13T11:54:08.5876767Z             {
2026-06-13T11:54:08.5877295Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5877682Z               "line": 1729
2026-06-13T11:54:08.5878140Z             },
2026-06-13T11:54:08.5878496Z             {
2026-06-13T11:54:08.5879107Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5879492Z               "line": 1773
2026-06-13T11:54:08.5879864Z             },
2026-06-13T11:54:08.5880213Z             {
2026-06-13T11:54:08.5880751Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.5881134Z               "line": 1815
2026-06-13T11:54:08.5881486Z             },
2026-06-13T11:54:08.5881845Z             {
2026-06-13T11:54:08.5882498Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.5882876Z               "line": 1029
2026-06-13T11:54:08.5883233Z             },
2026-06-13T11:54:08.5883590Z             {
2026-06-13T11:54:08.5884097Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5884474Z               "line": 217
2026-06-13T11:54:08.5884832Z             },
2026-06-13T11:54:08.5885175Z             {
2026-06-13T11:54:08.5885700Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5886100Z               "line": 233
2026-06-13T11:54:08.5886469Z             },
2026-06-13T11:54:08.5886826Z             {
2026-06-13T11:54:08.5887337Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5887874Z               "line": 254
2026-06-13T11:54:08.5888228Z             },
2026-06-13T11:54:08.5888582Z             {
2026-06-13T11:54:08.5889194Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5889596Z               "line": 265
2026-06-13T11:54:08.5889868Z             },
2026-06-13T11:54:08.5890134Z             {
2026-06-13T11:54:08.5890521Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5890797Z               "line": 278
2026-06-13T11:54:08.5891068Z             },
2026-06-13T11:54:08.5891330Z             {
2026-06-13T11:54:08.5891709Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5891995Z               "line": 289
2026-06-13T11:54:08.5892258Z             },
2026-06-13T11:54:08.5892553Z             {
2026-06-13T11:54:08.5892934Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5893221Z               "line": 301
2026-06-13T11:54:08.5893511Z             },
2026-06-13T11:54:08.5893770Z             {
2026-06-13T11:54:08.5894159Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5894439Z               "line": 312
2026-06-13T11:54:08.5894705Z             },
2026-06-13T11:54:08.5894976Z             {
2026-06-13T11:54:08.5895373Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5895655Z               "line": 323
2026-06-13T11:54:08.5895921Z             },
2026-06-13T11:54:08.5896192Z             {
2026-06-13T11:54:08.5896565Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5896854Z               "line": 332
2026-06-13T11:54:08.5897119Z             },
2026-06-13T11:54:08.5897391Z             {
2026-06-13T11:54:08.5897767Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5898054Z               "line": 342
2026-06-13T11:54:08.5898321Z             },
2026-06-13T11:54:08.5898574Z             {
2026-06-13T11:54:08.5899031Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-13T11:54:08.5899316Z               "line": 358
2026-06-13T11:54:08.5899598Z             },
2026-06-13T11:54:08.5899870Z             {
2026-06-13T11:54:08.5900256Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5900537Z               "line": 708
2026-06-13T11:54:08.5900800Z             },
2026-06-13T11:54:08.5901057Z             {
2026-06-13T11:54:08.5901449Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.5901725Z               "line": 744
2026-06-13T11:54:08.5901989Z             },
2026-06-13T11:54:08.5902250Z             {
2026-06-13T11:54:08.5902621Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.5902893Z               "line": 951
2026-06-13T11:54:08.5903170Z             },
2026-06-13T11:54:08.5903428Z             {
2026-06-13T11:54:08.5903809Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:54:08.5904104Z               "line": 142
2026-06-13T11:54:08.5904367Z             },
2026-06-13T11:54:08.5904631Z             {
2026-06-13T11:54:08.5905018Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:54:08.5905304Z               "line": 221
2026-06-13T11:54:08.5905561Z             },
2026-06-13T11:54:08.5905990Z             {
2026-06-13T11:54:08.5906385Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-13T11:54:08.5906671Z               "line": 290
2026-06-13T11:54:08.5906939Z             },
2026-06-13T11:54:08.5907202Z             {
2026-06-13T11:54:08.5907580Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T11:54:08.5907861Z               "line": 17
2026-06-13T11:54:08.5908128Z             },
2026-06-13T11:54:08.5908394Z             {
2026-06-13T11:54:08.5908772Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-13T11:54:08.5909148Z               "line": 104
2026-06-13T11:54:08.5909416Z             }
2026-06-13T11:54:08.5909687Z           ]
2026-06-13T11:54:08.5910064Z         }
2026-06-13T11:54:08.5910324Z       }
2026-06-13T11:54:08.5910586Z     },
2026-06-13T11:54:08.5910840Z     {
2026-06-13T11:54:08.5911187Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-13T11:54:08.5911755Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-13T11:54:08.5912056Z       "requiredStages": [
2026-06-13T11:54:08.5912319Z         "impl",
2026-06-13T11:54:08.5912574Z         "unit"
2026-06-13T11:54:08.5912838Z       ],
2026-06-13T11:54:08.5913110Z       "stages": {
2026-06-13T11:54:08.5913373Z         "doc": {
2026-06-13T11:54:08.5913664Z           "complete": false,
2026-06-13T11:54:08.5913955Z           "evidence": []
2026-06-13T11:54:08.5914227Z         },
2026-06-13T11:54:08.5914499Z         "impl": {
2026-06-13T11:54:08.5914789Z           "complete": true,
2026-06-13T11:54:08.5915056Z           "evidence": [
2026-06-13T11:54:08.5915322Z             {
2026-06-13T11:54:08.5915696Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.5916006Z               "line": 149
2026-06-13T11:54:08.5916269Z             },
2026-06-13T11:54:08.5916531Z             {
2026-06-13T11:54:08.5916888Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.5917156Z               "line": 18
2026-06-13T11:54:08.5917428Z             },
2026-06-13T11:54:08.5917686Z             {
2026-06-13T11:54:08.5918051Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.5918335Z               "line": 98
2026-06-13T11:54:08.5918601Z             }
2026-06-13T11:54:08.5918868Z           ]
2026-06-13T11:54:08.5919202Z         },
2026-06-13T11:54:08.5919469Z         "int": {
2026-06-13T11:54:08.5919760Z           "complete": false,
2026-06-13T11:54:08.5920046Z           "evidence": []
2026-06-13T11:54:08.5920319Z         },
2026-06-13T11:54:08.5920577Z         "unit": {
2026-06-13T11:54:08.5920875Z           "complete": true,
2026-06-13T11:54:08.5921141Z           "evidence": [
2026-06-13T11:54:08.5921428Z             {
2026-06-13T11:54:08.5921814Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.5922109Z               "line": 644
2026-06-13T11:54:08.5922387Z             },
2026-06-13T11:54:08.5922649Z             {
2026-06-13T11:54:08.5923020Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.5923304Z               "line": 159
2026-06-13T11:54:08.5923571Z             },
2026-06-13T11:54:08.5923833Z             {
2026-06-13T11:54:08.5924201Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.5924487Z               "line": 231
2026-06-13T11:54:08.5924754Z             }
2026-06-13T11:54:08.5925015Z           ]
2026-06-13T11:54:08.5925282Z         }
2026-06-13T11:54:08.5925544Z       }
2026-06-13T11:54:08.5925803Z     },
2026-06-13T11:54:08.5926058Z     {
2026-06-13T11:54:08.5926415Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-13T11:54:08.5927863Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-13T11:54:08.5928173Z       "requiredStages": [
2026-06-13T11:54:08.5928444Z         "impl",
2026-06-13T11:54:08.5928724Z         "unit"
2026-06-13T11:54:08.5929057Z       ],
2026-06-13T11:54:08.5929443Z       "stages": {
2026-06-13T11:54:08.5929715Z         "doc": {
2026-06-13T11:54:08.5930006Z           "complete": true,
2026-06-13T11:54:08.5930292Z           "evidence": [
2026-06-13T11:54:08.5930555Z             {
2026-06-13T11:54:08.5930898Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.5931180Z               "line": 220
2026-06-13T11:54:08.5931449Z             }
2026-06-13T11:54:08.5931716Z           ]
2026-06-13T11:54:08.5931978Z         },
2026-06-13T11:54:08.5932261Z         "impl": {
2026-06-13T11:54:08.5932547Z           "complete": true,
2026-06-13T11:54:08.5932828Z           "evidence": [
2026-06-13T11:54:08.5933091Z             {
2026-06-13T11:54:08.5933486Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.5933907Z               "line": 302
2026-06-13T11:54:08.5934170Z             },
2026-06-13T11:54:08.5934427Z             {
2026-06-13T11:54:08.5934808Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.5935099Z               "line": 257
2026-06-13T11:54:08.5935357Z             },
2026-06-13T11:54:08.5935629Z             {
2026-06-13T11:54:08.5936015Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.5936297Z               "line": 405
2026-06-13T11:54:08.5936580Z             },
2026-06-13T11:54:08.5936845Z             {
2026-06-13T11:54:08.5937222Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.5937498Z               "line": 77
2026-06-13T11:54:08.5937765Z             }
2026-06-13T11:54:08.5938033Z           ]
2026-06-13T11:54:08.5938291Z         },
2026-06-13T11:54:08.5938558Z         "int": {
2026-06-13T11:54:08.5938849Z           "complete": false,
2026-06-13T11:54:08.5939214Z           "evidence": []
2026-06-13T11:54:08.5939483Z         },
2026-06-13T11:54:08.5939755Z         "unit": {
2026-06-13T11:54:08.5940046Z           "complete": true,
2026-06-13T11:54:08.5940322Z           "evidence": [
2026-06-13T11:54:08.5940585Z             {
2026-06-13T11:54:08.5940976Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.5941257Z               "line": 478
2026-06-13T11:54:08.5941528Z             },
2026-06-13T11:54:08.5941788Z             {
2026-06-13T11:54:08.5942177Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.5942458Z               "line": 516
2026-06-13T11:54:08.5942721Z             },
2026-06-13T11:54:08.5942978Z             {
2026-06-13T11:54:08.5943351Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.5943637Z               "line": 166
2026-06-13T11:54:08.5943893Z             }
2026-06-13T11:54:08.5944159Z           ]
2026-06-13T11:54:08.5944419Z         }
2026-06-13T11:54:08.5944692Z       }
2026-06-13T11:54:08.5944949Z     },
2026-06-13T11:54:08.5945215Z     {
2026-06-13T11:54:08.5945593Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-13T11:54:08.5947458Z       "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-13T11:54:08.5947772Z       "requiredStages": [
2026-06-13T11:54:08.5948039Z         "impl",
2026-06-13T11:54:08.5948302Z         "unit"
2026-06-13T11:54:08.5948550Z       ],
2026-06-13T11:54:08.5948851Z       "stages": {
2026-06-13T11:54:08.5949208Z         "doc": {
2026-06-13T11:54:08.5949490Z           "complete": false,
2026-06-13T11:54:08.5949774Z           "evidence": []
2026-06-13T11:54:08.5950034Z         },
2026-06-13T11:54:08.5950296Z         "impl": {
2026-06-13T11:54:08.5950591Z           "complete": true,
2026-06-13T11:54:08.5950878Z           "evidence": [
2026-06-13T11:54:08.5951155Z             {
2026-06-13T11:54:08.5951545Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:54:08.5951832Z               "line": 22
2026-06-13T11:54:08.5952093Z             },
2026-06-13T11:54:08.5952362Z             {
2026-06-13T11:54:08.5952884Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.5953189Z               "line": 487
2026-06-13T11:54:08.5953485Z             },
2026-06-13T11:54:08.5953742Z             {
2026-06-13T11:54:08.5954119Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:54:08.5954391Z               "line": 17
2026-06-13T11:54:08.5954658Z             },
2026-06-13T11:54:08.5954909Z             {
2026-06-13T11:54:08.5955285Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:54:08.5955576Z               "line": 147
2026-06-13T11:54:08.5955838Z             },
2026-06-13T11:54:08.5956105Z             {
2026-06-13T11:54:08.5956510Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5956896Z               "line": 226
2026-06-13T11:54:08.5957159Z             },
2026-06-13T11:54:08.5957422Z             {
2026-06-13T11:54:08.5957819Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5958100Z               "line": 251
2026-06-13T11:54:08.5958367Z             },
2026-06-13T11:54:08.5958628Z             {
2026-06-13T11:54:08.5959115Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5959406Z               "line": 277
2026-06-13T11:54:08.5959659Z             },
2026-06-13T11:54:08.5959926Z             {
2026-06-13T11:54:08.5960329Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.5960614Z               "line": 124
2026-06-13T11:54:08.5960875Z             },
2026-06-13T11:54:08.5961151Z             {
2026-06-13T11:54:08.5961529Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.5961800Z               "line": 224
2026-06-13T11:54:08.5962068Z             }
2026-06-13T11:54:08.5962334Z           ]
2026-06-13T11:54:08.5962598Z         },
2026-06-13T11:54:08.5962865Z         "int": {
2026-06-13T11:54:08.5963163Z           "complete": false,
2026-06-13T11:54:08.5963454Z           "evidence": []
2026-06-13T11:54:08.5963716Z         },
2026-06-13T11:54:08.5963988Z         "unit": {
2026-06-13T11:54:08.5964280Z           "complete": true,
2026-06-13T11:54:08.5964560Z           "evidence": [
2026-06-13T11:54:08.5964814Z             {
2026-06-13T11:54:08.5965199Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:54:08.5965489Z               "line": 63
2026-06-13T11:54:08.5965749Z             },
2026-06-13T11:54:08.5966016Z             {
2026-06-13T11:54:08.5966403Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:54:08.5966680Z               "line": 73
2026-06-13T11:54:08.5966941Z             },
2026-06-13T11:54:08.5967213Z             {
2026-06-13T11:54:08.5967605Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-13T11:54:08.5967890Z               "line": 85
2026-06-13T11:54:08.5968156Z             },
2026-06-13T11:54:08.5968416Z             {
2026-06-13T11:54:08.5968797Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.5969168Z               "line": 346
2026-06-13T11:54:08.5969446Z             },
2026-06-13T11:54:08.5969718Z             {
2026-06-13T11:54:08.5970094Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:54:08.5970385Z               "line": 281
2026-06-13T11:54:08.5970652Z             },
2026-06-13T11:54:08.5970964Z             {
2026-06-13T11:54:08.5971508Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:54:08.5971837Z               "line": 322
2026-06-13T11:54:08.5972109Z             },
2026-06-13T11:54:08.5972385Z             {
2026-06-13T11:54:08.5972781Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-13T11:54:08.5973077Z               "line": 360
2026-06-13T11:54:08.5973363Z             },
2026-06-13T11:54:08.5973675Z             {
2026-06-13T11:54:08.5974092Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.5974373Z               "line": 688
2026-06-13T11:54:08.5974634Z             },
2026-06-13T11:54:08.5974900Z             {
2026-06-13T11:54:08.5975412Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.5975708Z               "line": 397
2026-06-13T11:54:08.5975978Z             },
2026-06-13T11:54:08.5976242Z             {
2026-06-13T11:54:08.5976649Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.5976940Z               "line": 440
2026-06-13T11:54:08.5977211Z             }
2026-06-13T11:54:08.5977472Z           ]
2026-06-13T11:54:08.5977740Z         }
2026-06-13T11:54:08.5978102Z       }
2026-06-13T11:54:08.5978349Z     },
2026-06-13T11:54:08.5978613Z     {
2026-06-13T11:54:08.5979029Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-13T11:54:08.5979734Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-13T11:54:08.5980155Z       "requiredStages": [
2026-06-13T11:54:08.5980426Z         "impl",
2026-06-13T11:54:08.5980697Z         "unit"
2026-06-13T11:54:08.5980960Z       ],
2026-06-13T11:54:08.5981236Z       "stages": {
2026-06-13T11:54:08.5981510Z         "doc": {
2026-06-13T11:54:08.5981801Z           "complete": false,
2026-06-13T11:54:08.5982082Z           "evidence": []
2026-06-13T11:54:08.5982354Z         },
2026-06-13T11:54:08.5982615Z         "impl": {
2026-06-13T11:54:08.5982902Z           "complete": true,
2026-06-13T11:54:08.5983174Z           "evidence": [
2026-06-13T11:54:08.5983436Z             {
2026-06-13T11:54:08.5983798Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:54:08.5984079Z               "line": 169
2026-06-13T11:54:08.5984337Z             }
2026-06-13T11:54:08.5984608Z           ]
2026-06-13T11:54:08.5984860Z         },
2026-06-13T11:54:08.5985132Z         "int": {
2026-06-13T11:54:08.5985419Z           "complete": true,
2026-06-13T11:54:08.5985709Z           "evidence": [
2026-06-13T11:54:08.5985977Z             {
2026-06-13T11:54:08.5986334Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T11:54:08.5986614Z               "line": 44
2026-06-13T11:54:08.5986879Z             },
2026-06-13T11:54:08.5987141Z             {
2026-06-13T11:54:08.5987500Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-13T11:54:08.5987776Z               "line": 66
2026-06-13T11:54:08.5988042Z             }
2026-06-13T11:54:08.5988305Z           ]
2026-06-13T11:54:08.5988562Z         },
2026-06-13T11:54:08.5988830Z         "unit": {
2026-06-13T11:54:08.5989262Z           "complete": true,
2026-06-13T11:54:08.5989546Z           "evidence": [
2026-06-13T11:54:08.5989809Z             {
2026-06-13T11:54:08.5990162Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:54:08.5990447Z               "line": 186
2026-06-13T11:54:08.5990720Z             },
2026-06-13T11:54:08.5990982Z             {
2026-06-13T11:54:08.5991359Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:54:08.5991635Z               "line": 238
2026-06-13T11:54:08.5991904Z             },
2026-06-13T11:54:08.5992170Z             {
2026-06-13T11:54:08.5992541Z               "path": "crates/spt-term/src/reader.rs",
2026-06-13T11:54:08.5992823Z               "line": 266
2026-06-13T11:54:08.5993090Z             }
2026-06-13T11:54:08.5993352Z           ]
2026-06-13T11:54:08.5993601Z         }
2026-06-13T11:54:08.5993878Z       }
2026-06-13T11:54:08.5994139Z     },
2026-06-13T11:54:08.5994406Z     {
2026-06-13T11:54:08.5994781Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-13T11:54:08.5996274Z       "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-13T11:54:08.5996574Z       "requiredStages": [
2026-06-13T11:54:08.5996842Z         "impl",
2026-06-13T11:54:08.5997117Z         "unit",
2026-06-13T11:54:08.5997392Z         "int"
2026-06-13T11:54:08.5997658Z       ],
2026-06-13T11:54:08.5997934Z       "stages": {
2026-06-13T11:54:08.5998197Z         "doc": {
2026-06-13T11:54:08.5998498Z           "complete": false,
2026-06-13T11:54:08.5998784Z           "evidence": []
2026-06-13T11:54:08.5999256Z         },
2026-06-13T11:54:08.5999537Z         "impl": {
2026-06-13T11:54:08.5999836Z           "complete": true,
2026-06-13T11:54:08.6000120Z           "evidence": [
2026-06-13T11:54:08.6000378Z             {
2026-06-13T11:54:08.6000778Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6001061Z               "line": 152
2026-06-13T11:54:08.6001336Z             },
2026-06-13T11:54:08.6001600Z             {
2026-06-13T11:54:08.6001999Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6002281Z               "line": 176
2026-06-13T11:54:08.6002551Z             },
2026-06-13T11:54:08.6002821Z             {
2026-06-13T11:54:08.6003179Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.6003584Z               "line": 79
2026-06-13T11:54:08.6003851Z             },
2026-06-13T11:54:08.6004118Z             {
2026-06-13T11:54:08.6004472Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6004762Z               "line": 51
2026-06-13T11:54:08.6005029Z             },
2026-06-13T11:54:08.6005294Z             {
2026-06-13T11:54:08.6005651Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6005933Z               "line": 154
2026-06-13T11:54:08.6006205Z             },
2026-06-13T11:54:08.6006468Z             {
2026-06-13T11:54:08.6006849Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6007134Z               "line": 27
2026-06-13T11:54:08.6007402Z             },
2026-06-13T11:54:08.6007673Z             {
2026-06-13T11:54:08.6008072Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6008353Z               "line": 79
2026-06-13T11:54:08.6008634Z             },
2026-06-13T11:54:08.6008891Z             {
2026-06-13T11:54:08.6009358Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6009640Z               "line": 102
2026-06-13T11:54:08.6009908Z             },
2026-06-13T11:54:08.6010174Z             {
2026-06-13T11:54:08.6010558Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6010848Z               "line": 116
2026-06-13T11:54:08.6011109Z             }
2026-06-13T11:54:08.6011381Z           ]
2026-06-13T11:54:08.6011639Z         },
2026-06-13T11:54:08.6011906Z         "int": {
2026-06-13T11:54:08.6012202Z           "complete": true,
2026-06-13T11:54:08.6012479Z           "evidence": [
2026-06-13T11:54:08.6012742Z             {
2026-06-13T11:54:08.6013145Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-13T11:54:08.6013428Z               "line": 38
2026-06-13T11:54:08.6013690Z             }
2026-06-13T11:54:08.6013962Z           ]
2026-06-13T11:54:08.6014220Z         },
2026-06-13T11:54:08.6014496Z         "unit": {
2026-06-13T11:54:08.6014792Z           "complete": true,
2026-06-13T11:54:08.6015070Z           "evidence": [
2026-06-13T11:54:08.6015337Z             {
2026-06-13T11:54:08.6015723Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6016012Z               "line": 628
2026-06-13T11:54:08.6016279Z             },
2026-06-13T11:54:08.6016540Z             {
2026-06-13T11:54:08.6016904Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6017179Z               "line": 351
2026-06-13T11:54:08.6017437Z             },
2026-06-13T11:54:08.6017699Z             {
2026-06-13T11:54:08.6018085Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6018364Z               "line": 124
2026-06-13T11:54:08.6018622Z             },
2026-06-13T11:54:08.6018884Z             {
2026-06-13T11:54:08.6019351Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6019632Z               "line": 143
2026-06-13T11:54:08.6019904Z             },
2026-06-13T11:54:08.6020162Z             {
2026-06-13T11:54:08.6020538Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6020816Z               "line": 160
2026-06-13T11:54:08.6021091Z             },
2026-06-13T11:54:08.6021485Z             {
2026-06-13T11:54:08.6021875Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6022156Z               "line": 187
2026-06-13T11:54:08.6022429Z             },
2026-06-13T11:54:08.6022691Z             {
2026-06-13T11:54:08.6023063Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-13T11:54:08.6023335Z               "line": 206
2026-06-13T11:54:08.6023590Z             },
2026-06-13T11:54:08.6023850Z             {
2026-06-13T11:54:08.6024231Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6024517Z               "line": 229
2026-06-13T11:54:08.6024780Z             }
2026-06-13T11:54:08.6025042Z           ]
2026-06-13T11:54:08.6025405Z         }
2026-06-13T11:54:08.6025667Z       }
2026-06-13T11:54:08.6025926Z     },
2026-06-13T11:54:08.6026179Z     {
2026-06-13T11:54:08.6026563Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-13T11:54:08.6028736Z       "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-13T11:54:08.6029120Z       "requiredStages": [
2026-06-13T11:54:08.6029396Z         "impl",
2026-06-13T11:54:08.6029662Z         "unit"
2026-06-13T11:54:08.6029925Z       ],
2026-06-13T11:54:08.6030197Z       "stages": {
2026-06-13T11:54:08.6030464Z         "doc": {
2026-06-13T11:54:08.6030765Z           "complete": false,
2026-06-13T11:54:08.6031042Z           "evidence": []
2026-06-13T11:54:08.6031309Z         },
2026-06-13T11:54:08.6031564Z         "impl": {
2026-06-13T11:54:08.6031853Z           "complete": true,
2026-06-13T11:54:08.6032144Z           "evidence": [
2026-06-13T11:54:08.6032392Z             {
2026-06-13T11:54:08.6032773Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6033059Z               "line": 327
2026-06-13T11:54:08.6033332Z             },
2026-06-13T11:54:08.6033585Z             {
2026-06-13T11:54:08.6033966Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6034255Z               "line": 530
2026-06-13T11:54:08.6034515Z             }
2026-06-13T11:54:08.6034777Z           ]
2026-06-13T11:54:08.6035035Z         },
2026-06-13T11:54:08.6035307Z         "int": {
2026-06-13T11:54:08.6035602Z           "complete": false,
2026-06-13T11:54:08.6035889Z           "evidence": []
2026-06-13T11:54:08.6036156Z         },
2026-06-13T11:54:08.6036424Z         "unit": {
2026-06-13T11:54:08.6036719Z           "complete": true,
2026-06-13T11:54:08.6036998Z           "evidence": [
2026-06-13T11:54:08.6037265Z             {
2026-06-13T11:54:08.6037675Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:54:08.6037976Z               "line": 161
2026-06-13T11:54:08.6038252Z             }
2026-06-13T11:54:08.6038515Z           ]
2026-06-13T11:54:08.6038782Z         }
2026-06-13T11:54:08.6039125Z       }
2026-06-13T11:54:08.6039396Z     },
2026-06-13T11:54:08.6039651Z     {
2026-06-13T11:54:08.6039980Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-13T11:54:08.6040572Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-13T11:54:08.6040867Z       "requiredStages": [
2026-06-13T11:54:08.6041148Z         "impl",
2026-06-13T11:54:08.6041415Z         "unit"
2026-06-13T11:54:08.6041682Z       ],
2026-06-13T11:54:08.6041955Z       "stages": {
2026-06-13T11:54:08.6042230Z         "doc": {
2026-06-13T11:54:08.6042523Z           "complete": false,
2026-06-13T11:54:08.6042809Z           "evidence": []
2026-06-13T11:54:08.6043076Z         },
2026-06-13T11:54:08.6043347Z         "impl": {
2026-06-13T11:54:08.6043653Z           "complete": true,
2026-06-13T11:54:08.6043934Z           "evidence": [
2026-06-13T11:54:08.6044207Z             {
2026-06-13T11:54:08.6044564Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6044843Z               "line": 40
2026-06-13T11:54:08.6045219Z             },
2026-06-13T11:54:08.6045486Z             {
2026-06-13T11:54:08.6045853Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6046134Z               "line": 100
2026-06-13T11:54:08.6046407Z             },
2026-06-13T11:54:08.6046669Z             {
2026-06-13T11:54:08.6047031Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6047323Z               "line": 215
2026-06-13T11:54:08.6047582Z             },
2026-06-13T11:54:08.6047849Z             {
2026-06-13T11:54:08.6048202Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6048493Z               "line": 314
2026-06-13T11:54:08.6048756Z             }
2026-06-13T11:54:08.6049090Z           ]
2026-06-13T11:54:08.6054018Z         },
2026-06-13T11:54:08.6054328Z         "int": {
2026-06-13T11:54:08.6054623Z           "complete": false,
2026-06-13T11:54:08.6054914Z           "evidence": []
2026-06-13T11:54:08.6055185Z         },
2026-06-13T11:54:08.6055455Z         "unit": {
2026-06-13T11:54:08.6055770Z           "complete": true,
2026-06-13T11:54:08.6056051Z           "evidence": [
2026-06-13T11:54:08.6056309Z             {
2026-06-13T11:54:08.6056690Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6056985Z               "line": 352
2026-06-13T11:54:08.6057268Z             },
2026-06-13T11:54:08.6057534Z             {
2026-06-13T11:54:08.6057907Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6058185Z               "line": 409
2026-06-13T11:54:08.6058457Z             },
2026-06-13T11:54:08.6058729Z             {
2026-06-13T11:54:08.6059187Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6059469Z               "line": 458
2026-06-13T11:54:08.6059755Z             },
2026-06-13T11:54:08.6060016Z             {
2026-06-13T11:54:08.6060382Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6060662Z               "line": 479
2026-06-13T11:54:08.6060934Z             }
2026-06-13T11:54:08.6061196Z           ]
2026-06-13T11:54:08.6061464Z         }
2026-06-13T11:54:08.6061721Z       }
2026-06-13T11:54:08.6061973Z     },
2026-06-13T11:54:08.6062235Z     {
2026-06-13T11:54:08.6062607Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-13T11:54:08.6063014Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-13T11:54:08.6063312Z       "requiredStages": [
2026-06-13T11:54:08.6063571Z         "impl",
2026-06-13T11:54:08.6063843Z         "unit"
2026-06-13T11:54:08.6064106Z       ],
2026-06-13T11:54:08.6064373Z       "stages": {
2026-06-13T11:54:08.6064631Z         "doc": {
2026-06-13T11:54:08.6064932Z           "complete": false,
2026-06-13T11:54:08.6065208Z           "evidence": []
2026-06-13T11:54:08.6065484Z         },
2026-06-13T11:54:08.6065760Z         "impl": {
2026-06-13T11:54:08.6066038Z           "complete": true,
2026-06-13T11:54:08.6066325Z           "evidence": [
2026-06-13T11:54:08.6066597Z             {
2026-06-13T11:54:08.6066983Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6067264Z               "line": 113
2026-06-13T11:54:08.6067536Z             },
2026-06-13T11:54:08.6067799Z             {
2026-06-13T11:54:08.6068166Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6068453Z               "line": 208
2026-06-13T11:54:08.6068712Z             }
2026-06-13T11:54:08.6069085Z           ]
2026-06-13T11:54:08.6069356Z         },
2026-06-13T11:54:08.6069632Z         "int": {
2026-06-13T11:54:08.6069928Z           "complete": false,
2026-06-13T11:54:08.6070205Z           "evidence": []
2026-06-13T11:54:08.6070472Z         },
2026-06-13T11:54:08.6070730Z         "unit": {
2026-06-13T11:54:08.6071024Z           "complete": true,
2026-06-13T11:54:08.6071308Z           "evidence": [
2026-06-13T11:54:08.6071574Z             {
2026-06-13T11:54:08.6071942Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6072218Z               "line": 373
2026-06-13T11:54:08.6072495Z             },
2026-06-13T11:54:08.6072935Z             {
2026-06-13T11:54:08.6073311Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6073593Z               "line": 436
2026-06-13T11:54:08.6073862Z             }
2026-06-13T11:54:08.6074146Z           ]
2026-06-13T11:54:08.6074389Z         }
2026-06-13T11:54:08.6074657Z       }
2026-06-13T11:54:08.6074915Z     },
2026-06-13T11:54:08.6075167Z     {
2026-06-13T11:54:08.6075535Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-13T11:54:08.6079287Z       "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-13T11:54:08.6079735Z       "requiredStages": [
2026-06-13T11:54:08.6080007Z         "impl",
2026-06-13T11:54:08.6080279Z         "unit"
2026-06-13T11:54:08.6080555Z       ],
2026-06-13T11:54:08.6080841Z       "stages": {
2026-06-13T11:54:08.6081113Z         "doc": {
2026-06-13T11:54:08.6081404Z           "complete": true,
2026-06-13T11:54:08.6081687Z           "evidence": [
2026-06-13T11:54:08.6081940Z             {
2026-06-13T11:54:08.6082298Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6082584Z               "line": 206
2026-06-13T11:54:08.6082856Z             }
2026-06-13T11:54:08.6083131Z           ]
2026-06-13T11:54:08.6083388Z         },
2026-06-13T11:54:08.6083666Z         "impl": {
2026-06-13T11:54:08.6083956Z           "complete": true,
2026-06-13T11:54:08.6084247Z           "evidence": [
2026-06-13T11:54:08.6084508Z             {
2026-06-13T11:54:08.6084916Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6085208Z               "line": 593
2026-06-13T11:54:08.6085475Z             },
2026-06-13T11:54:08.6085746Z             {
2026-06-13T11:54:08.6086137Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6086424Z               "line": 685
2026-06-13T11:54:08.6086696Z             },
2026-06-13T11:54:08.6086965Z             {
2026-06-13T11:54:08.6087364Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.6087645Z               "line": 183
2026-06-13T11:54:08.6087907Z             }
2026-06-13T11:54:08.6088164Z           ]
2026-06-13T11:54:08.6088432Z         },
2026-06-13T11:54:08.6088694Z         "int": {
2026-06-13T11:54:08.6089070Z           "complete": false,
2026-06-13T11:54:08.6089366Z           "evidence": []
2026-06-13T11:54:08.6089625Z         },
2026-06-13T11:54:08.6089890Z         "unit": {
2026-06-13T11:54:08.6090181Z           "complete": true,
2026-06-13T11:54:08.6090476Z           "evidence": [
2026-06-13T11:54:08.6090743Z             {
2026-06-13T11:54:08.6091115Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6091397Z               "line": 734
2026-06-13T11:54:08.6091659Z             },
2026-06-13T11:54:08.6091930Z             {
2026-06-13T11:54:08.6092332Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:54:08.6092619Z               "line": 44
2026-06-13T11:54:08.6092881Z             },
2026-06-13T11:54:08.6093134Z             {
2026-06-13T11:54:08.6093501Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:54:08.6093778Z               "line": 57
2026-06-13T11:54:08.6094046Z             },
2026-06-13T11:54:08.6094302Z             {
2026-06-13T11:54:08.6094713Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T11:54:08.6094997Z               "line": 54
2026-06-13T11:54:08.6095252Z             }
2026-06-13T11:54:08.6095510Z           ]
2026-06-13T11:54:08.6095777Z         }
2026-06-13T11:54:08.6096044Z       }
2026-06-13T11:54:08.6096311Z     },
2026-06-13T11:54:08.6096573Z     {
2026-06-13T11:54:08.6096941Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-13T11:54:08.6097771Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-13T11:54:08.6098071Z       "requiredStages": [
2026-06-13T11:54:08.6098340Z         "impl",
2026-06-13T11:54:08.6098602Z         "unit"
2026-06-13T11:54:08.6098864Z       ],
2026-06-13T11:54:08.6099222Z       "stages": {
2026-06-13T11:54:08.6099493Z         "doc": {
2026-06-13T11:54:08.6099790Z           "complete": false,
2026-06-13T11:54:08.6100080Z           "evidence": []
2026-06-13T11:54:08.6100340Z         },
2026-06-13T11:54:08.6100617Z         "impl": {
2026-06-13T11:54:08.6100908Z           "complete": true,
2026-06-13T11:54:08.6101204Z           "evidence": [
2026-06-13T11:54:08.6101466Z             {
2026-06-13T11:54:08.6101832Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6102228Z               "line": 26
2026-06-13T11:54:08.6102490Z             },
2026-06-13T11:54:08.6102761Z             {
2026-06-13T11:54:08.6103122Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6103418Z               "line": 135
2026-06-13T11:54:08.6103690Z             },
2026-06-13T11:54:08.6103952Z             {
2026-06-13T11:54:08.6104352Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6104635Z               "line": 26
2026-06-13T11:54:08.6104901Z             },
2026-06-13T11:54:08.6105163Z             {
2026-06-13T11:54:08.6105552Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6105846Z               "line": 237
2026-06-13T11:54:08.6106107Z             }
2026-06-13T11:54:08.6106389Z           ]
2026-06-13T11:54:08.6106647Z         },
2026-06-13T11:54:08.6106919Z         "int": {
2026-06-13T11:54:08.6107210Z           "complete": false,
2026-06-13T11:54:08.6107502Z           "evidence": []
2026-06-13T11:54:08.6107778Z         },
2026-06-13T11:54:08.6108042Z         "unit": {
2026-06-13T11:54:08.6108335Z           "complete": true,
2026-06-13T11:54:08.6108613Z           "evidence": [
2026-06-13T11:54:08.6108866Z             {
2026-06-13T11:54:08.6109337Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6109628Z               "line": 161
2026-06-13T11:54:08.6109886Z             },
2026-06-13T11:54:08.6110139Z             {
2026-06-13T11:54:08.6110501Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6110783Z               "line": 170
2026-06-13T11:54:08.6111054Z             },
2026-06-13T11:54:08.6111321Z             {
2026-06-13T11:54:08.6111683Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6111964Z               "line": 179
2026-06-13T11:54:08.6112250Z             },
2026-06-13T11:54:08.6112517Z             {
2026-06-13T11:54:08.6112884Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6113183Z               "line": 190
2026-06-13T11:54:08.6113448Z             },
2026-06-13T11:54:08.6113715Z             {
2026-06-13T11:54:08.6114082Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6114364Z               "line": 199
2026-06-13T11:54:08.6114636Z             },
2026-06-13T11:54:08.6114899Z             {
2026-06-13T11:54:08.6115269Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6115547Z               "line": 216
2026-06-13T11:54:08.6115819Z             },
2026-06-13T11:54:08.6116094Z             {
2026-06-13T11:54:08.6116459Z               "path": "crates/spt-live/src/context.rs",
2026-06-13T11:54:08.6116744Z               "line": 242
2026-06-13T11:54:08.6117011Z             },
2026-06-13T11:54:08.6117278Z             {
2026-06-13T11:54:08.6117641Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.6117927Z               "line": 295
2026-06-13T11:54:08.6118198Z             },
2026-06-13T11:54:08.6118475Z             {
2026-06-13T11:54:08.6118839Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6119220Z               "line": 244
2026-06-13T11:54:08.6119502Z             },
2026-06-13T11:54:08.6119769Z             {
2026-06-13T11:54:08.6120351Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6120647Z               "line": 265
2026-06-13T11:54:08.6120905Z             },
2026-06-13T11:54:08.6121171Z             {
2026-06-13T11:54:08.6121575Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6121866Z               "line": 293
2026-06-13T11:54:08.6122137Z             },
2026-06-13T11:54:08.6122400Z             {
2026-06-13T11:54:08.6122800Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6123081Z               "line": 317
2026-06-13T11:54:08.6123359Z             },
2026-06-13T11:54:08.6123620Z             {
2026-06-13T11:54:08.6124023Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-13T11:54:08.6124423Z               "line": 327
2026-06-13T11:54:08.6124695Z             },
2026-06-13T11:54:08.6124961Z             {
2026-06-13T11:54:08.6125348Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.6125644Z               "line": 540
2026-06-13T11:54:08.6125906Z             }
2026-06-13T11:54:08.6126182Z           ]
2026-06-13T11:54:08.6126460Z         }
2026-06-13T11:54:08.6126725Z       }
2026-06-13T11:54:08.6126995Z     },
2026-06-13T11:54:08.6127247Z     {
2026-06-13T11:54:08.6127620Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-13T11:54:08.6128086Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-13T11:54:08.6128391Z       "requiredStages": [
2026-06-13T11:54:08.6128655Z         "impl",
2026-06-13T11:54:08.6128917Z         "unit"
2026-06-13T11:54:08.6129263Z       ],
2026-06-13T11:54:08.6129537Z       "stages": {
2026-06-13T11:54:08.6129799Z         "doc": {
2026-06-13T11:54:08.6130100Z           "complete": false,
2026-06-13T11:54:08.6130395Z           "evidence": []
2026-06-13T11:54:08.6130653Z         },
2026-06-13T11:54:08.6130920Z         "impl": {
2026-06-13T11:54:08.6131212Z           "complete": true,
2026-06-13T11:54:08.6131489Z           "evidence": [
2026-06-13T11:54:08.6131765Z             {
2026-06-13T11:54:08.6132121Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.6132397Z               "line": 25
2026-06-13T11:54:08.6132668Z             },
2026-06-13T11:54:08.6132932Z             {
2026-06-13T11:54:08.6133298Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.6133571Z               "line": 26
2026-06-13T11:54:08.6133838Z             },
2026-06-13T11:54:08.6134091Z             {
2026-06-13T11:54:08.6134456Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.6134736Z               "line": 159
2026-06-13T11:54:08.6134993Z             }
2026-06-13T11:54:08.6135255Z           ]
2026-06-13T11:54:08.6135526Z         },
2026-06-13T11:54:08.6135790Z         "int": {
2026-06-13T11:54:08.6136094Z           "complete": false,
2026-06-13T11:54:08.6136395Z           "evidence": []
2026-06-13T11:54:08.6136663Z         },
2026-06-13T11:54:08.6136930Z         "unit": {
2026-06-13T11:54:08.6137233Z           "complete": true,
2026-06-13T11:54:08.6137511Z           "evidence": [
2026-06-13T11:54:08.6137774Z             {
2026-06-13T11:54:08.6138127Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.6138408Z               "line": 184
2026-06-13T11:54:08.6138676Z             },
2026-06-13T11:54:08.6139019Z             {
2026-06-13T11:54:08.6139371Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.6139647Z               "line": 236
2026-06-13T11:54:08.6139917Z             },
2026-06-13T11:54:08.6140179Z             {
2026-06-13T11:54:08.6140551Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.6140842Z               "line": 186
2026-06-13T11:54:08.6141105Z             }
2026-06-13T11:54:08.6141366Z           ]
2026-06-13T11:54:08.6141623Z         }
2026-06-13T11:54:08.6141895Z       }
2026-06-13T11:54:08.6142148Z     },
2026-06-13T11:54:08.6142416Z     {
2026-06-13T11:54:08.6142749Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-13T11:54:08.6143397Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-13T11:54:08.6143697Z       "requiredStages": [
2026-06-13T11:54:08.6143960Z         "impl",
2026-06-13T11:54:08.6144231Z         "unit"
2026-06-13T11:54:08.6144488Z       ],
2026-06-13T11:54:08.6144755Z       "stages": {
2026-06-13T11:54:08.6145025Z         "doc": {
2026-06-13T11:54:08.6145311Z           "complete": false,
2026-06-13T11:54:08.6145616Z           "evidence": []
2026-06-13T11:54:08.6145892Z         },
2026-06-13T11:54:08.6146168Z         "impl": {
2026-06-13T11:54:08.6146464Z           "complete": true,
2026-06-13T11:54:08.6146754Z           "evidence": [
2026-06-13T11:54:08.6147027Z             {
2026-06-13T11:54:08.6147509Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6147798Z               "line": 48
2026-06-13T11:54:08.6148057Z             },
2026-06-13T11:54:08.6148329Z             {
2026-06-13T11:54:08.6148701Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6149079Z               "line": 55
2026-06-13T11:54:08.6149374Z             },
2026-06-13T11:54:08.6149636Z             {
2026-06-13T11:54:08.6150009Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6150292Z               "line": 74
2026-06-13T11:54:08.6150567Z             },
2026-06-13T11:54:08.6150834Z             {
2026-06-13T11:54:08.6151201Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6151474Z               "line": 91
2026-06-13T11:54:08.6151740Z             }
2026-06-13T11:54:08.6152013Z           ]
2026-06-13T11:54:08.6152275Z         },
2026-06-13T11:54:08.6152541Z         "int": {
2026-06-13T11:54:08.6152856Z           "complete": false,
2026-06-13T11:54:08.6153174Z           "evidence": []
2026-06-13T11:54:08.6153441Z         },
2026-06-13T11:54:08.6153709Z         "unit": {
2026-06-13T11:54:08.6154005Z           "complete": true,
2026-06-13T11:54:08.6154290Z           "evidence": [
2026-06-13T11:54:08.6154577Z             {
2026-06-13T11:54:08.6154939Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6155239Z               "line": 149
2026-06-13T11:54:08.6155510Z             },
2026-06-13T11:54:08.6155779Z             {
2026-06-13T11:54:08.6156161Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6156443Z               "line": 166
2026-06-13T11:54:08.6156724Z             },
2026-06-13T11:54:08.6156990Z             {
2026-06-13T11:54:08.6157368Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6157663Z               "line": 176
2026-06-13T11:54:08.6157925Z             },
2026-06-13T11:54:08.6158192Z             {
2026-06-13T11:54:08.6158556Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6158861Z               "line": 194
2026-06-13T11:54:08.6159223Z             },
2026-06-13T11:54:08.6159491Z             {
2026-06-13T11:54:08.6159862Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.6160158Z               "line": 207
2026-06-13T11:54:08.6160429Z             }
2026-06-13T11:54:08.6160693Z           ]
2026-06-13T11:54:08.6160958Z         }
2026-06-13T11:54:08.6161218Z       }
2026-06-13T11:54:08.6161485Z     },
2026-06-13T11:54:08.6161751Z     {
2026-06-13T11:54:08.6162099Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-13T11:54:08.6162706Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-13T11:54:08.6163001Z       "requiredStages": [
2026-06-13T11:54:08.6163278Z         "impl",
2026-06-13T11:54:08.6163556Z         "unit"
2026-06-13T11:54:08.6163821Z       ],
2026-06-13T11:54:08.6164097Z       "stages": {
2026-06-13T11:54:08.6164359Z         "doc": {
2026-06-13T11:54:08.6164664Z           "complete": false,
2026-06-13T11:54:08.6164945Z           "evidence": []
2026-06-13T11:54:08.6165213Z         },
2026-06-13T11:54:08.6165475Z         "impl": {
2026-06-13T11:54:08.6165772Z           "complete": true,
2026-06-13T11:54:08.6166051Z           "evidence": [
2026-06-13T11:54:08.6166464Z             {
2026-06-13T11:54:08.6166907Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6167193Z               "line": 416
2026-06-13T11:54:08.6167465Z             },
2026-06-13T11:54:08.6167732Z             {
2026-06-13T11:54:08.6168094Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6168380Z               "line": 26
2026-06-13T11:54:08.6168648Z             }
2026-06-13T11:54:08.6168918Z           ]
2026-06-13T11:54:08.6169264Z         },
2026-06-13T11:54:08.6169531Z         "int": {
2026-06-13T11:54:08.6169821Z           "complete": false,
2026-06-13T11:54:08.6170098Z           "evidence": []
2026-06-13T11:54:08.6170366Z         },
2026-06-13T11:54:08.6170742Z         "unit": {
2026-06-13T11:54:08.6171023Z           "complete": true,
2026-06-13T11:54:08.6171304Z           "evidence": [
2026-06-13T11:54:08.6171570Z             {
2026-06-13T11:54:08.6171941Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6172226Z               "line": 150
2026-06-13T11:54:08.6172494Z             },
2026-06-13T11:54:08.6172757Z             {
2026-06-13T11:54:08.6173114Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6173400Z               "line": 208
2026-06-13T11:54:08.6173671Z             }
2026-06-13T11:54:08.6173938Z           ]
2026-06-13T11:54:08.6174195Z         }
2026-06-13T11:54:08.6174453Z       }
2026-06-13T11:54:08.6174705Z     },
2026-06-13T11:54:08.6174967Z     {
2026-06-13T11:54:08.6175325Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-13T11:54:08.6179624Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-13T11:54:08.6179948Z       "requiredStages": [
2026-06-13T11:54:08.6180220Z         "doc",
2026-06-13T11:54:08.6180492Z         "impl",
2026-06-13T11:54:08.6180749Z         "unit"
2026-06-13T11:54:08.6181011Z       ],
2026-06-13T11:54:08.6181288Z       "stages": {
2026-06-13T11:54:08.6181555Z         "doc": {
2026-06-13T11:54:08.6181850Z           "complete": true,
2026-06-13T11:54:08.6182130Z           "evidence": [
2026-06-13T11:54:08.6182395Z             {
2026-06-13T11:54:08.6182730Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6183025Z               "line": 214
2026-06-13T11:54:08.6183287Z             }
2026-06-13T11:54:08.6183539Z           ]
2026-06-13T11:54:08.6183831Z         },
2026-06-13T11:54:08.6184088Z         "impl": {
2026-06-13T11:54:08.6184379Z           "complete": true,
2026-06-13T11:54:08.6184657Z           "evidence": [
2026-06-13T11:54:08.6184927Z             {
2026-06-13T11:54:08.6185323Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6185600Z               "line": 54
2026-06-13T11:54:08.6185876Z             },
2026-06-13T11:54:08.6186133Z             {
2026-06-13T11:54:08.6186515Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6186796Z               "line": 511
2026-06-13T11:54:08.6187071Z             },
2026-06-13T11:54:08.6187331Z             {
2026-06-13T11:54:08.6187727Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6188022Z               "line": 36
2026-06-13T11:54:08.6188280Z             },
2026-06-13T11:54:08.6188547Z             {
2026-06-13T11:54:08.6188929Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6189324Z               "line": 59
2026-06-13T11:54:08.6189586Z             },
2026-06-13T11:54:08.6189848Z             {
2026-06-13T11:54:08.6190241Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6190513Z               "line": 83
2026-06-13T11:54:08.6190780Z             },
2026-06-13T11:54:08.6191157Z             {
2026-06-13T11:54:08.6191562Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6191848Z               "line": 140
2026-06-13T11:54:08.6192110Z             },
2026-06-13T11:54:08.6192364Z             {
2026-06-13T11:54:08.6192755Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6193052Z               "line": 159
2026-06-13T11:54:08.6193309Z             },
2026-06-13T11:54:08.6193572Z             {
2026-06-13T11:54:08.6193962Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6194239Z               "line": 384
2026-06-13T11:54:08.6194506Z             },
2026-06-13T11:54:08.6194902Z             {
2026-06-13T11:54:08.6195292Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6195564Z               "line": 526
2026-06-13T11:54:08.6195830Z             },
2026-06-13T11:54:08.6196092Z             {
2026-06-13T11:54:08.6196503Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6196789Z               "line": 572
2026-06-13T11:54:08.6197051Z             },
2026-06-13T11:54:08.6197317Z             {
2026-06-13T11:54:08.6197678Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.6197953Z               "line": 145
2026-06-13T11:54:08.6198225Z             },
2026-06-13T11:54:08.6198493Z             {
2026-06-13T11:54:08.6198840Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:54:08.6199197Z               "line": 39
2026-06-13T11:54:08.6199465Z             }
2026-06-13T11:54:08.6199737Z           ]
2026-06-13T11:54:08.6199995Z         },
2026-06-13T11:54:08.6200272Z         "int": {
2026-06-13T11:54:08.6200575Z           "complete": false,
2026-06-13T11:54:08.6200911Z           "evidence": []
2026-06-13T11:54:08.6201173Z         },
2026-06-13T11:54:08.6201449Z         "unit": {
2026-06-13T11:54:08.6201745Z           "complete": true,
2026-06-13T11:54:08.6202027Z           "evidence": [
2026-06-13T11:54:08.6202312Z             {
2026-06-13T11:54:08.6202703Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6202994Z               "line": 785
2026-06-13T11:54:08.6203264Z             },
2026-06-13T11:54:08.6203535Z             {
2026-06-13T11:54:08.6203926Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6204203Z               "line": 826
2026-06-13T11:54:08.6204475Z             },
2026-06-13T11:54:08.6204737Z             {
2026-06-13T11:54:08.6205133Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.6205415Z               "line": 900
2026-06-13T11:54:08.6205686Z             }
2026-06-13T11:54:08.6205975Z           ]
2026-06-13T11:54:08.6206247Z         }
2026-06-13T11:54:08.6206514Z       }
2026-06-13T11:54:08.6206777Z     },
2026-06-13T11:54:08.6207044Z     {
2026-06-13T11:54:08.6207411Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-13T11:54:08.6212849Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-13T11:54:08.6213164Z       "requiredStages": [
2026-06-13T11:54:08.6213437Z         "impl",
2026-06-13T11:54:08.6213716Z         "unit"
2026-06-13T11:54:08.6213970Z       ],
2026-06-13T11:54:08.6214257Z       "stages": {
2026-06-13T11:54:08.6214529Z         "doc": {
2026-06-13T11:54:08.6214820Z           "complete": false,
2026-06-13T11:54:08.6215101Z           "evidence": []
2026-06-13T11:54:08.6215360Z         },
2026-06-13T11:54:08.6215641Z         "impl": {
2026-06-13T11:54:08.6216059Z           "complete": true,
2026-06-13T11:54:08.6216351Z           "evidence": [
2026-06-13T11:54:08.6216622Z             {
2026-06-13T11:54:08.6217017Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6217294Z               "line": 31
2026-06-13T11:54:08.6217556Z             }
2026-06-13T11:54:08.6217822Z           ]
2026-06-13T11:54:08.6218085Z         },
2026-06-13T11:54:08.6218342Z         "int": {
2026-06-13T11:54:08.6218633Z           "complete": false,
2026-06-13T11:54:08.6218918Z           "evidence": []
2026-06-13T11:54:08.6219270Z         },
2026-06-13T11:54:08.6219537Z         "unit": {
2026-06-13T11:54:08.6219823Z           "complete": true,
2026-06-13T11:54:08.6220190Z           "evidence": [
2026-06-13T11:54:08.6220453Z             {
2026-06-13T11:54:08.6220843Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6221120Z               "line": 181
2026-06-13T11:54:08.6221377Z             }
2026-06-13T11:54:08.6221652Z           ]
2026-06-13T11:54:08.6221916Z         }
2026-06-13T11:54:08.6222175Z       }
2026-06-13T11:54:08.6222433Z     },
2026-06-13T11:54:08.6222695Z     {
2026-06-13T11:54:08.6223052Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-13T11:54:08.6223552Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-13T11:54:08.6223838Z       "requiredStages": [
2026-06-13T11:54:08.6224109Z         "impl",
2026-06-13T11:54:08.6224371Z         "unit"
2026-06-13T11:54:08.6224631Z       ],
2026-06-13T11:54:08.6224903Z       "stages": {
2026-06-13T11:54:08.6225170Z         "doc": {
2026-06-13T11:54:08.6225465Z           "complete": false,
2026-06-13T11:54:08.6225733Z           "evidence": []
2026-06-13T11:54:08.6226009Z         },
2026-06-13T11:54:08.6226268Z         "impl": {
2026-06-13T11:54:08.6226564Z           "complete": true,
2026-06-13T11:54:08.6226855Z           "evidence": [
2026-06-13T11:54:08.6227109Z             {
2026-06-13T11:54:08.6227496Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6227773Z               "line": 49
2026-06-13T11:54:08.6228058Z             },
2026-06-13T11:54:08.6228320Z             {
2026-06-13T11:54:08.6228712Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6229114Z               "line": 81
2026-06-13T11:54:08.6229388Z             }
2026-06-13T11:54:08.6229686Z           ]
2026-06-13T11:54:08.6229952Z         },
2026-06-13T11:54:08.6230225Z         "int": {
2026-06-13T11:54:08.6230511Z           "complete": false,
2026-06-13T11:54:08.6230807Z           "evidence": []
2026-06-13T11:54:08.6231079Z         },
2026-06-13T11:54:08.6231384Z         "unit": {
2026-06-13T11:54:08.6231671Z           "complete": true,
2026-06-13T11:54:08.6231967Z           "evidence": [
2026-06-13T11:54:08.6232236Z             {
2026-06-13T11:54:08.6232630Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6232916Z               "line": 156
2026-06-13T11:54:08.6233187Z             },
2026-06-13T11:54:08.6233463Z             {
2026-06-13T11:54:08.6233850Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6234131Z               "line": 173
2026-06-13T11:54:08.6234403Z             },
2026-06-13T11:54:08.6234674Z             {
2026-06-13T11:54:08.6235105Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6235386Z               "line": 196
2026-06-13T11:54:08.6235649Z             }
2026-06-13T11:54:08.6235931Z           ]
2026-06-13T11:54:08.6236189Z         }
2026-06-13T11:54:08.6236456Z       }
2026-06-13T11:54:08.6236722Z     },
2026-06-13T11:54:08.6236984Z     {
2026-06-13T11:54:08.6237377Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-13T11:54:08.6237946Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-13T11:54:08.6238246Z       "requiredStages": [
2026-06-13T11:54:08.6238523Z         "impl",
2026-06-13T11:54:08.6238800Z         "unit"
2026-06-13T11:54:08.6239153Z       ],
2026-06-13T11:54:08.6239534Z       "stages": {
2026-06-13T11:54:08.6239820Z         "doc": {
2026-06-13T11:54:08.6240113Z           "complete": false,
2026-06-13T11:54:08.6240404Z           "evidence": []
2026-06-13T11:54:08.6240666Z         },
2026-06-13T11:54:08.6240939Z         "impl": {
2026-06-13T11:54:08.6241229Z           "complete": true,
2026-06-13T11:54:08.6241505Z           "evidence": [
2026-06-13T11:54:08.6241777Z             {
2026-06-13T11:54:08.6242164Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6242449Z               "line": 120
2026-06-13T11:54:08.6242706Z             }
2026-06-13T11:54:08.6242966Z           ]
2026-06-13T11:54:08.6243229Z         },
2026-06-13T11:54:08.6243491Z         "int": {
2026-06-13T11:54:08.6243901Z           "complete": false,
2026-06-13T11:54:08.6244182Z           "evidence": []
2026-06-13T11:54:08.6244459Z         },
2026-06-13T11:54:08.6244730Z         "unit": {
2026-06-13T11:54:08.6245021Z           "complete": true,
2026-06-13T11:54:08.6245306Z           "evidence": [
2026-06-13T11:54:08.6245571Z             {
2026-06-13T11:54:08.6245961Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6246242Z               "line": 212
2026-06-13T11:54:08.6246520Z             },
2026-06-13T11:54:08.6246782Z             {
2026-06-13T11:54:08.6247154Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6247444Z               "line": 221
2026-06-13T11:54:08.6247698Z             },
2026-06-13T11:54:08.6247956Z             {
2026-06-13T11:54:08.6248341Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6248626Z               "line": 229
2026-06-13T11:54:08.6248888Z             },
2026-06-13T11:54:08.6249241Z             {
2026-06-13T11:54:08.6249619Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6249890Z               "line": 239
2026-06-13T11:54:08.6250156Z             },
2026-06-13T11:54:08.6250408Z             {
2026-06-13T11:54:08.6250801Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-13T11:54:08.6251083Z               "line": 249
2026-06-13T11:54:08.6251345Z             }
2026-06-13T11:54:08.6251593Z           ]
2026-06-13T11:54:08.6251851Z         }
2026-06-13T11:54:08.6252113Z       }
2026-06-13T11:54:08.6252375Z     },
2026-06-13T11:54:08.6252637Z     {
2026-06-13T11:54:08.6252966Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-13T11:54:08.6253480Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-13T11:54:08.6253779Z       "requiredStages": [
2026-06-13T11:54:08.6254056Z         "impl",
2026-06-13T11:54:08.6254317Z         "unit"
2026-06-13T11:54:08.6254565Z       ],
2026-06-13T11:54:08.6254837Z       "stages": {
2026-06-13T11:54:08.6255109Z         "doc": {
2026-06-13T11:54:08.6255410Z           "complete": false,
2026-06-13T11:54:08.6255701Z           "evidence": []
2026-06-13T11:54:08.6255956Z         },
2026-06-13T11:54:08.6256230Z         "impl": {
2026-06-13T11:54:08.6256521Z           "complete": true,
2026-06-13T11:54:08.6256803Z           "evidence": [
2026-06-13T11:54:08.6257056Z             {
2026-06-13T11:54:08.6257404Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6257685Z               "line": 14
2026-06-13T11:54:08.6257943Z             },
2026-06-13T11:54:08.6258197Z             {
2026-06-13T11:54:08.6258540Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6258819Z               "line": 62
2026-06-13T11:54:08.6259133Z             }
2026-06-13T11:54:08.6259400Z           ]
2026-06-13T11:54:08.6259668Z         },
2026-06-13T11:54:08.6259925Z         "int": {
2026-06-13T11:54:08.6264557Z           "complete": false,
2026-06-13T11:54:08.6264887Z           "evidence": []
2026-06-13T11:54:08.6265177Z         },
2026-06-13T11:54:08.6265445Z         "unit": {
2026-06-13T11:54:08.6265750Z           "complete": true,
2026-06-13T11:54:08.6266040Z           "evidence": [
2026-06-13T11:54:08.6266303Z             {
2026-06-13T11:54:08.6266814Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6267105Z               "line": 160
2026-06-13T11:54:08.6267382Z             },
2026-06-13T11:54:08.6267645Z             {
2026-06-13T11:54:08.6268002Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6268288Z               "line": 197
2026-06-13T11:54:08.6268555Z             },
2026-06-13T11:54:08.6268832Z             {
2026-06-13T11:54:08.6269251Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.6269546Z               "line": 219
2026-06-13T11:54:08.6269809Z             }
2026-06-13T11:54:08.6270076Z           ]
2026-06-13T11:54:08.6270342Z         }
2026-06-13T11:54:08.6270604Z       }
2026-06-13T11:54:08.6270977Z     },
2026-06-13T11:54:08.6271238Z     {
2026-06-13T11:54:08.6271567Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-13T11:54:08.6275661Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-13T11:54:08.6275967Z       "requiredStages": [],
2026-06-13T11:54:08.6276243Z       "stages": {
2026-06-13T11:54:08.6276506Z         "doc": {
2026-06-13T11:54:08.6276808Z           "complete": true,
2026-06-13T11:54:08.6277086Z           "evidence": [
2026-06-13T11:54:08.6277355Z             {
2026-06-13T11:54:08.6277699Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6278028Z               "line": 165
2026-06-13T11:54:08.6278433Z             }
2026-06-13T11:54:08.6278697Z           ]
2026-06-13T11:54:08.6279040Z         },
2026-06-13T11:54:08.6279317Z         "impl": {
2026-06-13T11:54:08.6279612Z           "complete": false,
2026-06-13T11:54:08.6279900Z           "evidence": []
2026-06-13T11:54:08.6280173Z         },
2026-06-13T11:54:08.6280440Z         "int": {
2026-06-13T11:54:08.6280736Z           "complete": false,
2026-06-13T11:54:08.6281022Z           "evidence": []
2026-06-13T11:54:08.6281289Z         },
2026-06-13T11:54:08.6281562Z         "unit": {
2026-06-13T11:54:08.6281861Z           "complete": false,
2026-06-13T11:54:08.6282141Z           "evidence": []
2026-06-13T11:54:08.6282405Z         }
2026-06-13T11:54:08.6282663Z       }
2026-06-13T11:54:08.6282926Z     },
2026-06-13T11:54:08.6283184Z     {
2026-06-13T11:54:08.6283560Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-13T11:54:08.6284251Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-13T11:54:08.6284556Z       "requiredStages": [
2026-06-13T11:54:08.6284829Z         "impl",
2026-06-13T11:54:08.6285098Z         "unit"
2026-06-13T11:54:08.6285368Z       ],
2026-06-13T11:54:08.6285644Z       "stages": {
2026-06-13T11:54:08.6285907Z         "doc": {
2026-06-13T11:54:08.6286217Z           "complete": false,
2026-06-13T11:54:08.6286498Z           "evidence": []
2026-06-13T11:54:08.6286771Z         },
2026-06-13T11:54:08.6287043Z         "impl": {
2026-06-13T11:54:08.6287344Z           "complete": true,
2026-06-13T11:54:08.6287623Z           "evidence": [
2026-06-13T11:54:08.6287882Z             {
2026-06-13T11:54:08.6288264Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6288549Z               "line": 76
2026-06-13T11:54:08.6288821Z             },
2026-06-13T11:54:08.6289156Z             {
2026-06-13T11:54:08.6289533Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6289809Z               "line": 167
2026-06-13T11:54:08.6290095Z             },
2026-06-13T11:54:08.6290351Z             {
2026-06-13T11:54:08.6290714Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6290991Z               "line": 233
2026-06-13T11:54:08.6291253Z             },
2026-06-13T11:54:08.6291525Z             {
2026-06-13T11:54:08.6291996Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6292287Z               "line": 272
2026-06-13T11:54:08.6292559Z             }
2026-06-13T11:54:08.6292815Z           ]
2026-06-13T11:54:08.6293085Z         },
2026-06-13T11:54:08.6293347Z         "int": {
2026-06-13T11:54:08.6293647Z           "complete": false,
2026-06-13T11:54:08.6293924Z           "evidence": []
2026-06-13T11:54:08.6294187Z         },
2026-06-13T11:54:08.6294463Z         "unit": {
2026-06-13T11:54:08.6294745Z           "complete": true,
2026-06-13T11:54:08.6295032Z           "evidence": [
2026-06-13T11:54:08.6295294Z             {
2026-06-13T11:54:08.6295659Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6296067Z               "line": 321
2026-06-13T11:54:08.6296344Z             },
2026-06-13T11:54:08.6296611Z             {
2026-06-13T11:54:08.6296964Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6297245Z               "line": 329
2026-06-13T11:54:08.6297502Z             },
2026-06-13T11:54:08.6297778Z             {
2026-06-13T11:54:08.6298139Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6298414Z               "line": 356
2026-06-13T11:54:08.6298686Z             },
2026-06-13T11:54:08.6299029Z             {
2026-06-13T11:54:08.6299396Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6299682Z               "line": 395
2026-06-13T11:54:08.6299950Z             },
2026-06-13T11:54:08.6300221Z             {
2026-06-13T11:54:08.6300588Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6300870Z               "line": 406
2026-06-13T11:54:08.6301127Z             },
2026-06-13T11:54:08.6301403Z             {
2026-06-13T11:54:08.6301766Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6302047Z               "line": 418
2026-06-13T11:54:08.6302308Z             },
2026-06-13T11:54:08.6302561Z             {
2026-06-13T11:54:08.6302933Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-13T11:54:08.6303209Z               "line": 442
2026-06-13T11:54:08.6303483Z             }
2026-06-13T11:54:08.6303741Z           ]
2026-06-13T11:54:08.6303999Z         }
2026-06-13T11:54:08.6304265Z       }
2026-06-13T11:54:08.6304522Z     },
2026-06-13T11:54:08.6304790Z     {
2026-06-13T11:54:08.6305114Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-13T11:54:08.6305587Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-13T11:54:08.6305883Z       "requiredStages": [
2026-06-13T11:54:08.6306152Z         "impl",
2026-06-13T11:54:08.6306435Z         "int"
2026-06-13T11:54:08.6306694Z       ],
2026-06-13T11:54:08.6306971Z       "stages": {
2026-06-13T11:54:08.6307247Z         "doc": {
2026-06-13T11:54:08.6307543Z           "complete": false,
2026-06-13T11:54:08.6307820Z           "evidence": []
2026-06-13T11:54:08.6308091Z         },
2026-06-13T11:54:08.6308362Z         "impl": {
2026-06-13T11:54:08.6308647Z           "complete": true,
2026-06-13T11:54:08.6308936Z           "evidence": [
2026-06-13T11:54:08.6309293Z             {
2026-06-13T11:54:08.6309666Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6309937Z               "line": 22
2026-06-13T11:54:08.6310214Z             }
2026-06-13T11:54:08.6310476Z           ]
2026-06-13T11:54:08.6310730Z         },
2026-06-13T11:54:08.6310993Z         "int": {
2026-06-13T11:54:08.6311273Z           "complete": true,
2026-06-13T11:54:08.6311553Z           "evidence": [
2026-06-13T11:54:08.6311810Z             {
2026-06-13T11:54:08.6312201Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-13T11:54:08.6312482Z               "line": 18
2026-06-13T11:54:08.6312755Z             }
2026-06-13T11:54:08.6313026Z           ]
2026-06-13T11:54:08.6313280Z         },
2026-06-13T11:54:08.6313552Z         "unit": {
2026-06-13T11:54:08.6313830Z           "complete": false,
2026-06-13T11:54:08.6314124Z           "evidence": []
2026-06-13T11:54:08.6314391Z         }
2026-06-13T11:54:08.6314754Z       }
2026-06-13T11:54:08.6315030Z     },
2026-06-13T11:54:08.6315274Z     {
2026-06-13T11:54:08.6315641Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-13T11:54:08.6316265Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-13T11:54:08.6316556Z       "requiredStages": [
2026-06-13T11:54:08.6316831Z         "impl",
2026-06-13T11:54:08.6317102Z         "unit"
2026-06-13T11:54:08.6317373Z       ],
2026-06-13T11:54:08.6317644Z       "stages": {
2026-06-13T11:54:08.6317911Z         "doc": {
2026-06-13T11:54:08.6318198Z           "complete": false,
2026-06-13T11:54:08.6318489Z           "evidence": []
2026-06-13T11:54:08.6318752Z         },
2026-06-13T11:54:08.6319203Z         "impl": {
2026-06-13T11:54:08.6319506Z           "complete": true,
2026-06-13T11:54:08.6319788Z           "evidence": [
2026-06-13T11:54:08.6320055Z             {
2026-06-13T11:54:08.6320446Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6320731Z               "line": 415
2026-06-13T11:54:08.6320994Z             },
2026-06-13T11:54:08.6321257Z             {
2026-06-13T11:54:08.6321633Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6321934Z               "line": 27
2026-06-13T11:54:08.6322199Z             }
2026-06-13T11:54:08.6322451Z           ]
2026-06-13T11:54:08.6322718Z         },
2026-06-13T11:54:08.6322987Z         "int": {
2026-06-13T11:54:08.6323276Z           "complete": false,
2026-06-13T11:54:08.6323554Z           "evidence": []
2026-06-13T11:54:08.6323816Z         },
2026-06-13T11:54:08.6324087Z         "unit": {
2026-06-13T11:54:08.6324381Z           "complete": true,
2026-06-13T11:54:08.6324651Z           "evidence": [
2026-06-13T11:54:08.6324932Z             {
2026-06-13T11:54:08.6325318Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6325609Z               "line": 940
2026-06-13T11:54:08.6325877Z             },
2026-06-13T11:54:08.6326153Z             {
2026-06-13T11:54:08.6326544Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6326839Z               "line": 181
2026-06-13T11:54:08.6327121Z             }
2026-06-13T11:54:08.6327382Z           ]
2026-06-13T11:54:08.6327666Z         }
2026-06-13T11:54:08.6327923Z       }
2026-06-13T11:54:08.6328204Z     },
2026-06-13T11:54:08.6328476Z     {
2026-06-13T11:54:08.6328839Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-13T11:54:08.6329445Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-13T11:54:08.6329744Z       "requiredStages": [
2026-06-13T11:54:08.6330028Z         "impl",
2026-06-13T11:54:08.6330291Z         "unit"
2026-06-13T11:54:08.6330558Z       ],
2026-06-13T11:54:08.6330839Z       "stages": {
2026-06-13T11:54:08.6331115Z         "doc": {
2026-06-13T11:54:08.6331420Z           "complete": false,
2026-06-13T11:54:08.6331711Z           "evidence": []
2026-06-13T11:54:08.6331988Z         },
2026-06-13T11:54:08.6332254Z         "impl": {
2026-06-13T11:54:08.6332569Z           "complete": true,
2026-06-13T11:54:08.6332855Z           "evidence": [
2026-06-13T11:54:08.6333137Z             {
2026-06-13T11:54:08.6333527Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.6333809Z               "line": 73
2026-06-13T11:54:08.6334081Z             },
2026-06-13T11:54:08.6334333Z             {
2026-06-13T11:54:08.6334730Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.6335013Z               "line": 941
2026-06-13T11:54:08.6335292Z             },
2026-06-13T11:54:08.6335559Z             {
2026-06-13T11:54:08.6335926Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6336203Z               "line": 20
2026-06-13T11:54:08.6336465Z             },
2026-06-13T11:54:08.6336732Z             {
2026-06-13T11:54:08.6337085Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6337375Z               "line": 100
2026-06-13T11:54:08.6337644Z             },
2026-06-13T11:54:08.6338012Z             {
2026-06-13T11:54:08.6338374Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-13T11:54:08.6338656Z               "line": 443
2026-06-13T11:54:08.6338927Z             },
2026-06-13T11:54:08.6339275Z             {
2026-06-13T11:54:08.6339666Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:54:08.6339952Z               "line": 68
2026-06-13T11:54:08.6340220Z             },
2026-06-13T11:54:08.6340495Z             {
2026-06-13T11:54:08.6340884Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:54:08.6341166Z               "line": 80
2026-06-13T11:54:08.6341423Z             }
2026-06-13T11:54:08.6341694Z           ]
2026-06-13T11:54:08.6342072Z         },
2026-06-13T11:54:08.6342338Z         "int": {
2026-06-13T11:54:08.6342634Z           "complete": true,
2026-06-13T11:54:08.6342919Z           "evidence": [
2026-06-13T11:54:08.6343195Z             {
2026-06-13T11:54:08.6343571Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-13T11:54:08.6343862Z               "line": 44
2026-06-13T11:54:08.6344139Z             }
2026-06-13T11:54:08.6344402Z           ]
2026-06-13T11:54:08.6344669Z         },
2026-06-13T11:54:08.6344955Z         "unit": {
2026-06-13T11:54:08.6345247Z           "complete": true,
2026-06-13T11:54:08.6345530Z           "evidence": [
2026-06-13T11:54:08.6345800Z             {
2026-06-13T11:54:08.6346191Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.6346477Z               "line": 1141
2026-06-13T11:54:08.6346748Z             },
2026-06-13T11:54:08.6347016Z             {
2026-06-13T11:54:08.6347407Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.6347697Z               "line": 1157
2026-06-13T11:54:08.6347969Z             },
2026-06-13T11:54:08.6348232Z             {
2026-06-13T11:54:08.6348610Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6348897Z               "line": 1069
2026-06-13T11:54:08.6349263Z             },
2026-06-13T11:54:08.6349526Z             {
2026-06-13T11:54:08.6349883Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6350174Z               "line": 152
2026-06-13T11:54:08.6350432Z             },
2026-06-13T11:54:08.6350695Z             {
2026-06-13T11:54:08.6351064Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6351339Z               "line": 175
2026-06-13T11:54:08.6351611Z             },
2026-06-13T11:54:08.6351868Z             {
2026-06-13T11:54:08.6352225Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6352507Z               "line": 186
2026-06-13T11:54:08.6352760Z             },
2026-06-13T11:54:08.6353041Z             {
2026-06-13T11:54:08.6353408Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6353712Z               "line": 202
2026-06-13T11:54:08.6353990Z             },
2026-06-13T11:54:08.6354252Z             {
2026-06-13T11:54:08.6354628Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-13T11:54:08.6354909Z               "line": 216
2026-06-13T11:54:08.6355182Z             },
2026-06-13T11:54:08.6355444Z             {
2026-06-13T11:54:08.6355835Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-13T11:54:08.6356119Z               "line": 137
2026-06-13T11:54:08.6356379Z             },
2026-06-13T11:54:08.6356646Z             {
2026-06-13T11:54:08.6356979Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.6357261Z               "line": 5988
2026-06-13T11:54:08.6357524Z             },
2026-06-13T11:54:08.6357796Z             {
2026-06-13T11:54:08.6358158Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T11:54:08.6358449Z               "line": 30
2026-06-13T11:54:08.6358717Z             },
2026-06-13T11:54:08.6359053Z             {
2026-06-13T11:54:08.6359418Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-13T11:54:08.6359691Z               "line": 73
2026-06-13T11:54:08.6359962Z             }
2026-06-13T11:54:08.6360363Z           ]
2026-06-13T11:54:08.6360630Z         }
2026-06-13T11:54:08.6360902Z       }
2026-06-13T11:54:08.6361163Z     },
2026-06-13T11:54:08.6361434Z     {
2026-06-13T11:54:08.6361751Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-13T11:54:08.6362563Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-13T11:54:08.6362873Z       "requiredStages": [
2026-06-13T11:54:08.6363144Z         "impl",
2026-06-13T11:54:08.6363420Z         "unit"
2026-06-13T11:54:08.6363682Z       ],
2026-06-13T11:54:08.6363968Z       "stages": {
2026-06-13T11:54:08.6364235Z         "doc": {
2026-06-13T11:54:08.6364531Z           "complete": true,
2026-06-13T11:54:08.6364921Z           "evidence": [
2026-06-13T11:54:08.6365179Z             {
2026-06-13T11:54:08.6365527Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6365822Z               "line": 133
2026-06-13T11:54:08.6366095Z             }
2026-06-13T11:54:08.6366372Z           ]
2026-06-13T11:54:08.6366641Z         },
2026-06-13T11:54:08.6366906Z         "impl": {
2026-06-13T11:54:08.6367202Z           "complete": true,
2026-06-13T11:54:08.6367483Z           "evidence": [
2026-06-13T11:54:08.6367736Z             {
2026-06-13T11:54:08.6368084Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.6368351Z               "line": 65
2026-06-13T11:54:08.6368619Z             },
2026-06-13T11:54:08.6368881Z             {
2026-06-13T11:54:08.6369306Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6369585Z               "line": 17
2026-06-13T11:54:08.6369854Z             },
2026-06-13T11:54:08.6370121Z             {
2026-06-13T11:54:08.6370523Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.6370803Z               "line": 146
2026-06-13T11:54:08.6371070Z             },
2026-06-13T11:54:08.6371327Z             {
2026-06-13T11:54:08.6371685Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.6371970Z               "line": 233
2026-06-13T11:54:08.6372246Z             },
2026-06-13T11:54:08.6372512Z             {
2026-06-13T11:54:08.6372869Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.6373151Z               "line": 334
2026-06-13T11:54:08.6373409Z             },
2026-06-13T11:54:08.6373665Z             {
2026-06-13T11:54:08.6374024Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.6374300Z               "line": 32
2026-06-13T11:54:08.6374566Z             },
2026-06-13T11:54:08.6374842Z             {
2026-06-13T11:54:08.6375171Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.6375444Z               "line": 4746
2026-06-13T11:54:08.6375720Z             },
2026-06-13T11:54:08.6375983Z             {
2026-06-13T11:54:08.6376312Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.6376593Z               "line": 5028
2026-06-13T11:54:08.6376859Z             }
2026-06-13T11:54:08.6377125Z           ]
2026-06-13T11:54:08.6377385Z         },
2026-06-13T11:54:08.6377653Z         "int": {
2026-06-13T11:54:08.6377939Z           "complete": false,
2026-06-13T11:54:08.6378334Z           "evidence": []
2026-06-13T11:54:08.6378592Z         },
2026-06-13T11:54:08.6378869Z         "unit": {
2026-06-13T11:54:08.6379236Z           "complete": true,
2026-06-13T11:54:08.6379513Z           "evidence": [
2026-06-13T11:54:08.6379770Z             {
2026-06-13T11:54:08.6380106Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6380380Z               "line": 94
2026-06-13T11:54:08.6380648Z             },
2026-06-13T11:54:08.6380911Z             {
2026-06-13T11:54:08.6381258Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6381535Z               "line": 111
2026-06-13T11:54:08.6381803Z             },
2026-06-13T11:54:08.6382060Z             {
2026-06-13T11:54:08.6382413Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6382697Z               "line": 124
2026-06-13T11:54:08.6383116Z             },
2026-06-13T11:54:08.6383387Z             {
2026-06-13T11:54:08.6383721Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6384002Z               "line": 134
2026-06-13T11:54:08.6384269Z             },
2026-06-13T11:54:08.6384536Z             {
2026-06-13T11:54:08.6384889Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6385165Z               "line": 144
2026-06-13T11:54:08.6385440Z             },
2026-06-13T11:54:08.6385699Z             {
2026-06-13T11:54:08.6386046Z               "path": "crates/spt-proto/src/id.rs",
2026-06-13T11:54:08.6386328Z               "line": 156
2026-06-13T11:54:08.6386595Z             },
2026-06-13T11:54:08.6386966Z             {
2026-06-13T11:54:08.6387366Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.6387652Z               "line": 746
2026-06-13T11:54:08.6387913Z             },
2026-06-13T11:54:08.6388179Z             {
2026-06-13T11:54:08.6388570Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.6388861Z               "line": 309
2026-06-13T11:54:08.6389200Z             }
2026-06-13T11:54:08.6389467Z           ]
2026-06-13T11:54:08.6389730Z         }
2026-06-13T11:54:08.6389991Z       }
2026-06-13T11:54:08.6390258Z     },
2026-06-13T11:54:08.6390515Z     {
2026-06-13T11:54:08.6390851Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-13T11:54:08.6391279Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-13T11:54:08.6391574Z       "requiredStages": [
2026-06-13T11:54:08.6391847Z         "impl",
2026-06-13T11:54:08.6392109Z         "unit"
2026-06-13T11:54:08.6392377Z       ],
2026-06-13T11:54:08.6392644Z       "stages": {
2026-06-13T11:54:08.6392931Z         "doc": {
2026-06-13T11:54:08.6393233Z           "complete": false,
2026-06-13T11:54:08.6393507Z           "evidence": []
2026-06-13T11:54:08.6393774Z         },
2026-06-13T11:54:08.6394047Z         "impl": {
2026-06-13T11:54:08.6394338Z           "complete": true,
2026-06-13T11:54:08.6394629Z           "evidence": [
2026-06-13T11:54:08.6394896Z             {
2026-06-13T11:54:08.6395267Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.6395550Z               "line": 128
2026-06-13T11:54:08.6395817Z             }
2026-06-13T11:54:08.6396076Z           ]
2026-06-13T11:54:08.6396339Z         },
2026-06-13T11:54:08.6396597Z         "int": {
2026-06-13T11:54:08.6396903Z           "complete": false,
2026-06-13T11:54:08.6397193Z           "evidence": []
2026-06-13T11:54:08.6397456Z         },
2026-06-13T11:54:08.6397723Z         "unit": {
2026-06-13T11:54:08.6398013Z           "complete": true,
2026-06-13T11:54:08.6398297Z           "evidence": [
2026-06-13T11:54:08.6398567Z             {
2026-06-13T11:54:08.6399025Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.6399316Z               "line": 205
2026-06-13T11:54:08.6399587Z             }
2026-06-13T11:54:08.6399854Z           ]
2026-06-13T11:54:08.6400117Z         }
2026-06-13T11:54:08.6400393Z       }
2026-06-13T11:54:08.6400657Z     },
2026-06-13T11:54:08.6400919Z     {
2026-06-13T11:54:08.6401275Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-13T11:54:08.6401754Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-13T11:54:08.6402054Z       "requiredStages": [
2026-06-13T11:54:08.6402322Z         "impl",
2026-06-13T11:54:08.6402594Z         "unit"
2026-06-13T11:54:08.6402852Z       ],
2026-06-13T11:54:08.6403133Z       "stages": {
2026-06-13T11:54:08.6403408Z         "doc": {
2026-06-13T11:54:08.6403703Z           "complete": false,
2026-06-13T11:54:08.6403987Z           "evidence": []
2026-06-13T11:54:08.6404245Z         },
2026-06-13T11:54:08.6404522Z         "impl": {
2026-06-13T11:54:08.6404817Z           "complete": true,
2026-06-13T11:54:08.6405104Z           "evidence": [
2026-06-13T11:54:08.6405370Z             {
2026-06-13T11:54:08.6405719Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6406004Z               "line": 246
2026-06-13T11:54:08.6406382Z             },
2026-06-13T11:54:08.6406651Z             {
2026-06-13T11:54:08.6407010Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6407290Z               "line": 257
2026-06-13T11:54:08.6407561Z             },
2026-06-13T11:54:08.6407820Z             {
2026-06-13T11:54:08.6408186Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6408453Z               "line": 275
2026-06-13T11:54:08.6408725Z             }
2026-06-13T11:54:08.6409057Z           ]
2026-06-13T11:54:08.6409319Z         },
2026-06-13T11:54:08.6409590Z         "int": {
2026-06-13T11:54:08.6409891Z           "complete": false,
2026-06-13T11:54:08.6410177Z           "evidence": []
2026-06-13T11:54:08.6410544Z         },
2026-06-13T11:54:08.6410801Z         "unit": {
2026-06-13T11:54:08.6411087Z           "complete": true,
2026-06-13T11:54:08.6411354Z           "evidence": [
2026-06-13T11:54:08.6411621Z             {
2026-06-13T11:54:08.6411975Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6412253Z               "line": 299
2026-06-13T11:54:08.6412515Z             },
2026-06-13T11:54:08.6412782Z             {
2026-06-13T11:54:08.6413135Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6413412Z               "line": 320
2026-06-13T11:54:08.6413683Z             },
2026-06-13T11:54:08.6413940Z             {
2026-06-13T11:54:08.6414291Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6414566Z               "line": 547
2026-06-13T11:54:08.6414838Z             },
2026-06-13T11:54:08.6415096Z             {
2026-06-13T11:54:08.6415453Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6415749Z               "line": 558
2026-06-13T11:54:08.6416016Z             },
2026-06-13T11:54:08.6416284Z             {
2026-06-13T11:54:08.6416637Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.6416913Z               "line": 571
2026-06-13T11:54:08.6417178Z             }
2026-06-13T11:54:08.6417436Z           ]
2026-06-13T11:54:08.6417703Z         }
2026-06-13T11:54:08.6417965Z       }
2026-06-13T11:54:08.6418219Z     },
2026-06-13T11:54:08.6418470Z     {
2026-06-13T11:54:08.6418809Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-13T11:54:08.6420823Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-13T11:54:08.6421109Z       "requiredStages": [
2026-06-13T11:54:08.6421386Z         "impl",
2026-06-13T11:54:08.6421657Z         "unit"
2026-06-13T11:54:08.6421910Z       ],
2026-06-13T11:54:08.6422186Z       "stages": {
2026-06-13T11:54:08.6422456Z         "doc": {
2026-06-13T11:54:08.6422741Z           "complete": false,
2026-06-13T11:54:08.6423023Z           "evidence": []
2026-06-13T11:54:08.6423284Z         },
2026-06-13T11:54:08.6423546Z         "impl": {
2026-06-13T11:54:08.6423847Z           "complete": true,
2026-06-13T11:54:08.6424118Z           "evidence": [
2026-06-13T11:54:08.6424390Z             {
2026-06-13T11:54:08.6424781Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6425060Z               "line": 759
2026-06-13T11:54:08.6425322Z             }
2026-06-13T11:54:08.6425580Z           ]
2026-06-13T11:54:08.6425851Z         },
2026-06-13T11:54:08.6426118Z         "int": {
2026-06-13T11:54:08.6426423Z           "complete": false,
2026-06-13T11:54:08.6426709Z           "evidence": []
2026-06-13T11:54:08.6426962Z         },
2026-06-13T11:54:08.6427230Z         "unit": {
2026-06-13T11:54:08.6427517Z           "complete": true,
2026-06-13T11:54:08.6427800Z           "evidence": [
2026-06-13T11:54:08.6428062Z             {
2026-06-13T11:54:08.6428455Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6428740Z               "line": 873
2026-06-13T11:54:08.6429084Z             }
2026-06-13T11:54:08.6429355Z           ]
2026-06-13T11:54:08.6429728Z         }
2026-06-13T11:54:08.6429988Z       }
2026-06-13T11:54:08.6430247Z     },
2026-06-13T11:54:08.6430497Z     {
2026-06-13T11:54:08.6430825Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-13T11:54:08.6431516Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-13T11:54:08.6431826Z       "requiredStages": [
2026-06-13T11:54:08.6432098Z         "impl",
2026-06-13T11:54:08.6432366Z         "unit"
2026-06-13T11:54:08.6432614Z       ],
2026-06-13T11:54:08.6432893Z       "stages": {
2026-06-13T11:54:08.6433167Z         "doc": {
2026-06-13T11:54:08.6433458Z           "complete": false,
2026-06-13T11:54:08.6433740Z           "evidence": []
2026-06-13T11:54:08.6434101Z         },
2026-06-13T11:54:08.6434379Z         "impl": {
2026-06-13T11:54:08.6434659Z           "complete": true,
2026-06-13T11:54:08.6434942Z           "evidence": [
2026-06-13T11:54:08.6435205Z             {
2026-06-13T11:54:08.6435555Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6435839Z               "line": 14
2026-06-13T11:54:08.6436096Z             },
2026-06-13T11:54:08.6436368Z             {
2026-06-13T11:54:08.6436711Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.6437002Z               "line": 440
2026-06-13T11:54:08.6437265Z             }
2026-06-13T11:54:08.6437522Z           ]
2026-06-13T11:54:08.6437781Z         },
2026-06-13T11:54:08.6438053Z         "int": {
2026-06-13T11:54:08.6438346Z           "complete": false,
2026-06-13T11:54:08.6438627Z           "evidence": []
2026-06-13T11:54:08.6438885Z         },
2026-06-13T11:54:08.6439228Z         "unit": {
2026-06-13T11:54:08.6439519Z           "complete": true,
2026-06-13T11:54:08.6439810Z           "evidence": [
2026-06-13T11:54:08.6440068Z             {
2026-06-13T11:54:08.6440420Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6440690Z               "line": 130
2026-06-13T11:54:08.6440956Z             },
2026-06-13T11:54:08.6441222Z             {
2026-06-13T11:54:08.6441567Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6441852Z               "line": 138
2026-06-13T11:54:08.6442114Z             },
2026-06-13T11:54:08.6442381Z             {
2026-06-13T11:54:08.6442730Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6443020Z               "line": 146
2026-06-13T11:54:08.6443283Z             },
2026-06-13T11:54:08.6443539Z             {
2026-06-13T11:54:08.6443886Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6444167Z               "line": 154
2026-06-13T11:54:08.6444429Z             },
2026-06-13T11:54:08.6444685Z             {
2026-06-13T11:54:08.6445044Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6445325Z               "line": 162
2026-06-13T11:54:08.6445582Z             },
2026-06-13T11:54:08.6445840Z             {
2026-06-13T11:54:08.6446185Z               "path": "crates/spt/src/api/auth.rs",
2026-06-13T11:54:08.6446472Z               "line": 170
2026-06-13T11:54:08.6446734Z             }
2026-06-13T11:54:08.6446996Z           ]
2026-06-13T11:54:08.6447257Z         }
2026-06-13T11:54:08.6447501Z       }
2026-06-13T11:54:08.6447758Z     },
2026-06-13T11:54:08.6448007Z     {
2026-06-13T11:54:08.6448355Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-13T11:54:08.6451199Z       "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-13T11:54:08.6451492Z       "requiredStages": [
2026-06-13T11:54:08.6451769Z         "impl",
2026-06-13T11:54:08.6452031Z         "unit"
2026-06-13T11:54:08.6452293Z       ],
2026-06-13T11:54:08.6452556Z       "stages": {
2026-06-13T11:54:08.6452818Z         "doc": {
2026-06-13T11:54:08.6453105Z           "complete": false,
2026-06-13T11:54:08.6453500Z           "evidence": []
2026-06-13T11:54:08.6453768Z         },
2026-06-13T11:54:08.6454032Z         "impl": {
2026-06-13T11:54:08.6454311Z           "complete": true,
2026-06-13T11:54:08.6454587Z           "evidence": [
2026-06-13T11:54:08.6454850Z             {
2026-06-13T11:54:08.6455308Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6455585Z               "line": 34
2026-06-13T11:54:08.6455847Z             }
2026-06-13T11:54:08.6456109Z           ]
2026-06-13T11:54:08.6456377Z         },
2026-06-13T11:54:08.6456632Z         "int": {
2026-06-13T11:54:08.6456931Z           "complete": false,
2026-06-13T11:54:08.6457216Z           "evidence": []
2026-06-13T11:54:08.6457478Z         },
2026-06-13T11:54:08.6457851Z         "unit": {
2026-06-13T11:54:08.6458132Z           "complete": true,
2026-06-13T11:54:08.6458418Z           "evidence": [
2026-06-13T11:54:08.6458680Z             {
2026-06-13T11:54:08.6459216Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6459505Z               "line": 188
2026-06-13T11:54:08.6459757Z             },
2026-06-13T11:54:08.6460014Z             {
2026-06-13T11:54:08.6460444Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6460715Z               "line": 200
2026-06-13T11:54:08.6460963Z             },
2026-06-13T11:54:08.6461235Z             {
2026-06-13T11:54:08.6461682Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6461961Z               "line": 211
2026-06-13T11:54:08.6462214Z             },
2026-06-13T11:54:08.6462477Z             {
2026-06-13T11:54:08.6462915Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6463206Z               "line": 253
2026-06-13T11:54:08.6463478Z             },
2026-06-13T11:54:08.6463740Z             {
2026-06-13T11:54:08.6464179Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6464464Z               "line": 277
2026-06-13T11:54:08.6464734Z             },
2026-06-13T11:54:08.6469208Z             {
2026-06-13T11:54:08.6469705Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6469997Z               "line": 300
2026-06-13T11:54:08.6470269Z             },
2026-06-13T11:54:08.6470537Z             {
2026-06-13T11:54:08.6470990Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-13T11:54:08.6471276Z               "line": 316
2026-06-13T11:54:08.6471542Z             }
2026-06-13T11:54:08.6471814Z           ]
2026-06-13T11:54:08.6472082Z         }
2026-06-13T11:54:08.6472343Z       }
2026-06-13T11:54:08.6472603Z     },
2026-06-13T11:54:08.6472869Z     {
2026-06-13T11:54:08.6473233Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-13T11:54:08.6475048Z       "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-13T11:54:08.6475360Z       "requiredStages": [
2026-06-13T11:54:08.6475623Z         "impl",
2026-06-13T11:54:08.6475904Z         "unit"
2026-06-13T11:54:08.6476167Z       ],
2026-06-13T11:54:08.6476443Z       "stages": {
2026-06-13T11:54:08.6476709Z         "doc": {
2026-06-13T11:54:08.6477010Z           "complete": false,
2026-06-13T11:54:08.6477296Z           "evidence": []
2026-06-13T11:54:08.6477563Z         },
2026-06-13T11:54:08.6477837Z         "impl": {
2026-06-13T11:54:08.6478138Z           "complete": true,
2026-06-13T11:54:08.6478547Z           "evidence": [
2026-06-13T11:54:08.6478809Z             {
2026-06-13T11:54:08.6479281Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6479577Z               "line": 29
2026-06-13T11:54:08.6479844Z             },
2026-06-13T11:54:08.6480101Z             {
2026-06-13T11:54:08.6480463Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6480749Z               "line": 174
2026-06-13T11:54:08.6481192Z             },
2026-06-13T11:54:08.6481468Z             {
2026-06-13T11:54:08.6481841Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6482122Z               "line": 194
2026-06-13T11:54:08.6482384Z             },
2026-06-13T11:54:08.6482651Z             {
2026-06-13T11:54:08.6483024Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6483306Z               "line": 222
2026-06-13T11:54:08.6483569Z             }
2026-06-13T11:54:08.6483836Z           ]
2026-06-13T11:54:08.6484093Z         },
2026-06-13T11:54:08.6484369Z         "int": {
2026-06-13T11:54:08.6484660Z           "complete": false,
2026-06-13T11:54:08.6484937Z           "evidence": []
2026-06-13T11:54:08.6485309Z         },
2026-06-13T11:54:08.6485589Z         "unit": {
2026-06-13T11:54:08.6485877Z           "complete": true,
2026-06-13T11:54:08.6486145Z           "evidence": [
2026-06-13T11:54:08.6486422Z             {
2026-06-13T11:54:08.6486788Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6487070Z               "line": 329
2026-06-13T11:54:08.6487328Z             },
2026-06-13T11:54:08.6487594Z             {
2026-06-13T11:54:08.6487967Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6488246Z               "line": 344
2026-06-13T11:54:08.6488511Z             },
2026-06-13T11:54:08.6488768Z             {
2026-06-13T11:54:08.6489217Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6489488Z               "line": 417
2026-06-13T11:54:08.6489755Z             },
2026-06-13T11:54:08.6490023Z             {
2026-06-13T11:54:08.6490385Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6490675Z               "line": 433
2026-06-13T11:54:08.6490929Z             },
2026-06-13T11:54:08.6491185Z             {
2026-06-13T11:54:08.6491558Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6491839Z               "line": 492
2026-06-13T11:54:08.6492086Z             },
2026-06-13T11:54:08.6492348Z             {
2026-06-13T11:54:08.6492711Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6492987Z               "line": 506
2026-06-13T11:54:08.6493244Z             },
2026-06-13T11:54:08.6493505Z             {
2026-06-13T11:54:08.6493866Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6494148Z               "line": 517
2026-06-13T11:54:08.6494411Z             },
2026-06-13T11:54:08.6494682Z             {
2026-06-13T11:54:08.6495049Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.6495326Z               "line": 528
2026-06-13T11:54:08.6495593Z             }
2026-06-13T11:54:08.6495850Z           ]
2026-06-13T11:54:08.6496121Z         }
2026-06-13T11:54:08.6496377Z       }
2026-06-13T11:54:08.6496643Z     },
2026-06-13T11:54:08.6496890Z     {
2026-06-13T11:54:08.6497249Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-13T11:54:08.6499390Z       "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-13T11:54:08.6499691Z       "requiredStages": [
2026-06-13T11:54:08.6499963Z         "impl",
2026-06-13T11:54:08.6500220Z         "unit"
2026-06-13T11:54:08.6500484Z       ],
2026-06-13T11:54:08.6500755Z       "stages": {
2026-06-13T11:54:08.6501021Z         "doc": {
2026-06-13T11:54:08.6501317Z           "complete": false,
2026-06-13T11:54:08.6501598Z           "evidence": []
2026-06-13T11:54:08.6501855Z         },
2026-06-13T11:54:08.6502127Z         "impl": {
2026-06-13T11:54:08.6502408Z           "complete": true,
2026-06-13T11:54:08.6502705Z           "evidence": [
2026-06-13T11:54:08.6502961Z             {
2026-06-13T11:54:08.6503381Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6503659Z               "line": 27
2026-06-13T11:54:08.6503928Z             },
2026-06-13T11:54:08.6504183Z             {
2026-06-13T11:54:08.6504708Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6504995Z               "line": 110
2026-06-13T11:54:08.6505266Z             },
2026-06-13T11:54:08.6505523Z             {
2026-06-13T11:54:08.6505929Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6506216Z               "line": 153
2026-06-13T11:54:08.6506477Z             },
2026-06-13T11:54:08.6506747Z             {
2026-06-13T11:54:08.6507170Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6507445Z               "line": 182
2026-06-13T11:54:08.6507717Z             },
2026-06-13T11:54:08.6507976Z             {
2026-06-13T11:54:08.6508576Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6508858Z               "line": 31
2026-06-13T11:54:08.6509219Z             },
2026-06-13T11:54:08.6509500Z             {
2026-06-13T11:54:08.6509979Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6510275Z               "line": 113
2026-06-13T11:54:08.6510532Z             },
2026-06-13T11:54:08.6510804Z             {
2026-06-13T11:54:08.6511253Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6511543Z               "line": 138
2026-06-13T11:54:08.6511815Z             }
2026-06-13T11:54:08.6512077Z           ]
2026-06-13T11:54:08.6512344Z         },
2026-06-13T11:54:08.6512615Z         "int": {
2026-06-13T11:54:08.6512916Z           "complete": false,
2026-06-13T11:54:08.6513197Z           "evidence": []
2026-06-13T11:54:08.6513473Z         },
2026-06-13T11:54:08.6513750Z         "unit": {
2026-06-13T11:54:08.6514055Z           "complete": true,
2026-06-13T11:54:08.6514355Z           "evidence": [
2026-06-13T11:54:08.6514625Z             {
2026-06-13T11:54:08.6515048Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6515330Z               "line": 261
2026-06-13T11:54:08.6515616Z             },
2026-06-13T11:54:08.6515883Z             {
2026-06-13T11:54:08.6516284Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6516579Z               "line": 276
2026-06-13T11:54:08.6516847Z             },
2026-06-13T11:54:08.6517114Z             {
2026-06-13T11:54:08.6517530Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6517821Z               "line": 293
2026-06-13T11:54:08.6518112Z             },
2026-06-13T11:54:08.6518383Z             {
2026-06-13T11:54:08.6518807Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6519164Z               "line": 310
2026-06-13T11:54:08.6519442Z             },
2026-06-13T11:54:08.6519714Z             {
2026-06-13T11:54:08.6520148Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6520440Z               "line": 327
2026-06-13T11:54:08.6520692Z             },
2026-06-13T11:54:08.6520970Z             {
2026-06-13T11:54:08.6521398Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.6521693Z               "line": 366
2026-06-13T11:54:08.6521952Z             },
2026-06-13T11:54:08.6522243Z             {
2026-06-13T11:54:08.6522703Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6522976Z               "line": 179
2026-06-13T11:54:08.6523271Z             },
2026-06-13T11:54:08.6523534Z             {
2026-06-13T11:54:08.6524009Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6524319Z               "line": 194
2026-06-13T11:54:08.6524601Z             },
2026-06-13T11:54:08.6524877Z             {
2026-06-13T11:54:08.6525350Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6525646Z               "line": 204
2026-06-13T11:54:08.6525913Z             },
2026-06-13T11:54:08.6526186Z             {
2026-06-13T11:54:08.6526805Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6527096Z               "line": 259
2026-06-13T11:54:08.6527369Z             },
2026-06-13T11:54:08.6527636Z             {
2026-06-13T11:54:08.6528118Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6528400Z               "line": 269
2026-06-13T11:54:08.6528691Z             },
2026-06-13T11:54:08.6529034Z             {
2026-06-13T11:54:08.6529486Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.6529782Z               "line": 283
2026-06-13T11:54:08.6530044Z             }
2026-06-13T11:54:08.6530312Z           ]
2026-06-13T11:54:08.6530563Z         }
2026-06-13T11:54:08.6530818Z       }
2026-06-13T11:54:08.6531210Z     },
2026-06-13T11:54:08.6531472Z     {
2026-06-13T11:54:08.6531835Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-13T11:54:08.6532441Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-13T11:54:08.6532760Z       "requiredStages": [],
2026-06-13T11:54:08.6533036Z       "stages": {
2026-06-13T11:54:08.6533316Z         "doc": {
2026-06-13T11:54:08.6533621Z           "complete": false,
2026-06-13T11:54:08.6533902Z           "evidence": []
2026-06-13T11:54:08.6534170Z         },
2026-06-13T11:54:08.6534437Z         "impl": {
2026-06-13T11:54:08.6534738Z           "complete": false,
2026-06-13T11:54:08.6535014Z           "evidence": []
2026-06-13T11:54:08.6535295Z         },
2026-06-13T11:54:08.6535575Z         "int": {
2026-06-13T11:54:08.6535873Z           "complete": false,
2026-06-13T11:54:08.6536168Z           "evidence": []
2026-06-13T11:54:08.6536436Z         },
2026-06-13T11:54:08.6536722Z         "unit": {
2026-06-13T11:54:08.6537027Z           "complete": false,
2026-06-13T11:54:08.6537356Z           "evidence": []
2026-06-13T11:54:08.6537638Z         }
2026-06-13T11:54:08.6537901Z       }
2026-06-13T11:54:08.6538182Z     },
2026-06-13T11:54:08.6538446Z     {
2026-06-13T11:54:08.6538855Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-13T11:54:08.6541470Z       "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-13T11:54:08.6541780Z       "requiredStages": [
2026-06-13T11:54:08.6542066Z         "impl",
2026-06-13T11:54:08.6542337Z         "unit"
2026-06-13T11:54:08.6542656Z       ],
2026-06-13T11:54:08.6542952Z       "stages": {
2026-06-13T11:54:08.6543233Z         "doc": {
2026-06-13T11:54:08.6543553Z           "complete": false,
2026-06-13T11:54:08.6543852Z           "evidence": []
2026-06-13T11:54:08.6544205Z         },
2026-06-13T11:54:08.6544505Z         "impl": {
2026-06-13T11:54:08.6544805Z           "complete": true,
2026-06-13T11:54:08.6545083Z           "evidence": [
2026-06-13T11:54:08.6545359Z             {
2026-06-13T11:54:08.6545750Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6546045Z               "line": 26
2026-06-13T11:54:08.6546334Z             },
2026-06-13T11:54:08.6546601Z             {
2026-06-13T11:54:08.6546996Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6547268Z               "line": 95
2026-06-13T11:54:08.6547531Z             },
2026-06-13T11:54:08.6547793Z             {
2026-06-13T11:54:08.6548175Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6548471Z               "line": 166
2026-06-13T11:54:08.6548733Z             },
2026-06-13T11:54:08.6549131Z             {
2026-06-13T11:54:08.6549511Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6549797Z               "line": 19
2026-06-13T11:54:08.6550093Z             },
2026-06-13T11:54:08.6550359Z             {
2026-06-13T11:54:08.6550755Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6551033Z               "line": 50
2026-06-13T11:54:08.6551309Z             },
2026-06-13T11:54:08.6551881Z             {
2026-06-13T11:54:08.6552249Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:54:08.6552553Z               "line": 18
2026-06-13T11:54:08.6552816Z             },
2026-06-13T11:54:08.6553093Z             {
2026-06-13T11:54:08.6553465Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:54:08.6553760Z               "line": 71
2026-06-13T11:54:08.6554041Z             },
2026-06-13T11:54:08.6554304Z             {
2026-06-13T11:54:08.6554689Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.6554971Z               "line": 79
2026-06-13T11:54:08.6555243Z             }
2026-06-13T11:54:08.6555505Z           ]
2026-06-13T11:54:08.6555781Z         },
2026-06-13T11:54:08.6556290Z         "int": {
2026-06-13T11:54:08.6556596Z           "complete": false,
2026-06-13T11:54:08.6556908Z           "evidence": []
2026-06-13T11:54:08.6557180Z         },
2026-06-13T11:54:08.6557485Z         "unit": {
2026-06-13T11:54:08.6557786Z           "complete": true,
2026-06-13T11:54:08.6558086Z           "evidence": [
2026-06-13T11:54:08.6558353Z             {
2026-06-13T11:54:08.6558745Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6559148Z               "line": 289
2026-06-13T11:54:08.6559416Z             },
2026-06-13T11:54:08.6559710Z             {
2026-06-13T11:54:08.6560109Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6560400Z               "line": 308
2026-06-13T11:54:08.6560676Z             },
2026-06-13T11:54:08.6560934Z             {
2026-06-13T11:54:08.6561325Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6561617Z               "line": 336
2026-06-13T11:54:08.6561917Z             },
2026-06-13T11:54:08.6562177Z             {
2026-06-13T11:54:08.6562580Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6562872Z               "line": 399
2026-06-13T11:54:08.6563133Z             },
2026-06-13T11:54:08.6563409Z             {
2026-06-13T11:54:08.6563801Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6564097Z               "line": 410
2026-06-13T11:54:08.6564363Z             },
2026-06-13T11:54:08.6564645Z             {
2026-06-13T11:54:08.6565049Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6565329Z               "line": 441
2026-06-13T11:54:08.6565607Z             },
2026-06-13T11:54:08.6565865Z             {
2026-06-13T11:54:08.6566269Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.6566556Z               "line": 452
2026-06-13T11:54:08.6566860Z             },
2026-06-13T11:54:08.6567184Z             {
2026-06-13T11:54:08.6567567Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6567868Z               "line": 77
2026-06-13T11:54:08.6568140Z             },
2026-06-13T11:54:08.6568427Z             {
2026-06-13T11:54:08.6568798Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6569170Z               "line": 97
2026-06-13T11:54:08.6569442Z             },
2026-06-13T11:54:08.6569713Z             {
2026-06-13T11:54:08.6570099Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6570368Z               "line": 112
2026-06-13T11:54:08.6570631Z             },
2026-06-13T11:54:08.6570894Z             {
2026-06-13T11:54:08.6571274Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6571561Z               "line": 123
2026-06-13T11:54:08.6571828Z             },
2026-06-13T11:54:08.6572100Z             {
2026-06-13T11:54:08.6572477Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6572765Z               "line": 130
2026-06-13T11:54:08.6573039Z             },
2026-06-13T11:54:08.6573307Z             {
2026-06-13T11:54:08.6573698Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-13T11:54:08.6573979Z               "line": 145
2026-06-13T11:54:08.6574255Z             },
2026-06-13T11:54:08.6574514Z             {
2026-06-13T11:54:08.6575077Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:54:08.6575378Z               "line": 115
2026-06-13T11:54:08.6575647Z             },
2026-06-13T11:54:08.6575923Z             {
2026-06-13T11:54:08.6576287Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:54:08.6576582Z               "line": 130
2026-06-13T11:54:08.6576858Z             },
2026-06-13T11:54:08.6577140Z             {
2026-06-13T11:54:08.6577502Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.6577792Z               "line": 420
2026-06-13T11:54:08.6578062Z             }
2026-06-13T11:54:08.6578461Z           ]
2026-06-13T11:54:08.6578733Z         }
2026-06-13T11:54:08.6579192Z       }
2026-06-13T11:54:08.6579473Z     },
2026-06-13T11:54:08.6579749Z     {
2026-06-13T11:54:08.6580098Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-13T11:54:08.6582746Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-13T11:54:08.6583047Z       "requiredStages": [
2026-06-13T11:54:08.6583330Z         "doc",
2026-06-13T11:54:08.6583614Z         "impl",
2026-06-13T11:54:08.6583881Z         "unit"
2026-06-13T11:54:08.6584162Z       ],
2026-06-13T11:54:08.6584435Z       "stages": {
2026-06-13T11:54:08.6584706Z         "doc": {
2026-06-13T11:54:08.6585007Z           "complete": true,
2026-06-13T11:54:08.6585299Z           "evidence": [
2026-06-13T11:54:08.6585561Z             {
2026-06-13T11:54:08.6585914Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6586227Z               "line": 360
2026-06-13T11:54:08.6586493Z             }
2026-06-13T11:54:08.6586765Z           ]
2026-06-13T11:54:08.6587036Z         },
2026-06-13T11:54:08.6587318Z         "impl": {
2026-06-13T11:54:08.6587609Z           "complete": true,
2026-06-13T11:54:08.6587919Z           "evidence": [
2026-06-13T11:54:08.6588205Z             {
2026-06-13T11:54:08.6588574Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6588875Z               "line": 180
2026-06-13T11:54:08.6589227Z             },
2026-06-13T11:54:08.6589504Z             {
2026-06-13T11:54:08.6589885Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6590166Z               "line": 284
2026-06-13T11:54:08.6590443Z             },
2026-06-13T11:54:08.6590707Z             {
2026-06-13T11:54:08.6591087Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6591367Z               "line": 496
2026-06-13T11:54:08.6591646Z             },
2026-06-13T11:54:08.6591922Z             {
2026-06-13T11:54:08.6592286Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6592575Z               "line": 511
2026-06-13T11:54:08.6592847Z             },
2026-06-13T11:54:08.6593124Z             {
2026-06-13T11:54:08.6593530Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6593852Z               "line": 1038
2026-06-13T11:54:08.6594146Z             },
2026-06-13T11:54:08.6594412Z             {
2026-06-13T11:54:08.6594808Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6595089Z               "line": 443
2026-06-13T11:54:08.6595357Z             },
2026-06-13T11:54:08.6595619Z             {
2026-06-13T11:54:08.6596010Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6596296Z               "line": 590
2026-06-13T11:54:08.6596563Z             },
2026-06-13T11:54:08.6596830Z             {
2026-06-13T11:54:08.6597221Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6597516Z               "line": 731
2026-06-13T11:54:08.6597779Z             }
2026-06-13T11:54:08.6598060Z           ]
2026-06-13T11:54:08.6598337Z         },
2026-06-13T11:54:08.6598603Z         "int": {
2026-06-13T11:54:08.6598907Z           "complete": false,
2026-06-13T11:54:08.6599454Z           "evidence": []
2026-06-13T11:54:08.6599731Z         },
2026-06-13T11:54:08.6600003Z         "unit": {
2026-06-13T11:54:08.6600303Z           "complete": true,
2026-06-13T11:54:08.6600598Z           "evidence": [
2026-06-13T11:54:08.6600859Z             {
2026-06-13T11:54:08.6601262Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.6601547Z               "line": 1155
2026-06-13T11:54:08.6601822Z             },
2026-06-13T11:54:08.6602091Z             {
2026-06-13T11:54:08.6602531Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-13T11:54:08.6602816Z               "line": 30
2026-06-13T11:54:08.6603087Z             }
2026-06-13T11:54:08.6603495Z           ]
2026-06-13T11:54:08.6603761Z         }
2026-06-13T11:54:08.6604028Z       }
2026-06-13T11:54:08.6604417Z     },
2026-06-13T11:54:08.6604826Z     {
2026-06-13T11:54:08.6605325Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-13T11:54:08.6606199Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-13T11:54:08.6606517Z       "requiredStages": [
2026-06-13T11:54:08.6606790Z         "impl",
2026-06-13T11:54:08.6607086Z         "unit"
2026-06-13T11:54:08.6607361Z       ],
2026-06-13T11:54:08.6607643Z       "stages": {
2026-06-13T11:54:08.6607923Z         "doc": {
2026-06-13T11:54:08.6608214Z           "complete": true,
2026-06-13T11:54:08.6608495Z           "evidence": [
2026-06-13T11:54:08.6608758Z             {
2026-06-13T11:54:08.6609187Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6609468Z               "line": 139
2026-06-13T11:54:08.6609737Z             }
2026-06-13T11:54:08.6610014Z           ]
2026-06-13T11:54:08.6610281Z         },
2026-06-13T11:54:08.6610558Z         "impl": {
2026-06-13T11:54:08.6610854Z           "complete": true,
2026-06-13T11:54:08.6611144Z           "evidence": [
2026-06-13T11:54:08.6611415Z             {
2026-06-13T11:54:08.6611774Z               "path": "crates/spt-store/src/db.rs",
2026-06-13T11:54:08.6612069Z               "line": 29
2026-06-13T11:54:08.6612335Z             },
2026-06-13T11:54:08.6612604Z             {
2026-06-13T11:54:08.6612971Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.6613262Z               "line": 101
2026-06-13T11:54:08.6613525Z             },
2026-06-13T11:54:08.6613801Z             {
2026-06-13T11:54:08.6614187Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6614469Z               "line": 30
2026-06-13T11:54:08.6614750Z             },
2026-06-13T11:54:08.6615021Z             {
2026-06-13T11:54:08.6615386Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6615672Z               "line": 48
2026-06-13T11:54:08.6615929Z             }
2026-06-13T11:54:08.6616191Z           ]
2026-06-13T11:54:08.6616454Z         },
2026-06-13T11:54:08.6616725Z         "int": {
2026-06-13T11:54:08.6617026Z           "complete": false,
2026-06-13T11:54:08.6617313Z           "evidence": []
2026-06-13T11:54:08.6617571Z         },
2026-06-13T11:54:08.6617844Z         "unit": {
2026-06-13T11:54:08.6618140Z           "complete": true,
2026-06-13T11:54:08.6618416Z           "evidence": [
2026-06-13T11:54:08.6618694Z             {
2026-06-13T11:54:08.6619167Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6619467Z               "line": 162
2026-06-13T11:54:08.6619723Z             }
2026-06-13T11:54:08.6619994Z           ]
2026-06-13T11:54:08.6620269Z         }
2026-06-13T11:54:08.6620526Z       }
2026-06-13T11:54:08.6620803Z     },
2026-06-13T11:54:08.6621065Z     {
2026-06-13T11:54:08.6621428Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-13T11:54:08.6622697Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-13T11:54:08.6622990Z       "requiredStages": [
2026-06-13T11:54:08.6623273Z         "doc",
2026-06-13T11:54:08.6623531Z         "impl",
2026-06-13T11:54:08.6624051Z         "unit"
2026-06-13T11:54:08.6624329Z       ],
2026-06-13T11:54:08.6624610Z       "stages": {
2026-06-13T11:54:08.6624891Z         "doc": {
2026-06-13T11:54:08.6625181Z           "complete": true,
2026-06-13T11:54:08.6625461Z           "evidence": [
2026-06-13T11:54:08.6625726Z             {
2026-06-13T11:54:08.6626084Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6626370Z               "line": 151
2026-06-13T11:54:08.6626656Z             }
2026-06-13T11:54:08.6626933Z           ]
2026-06-13T11:54:08.6627187Z         },
2026-06-13T11:54:08.6627477Z         "impl": {
2026-06-13T11:54:08.6627763Z           "complete": true,
2026-06-13T11:54:08.6628058Z           "evidence": [
2026-06-13T11:54:08.6628463Z             {
2026-06-13T11:54:08.6628859Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6629245Z               "line": 22
2026-06-13T11:54:08.6629512Z             }
2026-06-13T11:54:08.6629788Z           ]
2026-06-13T11:54:08.6630065Z         },
2026-06-13T11:54:08.6630346Z         "int": {
2026-06-13T11:54:08.6630640Z           "complete": false,
2026-06-13T11:54:08.6630933Z           "evidence": []
2026-06-13T11:54:08.6631205Z         },
2026-06-13T11:54:08.6631477Z         "unit": {
2026-06-13T11:54:08.6631768Z           "complete": true,
2026-06-13T11:54:08.6632045Z           "evidence": [
2026-06-13T11:54:08.6632322Z             {
2026-06-13T11:54:08.6632698Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6632985Z               "line": 298
2026-06-13T11:54:08.6633262Z             }
2026-06-13T11:54:08.6633526Z           ]
2026-06-13T11:54:08.6633838Z         }
2026-06-13T11:54:08.6634105Z       }
2026-06-13T11:54:08.6634387Z     },
2026-06-13T11:54:08.6634645Z     {
2026-06-13T11:54:08.6635021Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-13T11:54:08.6636390Z       "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-13T11:54:08.6636696Z       "requiredStages": [
2026-06-13T11:54:08.6636973Z         "impl",
2026-06-13T11:54:08.6637235Z         "unit"
2026-06-13T11:54:08.6637507Z       ],
2026-06-13T11:54:08.6637779Z       "stages": {
2026-06-13T11:54:08.6638057Z         "doc": {
2026-06-13T11:54:08.6638357Z           "complete": true,
2026-06-13T11:54:08.6638633Z           "evidence": [
2026-06-13T11:54:08.6638903Z             {
2026-06-13T11:54:08.6639313Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6639609Z               "line": 145
2026-06-13T11:54:08.6639871Z             }
2026-06-13T11:54:08.6640138Z           ]
2026-06-13T11:54:08.6640405Z         },
2026-06-13T11:54:08.6640701Z         "impl": {
2026-06-13T11:54:08.6640997Z           "complete": true,
2026-06-13T11:54:08.6641276Z           "evidence": [
2026-06-13T11:54:08.6641546Z             {
2026-06-13T11:54:08.6641952Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:54:08.6642253Z               "line": 160
2026-06-13T11:54:08.6642572Z             },
2026-06-13T11:54:08.6642834Z             {
2026-06-13T11:54:08.6643244Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6643535Z               "line": 200
2026-06-13T11:54:08.6643803Z             },
2026-06-13T11:54:08.6644067Z             {
2026-06-13T11:54:08.6644456Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.6644747Z               "line": 298
2026-06-13T11:54:08.6645009Z             },
2026-06-13T11:54:08.6645276Z             {
2026-06-13T11:54:08.6645629Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:54:08.6645920Z               "line": 20
2026-06-13T11:54:08.6646191Z             }
2026-06-13T11:54:08.6646469Z           ]
2026-06-13T11:54:08.6646763Z         },
2026-06-13T11:54:08.6647052Z         "int": {
2026-06-13T11:54:08.6647372Z           "complete": false,
2026-06-13T11:54:08.6647658Z           "evidence": []
2026-06-13T11:54:08.6648076Z         },
2026-06-13T11:54:08.6648349Z         "unit": {
2026-06-13T11:54:08.6648631Z           "complete": true,
2026-06-13T11:54:08.6648917Z           "evidence": [
2026-06-13T11:54:08.6649251Z             {
2026-06-13T11:54:08.6649665Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6649936Z               "line": 885
2026-06-13T11:54:08.6650198Z             },
2026-06-13T11:54:08.6650459Z             {
2026-06-13T11:54:08.6650861Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T11:54:08.6651138Z               "line": 88
2026-06-13T11:54:08.6651404Z             },
2026-06-13T11:54:08.6651675Z             {
2026-06-13T11:54:08.6652053Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.6652493Z               "line": 819
2026-06-13T11:54:08.6652750Z             },
2026-06-13T11:54:08.6653021Z             {
2026-06-13T11:54:08.6653414Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.6653704Z               "line": 838
2026-06-13T11:54:08.6653970Z             },
2026-06-13T11:54:08.6654233Z             {
2026-06-13T11:54:08.6654637Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.6654920Z               "line": 279
2026-06-13T11:54:08.6655193Z             },
2026-06-13T11:54:08.6655461Z             {
2026-06-13T11:54:08.6655818Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:54:08.6656108Z               "line": 82
2026-06-13T11:54:08.6656376Z             },
2026-06-13T11:54:08.6656648Z             {
2026-06-13T11:54:08.6657006Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:54:08.6657290Z               "line": 99
2026-06-13T11:54:08.6657569Z             },
2026-06-13T11:54:08.6657826Z             {
2026-06-13T11:54:08.6658194Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-13T11:54:08.6658470Z               "line": 119
2026-06-13T11:54:08.6658741Z             }
2026-06-13T11:54:08.6659157Z           ]
2026-06-13T11:54:08.6659428Z         }
2026-06-13T11:54:08.6659700Z       }
2026-06-13T11:54:08.6659952Z     },
2026-06-13T11:54:08.6660210Z     {
2026-06-13T11:54:08.6660558Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-13T11:54:08.6664507Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-13T11:54:08.6664831Z       "requiredStages": [
2026-06-13T11:54:08.6665098Z         "doc",
2026-06-13T11:54:08.6665367Z         "impl",
2026-06-13T11:54:08.6665639Z         "unit"
2026-06-13T11:54:08.6665968Z       ],
2026-06-13T11:54:08.6666245Z       "stages": {
2026-06-13T11:54:08.6666511Z         "doc": {
2026-06-13T11:54:08.6666821Z           "complete": true,
2026-06-13T11:54:08.6667102Z           "evidence": [
2026-06-13T11:54:08.6667365Z             {
2026-06-13T11:54:08.6667702Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6667990Z               "line": 157
2026-06-13T11:54:08.6668259Z             }
2026-06-13T11:54:08.6668521Z           ]
2026-06-13T11:54:08.6668788Z         },
2026-06-13T11:54:08.6669150Z         "impl": {
2026-06-13T11:54:08.6669446Z           "complete": true,
2026-06-13T11:54:08.6669723Z           "evidence": [
2026-06-13T11:54:08.6669994Z             {
2026-06-13T11:54:08.6670405Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.6670679Z               "line": 137
2026-06-13T11:54:08.6670955Z             },
2026-06-13T11:54:08.6671222Z             {
2026-06-13T11:54:08.6671633Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6671918Z               "line": 512
2026-06-13T11:54:08.6672195Z             },
2026-06-13T11:54:08.6672631Z             {
2026-06-13T11:54:08.6673046Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6673337Z               "line": 519
2026-06-13T11:54:08.6673604Z             },
2026-06-13T11:54:08.6673861Z             {
2026-06-13T11:54:08.6674248Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.6674534Z               "line": 227
2026-06-13T11:54:08.6674805Z             }
2026-06-13T11:54:08.6675062Z           ]
2026-06-13T11:54:08.6675315Z         },
2026-06-13T11:54:08.6675578Z         "int": {
2026-06-13T11:54:08.6675867Z           "complete": false,
2026-06-13T11:54:08.6676147Z           "evidence": []
2026-06-13T11:54:08.6676557Z         },
2026-06-13T11:54:08.6676852Z         "unit": {
2026-06-13T11:54:08.6677138Z           "complete": true,
2026-06-13T11:54:08.6677425Z           "evidence": [
2026-06-13T11:54:08.6677682Z             {
2026-06-13T11:54:08.6678097Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6678513Z               "line": 1515
2026-06-13T11:54:08.6678795Z             },
2026-06-13T11:54:08.6679148Z             {
2026-06-13T11:54:08.6679551Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.6679843Z               "line": 1573
2026-06-13T11:54:08.6680100Z             },
2026-06-13T11:54:08.6680373Z             {
2026-06-13T11:54:08.6680758Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.6681045Z               "line": 851
2026-06-13T11:54:08.6681311Z             }
2026-06-13T11:54:08.6681573Z           ]
2026-06-13T11:54:08.6686873Z         }
2026-06-13T11:54:08.6687178Z       }
2026-06-13T11:54:08.6687455Z     },
2026-06-13T11:54:08.6687713Z     {
2026-06-13T11:54:08.6688094Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-13T11:54:08.6688723Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-13T11:54:08.6689144Z       "requiredStages": [
2026-06-13T11:54:08.6689431Z         "impl",
2026-06-13T11:54:08.6689693Z         "unit"
2026-06-13T11:54:08.6689960Z       ],
2026-06-13T11:54:08.6690223Z       "stages": {
2026-06-13T11:54:08.6690489Z         "doc": {
2026-06-13T11:54:08.6690794Z           "complete": false,
2026-06-13T11:54:08.6691075Z           "evidence": []
2026-06-13T11:54:08.6691342Z         },
2026-06-13T11:54:08.6691619Z         "impl": {
2026-06-13T11:54:08.6691905Z           "complete": true,
2026-06-13T11:54:08.6692177Z           "evidence": [
2026-06-13T11:54:08.6692444Z             {
2026-06-13T11:54:08.6692806Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.6693088Z               "line": 15
2026-06-13T11:54:08.6693363Z             },
2026-06-13T11:54:08.6693630Z             {
2026-06-13T11:54:08.6694020Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6694304Z               "line": 55
2026-06-13T11:54:08.6694566Z             },
2026-06-13T11:54:08.6694834Z             {
2026-06-13T11:54:08.6695219Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6695505Z               "line": 66
2026-06-13T11:54:08.6695767Z             },
2026-06-13T11:54:08.6696031Z             {
2026-06-13T11:54:08.6696406Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6696703Z               "line": 115
2026-06-13T11:54:08.6696983Z             },
2026-06-13T11:54:08.6697238Z             {
2026-06-13T11:54:08.6697615Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6697892Z               "line": 138
2026-06-13T11:54:08.6698163Z             }
2026-06-13T11:54:08.6698420Z           ]
2026-06-13T11:54:08.6698682Z         },
2026-06-13T11:54:08.6699064Z         "int": {
2026-06-13T11:54:08.6699354Z           "complete": false,
2026-06-13T11:54:08.6699642Z           "evidence": []
2026-06-13T11:54:08.6699906Z         },
2026-06-13T11:54:08.6700187Z         "unit": {
2026-06-13T11:54:08.6700473Z           "complete": true,
2026-06-13T11:54:08.6700954Z           "evidence": [
2026-06-13T11:54:08.6701235Z             {
2026-06-13T11:54:08.6701593Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.6701883Z               "line": 149
2026-06-13T11:54:08.6702146Z             },
2026-06-13T11:54:08.6702412Z             {
2026-06-13T11:54:08.6702775Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.6703056Z               "line": 155
2026-06-13T11:54:08.6703323Z             },
2026-06-13T11:54:08.6703589Z             {
2026-06-13T11:54:08.6703953Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.6704238Z               "line": 169
2026-06-13T11:54:08.6704514Z             },
2026-06-13T11:54:08.6704907Z             {
2026-06-13T11:54:08.6705265Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.6705551Z               "line": 178
2026-06-13T11:54:08.6705812Z             },
2026-06-13T11:54:08.6706084Z             {
2026-06-13T11:54:08.6706476Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6706771Z               "line": 195
2026-06-13T11:54:08.6707039Z             },
2026-06-13T11:54:08.6707305Z             {
2026-06-13T11:54:08.6707693Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6707979Z               "line": 208
2026-06-13T11:54:08.6708257Z             },
2026-06-13T11:54:08.6708519Z             {
2026-06-13T11:54:08.6708904Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6709280Z               "line": 271
2026-06-13T11:54:08.6709542Z             },
2026-06-13T11:54:08.6709811Z             {
2026-06-13T11:54:08.6710188Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6710480Z               "line": 290
2026-06-13T11:54:08.6710747Z             },
2026-06-13T11:54:08.6711024Z             {
2026-06-13T11:54:08.6711409Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.6711687Z               "line": 319
2026-06-13T11:54:08.6711963Z             }
2026-06-13T11:54:08.6712229Z           ]
2026-06-13T11:54:08.6712506Z         }
2026-06-13T11:54:08.6712767Z       }
2026-06-13T11:54:08.6713030Z     },
2026-06-13T11:54:08.6713297Z     {
2026-06-13T11:54:08.6713645Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-13T11:54:08.6714523Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-13T11:54:08.6714822Z       "requiredStages": [
2026-06-13T11:54:08.6715107Z         "impl",
2026-06-13T11:54:08.6715376Z         "unit",
2026-06-13T11:54:08.6715649Z         "int"
2026-06-13T11:54:08.6715920Z       ],
2026-06-13T11:54:08.6716193Z       "stages": {
2026-06-13T11:54:08.6716479Z         "doc": {
2026-06-13T11:54:08.6716775Z           "complete": false,
2026-06-13T11:54:08.6717065Z           "evidence": []
2026-06-13T11:54:08.6717326Z         },
2026-06-13T11:54:08.6717599Z         "impl": {
2026-06-13T11:54:08.6717898Z           "complete": true,
2026-06-13T11:54:08.6718182Z           "evidence": [
2026-06-13T11:54:08.6718454Z             {
2026-06-13T11:54:08.6718826Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6719202Z               "line": 428
2026-06-13T11:54:08.6719464Z             },
2026-06-13T11:54:08.6719741Z             {
2026-06-13T11:54:08.6720112Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6720390Z               "line": 830
2026-06-13T11:54:08.6720655Z             },
2026-06-13T11:54:08.6720920Z             {
2026-06-13T11:54:08.6721293Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6721579Z               "line": 854
2026-06-13T11:54:08.6721850Z             },
2026-06-13T11:54:08.6722122Z             {
2026-06-13T11:54:08.6722479Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.6722756Z               "line": 879
2026-06-13T11:54:08.6723013Z             },
2026-06-13T11:54:08.6723280Z             {
2026-06-13T11:54:08.6723790Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6724090Z               "line": 633
2026-06-13T11:54:08.6724362Z             },
2026-06-13T11:54:08.6724624Z             {
2026-06-13T11:54:08.6725001Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6725287Z               "line": 745
2026-06-13T11:54:08.6725558Z             },
2026-06-13T11:54:08.6725824Z             {
2026-06-13T11:54:08.6726194Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6726476Z               "line": 855
2026-06-13T11:54:08.6726734Z             },
2026-06-13T11:54:08.6726991Z             {
2026-06-13T11:54:08.6727368Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.6727773Z               "line": 903
2026-06-13T11:54:08.6728040Z             },
2026-06-13T11:54:08.6728299Z             {
2026-06-13T11:54:08.6728677Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.6729038Z               "line": 46
2026-06-13T11:54:08.6729320Z             },
2026-06-13T11:54:08.6729572Z             {
2026-06-13T11:54:08.6729935Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.6730212Z               "line": 167
2026-06-13T11:54:08.6730473Z             },
2026-06-13T11:54:08.6730735Z             {
2026-06-13T11:54:08.6731082Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.6731361Z               "line": 132
2026-06-13T11:54:08.6731629Z             },
2026-06-13T11:54:08.6731891Z             {
2026-06-13T11:54:08.6732263Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6732539Z               "line": 134
2026-06-13T11:54:08.6732812Z             },
2026-06-13T11:54:08.6733079Z             {
2026-06-13T11:54:08.6733451Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6733732Z               "line": 180
2026-06-13T11:54:08.6734006Z             }
2026-06-13T11:54:08.6734283Z           ]
2026-06-13T11:54:08.6734540Z         },
2026-06-13T11:54:08.6734813Z         "int": {
2026-06-13T11:54:08.6735094Z           "complete": true,
2026-06-13T11:54:08.6735376Z           "evidence": [
2026-06-13T11:54:08.6735638Z             {
2026-06-13T11:54:08.6736048Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-13T11:54:08.6736337Z               "line": 27
2026-06-13T11:54:08.6736592Z             },
2026-06-13T11:54:08.6736883Z             {
2026-06-13T11:54:08.6737289Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-13T11:54:08.6737561Z               "line": 129
2026-06-13T11:54:08.6737827Z             },
2026-06-13T11:54:08.6738089Z             {
2026-06-13T11:54:08.6738491Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-13T11:54:08.6738781Z               "line": 200
2026-06-13T11:54:08.6739161Z             }
2026-06-13T11:54:08.6739425Z           ]
2026-06-13T11:54:08.6739688Z         },
2026-06-13T11:54:08.6739956Z         "unit": {
2026-06-13T11:54:08.6740261Z           "complete": true,
2026-06-13T11:54:08.6740551Z           "evidence": [
2026-06-13T11:54:08.6740810Z             {
2026-06-13T11:54:08.6741195Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.6741472Z               "line": 313
2026-06-13T11:54:08.6741747Z             },
2026-06-13T11:54:08.6742011Z             {
2026-06-13T11:54:08.6742389Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.6742670Z               "line": 345
2026-06-13T11:54:08.6742931Z             },
2026-06-13T11:54:08.6743194Z             {
2026-06-13T11:54:08.6743566Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-13T11:54:08.6743852Z               "line": 366
2026-06-13T11:54:08.6744128Z             },
2026-06-13T11:54:08.6744392Z             {
2026-06-13T11:54:08.6744776Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:54:08.6745049Z               "line": 254
2026-06-13T11:54:08.6745316Z             },
2026-06-13T11:54:08.6745578Z             {
2026-06-13T11:54:08.6746154Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:54:08.6746445Z               "line": 289
2026-06-13T11:54:08.6746702Z             },
2026-06-13T11:54:08.6746981Z             {
2026-06-13T11:54:08.6747348Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:54:08.6747629Z               "line": 230
2026-06-13T11:54:08.6747896Z             },
2026-06-13T11:54:08.6748169Z             {
2026-06-13T11:54:08.6748535Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6748822Z               "line": 488
2026-06-13T11:54:08.6749179Z             },
2026-06-13T11:54:08.6749443Z             {
2026-06-13T11:54:08.6749816Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.6750239Z               "line": 518
2026-06-13T11:54:08.6750534Z             }
2026-06-13T11:54:08.6750821Z           ]
2026-06-13T11:54:08.6751093Z         }
2026-06-13T11:54:08.6751379Z       }
2026-06-13T11:54:08.6751642Z     },
2026-06-13T11:54:08.6751942Z     {
2026-06-13T11:54:08.6752369Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-13T11:54:08.6757823Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-13T11:54:08.6758151Z       "requiredStages": [
2026-06-13T11:54:08.6758405Z         "doc",
2026-06-13T11:54:08.6758686Z         "impl",
2026-06-13T11:54:08.6759063Z         "unit"
2026-06-13T11:54:08.6759335Z       ],
2026-06-13T11:54:08.6759611Z       "stages": {
2026-06-13T11:54:08.6759877Z         "doc": {
2026-06-13T11:54:08.6760195Z           "complete": true,
2026-06-13T11:54:08.6760475Z           "evidence": [
2026-06-13T11:54:08.6760747Z             {
2026-06-13T11:54:08.6761094Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.6761381Z               "line": 300
2026-06-13T11:54:08.6761648Z             }
2026-06-13T11:54:08.6761916Z           ]
2026-06-13T11:54:08.6762187Z         },
2026-06-13T11:54:08.6762458Z         "impl": {
2026-06-13T11:54:08.6762762Z           "complete": true,
2026-06-13T11:54:08.6763042Z           "evidence": [
2026-06-13T11:54:08.6763318Z             {
2026-06-13T11:54:08.6763752Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:54:08.6764042Z               "line": 33
2026-06-13T11:54:08.6764310Z             },
2026-06-13T11:54:08.6764577Z             {
2026-06-13T11:54:08.6765001Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:54:08.6765283Z               "line": 39
2026-06-13T11:54:08.6765554Z             }
2026-06-13T11:54:08.6765841Z           ]
2026-06-13T11:54:08.6766107Z         },
2026-06-13T11:54:08.6766441Z         "int": {
2026-06-13T11:54:08.6766755Z           "complete": false,
2026-06-13T11:54:08.6767047Z           "evidence": []
2026-06-13T11:54:08.6767319Z         },
2026-06-13T11:54:08.6767595Z         "unit": {
2026-06-13T11:54:08.6767907Z           "complete": true,
2026-06-13T11:54:08.6768187Z           "evidence": [
2026-06-13T11:54:08.6768473Z             {
2026-06-13T11:54:08.6768922Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-13T11:54:08.6769304Z               "line": 95
2026-06-13T11:54:08.6769580Z             }
2026-06-13T11:54:08.6769876Z           ]
2026-06-13T11:54:08.6770151Z         }
2026-06-13T11:54:08.6770418Z       }
2026-06-13T11:54:08.6770694Z     },
2026-06-13T11:54:08.6770974Z     {
2026-06-13T11:54:08.6771330Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-13T11:54:08.6772074Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-13T11:54:08.6772370Z       "requiredStages": [
2026-06-13T11:54:08.6772641Z         "impl",
2026-06-13T11:54:08.6772918Z         "unit"
2026-06-13T11:54:08.6773186Z       ],
2026-06-13T11:54:08.6773466Z       "stages": {
2026-06-13T11:54:08.6773740Z         "doc": {
2026-06-13T11:54:08.6774050Z           "complete": false,
2026-06-13T11:54:08.6774346Z           "evidence": []
2026-06-13T11:54:08.6774598Z         },
2026-06-13T11:54:08.6774884Z         "impl": {
2026-06-13T11:54:08.6775185Z           "complete": true,
2026-06-13T11:54:08.6775480Z           "evidence": [
2026-06-13T11:54:08.6775747Z             {
2026-06-13T11:54:08.6776175Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.6776576Z               "line": 62
2026-06-13T11:54:08.6776852Z             },
2026-06-13T11:54:08.6777139Z             {
2026-06-13T11:54:08.6777549Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.6777835Z               "line": 71
2026-06-13T11:54:08.6778120Z             },
2026-06-13T11:54:08.6778530Z             {
2026-06-13T11:54:08.6778929Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.6779324Z               "line": 80
2026-06-13T11:54:08.6779582Z             },
2026-06-13T11:54:08.6779840Z             {
2026-06-13T11:54:08.6780230Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.6780508Z               "line": 88
2026-06-13T11:54:08.6780784Z             },
2026-06-13T11:54:08.6781051Z             {
2026-06-13T11:54:08.6781416Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6781724Z               "line": 33
2026-06-13T11:54:08.6782044Z             },
2026-06-13T11:54:08.6782310Z             {
2026-06-13T11:54:08.6782683Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6782968Z               "line": 65
2026-06-13T11:54:08.6783225Z             },
2026-06-13T11:54:08.6783497Z             {
2026-06-13T11:54:08.6783864Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6784138Z               "line": 74
2026-06-13T11:54:08.6784397Z             },
2026-06-13T11:54:08.6784658Z             {
2026-06-13T11:54:08.6785030Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6785302Z               "line": 93
2026-06-13T11:54:08.6785574Z             },
2026-06-13T11:54:08.6786213Z             {
2026-06-13T11:54:08.6786913Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6787775Z               "line": 102
2026-06-13T11:54:08.6788434Z             },
2026-06-13T11:54:08.6789114Z             {
2026-06-13T11:54:08.6789790Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6790656Z               "line": 111
2026-06-13T11:54:08.6791311Z             },
2026-06-13T11:54:08.6791895Z             {
2026-06-13T11:54:08.6792574Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6793410Z               "line": 122
2026-06-13T11:54:08.6794062Z             },
2026-06-13T11:54:08.6794656Z             {
2026-06-13T11:54:08.6795337Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6796182Z               "line": 140
2026-06-13T11:54:08.6796844Z             },
2026-06-13T11:54:08.6797463Z             {
2026-06-13T11:54:08.6798169Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6799103Z               "line": 149
2026-06-13T11:54:08.6799759Z             },
2026-06-13T11:54:08.6800345Z             {
2026-06-13T11:54:08.6801026Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6801856Z               "line": 158
2026-06-13T11:54:08.6802522Z             },
2026-06-13T11:54:08.6803111Z             {
2026-06-13T11:54:08.6803783Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6804622Z               "line": 169
2026-06-13T11:54:08.6805287Z             },
2026-06-13T11:54:08.6805893Z             {
2026-06-13T11:54:08.6806766Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6807625Z               "line": 177
2026-06-13T11:54:08.6808295Z             },
2026-06-13T11:54:08.6808876Z             {
2026-06-13T11:54:08.6809673Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6810518Z               "line": 186
2026-06-13T11:54:08.6811172Z             },
2026-06-13T11:54:08.6811762Z             {
2026-06-13T11:54:08.6812436Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6813290Z               "line": 195
2026-06-13T11:54:08.6813957Z             },
2026-06-13T11:54:08.6814539Z             {
2026-06-13T11:54:08.6815212Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6816209Z               "line": 204
2026-06-13T11:54:08.6816877Z             },
2026-06-13T11:54:08.6817487Z             {
2026-06-13T11:54:08.6818185Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6819228Z               "line": 216
2026-06-13T11:54:08.6819956Z             },
2026-06-13T11:54:08.6820548Z             {
2026-06-13T11:54:08.6821236Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6822081Z               "line": 223
2026-06-13T11:54:08.6822729Z             },
2026-06-13T11:54:08.6823325Z             {
2026-06-13T11:54:08.6824008Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6824851Z               "line": 232
2026-06-13T11:54:08.6825499Z             },
2026-06-13T11:54:08.6826085Z             {
2026-06-13T11:54:08.6826764Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6827599Z               "line": 239
2026-06-13T11:54:08.6828257Z             },
2026-06-13T11:54:08.6828854Z             {
2026-06-13T11:54:08.6829658Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6830497Z               "line": 306
2026-06-13T11:54:08.6831154Z             },
2026-06-13T11:54:08.6831744Z             {
2026-06-13T11:54:08.6832449Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6833308Z               "line": 318
2026-06-13T11:54:08.6833966Z             },
2026-06-13T11:54:08.6834549Z             {
2026-06-13T11:54:08.6835217Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6836064Z               "line": 405
2026-06-13T11:54:08.6836716Z             }
2026-06-13T11:54:08.6837296Z           ]
2026-06-13T11:54:08.6837859Z         },
2026-06-13T11:54:08.6838432Z         "int": {
2026-06-13T11:54:08.6839151Z           "complete": false,
2026-06-13T11:54:08.6839855Z           "evidence": []
2026-06-13T11:54:08.6840513Z         },
2026-06-13T11:54:08.6841081Z         "unit": {
2026-06-13T11:54:08.6841701Z           "complete": true,
2026-06-13T11:54:08.6842394Z           "evidence": [
2026-06-13T11:54:08.6843037Z             {
2026-06-13T11:54:08.6843724Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6844577Z               "line": 487
2026-06-13T11:54:08.6845237Z             },
2026-06-13T11:54:08.6845838Z             {
2026-06-13T11:54:08.6846548Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6847396Z               "line": 528
2026-06-13T11:54:08.6848043Z             },
2026-06-13T11:54:08.6848625Z             {
2026-06-13T11:54:08.6849396Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6850235Z               "line": 541
2026-06-13T11:54:08.6850889Z             },
2026-06-13T11:54:08.6851470Z             {
2026-06-13T11:54:08.6852205Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.6853059Z               "line": 627
2026-06-13T11:54:08.6853723Z             }
2026-06-13T11:54:08.6854308Z           ]
2026-06-13T11:54:08.6854885Z         }
2026-06-13T11:54:08.6855441Z       }
2026-06-13T11:54:08.6855994Z     },
2026-06-13T11:54:08.6856560Z     {
2026-06-13T11:54:08.6857166Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-13T11:54:08.6858575Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-13T11:54:08.6859848Z       "requiredStages": [
2026-06-13T11:54:08.6860525Z         "impl",
2026-06-13T11:54:08.6861110Z         "unit"
2026-06-13T11:54:08.6861692Z       ],
2026-06-13T11:54:08.6862259Z       "stages": {
2026-06-13T11:54:08.6862854Z         "doc": {
2026-06-13T11:54:08.6863476Z           "complete": false,
2026-06-13T11:54:08.6864172Z           "evidence": []
2026-06-13T11:54:08.6864821Z         },
2026-06-13T11:54:08.6865388Z         "impl": {
2026-06-13T11:54:08.6866010Z           "complete": true,
2026-06-13T11:54:08.6866692Z           "evidence": [
2026-06-13T11:54:08.6867331Z             {
2026-06-13T11:54:08.6868003Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.6869196Z               "line": 143
2026-06-13T11:54:08.6869854Z             },
2026-06-13T11:54:08.6870455Z             {
2026-06-13T11:54:08.6871136Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.6871995Z               "line": 148
2026-06-13T11:54:08.6872658Z             }
2026-06-13T11:54:08.6873234Z           ]
2026-06-13T11:54:08.6873797Z         },
2026-06-13T11:54:08.6874360Z         "int": {
2026-06-13T11:54:08.6874981Z           "complete": false,
2026-06-13T11:54:08.6875672Z           "evidence": []
2026-06-13T11:54:08.6876328Z         },
2026-06-13T11:54:08.6876899Z         "unit": {
2026-06-13T11:54:08.6877523Z           "complete": true,
2026-06-13T11:54:08.6878204Z           "evidence": [
2026-06-13T11:54:08.6878938Z             {
2026-06-13T11:54:08.6879676Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.6880499Z               "line": 264
2026-06-13T11:54:08.6881143Z             },
2026-06-13T11:54:08.6881729Z             {
2026-06-13T11:54:08.6882415Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.6883269Z               "line": 623
2026-06-13T11:54:08.6883913Z             },
2026-06-13T11:54:08.6884492Z             {
2026-06-13T11:54:08.6885183Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.6886037Z               "line": 636
2026-06-13T11:54:08.6886696Z             }
2026-06-13T11:54:08.6887263Z           ]
2026-06-13T11:54:08.6887835Z         }
2026-06-13T11:54:08.6888375Z       }
2026-06-13T11:54:08.6888909Z     },
2026-06-13T11:54:08.6889632Z     {
2026-06-13T11:54:08.6890236Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-13T11:54:08.6891166Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-13T11:54:08.6892062Z       "requiredStages": [
2026-06-13T11:54:08.6892737Z         "impl",
2026-06-13T11:54:08.6893324Z         "unit"
2026-06-13T11:54:08.6893901Z       ],
2026-06-13T11:54:08.6894455Z       "stages": {
2026-06-13T11:54:08.6895062Z         "doc": {
2026-06-13T11:54:08.6895677Z           "complete": false,
2026-06-13T11:54:08.6896377Z           "evidence": []
2026-06-13T11:54:08.6897016Z         },
2026-06-13T11:54:08.6903864Z         "impl": {
2026-06-13T11:54:08.6904523Z           "complete": true,
2026-06-13T11:54:08.6905242Z           "evidence": [
2026-06-13T11:54:08.6905884Z             {
2026-06-13T11:54:08.6906586Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.6907453Z               "line": 114
2026-06-13T11:54:08.6908095Z             },
2026-06-13T11:54:08.6908688Z             {
2026-06-13T11:54:08.6909485Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.6910368Z               "line": 481
2026-06-13T11:54:08.6911007Z             }
2026-06-13T11:54:08.6911574Z           ]
2026-06-13T11:54:08.6912128Z         },
2026-06-13T11:54:08.6912691Z         "int": {
2026-06-13T11:54:08.6913316Z           "complete": false,
2026-06-13T11:54:08.6914011Z           "evidence": []
2026-06-13T11:54:08.6914663Z         },
2026-06-13T11:54:08.6915223Z         "unit": {
2026-06-13T11:54:08.6915840Z           "complete": true,
2026-06-13T11:54:08.6916525Z           "evidence": [
2026-06-13T11:54:08.6917146Z             {
2026-06-13T11:54:08.6918128Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.6919102Z               "line": 515
2026-06-13T11:54:08.6919745Z             }
2026-06-13T11:54:08.6920313Z           ]
2026-06-13T11:54:08.6920875Z         }
2026-06-13T11:54:08.6921415Z       }
2026-06-13T11:54:08.6921950Z     },
2026-06-13T11:54:08.6922493Z     {
2026-06-13T11:54:08.6923147Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-13T11:54:08.6924228Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-13T11:54:08.6925253Z       "requiredStages": [
2026-06-13T11:54:08.6925920Z         "impl",
2026-06-13T11:54:08.6926509Z         "unit"
2026-06-13T11:54:08.6927091Z       ],
2026-06-13T11:54:08.6927644Z       "stages": {
2026-06-13T11:54:08.6928392Z         "doc": {
2026-06-13T11:54:08.6929091Z           "complete": false,
2026-06-13T11:54:08.6929794Z           "evidence": []
2026-06-13T11:54:08.6930452Z         },
2026-06-13T11:54:08.6931030Z         "impl": {
2026-06-13T11:54:08.6931654Z           "complete": true,
2026-06-13T11:54:08.6932347Z           "evidence": [
2026-06-13T11:54:08.6932976Z             {
2026-06-13T11:54:08.6933697Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.6934582Z               "line": 502
2026-06-13T11:54:08.6935236Z             },
2026-06-13T11:54:08.6935818Z             {
2026-06-13T11:54:08.6936499Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6937336Z               "line": 28
2026-06-13T11:54:08.6937984Z             }
2026-06-13T11:54:08.6938561Z           ]
2026-06-13T11:54:08.6939191Z         },
2026-06-13T11:54:08.6939756Z         "int": {
2026-06-13T11:54:08.6940373Z           "complete": false,
2026-06-13T11:54:08.6941085Z           "evidence": []
2026-06-13T11:54:08.6941729Z         },
2026-06-13T11:54:08.6942290Z         "unit": {
2026-06-13T11:54:08.6942897Z           "complete": true,
2026-06-13T11:54:08.6943589Z           "evidence": [
2026-06-13T11:54:08.6944219Z             {
2026-06-13T11:54:08.6944897Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.6945752Z               "line": 229
2026-06-13T11:54:08.6946396Z             }
2026-06-13T11:54:08.6946973Z           ]
2026-06-13T11:54:08.6947531Z         }
2026-06-13T11:54:08.6948081Z       }
2026-06-13T11:54:08.6948629Z     },
2026-06-13T11:54:08.6949254Z     {
2026-06-13T11:54:08.6949869Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-13T11:54:08.6950806Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-13T11:54:08.6951722Z       "requiredStages": [],
2026-06-13T11:54:08.6952403Z       "stages": {
2026-06-13T11:54:08.6953007Z         "doc": {
2026-06-13T11:54:08.6953621Z           "complete": false,
2026-06-13T11:54:08.6954330Z           "evidence": []
2026-06-13T11:54:08.6954983Z         },
2026-06-13T11:54:08.6955548Z         "impl": {
2026-06-13T11:54:08.6956171Z           "complete": false,
2026-06-13T11:54:08.6956890Z           "evidence": []
2026-06-13T11:54:08.6959280Z         },
2026-06-13T11:54:08.6959904Z         "int": {
2026-06-13T11:54:08.6960617Z           "complete": false,
2026-06-13T11:54:08.6961371Z           "evidence": []
2026-06-13T11:54:08.6962085Z         },
2026-06-13T11:54:08.6962720Z         "unit": {
2026-06-13T11:54:08.6963381Z           "complete": false,
2026-06-13T11:54:08.6964143Z           "evidence": []
2026-06-13T11:54:08.6964839Z         }
2026-06-13T11:54:08.6965464Z       }
2026-06-13T11:54:08.6966136Z     },
2026-06-13T11:54:08.6966755Z     {
2026-06-13T11:54:08.6967498Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-13T11:54:08.6968579Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-13T11:54:08.6969622Z       "requiredStages": [
2026-06-13T11:54:08.6970307Z         "impl",
2026-06-13T11:54:08.6970928Z         "unit"
2026-06-13T11:54:08.6971551Z       ],
2026-06-13T11:54:08.6972141Z       "stages": {
2026-06-13T11:54:08.6972780Z         "doc": {
2026-06-13T11:54:08.6973424Z           "complete": false,
2026-06-13T11:54:08.6974315Z           "evidence": []
2026-06-13T11:54:08.6974979Z         },
2026-06-13T11:54:08.6975555Z         "impl": {
2026-06-13T11:54:08.6976190Z           "complete": true,
2026-06-13T11:54:08.6976913Z           "evidence": [
2026-06-13T11:54:08.6977543Z             {
2026-06-13T11:54:08.6978207Z               "path": "crates/spt-live/src/turn.rs",
2026-06-13T11:54:08.6979258Z               "line": 19
2026-06-13T11:54:08.6979900Z             },
2026-06-13T11:54:08.6980483Z             {
2026-06-13T11:54:08.6981178Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.6982044Z               "line": 347
2026-06-13T11:54:08.6982696Z             },
2026-06-13T11:54:08.6983277Z             {
2026-06-13T11:54:08.6984097Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.6984972Z               "line": 383
2026-06-13T11:54:08.6985620Z             },
2026-06-13T11:54:08.6986207Z             {
2026-06-13T11:54:08.6986894Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.6987735Z               "line": 15
2026-06-13T11:54:08.6988369Z             },
2026-06-13T11:54:08.6989023Z             {
2026-06-13T11:54:08.6989699Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.6990551Z               "line": 48
2026-06-13T11:54:08.6991204Z             },
2026-06-13T11:54:08.6991776Z             {
2026-06-13T11:54:08.6992452Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.6993290Z               "line": 119
2026-06-13T11:54:08.6993939Z             },
2026-06-13T11:54:08.6994516Z             {
2026-06-13T11:54:08.6995162Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.6995966Z               "line": 3075
2026-06-13T11:54:08.6996638Z             }
2026-06-13T11:54:08.6997224Z           ]
2026-06-13T11:54:08.6997797Z         },
2026-06-13T11:54:08.6998382Z         "int": {
2026-06-13T11:54:08.6999069Z           "complete": false,
2026-06-13T11:54:08.6999765Z           "evidence": []
2026-06-13T11:54:08.7000406Z         },
2026-06-13T11:54:08.7000968Z         "unit": {
2026-06-13T11:54:08.7001584Z           "complete": true,
2026-06-13T11:54:08.7002251Z           "evidence": [
2026-06-13T11:54:08.7002891Z             {
2026-06-13T11:54:08.7003587Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.7004451Z               "line": 496
2026-06-13T11:54:08.7005099Z             },
2026-06-13T11:54:08.7005688Z             {
2026-06-13T11:54:08.7006373Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.7007221Z               "line": 165
2026-06-13T11:54:08.7007890Z             },
2026-06-13T11:54:08.7008470Z             {
2026-06-13T11:54:08.7009233Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-13T11:54:08.7010086Z               "line": 175
2026-06-13T11:54:08.7010738Z             }
2026-06-13T11:54:08.7011318Z           ]
2026-06-13T11:54:08.7011891Z         }
2026-06-13T11:54:08.7012459Z       }
2026-06-13T11:54:08.7013020Z     },
2026-06-13T11:54:08.7013578Z     {
2026-06-13T11:54:08.7014238Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-13T11:54:08.7017529Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-13T11:54:08.7020423Z       "requiredStages": [
2026-06-13T11:54:08.7021120Z         "impl",
2026-06-13T11:54:08.7021721Z         "unit"
2026-06-13T11:54:08.7022297Z       ],
2026-06-13T11:54:08.7022865Z       "stages": {
2026-06-13T11:54:08.7023471Z         "doc": {
2026-06-13T11:54:08.7024124Z           "complete": false,
2026-06-13T11:54:08.7024812Z           "evidence": []
2026-06-13T11:54:08.7025451Z         },
2026-06-13T11:54:08.7026009Z         "impl": {
2026-06-13T11:54:08.7026606Z           "complete": true,
2026-06-13T11:54:08.7027299Z           "evidence": [
2026-06-13T11:54:08.7028219Z             {
2026-06-13T11:54:08.7028872Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7029858Z               "line": 2817
2026-06-13T11:54:08.7030502Z             },
2026-06-13T11:54:08.7031074Z             {
2026-06-13T11:54:08.7031732Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7032557Z               "line": 103
2026-06-13T11:54:08.7033196Z             },
2026-06-13T11:54:08.7033783Z             {
2026-06-13T11:54:08.7034432Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7035254Z               "line": 135
2026-06-13T11:54:08.7035892Z             }
2026-06-13T11:54:08.7036451Z           ]
2026-06-13T11:54:08.7037180Z         },
2026-06-13T11:54:08.7037734Z         "int": {
2026-06-13T11:54:08.7038344Z           "complete": false,
2026-06-13T11:54:08.7039127Z           "evidence": []
2026-06-13T11:54:08.7039794Z         },
2026-06-13T11:54:08.7040361Z         "unit": {
2026-06-13T11:54:08.7040976Z           "complete": true,
2026-06-13T11:54:08.7041653Z           "evidence": [
2026-06-13T11:54:08.7042283Z             {
2026-06-13T11:54:08.7042947Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7043766Z               "line": 258
2026-06-13T11:54:08.7044405Z             },
2026-06-13T11:54:08.7044977Z             {
2026-06-13T11:54:08.7045646Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7046476Z               "line": 283
2026-06-13T11:54:08.7047124Z             },
2026-06-13T11:54:08.7047707Z             {
2026-06-13T11:54:08.7048362Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7049291Z               "line": 296
2026-06-13T11:54:08.7049954Z             },
2026-06-13T11:54:08.7050532Z             {
2026-06-13T11:54:08.7051188Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.7052026Z               "line": 308
2026-06-13T11:54:08.7052665Z             }
2026-06-13T11:54:08.7053240Z           ]
2026-06-13T11:54:08.7053793Z         }
2026-06-13T11:54:08.7054351Z       }
2026-06-13T11:54:08.7054893Z     },
2026-06-13T11:54:08.7055442Z     {
2026-06-13T11:54:08.7056051Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-13T11:54:08.7057032Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-13T11:54:08.7058009Z       "requiredStages": [
2026-06-13T11:54:08.7058673Z         "impl",
2026-06-13T11:54:08.7059359Z         "unit"
2026-06-13T11:54:08.7059946Z       ],
2026-06-13T11:54:08.7060495Z       "stages": {
2026-06-13T11:54:08.7061149Z         "doc": {
2026-06-13T11:54:08.7061762Z           "complete": false,
2026-06-13T11:54:08.7062463Z           "evidence": []
2026-06-13T11:54:08.7063117Z         },
2026-06-13T11:54:08.7063682Z         "impl": {
2026-06-13T11:54:08.7064305Z           "complete": true,
2026-06-13T11:54:08.7064983Z           "evidence": [
2026-06-13T11:54:08.7065608Z             {
2026-06-13T11:54:08.7066285Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.7067133Z               "line": 35
2026-06-13T11:54:08.7067778Z             }
2026-06-13T11:54:08.7068354Z           ]
2026-06-13T11:54:08.7068912Z         },
2026-06-13T11:54:08.7069567Z         "int": {
2026-06-13T11:54:08.7070192Z           "complete": false,
2026-06-13T11:54:08.7070888Z           "evidence": []
2026-06-13T11:54:08.7071536Z         },
2026-06-13T11:54:08.7072103Z         "unit": {
2026-06-13T11:54:08.7072718Z           "complete": true,
2026-06-13T11:54:08.7073409Z           "evidence": [
2026-06-13T11:54:08.7074048Z             {
2026-06-13T11:54:08.7074722Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-13T11:54:08.7075566Z               "line": 220
2026-06-13T11:54:08.7076224Z             }
2026-06-13T11:54:08.7076797Z           ]
2026-06-13T11:54:08.7077364Z         }
2026-06-13T11:54:08.7077918Z       }
2026-06-13T11:54:08.7078600Z     },
2026-06-13T11:54:08.7079215Z     {
2026-06-13T11:54:08.7079860Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-13T11:54:08.7081462Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-13T11:54:08.7082791Z       "requiredStages": [
2026-06-13T11:54:08.7083460Z         "impl",
2026-06-13T11:54:08.7084046Z         "unit"
2026-06-13T11:54:08.7084608Z       ],
2026-06-13T11:54:08.7085159Z       "stages": {
2026-06-13T11:54:08.7085750Z         "doc": {
2026-06-13T11:54:08.7086375Z           "complete": false,
2026-06-13T11:54:08.7087057Z           "evidence": []
2026-06-13T11:54:08.7087699Z         },
2026-06-13T11:54:08.7088254Z         "impl": {
2026-06-13T11:54:08.7088874Z           "complete": true,
2026-06-13T11:54:08.7089633Z           "evidence": [
2026-06-13T11:54:08.7090434Z             {
2026-06-13T11:54:08.7091135Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.7092036Z               "line": 405
2026-06-13T11:54:08.7092695Z             },
2026-06-13T11:54:08.7093266Z             {
2026-06-13T11:54:08.7093962Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.7094829Z               "line": 409
2026-06-13T11:54:08.7095480Z             },
2026-06-13T11:54:08.7096048Z             {
2026-06-13T11:54:08.7096725Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.7097589Z               "line": 156
2026-06-13T11:54:08.7098226Z             }
2026-06-13T11:54:08.7098809Z           ]
2026-06-13T11:54:08.7099472Z         },
2026-06-13T11:54:08.7100021Z         "int": {
2026-06-13T11:54:08.7100644Z           "complete": false,
2026-06-13T11:54:08.7101342Z           "evidence": []
2026-06-13T11:54:08.7101981Z         },
2026-06-13T11:54:08.7102545Z         "unit": {
2026-06-13T11:54:08.7103159Z           "complete": true,
2026-06-13T11:54:08.7103835Z           "evidence": [
2026-06-13T11:54:08.7104456Z             {
2026-06-13T11:54:08.7105132Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.7105984Z               "line": 812
2026-06-13T11:54:08.7106651Z             },
2026-06-13T11:54:08.7107233Z             {
2026-06-13T11:54:08.7107918Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.7108771Z               "line": 826
2026-06-13T11:54:08.7109537Z             },
2026-06-13T11:54:08.7110109Z             {
2026-06-13T11:54:08.7110786Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.7111636Z               "line": 845
2026-06-13T11:54:08.7112270Z             },
2026-06-13T11:54:08.7112856Z             {
2026-06-13T11:54:08.7113544Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.7114386Z               "line": 862
2026-06-13T11:54:08.7115049Z             },
2026-06-13T11:54:08.7115650Z             {
2026-06-13T11:54:08.7116373Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.7117253Z               "line": 441
2026-06-13T11:54:08.7117902Z             }
2026-06-13T11:54:08.7118479Z           ]
2026-06-13T11:54:08.7119122Z         }
2026-06-13T11:54:08.7119687Z       }
2026-06-13T11:54:08.7120229Z     },
2026-06-13T11:54:08.7120797Z     {
2026-06-13T11:54:08.7121408Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-13T11:54:08.7124375Z       "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-13T11:54:08.7127096Z       "requiredStages": [
2026-06-13T11:54:08.7127766Z         "doc",
2026-06-13T11:54:08.7128353Z         "impl",
2026-06-13T11:54:08.7129025Z         "unit"
2026-06-13T11:54:08.7129622Z       ],
2026-06-13T11:54:08.7130213Z       "stages": {
2026-06-13T11:54:08.7130804Z         "doc": {
2026-06-13T11:54:08.7131420Z           "complete": true,
2026-06-13T11:54:08.7132108Z           "evidence": [
2026-06-13T11:54:08.7132737Z             {
2026-06-13T11:54:08.7133381Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-13T11:54:08.7134539Z               "line": 352
2026-06-13T11:54:08.7135202Z             }
2026-06-13T11:54:08.7141532Z           ]
2026-06-13T11:54:08.7142119Z         },
2026-06-13T11:54:08.7142696Z         "impl": {
2026-06-13T11:54:08.7143326Z           "complete": true,
2026-06-13T11:54:08.7144009Z           "evidence": [
2026-06-13T11:54:08.7144634Z             {
2026-06-13T11:54:08.7145324Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.7146176Z               "line": 85
2026-06-13T11:54:08.7146830Z             },
2026-06-13T11:54:08.7147416Z             {
2026-06-13T11:54:08.7148101Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.7149038Z               "line": 99
2026-06-13T11:54:08.7149949Z             },
2026-06-13T11:54:08.7150211Z             {
2026-06-13T11:54:08.7150593Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.7150869Z               "line": 55
2026-06-13T11:54:08.7151134Z             },
2026-06-13T11:54:08.7151411Z             {
2026-06-13T11:54:08.7151792Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.7152078Z               "line": 31
2026-06-13T11:54:08.7152350Z             },
2026-06-13T11:54:08.7152593Z             {
2026-06-13T11:54:08.7152980Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.7153261Z               "line": 189
2026-06-13T11:54:08.7153525Z             },
2026-06-13T11:54:08.7153790Z             {
2026-06-13T11:54:08.7154172Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.7154453Z               "line": 95
2026-06-13T11:54:08.7154706Z             },
2026-06-13T11:54:08.7154973Z             {
2026-06-13T11:54:08.7155364Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.7155645Z               "line": 29
2026-06-13T11:54:08.7155908Z             },
2026-06-13T11:54:08.7156167Z             {
2026-06-13T11:54:08.7156561Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.7156842Z               "line": 104
2026-06-13T11:54:08.7157100Z             },
2026-06-13T11:54:08.7157356Z             {
2026-06-13T11:54:08.7157763Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7158049Z               "line": 208
2026-06-13T11:54:08.7158305Z             },
2026-06-13T11:54:08.7158567Z             {
2026-06-13T11:54:08.7158935Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:54:08.7159284Z               "line": 28
2026-06-13T11:54:08.7159560Z             },
2026-06-13T11:54:08.7159823Z             {
2026-06-13T11:54:08.7160199Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:54:08.7160486Z               "line": 74
2026-06-13T11:54:08.7160748Z             },
2026-06-13T11:54:08.7161006Z             {
2026-06-13T11:54:08.7161387Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.7161666Z               "line": 32
2026-06-13T11:54:08.7161932Z             },
2026-06-13T11:54:08.7162204Z             {
2026-06-13T11:54:08.7162552Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7162838Z               "line": 40
2026-06-13T11:54:08.7163100Z             },
2026-06-13T11:54:08.7163363Z             {
2026-06-13T11:54:08.7163725Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7164005Z               "line": 184
2026-06-13T11:54:08.7164275Z             },
2026-06-13T11:54:08.7164537Z             {
2026-06-13T11:54:08.7164895Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.7165172Z               "line": 61
2026-06-13T11:54:08.7165434Z             },
2026-06-13T11:54:08.7165690Z             {
2026-06-13T11:54:08.7166049Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.7166330Z               "line": 131
2026-06-13T11:54:08.7166587Z             },
2026-06-13T11:54:08.7166848Z             {
2026-06-13T11:54:08.7167369Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.7167655Z               "line": 223
2026-06-13T11:54:08.7167916Z             },
2026-06-13T11:54:08.7168193Z             {
2026-06-13T11:54:08.7168565Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:54:08.7168841Z               "line": 37
2026-06-13T11:54:08.7169198Z             },
2026-06-13T11:54:08.7169477Z             {
2026-06-13T11:54:08.7169854Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.7170139Z               "line": 38
2026-06-13T11:54:08.7170416Z             },
2026-06-13T11:54:08.7170684Z             {
2026-06-13T11:54:08.7171055Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.7171466Z               "line": 36
2026-06-13T11:54:08.7171733Z             },
2026-06-13T11:54:08.7172004Z             {
2026-06-13T11:54:08.7172372Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:54:08.7172649Z               "line": 40
2026-06-13T11:54:08.7172917Z             }
2026-06-13T11:54:08.7173212Z           ]
2026-06-13T11:54:08.7173480Z         },
2026-06-13T11:54:08.7173747Z         "int": {
2026-06-13T11:54:08.7174043Z           "complete": false,
2026-06-13T11:54:08.7174333Z           "evidence": []
2026-06-13T11:54:08.7174589Z         },
2026-06-13T11:54:08.7174864Z         "unit": {
2026-06-13T11:54:08.7175155Z           "complete": true,
2026-06-13T11:54:08.7175440Z           "evidence": [
2026-06-13T11:54:08.7175703Z             {
2026-06-13T11:54:08.7176112Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.7176399Z               "line": 212
2026-06-13T11:54:08.7176662Z             },
2026-06-13T11:54:08.7176934Z             {
2026-06-13T11:54:08.7177339Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T11:54:08.7177619Z               "line": 136
2026-06-13T11:54:08.7177891Z             },
2026-06-13T11:54:08.7178157Z             {
2026-06-13T11:54:08.7178710Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.7179106Z               "line": 685
2026-06-13T11:54:08.7179377Z             },
2026-06-13T11:54:08.7179644Z             {
2026-06-13T11:54:08.7180028Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.7180309Z               "line": 224
2026-06-13T11:54:08.7180582Z             },
2026-06-13T11:54:08.7180848Z             {
2026-06-13T11:54:08.7181225Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:54:08.7181515Z               "line": 206
2026-06-13T11:54:08.7181793Z             },
2026-06-13T11:54:08.7182060Z             {
2026-06-13T11:54:08.7182432Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.7182731Z               "line": 112
2026-06-13T11:54:08.7183000Z             },
2026-06-13T11:54:08.7183261Z             {
2026-06-13T11:54:08.7183634Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:54:08.7183915Z               "line": 157
2026-06-13T11:54:08.7184192Z             },
2026-06-13T11:54:08.7184463Z             {
2026-06-13T11:54:08.7184850Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.7185135Z               "line": 215
2026-06-13T11:54:08.7185405Z             },
2026-06-13T11:54:08.7185677Z             {
2026-06-13T11:54:08.7186049Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.7186334Z               "line": 141
2026-06-13T11:54:08.7186597Z             },
2026-06-13T11:54:08.7186874Z             {
2026-06-13T11:54:08.7187232Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:54:08.7187513Z               "line": 162
2026-06-13T11:54:08.7187785Z             }
2026-06-13T11:54:08.7188045Z           ]
2026-06-13T11:54:08.7188321Z         }
2026-06-13T11:54:08.7188585Z       }
2026-06-13T11:54:08.7188852Z     },
2026-06-13T11:54:08.7189204Z     {
2026-06-13T11:54:08.7189566Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-13T11:54:08.7190204Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-13T11:54:08.7190498Z       "requiredStages": [
2026-06-13T11:54:08.7190765Z         "impl",
2026-06-13T11:54:08.7191027Z         "unit"
2026-06-13T11:54:08.7191293Z       ],
2026-06-13T11:54:08.7191575Z       "stages": {
2026-06-13T11:54:08.7191846Z         "doc": {
2026-06-13T11:54:08.7192152Z           "complete": false,
2026-06-13T11:54:08.7192437Z           "evidence": []
2026-06-13T11:54:08.7192710Z         },
2026-06-13T11:54:08.7192974Z         "impl": {
2026-06-13T11:54:08.7193262Z           "complete": true,
2026-06-13T11:54:08.7193555Z           "evidence": [
2026-06-13T11:54:08.7193812Z             {
2026-06-13T11:54:08.7194170Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.7194567Z               "line": 95
2026-06-13T11:54:08.7194838Z             },
2026-06-13T11:54:08.7195095Z             {
2026-06-13T11:54:08.7195449Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.7195733Z               "line": 102
2026-06-13T11:54:08.7195998Z             }
2026-06-13T11:54:08.7196270Z           ]
2026-06-13T11:54:08.7196528Z         },
2026-06-13T11:54:08.7196804Z         "int": {
2026-06-13T11:54:08.7197091Z           "complete": false,
2026-06-13T11:54:08.7197376Z           "evidence": []
2026-06-13T11:54:08.7197634Z         },
2026-06-13T11:54:08.7197905Z         "unit": {
2026-06-13T11:54:08.7198186Z           "complete": true,
2026-06-13T11:54:08.7198473Z           "evidence": [
2026-06-13T11:54:08.7198729Z             {
2026-06-13T11:54:08.7199187Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.7199488Z               "line": 250
2026-06-13T11:54:08.7199755Z             },
2026-06-13T11:54:08.7200022Z             {
2026-06-13T11:54:08.7200403Z               "path": "crates/spt-store/src/proc.rs",
2026-06-13T11:54:08.7200680Z               "line": 198
2026-06-13T11:54:08.7200945Z             },
2026-06-13T11:54:08.7201205Z             {
2026-06-13T11:54:08.7201568Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.7201853Z               "line": 459
2026-06-13T11:54:08.7202115Z             },
2026-06-13T11:54:08.7202374Z             {
2026-06-13T11:54:08.7202731Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.7203007Z               "line": 492
2026-06-13T11:54:08.7203275Z             }
2026-06-13T11:54:08.7203529Z           ]
2026-06-13T11:54:08.7203803Z         }
2026-06-13T11:54:08.7204067Z       }
2026-06-13T11:54:08.7204320Z     },
2026-06-13T11:54:08.7204579Z     {
2026-06-13T11:54:08.7204903Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-13T11:54:08.7205466Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-13T11:54:08.7205776Z       "requiredStages": [
2026-06-13T11:54:08.7206047Z         "impl",
2026-06-13T11:54:08.7206312Z         "unit"
2026-06-13T11:54:08.7206582Z       ],
2026-06-13T11:54:08.7206854Z       "stages": {
2026-06-13T11:54:08.7207116Z         "doc": {
2026-06-13T11:54:08.7207402Z           "complete": false,
2026-06-13T11:54:08.7207680Z           "evidence": []
2026-06-13T11:54:08.7207936Z         },
2026-06-13T11:54:08.7208208Z         "impl": {
2026-06-13T11:54:08.7208499Z           "complete": true,
2026-06-13T11:54:08.7208765Z           "evidence": [
2026-06-13T11:54:08.7209094Z             {
2026-06-13T11:54:08.7209465Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7209742Z               "line": 262
2026-06-13T11:54:08.7210019Z             },
2026-06-13T11:54:08.7210272Z             {
2026-06-13T11:54:08.7210639Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7210916Z               "line": 307
2026-06-13T11:54:08.7211189Z             },
2026-06-13T11:54:08.7211467Z             {
2026-06-13T11:54:08.7211828Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7212104Z               "line": 319
2026-06-13T11:54:08.7212361Z             }
2026-06-13T11:54:08.7212643Z           ]
2026-06-13T11:54:08.7212915Z         },
2026-06-13T11:54:08.7213315Z         "int": {
2026-06-13T11:54:08.7213611Z           "complete": false,
2026-06-13T11:54:08.7213887Z           "evidence": []
2026-06-13T11:54:08.7214164Z         },
2026-06-13T11:54:08.7214425Z         "unit": {
2026-06-13T11:54:08.7214714Z           "complete": true,
2026-06-13T11:54:08.7215010Z           "evidence": [
2026-06-13T11:54:08.7215276Z             {
2026-06-13T11:54:08.7215649Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7215934Z               "line": 455
2026-06-13T11:54:08.7216206Z             },
2026-06-13T11:54:08.7216473Z             {
2026-06-13T11:54:08.7216839Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7217276Z               "line": 499
2026-06-13T11:54:08.7217547Z             }
2026-06-13T11:54:08.7217819Z           ]
2026-06-13T11:54:08.7218076Z         }
2026-06-13T11:54:08.7218339Z       }
2026-06-13T11:54:08.7218592Z     },
2026-06-13T11:54:08.7218855Z     {
2026-06-13T11:54:08.7219236Z       "id": "REQ-INFRA-1",
2026-06-13T11:54:08.7219826Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-13T11:54:08.7220131Z       "requiredStages": [],
2026-06-13T11:54:08.7220397Z       "stages": {
2026-06-13T11:54:08.7220669Z         "doc": {
2026-06-13T11:54:08.7220960Z           "complete": false,
2026-06-13T11:54:08.7221246Z           "evidence": []
2026-06-13T11:54:08.7221500Z         },
2026-06-13T11:54:08.7221777Z         "impl": {
2026-06-13T11:54:08.7222080Z           "complete": false,
2026-06-13T11:54:08.7222359Z           "evidence": []
2026-06-13T11:54:08.7222625Z         },
2026-06-13T11:54:08.7222888Z         "int": {
2026-06-13T11:54:08.7223174Z           "complete": false,
2026-06-13T11:54:08.7223465Z           "evidence": []
2026-06-13T11:54:08.7223737Z         },
2026-06-13T11:54:08.7224000Z         "unit": {
2026-06-13T11:54:08.7224292Z           "complete": false,
2026-06-13T11:54:08.7224577Z           "evidence": []
2026-06-13T11:54:08.7224837Z         }
2026-06-13T11:54:08.7225102Z       }
2026-06-13T11:54:08.7225365Z     },
2026-06-13T11:54:08.7225618Z     {
2026-06-13T11:54:08.7225913Z       "id": "REQ-INST-1",
2026-06-13T11:54:08.7226390Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-13T11:54:08.7226689Z       "requiredStages": [],
2026-06-13T11:54:08.7226957Z       "stages": {
2026-06-13T11:54:08.7227221Z         "doc": {
2026-06-13T11:54:08.7227499Z           "complete": false,
2026-06-13T11:54:08.7227788Z           "evidence": []
2026-06-13T11:54:08.7228045Z         },
2026-06-13T11:54:08.7228317Z         "impl": {
2026-06-13T11:54:08.7228609Z           "complete": false,
2026-06-13T11:54:08.7228889Z           "evidence": []
2026-06-13T11:54:08.7229253Z         },
2026-06-13T11:54:08.7229528Z         "int": {
2026-06-13T11:54:08.7229825Z           "complete": false,
2026-06-13T11:54:08.7230097Z           "evidence": []
2026-06-13T11:54:08.7230366Z         },
2026-06-13T11:54:08.7230643Z         "unit": {
2026-06-13T11:54:08.7230938Z           "complete": false,
2026-06-13T11:54:08.7231225Z           "evidence": []
2026-06-13T11:54:08.7231487Z         }
2026-06-13T11:54:08.7231768Z       }
2026-06-13T11:54:08.7232027Z     },
2026-06-13T11:54:08.7232294Z     {
2026-06-13T11:54:08.7232587Z       "id": "REQ-INST-10",
2026-06-13T11:54:08.7233253Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-13T11:54:08.7233558Z       "requiredStages": [
2026-06-13T11:54:08.7233824Z         "impl",
2026-06-13T11:54:08.7234097Z         "unit"
2026-06-13T11:54:08.7234359Z       ],
2026-06-13T11:54:08.7234640Z       "stages": {
2026-06-13T11:54:08.7234918Z         "doc": {
2026-06-13T11:54:08.7235218Z           "complete": false,
2026-06-13T11:54:08.7235512Z           "evidence": []
2026-06-13T11:54:08.7235776Z         },
2026-06-13T11:54:08.7236062Z         "impl": {
2026-06-13T11:54:08.7236348Z           "complete": true,
2026-06-13T11:54:08.7236640Z           "evidence": [
2026-06-13T11:54:08.7237050Z             {
2026-06-13T11:54:08.7237437Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7237733Z               "line": 616
2026-06-13T11:54:08.7238007Z             },
2026-06-13T11:54:08.7238281Z             {
2026-06-13T11:54:08.7238663Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7239036Z               "line": 693
2026-06-13T11:54:08.7239312Z             },
2026-06-13T11:54:08.7239593Z             {
2026-06-13T11:54:08.7239956Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7240232Z               "line": 13
2026-06-13T11:54:08.7240499Z             },
2026-06-13T11:54:08.7240769Z             {
2026-06-13T11:54:08.7241265Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7241547Z               "line": 67
2026-06-13T11:54:08.7241804Z             },
2026-06-13T11:54:08.7242071Z             {
2026-06-13T11:54:08.7242409Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7242691Z               "line": 18
2026-06-13T11:54:08.7242963Z             },
2026-06-13T11:54:08.7243234Z             {
2026-06-13T11:54:08.7243580Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7243852Z               "line": 444
2026-06-13T11:54:08.7244118Z             }
2026-06-13T11:54:08.7244380Z           ]
2026-06-13T11:54:08.7244643Z         },
2026-06-13T11:54:08.7244910Z         "int": {
2026-06-13T11:54:08.7245205Z           "complete": false,
2026-06-13T11:54:08.7245492Z           "evidence": []
2026-06-13T11:54:08.7245755Z         },
2026-06-13T11:54:08.7246024Z         "unit": {
2026-06-13T11:54:08.7246312Z           "complete": true,
2026-06-13T11:54:08.7246608Z           "evidence": [
2026-06-13T11:54:08.7246880Z             {
2026-06-13T11:54:08.7247261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7247553Z               "line": 900
2026-06-13T11:54:08.7247819Z             },
2026-06-13T11:54:08.7248082Z             {
2026-06-13T11:54:08.7248481Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7248761Z               "line": 1233
2026-06-13T11:54:08.7249109Z             },
2026-06-13T11:54:08.7249386Z             {
2026-06-13T11:54:08.7249771Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7250058Z               "line": 1244
2026-06-13T11:54:08.7250325Z             },
2026-06-13T11:54:08.7250588Z             {
2026-06-13T11:54:08.7250982Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7251283Z               "line": 1260
2026-06-13T11:54:08.7251545Z             },
2026-06-13T11:54:08.7251816Z             {
2026-06-13T11:54:08.7252198Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7252484Z               "line": 1276
2026-06-13T11:54:08.7252751Z             },
2026-06-13T11:54:08.7253013Z             {
2026-06-13T11:54:08.7253405Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7253693Z               "line": 1298
2026-06-13T11:54:08.7253968Z             },
2026-06-13T11:54:08.7254225Z             {
2026-06-13T11:54:08.7254611Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7254892Z               "line": 1603
2026-06-13T11:54:08.7255160Z             },
2026-06-13T11:54:08.7255436Z             {
2026-06-13T11:54:08.7255794Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7256080Z               "line": 130
2026-06-13T11:54:08.7256344Z             },
2026-06-13T11:54:08.7256613Z             {
2026-06-13T11:54:08.7256969Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7257255Z               "line": 167
2026-06-13T11:54:08.7257531Z             },
2026-06-13T11:54:08.7257779Z             {
2026-06-13T11:54:08.7258136Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7258408Z               "line": 175
2026-06-13T11:54:08.7258685Z             },
2026-06-13T11:54:08.7259161Z             {
2026-06-13T11:54:08.7259521Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-13T11:54:08.7259812Z               "line": 183
2026-06-13T11:54:08.7260074Z             },
2026-06-13T11:54:08.7260341Z             {
2026-06-13T11:54:08.7260675Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7260961Z               "line": 896
2026-06-13T11:54:08.7261233Z             }
2026-06-13T11:54:08.7261500Z           ]
2026-06-13T11:54:08.7261758Z         }
2026-06-13T11:54:08.7262013Z       }
2026-06-13T11:54:08.7262271Z     },
2026-06-13T11:54:08.7262515Z     {
2026-06-13T11:54:08.7262815Z       "id": "REQ-INST-11",
2026-06-13T11:54:08.7263482Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-13T11:54:08.7263926Z       "requiredStages": [
2026-06-13T11:54:08.7264206Z         "impl",
2026-06-13T11:54:08.7264471Z         "unit"
2026-06-13T11:54:08.7264739Z       ],
2026-06-13T11:54:08.7265005Z       "stages": {
2026-06-13T11:54:08.7265292Z         "doc": {
2026-06-13T11:54:08.7265587Z           "complete": false,
2026-06-13T11:54:08.7265873Z           "evidence": []
2026-06-13T11:54:08.7266144Z         },
2026-06-13T11:54:08.7266402Z         "impl": {
2026-06-13T11:54:08.7266692Z           "complete": true,
2026-06-13T11:54:08.7266965Z           "evidence": [
2026-06-13T11:54:08.7267231Z             {
2026-06-13T11:54:08.7267634Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7267915Z               "line": 482
2026-06-13T11:54:08.7268183Z             },
2026-06-13T11:54:08.7268449Z             {
2026-06-13T11:54:08.7268859Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7269259Z               "line": 297
2026-06-13T11:54:08.7269545Z             },
2026-06-13T11:54:08.7269816Z             {
2026-06-13T11:54:08.7270168Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:54:08.7270430Z               "line": 59
2026-06-13T11:54:08.7270707Z             },
2026-06-13T11:54:08.7270983Z             {
2026-06-13T11:54:08.7271312Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7271592Z               "line": 4284
2026-06-13T11:54:08.7271850Z             },
2026-06-13T11:54:08.7272117Z             {
2026-06-13T11:54:08.7272436Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7272713Z               "line": 5502
2026-06-13T11:54:08.7272980Z             }
2026-06-13T11:54:08.7273237Z           ]
2026-06-13T11:54:08.7273498Z         },
2026-06-13T11:54:08.7273761Z         "int": {
2026-06-13T11:54:08.7274042Z           "complete": false,
2026-06-13T11:54:08.7274320Z           "evidence": []
2026-06-13T11:54:08.7274592Z         },
2026-06-13T11:54:08.7274852Z         "unit": {
2026-06-13T11:54:08.7275135Z           "complete": true,
2026-06-13T11:54:08.7275412Z           "evidence": [
2026-06-13T11:54:08.7275675Z             {
2026-06-13T11:54:08.7276060Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7276346Z               "line": 1403
2026-06-13T11:54:08.7276600Z             },
2026-06-13T11:54:08.7276863Z             {
2026-06-13T11:54:08.7277229Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7277507Z               "line": 1436
2026-06-13T11:54:08.7277776Z             },
2026-06-13T11:54:08.7278032Z             {
2026-06-13T11:54:08.7278424Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7278809Z               "line": 527
2026-06-13T11:54:08.7279162Z             },
2026-06-13T11:54:08.7279438Z             {
2026-06-13T11:54:08.7279819Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:54:08.7280115Z               "line": 160
2026-06-13T11:54:08.7280381Z             },
2026-06-13T11:54:08.7280642Z             {
2026-06-13T11:54:08.7281004Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:54:08.7281286Z               "line": 190
2026-06-13T11:54:08.7281548Z             },
2026-06-13T11:54:08.7281921Z             {
2026-06-13T11:54:08.7282287Z               "path": "crates/spt-store/src/rename.rs",
2026-06-13T11:54:08.7282564Z               "line": 225
2026-06-13T11:54:08.7282831Z             },
2026-06-13T11:54:08.7283100Z             {
2026-06-13T11:54:08.7283429Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7283706Z               "line": 5841
2026-06-13T11:54:08.7283974Z             }
2026-06-13T11:54:08.7284246Z           ]
2026-06-13T11:54:08.7284494Z         }
2026-06-13T11:54:08.7284761Z       }
2026-06-13T11:54:08.7285017Z     },
2026-06-13T11:54:08.7285274Z     {
2026-06-13T11:54:08.7285563Z       "id": "REQ-INST-12",
2026-06-13T11:54:08.7286474Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-13T11:54:08.7286888Z       "requiredStages": [
2026-06-13T11:54:08.7287160Z         "impl",
2026-06-13T11:54:08.7287427Z         "unit"
2026-06-13T11:54:08.7287681Z       ],
2026-06-13T11:54:08.7287967Z       "stages": {
2026-06-13T11:54:08.7288241Z         "doc": {
2026-06-13T11:54:08.7288529Z           "complete": false,
2026-06-13T11:54:08.7288825Z           "evidence": []
2026-06-13T11:54:08.7289154Z         },
2026-06-13T11:54:08.7289450Z         "impl": {
2026-06-13T11:54:08.7289746Z           "complete": true,
2026-06-13T11:54:08.7290036Z           "evidence": [
2026-06-13T11:54:08.7290300Z             {
2026-06-13T11:54:08.7290699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7290983Z               "line": 534
2026-06-13T11:54:08.7291250Z             },
2026-06-13T11:54:08.7291517Z             {
2026-06-13T11:54:08.7291902Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7292189Z               "line": 627
2026-06-13T11:54:08.7292456Z             },
2026-06-13T11:54:08.7292717Z             {
2026-06-13T11:54:08.7293110Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7293401Z               "line": 707
2026-06-13T11:54:08.7293679Z             },
2026-06-13T11:54:08.7293942Z             {
2026-06-13T11:54:08.7294308Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7294590Z               "line": 96
2026-06-13T11:54:08.7294848Z             },
2026-06-13T11:54:08.7295120Z             {
2026-06-13T11:54:08.7295487Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7295773Z               "line": 269
2026-06-13T11:54:08.7296034Z             },
2026-06-13T11:54:08.7296304Z             {
2026-06-13T11:54:08.7296691Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7296967Z               "line": 135
2026-06-13T11:54:08.7297244Z             }
2026-06-13T11:54:08.7297510Z           ]
2026-06-13T11:54:08.7297777Z         },
2026-06-13T11:54:08.7298039Z         "int": {
2026-06-13T11:54:08.7298340Z           "complete": false,
2026-06-13T11:54:08.7298622Z           "evidence": []
2026-06-13T11:54:08.7298882Z         },
2026-06-13T11:54:08.7299248Z         "unit": {
2026-06-13T11:54:08.7299539Z           "complete": true,
2026-06-13T11:54:08.7299816Z           "evidence": [
2026-06-13T11:54:08.7300077Z             {
2026-06-13T11:54:08.7300459Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7300740Z               "line": 1478
2026-06-13T11:54:08.7300992Z             },
2026-06-13T11:54:08.7301254Z             {
2026-06-13T11:54:08.7301642Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7301928Z               "line": 1501
2026-06-13T11:54:08.7302187Z             },
2026-06-13T11:54:08.7302449Z             {
2026-06-13T11:54:08.7302834Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7303125Z               "line": 1538
2026-06-13T11:54:08.7303389Z             },
2026-06-13T11:54:08.7303637Z             {
2026-06-13T11:54:08.7303999Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7304394Z               "line": 457
2026-06-13T11:54:08.7304665Z             },
2026-06-13T11:54:08.7304922Z             {
2026-06-13T11:54:08.7305309Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7305596Z               "line": 172
2026-06-13T11:54:08.7305862Z             },
2026-06-13T11:54:08.7306133Z             {
2026-06-13T11:54:08.7306509Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7306816Z               "line": 193
2026-06-13T11:54:08.7307083Z             },
2026-06-13T11:54:08.7307350Z             {
2026-06-13T11:54:08.7307741Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7308018Z               "line": 219
2026-06-13T11:54:08.7308380Z             }
2026-06-13T11:54:08.7308638Z           ]
2026-06-13T11:54:08.7308909Z         }
2026-06-13T11:54:08.7309262Z       }
2026-06-13T11:54:08.7309518Z     },
2026-06-13T11:54:08.7309784Z     {
2026-06-13T11:54:08.7310070Z       "id": "REQ-INST-13",
2026-06-13T11:54:08.7310652Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-13T11:54:08.7310947Z       "requiredStages": [
2026-06-13T11:54:08.7311219Z         "impl",
2026-06-13T11:54:08.7311490Z         "unit"
2026-06-13T11:54:08.7311754Z       ],
2026-06-13T11:54:08.7312028Z       "stages": {
2026-06-13T11:54:08.7312293Z         "doc": {
2026-06-13T11:54:08.7312588Z           "complete": false,
2026-06-13T11:54:08.7312865Z           "evidence": []
2026-06-13T11:54:08.7313137Z         },
2026-06-13T11:54:08.7313414Z         "impl": {
2026-06-13T11:54:08.7313699Z           "complete": true,
2026-06-13T11:54:08.7313977Z           "evidence": [
2026-06-13T11:54:08.7314240Z             {
2026-06-13T11:54:08.7314616Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7314901Z               "line": 100
2026-06-13T11:54:08.7315168Z             },
2026-06-13T11:54:08.7315439Z             {
2026-06-13T11:54:08.7315807Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7316107Z               "line": 158
2026-06-13T11:54:08.7316374Z             }
2026-06-13T11:54:08.7316641Z           ]
2026-06-13T11:54:08.7316893Z         },
2026-06-13T11:54:08.7317164Z         "int": {
2026-06-13T11:54:08.7317463Z           "complete": false,
2026-06-13T11:54:08.7317739Z           "evidence": []
2026-06-13T11:54:08.7318000Z         },
2026-06-13T11:54:08.7318268Z         "unit": {
2026-06-13T11:54:08.7318559Z           "complete": true,
2026-06-13T11:54:08.7318841Z           "evidence": [
2026-06-13T11:54:08.7319174Z             {
2026-06-13T11:54:08.7319570Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7319850Z               "line": 248
2026-06-13T11:54:08.7320124Z             },
2026-06-13T11:54:08.7320378Z             {
2026-06-13T11:54:08.7320759Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-13T11:54:08.7321031Z               "line": 266
2026-06-13T11:54:08.7321289Z             }
2026-06-13T11:54:08.7321550Z           ]
2026-06-13T11:54:08.7321803Z         }
2026-06-13T11:54:08.7322060Z       }
2026-06-13T11:54:08.7322323Z     },
2026-06-13T11:54:08.7322583Z     {
2026-06-13T11:54:08.7322858Z       "id": "REQ-INST-14",
2026-06-13T11:54:08.7324031Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-13T11:54:08.7324322Z       "requiredStages": [
2026-06-13T11:54:08.7324593Z         "doc",
2026-06-13T11:54:08.7324861Z         "impl",
2026-06-13T11:54:08.7325114Z         "unit"
2026-06-13T11:54:08.7325384Z       ],
2026-06-13T11:54:08.7325656Z       "stages": {
2026-06-13T11:54:08.7325913Z         "doc": {
2026-06-13T11:54:08.7326210Z           "complete": true,
2026-06-13T11:54:08.7326481Z           "evidence": [
2026-06-13T11:54:08.7326749Z             {
2026-06-13T11:54:08.7327045Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7327316Z               "line": 477
2026-06-13T11:54:08.7327576Z             },
2026-06-13T11:54:08.7327956Z             {
2026-06-13T11:54:08.7328270Z               "path": "docs/STORAGE.md",
2026-06-13T11:54:08.7328547Z               "line": 49
2026-06-13T11:54:08.7328823Z             }
2026-06-13T11:54:08.7329166Z           ]
2026-06-13T11:54:08.7329434Z         },
2026-06-13T11:54:08.7329705Z         "impl": {
2026-06-13T11:54:08.7329996Z           "complete": true,
2026-06-13T11:54:08.7330284Z           "evidence": [
2026-06-13T11:54:08.7330534Z             {
2026-06-13T11:54:08.7330948Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7331224Z               "line": 404
2026-06-13T11:54:08.7331491Z             },
2026-06-13T11:54:08.7331752Z             {
2026-06-13T11:54:08.7332244Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7332526Z               "line": 346
2026-06-13T11:54:08.7332789Z             },
2026-06-13T11:54:08.7333063Z             {
2026-06-13T11:54:08.7333428Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.7333713Z               "line": 211
2026-06-13T11:54:08.7333980Z             },
2026-06-13T11:54:08.7334243Z             {
2026-06-13T11:54:08.7334567Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7334849Z               "line": 1104
2026-06-13T11:54:08.7335120Z             }
2026-06-13T11:54:08.7335379Z           ]
2026-06-13T11:54:08.7335632Z         },
2026-06-13T11:54:08.7335896Z         "int": {
2026-06-13T11:54:08.7336177Z           "complete": false,
2026-06-13T11:54:08.7336460Z           "evidence": []
2026-06-13T11:54:08.7336726Z         },
2026-06-13T11:54:08.7336989Z         "unit": {
2026-06-13T11:54:08.7341465Z           "complete": true,
2026-06-13T11:54:08.7341803Z           "evidence": [
2026-06-13T11:54:08.7342075Z             {
2026-06-13T11:54:08.7342489Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7342780Z               "line": 1111
2026-06-13T11:54:08.7343044Z             },
2026-06-13T11:54:08.7343320Z             {
2026-06-13T11:54:08.7343699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7343983Z               "line": 912
2026-06-13T11:54:08.7344245Z             },
2026-06-13T11:54:08.7344512Z             {
2026-06-13T11:54:08.7344899Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7345184Z               "line": 1173
2026-06-13T11:54:08.7345456Z             },
2026-06-13T11:54:08.7345728Z             {
2026-06-13T11:54:08.7346086Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.7346381Z               "line": 463
2026-06-13T11:54:08.7346644Z             },
2026-06-13T11:54:08.7346915Z             {
2026-06-13T11:54:08.7347240Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7347516Z               "line": 5917
2026-06-13T11:54:08.7347778Z             }
2026-06-13T11:54:08.7348044Z           ]
2026-06-13T11:54:08.7348306Z         }
2026-06-13T11:54:08.7348560Z       }
2026-06-13T11:54:08.7348825Z     },
2026-06-13T11:54:08.7349172Z     {
2026-06-13T11:54:08.7349473Z       "id": "REQ-INST-15",
2026-06-13T11:54:08.7351791Z       "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-13T11:54:08.7352092Z       "requiredStages": [
2026-06-13T11:54:08.7352359Z         "doc",
2026-06-13T11:54:08.7352626Z         "impl",
2026-06-13T11:54:08.7352897Z         "unit"
2026-06-13T11:54:08.7353149Z       ],
2026-06-13T11:54:08.7353426Z       "stages": {
2026-06-13T11:54:08.7353688Z         "doc": {
2026-06-13T11:54:08.7353989Z           "complete": true,
2026-06-13T11:54:08.7354264Z           "evidence": [
2026-06-13T11:54:08.7354529Z             {
2026-06-13T11:54:08.7355082Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-13T11:54:08.7355493Z               "line": 3
2026-06-13T11:54:08.7355773Z             }
2026-06-13T11:54:08.7356050Z           ]
2026-06-13T11:54:08.7356312Z         },
2026-06-13T11:54:08.7356588Z         "impl": {
2026-06-13T11:54:08.7356884Z           "complete": true,
2026-06-13T11:54:08.7357166Z           "evidence": [
2026-06-13T11:54:08.7357427Z             {
2026-06-13T11:54:08.7357847Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7358128Z               "line": 353
2026-06-13T11:54:08.7358392Z             },
2026-06-13T11:54:08.7358663Z             {
2026-06-13T11:54:08.7359096Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.7359390Z               "line": 60
2026-06-13T11:54:08.7359813Z             },
2026-06-13T11:54:08.7360089Z             {
2026-06-13T11:54:08.7360527Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7360814Z               "line": 368
2026-06-13T11:54:08.7361086Z             },
2026-06-13T11:54:08.7361353Z             {
2026-06-13T11:54:08.7361758Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7362039Z               "line": 417
2026-06-13T11:54:08.7362314Z             },
2026-06-13T11:54:08.7362580Z             {
2026-06-13T11:54:08.7362933Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7363224Z               "line": 19
2026-06-13T11:54:08.7363486Z             },
2026-06-13T11:54:08.7363757Z             {
2026-06-13T11:54:08.7364106Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7364387Z               "line": 70
2026-06-13T11:54:08.7364658Z             },
2026-06-13T11:54:08.7364913Z             {
2026-06-13T11:54:08.7365284Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7365566Z               "line": 96
2026-06-13T11:54:08.7365881Z             },
2026-06-13T11:54:08.7366148Z             {
2026-06-13T11:54:08.7366510Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7366805Z               "line": 121
2026-06-13T11:54:08.7367069Z             },
2026-06-13T11:54:08.7367336Z             {
2026-06-13T11:54:08.7367692Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7367978Z               "line": 172
2026-06-13T11:54:08.7368239Z             },
2026-06-13T11:54:08.7368511Z             {
2026-06-13T11:54:08.7368878Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.7369247Z               "line": 146
2026-06-13T11:54:08.7369513Z             },
2026-06-13T11:54:08.7369774Z             {
2026-06-13T11:54:08.7370110Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7370397Z               "line": 996
2026-06-13T11:54:08.7370673Z             }
2026-06-13T11:54:08.7370945Z           ]
2026-06-13T11:54:08.7371208Z         },
2026-06-13T11:54:08.7371479Z         "int": {
2026-06-13T11:54:08.7371765Z           "complete": false,
2026-06-13T11:54:08.7372051Z           "evidence": []
2026-06-13T11:54:08.7372313Z         },
2026-06-13T11:54:08.7372594Z         "unit": {
2026-06-13T11:54:08.7372883Z           "complete": true,
2026-06-13T11:54:08.7373165Z           "evidence": [
2026-06-13T11:54:08.7373431Z             {
2026-06-13T11:54:08.7373832Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7374113Z               "line": 577
2026-06-13T11:54:08.7374390Z             },
2026-06-13T11:54:08.7374656Z             {
2026-06-13T11:54:08.7375058Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.7375337Z               "line": 638
2026-06-13T11:54:08.7375606Z             },
2026-06-13T11:54:08.7375863Z             {
2026-06-13T11:54:08.7376216Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7376507Z               "line": 213
2026-06-13T11:54:08.7376770Z             },
2026-06-13T11:54:08.7377032Z             {
2026-06-13T11:54:08.7377380Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7377766Z               "line": 249
2026-06-13T11:54:08.7378028Z             },
2026-06-13T11:54:08.7378295Z             {
2026-06-13T11:54:08.7378733Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7379100Z               "line": 262
2026-06-13T11:54:08.7379372Z             },
2026-06-13T11:54:08.7379620Z             {
2026-06-13T11:54:08.7379973Z               "path": "crates/spt-store/src/home.rs",
2026-06-13T11:54:08.7380254Z               "line": 338
2026-06-13T11:54:08.7380525Z             },
2026-06-13T11:54:08.7380790Z             {
2026-06-13T11:54:08.7381138Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.7381425Z               "line": 513
2026-06-13T11:54:08.7381676Z             },
2026-06-13T11:54:08.7382054Z             {
2026-06-13T11:54:08.7382384Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7382664Z               "line": 5854
2026-06-13T11:54:08.7382931Z             },
2026-06-13T11:54:08.7383197Z             {
2026-06-13T11:54:08.7383524Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7383800Z               "line": 7419
2026-06-13T11:54:08.7384072Z             }
2026-06-13T11:54:08.7384325Z           ]
2026-06-13T11:54:08.7384591Z         }
2026-06-13T11:54:08.7384853Z       }
2026-06-13T11:54:08.7385106Z     },
2026-06-13T11:54:08.7385374Z     {
2026-06-13T11:54:08.7385646Z       "id": "REQ-INST-2",
2026-06-13T11:54:08.7386015Z       "title": "Per-node files, synced Psyche mind",
2026-06-13T11:54:08.7386305Z       "requiredStages": [
2026-06-13T11:54:08.7386582Z         "impl",
2026-06-13T11:54:08.7386854Z         "unit"
2026-06-13T11:54:08.7387110Z       ],
2026-06-13T11:54:08.7387377Z       "stages": {
2026-06-13T11:54:08.7387645Z         "doc": {
2026-06-13T11:54:08.7387935Z           "complete": false,
2026-06-13T11:54:08.7388213Z           "evidence": []
2026-06-13T11:54:08.7388480Z         },
2026-06-13T11:54:08.7388750Z         "impl": {
2026-06-13T11:54:08.7389112Z           "complete": true,
2026-06-13T11:54:08.7389394Z           "evidence": [
2026-06-13T11:54:08.7389646Z             {
2026-06-13T11:54:08.7390038Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7390309Z               "line": 88
2026-06-13T11:54:08.7390571Z             },
2026-06-13T11:54:08.7390842Z             {
2026-06-13T11:54:08.7391197Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.7391474Z               "line": 28
2026-06-13T11:54:08.7391737Z             },
2026-06-13T11:54:08.7392004Z             {
2026-06-13T11:54:08.7392356Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.7392634Z               "line": 74
2026-06-13T11:54:08.7392900Z             },
2026-06-13T11:54:08.7393167Z             {
2026-06-13T11:54:08.7393525Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.7393795Z               "line": 96
2026-06-13T11:54:08.7394055Z             },
2026-06-13T11:54:08.7394309Z             {
2026-06-13T11:54:08.7394661Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.7394952Z               "line": 86
2026-06-13T11:54:08.7395200Z             },
2026-06-13T11:54:08.7395462Z             {
2026-06-13T11:54:08.7395821Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-13T11:54:08.7396101Z               "line": 118
2026-06-13T11:54:08.7396366Z             }
2026-06-13T11:54:08.7396627Z           ]
2026-06-13T11:54:08.7396895Z         },
2026-06-13T11:54:08.7397157Z         "int": {
2026-06-13T11:54:08.7397452Z           "complete": false,
2026-06-13T11:54:08.7397734Z           "evidence": []
2026-06-13T11:54:08.7397995Z         },
2026-06-13T11:54:08.7398262Z         "unit": {
2026-06-13T11:54:08.7398553Z           "complete": true,
2026-06-13T11:54:08.7398843Z           "evidence": [
2026-06-13T11:54:08.7399181Z             {
2026-06-13T11:54:08.7399553Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-13T11:54:08.7399825Z               "line": 250
2026-06-13T11:54:08.7400087Z             },
2026-06-13T11:54:08.7400474Z             {
2026-06-13T11:54:08.7400845Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.7401122Z               "line": 272
2026-06-13T11:54:08.7401375Z             }
2026-06-13T11:54:08.7401641Z           ]
2026-06-13T11:54:08.7401900Z         }
2026-06-13T11:54:08.7402162Z       }
2026-06-13T11:54:08.7402420Z     },
2026-06-13T11:54:08.7402674Z     {
2026-06-13T11:54:08.7402964Z       "id": "REQ-INST-3",
2026-06-13T11:54:08.7403412Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-13T11:54:08.7403703Z       "requiredStages": [
2026-06-13T11:54:08.7403960Z         "doc",
2026-06-13T11:54:08.7404219Z         "impl",
2026-06-13T11:54:08.7404582Z         "unit"
2026-06-13T11:54:08.7404849Z       ],
2026-06-13T11:54:08.7405122Z       "stages": {
2026-06-13T11:54:08.7405383Z         "doc": {
2026-06-13T11:54:08.7405765Z           "complete": true,
2026-06-13T11:54:08.7406041Z           "evidence": [
2026-06-13T11:54:08.7406312Z             {
2026-06-13T11:54:08.7406657Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-13T11:54:08.7406931Z               "line": 3
2026-06-13T11:54:08.7407196Z             }
2026-06-13T11:54:08.7407450Z           ]
2026-06-13T11:54:08.7407712Z         },
2026-06-13T11:54:08.7407974Z         "impl": {
2026-06-13T11:54:08.7408264Z           "complete": true,
2026-06-13T11:54:08.7408535Z           "evidence": [
2026-06-13T11:54:08.7408799Z             {
2026-06-13T11:54:08.7409253Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.7409524Z               "line": 70
2026-06-13T11:54:08.7409789Z             },
2026-06-13T11:54:08.7410056Z             {
2026-06-13T11:54:08.7410442Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.7410728Z               "line": 480
2026-06-13T11:54:08.7411005Z             },
2026-06-13T11:54:08.7411268Z             {
2026-06-13T11:54:08.7411639Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7411954Z               "line": 204
2026-06-13T11:54:08.7412201Z             },
2026-06-13T11:54:08.7412461Z             {
2026-06-13T11:54:08.7412848Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7413129Z               "line": 334
2026-06-13T11:54:08.7413401Z             },
2026-06-13T11:54:08.7413667Z             {
2026-06-13T11:54:08.7414054Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7414335Z               "line": 368
2026-06-13T11:54:08.7414597Z             },
2026-06-13T11:54:08.7414858Z             {
2026-06-13T11:54:08.7415247Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T11:54:08.7415528Z               "line": 74
2026-06-13T11:54:08.7415800Z             },
2026-06-13T11:54:08.7416067Z             {
2026-06-13T11:54:08.7416463Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7416744Z               "line": 234
2026-06-13T11:54:08.7417012Z             },
2026-06-13T11:54:08.7417289Z             {
2026-06-13T11:54:08.7417695Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7417976Z               "line": 390
2026-06-13T11:54:08.7418248Z             },
2026-06-13T11:54:08.7418510Z             {
2026-06-13T11:54:08.7418887Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7419254Z               "line": 45
2026-06-13T11:54:08.7419517Z             },
2026-06-13T11:54:08.7419784Z             {
2026-06-13T11:54:08.7420156Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7420444Z               "line": 114
2026-06-13T11:54:08.7420711Z             },
2026-06-13T11:54:08.7420979Z             {
2026-06-13T11:54:08.7421355Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7421641Z               "line": 152
2026-06-13T11:54:08.7421909Z             },
2026-06-13T11:54:08.7422166Z             {
2026-06-13T11:54:08.7422651Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7422935Z               "line": 168
2026-06-13T11:54:08.7423207Z             },
2026-06-13T11:54:08.7423474Z             {
2026-06-13T11:54:08.7423841Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7424118Z               "line": 178
2026-06-13T11:54:08.7424385Z             },
2026-06-13T11:54:08.7424648Z             {
2026-06-13T11:54:08.7425024Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7425311Z               "line": 210
2026-06-13T11:54:08.7425580Z             },
2026-06-13T11:54:08.7425840Z             {
2026-06-13T11:54:08.7426217Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7426599Z               "line": 287
2026-06-13T11:54:08.7426866Z             },
2026-06-13T11:54:08.7427127Z             {
2026-06-13T11:54:08.7427505Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7427787Z               "line": 311
2026-06-13T11:54:08.7428047Z             },
2026-06-13T11:54:08.7428340Z             {
2026-06-13T11:54:08.7428721Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7429089Z               "line": 389
2026-06-13T11:54:08.7429360Z             },
2026-06-13T11:54:08.7429622Z             {
2026-06-13T11:54:08.7429999Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7430276Z               "line": 438
2026-06-13T11:54:08.7430548Z             },
2026-06-13T11:54:08.7430801Z             {
2026-06-13T11:54:08.7431181Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-13T11:54:08.7431463Z               "line": 37
2026-06-13T11:54:08.7431725Z             },
2026-06-13T11:54:08.7431998Z             {
2026-06-13T11:54:08.7432383Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7432665Z               "line": 62
2026-06-13T11:54:08.7432927Z             },
2026-06-13T11:54:08.7433192Z             {
2026-06-13T11:54:08.7433557Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.7433838Z               "line": 190
2026-06-13T11:54:08.7434110Z             },
2026-06-13T11:54:08.7434368Z             {
2026-06-13T11:54:08.7434697Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7434978Z               "line": 1325
2026-06-13T11:54:08.7435237Z             }
2026-06-13T11:54:08.7435495Z           ]
2026-06-13T11:54:08.7435741Z         },
2026-06-13T11:54:08.7435997Z         "int": {
2026-06-13T11:54:08.7436286Z           "complete": false,
2026-06-13T11:54:08.7436573Z           "evidence": []
2026-06-13T11:54:08.7436821Z         },
2026-06-13T11:54:08.7437083Z         "unit": {
2026-06-13T11:54:08.7437373Z           "complete": true,
2026-06-13T11:54:08.7437645Z           "evidence": [
2026-06-13T11:54:08.7437907Z             {
2026-06-13T11:54:08.7438279Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.7438550Z               "line": 360
2026-06-13T11:54:08.7438816Z             },
2026-06-13T11:54:08.7439191Z             {
2026-06-13T11:54:08.7439596Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7439882Z               "line": 787
2026-06-13T11:54:08.7440145Z             },
2026-06-13T11:54:08.7440398Z             {
2026-06-13T11:54:08.7440779Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7441060Z               "line": 844
2026-06-13T11:54:08.7441328Z             },
2026-06-13T11:54:08.7441594Z             {
2026-06-13T11:54:08.7441966Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.7442252Z               "line": 889
2026-06-13T11:54:08.7442509Z             },
2026-06-13T11:54:08.7442761Z             {
2026-06-13T11:54:08.7443149Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.7443424Z               "line": 1014
2026-06-13T11:54:08.7443691Z             },
2026-06-13T11:54:08.7443951Z             {
2026-06-13T11:54:08.7444456Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7444737Z               "line": 1212
2026-06-13T11:54:08.7444999Z             },
2026-06-13T11:54:08.7445257Z             {
2026-06-13T11:54:08.7445657Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7445939Z               "line": 1353
2026-06-13T11:54:08.7446186Z             },
2026-06-13T11:54:08.7446450Z             {
2026-06-13T11:54:08.7446818Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7447100Z               "line": 449
2026-06-13T11:54:08.7447362Z             },
2026-06-13T11:54:08.7447618Z             {
2026-06-13T11:54:08.7447996Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7448373Z               "line": 485
2026-06-13T11:54:08.7448649Z             },
2026-06-13T11:54:08.7448902Z             {
2026-06-13T11:54:08.7449367Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7449647Z               "line": 540
2026-06-13T11:54:08.7449914Z             },
2026-06-13T11:54:08.7450180Z             {
2026-06-13T11:54:08.7450553Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7450839Z               "line": 697
2026-06-13T11:54:08.7451091Z             },
2026-06-13T11:54:08.7451359Z             {
2026-06-13T11:54:08.7451735Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7452015Z               "line": 931
2026-06-13T11:54:08.7452283Z             },
2026-06-13T11:54:08.7452545Z             {
2026-06-13T11:54:08.7452917Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7453193Z               "line": 945
2026-06-13T11:54:08.7453466Z             },
2026-06-13T11:54:08.7453733Z             {
2026-06-13T11:54:08.7454105Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7454389Z               "line": 1214
2026-06-13T11:54:08.7454648Z             },
2026-06-13T11:54:08.7454916Z             {
2026-06-13T11:54:08.7455268Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.7455555Z               "line": 413
2026-06-13T11:54:08.7455822Z             },
2026-06-13T11:54:08.7456084Z             {
2026-06-13T11:54:08.7456413Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7456676Z               "line": 5878
2026-06-13T11:54:08.7456944Z             }
2026-06-13T11:54:08.7457194Z           ]
2026-06-13T11:54:08.7457463Z         }
2026-06-13T11:54:08.7457717Z       }
2026-06-13T11:54:08.7457979Z     },
2026-06-13T11:54:08.7458241Z     {
2026-06-13T11:54:08.7458517Z       "id": "REQ-INST-4",
2026-06-13T11:54:08.7459147Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-13T11:54:08.7459453Z       "requiredStages": [
2026-06-13T11:54:08.7459723Z         "impl",
2026-06-13T11:54:08.7459997Z         "unit"
2026-06-13T11:54:08.7460246Z       ],
2026-06-13T11:54:08.7460522Z       "stages": {
2026-06-13T11:54:08.7460780Z         "doc": {
2026-06-13T11:54:08.7461075Z           "complete": false,
2026-06-13T11:54:08.7461366Z           "evidence": []
2026-06-13T11:54:08.7461623Z         },
2026-06-13T11:54:08.7461894Z         "impl": {
2026-06-13T11:54:08.7462181Z           "complete": true,
2026-06-13T11:54:08.7462458Z           "evidence": [
2026-06-13T11:54:08.7462719Z             {
2026-06-13T11:54:08.7463096Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7463378Z               "line": 335
2026-06-13T11:54:08.7463639Z             },
2026-06-13T11:54:08.7463911Z             {
2026-06-13T11:54:08.7464269Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7464545Z               "line": 202
2026-06-13T11:54:08.7464811Z             },
2026-06-13T11:54:08.7465085Z             {
2026-06-13T11:54:08.7465443Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7465724Z               "line": 234
2026-06-13T11:54:08.7465991Z             },
2026-06-13T11:54:08.7466268Z             {
2026-06-13T11:54:08.7466744Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7467030Z               "line": 274
2026-06-13T11:54:08.7467292Z             }
2026-06-13T11:54:08.7467556Z           ]
2026-06-13T11:54:08.7467821Z         },
2026-06-13T11:54:08.7468090Z         "int": {
2026-06-13T11:54:08.7468385Z           "complete": false,
2026-06-13T11:54:08.7468672Z           "evidence": []
2026-06-13T11:54:08.7468930Z         },
2026-06-13T11:54:08.7469287Z         "unit": {
2026-06-13T11:54:08.7469573Z           "complete": true,
2026-06-13T11:54:08.7469859Z           "evidence": [
2026-06-13T11:54:08.7470127Z             {
2026-06-13T11:54:08.7470515Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.7470923Z               "line": 839
2026-06-13T11:54:08.7471191Z             },
2026-06-13T11:54:08.7471458Z             {
2026-06-13T11:54:08.7471831Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7472111Z               "line": 561
2026-06-13T11:54:08.7472398Z             },
2026-06-13T11:54:08.7472661Z             {
2026-06-13T11:54:08.7473037Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7473318Z               "line": 668
2026-06-13T11:54:08.7473580Z             },
2026-06-13T11:54:08.7473841Z             {
2026-06-13T11:54:08.7474219Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7474504Z               "line": 750
2026-06-13T11:54:08.7474771Z             }
2026-06-13T11:54:08.7475038Z           ]
2026-06-13T11:54:08.7475300Z         }
2026-06-13T11:54:08.7475562Z       }
2026-06-13T11:54:08.7475817Z     },
2026-06-13T11:54:08.7476078Z     {
2026-06-13T11:54:08.7476370Z       "id": "REQ-INST-5",
2026-06-13T11:54:08.7476938Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-13T11:54:08.7477233Z       "requiredStages": [
2026-06-13T11:54:08.7477496Z         "impl",
2026-06-13T11:54:08.7477773Z         "unit",
2026-06-13T11:54:08.7478035Z         "int"
2026-06-13T11:54:08.7478328Z       ],
2026-06-13T11:54:08.7478607Z       "stages": {
2026-06-13T11:54:08.7479033Z         "doc": {
2026-06-13T11:54:08.7479333Z           "complete": false,
2026-06-13T11:54:08.7479624Z           "evidence": []
2026-06-13T11:54:08.7479886Z         },
2026-06-13T11:54:08.7480157Z         "impl": {
2026-06-13T11:54:08.7480448Z           "complete": true,
2026-06-13T11:54:08.7480739Z           "evidence": [
2026-06-13T11:54:08.7481037Z             {
2026-06-13T11:54:08.7481427Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-13T11:54:08.7481699Z               "line": 85
2026-06-13T11:54:08.7481971Z             },
2026-06-13T11:54:08.7482239Z             {
2026-06-13T11:54:08.7482610Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7482892Z               "line": 68
2026-06-13T11:54:08.7483154Z             },
2026-06-13T11:54:08.7483420Z             {
2026-06-13T11:54:08.7483772Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7484062Z               "line": 99
2026-06-13T11:54:08.7484330Z             },
2026-06-13T11:54:08.7484598Z             {
2026-06-13T11:54:08.7484960Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7485245Z               "line": 183
2026-06-13T11:54:08.7485513Z             },
2026-06-13T11:54:08.7485771Z             {
2026-06-13T11:54:08.7486131Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7486415Z               "line": 314
2026-06-13T11:54:08.7486682Z             }
2026-06-13T11:54:08.7486954Z           ]
2026-06-13T11:54:08.7487216Z         },
2026-06-13T11:54:08.7487493Z         "int": {
2026-06-13T11:54:08.7487783Z           "complete": true,
2026-06-13T11:54:08.7488079Z           "evidence": [
2026-06-13T11:54:08.7488347Z             {
2026-06-13T11:54:08.7488746Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.7489120Z               "line": 156
2026-06-13T11:54:08.7489388Z             },
2026-06-13T11:54:08.7489754Z             {
2026-06-13T11:54:08.7490131Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:54:08.7490417Z               "line": 102
2026-06-13T11:54:08.7490688Z             },
2026-06-13T11:54:08.7490942Z             {
2026-06-13T11:54:08.7491322Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7491597Z               "line": 637
2026-06-13T11:54:08.7491864Z             },
2026-06-13T11:54:08.7492121Z             {
2026-06-13T11:54:08.7492503Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7492822Z               "line": 974
2026-06-13T11:54:08.7493084Z             }
2026-06-13T11:54:08.7493341Z           ]
2026-06-13T11:54:08.7493700Z         },
2026-06-13T11:54:08.7493971Z         "unit": {
2026-06-13T11:54:08.7494251Z           "complete": true,
2026-06-13T11:54:08.7494523Z           "evidence": [
2026-06-13T11:54:08.7494791Z             {
2026-06-13T11:54:08.7495148Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7495439Z               "line": 552
2026-06-13T11:54:08.7495697Z             },
2026-06-13T11:54:08.7495954Z             {
2026-06-13T11:54:08.7496308Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.7496586Z               "line": 595
2026-06-13T11:54:08.7496846Z             },
2026-06-13T11:54:08.7497114Z             {
2026-06-13T11:54:08.7497475Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.7497748Z               "line": 219
2026-06-13T11:54:08.7498015Z             }
2026-06-13T11:54:08.7498278Z           ]
2026-06-13T11:54:08.7498545Z         }
2026-06-13T11:54:08.7498802Z       }
2026-06-13T11:54:08.7499146Z     },
2026-06-13T11:54:08.7499425Z     {
2026-06-13T11:54:08.7499699Z       "id": "REQ-INST-6",
2026-06-13T11:54:08.7500277Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-13T11:54:08.7500577Z       "requiredStages": [
2026-06-13T11:54:08.7500845Z         "impl",
2026-06-13T11:54:08.7501121Z         "unit",
2026-06-13T11:54:08.7501378Z         "int"
2026-06-13T11:54:08.7501640Z       ],
2026-06-13T11:54:08.7501906Z       "stages": {
2026-06-13T11:54:08.7502167Z         "doc": {
2026-06-13T11:54:08.7502453Z           "complete": true,
2026-06-13T11:54:08.7502725Z           "evidence": [
2026-06-13T11:54:08.7502996Z             {
2026-06-13T11:54:08.7503306Z               "path": "docs/DEFERRED.md",
2026-06-13T11:54:08.7503587Z               "line": 13
2026-06-13T11:54:08.7503849Z             }
2026-06-13T11:54:08.7504111Z           ]
2026-06-13T11:54:08.7504379Z         },
2026-06-13T11:54:08.7504647Z         "impl": {
2026-06-13T11:54:08.7504935Z           "complete": true,
2026-06-13T11:54:08.7505221Z           "evidence": [
2026-06-13T11:54:08.7505488Z             {
2026-06-13T11:54:08.7505870Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.7506155Z               "line": 391
2026-06-13T11:54:08.7506418Z             },
2026-06-13T11:54:08.7506680Z             {
2026-06-13T11:54:08.7507070Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:54:08.7507340Z               "line": 27
2026-06-13T11:54:08.7507613Z             },
2026-06-13T11:54:08.7507870Z             {
2026-06-13T11:54:08.7508242Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:54:08.7508509Z               "line": 73
2026-06-13T11:54:08.7508776Z             },
2026-06-13T11:54:08.7509110Z             {
2026-06-13T11:54:08.7509477Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-13T11:54:08.7509763Z               "line": 182
2026-06-13T11:54:08.7510023Z             },
2026-06-13T11:54:08.7510288Z             {
2026-06-13T11:54:08.7510664Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7510950Z               "line": 426
2026-06-13T11:54:08.7511213Z             },
2026-06-13T11:54:08.7511465Z             {
2026-06-13T11:54:08.7511823Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T11:54:08.7512205Z               "line": 31
2026-06-13T11:54:08.7512471Z             },
2026-06-13T11:54:08.7512728Z             {
2026-06-13T11:54:08.7513089Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.7513375Z               "line": 182
2026-06-13T11:54:08.7513633Z             },
2026-06-13T11:54:08.7513885Z             {
2026-06-13T11:54:08.7514244Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.7514515Z               "line": 81
2026-06-13T11:54:08.7514777Z             },
2026-06-13T11:54:08.7515043Z             {
2026-06-13T11:54:08.7515376Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7515657Z               "line": 1326
2026-06-13T11:54:08.7516020Z             },
2026-06-13T11:54:08.7516278Z             {
2026-06-13T11:54:08.7516626Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7516902Z               "line": 179
2026-06-13T11:54:08.7517160Z             },
2026-06-13T11:54:08.7517423Z             {
2026-06-13T11:54:08.7517769Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7518053Z               "line": 215
2026-06-13T11:54:08.7518314Z             }
2026-06-13T11:54:08.7518582Z           ]
2026-06-13T11:54:08.7518844Z         },
2026-06-13T11:54:08.7519192Z         "int": {
2026-06-13T11:54:08.7519493Z           "complete": true,
2026-06-13T11:54:08.7519769Z           "evidence": [
2026-06-13T11:54:08.7520032Z             {
2026-06-13T11:54:08.7520422Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7520702Z               "line": 651
2026-06-13T11:54:08.7520977Z             },
2026-06-13T11:54:08.7521229Z             {
2026-06-13T11:54:08.7521631Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7521908Z               "line": 1019
2026-06-13T11:54:08.7522169Z             },
2026-06-13T11:54:08.7522422Z             {
2026-06-13T11:54:08.7522765Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.7523055Z               "line": 726
2026-06-13T11:54:08.7523320Z             }
2026-06-13T11:54:08.7523582Z           ]
2026-06-13T11:54:08.7523845Z         },
2026-06-13T11:54:08.7524116Z         "unit": {
2026-06-13T11:54:08.7524411Z           "complete": true,
2026-06-13T11:54:08.7524693Z           "evidence": [
2026-06-13T11:54:08.7524969Z             {
2026-06-13T11:54:08.7525351Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.7525632Z               "line": 661
2026-06-13T11:54:08.7525898Z             },
2026-06-13T11:54:08.7526167Z             {
2026-06-13T11:54:08.7526542Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.7526829Z               "line": 899
2026-06-13T11:54:08.7527105Z             },
2026-06-13T11:54:08.7527368Z             {
2026-06-13T11:54:08.7527735Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-13T11:54:08.7528012Z               "line": 66
2026-06-13T11:54:08.7528281Z             },
2026-06-13T11:54:08.7528550Z             {
2026-06-13T11:54:08.7528923Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.7529286Z               "line": 272
2026-06-13T11:54:08.7529548Z             },
2026-06-13T11:54:08.7529809Z             {
2026-06-13T11:54:08.7530162Z               "path": "crates/spt/src/api/worker.rs",
2026-06-13T11:54:08.7530449Z               "line": 201
2026-06-13T11:54:08.7530710Z             }
2026-06-13T11:54:08.7530982Z           ]
2026-06-13T11:54:08.7531248Z         }
2026-06-13T11:54:08.7531509Z       }
2026-06-13T11:54:08.7531775Z     },
2026-06-13T11:54:08.7532037Z     {
2026-06-13T11:54:08.7532328Z       "id": "REQ-INST-7",
2026-06-13T11:54:08.7532758Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-13T11:54:08.7533063Z       "requiredStages": [
2026-06-13T11:54:08.7533334Z         "impl",
2026-06-13T11:54:08.7533596Z         "unit",
2026-06-13T11:54:08.7533871Z         "int"
2026-06-13T11:54:08.7534129Z       ],
2026-06-13T11:54:08.7534524Z       "stages": {
2026-06-13T11:54:08.7534796Z         "doc": {
2026-06-13T11:54:08.7535091Z           "complete": false,
2026-06-13T11:54:08.7535378Z           "evidence": []
2026-06-13T11:54:08.7535640Z         },
2026-06-13T11:54:08.7539584Z         "impl": {
2026-06-13T11:54:08.7539912Z           "complete": true,
2026-06-13T11:54:08.7540194Z           "evidence": [
2026-06-13T11:54:08.7540456Z             {
2026-06-13T11:54:08.7540856Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.7541144Z               "line": 436
2026-06-13T11:54:08.7541410Z             },
2026-06-13T11:54:08.7541679Z             {
2026-06-13T11:54:08.7542088Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7542522Z               "line": 27
2026-06-13T11:54:08.7542789Z             },
2026-06-13T11:54:08.7543052Z             {
2026-06-13T11:54:08.7543471Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7543757Z               "line": 207
2026-06-13T11:54:08.7544034Z             },
2026-06-13T11:54:08.7544289Z             {
2026-06-13T11:54:08.7544694Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7544970Z               "line": 344
2026-06-13T11:54:08.7545231Z             },
2026-06-13T11:54:08.7545498Z             {
2026-06-13T11:54:08.7545870Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-13T11:54:08.7546142Z               "line": 59
2026-06-13T11:54:08.7546405Z             },
2026-06-13T11:54:08.7546671Z             {
2026-06-13T11:54:08.7547052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7547334Z               "line": 41
2026-06-13T11:54:08.7547615Z             },
2026-06-13T11:54:08.7547878Z             {
2026-06-13T11:54:08.7548272Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7548554Z               "line": 27
2026-06-13T11:54:08.7548822Z             },
2026-06-13T11:54:08.7549165Z             {
2026-06-13T11:54:08.7549571Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7549854Z               "line": 119
2026-06-13T11:54:08.7550120Z             },
2026-06-13T11:54:08.7550387Z             {
2026-06-13T11:54:08.7550787Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7551074Z               "line": 134
2026-06-13T11:54:08.7551341Z             },
2026-06-13T11:54:08.7551602Z             {
2026-06-13T11:54:08.7551980Z               "path": "crates/spt-store/src/registry.rs",
2026-06-13T11:54:08.7552264Z               "line": 139
2026-06-13T11:54:08.7552524Z             }
2026-06-13T11:54:08.7552791Z           ]
2026-06-13T11:54:08.7553059Z         },
2026-06-13T11:54:08.7553335Z         "int": {
2026-06-13T11:54:08.7553631Z           "complete": true,
2026-06-13T11:54:08.7553913Z           "evidence": [
2026-06-13T11:54:08.7554169Z             {
2026-06-13T11:54:08.7554557Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:54:08.7554845Z               "line": 102
2026-06-13T11:54:08.7555119Z             },
2026-06-13T11:54:08.7555391Z             {
2026-06-13T11:54:08.7555772Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7556058Z               "line": 595
2026-06-13T11:54:08.7556321Z             },
2026-06-13T11:54:08.7556588Z             {
2026-06-13T11:54:08.7556970Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7557231Z               "line": 869
2026-06-13T11:54:08.7557495Z             }
2026-06-13T11:54:08.7557751Z           ]
2026-06-13T11:54:08.7558013Z         },
2026-06-13T11:54:08.7558279Z         "unit": {
2026-06-13T11:54:08.7558570Z           "complete": true,
2026-06-13T11:54:08.7558847Z           "evidence": [
2026-06-13T11:54:08.7559186Z             {
2026-06-13T11:54:08.7559606Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7559900Z               "line": 1082
2026-06-13T11:54:08.7560155Z             },
2026-06-13T11:54:08.7560526Z             {
2026-06-13T11:54:08.7560938Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.7561213Z               "line": 1414
2026-06-13T11:54:08.7561480Z             },
2026-06-13T11:54:08.7561743Z             {
2026-06-13T11:54:08.7562129Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-13T11:54:08.7562401Z               "line": 84
2026-06-13T11:54:08.7562668Z             },
2026-06-13T11:54:08.7562934Z             {
2026-06-13T11:54:08.7563323Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7563609Z               "line": 780
2026-06-13T11:54:08.7563872Z             },
2026-06-13T11:54:08.7564133Z             {
2026-06-13T11:54:08.7564638Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7564919Z               "line": 791
2026-06-13T11:54:08.7565183Z             },
2026-06-13T11:54:08.7565443Z             {
2026-06-13T11:54:08.7565828Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7566109Z               "line": 806
2026-06-13T11:54:08.7566376Z             },
2026-06-13T11:54:08.7566637Z             {
2026-06-13T11:54:08.7567010Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7567296Z               "line": 166
2026-06-13T11:54:08.7567558Z             },
2026-06-13T11:54:08.7567820Z             {
2026-06-13T11:54:08.7568205Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7568478Z               "line": 181
2026-06-13T11:54:08.7568740Z             },
2026-06-13T11:54:08.7569084Z             {
2026-06-13T11:54:08.7569474Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.7569765Z               "line": 214
2026-06-13T11:54:08.7570036Z             }
2026-06-13T11:54:08.7570281Z           ]
2026-06-13T11:54:08.7570536Z         }
2026-06-13T11:54:08.7570801Z       }
2026-06-13T11:54:08.7571058Z     },
2026-06-13T11:54:08.7571316Z     {
2026-06-13T11:54:08.7571612Z       "id": "REQ-INST-8",
2026-06-13T11:54:08.7572084Z       "title": "Remote-control mode distinct from local operation",
2026-06-13T11:54:08.7572384Z       "requiredStages": [
2026-06-13T11:54:08.7572651Z         "impl",
2026-06-13T11:54:08.7572918Z         "unit",
2026-06-13T11:54:08.7573177Z         "int"
2026-06-13T11:54:08.7573441Z       ],
2026-06-13T11:54:08.7573711Z       "stages": {
2026-06-13T11:54:08.7573978Z         "doc": {
2026-06-13T11:54:08.7574273Z           "complete": false,
2026-06-13T11:54:08.7574546Z           "evidence": []
2026-06-13T11:54:08.7574803Z         },
2026-06-13T11:54:08.7575057Z         "impl": {
2026-06-13T11:54:08.7575347Z           "complete": true,
2026-06-13T11:54:08.7575619Z           "evidence": [
2026-06-13T11:54:08.7575875Z             {
2026-06-13T11:54:08.7576248Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.7576521Z               "line": 98
2026-06-13T11:54:08.7576788Z             },
2026-06-13T11:54:08.7577060Z             {
2026-06-13T11:54:08.7577432Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.7577703Z               "line": 209
2026-06-13T11:54:08.7577966Z             },
2026-06-13T11:54:08.7578229Z             {
2026-06-13T11:54:08.7578601Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.7579018Z               "line": 230
2026-06-13T11:54:08.7579281Z             },
2026-06-13T11:54:08.7579543Z             {
2026-06-13T11:54:08.7579910Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:54:08.7580173Z               "line": 35
2026-06-13T11:54:08.7580440Z             }
2026-06-13T11:54:08.7580701Z           ]
2026-06-13T11:54:08.7580972Z         },
2026-06-13T11:54:08.7581224Z         "int": {
2026-06-13T11:54:08.7581524Z           "complete": true,
2026-06-13T11:54:08.7581796Z           "evidence": [
2026-06-13T11:54:08.7582048Z             {
2026-06-13T11:54:08.7582435Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.7582811Z               "line": 415
2026-06-13T11:54:08.7583083Z             },
2026-06-13T11:54:08.7583341Z             {
2026-06-13T11:54:08.7583732Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.7584006Z               "line": 933
2026-06-13T11:54:08.7584271Z             }
2026-06-13T11:54:08.7584533Z           ]
2026-06-13T11:54:08.7584796Z         },
2026-06-13T11:54:08.7585068Z         "unit": {
2026-06-13T11:54:08.7585349Z           "complete": true,
2026-06-13T11:54:08.7585631Z           "evidence": [
2026-06-13T11:54:08.7585894Z             {
2026-06-13T11:54:08.7586266Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:54:08.7586663Z               "line": 181
2026-06-13T11:54:08.7586924Z             },
2026-06-13T11:54:08.7587191Z             {
2026-06-13T11:54:08.7587568Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:54:08.7587845Z               "line": 259
2026-06-13T11:54:08.7588111Z             },
2026-06-13T11:54:08.7588368Z             {
2026-06-13T11:54:08.7588736Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:54:08.7589085Z               "line": 70
2026-06-13T11:54:08.7589349Z             },
2026-06-13T11:54:08.7589616Z             {
2026-06-13T11:54:08.7589997Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-13T11:54:08.7590260Z               "line": 110
2026-06-13T11:54:08.7590523Z             }
2026-06-13T11:54:08.7590790Z           ]
2026-06-13T11:54:08.7591053Z         }
2026-06-13T11:54:08.7591315Z       }
2026-06-13T11:54:08.7591575Z     },
2026-06-13T11:54:08.7591840Z     {
2026-06-13T11:54:08.7592126Z       "id": "REQ-INST-9",
2026-06-13T11:54:08.7592713Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-13T11:54:08.7593013Z       "requiredStages": [
2026-06-13T11:54:08.7593277Z         "impl",
2026-06-13T11:54:08.7593552Z         "unit"
2026-06-13T11:54:08.7593814Z       ],
2026-06-13T11:54:08.7594105Z       "stages": {
2026-06-13T11:54:08.7594391Z         "doc": {
2026-06-13T11:54:08.7594698Z           "complete": false,
2026-06-13T11:54:08.7594975Z           "evidence": []
2026-06-13T11:54:08.7595242Z         },
2026-06-13T11:54:08.7595505Z         "impl": {
2026-06-13T11:54:08.7595824Z           "complete": true,
2026-06-13T11:54:08.7596109Z           "evidence": [
2026-06-13T11:54:08.7596371Z             {
2026-06-13T11:54:08.7596764Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7597047Z               "line": 417
2026-06-13T11:54:08.7597316Z             }
2026-06-13T11:54:08.7597617Z           ]
2026-06-13T11:54:08.7597885Z         },
2026-06-13T11:54:08.7598161Z         "int": {
2026-06-13T11:54:08.7598467Z           "complete": false,
2026-06-13T11:54:08.7598772Z           "evidence": []
2026-06-13T11:54:08.7599120Z         },
2026-06-13T11:54:08.7599397Z         "unit": {
2026-06-13T11:54:08.7599722Z           "complete": true,
2026-06-13T11:54:08.7600030Z           "evidence": [
2026-06-13T11:54:08.7600301Z             {
2026-06-13T11:54:08.7600688Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7600974Z               "line": 1321
2026-06-13T11:54:08.7601241Z             },
2026-06-13T11:54:08.7601512Z             {
2026-06-13T11:54:08.7601894Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7602207Z               "line": 1330
2026-06-13T11:54:08.7602476Z             },
2026-06-13T11:54:08.7602725Z             {
2026-06-13T11:54:08.7603105Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7603387Z               "line": 1346
2026-06-13T11:54:08.7603640Z             },
2026-06-13T11:54:08.7603912Z             {
2026-06-13T11:54:08.7604283Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7604574Z               "line": 1358
2026-06-13T11:54:08.7604828Z             },
2026-06-13T11:54:08.7605088Z             {
2026-06-13T11:54:08.7605592Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.7605874Z               "line": 1378
2026-06-13T11:54:08.7606131Z             }
2026-06-13T11:54:08.7606384Z           ]
2026-06-13T11:54:08.7606655Z         }
2026-06-13T11:54:08.7606922Z       }
2026-06-13T11:54:08.7607184Z     },
2026-06-13T11:54:08.7607447Z     {
2026-06-13T11:54:08.7607736Z       "id": "REQ-INSTALL-1",
2026-06-13T11:54:08.7608345Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-13T11:54:08.7608645Z       "requiredStages": [
2026-06-13T11:54:08.7608907Z         "doc",
2026-06-13T11:54:08.7609266Z         "impl",
2026-06-13T11:54:08.7609532Z         "int"
2026-06-13T11:54:08.7609896Z       ],
2026-06-13T11:54:08.7610157Z       "stages": {
2026-06-13T11:54:08.7610427Z         "doc": {
2026-06-13T11:54:08.7610713Z           "complete": true,
2026-06-13T11:54:08.7610991Z           "evidence": [
2026-06-13T11:54:08.7611253Z             {
2026-06-13T11:54:08.7611567Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7611849Z               "line": 628
2026-06-13T11:54:08.7612111Z             }
2026-06-13T11:54:08.7612367Z           ]
2026-06-13T11:54:08.7612629Z         },
2026-06-13T11:54:08.7612895Z         "impl": {
2026-06-13T11:54:08.7613185Z           "complete": true,
2026-06-13T11:54:08.7613462Z           "evidence": [
2026-06-13T11:54:08.7613728Z             {
2026-06-13T11:54:08.7614063Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7614333Z               "line": 57
2026-06-13T11:54:08.7614586Z             },
2026-06-13T11:54:08.7614839Z             {
2026-06-13T11:54:08.7615153Z               "path": "installer/install.sh",
2026-06-13T11:54:08.7615431Z               "line": 52
2026-06-13T11:54:08.7615715Z             }
2026-06-13T11:54:08.7615975Z           ]
2026-06-13T11:54:08.7616237Z         },
2026-06-13T11:54:08.7616500Z         "int": {
2026-06-13T11:54:08.7616795Z           "complete": true,
2026-06-13T11:54:08.7617072Z           "evidence": [
2026-06-13T11:54:08.7617325Z             {
2026-06-13T11:54:08.7617711Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:54:08.7617979Z               "line": 21
2026-06-13T11:54:08.7618240Z             }
2026-06-13T11:54:08.7618504Z           ]
2026-06-13T11:54:08.7618761Z         },
2026-06-13T11:54:08.7619114Z         "unit": {
2026-06-13T11:54:08.7619409Z           "complete": false,
2026-06-13T11:54:08.7619682Z           "evidence": []
2026-06-13T11:54:08.7619935Z         }
2026-06-13T11:54:08.7620193Z       }
2026-06-13T11:54:08.7620441Z     },
2026-06-13T11:54:08.7620702Z     {
2026-06-13T11:54:08.7620987Z       "id": "REQ-INSTALL-2",
2026-06-13T11:54:08.7621417Z       "title": "Marketplace-repackaging-friendly install",
2026-06-13T11:54:08.7621760Z       "requiredStages": [
2026-06-13T11:54:08.7622237Z         "doc"
2026-06-13T11:54:08.7622561Z       ],
2026-06-13T11:54:08.7622832Z       "stages": {
2026-06-13T11:54:08.7623100Z         "doc": {
2026-06-13T11:54:08.7623409Z           "complete": true,
2026-06-13T11:54:08.7623697Z           "evidence": [
2026-06-13T11:54:08.7623969Z             {
2026-06-13T11:54:08.7624279Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7624565Z               "line": 629
2026-06-13T11:54:08.7624831Z             }
2026-06-13T11:54:08.7625095Z           ]
2026-06-13T11:54:08.7625361Z         },
2026-06-13T11:54:08.7625629Z         "impl": {
2026-06-13T11:54:08.7625906Z           "complete": false,
2026-06-13T11:54:08.7626175Z           "evidence": []
2026-06-13T11:54:08.7626440Z         },
2026-06-13T11:54:08.7626702Z         "int": {
2026-06-13T11:54:08.7626989Z           "complete": false,
2026-06-13T11:54:08.7627265Z           "evidence": []
2026-06-13T11:54:08.7627538Z         },
2026-06-13T11:54:08.7627809Z         "unit": {
2026-06-13T11:54:08.7628095Z           "complete": false,
2026-06-13T11:54:08.7628386Z           "evidence": []
2026-06-13T11:54:08.7628647Z         }
2026-06-13T11:54:08.7628912Z       }
2026-06-13T11:54:08.7629379Z     },
2026-06-13T11:54:08.7629650Z     {
2026-06-13T11:54:08.7629936Z       "id": "REQ-INSTALL-3",
2026-06-13T11:54:08.7630386Z       "title": "Idempotent + interactive-optional first run",
2026-06-13T11:54:08.7630676Z       "requiredStages": [
2026-06-13T11:54:08.7630933Z         "impl",
2026-06-13T11:54:08.7631195Z         "int"
2026-06-13T11:54:08.7631462Z       ],
2026-06-13T11:54:08.7631753Z       "stages": {
2026-06-13T11:54:08.7632035Z         "doc": {
2026-06-13T11:54:08.7632325Z           "complete": false,
2026-06-13T11:54:08.7632601Z           "evidence": []
2026-06-13T11:54:08.7632853Z         },
2026-06-13T11:54:08.7633126Z         "impl": {
2026-06-13T11:54:08.7633411Z           "complete": true,
2026-06-13T11:54:08.7633811Z           "evidence": [
2026-06-13T11:54:08.7634076Z             {
2026-06-13T11:54:08.7634405Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7634696Z               "line": 100
2026-06-13T11:54:08.7634958Z             },
2026-06-13T11:54:08.7635240Z             {
2026-06-13T11:54:08.7635574Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7635856Z               "line": 111
2026-06-13T11:54:08.7636123Z             },
2026-06-13T11:54:08.7636389Z             {
2026-06-13T11:54:08.7636716Z               "path": "installer/install.sh",
2026-06-13T11:54:08.7636986Z               "line": 79
2026-06-13T11:54:08.7637249Z             }
2026-06-13T11:54:08.7637511Z           ]
2026-06-13T11:54:08.7637774Z         },
2026-06-13T11:54:08.7638045Z         "int": {
2026-06-13T11:54:08.7638335Z           "complete": true,
2026-06-13T11:54:08.7638617Z           "evidence": [
2026-06-13T11:54:08.7638879Z             {
2026-06-13T11:54:08.7639345Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:54:08.7639648Z               "line": 167
2026-06-13T11:54:08.7639914Z             }
2026-06-13T11:54:08.7640187Z           ]
2026-06-13T11:54:08.7640445Z         },
2026-06-13T11:54:08.7640716Z         "unit": {
2026-06-13T11:54:08.7641012Z           "complete": false,
2026-06-13T11:54:08.7641295Z           "evidence": []
2026-06-13T11:54:08.7641556Z         }
2026-06-13T11:54:08.7641823Z       }
2026-06-13T11:54:08.7642084Z     },
2026-06-13T11:54:08.7642351Z     {
2026-06-13T11:54:08.7642656Z       "id": "REQ-INSTALL-4",
2026-06-13T11:54:08.7644698Z       "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-13T11:54:08.7644998Z       "requiredStages": [
2026-06-13T11:54:08.7645266Z         "impl",
2026-06-13T11:54:08.7645542Z         "unit"
2026-06-13T11:54:08.7645814Z       ],
2026-06-13T11:54:08.7646086Z       "stages": {
2026-06-13T11:54:08.7646353Z         "doc": {
2026-06-13T11:54:08.7646644Z           "complete": false,
2026-06-13T11:54:08.7646929Z           "evidence": []
2026-06-13T11:54:08.7647191Z         },
2026-06-13T11:54:08.7647471Z         "impl": {
2026-06-13T11:54:08.7647766Z           "complete": true,
2026-06-13T11:54:08.7648043Z           "evidence": [
2026-06-13T11:54:08.7648315Z             {
2026-06-13T11:54:08.7648729Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.7649115Z               "line": 154
2026-06-13T11:54:08.7649386Z             },
2026-06-13T11:54:08.7649660Z             {
2026-06-13T11:54:08.7650046Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7650329Z               "line": 29
2026-06-13T11:54:08.7650600Z             },
2026-06-13T11:54:08.7650862Z             {
2026-06-13T11:54:08.7651253Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7651535Z               "line": 139
2026-06-13T11:54:08.7651811Z             },
2026-06-13T11:54:08.7652077Z             {
2026-06-13T11:54:08.7652460Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7652744Z               "line": 183
2026-06-13T11:54:08.7653136Z             },
2026-06-13T11:54:08.7653412Z             {
2026-06-13T11:54:08.7653803Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7654094Z               "line": 213
2026-06-13T11:54:08.7654361Z             },
2026-06-13T11:54:08.7654623Z             {
2026-06-13T11:54:08.7655012Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7655291Z               "line": 245
2026-06-13T11:54:08.7655558Z             },
2026-06-13T11:54:08.7655826Z             {
2026-06-13T11:54:08.7656145Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7656432Z               "line": 4389
2026-06-13T11:54:08.7656694Z             }
2026-06-13T11:54:08.7657070Z           ]
2026-06-13T11:54:08.7657338Z         },
2026-06-13T11:54:08.7657610Z         "int": {
2026-06-13T11:54:08.7657909Z           "complete": false,
2026-06-13T11:54:08.7658182Z           "evidence": []
2026-06-13T11:54:08.7658449Z         },
2026-06-13T11:54:08.7658717Z         "unit": {
2026-06-13T11:54:08.7659127Z           "complete": true,
2026-06-13T11:54:08.7659398Z           "evidence": [
2026-06-13T11:54:08.7659670Z             {
2026-06-13T11:54:08.7660086Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.7660366Z               "line": 335
2026-06-13T11:54:08.7660635Z             },
2026-06-13T11:54:08.7660899Z             {
2026-06-13T11:54:08.7661283Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7661565Z               "line": 567
2026-06-13T11:54:08.7661832Z             },
2026-06-13T11:54:08.7662095Z             {
2026-06-13T11:54:08.7662480Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7662777Z               "line": 608
2026-06-13T11:54:08.7663049Z             },
2026-06-13T11:54:08.7663314Z             {
2026-06-13T11:54:08.7663696Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7663977Z               "line": 628
2026-06-13T11:54:08.7664253Z             },
2026-06-13T11:54:08.7664515Z             {
2026-06-13T11:54:08.7664844Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7665120Z               "line": 6197
2026-06-13T11:54:08.7665392Z             }
2026-06-13T11:54:08.7665649Z           ]
2026-06-13T11:54:08.7665919Z         }
2026-06-13T11:54:08.7666186Z       }
2026-06-13T11:54:08.7666447Z     },
2026-06-13T11:54:08.7666714Z     {
2026-06-13T11:54:08.7667006Z       "id": "REQ-INSTALL-5",
2026-06-13T11:54:08.7668539Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-13T11:54:08.7668834Z       "requiredStages": [
2026-06-13T11:54:08.7669163Z         "impl",
2026-06-13T11:54:08.7669430Z         "int"
2026-06-13T11:54:08.7669692Z       ],
2026-06-13T11:54:08.7669968Z       "stages": {
2026-06-13T11:54:08.7670225Z         "doc": {
2026-06-13T11:54:08.7670516Z           "complete": false,
2026-06-13T11:54:08.7670789Z           "evidence": []
2026-06-13T11:54:08.7671049Z         },
2026-06-13T11:54:08.7671324Z         "impl": {
2026-06-13T11:54:08.7671614Z           "complete": true,
2026-06-13T11:54:08.7671891Z           "evidence": [
2026-06-13T11:54:08.7672163Z             {
2026-06-13T11:54:08.7672492Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7672769Z               "line": 5
2026-06-13T11:54:08.7673027Z             },
2026-06-13T11:54:08.7673285Z             {
2026-06-13T11:54:08.7673604Z               "path": "installer/install.sh",
2026-06-13T11:54:08.7673893Z               "line": 6
2026-06-13T11:54:08.7674155Z             }
2026-06-13T11:54:08.7674426Z           ]
2026-06-13T11:54:08.7674685Z         },
2026-06-13T11:54:08.7674947Z         "int": {
2026-06-13T11:54:08.7675239Z           "complete": true,
2026-06-13T11:54:08.7675515Z           "evidence": [
2026-06-13T11:54:08.7675781Z             {
2026-06-13T11:54:08.7676274Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-13T11:54:08.7676561Z               "line": 22
2026-06-13T11:54:08.7676827Z             }
2026-06-13T11:54:08.7677089Z           ]
2026-06-13T11:54:08.7677355Z         },
2026-06-13T11:54:08.7677627Z         "unit": {
2026-06-13T11:54:08.7677923Z           "complete": false,
2026-06-13T11:54:08.7678200Z           "evidence": []
2026-06-13T11:54:08.7678463Z         }
2026-06-13T11:54:08.7678726Z       }
2026-06-13T11:54:08.7679146Z     },
2026-06-13T11:54:08.7679447Z     {
2026-06-13T11:54:08.7679738Z       "id": "REQ-INSTALL-6",
2026-06-13T11:54:08.7683329Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-13T11:54:08.7683748Z       "requiredStages": [
2026-06-13T11:54:08.7684021Z         "impl",
2026-06-13T11:54:08.7684287Z         "unit"
2026-06-13T11:54:08.7684539Z       ],
2026-06-13T11:54:08.7684816Z       "stages": {
2026-06-13T11:54:08.7685083Z         "doc": {
2026-06-13T11:54:08.7685383Z           "complete": false,
2026-06-13T11:54:08.7685664Z           "evidence": []
2026-06-13T11:54:08.7685931Z         },
2026-06-13T11:54:08.7686202Z         "impl": {
2026-06-13T11:54:08.7686480Z           "complete": true,
2026-06-13T11:54:08.7686765Z           "evidence": [
2026-06-13T11:54:08.7687024Z             {
2026-06-13T11:54:08.7687406Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.7687712Z               "line": 59
2026-06-13T11:54:08.7687984Z             },
2026-06-13T11:54:08.7688250Z             {
2026-06-13T11:54:08.7688623Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.7688909Z               "line": 559
2026-06-13T11:54:08.7689267Z             },
2026-06-13T11:54:08.7689536Z             {
2026-06-13T11:54:08.7689921Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.7690206Z               "line": 191
2026-06-13T11:54:08.7690473Z             },
2026-06-13T11:54:08.7690735Z             {
2026-06-13T11:54:08.7691122Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.7691403Z               "line": 276
2026-06-13T11:54:08.7691665Z             },
2026-06-13T11:54:08.7691928Z             {
2026-06-13T11:54:08.7692264Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:54:08.7692550Z               "line": 40
2026-06-13T11:54:08.7692812Z             },
2026-06-13T11:54:08.7693078Z             {
2026-06-13T11:54:08.7693408Z               "path": "installer/install.sh",
2026-06-13T11:54:08.7693693Z               "line": 104
2026-06-13T11:54:08.7693951Z             }
2026-06-13T11:54:08.7694208Z           ]
2026-06-13T11:54:08.7694476Z         },
2026-06-13T11:54:08.7694743Z         "int": {
2026-06-13T11:54:08.7695042Z           "complete": false,
2026-06-13T11:54:08.7695318Z           "evidence": []
2026-06-13T11:54:08.7695585Z         },
2026-06-13T11:54:08.7695852Z         "unit": {
2026-06-13T11:54:08.7696144Z           "complete": true,
2026-06-13T11:54:08.7696420Z           "evidence": [
2026-06-13T11:54:08.7696674Z             {
2026-06-13T11:54:08.7697059Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-13T11:54:08.7697339Z               "line": 866
2026-06-13T11:54:08.7697604Z             }
2026-06-13T11:54:08.7697856Z           ]
2026-06-13T11:54:08.7698123Z         }
2026-06-13T11:54:08.7698381Z       }
2026-06-13T11:54:08.7698638Z     },
2026-06-13T11:54:08.7698902Z     {
2026-06-13T11:54:08.7699278Z       "id": "REQ-INSTALL-7",
2026-06-13T11:54:08.7702658Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-13T11:54:08.7702970Z       "requiredStages": [
2026-06-13T11:54:08.7703238Z         "impl"
2026-06-13T11:54:08.7703500Z       ],
2026-06-13T11:54:08.7703772Z       "stages": {
2026-06-13T11:54:08.7704039Z         "doc": {
2026-06-13T11:54:08.7704331Z           "complete": false,
2026-06-13T11:54:08.7704617Z           "evidence": []
2026-06-13T11:54:08.7704888Z         },
2026-06-13T11:54:08.7705150Z         "impl": {
2026-06-13T11:54:08.7705445Z           "complete": true,
2026-06-13T11:54:08.7705726Z           "evidence": [
2026-06-13T11:54:08.7706116Z             {
2026-06-13T11:54:08.7706445Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7706732Z               "line": 3047
2026-06-13T11:54:08.7707008Z             },
2026-06-13T11:54:08.7707272Z             {
2026-06-13T11:54:08.7707638Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7707918Z               "line": 157
2026-06-13T11:54:08.7708188Z             }
2026-06-13T11:54:08.7708450Z           ]
2026-06-13T11:54:08.7708717Z         },
2026-06-13T11:54:08.7709060Z         "int": {
2026-06-13T11:54:08.7709356Z           "complete": false,
2026-06-13T11:54:08.7709642Z           "evidence": []
2026-06-13T11:54:08.7709904Z         },
2026-06-13T11:54:08.7710186Z         "unit": {
2026-06-13T11:54:08.7710477Z           "complete": false,
2026-06-13T11:54:08.7710757Z           "evidence": []
2026-06-13T11:54:08.7711026Z         }
2026-06-13T11:54:08.7711283Z       }
2026-06-13T11:54:08.7711555Z     },
2026-06-13T11:54:08.7711809Z     {
2026-06-13T11:54:08.7712123Z       "id": "REQ-INSTALL-8",
2026-06-13T11:54:08.7715501Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-13T11:54:08.7715802Z       "requiredStages": [
2026-06-13T11:54:08.7716071Z         "impl"
2026-06-13T11:54:08.7716334Z       ],
2026-06-13T11:54:08.7716601Z       "stages": {
2026-06-13T11:54:08.7716863Z         "doc": {
2026-06-13T11:54:08.7717159Z           "complete": false,
2026-06-13T11:54:08.7717446Z           "evidence": []
2026-06-13T11:54:08.7717708Z         },
2026-06-13T11:54:08.7717979Z         "impl": {
2026-06-13T11:54:08.7718254Z           "complete": true,
2026-06-13T11:54:08.7718534Z           "evidence": [
2026-06-13T11:54:08.7718801Z             {
2026-06-13T11:54:08.7719206Z               "path": "installer/install.ps1",
2026-06-13T11:54:08.7719492Z               "line": 184
2026-06-13T11:54:08.7719750Z             },
2026-06-13T11:54:08.7720012Z             {
2026-06-13T11:54:08.7720346Z               "path": "installer/install.sh",
2026-06-13T11:54:08.7720633Z               "line": 121
2026-06-13T11:54:08.7720894Z             }
2026-06-13T11:54:08.7721164Z           ]
2026-06-13T11:54:08.7721429Z         },
2026-06-13T11:54:08.7721697Z         "int": {
2026-06-13T11:54:08.7721987Z           "complete": false,
2026-06-13T11:54:08.7722264Z           "evidence": []
2026-06-13T11:54:08.7722526Z         },
2026-06-13T11:54:08.7722793Z         "unit": {
2026-06-13T11:54:08.7723078Z           "complete": false,
2026-06-13T11:54:08.7723360Z           "evidence": []
2026-06-13T11:54:08.7723608Z         }
2026-06-13T11:54:08.7723874Z       }
2026-06-13T11:54:08.7724115Z     },
2026-06-13T11:54:08.7724377Z     {
2026-06-13T11:54:08.7724677Z       "id": "REQ-MANIFEST-1",
2026-06-13T11:54:08.7725269Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-13T11:54:08.7725565Z       "requiredStages": [
2026-06-13T11:54:08.7725822Z         "doc",
2026-06-13T11:54:08.7726198Z         "impl",
2026-06-13T11:54:08.7726466Z         "unit"
2026-06-13T11:54:08.7726727Z       ],
2026-06-13T11:54:08.7727004Z       "stages": {
2026-06-13T11:54:08.7727261Z         "doc": {
2026-06-13T11:54:08.7727556Z           "complete": true,
2026-06-13T11:54:08.7727829Z           "evidence": [
2026-06-13T11:54:08.7728086Z             {
2026-06-13T11:54:08.7728392Z               "path": "docs/MANIFEST.md",
2026-06-13T11:54:08.7728673Z               "line": 19
2026-06-13T11:54:08.7728924Z             }
2026-06-13T11:54:08.7729275Z           ]
2026-06-13T11:54:08.7729542Z         },
2026-06-13T11:54:08.7729808Z         "impl": {
2026-06-13T11:54:08.7730095Z           "complete": true,
2026-06-13T11:54:08.7730476Z           "evidence": [
2026-06-13T11:54:08.7730734Z             {
2026-06-13T11:54:08.7731125Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7731415Z               "line": 18
2026-06-13T11:54:08.7731672Z             }
2026-06-13T11:54:08.7731933Z           ]
2026-06-13T11:54:08.7732205Z         },
2026-06-13T11:54:08.7732471Z         "int": {
2026-06-13T11:54:08.7732767Z           "complete": false,
2026-06-13T11:54:08.7733038Z           "evidence": []
2026-06-13T11:54:08.7733300Z         },
2026-06-13T11:54:08.7733567Z         "unit": {
2026-06-13T11:54:08.7733854Z           "complete": true,
2026-06-13T11:54:08.7734136Z           "evidence": [
2026-06-13T11:54:08.7734391Z             {
2026-06-13T11:54:08.7734785Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7735058Z               "line": 820
2026-06-13T11:54:08.7735324Z             },
2026-06-13T11:54:08.7735581Z             {
2026-06-13T11:54:08.7735963Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7736253Z               "line": 934
2026-06-13T11:54:08.7736520Z             },
2026-06-13T11:54:08.7736782Z             {
2026-06-13T11:54:08.7737168Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7737458Z               "line": 946
2026-06-13T11:54:08.7737726Z             },
2026-06-13T11:54:08.7737979Z             {
2026-06-13T11:54:08.7738375Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7738655Z               "line": 957
2026-06-13T11:54:08.7738928Z             },
2026-06-13T11:54:08.7739266Z             {
2026-06-13T11:54:08.7739640Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7739922Z               "line": 974
2026-06-13T11:54:08.7740183Z             },
2026-06-13T11:54:08.7740445Z             {
2026-06-13T11:54:08.7740823Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7741109Z               "line": 988
2026-06-13T11:54:08.7741380Z             },
2026-06-13T11:54:08.7741642Z             {
2026-06-13T11:54:08.7746022Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7746332Z               "line": 1053
2026-06-13T11:54:08.7746591Z             },
2026-06-13T11:54:08.7746858Z             {
2026-06-13T11:54:08.7747277Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7747564Z               "line": 1068
2026-06-13T11:54:08.7747828Z             },
2026-06-13T11:54:08.7748090Z             {
2026-06-13T11:54:08.7748482Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7748773Z               "line": 1083
2026-06-13T11:54:08.7749126Z             },
2026-06-13T11:54:08.7749403Z             {
2026-06-13T11:54:08.7749794Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7750078Z               "line": 1094
2026-06-13T11:54:08.7750347Z             }
2026-06-13T11:54:08.7750609Z           ]
2026-06-13T11:54:08.7750876Z         }
2026-06-13T11:54:08.7751139Z       }
2026-06-13T11:54:08.7751402Z     },
2026-06-13T11:54:08.7751659Z     {
2026-06-13T11:54:08.7751960Z       "id": "REQ-MANIFEST-2",
2026-06-13T11:54:08.7753639Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-13T11:54:08.7753944Z       "requiredStages": [
2026-06-13T11:54:08.7754221Z         "doc",
2026-06-13T11:54:08.7754487Z         "impl",
2026-06-13T11:54:08.7754759Z         "unit"
2026-06-13T11:54:08.7755021Z       ],
2026-06-13T11:54:08.7755289Z       "stages": {
2026-06-13T11:54:08.7755559Z         "doc": {
2026-06-13T11:54:08.7755843Z           "complete": true,
2026-06-13T11:54:08.7756129Z           "evidence": [
2026-06-13T11:54:08.7756391Z             {
2026-06-13T11:54:08.7756696Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7756978Z               "line": 75
2026-06-13T11:54:08.7757240Z             }
2026-06-13T11:54:08.7757631Z           ]
2026-06-13T11:54:08.7757898Z         },
2026-06-13T11:54:08.7758166Z         "impl": {
2026-06-13T11:54:08.7758456Z           "complete": true,
2026-06-13T11:54:08.7758742Z           "evidence": [
2026-06-13T11:54:08.7759086Z             {
2026-06-13T11:54:08.7759509Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7759790Z               "line": 66
2026-06-13T11:54:08.7760053Z             },
2026-06-13T11:54:08.7760321Z             {
2026-06-13T11:54:08.7760714Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7760999Z               "line": 15
2026-06-13T11:54:08.7761260Z             },
2026-06-13T11:54:08.7761522Z             {
2026-06-13T11:54:08.7761905Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7762180Z               "line": 65
2026-06-13T11:54:08.7762452Z             },
2026-06-13T11:54:08.7762715Z             {
2026-06-13T11:54:08.7763115Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7763400Z               "line": 83
2026-06-13T11:54:08.7763665Z             },
2026-06-13T11:54:08.7763933Z             {
2026-06-13T11:54:08.7764322Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7764614Z               "line": 165
2026-06-13T11:54:08.7764881Z             },
2026-06-13T11:54:08.7765149Z             {
2026-06-13T11:54:08.7765539Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7765821Z               "line": 326
2026-06-13T11:54:08.7766091Z             },
2026-06-13T11:54:08.7766351Z             {
2026-06-13T11:54:08.7766733Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7767024Z               "line": 352
2026-06-13T11:54:08.7767285Z             },
2026-06-13T11:54:08.7767543Z             {
2026-06-13T11:54:08.7767929Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7768215Z               "line": 430
2026-06-13T11:54:08.7768482Z             },
2026-06-13T11:54:08.7768744Z             {
2026-06-13T11:54:08.7769220Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7769501Z               "line": 455
2026-06-13T11:54:08.7769773Z             },
2026-06-13T11:54:08.7770040Z             {
2026-06-13T11:54:08.7770436Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7770717Z               "line": 478
2026-06-13T11:54:08.7770984Z             },
2026-06-13T11:54:08.7771251Z             {
2026-06-13T11:54:08.7771631Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7771916Z               "line": 493
2026-06-13T11:54:08.7772184Z             },
2026-06-13T11:54:08.7772455Z             {
2026-06-13T11:54:08.7772780Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7773070Z               "line": 4539
2026-06-13T11:54:08.7773336Z             },
2026-06-13T11:54:08.7773594Z             {
2026-06-13T11:54:08.7773927Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7774215Z               "line": 4553
2026-06-13T11:54:08.7774488Z             },
2026-06-13T11:54:08.7774750Z             {
2026-06-13T11:54:08.7775079Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7775361Z               "line": 4587
2026-06-13T11:54:08.7775732Z             }
2026-06-13T11:54:08.7776005Z           ]
2026-06-13T11:54:08.7776267Z         },
2026-06-13T11:54:08.7776541Z         "int": {
2026-06-13T11:54:08.7776835Z           "complete": false,
2026-06-13T11:54:08.7777121Z           "evidence": []
2026-06-13T11:54:08.7777393Z         },
2026-06-13T11:54:08.7777674Z         "unit": {
2026-06-13T11:54:08.7777965Z           "complete": true,
2026-06-13T11:54:08.7778243Z           "evidence": [
2026-06-13T11:54:08.7778514Z             {
2026-06-13T11:54:08.7779076Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.7779371Z               "line": 920
2026-06-13T11:54:08.7779633Z             },
2026-06-13T11:54:08.7780004Z             {
2026-06-13T11:54:08.7780395Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7780672Z               "line": 193
2026-06-13T11:54:08.7780939Z             },
2026-06-13T11:54:08.7781197Z             {
2026-06-13T11:54:08.7781582Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7781857Z               "line": 254
2026-06-13T11:54:08.7782109Z             },
2026-06-13T11:54:08.7782366Z             {
2026-06-13T11:54:08.7782734Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7783016Z               "line": 295
2026-06-13T11:54:08.7783272Z             },
2026-06-13T11:54:08.7783530Z             {
2026-06-13T11:54:08.7783916Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7784188Z               "line": 307
2026-06-13T11:54:08.7784454Z             },
2026-06-13T11:54:08.7784720Z             {
2026-06-13T11:54:08.7785091Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7785387Z               "line": 318
2026-06-13T11:54:08.7785649Z             },
2026-06-13T11:54:08.7785916Z             {
2026-06-13T11:54:08.7786293Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7786579Z               "line": 327
2026-06-13T11:54:08.7786846Z             },
2026-06-13T11:54:08.7787115Z             {
2026-06-13T11:54:08.7787495Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7787771Z               "line": 343
2026-06-13T11:54:08.7788038Z             },
2026-06-13T11:54:08.7788301Z             {
2026-06-13T11:54:08.7788677Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7789049Z               "line": 400
2026-06-13T11:54:08.7789321Z             },
2026-06-13T11:54:08.7789588Z             {
2026-06-13T11:54:08.7789968Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7790255Z               "line": 681
2026-06-13T11:54:08.7790513Z             },
2026-06-13T11:54:08.7790794Z             {
2026-06-13T11:54:08.7791190Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7791471Z               "line": 705
2026-06-13T11:54:08.7791748Z             },
2026-06-13T11:54:08.7791997Z             {
2026-06-13T11:54:08.7792380Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7792694Z               "line": 731
2026-06-13T11:54:08.7792960Z             },
2026-06-13T11:54:08.7793212Z             {
2026-06-13T11:54:08.7793599Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7793885Z               "line": 750
2026-06-13T11:54:08.7794156Z             },
2026-06-13T11:54:08.7794461Z             {
2026-06-13T11:54:08.7794859Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7795166Z               "line": 781
2026-06-13T11:54:08.7795426Z             },
2026-06-13T11:54:08.7795688Z             {
2026-06-13T11:54:08.7796133Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.7796418Z               "line": 309
2026-06-13T11:54:08.7796685Z             },
2026-06-13T11:54:08.7796952Z             {
2026-06-13T11:54:08.7797300Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.7797689Z               "line": 477
2026-06-13T11:54:08.7797969Z             },
2026-06-13T11:54:08.7798236Z             {
2026-06-13T11:54:08.7798569Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7798847Z               "line": 6261
2026-06-13T11:54:08.7799181Z             },
2026-06-13T11:54:08.7799457Z             {
2026-06-13T11:54:08.7799786Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7800063Z               "line": 7140
2026-06-13T11:54:08.7800331Z             }
2026-06-13T11:54:08.7800591Z           ]
2026-06-13T11:54:08.7800858Z         }
2026-06-13T11:54:08.7801120Z       }
2026-06-13T11:54:08.7801402Z     },
2026-06-13T11:54:08.7801669Z     {
2026-06-13T11:54:08.7801969Z       "id": "REQ-MANIFEST-3",
2026-06-13T11:54:08.7803968Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-13T11:54:08.7804273Z       "requiredStages": [
2026-06-13T11:54:08.7804536Z         "doc",
2026-06-13T11:54:08.7804813Z         "impl",
2026-06-13T11:54:08.7805075Z         "unit"
2026-06-13T11:54:08.7805341Z       ],
2026-06-13T11:54:08.7805607Z       "stages": {
2026-06-13T11:54:08.7805882Z         "doc": {
2026-06-13T11:54:08.7806173Z           "complete": true,
2026-06-13T11:54:08.7806450Z           "evidence": [
2026-06-13T11:54:08.7806707Z             {
2026-06-13T11:54:08.7807017Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7807298Z               "line": 81
2026-06-13T11:54:08.7807569Z             }
2026-06-13T11:54:08.7807841Z           ]
2026-06-13T11:54:08.7808104Z         },
2026-06-13T11:54:08.7808370Z         "impl": {
2026-06-13T11:54:08.7808678Z           "complete": true,
2026-06-13T11:54:08.7809030Z           "evidence": [
2026-06-13T11:54:08.7809298Z             {
2026-06-13T11:54:08.7809693Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7809975Z               "line": 76
2026-06-13T11:54:08.7810237Z             },
2026-06-13T11:54:08.7810514Z             {
2026-06-13T11:54:08.7810891Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7811175Z               "line": 101
2026-06-13T11:54:08.7811446Z             },
2026-06-13T11:54:08.7811699Z             {
2026-06-13T11:54:08.7812090Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7812366Z               "line": 114
2026-06-13T11:54:08.7812625Z             },
2026-06-13T11:54:08.7812887Z             {
2026-06-13T11:54:08.7813277Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7813561Z               "line": 376
2026-06-13T11:54:08.7813838Z             },
2026-06-13T11:54:08.7814114Z             {
2026-06-13T11:54:08.7814500Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7814786Z               "line": 392
2026-06-13T11:54:08.7815054Z             },
2026-06-13T11:54:08.7815325Z             {
2026-06-13T11:54:08.7815664Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7815955Z               "line": 4600
2026-06-13T11:54:08.7816224Z             },
2026-06-13T11:54:08.7816485Z             {
2026-06-13T11:54:08.7816818Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7817095Z               "line": 4622
2026-06-13T11:54:08.7817363Z             }
2026-06-13T11:54:08.7817634Z           ]
2026-06-13T11:54:08.7817897Z         },
2026-06-13T11:54:08.7818173Z         "int": {
2026-06-13T11:54:08.7818463Z           "complete": false,
2026-06-13T11:54:08.7818758Z           "evidence": []
2026-06-13T11:54:08.7819108Z         },
2026-06-13T11:54:08.7819380Z         "unit": {
2026-06-13T11:54:08.7819676Z           "complete": true,
2026-06-13T11:54:08.7819953Z           "evidence": [
2026-06-13T11:54:08.7820225Z             {
2026-06-13T11:54:08.7820606Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7820892Z               "line": 353
2026-06-13T11:54:08.7821263Z             },
2026-06-13T11:54:08.7821541Z             {
2026-06-13T11:54:08.7821925Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-13T11:54:08.7822198Z               "line": 385
2026-06-13T11:54:08.7822469Z             },
2026-06-13T11:54:08.7822732Z             {
2026-06-13T11:54:08.7823123Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-13T11:54:08.7823400Z               "line": 805
2026-06-13T11:54:08.7823667Z             },
2026-06-13T11:54:08.7823936Z             {
2026-06-13T11:54:08.7824268Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.7824558Z               "line": 6316
2026-06-13T11:54:08.7824821Z             }
2026-06-13T11:54:08.7825212Z           ]
2026-06-13T11:54:08.7825474Z         }
2026-06-13T11:54:08.7825737Z       }
2026-06-13T11:54:08.7826008Z     },
2026-06-13T11:54:08.7826268Z     {
2026-06-13T11:54:08.7826563Z       "id": "REQ-MANIFEST-4",
2026-06-13T11:54:08.7828580Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-13T11:54:08.7828876Z       "requiredStages": [
2026-06-13T11:54:08.7829224Z         "doc",
2026-06-13T11:54:08.7829494Z         "impl",
2026-06-13T11:54:08.7829750Z         "unit"
2026-06-13T11:54:08.7830007Z       ],
2026-06-13T11:54:08.7830283Z       "stages": {
2026-06-13T11:54:08.7830542Z         "doc": {
2026-06-13T11:54:08.7830837Z           "complete": true,
2026-06-13T11:54:08.7831114Z           "evidence": [
2026-06-13T11:54:08.7831377Z             {
2026-06-13T11:54:08.7831677Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.7831973Z               "line": 86
2026-06-13T11:54:08.7832238Z             }
2026-06-13T11:54:08.7832500Z           ]
2026-06-13T11:54:08.7832768Z         },
2026-06-13T11:54:08.7833030Z         "impl": {
2026-06-13T11:54:08.7833321Z           "complete": true,
2026-06-13T11:54:08.7833602Z           "evidence": [
2026-06-13T11:54:08.7833859Z             {
2026-06-13T11:54:08.7834247Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7834521Z               "line": 84
2026-06-13T11:54:08.7834790Z             },
2026-06-13T11:54:08.7835048Z             {
2026-06-13T11:54:08.7835424Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7835710Z               "line": 148
2026-06-13T11:54:08.7835969Z             },
2026-06-13T11:54:08.7836231Z             {
2026-06-13T11:54:08.7836583Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7836870Z               "line": 83
2026-06-13T11:54:08.7837138Z             },
2026-06-13T11:54:08.7837412Z             {
2026-06-13T11:54:08.7837791Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.7838073Z               "line": 437
2026-06-13T11:54:08.7838334Z             },
2026-06-13T11:54:08.7838587Z             {
2026-06-13T11:54:08.7839042Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.7839322Z               "line": 462
2026-06-13T11:54:08.7839584Z             }
2026-06-13T11:54:08.7839845Z           ]
2026-06-13T11:54:08.7840106Z         },
2026-06-13T11:54:08.7840378Z         "int": {
2026-06-13T11:54:08.7840663Z           "complete": false,
2026-06-13T11:54:08.7840955Z           "evidence": []
2026-06-13T11:54:08.7841211Z         },
2026-06-13T11:54:08.7841478Z         "unit": {
2026-06-13T11:54:08.7841769Z           "complete": true,
2026-06-13T11:54:08.7842050Z           "evidence": [
2026-06-13T11:54:08.7842313Z             {
2026-06-13T11:54:08.7842693Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7842976Z               "line": 1003
2026-06-13T11:54:08.7843247Z             },
2026-06-13T11:54:08.7843509Z             {
2026-06-13T11:54:08.7843900Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.7844187Z               "line": 1036
2026-06-13T11:54:08.7844554Z             },
2026-06-13T11:54:08.7844816Z             {
2026-06-13T11:54:08.7845190Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.7845470Z               "line": 739
2026-06-13T11:54:08.7845732Z             }
2026-06-13T11:54:08.7845999Z           ]
2026-06-13T11:54:08.7846256Z         }
2026-06-13T11:54:08.7846529Z       }
2026-06-13T11:54:08.7846791Z     },
2026-06-13T11:54:08.7847054Z     {
2026-06-13T11:54:08.7847345Z       "id": "REQ-MESH-1",
2026-06-13T11:54:08.7853578Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-13T11:54:08.7854006Z       "requiredStages": [
2026-06-13T11:54:08.7854278Z         "impl",
2026-06-13T11:54:08.7854555Z         "unit",
2026-06-13T11:54:08.7854832Z         "int"
2026-06-13T11:54:08.7855090Z       ],
2026-06-13T11:54:08.7855358Z       "stages": {
2026-06-13T11:54:08.7855626Z         "doc": {
2026-06-13T11:54:08.7855925Z           "complete": false,
2026-06-13T11:54:08.7856215Z           "evidence": []
2026-06-13T11:54:08.7856474Z         },
2026-06-13T11:54:08.7856779Z         "impl": {
2026-06-13T11:54:08.7857069Z           "complete": true,
2026-06-13T11:54:08.7857356Z           "evidence": [
2026-06-13T11:54:08.7857623Z             {
2026-06-13T11:54:08.7858004Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.7858301Z               "line": 680
2026-06-13T11:54:08.7858565Z             },
2026-06-13T11:54:08.7858835Z             {
2026-06-13T11:54:08.7859327Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7859612Z               "line": 38
2026-06-13T11:54:08.7859880Z             },
2026-06-13T11:54:08.7860138Z             {
2026-06-13T11:54:08.7860534Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7860820Z               "line": 161
2026-06-13T11:54:08.7861085Z             },
2026-06-13T11:54:08.7861349Z             {
2026-06-13T11:54:08.7861745Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7862036Z               "line": 206
2026-06-13T11:54:08.7862317Z             },
2026-06-13T11:54:08.7862593Z             {
2026-06-13T11:54:08.7862975Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.7863266Z               "line": 57
2026-06-13T11:54:08.7863533Z             },
2026-06-13T11:54:08.7863809Z             {
2026-06-13T11:54:08.7864227Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7864509Z               "line": 24
2026-06-13T11:54:08.7864772Z             },
2026-06-13T11:54:08.7865039Z             {
2026-06-13T11:54:08.7865468Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7865749Z               "line": 142
2026-06-13T11:54:08.7866016Z             },
2026-06-13T11:54:08.7866282Z             {
2026-06-13T11:54:08.7866690Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7866976Z               "line": 162
2026-06-13T11:54:08.7867244Z             }
2026-06-13T11:54:08.7867511Z           ]
2026-06-13T11:54:08.7867782Z         },
2026-06-13T11:54:08.7868053Z         "int": {
2026-06-13T11:54:08.7868345Z           "complete": true,
2026-06-13T11:54:08.7868625Z           "evidence": [
2026-06-13T11:54:08.7868898Z             {
2026-06-13T11:54:08.7869505Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:54:08.7869797Z               "line": 67
2026-06-13T11:54:08.7870063Z             },
2026-06-13T11:54:08.7870339Z             {
2026-06-13T11:54:08.7870750Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:54:08.7871027Z               "line": 93
2026-06-13T11:54:08.7871293Z             },
2026-06-13T11:54:08.7871559Z             {
2026-06-13T11:54:08.7871972Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:54:08.7872247Z               "line": 117
2026-06-13T11:54:08.7872524Z             },
2026-06-13T11:54:08.7872796Z             {
2026-06-13T11:54:08.7873197Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-13T11:54:08.7873589Z               "line": 134
2026-06-13T11:54:08.7873845Z             }
2026-06-13T11:54:08.7874122Z           ]
2026-06-13T11:54:08.7874383Z         },
2026-06-13T11:54:08.7874656Z         "unit": {
2026-06-13T11:54:08.7874946Z           "complete": true,
2026-06-13T11:54:08.7875237Z           "evidence": [
2026-06-13T11:54:08.7875509Z             {
2026-06-13T11:54:08.7875890Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.7876177Z               "line": 427
2026-06-13T11:54:08.7876434Z             },
2026-06-13T11:54:08.7876699Z             {
2026-06-13T11:54:08.7877117Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7877398Z               "line": 376
2026-06-13T11:54:08.7877664Z             },
2026-06-13T11:54:08.7877922Z             {
2026-06-13T11:54:08.7878333Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7878623Z               "line": 412
2026-06-13T11:54:08.7879044Z             },
2026-06-13T11:54:08.7879302Z             {
2026-06-13T11:54:08.7879714Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7880003Z               "line": 427
2026-06-13T11:54:08.7880265Z             },
2026-06-13T11:54:08.7880536Z             {
2026-06-13T11:54:08.7880953Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7881233Z               "line": 438
2026-06-13T11:54:08.7881500Z             },
2026-06-13T11:54:08.7881767Z             {
2026-06-13T11:54:08.7882185Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7882460Z               "line": 449
2026-06-13T11:54:08.7882727Z             },
2026-06-13T11:54:08.7882995Z             {
2026-06-13T11:54:08.7883394Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7883686Z               "line": 460
2026-06-13T11:54:08.7883952Z             },
2026-06-13T11:54:08.7884230Z             {
2026-06-13T11:54:08.7884644Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7884929Z               "line": 496
2026-06-13T11:54:08.7885197Z             },
2026-06-13T11:54:08.7885459Z             {
2026-06-13T11:54:08.7885879Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7886154Z               "line": 519
2026-06-13T11:54:08.7886423Z             },
2026-06-13T11:54:08.7886685Z             {
2026-06-13T11:54:08.7887099Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.7887389Z               "line": 546
2026-06-13T11:54:08.7887648Z             }
2026-06-13T11:54:08.7887914Z           ]
2026-06-13T11:54:08.7888177Z         }
2026-06-13T11:54:08.7888440Z       }
2026-06-13T11:54:08.7888697Z     },
2026-06-13T11:54:08.7889050Z     {
2026-06-13T11:54:08.7889341Z       "id": "REQ-MESH-2",
2026-06-13T11:54:08.7897002Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-13T11:54:08.7897326Z       "requiredStages": [
2026-06-13T11:54:08.7897588Z         "impl",
2026-06-13T11:54:08.7897852Z         "unit",
2026-06-13T11:54:08.7898123Z         "int"
2026-06-13T11:54:08.7898385Z       ],
2026-06-13T11:54:08.7898780Z       "stages": {
2026-06-13T11:54:08.7899133Z         "doc": {
2026-06-13T11:54:08.7899414Z           "complete": false,
2026-06-13T11:54:08.7899701Z           "evidence": []
2026-06-13T11:54:08.7899963Z         },
2026-06-13T11:54:08.7900226Z         "impl": {
2026-06-13T11:54:08.7900541Z           "complete": true,
2026-06-13T11:54:08.7900825Z           "evidence": [
2026-06-13T11:54:08.7901090Z             {
2026-06-13T11:54:08.7901462Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.7901744Z               "line": 569
2026-06-13T11:54:08.7902005Z             },
2026-06-13T11:54:08.7902268Z             {
2026-06-13T11:54:08.7902654Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7902935Z               "line": 118
2026-06-13T11:54:08.7903192Z             },
2026-06-13T11:54:08.7903457Z             {
2026-06-13T11:54:08.7903833Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7904105Z               "line": 347
2026-06-13T11:54:08.7904387Z             },
2026-06-13T11:54:08.7904654Z             {
2026-06-13T11:54:08.7905040Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7905322Z               "line": 389
2026-06-13T11:54:08.7905589Z             },
2026-06-13T11:54:08.7905851Z             {
2026-06-13T11:54:08.7906231Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7906516Z               "line": 403
2026-06-13T11:54:08.7906788Z             },
2026-06-13T11:54:08.7907051Z             {
2026-06-13T11:54:08.7907422Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7907704Z               "line": 492
2026-06-13T11:54:08.7907965Z             },
2026-06-13T11:54:08.7908215Z             {
2026-06-13T11:54:08.7908602Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7908869Z               "line": 507
2026-06-13T11:54:08.7909217Z             },
2026-06-13T11:54:08.7909485Z             {
2026-06-13T11:54:08.7909870Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.7910156Z               "line": 534
2026-06-13T11:54:08.7910415Z             },
2026-06-13T11:54:08.7910677Z             {
2026-06-13T11:54:08.7911073Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7911347Z               "line": 207
2026-06-13T11:54:08.7911616Z             },
2026-06-13T11:54:08.7911879Z             {
2026-06-13T11:54:08.7912280Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7912560Z               "line": 755
2026-06-13T11:54:08.7912823Z             },
2026-06-13T11:54:08.7913080Z             {
2026-06-13T11:54:08.7913467Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7913752Z               "line": 816
2026-06-13T11:54:08.7914008Z             },
2026-06-13T11:54:08.7914269Z             {
2026-06-13T11:54:08.7914661Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7914966Z               "line": 869
2026-06-13T11:54:08.7915228Z             },
2026-06-13T11:54:08.7915495Z             {
2026-06-13T11:54:08.7915877Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7916159Z               "line": 891
2026-06-13T11:54:08.7916540Z             },
2026-06-13T11:54:08.7916810Z             {
2026-06-13T11:54:08.7917163Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7917449Z               "line": 122
2026-06-13T11:54:08.7917706Z             },
2026-06-13T11:54:08.7917972Z             {
2026-06-13T11:54:08.7918326Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7918612Z               "line": 44
2026-06-13T11:54:08.7918883Z             },
2026-06-13T11:54:08.7919228Z             {
2026-06-13T11:54:08.7919600Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7919876Z               "line": 184
2026-06-13T11:54:08.7920144Z             },
2026-06-13T11:54:08.7920406Z             {
2026-06-13T11:54:08.7920897Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7921232Z               "line": 211
2026-06-13T11:54:08.7921498Z             },
2026-06-13T11:54:08.7921769Z             {
2026-06-13T11:54:08.7922134Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7922415Z               "line": 251
2026-06-13T11:54:08.7922678Z             },
2026-06-13T11:54:08.7922940Z             {
2026-06-13T11:54:08.7923292Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7923561Z               "line": 275
2026-06-13T11:54:08.7923818Z             },
2026-06-13T11:54:08.7924070Z             {
2026-06-13T11:54:08.7924426Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7924705Z               "line": 289
2026-06-13T11:54:08.7924972Z             },
2026-06-13T11:54:08.7925240Z             {
2026-06-13T11:54:08.7925602Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7925893Z               "line": 300
2026-06-13T11:54:08.7926160Z             },
2026-06-13T11:54:08.7926418Z             {
2026-06-13T11:54:08.7926780Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7927067Z               "line": 313
2026-06-13T11:54:08.7927331Z             }
2026-06-13T11:54:08.7927588Z           ]
2026-06-13T11:54:08.7927866Z         },
2026-06-13T11:54:08.7928138Z         "int": {
2026-06-13T11:54:08.7928433Z           "complete": true,
2026-06-13T11:54:08.7928710Z           "evidence": [
2026-06-13T11:54:08.7929053Z             {
2026-06-13T11:54:08.7929471Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T11:54:08.7929737Z               "line": 116
2026-06-13T11:54:08.7929999Z             },
2026-06-13T11:54:08.7930261Z             {
2026-06-13T11:54:08.7930671Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-13T11:54:08.7930953Z               "line": 181
2026-06-13T11:54:08.7931220Z             }
2026-06-13T11:54:08.7931497Z           ]
2026-06-13T11:54:08.7931763Z         },
2026-06-13T11:54:08.7932039Z         "unit": {
2026-06-13T11:54:08.7932334Z           "complete": true,
2026-06-13T11:54:08.7932623Z           "evidence": [
2026-06-13T11:54:08.7932885Z             {
2026-06-13T11:54:08.7933290Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7933582Z               "line": 999
2026-06-13T11:54:08.7933853Z             },
2026-06-13T11:54:08.7934130Z             {
2026-06-13T11:54:08.7934529Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7934821Z               "line": 1016
2026-06-13T11:54:08.7935092Z             },
2026-06-13T11:54:08.7935366Z             {
2026-06-13T11:54:08.7935766Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7936053Z               "line": 1024
2026-06-13T11:54:08.7936325Z             },
2026-06-13T11:54:08.7936591Z             {
2026-06-13T11:54:08.7936983Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7937269Z               "line": 1048
2026-06-13T11:54:08.7937551Z             },
2026-06-13T11:54:08.7937820Z             {
2026-06-13T11:54:08.7938221Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.7938617Z               "line": 1499
2026-06-13T11:54:08.7938890Z             },
2026-06-13T11:54:08.7939251Z             {
2026-06-13T11:54:08.7939618Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7939904Z               "line": 347
2026-06-13T11:54:08.7940175Z             },
2026-06-13T11:54:08.7940439Z             {
2026-06-13T11:54:08.7940807Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7941088Z               "line": 370
2026-06-13T11:54:08.7941345Z             },
2026-06-13T11:54:08.7941613Z             {
2026-06-13T11:54:08.7941979Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7942261Z               "line": 407
2026-06-13T11:54:08.7942628Z             },
2026-06-13T11:54:08.7942899Z             {
2026-06-13T11:54:08.7943263Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7943545Z               "line": 431
2026-06-13T11:54:08.7943813Z             },
2026-06-13T11:54:08.7944075Z             {
2026-06-13T11:54:08.7944446Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7944723Z               "line": 483
2026-06-13T11:54:08.7944986Z             },
2026-06-13T11:54:08.7945249Z             {
2026-06-13T11:54:08.7945618Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7945893Z               "line": 499
2026-06-13T11:54:08.7946150Z             },
2026-06-13T11:54:08.7946412Z             {
2026-06-13T11:54:08.7946760Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7947042Z               "line": 514
2026-06-13T11:54:08.7947308Z             },
2026-06-13T11:54:08.7947567Z             {
2026-06-13T11:54:08.7947933Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.7948211Z               "line": 531
2026-06-13T11:54:08.7948476Z             }
2026-06-13T11:54:08.7948738Z           ]
2026-06-13T11:54:08.7949067Z         }
2026-06-13T11:54:08.7949329Z       }
2026-06-13T11:54:08.7949596Z     },
2026-06-13T11:54:08.7949863Z     {
2026-06-13T11:54:08.7950145Z       "id": "REQ-MESH-3",
2026-06-13T11:54:08.7954987Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-13T11:54:08.7955288Z       "requiredStages": [
2026-06-13T11:54:08.7955570Z         "impl",
2026-06-13T11:54:08.7955837Z         "unit",
2026-06-13T11:54:08.7956101Z         "int"
2026-06-13T11:54:08.7956361Z       ],
2026-06-13T11:54:08.7956634Z       "stages": {
2026-06-13T11:54:08.7956906Z         "doc": {
2026-06-13T11:54:08.7957215Z           "complete": false,
2026-06-13T11:54:08.7957488Z           "evidence": []
2026-06-13T11:54:08.7957750Z         },
2026-06-13T11:54:08.7958012Z         "impl": {
2026-06-13T11:54:08.7958303Z           "complete": true,
2026-06-13T11:54:08.7958579Z           "evidence": [
2026-06-13T11:54:08.7958855Z             {
2026-06-13T11:54:08.7959307Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.7959594Z               "line": 641
2026-06-13T11:54:08.7959855Z             }
2026-06-13T11:54:08.7960113Z           ]
2026-06-13T11:54:08.7960376Z         },
2026-06-13T11:54:08.7960634Z         "int": {
2026-06-13T11:54:08.7960930Z           "complete": true,
2026-06-13T11:54:08.7961213Z           "evidence": [
2026-06-13T11:54:08.7961479Z             {
2026-06-13T11:54:08.7965514Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T11:54:08.7965829Z               "line": 373
2026-06-13T11:54:08.7966092Z             },
2026-06-13T11:54:08.7966359Z             {
2026-06-13T11:54:08.7966893Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-13T11:54:08.7967180Z               "line": 436
2026-06-13T11:54:08.7967452Z             }
2026-06-13T11:54:08.7967714Z           ]
2026-06-13T11:54:08.7967972Z         },
2026-06-13T11:54:08.7968248Z         "unit": {
2026-06-13T11:54:08.7968528Z           "complete": true,
2026-06-13T11:54:08.7968829Z           "evidence": [
2026-06-13T11:54:08.7969168Z             {
2026-06-13T11:54:08.7969558Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.7969834Z               "line": 910
2026-06-13T11:54:08.7970092Z             }
2026-06-13T11:54:08.7970350Z           ]
2026-06-13T11:54:08.7970617Z         }
2026-06-13T11:54:08.7971002Z       }
2026-06-13T11:54:08.7971252Z     },
2026-06-13T11:54:08.7971500Z     {
2026-06-13T11:54:08.7971793Z       "id": "REQ-MESH-4",
2026-06-13T11:54:08.7978322Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-13T11:54:08.7978632Z       "requiredStages": [
2026-06-13T11:54:08.7979156Z         "impl",
2026-06-13T11:54:08.7979423Z         "unit",
2026-06-13T11:54:08.7979690Z         "int"
2026-06-13T11:54:08.7979952Z       ],
2026-06-13T11:54:08.7980224Z       "stages": {
2026-06-13T11:54:08.7980500Z         "doc": {
2026-06-13T11:54:08.7980786Z           "complete": false,
2026-06-13T11:54:08.7981101Z           "evidence": []
2026-06-13T11:54:08.7981362Z         },
2026-06-13T11:54:08.7981639Z         "impl": {
2026-06-13T11:54:08.7981925Z           "complete": true,
2026-06-13T11:54:08.7982215Z           "evidence": [
2026-06-13T11:54:08.7982486Z             {
2026-06-13T11:54:08.7982904Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.7983190Z               "line": 33
2026-06-13T11:54:08.7983457Z             },
2026-06-13T11:54:08.7983730Z             {
2026-06-13T11:54:08.7984125Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7984411Z               "line": 68
2026-06-13T11:54:08.7984684Z             },
2026-06-13T11:54:08.7984956Z             {
2026-06-13T11:54:08.7985363Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7985643Z               "line": 111
2026-06-13T11:54:08.7985915Z             },
2026-06-13T11:54:08.7986176Z             {
2026-06-13T11:54:08.7986583Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7986869Z               "line": 462
2026-06-13T11:54:08.7987135Z             },
2026-06-13T11:54:08.7987417Z             {
2026-06-13T11:54:08.7987811Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7988094Z               "line": 711
2026-06-13T11:54:08.7988362Z             },
2026-06-13T11:54:08.7988629Z             {
2026-06-13T11:54:08.7989097Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.7989382Z               "line": 725
2026-06-13T11:54:08.7989654Z             },
2026-06-13T11:54:08.7989921Z             {
2026-06-13T11:54:08.7990289Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.7990578Z               "line": 132
2026-06-13T11:54:08.7990850Z             },
2026-06-13T11:54:08.7991113Z             {
2026-06-13T11:54:08.7991494Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.7991775Z               "line": 26
2026-06-13T11:54:08.7992147Z             },
2026-06-13T11:54:08.7992414Z             {
2026-06-13T11:54:08.7992790Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.7993070Z               "line": 97
2026-06-13T11:54:08.7993341Z             },
2026-06-13T11:54:08.7993603Z             {
2026-06-13T11:54:08.7993976Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.7994261Z               "line": 119
2026-06-13T11:54:08.7994528Z             },
2026-06-13T11:54:08.7994794Z             {
2026-06-13T11:54:08.7995158Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7995434Z               "line": 82
2026-06-13T11:54:08.7995700Z             },
2026-06-13T11:54:08.7996069Z             {
2026-06-13T11:54:08.7996431Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7996713Z               "line": 111
2026-06-13T11:54:08.7996984Z             },
2026-06-13T11:54:08.7997247Z             {
2026-06-13T11:54:08.7997623Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7997900Z               "line": 232
2026-06-13T11:54:08.7998167Z             },
2026-06-13T11:54:08.7998429Z             {
2026-06-13T11:54:08.7998794Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.7999161Z               "line": 245
2026-06-13T11:54:08.7999432Z             },
2026-06-13T11:54:08.7999705Z             {
2026-06-13T11:54:08.8000029Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8000316Z               "line": 3785
2026-06-13T11:54:08.8000572Z             }
2026-06-13T11:54:08.8000844Z           ]
2026-06-13T11:54:08.8001105Z         },
2026-06-13T11:54:08.8001378Z         "int": {
2026-06-13T11:54:08.8001682Z           "complete": true,
2026-06-13T11:54:08.8001959Z           "evidence": [
2026-06-13T11:54:08.8002221Z             {
2026-06-13T11:54:08.8002603Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T11:54:08.8002885Z               "line": 98
2026-06-13T11:54:08.8003160Z             },
2026-06-13T11:54:08.8003426Z             {
2026-06-13T11:54:08.8003805Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-13T11:54:08.8004081Z               "line": 140
2026-06-13T11:54:08.8004344Z             }
2026-06-13T11:54:08.8004602Z           ]
2026-06-13T11:54:08.8004855Z         },
2026-06-13T11:54:08.8005131Z         "unit": {
2026-06-13T11:54:08.8005413Z           "complete": true,
2026-06-13T11:54:08.8005699Z           "evidence": [
2026-06-13T11:54:08.8005965Z             {
2026-06-13T11:54:08.8006379Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.8006657Z               "line": 178
2026-06-13T11:54:08.8006939Z             },
2026-06-13T11:54:08.8007211Z             {
2026-06-13T11:54:08.8007607Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.8007893Z               "line": 242
2026-06-13T11:54:08.8008160Z             },
2026-06-13T11:54:08.8008436Z             {
2026-06-13T11:54:08.8008827Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.8009205Z               "line": 1079
2026-06-13T11:54:08.8009477Z             },
2026-06-13T11:54:08.8009740Z             {
2026-06-13T11:54:08.8010135Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.8010416Z               "line": 1109
2026-06-13T11:54:08.8010679Z             },
2026-06-13T11:54:08.8010946Z             {
2026-06-13T11:54:08.8011336Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-13T11:54:08.8011618Z               "line": 1129
2026-06-13T11:54:08.8011880Z             },
2026-06-13T11:54:08.8012147Z             {
2026-06-13T11:54:08.8012567Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-13T11:54:08.8012857Z               "line": 602
2026-06-13T11:54:08.8013120Z             },
2026-06-13T11:54:08.8013387Z             {
2026-06-13T11:54:08.8013765Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.8014166Z               "line": 148
2026-06-13T11:54:08.8014437Z             },
2026-06-13T11:54:08.8014699Z             {
2026-06-13T11:54:08.8015076Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.8015363Z               "line": 169
2026-06-13T11:54:08.8015624Z             },
2026-06-13T11:54:08.8015891Z             {
2026-06-13T11:54:08.8016259Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.8016549Z               "line": 181
2026-06-13T11:54:08.8016815Z             },
2026-06-13T11:54:08.8017076Z             {
2026-06-13T11:54:08.8017442Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-13T11:54:08.8017715Z               "line": 202
2026-06-13T11:54:08.8018077Z             },
2026-06-13T11:54:08.8018329Z             {
2026-06-13T11:54:08.8018686Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.8019044Z               "line": 375
2026-06-13T11:54:08.8019311Z             },
2026-06-13T11:54:08.8019582Z             {
2026-06-13T11:54:08.8019939Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.8020224Z               "line": 407
2026-06-13T11:54:08.8020487Z             },
2026-06-13T11:54:08.8020753Z             {
2026-06-13T11:54:08.8021077Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8021359Z               "line": 7634
2026-06-13T11:54:08.8021625Z             }
2026-06-13T11:54:08.8021877Z           ]
2026-06-13T11:54:08.8022146Z         }
2026-06-13T11:54:08.8022407Z       }
2026-06-13T11:54:08.8022663Z     },
2026-06-13T11:54:08.8022921Z     {
2026-06-13T11:54:08.8023207Z       "id": "REQ-MESH-5",
2026-06-13T11:54:08.8027216Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-13T11:54:08.8027528Z       "requiredStages": [
2026-06-13T11:54:08.8027797Z         "impl",
2026-06-13T11:54:08.8028059Z         "unit"
2026-06-13T11:54:08.8028317Z       ],
2026-06-13T11:54:08.8028589Z       "stages": {
2026-06-13T11:54:08.8028857Z         "doc": {
2026-06-13T11:54:08.8029223Z           "complete": false,
2026-06-13T11:54:08.8029501Z           "evidence": []
2026-06-13T11:54:08.8029758Z         },
2026-06-13T11:54:08.8030022Z         "impl": {
2026-06-13T11:54:08.8030316Z           "complete": true,
2026-06-13T11:54:08.8030626Z           "evidence": [
2026-06-13T11:54:08.8030875Z             {
2026-06-13T11:54:08.8031250Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8031528Z               "line": 61
2026-06-13T11:54:08.8031789Z             },
2026-06-13T11:54:08.8032076Z             {
2026-06-13T11:54:08.8032456Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8032739Z               "line": 109
2026-06-13T11:54:08.8033001Z             },
2026-06-13T11:54:08.8033267Z             {
2026-06-13T11:54:08.8033644Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8033916Z               "line": 104
2026-06-13T11:54:08.8034177Z             },
2026-06-13T11:54:08.8034430Z             {
2026-06-13T11:54:08.8034802Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8035078Z               "line": 105
2026-06-13T11:54:08.8035333Z             },
2026-06-13T11:54:08.8035591Z             {
2026-06-13T11:54:08.8036010Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8036292Z               "line": 85
2026-06-13T11:54:08.8036554Z             },
2026-06-13T11:54:08.8036817Z             {
2026-06-13T11:54:08.8037211Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8037602Z               "line": 250
2026-06-13T11:54:08.8037869Z             },
2026-06-13T11:54:08.8038135Z             {
2026-06-13T11:54:08.8038534Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8038811Z               "line": 314
2026-06-13T11:54:08.8039149Z             },
2026-06-13T11:54:08.8039417Z             {
2026-06-13T11:54:08.8039812Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8040093Z               "line": 715
2026-06-13T11:54:08.8040356Z             },
2026-06-13T11:54:08.8040616Z             {
2026-06-13T11:54:08.8040958Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.8041345Z               "line": 101
2026-06-13T11:54:08.8041602Z             },
2026-06-13T11:54:08.8041868Z             {
2026-06-13T11:54:08.8042227Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.8042507Z               "line": 193
2026-06-13T11:54:08.8042769Z             }
2026-06-13T11:54:08.8043031Z           ]
2026-06-13T11:54:08.8043294Z         },
2026-06-13T11:54:08.8043551Z         "int": {
2026-06-13T11:54:08.8043837Z           "complete": false,
2026-06-13T11:54:08.8044118Z           "evidence": []
2026-06-13T11:54:08.8044375Z         },
2026-06-13T11:54:08.8044643Z         "unit": {
2026-06-13T11:54:08.8044919Z           "complete": true,
2026-06-13T11:54:08.8045205Z           "evidence": [
2026-06-13T11:54:08.8045469Z             {
2026-06-13T11:54:08.8045870Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8046146Z               "line": 957
2026-06-13T11:54:08.8046408Z             },
2026-06-13T11:54:08.8046675Z             {
2026-06-13T11:54:08.8047043Z               "path": "crates/spt-store/src/roster.rs",
2026-06-13T11:54:08.8047329Z               "line": 462
2026-06-13T11:54:08.8047576Z             }
2026-06-13T11:54:08.8047839Z           ]
2026-06-13T11:54:08.8048091Z         }
2026-06-13T11:54:08.8048360Z       }
2026-06-13T11:54:08.8048624Z     },
2026-06-13T11:54:08.8048883Z     {
2026-06-13T11:54:08.8049251Z       "id": "REQ-MESH-6",
2026-06-13T11:54:08.8052743Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-13T11:54:08.8053043Z       "requiredStages": [
2026-06-13T11:54:08.8053315Z         "impl",
2026-06-13T11:54:08.8053577Z         "unit"
2026-06-13T11:54:08.8053859Z       ],
2026-06-13T11:54:08.8054131Z       "stages": {
2026-06-13T11:54:08.8054393Z         "doc": {
2026-06-13T11:54:08.8054683Z           "complete": false,
2026-06-13T11:54:08.8054964Z           "evidence": []
2026-06-13T11:54:08.8055231Z         },
2026-06-13T11:54:08.8055508Z         "impl": {
2026-06-13T11:54:08.8055803Z           "complete": true,
2026-06-13T11:54:08.8056071Z           "evidence": [
2026-06-13T11:54:08.8056346Z             {
2026-06-13T11:54:08.8056668Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8056959Z               "line": 3308
2026-06-13T11:54:08.8057220Z             }
2026-06-13T11:54:08.8057478Z           ]
2026-06-13T11:54:08.8057741Z         },
2026-06-13T11:54:08.8058003Z         "int": {
2026-06-13T11:54:08.8058295Z           "complete": false,
2026-06-13T11:54:08.8058577Z           "evidence": []
2026-06-13T11:54:08.8058843Z         },
2026-06-13T11:54:08.8059199Z         "unit": {
2026-06-13T11:54:08.8059483Z           "complete": true,
2026-06-13T11:54:08.8059763Z           "evidence": [
2026-06-13T11:54:08.8060026Z             {
2026-06-13T11:54:08.8060350Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8060636Z               "line": 8164
2026-06-13T11:54:08.8060898Z             },
2026-06-13T11:54:08.8061280Z             {
2026-06-13T11:54:08.8061613Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8061897Z               "line": 8191
2026-06-13T11:54:08.8062165Z             },
2026-06-13T11:54:08.8062422Z             {
2026-06-13T11:54:08.8062741Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8063023Z               "line": 8215
2026-06-13T11:54:08.8063274Z             }
2026-06-13T11:54:08.8063528Z           ]
2026-06-13T11:54:08.8063785Z         }
2026-06-13T11:54:08.8064048Z       }
2026-06-13T11:54:08.8064306Z     },
2026-06-13T11:54:08.8064565Z     {
2026-06-13T11:54:08.8064866Z       "id": "REQ-MIGRATE-1",
2026-06-13T11:54:08.8065391Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-13T11:54:08.8065786Z       "requiredStages": [],
2026-06-13T11:54:08.8066058Z       "stages": {
2026-06-13T11:54:08.8066321Z         "doc": {
2026-06-13T11:54:08.8066608Z           "complete": false,
2026-06-13T11:54:08.8066887Z           "evidence": []
2026-06-13T11:54:08.8067151Z         },
2026-06-13T11:54:08.8067423Z         "impl": {
2026-06-13T11:54:08.8067695Z           "complete": false,
2026-06-13T11:54:08.8067982Z           "evidence": []
2026-06-13T11:54:08.8068239Z         },
2026-06-13T11:54:08.8068507Z         "int": {
2026-06-13T11:54:08.8068793Z           "complete": false,
2026-06-13T11:54:08.8069221Z           "evidence": []
2026-06-13T11:54:08.8069494Z         },
2026-06-13T11:54:08.8069754Z         "unit": {
2026-06-13T11:54:08.8070038Z           "complete": false,
2026-06-13T11:54:08.8070319Z           "evidence": []
2026-06-13T11:54:08.8070581Z         }
2026-06-13T11:54:08.8070840Z       }
2026-06-13T11:54:08.8071102Z     },
2026-06-13T11:54:08.8071379Z     {
2026-06-13T11:54:08.8071660Z       "id": "REQ-MSG-1",
2026-06-13T11:54:08.8073053Z       "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-13T11:54:08.8073349Z       "requiredStages": [
2026-06-13T11:54:08.8073621Z         "impl",
2026-06-13T11:54:08.8073888Z         "unit",
2026-06-13T11:54:08.8074163Z         "int"
2026-06-13T11:54:08.8074440Z       ],
2026-06-13T11:54:08.8074746Z       "stages": {
2026-06-13T11:54:08.8075007Z         "doc": {
2026-06-13T11:54:08.8075294Z           "complete": false,
2026-06-13T11:54:08.8075589Z           "evidence": []
2026-06-13T11:54:08.8075856Z         },
2026-06-13T11:54:08.8076127Z         "impl": {
2026-06-13T11:54:08.8076408Z           "complete": true,
2026-06-13T11:54:08.8076690Z           "evidence": [
2026-06-13T11:54:08.8076947Z             {
2026-06-13T11:54:08.8077304Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8077583Z               "line": 28
2026-06-13T11:54:08.8077846Z             },
2026-06-13T11:54:08.8078103Z             {
2026-06-13T11:54:08.8078466Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8078733Z               "line": 94
2026-06-13T11:54:08.8079147Z             },
2026-06-13T11:54:08.8079420Z             {
2026-06-13T11:54:08.8079781Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8080068Z               "line": 127
2026-06-13T11:54:08.8080324Z             },
2026-06-13T11:54:08.8080593Z             {
2026-06-13T11:54:08.8080937Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8081218Z               "line": 149
2026-06-13T11:54:08.8081479Z             },
2026-06-13T11:54:08.8081743Z             {
2026-06-13T11:54:08.8082091Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8082371Z               "line": 174
2026-06-13T11:54:08.8082640Z             },
2026-06-13T11:54:08.8082905Z             {
2026-06-13T11:54:08.8083261Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8083538Z               "line": 18
2026-06-13T11:54:08.8083799Z             },
2026-06-13T11:54:08.8084066Z             {
2026-06-13T11:54:08.8084520Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.8084806Z               "line": 13
2026-06-13T11:54:08.8085068Z             },
2026-06-13T11:54:08.8085334Z             {
2026-06-13T11:54:08.8085666Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.8085953Z               "line": 61
2026-06-13T11:54:08.8086216Z             },
2026-06-13T11:54:08.8086478Z             {
2026-06-13T11:54:08.8086817Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:54:08.8087093Z               "line": 10
2026-06-13T11:54:08.8087361Z             }
2026-06-13T11:54:08.8087617Z           ]
2026-06-13T11:54:08.8087878Z         },
2026-06-13T11:54:08.8088158Z         "int": {
2026-06-13T11:54:08.8088538Z           "complete": true,
2026-06-13T11:54:08.8088820Z           "evidence": [
2026-06-13T11:54:08.8089173Z             {
2026-06-13T11:54:08.8089604Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:54:08.8089874Z               "line": 9
2026-06-13T11:54:08.8090150Z             },
2026-06-13T11:54:08.8090423Z             {
2026-06-13T11:54:08.8090836Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:54:08.8091115Z               "line": 70
2026-06-13T11:54:08.8091377Z             },
2026-06-13T11:54:08.8091641Z             {
2026-06-13T11:54:08.8092049Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:54:08.8092331Z               "line": 129
2026-06-13T11:54:08.8092598Z             }
2026-06-13T11:54:08.8092866Z           ]
2026-06-13T11:54:08.8093129Z         },
2026-06-13T11:54:08.8093393Z         "unit": {
2026-06-13T11:54:08.8093686Z           "complete": true,
2026-06-13T11:54:08.8093968Z           "evidence": [
2026-06-13T11:54:08.8094240Z             {
2026-06-13T11:54:08.8094606Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8094884Z               "line": 203
2026-06-13T11:54:08.8095150Z             },
2026-06-13T11:54:08.8095409Z             {
2026-06-13T11:54:08.8095771Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8096053Z               "line": 232
2026-06-13T11:54:08.8096318Z             },
2026-06-13T11:54:08.8096584Z             {
2026-06-13T11:54:08.8096933Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8097224Z               "line": 277
2026-06-13T11:54:08.8097486Z             },
2026-06-13T11:54:08.8097758Z             {
2026-06-13T11:54:08.8098106Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8098392Z               "line": 300
2026-06-13T11:54:08.8098661Z             },
2026-06-13T11:54:08.8098918Z             {
2026-06-13T11:54:08.8099357Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-13T11:54:08.8099652Z               "line": 324
2026-06-13T11:54:08.8099915Z             },
2026-06-13T11:54:08.8100178Z             {
2026-06-13T11:54:08.8100535Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8100817Z               "line": 203
2026-06-13T11:54:08.8101093Z             },
2026-06-13T11:54:08.8101363Z             {
2026-06-13T11:54:08.8101713Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8101994Z               "line": 236
2026-06-13T11:54:08.8102257Z             },
2026-06-13T11:54:08.8102515Z             {
2026-06-13T11:54:08.8102868Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8103139Z               "line": 250
2026-06-13T11:54:08.8103402Z             },
2026-06-13T11:54:08.8103656Z             {
2026-06-13T11:54:08.8104006Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8104290Z               "line": 262
2026-06-13T11:54:08.8104552Z             },
2026-06-13T11:54:08.8104819Z             {
2026-06-13T11:54:08.8105152Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.8105430Z               "line": 158
2026-06-13T11:54:08.8105697Z             },
2026-06-13T11:54:08.8105960Z             {
2026-06-13T11:54:08.8106412Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-13T11:54:08.8106693Z               "line": 241
2026-06-13T11:54:08.8106950Z             },
2026-06-13T11:54:08.8107212Z             {
2026-06-13T11:54:08.8107547Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:54:08.8107818Z               "line": 68
2026-06-13T11:54:08.8108084Z             },
2026-06-13T11:54:08.8108346Z             {
2026-06-13T11:54:08.8108675Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:54:08.8109013Z               "line": 77
2026-06-13T11:54:08.8109273Z             },
2026-06-13T11:54:08.8109536Z             {
2026-06-13T11:54:08.8109860Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:54:08.8110240Z               "line": 83
2026-06-13T11:54:08.8110513Z             },
2026-06-13T11:54:08.8110771Z             {
2026-06-13T11:54:08.8111104Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-13T11:54:08.8111378Z               "line": 102
2026-06-13T11:54:08.8111644Z             }
2026-06-13T11:54:08.8111899Z           ]
2026-06-13T11:54:08.8112159Z         }
2026-06-13T11:54:08.8112422Z       }
2026-06-13T11:54:08.8112675Z     },
2026-06-13T11:54:08.8112932Z     {
2026-06-13T11:54:08.8113208Z       "id": "REQ-MSG-2",
2026-06-13T11:54:08.8113953Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-13T11:54:08.8114240Z       "requiredStages": [
2026-06-13T11:54:08.8114509Z         "impl",
2026-06-13T11:54:08.8114768Z         "unit"
2026-06-13T11:54:08.8115017Z       ],
2026-06-13T11:54:08.8115275Z       "stages": {
2026-06-13T11:54:08.8115537Z         "doc": {
2026-06-13T11:54:08.8115833Z           "complete": false,
2026-06-13T11:54:08.8116118Z           "evidence": []
2026-06-13T11:54:08.8116380Z         },
2026-06-13T11:54:08.8116653Z         "impl": {
2026-06-13T11:54:08.8116933Z           "complete": true,
2026-06-13T11:54:08.8117215Z           "evidence": [
2026-06-13T11:54:08.8117472Z             {
2026-06-13T11:54:08.8117806Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8118083Z               "line": 11
2026-06-13T11:54:08.8118344Z             },
2026-06-13T11:54:08.8118606Z             {
2026-06-13T11:54:08.8118925Z               "path": "crates/spt/src/main.rs",
2026-06-13T11:54:08.8119289Z               "line": 8
2026-06-13T11:54:08.8119545Z             }
2026-06-13T11:54:08.8119810Z           ]
2026-06-13T11:54:08.8120067Z         },
2026-06-13T11:54:08.8120334Z         "int": {
2026-06-13T11:54:08.8120625Z           "complete": false,
2026-06-13T11:54:08.8120901Z           "evidence": []
2026-06-13T11:54:08.8121158Z         },
2026-06-13T11:54:08.8121422Z         "unit": {
2026-06-13T11:54:08.8121721Z           "complete": true,
2026-06-13T11:54:08.8121989Z           "evidence": [
2026-06-13T11:54:08.8122252Z             {
2026-06-13T11:54:08.8122579Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8122857Z               "line": 5646
2026-06-13T11:54:08.8123129Z             },
2026-06-13T11:54:08.8123387Z             {
2026-06-13T11:54:08.8123706Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8123978Z               "line": 5688
2026-06-13T11:54:08.8124236Z             },
2026-06-13T11:54:08.8124504Z             {
2026-06-13T11:54:08.8124824Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8125107Z               "line": 5737
2026-06-13T11:54:08.8125371Z             },
2026-06-13T11:54:08.8125634Z             {
2026-06-13T11:54:08.8125949Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8126231Z               "line": 5760
2026-06-13T11:54:08.8126483Z             },
2026-06-13T11:54:08.8126746Z             {
2026-06-13T11:54:08.8127075Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8127347Z               "line": 7389
2026-06-13T11:54:08.8127604Z             },
2026-06-13T11:54:08.8127860Z             {
2026-06-13T11:54:08.8128184Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8128565Z               "line": 7398
2026-06-13T11:54:08.8128828Z             },
2026-06-13T11:54:08.8129171Z             {
2026-06-13T11:54:08.8129490Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8129762Z               "line": 7412
2026-06-13T11:54:08.8130011Z             }
2026-06-13T11:54:08.8130272Z           ]
2026-06-13T11:54:08.8136639Z         }
2026-06-13T11:54:08.8136910Z       }
2026-06-13T11:54:08.8137167Z     },
2026-06-13T11:54:08.8137420Z     {
2026-06-13T11:54:08.8137701Z       "id": "REQ-MSG-3",
2026-06-13T11:54:08.8138368Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-13T11:54:08.8138830Z       "requiredStages": [
2026-06-13T11:54:08.8139194Z         "impl",
2026-06-13T11:54:08.8139479Z         "unit",
2026-06-13T11:54:08.8139736Z         "int"
2026-06-13T11:54:08.8139999Z       ],
2026-06-13T11:54:08.8140280Z       "stages": {
2026-06-13T11:54:08.8140538Z         "doc": {
2026-06-13T11:54:08.8140827Z           "complete": false,
2026-06-13T11:54:08.8141111Z           "evidence": []
2026-06-13T11:54:08.8141373Z         },
2026-06-13T11:54:08.8141644Z         "impl": {
2026-06-13T11:54:08.8141917Z           "complete": true,
2026-06-13T11:54:08.8142193Z           "evidence": [
2026-06-13T11:54:08.8142447Z             {
2026-06-13T11:54:08.8142762Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-13T11:54:08.8143020Z               "line": 19
2026-06-13T11:54:08.8143256Z             },
2026-06-13T11:54:08.8143494Z             {
2026-06-13T11:54:08.8143788Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8144050Z               "line": 21
2026-06-13T11:54:08.8144288Z             },
2026-06-13T11:54:08.8144526Z             {
2026-06-13T11:54:08.8144817Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8145055Z               "line": 48
2026-06-13T11:54:08.8145290Z             },
2026-06-13T11:54:08.8145523Z             {
2026-06-13T11:54:08.8145809Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8146042Z               "line": 142
2026-06-13T11:54:08.8146271Z             }
2026-06-13T11:54:08.8146501Z           ]
2026-06-13T11:54:08.8146716Z         },
2026-06-13T11:54:08.8146951Z         "int": {
2026-06-13T11:54:08.8147194Z           "complete": true,
2026-06-13T11:54:08.8147441Z           "evidence": [
2026-06-13T11:54:08.8147665Z             {
2026-06-13T11:54:08.8147990Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:54:08.8148233Z               "line": 10
2026-06-13T11:54:08.8148463Z             },
2026-06-13T11:54:08.8148686Z             {
2026-06-13T11:54:08.8149042Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-13T11:54:08.8149271Z               "line": 70
2026-06-13T11:54:08.8149438Z             }
2026-06-13T11:54:08.8149600Z           ]
2026-06-13T11:54:08.8149759Z         },
2026-06-13T11:54:08.8149920Z         "unit": {
2026-06-13T11:54:08.8150097Z           "complete": true,
2026-06-13T11:54:08.8150258Z           "evidence": [
2026-06-13T11:54:08.8150407Z             {
2026-06-13T11:54:08.8150620Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8150778Z               "line": 196
2026-06-13T11:54:08.8150921Z             },
2026-06-13T11:54:08.8151056Z             {
2026-06-13T11:54:08.8151258Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8151420Z               "line": 215
2026-06-13T11:54:08.8151566Z             },
2026-06-13T11:54:08.8151709Z             {
2026-06-13T11:54:08.8151899Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-13T11:54:08.8152063Z               "line": 237
2026-06-13T11:54:08.8152200Z             }
2026-06-13T11:54:08.8152339Z           ]
2026-06-13T11:54:08.8152472Z         }
2026-06-13T11:54:08.8152616Z       }
2026-06-13T11:54:08.8152758Z     },
2026-06-13T11:54:08.8152897Z     {
2026-06-13T11:54:08.8153163Z       "id": "REQ-MSG-4",
2026-06-13T11:54:08.8154325Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-13T11:54:08.8154495Z       "requiredStages": [
2026-06-13T11:54:08.8154639Z         "impl",
2026-06-13T11:54:08.8154771Z         "unit",
2026-06-13T11:54:08.8154916Z         "int"
2026-06-13T11:54:08.8155053Z       ],
2026-06-13T11:54:08.8155197Z       "stages": {
2026-06-13T11:54:08.8155335Z         "doc": {
2026-06-13T11:54:08.8155482Z           "complete": false,
2026-06-13T11:54:08.8155759Z           "evidence": []
2026-06-13T11:54:08.8155903Z         },
2026-06-13T11:54:08.8156049Z         "impl": {
2026-06-13T11:54:08.8156203Z           "complete": true,
2026-06-13T11:54:08.8156359Z           "evidence": [
2026-06-13T11:54:08.8156494Z             {
2026-06-13T11:54:08.8156702Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8156831Z               "line": 16
2026-06-13T11:54:08.8156952Z             },
2026-06-13T11:54:08.8157076Z             {
2026-06-13T11:54:08.8157239Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8157371Z               "line": 25
2026-06-13T11:54:08.8157492Z             },
2026-06-13T11:54:08.8157614Z             {
2026-06-13T11:54:08.8157773Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8157906Z               "line": 47
2026-06-13T11:54:08.8158030Z             },
2026-06-13T11:54:08.8158149Z             {
2026-06-13T11:54:08.8158321Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8158464Z               "line": 380
2026-06-13T11:54:08.8158587Z             },
2026-06-13T11:54:08.8158708Z             {
2026-06-13T11:54:08.8158869Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8159113Z               "line": 2437
2026-06-13T11:54:08.8159246Z             }
2026-06-13T11:54:08.8159371Z           ]
2026-06-13T11:54:08.8159493Z         },
2026-06-13T11:54:08.8159626Z         "int": {
2026-06-13T11:54:08.8159766Z           "complete": true,
2026-06-13T11:54:08.8159903Z           "evidence": [
2026-06-13T11:54:08.8160028Z             {
2026-06-13T11:54:08.8160213Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:54:08.8160347Z               "line": 98
2026-06-13T11:54:08.8160475Z             },
2026-06-13T11:54:08.8160599Z             {
2026-06-13T11:54:08.8160785Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-13T11:54:08.8160919Z               "line": 128
2026-06-13T11:54:08.8161043Z             }
2026-06-13T11:54:08.8161176Z           ]
2026-06-13T11:54:08.8161343Z         },
2026-06-13T11:54:08.8161471Z         "unit": {
2026-06-13T11:54:08.8161616Z           "complete": true,
2026-06-13T11:54:08.8161762Z           "evidence": [
2026-06-13T11:54:08.8161885Z             {
2026-06-13T11:54:08.8162064Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8162198Z               "line": 62
2026-06-13T11:54:08.8162323Z             },
2026-06-13T11:54:08.8162445Z             {
2026-06-13T11:54:08.8162618Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8162760Z               "line": 73
2026-06-13T11:54:08.8162885Z             },
2026-06-13T11:54:08.8163013Z             {
2026-06-13T11:54:08.8163181Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8163319Z               "line": 84
2026-06-13T11:54:08.8163442Z             },
2026-06-13T11:54:08.8163572Z             {
2026-06-13T11:54:08.8163747Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8167874Z               "line": 96
2026-06-13T11:54:08.8167999Z             },
2026-06-13T11:54:08.8168124Z             {
2026-06-13T11:54:08.8168295Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8168423Z               "line": 121
2026-06-13T11:54:08.8168696Z             },
2026-06-13T11:54:08.8168823Z             {
2026-06-13T11:54:08.8169067Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8169205Z               "line": 136
2026-06-13T11:54:08.8169321Z             }
2026-06-13T11:54:08.8169444Z           ]
2026-06-13T11:54:08.8169549Z         }
2026-06-13T11:54:08.8169673Z       }
2026-06-13T11:54:08.8169782Z     },
2026-06-13T11:54:08.8169903Z     {
2026-06-13T11:54:08.8170035Z       "id": "REQ-MSG-5",
2026-06-13T11:54:08.8170879Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-13T11:54:08.8171150Z       "requiredStages": [
2026-06-13T11:54:08.8171264Z         "doc",
2026-06-13T11:54:08.8171383Z         "impl",
2026-06-13T11:54:08.8171508Z         "unit"
2026-06-13T11:54:08.8171617Z       ],
2026-06-13T11:54:08.8171741Z       "stages": {
2026-06-13T11:54:08.8171861Z         "doc": {
2026-06-13T11:54:08.8171988Z           "complete": true,
2026-06-13T11:54:08.8172103Z           "evidence": [
2026-06-13T11:54:08.8172218Z             {
2026-06-13T11:54:08.8172350Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.8172469Z               "line": 210
2026-06-13T11:54:08.8172592Z             }
2026-06-13T11:54:08.8172705Z           ]
2026-06-13T11:54:08.8172825Z         },
2026-06-13T11:54:08.8172944Z         "impl": {
2026-06-13T11:54:08.8173078Z           "complete": true,
2026-06-13T11:54:08.8173207Z           "evidence": [
2026-06-13T11:54:08.8173316Z             {
2026-06-13T11:54:08.8173488Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.8173616Z               "line": 60
2026-06-13T11:54:08.8173741Z             },
2026-06-13T11:54:08.8173855Z             {
2026-06-13T11:54:08.8174021Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8174155Z               "line": 118
2026-06-13T11:54:08.8174269Z             },
2026-06-13T11:54:08.8174385Z             {
2026-06-13T11:54:08.8174541Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8174671Z               "line": 127
2026-06-13T11:54:08.8174785Z             },
2026-06-13T11:54:08.8174904Z             {
2026-06-13T11:54:08.8175067Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8175180Z               "line": 141
2026-06-13T11:54:08.8175303Z             },
2026-06-13T11:54:08.8175412Z             {
2026-06-13T11:54:08.8175581Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8175711Z               "line": 170
2026-06-13T11:54:08.8175863Z             },
2026-06-13T11:54:08.8175978Z             {
2026-06-13T11:54:08.8176112Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8176254Z               "line": 2186
2026-06-13T11:54:08.8176365Z             }
2026-06-13T11:54:08.8176488Z           ]
2026-06-13T11:54:08.8176607Z         },
2026-06-13T11:54:08.8176727Z         "int": {
2026-06-13T11:54:08.8176860Z           "complete": true,
2026-06-13T11:54:08.8176985Z           "evidence": [
2026-06-13T11:54:08.8177103Z             {
2026-06-13T11:54:08.8177262Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-13T11:54:08.8177394Z               "line": 19
2026-06-13T11:54:08.8177513Z             }
2026-06-13T11:54:08.8177624Z           ]
2026-06-13T11:54:08.8177737Z         },
2026-06-13T11:54:08.8177846Z         "unit": {
2026-06-13T11:54:08.8177975Z           "complete": true,
2026-06-13T11:54:08.8178096Z           "evidence": [
2026-06-13T11:54:08.8178206Z             {
2026-06-13T11:54:08.8178360Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.8178492Z               "line": 192
2026-06-13T11:54:08.8178608Z             },
2026-06-13T11:54:08.8178707Z             {
2026-06-13T11:54:08.8178870Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:54:08.8179284Z               "line": 154
2026-06-13T11:54:08.8179412Z             },
2026-06-13T11:54:08.8179518Z             {
2026-06-13T11:54:08.8179670Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-13T11:54:08.8179794Z               "line": 105
2026-06-13T11:54:08.8179900Z             },
2026-06-13T11:54:08.8180014Z             {
2026-06-13T11:54:08.8180167Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8180294Z               "line": 444
2026-06-13T11:54:08.8180405Z             },
2026-06-13T11:54:08.8180506Z             {
2026-06-13T11:54:08.8180656Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8180775Z               "line": 493
2026-06-13T11:54:08.8180989Z             },
2026-06-13T11:54:08.8181105Z             {
2026-06-13T11:54:08.8181257Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8181376Z               "line": 509
2026-06-13T11:54:08.8181482Z             },
2026-06-13T11:54:08.8181586Z             {
2026-06-13T11:54:08.8181739Z               "path": "crates/spt-proto/src/event.rs",
2026-06-13T11:54:08.8181862Z               "line": 528
2026-06-13T11:54:08.8181967Z             },
2026-06-13T11:54:08.8182068Z             {
2026-06-13T11:54:08.8182215Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8182334Z               "line": 5589
2026-06-13T11:54:08.8182445Z             }
2026-06-13T11:54:08.8182548Z           ]
2026-06-13T11:54:08.8182659Z         }
2026-06-13T11:54:08.8182756Z       }
2026-06-13T11:54:08.8182853Z     },
2026-06-13T11:54:08.8182958Z     {
2026-06-13T11:54:08.8183082Z       "id": "REQ-MSG-6",
2026-06-13T11:54:08.8184901Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-13T11:54:08.8185044Z       "requiredStages": [
2026-06-13T11:54:08.8185149Z         "doc",
2026-06-13T11:54:08.8185260Z         "impl",
2026-06-13T11:54:08.8185364Z         "unit"
2026-06-13T11:54:08.8185469Z       ],
2026-06-13T11:54:08.8185579Z       "stages": {
2026-06-13T11:54:08.8185702Z         "doc": {
2026-06-13T11:54:08.8185824Z           "complete": true,
2026-06-13T11:54:08.8185940Z           "evidence": [
2026-06-13T11:54:08.8186042Z             {
2026-06-13T11:54:08.8186165Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.8186320Z               "line": 213
2026-06-13T11:54:08.8186419Z             }
2026-06-13T11:54:08.8186533Z           ]
2026-06-13T11:54:08.8186643Z         },
2026-06-13T11:54:08.8186757Z         "impl": {
2026-06-13T11:54:08.8186883Z           "complete": true,
2026-06-13T11:54:08.8187020Z           "evidence": [
2026-06-13T11:54:08.8187124Z             {
2026-06-13T11:54:08.8187296Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8187420Z               "line": 177
2026-06-13T11:54:08.8187522Z             },
2026-06-13T11:54:08.8187635Z             {
2026-06-13T11:54:08.8187812Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8187917Z               "line": 422
2026-06-13T11:54:08.8188031Z             },
2026-06-13T11:54:08.8188127Z             {
2026-06-13T11:54:08.8188292Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8188411Z               "line": 445
2026-06-13T11:54:08.8188525Z             },
2026-06-13T11:54:08.8188643Z             {
2026-06-13T11:54:08.8188790Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.8188906Z               "line": 89
2026-06-13T11:54:08.8189085Z             },
2026-06-13T11:54:08.8189201Z             {
2026-06-13T11:54:08.8189548Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8189671Z               "line": 155
2026-06-13T11:54:08.8189782Z             }
2026-06-13T11:54:08.8189886Z           ]
2026-06-13T11:54:08.8190001Z         },
2026-06-13T11:54:08.8190102Z         "int": {
2026-06-13T11:54:08.8190235Z           "complete": false,
2026-06-13T11:54:08.8190354Z           "evidence": []
2026-06-13T11:54:08.8190460Z         },
2026-06-13T11:54:08.8190574Z         "unit": {
2026-06-13T11:54:08.8190694Z           "complete": true,
2026-06-13T11:54:08.8190807Z           "evidence": [
2026-06-13T11:54:08.8190912Z             {
2026-06-13T11:54:08.8191090Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8191340Z               "line": 1639
2026-06-13T11:54:08.8191451Z             },
2026-06-13T11:54:08.8191554Z             {
2026-06-13T11:54:08.8191703Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.8191827Z               "line": 219
2026-06-13T11:54:08.8191926Z             }
2026-06-13T11:54:08.8192032Z           ]
2026-06-13T11:54:08.8192133Z         }
2026-06-13T11:54:08.8192231Z       }
2026-06-13T11:54:08.8192337Z     },
2026-06-13T11:54:08.8192436Z     {
2026-06-13T11:54:08.8192556Z       "id": "REQ-NET-1",
2026-06-13T11:54:08.8192775Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-13T11:54:08.8192899Z       "requiredStages": [
2026-06-13T11:54:08.8193005Z         "impl",
2026-06-13T11:54:08.8193099Z         "unit",
2026-06-13T11:54:08.8193205Z         "int"
2026-06-13T11:54:08.8193306Z       ],
2026-06-13T11:54:08.8193414Z       "stages": {
2026-06-13T11:54:08.8193513Z         "doc": {
2026-06-13T11:54:08.8193657Z           "complete": false,
2026-06-13T11:54:08.8193778Z           "evidence": []
2026-06-13T11:54:08.8193878Z         },
2026-06-13T11:54:08.8193993Z         "impl": {
2026-06-13T11:54:08.8194107Z           "complete": true,
2026-06-13T11:54:08.8194226Z           "evidence": [
2026-06-13T11:54:08.8194331Z             {
2026-06-13T11:54:08.8194497Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8194618Z               "line": 54
2026-06-13T11:54:08.8194717Z             },
2026-06-13T11:54:08.8194822Z             {
2026-06-13T11:54:08.8194965Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8195084Z               "line": 594
2026-06-13T11:54:08.8195190Z             },
2026-06-13T11:54:08.8195304Z             {
2026-06-13T11:54:08.8195447Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-13T11:54:08.8195563Z               "line": 130
2026-06-13T11:54:08.8195666Z             },
2026-06-13T11:54:08.8195762Z             {
2026-06-13T11:54:08.8195919Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8196033Z               "line": 97
2026-06-13T11:54:08.8196135Z             },
2026-06-13T11:54:08.8196234Z             {
2026-06-13T11:54:08.8196390Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8196495Z               "line": 159
2026-06-13T11:54:08.8196603Z             },
2026-06-13T11:54:08.8196716Z             {
2026-06-13T11:54:08.8196865Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8196988Z               "line": 175
2026-06-13T11:54:08.8197094Z             },
2026-06-13T11:54:08.8197189Z             {
2026-06-13T11:54:08.8197336Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8197452Z               "line": 190
2026-06-13T11:54:08.8197552Z             },
2026-06-13T11:54:08.8197656Z             {
2026-06-13T11:54:08.8197805Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8197928Z               "line": 271
2026-06-13T11:54:08.8198028Z             },
2026-06-13T11:54:08.8198129Z             {
2026-06-13T11:54:08.8198271Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8198392Z               "line": 306
2026-06-13T11:54:08.8198678Z             },
2026-06-13T11:54:08.8198787Z             {
2026-06-13T11:54:08.8199028Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8199141Z               "line": 312
2026-06-13T11:54:08.8199254Z             },
2026-06-13T11:54:08.8199355Z             {
2026-06-13T11:54:08.8199503Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8199622Z               "line": 318
2026-06-13T11:54:08.8199723Z             },
2026-06-13T11:54:08.8199832Z             {
2026-06-13T11:54:08.8199965Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8200085Z               "line": 334
2026-06-13T11:54:08.8200184Z             },
2026-06-13T11:54:08.8200395Z             {
2026-06-13T11:54:08.8200537Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8200648Z               "line": 354
2026-06-13T11:54:08.8200762Z             },
2026-06-13T11:54:08.8200857Z             {
2026-06-13T11:54:08.8201001Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.8201114Z               "line": 35
2026-06-13T11:54:08.8201220Z             },
2026-06-13T11:54:08.8201325Z             {
2026-06-13T11:54:08.8201472Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.8201583Z               "line": 85
2026-06-13T11:54:08.8201687Z             },
2026-06-13T11:54:08.8201795Z             {
2026-06-13T11:54:08.8201958Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.8202072Z               "line": 135
2026-06-13T11:54:08.8202186Z             },
2026-06-13T11:54:08.8202287Z             {
2026-06-13T11:54:08.8202410Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8202564Z               "line": 2283
2026-06-13T11:54:08.8202663Z             },
2026-06-13T11:54:08.8202767Z             {
2026-06-13T11:54:08.8202907Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8203016Z               "line": 17
2026-06-13T11:54:08.8203121Z             }
2026-06-13T11:54:08.8203222Z           ]
2026-06-13T11:54:08.8203330Z         },
2026-06-13T11:54:08.8203440Z         "int": {
2026-06-13T11:54:08.8203556Z           "complete": true,
2026-06-13T11:54:08.8203659Z           "evidence": [
2026-06-13T11:54:08.8203760Z             {
2026-06-13T11:54:08.8203908Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8204026Z               "line": 341
2026-06-13T11:54:08.8204126Z             },
2026-06-13T11:54:08.8204226Z             {
2026-06-13T11:54:08.8204362Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8204481Z               "line": 605
2026-06-13T11:54:08.8204588Z             },
2026-06-13T11:54:08.8204734Z             {
2026-06-13T11:54:08.8204877Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8204981Z               "line": 878
2026-06-13T11:54:08.8205082Z             }
2026-06-13T11:54:08.8205183Z           ]
2026-06-13T11:54:08.8205287Z         },
2026-06-13T11:54:08.8205407Z         "unit": {
2026-06-13T11:54:08.8205526Z           "complete": true,
2026-06-13T11:54:08.8205639Z           "evidence": [
2026-06-13T11:54:08.8205741Z             {
2026-06-13T11:54:08.8205893Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8206002Z               "line": 651
2026-06-13T11:54:08.8206113Z             },
2026-06-13T11:54:08.8206221Z             {
2026-06-13T11:54:08.8206366Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8206480Z               "line": 686
2026-06-13T11:54:08.8206593Z             },
2026-06-13T11:54:08.8206700Z             {
2026-06-13T11:54:08.8206850Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8206973Z               "line": 934
2026-06-13T11:54:08.8207084Z             },
2026-06-13T11:54:08.8207191Z             {
2026-06-13T11:54:08.8207344Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-13T11:54:08.8207567Z               "line": 201
2026-06-13T11:54:08.8207678Z             },
2026-06-13T11:54:08.8207788Z             {
2026-06-13T11:54:08.8207939Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8208055Z               "line": 442
2026-06-13T11:54:08.8208159Z             },
2026-06-13T11:54:08.8208269Z             {
2026-06-13T11:54:08.8208416Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8208531Z               "line": 456
2026-06-13T11:54:08.8208637Z             },
2026-06-13T11:54:08.8208740Z             {
2026-06-13T11:54:08.8208893Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8209107Z               "line": 475
2026-06-13T11:54:08.8209338Z             },
2026-06-13T11:54:08.8209446Z             {
2026-06-13T11:54:08.8209598Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.8209720Z               "line": 120
2026-06-13T11:54:08.8209829Z             },
2026-06-13T11:54:08.8209935Z             {
2026-06-13T11:54:08.8210101Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-13T11:54:08.8210220Z               "line": 163
2026-06-13T11:54:08.8210326Z             },
2026-06-13T11:54:08.8210435Z             {
2026-06-13T11:54:08.8210584Z               "path": "crates/spt-store/src/spool.rs",
2026-06-13T11:54:08.8210688Z               "line": 492
2026-06-13T11:54:08.8210797Z             },
2026-06-13T11:54:08.8210899Z             {
2026-06-13T11:54:08.8211031Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8211189Z               "line": 616
2026-06-13T11:54:08.8211307Z             },
2026-06-13T11:54:08.8211417Z             {
2026-06-13T11:54:08.8211552Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8211684Z               "line": 1006
2026-06-13T11:54:08.8211790Z             }
2026-06-13T11:54:08.8211899Z           ]
2026-06-13T11:54:08.8211999Z         }
2026-06-13T11:54:08.8212114Z       }
2026-06-13T11:54:08.8212228Z     },
2026-06-13T11:54:08.8212337Z     {
2026-06-13T11:54:08.8212455Z       "id": "REQ-NET-2",
2026-06-13T11:54:08.8212675Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-13T11:54:08.8212799Z       "requiredStages": [
2026-06-13T11:54:08.8212904Z         "impl"
2026-06-13T11:54:08.8213013Z       ],
2026-06-13T11:54:08.8213129Z       "stages": {
2026-06-13T11:54:08.8213233Z         "doc": {
2026-06-13T11:54:08.8213356Z           "complete": false,
2026-06-13T11:54:08.8213467Z           "evidence": []
2026-06-13T11:54:08.8213571Z         },
2026-06-13T11:54:08.8213681Z         "impl": {
2026-06-13T11:54:08.8213801Z           "complete": true,
2026-06-13T11:54:08.8213915Z           "evidence": [
2026-06-13T11:54:08.8214030Z             {
2026-06-13T11:54:08.8214182Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.8214291Z               "line": 57
2026-06-13T11:54:08.8214398Z             },
2026-06-13T11:54:08.8214506Z             {
2026-06-13T11:54:08.8214671Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8214791Z               "line": 71
2026-06-13T11:54:08.8214898Z             },
2026-06-13T11:54:08.8215008Z             {
2026-06-13T11:54:08.8215157Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8215270Z               "line": 81
2026-06-13T11:54:08.8215375Z             },
2026-06-13T11:54:08.8215485Z             {
2026-06-13T11:54:08.8215642Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8215781Z               "line": 159
2026-06-13T11:54:08.8215894Z             },
2026-06-13T11:54:08.8215996Z             {
2026-06-13T11:54:08.8216143Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8216267Z               "line": 175
2026-06-13T11:54:08.8216373Z             },
2026-06-13T11:54:08.8216477Z             {
2026-06-13T11:54:08.8216616Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-13T11:54:08.8216834Z               "line": 190
2026-06-13T11:54:08.8216941Z             }
2026-06-13T11:54:08.8217049Z           ]
2026-06-13T11:54:08.8217154Z         },
2026-06-13T11:54:08.8217260Z         "int": {
2026-06-13T11:54:08.8217383Z           "complete": false,
2026-06-13T11:54:08.8217496Z           "evidence": []
2026-06-13T11:54:08.8217596Z         },
2026-06-13T11:54:08.8217700Z         "unit": {
2026-06-13T11:54:08.8217818Z           "complete": true,
2026-06-13T11:54:08.8217928Z           "evidence": [
2026-06-13T11:54:08.8218034Z             {
2026-06-13T11:54:08.8218180Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.8218282Z               "line": 402
2026-06-13T11:54:08.8218391Z             }
2026-06-13T11:54:08.8218572Z           ]
2026-06-13T11:54:08.8218692Z         }
2026-06-13T11:54:08.8218795Z       }
2026-06-13T11:54:08.8218906Z     },
2026-06-13T11:54:08.8219105Z     {
2026-06-13T11:54:08.8219221Z       "id": "REQ-NET-3",
2026-06-13T11:54:08.8219458Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-13T11:54:08.8219579Z       "requiredStages": [
2026-06-13T11:54:08.8219692Z         "impl",
2026-06-13T11:54:08.8219798Z         "unit"
2026-06-13T11:54:08.8219912Z       ],
2026-06-13T11:54:08.8220030Z       "stages": {
2026-06-13T11:54:08.8220134Z         "doc": {
2026-06-13T11:54:08.8220253Z           "complete": false,
2026-06-13T11:54:08.8220370Z           "evidence": []
2026-06-13T11:54:08.8220475Z         },
2026-06-13T11:54:08.8220586Z         "impl": {
2026-06-13T11:54:08.8220704Z           "complete": true,
2026-06-13T11:54:08.8220825Z           "evidence": [
2026-06-13T11:54:08.8220929Z             {
2026-06-13T11:54:08.8221081Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.8221200Z               "line": 39
2026-06-13T11:54:08.8221314Z             },
2026-06-13T11:54:08.8221420Z             {
2026-06-13T11:54:08.8221572Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.8221691Z               "line": 182
2026-06-13T11:54:08.8221802Z             },
2026-06-13T11:54:08.8221911Z             {
2026-06-13T11:54:08.8222059Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-13T11:54:08.8222177Z               "line": 333
2026-06-13T11:54:08.8222292Z             },
2026-06-13T11:54:08.8222393Z             {
2026-06-13T11:54:08.8222539Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:54:08.8222650Z               "line": 36
2026-06-13T11:54:08.8222761Z             },
2026-06-13T11:54:08.8222858Z             {
2026-06-13T11:54:08.8223020Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8223141Z               "line": 158
2026-06-13T11:54:08.8223245Z             },
2026-06-13T11:54:08.8223364Z             {
2026-06-13T11:54:08.8223516Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8223631Z               "line": 212
2026-06-13T11:54:08.8223736Z             },
2026-06-13T11:54:08.8223850Z             {
2026-06-13T11:54:08.8224009Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8224117Z               "line": 233
2026-06-13T11:54:08.8224227Z             },
2026-06-13T11:54:08.8224333Z             {
2026-06-13T11:54:08.8224480Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8224595Z               "line": 291
2026-06-13T11:54:08.8224699Z             },
2026-06-13T11:54:08.8224808Z             {
2026-06-13T11:54:08.8224953Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8225070Z               "line": 310
2026-06-13T11:54:08.8225175Z             },
2026-06-13T11:54:08.8225285Z             {
2026-06-13T11:54:08.8225430Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8225554Z               "line": 348
2026-06-13T11:54:08.8225660Z             },
2026-06-13T11:54:08.8225759Z             {
2026-06-13T11:54:08.8225917Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8226130Z               "line": 393
2026-06-13T11:54:08.8226241Z             },
2026-06-13T11:54:08.8226346Z             {
2026-06-13T11:54:08.8226498Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8226613Z               "line": 406
2026-06-13T11:54:08.8226717Z             },
2026-06-13T11:54:08.8226822Z             {
2026-06-13T11:54:08.8226970Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8227089Z               "line": 29
2026-06-13T11:54:08.8227186Z             },
2026-06-13T11:54:08.8227294Z             {
2026-06-13T11:54:08.8227447Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8227557Z               "line": 72
2026-06-13T11:54:08.8227762Z             },
2026-06-13T11:54:08.8227863Z             {
2026-06-13T11:54:08.8228013Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8228132Z               "line": 123
2026-06-13T11:54:08.8228232Z             }
2026-06-13T11:54:08.8228354Z           ]
2026-06-13T11:54:08.8228459Z         },
2026-06-13T11:54:08.8228564Z         "int": {
2026-06-13T11:54:08.8228683Z           "complete": false,
2026-06-13T11:54:08.8228803Z           "evidence": []
2026-06-13T11:54:08.8228893Z         },
2026-06-13T11:54:08.8229094Z         "unit": {
2026-06-13T11:54:08.8229217Z           "complete": true,
2026-06-13T11:54:08.8229326Z           "evidence": [
2026-06-13T11:54:08.8229466Z             {
2026-06-13T11:54:08.8229613Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.8229728Z               "line": 223
2026-06-13T11:54:08.8229838Z             },
2026-06-13T11:54:08.8229933Z             {
2026-06-13T11:54:08.8230081Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.8230204Z               "line": 351
2026-06-13T11:54:08.8230309Z             },
2026-06-13T11:54:08.8230420Z             {
2026-06-13T11:54:08.8230566Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-13T11:54:08.8230695Z               "line": 504
2026-06-13T11:54:08.8230808Z             },
2026-06-13T11:54:08.8230916Z             {
2026-06-13T11:54:08.8231059Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:54:08.8231179Z               "line": 93
2026-06-13T11:54:08.8231288Z             },
2026-06-13T11:54:08.8231399Z             {
2026-06-13T11:54:08.8231540Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-13T11:54:08.8231651Z               "line": 142
2026-06-13T11:54:08.8231765Z             },
2026-06-13T11:54:08.8231879Z             {
2026-06-13T11:54:08.8232028Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8232137Z               "line": 315
2026-06-13T11:54:08.8232256Z             },
2026-06-13T11:54:08.8232367Z             {
2026-06-13T11:54:08.8232508Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8232629Z               "line": 355
2026-06-13T11:54:08.8232733Z             },
2026-06-13T11:54:08.8232842Z             {
2026-06-13T11:54:08.8232987Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-13T11:54:08.8233109Z               "line": 494
2026-06-13T11:54:08.8233215Z             }
2026-06-13T11:54:08.8233316Z           ]
2026-06-13T11:54:08.8233423Z         }
2026-06-13T11:54:08.8233523Z       }
2026-06-13T11:54:08.8233629Z     },
2026-06-13T11:54:08.8233724Z     {
2026-06-13T11:54:08.8233852Z       "id": "REQ-NODE-IDENTITY",
2026-06-13T11:54:08.8234124Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-13T11:54:08.8234240Z       "requiredStages": [
2026-06-13T11:54:08.8234349Z         "impl",
2026-06-13T11:54:08.8234453Z         "unit"
2026-06-13T11:54:08.8234564Z       ],
2026-06-13T11:54:08.8234673Z       "stages": {
2026-06-13T11:54:08.8234782Z         "doc": {
2026-06-13T11:54:08.8234903Z           "complete": false,
2026-06-13T11:54:08.8235021Z           "evidence": []
2026-06-13T11:54:08.8235130Z         },
2026-06-13T11:54:08.8235335Z         "impl": {
2026-06-13T11:54:08.8235464Z           "complete": true,
2026-06-13T11:54:08.8235574Z           "evidence": [
2026-06-13T11:54:08.8235683Z             {
2026-06-13T11:54:08.8235835Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8235948Z               "line": 60
2026-06-13T11:54:08.8236061Z             },
2026-06-13T11:54:08.8236167Z             {
2026-06-13T11:54:08.8236314Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8236424Z               "line": 68
2026-06-13T11:54:08.8236530Z             },
2026-06-13T11:54:08.8236634Z             {
2026-06-13T11:54:08.8236777Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8236991Z               "line": 86
2026-06-13T11:54:08.8237097Z             },
2026-06-13T11:54:08.8237206Z             {
2026-06-13T11:54:08.8237348Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8237464Z               "line": 120
2026-06-13T11:54:08.8237588Z             },
2026-06-13T11:54:08.8237692Z             {
2026-06-13T11:54:08.8237840Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8237950Z               "line": 127
2026-06-13T11:54:08.8238061Z             },
2026-06-13T11:54:08.8238165Z             {
2026-06-13T11:54:08.8238317Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8238428Z               "line": 143
2026-06-13T11:54:08.8238531Z             },
2026-06-13T11:54:08.8238640Z             {
2026-06-13T11:54:08.8238787Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:54:08.8238905Z               "line": 16
2026-06-13T11:54:08.8239092Z             }
2026-06-13T11:54:08.8239191Z           ]
2026-06-13T11:54:08.8239310Z         },
2026-06-13T11:54:08.8239416Z         "int": {
2026-06-13T11:54:08.8239558Z           "complete": false,
2026-06-13T11:54:08.8239669Z           "evidence": []
2026-06-13T11:54:08.8239782Z         },
2026-06-13T11:54:08.8239887Z         "unit": {
2026-06-13T11:54:08.8240016Z           "complete": true,
2026-06-13T11:54:08.8240130Z           "evidence": [
2026-06-13T11:54:08.8240230Z             {
2026-06-13T11:54:08.8240379Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8240493Z               "line": 199
2026-06-13T11:54:08.8240603Z             },
2026-06-13T11:54:08.8240718Z             {
2026-06-13T11:54:08.8240860Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8240966Z               "line": 218
2026-06-13T11:54:08.8241112Z             },
2026-06-13T11:54:08.8241225Z             {
2026-06-13T11:54:08.8241373Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8241485Z               "line": 234
2026-06-13T11:54:08.8241596Z             },
2026-06-13T11:54:08.8241702Z             {
2026-06-13T11:54:08.8241848Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-13T11:54:08.8241954Z               "line": 256
2026-06-13T11:54:08.8242059Z             },
2026-06-13T11:54:08.8242168Z             {
2026-06-13T11:54:08.8242311Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:54:08.8242425Z               "line": 124
2026-06-13T11:54:08.8242526Z             },
2026-06-13T11:54:08.8242640Z             {
2026-06-13T11:54:08.8242768Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:54:08.8242874Z               "line": 140
2026-06-13T11:54:08.8242978Z             },
2026-06-13T11:54:08.8243078Z             {
2026-06-13T11:54:08.8243213Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-13T11:54:08.8243321Z               "line": 155
2026-06-13T11:54:08.8243427Z             }
2026-06-13T11:54:08.8243528Z           ]
2026-06-13T11:54:08.8243636Z         }
2026-06-13T11:54:08.8243736Z       }
2026-06-13T11:54:08.8243847Z     },
2026-06-13T11:54:08.8243942Z     {
2026-06-13T11:54:08.8244050Z       "id": "REQ-NOTIF-1",
2026-06-13T11:54:08.8244565Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-13T11:54:08.8244679Z       "requiredStages": [
2026-06-13T11:54:08.8244785Z         "impl",
2026-06-13T11:54:08.8244894Z         "unit",
2026-06-13T11:54:08.8244999Z         "int"
2026-06-13T11:54:08.8245104Z       ],
2026-06-13T11:54:08.8245214Z       "stages": {
2026-06-13T11:54:08.8245318Z         "doc": {
2026-06-13T11:54:08.8245424Z           "complete": false,
2026-06-13T11:54:08.8245542Z           "evidence": []
2026-06-13T11:54:08.8245643Z         },
2026-06-13T11:54:08.8245749Z         "impl": {
2026-06-13T11:54:08.8245867Z           "complete": true,
2026-06-13T11:54:08.8245981Z           "evidence": [
2026-06-13T11:54:08.8246088Z             {
2026-06-13T11:54:08.8246333Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8246452Z               "line": 514
2026-06-13T11:54:08.8246550Z             },
2026-06-13T11:54:08.8246664Z             {
2026-06-13T11:54:08.8246809Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8246917Z               "line": 30
2026-06-13T11:54:08.8247022Z             },
2026-06-13T11:54:08.8247118Z             {
2026-06-13T11:54:08.8247256Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8247367Z               "line": 69
2026-06-13T11:54:08.8247476Z             },
2026-06-13T11:54:08.8247585Z             {
2026-06-13T11:54:08.8247714Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8247819Z               "line": 93
2026-06-13T11:54:08.8247918Z             },
2026-06-13T11:54:08.8248025Z             {
2026-06-13T11:54:08.8248157Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8248277Z               "line": 107
2026-06-13T11:54:08.8248386Z             },
2026-06-13T11:54:08.8248491Z             {
2026-06-13T11:54:08.8248635Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8248739Z               "line": 142
2026-06-13T11:54:08.8248854Z             },
2026-06-13T11:54:08.8249049Z             {
2026-06-13T11:54:08.8249190Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8249301Z               "line": 187
2026-06-13T11:54:08.8249408Z             },
2026-06-13T11:54:08.8249512Z             {
2026-06-13T11:54:08.8249647Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8249761Z               "line": 258
2026-06-13T11:54:08.8249870Z             },
2026-06-13T11:54:08.8249971Z             {
2026-06-13T11:54:08.8250156Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8250262Z               "line": 372
2026-06-13T11:54:08.8250367Z             },
2026-06-13T11:54:08.8250466Z             {
2026-06-13T11:54:08.8250620Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8250729Z               "line": 479
2026-06-13T11:54:08.8250834Z             },
2026-06-13T11:54:08.8254374Z             {
2026-06-13T11:54:08.8254563Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8254677Z               "line": 24
2026-06-13T11:54:08.8254778Z             },
2026-06-13T11:54:08.8254882Z             {
2026-06-13T11:54:08.8255049Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8255160Z               "line": 34
2026-06-13T11:54:08.8255263Z             },
2026-06-13T11:54:08.8255360Z             {
2026-06-13T11:54:08.8255521Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8255621Z               "line": 60
2026-06-13T11:54:08.8255718Z             },
2026-06-13T11:54:08.8255817Z             {
2026-06-13T11:54:08.8255960Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8256084Z               "line": 82
2026-06-13T11:54:08.8256179Z             },
2026-06-13T11:54:08.8256280Z             {
2026-06-13T11:54:08.8256427Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8256541Z               "line": 94
2026-06-13T11:54:08.8256779Z             },
2026-06-13T11:54:08.8256883Z             {
2026-06-13T11:54:08.8257041Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.8257139Z               "line": 96
2026-06-13T11:54:08.8257249Z             },
2026-06-13T11:54:08.8257349Z             {
2026-06-13T11:54:08.8257515Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-13T11:54:08.8257621Z               "line": 44
2026-06-13T11:54:08.8257721Z             },
2026-06-13T11:54:08.8257830Z             {
2026-06-13T11:54:08.8257974Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.8258087Z               "line": 20
2026-06-13T11:54:08.8258188Z             },
2026-06-13T11:54:08.8258388Z             {
2026-06-13T11:54:08.8258537Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.8258632Z               "line": 30
2026-06-13T11:54:08.8258731Z             },
2026-06-13T11:54:08.8258822Z             {
2026-06-13T11:54:08.8259061Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.8259167Z               "line": 50
2026-06-13T11:54:08.8259285Z             },
2026-06-13T11:54:08.8259385Z             {
2026-06-13T11:54:08.8259525Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8259637Z               "line": 28
2026-06-13T11:54:08.8259741Z             },
2026-06-13T11:54:08.8259837Z             {
2026-06-13T11:54:08.8259982Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8260091Z               "line": 126
2026-06-13T11:54:08.8260197Z             },
2026-06-13T11:54:08.8260283Z             {
2026-06-13T11:54:08.8260440Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8260584Z               "line": 161
2026-06-13T11:54:08.8260725Z             },
2026-06-13T11:54:08.8260841Z             {
2026-06-13T11:54:08.8260974Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8261147Z               "line": 202
2026-06-13T11:54:08.8261265Z             },
2026-06-13T11:54:08.8261360Z             {
2026-06-13T11:54:08.8261504Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8261613Z               "line": 213
2026-06-13T11:54:08.8261723Z             },
2026-06-13T11:54:08.8261852Z             {
2026-06-13T11:54:08.8262009Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8262129Z               "line": 238
2026-06-13T11:54:08.8262228Z             },
2026-06-13T11:54:08.8262332Z             {
2026-06-13T11:54:08.8262465Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8262592Z               "line": 261
2026-06-13T11:54:08.8262692Z             },
2026-06-13T11:54:08.8262802Z             {
2026-06-13T11:54:08.8262954Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8263055Z               "line": 63
2026-06-13T11:54:08.8263160Z             }
2026-06-13T11:54:08.8263259Z           ]
2026-06-13T11:54:08.8263361Z         },
2026-06-13T11:54:08.8263469Z         "int": {
2026-06-13T11:54:08.8263588Z           "complete": true,
2026-06-13T11:54:08.8263699Z           "evidence": [
2026-06-13T11:54:08.8263808Z             {
2026-06-13T11:54:08.8263970Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8264075Z               "line": 285
2026-06-13T11:54:08.8264180Z             },
2026-06-13T11:54:08.8264280Z             {
2026-06-13T11:54:08.8264433Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-13T11:54:08.8264551Z               "line": 102
2026-06-13T11:54:08.8264653Z             },
2026-06-13T11:54:08.8264756Z             {
2026-06-13T11:54:08.8264896Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8265006Z               "line": 614
2026-06-13T11:54:08.8265118Z             },
2026-06-13T11:54:08.8265223Z             {
2026-06-13T11:54:08.8265357Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8265470Z               "line": 1007
2026-06-13T11:54:08.8265663Z             }
2026-06-13T11:54:08.8265762Z           ]
2026-06-13T11:54:08.8265857Z         },
2026-06-13T11:54:08.8266019Z         "unit": {
2026-06-13T11:54:08.8266128Z           "complete": true,
2026-06-13T11:54:08.8266239Z           "evidence": [
2026-06-13T11:54:08.8266334Z             {
2026-06-13T11:54:08.8266477Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8266578Z               "line": 572
2026-06-13T11:54:08.8266686Z             },
2026-06-13T11:54:08.8266787Z             {
2026-06-13T11:54:08.8266926Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8267049Z               "line": 621
2026-06-13T11:54:08.8267149Z             },
2026-06-13T11:54:08.8267354Z             {
2026-06-13T11:54:08.8267501Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8267615Z               "line": 725
2026-06-13T11:54:08.8267718Z             },
2026-06-13T11:54:08.8267819Z             {
2026-06-13T11:54:08.8267967Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8268066Z               "line": 757
2026-06-13T11:54:08.8268162Z             },
2026-06-13T11:54:08.8268262Z             {
2026-06-13T11:54:08.8268409Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8268511Z               "line": 825
2026-06-13T11:54:08.8268611Z             },
2026-06-13T11:54:08.8268710Z             {
2026-06-13T11:54:08.8268849Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8269048Z               "line": 883
2026-06-13T11:54:08.8269154Z             },
2026-06-13T11:54:08.8269264Z             {
2026-06-13T11:54:08.8269397Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8269516Z               "line": 1158
2026-06-13T11:54:08.8269621Z             },
2026-06-13T11:54:08.8269722Z             {
2026-06-13T11:54:08.8269878Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8269983Z               "line": 157
2026-06-13T11:54:08.8270099Z             },
2026-06-13T11:54:08.8270206Z             {
2026-06-13T11:54:08.8270354Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8270468Z               "line": 250
2026-06-13T11:54:08.8270566Z             },
2026-06-13T11:54:08.8270676Z             {
2026-06-13T11:54:08.8270820Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-13T11:54:08.8270933Z               "line": 273
2026-06-13T11:54:08.8271044Z             },
2026-06-13T11:54:08.8271144Z             {
2026-06-13T11:54:08.8271295Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.8271406Z               "line": 341
2026-06-13T11:54:08.8271510Z             },
2026-06-13T11:54:08.8271625Z             {
2026-06-13T11:54:08.8271768Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-13T11:54:08.8271882Z               "line": 373
2026-06-13T11:54:08.8271988Z             },
2026-06-13T11:54:08.8272092Z             {
2026-06-13T11:54:08.8272264Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-13T11:54:08.8272412Z               "line": 131
2026-06-13T11:54:08.8272517Z             },
2026-06-13T11:54:08.8272618Z             {
2026-06-13T11:54:08.8272769Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.8272877Z               "line": 72
2026-06-13T11:54:08.8282228Z             },
2026-06-13T11:54:08.8282337Z             {
2026-06-13T11:54:08.8282514Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-13T11:54:08.8282634Z               "line": 97
2026-06-13T11:54:08.8282733Z             },
2026-06-13T11:54:08.8282839Z             {
2026-06-13T11:54:08.8282986Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8283115Z               "line": 379
2026-06-13T11:54:08.8283216Z             },
2026-06-13T11:54:08.8283319Z             {
2026-06-13T11:54:08.8283471Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8283731Z               "line": 417
2026-06-13T11:54:08.8283846Z             },
2026-06-13T11:54:08.8283942Z             {
2026-06-13T11:54:08.8284088Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8284194Z               "line": 433
2026-06-13T11:54:08.8284308Z             },
2026-06-13T11:54:08.8284408Z             {
2026-06-13T11:54:08.8284556Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8284661Z               "line": 472
2026-06-13T11:54:08.8284757Z             },
2026-06-13T11:54:08.8284866Z             {
2026-06-13T11:54:08.8284994Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8285095Z               "line": 489
2026-06-13T11:54:08.8285195Z             },
2026-06-13T11:54:08.8285396Z             {
2026-06-13T11:54:08.8285538Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8285643Z               "line": 517
2026-06-13T11:54:08.8285749Z             },
2026-06-13T11:54:08.8285858Z             {
2026-06-13T11:54:08.8286006Z               "path": "crates/spt-store/src/notif.rs",
2026-06-13T11:54:08.8286112Z               "line": 548
2026-06-13T11:54:08.8286219Z             },
2026-06-13T11:54:08.8286324Z             {
2026-06-13T11:54:08.8286483Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8286596Z               "line": 534
2026-06-13T11:54:08.8286706Z             }
2026-06-13T11:54:08.8286806Z           ]
2026-06-13T11:54:08.8286901Z         }
2026-06-13T11:54:08.8286997Z       }
2026-06-13T11:54:08.8287097Z     },
2026-06-13T11:54:08.8287192Z     {
2026-06-13T11:54:08.8287316Z       "id": "REQ-NOTIF-2",
2026-06-13T11:54:08.8287621Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-13T11:54:08.8287746Z       "requiredStages": [
2026-06-13T11:54:08.8287850Z         "doc",
2026-06-13T11:54:08.8287951Z         "impl",
2026-06-13T11:54:08.8288060Z         "unit",
2026-06-13T11:54:08.8288159Z         "int"
2026-06-13T11:54:08.8288275Z       ],
2026-06-13T11:54:08.8288371Z       "stages": {
2026-06-13T11:54:08.8288474Z         "doc": {
2026-06-13T11:54:08.8288592Z           "complete": true,
2026-06-13T11:54:08.8288702Z           "evidence": [
2026-06-13T11:54:08.8288810Z             {
2026-06-13T11:54:08.8288929Z               "path": "CONTEXT.md",
2026-06-13T11:54:08.8289134Z               "line": 398
2026-06-13T11:54:08.8289243Z             },
2026-06-13T11:54:08.8289402Z             {
2026-06-13T11:54:08.8289539Z               "path": "docs/MANIFEST.md",
2026-06-13T11:54:08.8289636Z               "line": 62
2026-06-13T11:54:08.8289740Z             }
2026-06-13T11:54:08.8289839Z           ]
2026-06-13T11:54:08.8289941Z         },
2026-06-13T11:54:08.8290060Z         "impl": {
2026-06-13T11:54:08.8290169Z           "complete": true,
2026-06-13T11:54:08.8290274Z           "evidence": [
2026-06-13T11:54:08.8290374Z             {
2026-06-13T11:54:08.8290522Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8290627Z               "line": 287
2026-06-13T11:54:08.8290727Z             },
2026-06-13T11:54:08.8290832Z             {
2026-06-13T11:54:08.8290970Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8291084Z               "line": 301
2026-06-13T11:54:08.8291186Z             },
2026-06-13T11:54:08.8291285Z             {
2026-06-13T11:54:08.8291417Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8291527Z               "line": 326
2026-06-13T11:54:08.8291626Z             },
2026-06-13T11:54:08.8291729Z             {
2026-06-13T11:54:08.8291897Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8292029Z               "line": 195
2026-06-13T11:54:08.8292207Z             },
2026-06-13T11:54:08.8292302Z             {
2026-06-13T11:54:08.8292460Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8292578Z               "line": 72
2026-06-13T11:54:08.8292678Z             },
2026-06-13T11:54:08.8292931Z             {
2026-06-13T11:54:08.8293064Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8293185Z               "line": 1685
2026-06-13T11:54:08.8293284Z             },
2026-06-13T11:54:08.8293384Z             {
2026-06-13T11:54:08.8293514Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8293613Z               "line": 1734
2026-06-13T11:54:08.8293719Z             },
2026-06-13T11:54:08.8293824Z             {
2026-06-13T11:54:08.8293951Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8294056Z               "line": 1813
2026-06-13T11:54:08.8294160Z             },
2026-06-13T11:54:08.8294258Z             {
2026-06-13T11:54:08.8294377Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8294587Z               "line": 1852
2026-06-13T11:54:08.8294687Z             }
2026-06-13T11:54:08.8294788Z           ]
2026-06-13T11:54:08.8294887Z         },
2026-06-13T11:54:08.8294987Z         "int": {
2026-06-13T11:54:08.8295107Z           "complete": true,
2026-06-13T11:54:08.8295211Z           "evidence": [
2026-06-13T11:54:08.8295312Z             {
2026-06-13T11:54:08.8295455Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8295569Z               "line": 740
2026-06-13T11:54:08.8295670Z             },
2026-06-13T11:54:08.8295774Z             {
2026-06-13T11:54:08.8295927Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8296033Z               "line": 1160
2026-06-13T11:54:08.8296136Z             }
2026-06-13T11:54:08.8296237Z           ]
2026-06-13T11:54:08.8296343Z         },
2026-06-13T11:54:08.8296451Z         "unit": {
2026-06-13T11:54:08.8296571Z           "complete": true,
2026-06-13T11:54:08.8296691Z           "evidence": [
2026-06-13T11:54:08.8296794Z             {
2026-06-13T11:54:08.8296936Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8297043Z               "line": 1007
2026-06-13T11:54:08.8297146Z             },
2026-06-13T11:54:08.8297247Z             {
2026-06-13T11:54:08.8297400Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8297513Z               "line": 1075
2026-06-13T11:54:08.8297615Z             },
2026-06-13T11:54:08.8297715Z             {
2026-06-13T11:54:08.8297842Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8297958Z               "line": 6005
2026-06-13T11:54:08.8298057Z             },
2026-06-13T11:54:08.8298166Z             {
2026-06-13T11:54:08.8298291Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8298396Z               "line": 6060
2026-06-13T11:54:08.8298501Z             }
2026-06-13T11:54:08.8298602Z           ]
2026-06-13T11:54:08.8298710Z         }
2026-06-13T11:54:08.8298820Z       }
2026-06-13T11:54:08.8298921Z     },
2026-06-13T11:54:08.8299096Z     {
2026-06-13T11:54:08.8299201Z       "id": "REQ-PAIR-1",
2026-06-13T11:54:08.8299346Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-13T11:54:08.8299465Z       "requiredStages": [
2026-06-13T11:54:08.8299619Z         "impl",
2026-06-13T11:54:08.8299718Z         "unit",
2026-06-13T11:54:08.8299823Z         "int"
2026-06-13T11:54:08.8299924Z       ],
2026-06-13T11:54:08.8300028Z       "stages": {
2026-06-13T11:54:08.8300123Z         "doc": {
2026-06-13T11:54:08.8300234Z           "complete": false,
2026-06-13T11:54:08.8300352Z           "evidence": []
2026-06-13T11:54:08.8300448Z         },
2026-06-13T11:54:08.8300548Z         "impl": {
2026-06-13T11:54:08.8300667Z           "complete": true,
2026-06-13T11:54:08.8300772Z           "evidence": [
2026-06-13T11:54:08.8300877Z             {
2026-06-13T11:54:08.8301043Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8301173Z               "line": 27
2026-06-13T11:54:08.8301282Z             },
2026-06-13T11:54:08.8301383Z             {
2026-06-13T11:54:08.8301544Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8301645Z               "line": 88
2026-06-13T11:54:08.8301751Z             },
2026-06-13T11:54:08.8301953Z             {
2026-06-13T11:54:08.8302120Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8302228Z               "line": 110
2026-06-13T11:54:08.8302327Z             },
2026-06-13T11:54:08.8302438Z             {
2026-06-13T11:54:08.8302580Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8302695Z               "line": 153
2026-06-13T11:54:08.8302796Z             },
2026-06-13T11:54:08.8302900Z             {
2026-06-13T11:54:08.8303048Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8303168Z               "line": 182
2026-06-13T11:54:08.8303276Z             },
2026-06-13T11:54:08.8303472Z             {
2026-06-13T11:54:08.8303634Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8303740Z               "line": 29
2026-06-13T11:54:08.8303844Z             },
2026-06-13T11:54:08.8303949Z             {
2026-06-13T11:54:08.8304130Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-13T11:54:08.8304250Z               "line": 31
2026-06-13T11:54:08.8304351Z             },
2026-06-13T11:54:08.8304449Z             {
2026-06-13T11:54:08.8304601Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8304720Z               "line": 44
2026-06-13T11:54:08.8304823Z             },
2026-06-13T11:54:08.8304923Z             {
2026-06-13T11:54:08.8305072Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8305175Z               "line": 171
2026-06-13T11:54:08.8305276Z             },
2026-06-13T11:54:08.8305376Z             {
2026-06-13T11:54:08.8305519Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8305639Z               "line": 376
2026-06-13T11:54:08.8305730Z             }
2026-06-13T11:54:08.8305824Z           ]
2026-06-13T11:54:08.8305925Z         },
2026-06-13T11:54:08.8306029Z         "int": {
2026-06-13T11:54:08.8306148Z           "complete": true,
2026-06-13T11:54:08.8306264Z           "evidence": [
2026-06-13T11:54:08.8306373Z             {
2026-06-13T11:54:08.8306521Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8306635Z               "line": 575
2026-06-13T11:54:08.8306726Z             },
2026-06-13T11:54:08.8306831Z             {
2026-06-13T11:54:08.8306960Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8307078Z               "line": 792
2026-06-13T11:54:08.8307180Z             }
2026-06-13T11:54:08.8307284Z           ]
2026-06-13T11:54:08.8307392Z         },
2026-06-13T11:54:08.8307497Z         "unit": {
2026-06-13T11:54:08.8307613Z           "complete": true,
2026-06-13T11:54:08.8307735Z           "evidence": [
2026-06-13T11:54:08.8307831Z             {
2026-06-13T11:54:08.8307993Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8308102Z               "line": 236
2026-06-13T11:54:08.8308203Z             },
2026-06-13T11:54:08.8308308Z             {
2026-06-13T11:54:08.8308495Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-13T11:54:08.8308594Z               "line": 349
2026-06-13T11:54:08.8308698Z             },
2026-06-13T11:54:08.8308800Z             {
2026-06-13T11:54:08.8309018Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8309129Z               "line": 194
2026-06-13T11:54:08.8309232Z             },
2026-06-13T11:54:08.8309347Z             {
2026-06-13T11:54:08.8309496Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8309604Z               "line": 216
2026-06-13T11:54:08.8309718Z             },
2026-06-13T11:54:08.8309818Z             {
2026-06-13T11:54:08.8309982Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8310088Z               "line": 230
2026-06-13T11:54:08.8310198Z             },
2026-06-13T11:54:08.8310306Z             {
2026-06-13T11:54:08.8310550Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8310669Z               "line": 242
2026-06-13T11:54:08.8310770Z             },
2026-06-13T11:54:08.8310874Z             {
2026-06-13T11:54:08.8311018Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8311137Z               "line": 256
2026-06-13T11:54:08.8311241Z             },
2026-06-13T11:54:08.8311342Z             {
2026-06-13T11:54:08.8311485Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8311585Z               "line": 270
2026-06-13T11:54:08.8311691Z             },
2026-06-13T11:54:08.8311790Z             {
2026-06-13T11:54:08.8311943Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8312147Z               "line": 277
2026-06-13T11:54:08.8312248Z             },
2026-06-13T11:54:08.8312349Z             {
2026-06-13T11:54:08.8312490Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-13T11:54:08.8312604Z               "line": 295
2026-06-13T11:54:08.8312699Z             },
2026-06-13T11:54:08.8312802Z             {
2026-06-13T11:54:08.8312960Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8313060Z               "line": 968
2026-06-13T11:54:08.8313164Z             },
2026-06-13T11:54:08.8313265Z             {
2026-06-13T11:54:08.8313418Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8313517Z               "line": 1051
2026-06-13T11:54:08.8313618Z             },
2026-06-13T11:54:08.8313718Z             {
2026-06-13T11:54:08.8313866Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8313985Z               "line": 1121
2026-06-13T11:54:08.8314080Z             },
2026-06-13T11:54:08.8314190Z             {
2026-06-13T11:54:08.8314333Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8314433Z               "line": 1182
2026-06-13T11:54:08.8314539Z             },
2026-06-13T11:54:08.8314648Z             {
2026-06-13T11:54:08.8314800Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8314906Z               "line": 1238
2026-06-13T11:54:08.8315010Z             },
2026-06-13T11:54:08.8315118Z             {
2026-06-13T11:54:08.8315266Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8315369Z               "line": 1457
2026-06-13T11:54:08.8315468Z             }
2026-06-13T11:54:08.8315575Z           ]
2026-06-13T11:54:08.8315674Z         }
2026-06-13T11:54:08.8315779Z       }
2026-06-13T11:54:08.8315880Z     },
2026-06-13T11:54:08.8315985Z     {
2026-06-13T11:54:08.8316103Z       "id": "REQ-PAIR-2",
2026-06-13T11:54:08.8316270Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-13T11:54:08.8316393Z       "requiredStages": [],
2026-06-13T11:54:08.8316495Z       "stages": {
2026-06-13T11:54:08.8316618Z         "doc": {
2026-06-13T11:54:08.8316728Z           "complete": false,
2026-06-13T11:54:08.8316848Z           "evidence": []
2026-06-13T11:54:08.8316952Z         },
2026-06-13T11:54:08.8317057Z         "impl": {
2026-06-13T11:54:08.8317168Z           "complete": false,
2026-06-13T11:54:08.8317271Z           "evidence": []
2026-06-13T11:54:08.8317377Z         },
2026-06-13T11:54:08.8317468Z         "int": {
2026-06-13T11:54:08.8317580Z           "complete": false,
2026-06-13T11:54:08.8317696Z           "evidence": []
2026-06-13T11:54:08.8317802Z         },
2026-06-13T11:54:08.8317914Z         "unit": {
2026-06-13T11:54:08.8318028Z           "complete": false,
2026-06-13T11:54:08.8318143Z           "evidence": []
2026-06-13T11:54:08.8318233Z         }
2026-06-13T11:54:08.8318333Z       }
2026-06-13T11:54:08.8318440Z     },
2026-06-13T11:54:08.8318548Z     {
2026-06-13T11:54:08.8318662Z       "id": "REQ-PAIR-3",
2026-06-13T11:54:08.8318830Z       "title": "Fetch current pairing code from any paired node",
2026-06-13T11:54:08.8319026Z       "requiredStages": [
2026-06-13T11:54:08.8319130Z         "impl",
2026-06-13T11:54:08.8319384Z         "unit"
2026-06-13T11:54:08.8319483Z       ],
2026-06-13T11:54:08.8319583Z       "stages": {
2026-06-13T11:54:08.8319684Z         "doc": {
2026-06-13T11:54:08.8319797Z           "complete": false,
2026-06-13T11:54:08.8319902Z           "evidence": []
2026-06-13T11:54:08.8320004Z         },
2026-06-13T11:54:08.8320112Z         "impl": {
2026-06-13T11:54:08.8320230Z           "complete": true,
2026-06-13T11:54:08.8320335Z           "evidence": [
2026-06-13T11:54:08.8320438Z             {
2026-06-13T11:54:08.8320571Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8320691Z               "line": 2534
2026-06-13T11:54:08.8320795Z             },
2026-06-13T11:54:08.8320910Z             {
2026-06-13T11:54:08.8321162Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8321273Z               "line": 2603
2026-06-13T11:54:08.8321382Z             },
2026-06-13T11:54:08.8321482Z             {
2026-06-13T11:54:08.8321617Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8321735Z               "line": 2839
2026-06-13T11:54:08.8321849Z             }
2026-06-13T11:54:08.8321960Z           ]
2026-06-13T11:54:08.8322059Z         },
2026-06-13T11:54:08.8322168Z         "int": {
2026-06-13T11:54:08.8322279Z           "complete": false,
2026-06-13T11:54:08.8322397Z           "evidence": []
2026-06-13T11:54:08.8322498Z         },
2026-06-13T11:54:08.8322608Z         "unit": {
2026-06-13T11:54:08.8322726Z           "complete": true,
2026-06-13T11:54:08.8322842Z           "evidence": [
2026-06-13T11:54:08.8322947Z             {
2026-06-13T11:54:08.8323074Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8323193Z               "line": 7546
2026-06-13T11:54:08.8323306Z             },
2026-06-13T11:54:08.8323409Z             {
2026-06-13T11:54:08.8323544Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8323649Z               "line": 7761
2026-06-13T11:54:08.8323757Z             },
2026-06-13T11:54:08.8323868Z             {
2026-06-13T11:54:08.8324006Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8324120Z               "line": 8360
2026-06-13T11:54:08.8324226Z             },
2026-06-13T11:54:08.8324335Z             {
2026-06-13T11:54:08.8324459Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8324573Z               "line": 8379
2026-06-13T11:54:08.8324674Z             },
2026-06-13T11:54:08.8324784Z             {
2026-06-13T11:54:08.8324912Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8325017Z               "line": 8403
2026-06-13T11:54:08.8325123Z             },
2026-06-13T11:54:08.8325222Z             {
2026-06-13T11:54:08.8325355Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8325471Z               "line": 8422
2026-06-13T11:54:08.8325579Z             },
2026-06-13T11:54:08.8325688Z             {
2026-06-13T11:54:08.8325812Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8325929Z               "line": 8435
2026-06-13T11:54:08.8326038Z             },
2026-06-13T11:54:08.8326145Z             {
2026-06-13T11:54:08.8326267Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8326382Z               "line": 8444
2026-06-13T11:54:08.8326487Z             }
2026-06-13T11:54:08.8326587Z           ]
2026-06-13T11:54:08.8326692Z         }
2026-06-13T11:54:08.8326793Z       }
2026-06-13T11:54:08.8326897Z     },
2026-06-13T11:54:08.8326997Z     {
2026-06-13T11:54:08.8327117Z       "id": "REQ-PAIR-4",
2026-06-13T11:54:08.8327254Z       "title": "Subnet naming on first pairing",
2026-06-13T11:54:08.8327365Z       "requiredStages": [
2026-06-13T11:54:08.8327474Z         "impl",
2026-06-13T11:54:08.8327578Z         "unit"
2026-06-13T11:54:08.8327708Z       ],
2026-06-13T11:54:08.8327817Z       "stages": {
2026-06-13T11:54:08.8327927Z         "doc": {
2026-06-13T11:54:08.8328038Z           "complete": false,
2026-06-13T11:54:08.8328160Z           "evidence": []
2026-06-13T11:54:08.8328266Z         },
2026-06-13T11:54:08.8328372Z         "impl": {
2026-06-13T11:54:08.8328574Z           "complete": true,
2026-06-13T11:54:08.8328685Z           "evidence": [
2026-06-13T11:54:08.8328794Z             {
2026-06-13T11:54:08.8329032Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-13T11:54:08.8329141Z               "line": 174
2026-06-13T11:54:08.8329252Z             }
2026-06-13T11:54:08.8329357Z           ]
2026-06-13T11:54:08.8329461Z         },
2026-06-13T11:54:08.8329561Z         "int": {
2026-06-13T11:54:08.8329681Z           "complete": false,
2026-06-13T11:54:08.8329794Z           "evidence": []
2026-06-13T11:54:08.8329896Z         },
2026-06-13T11:54:08.8330010Z         "unit": {
2026-06-13T11:54:08.8330119Z           "complete": true,
2026-06-13T11:54:08.8330325Z           "evidence": [
2026-06-13T11:54:08.8330429Z             {
2026-06-13T11:54:08.8330598Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8330719Z               "line": 1294
2026-06-13T11:54:08.8330823Z             }
2026-06-13T11:54:08.8330938Z           ]
2026-06-13T11:54:08.8331041Z         }
2026-06-13T11:54:08.8331145Z       }
2026-06-13T11:54:08.8331242Z     },
2026-06-13T11:54:08.8331346Z     {
2026-06-13T11:54:08.8331460Z       "id": "REQ-PAIR-5",
2026-06-13T11:54:08.8331804Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-13T11:54:08.8331933Z       "requiredStages": [
2026-06-13T11:54:08.8332042Z         "impl",
2026-06-13T11:54:08.8332158Z         "unit",
2026-06-13T11:54:08.8332267Z         "int"
2026-06-13T11:54:08.8332380Z       ],
2026-06-13T11:54:08.8332491Z       "stages": {
2026-06-13T11:54:08.8332600Z         "doc": {
2026-06-13T11:54:08.8332733Z           "complete": false,
2026-06-13T11:54:08.8332854Z           "evidence": []
2026-06-13T11:54:08.8332953Z         },
2026-06-13T11:54:08.8333053Z         "impl": {
2026-06-13T11:54:08.8333173Z           "complete": true,
2026-06-13T11:54:08.8333282Z           "evidence": [
2026-06-13T11:54:08.8333393Z             {
2026-06-13T11:54:08.8333544Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8333662Z               "line": 44
2026-06-13T11:54:08.8333772Z             },
2026-06-13T11:54:08.8333875Z             {
2026-06-13T11:54:08.8334037Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8334147Z               "line": 96
2026-06-13T11:54:08.8334247Z             },
2026-06-13T11:54:08.8334351Z             {
2026-06-13T11:54:08.8334505Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8334618Z               "line": 107
2026-06-13T11:54:08.8334720Z             },
2026-06-13T11:54:08.8334824Z             {
2026-06-13T11:54:08.8334986Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8335096Z               "line": 124
2026-06-13T11:54:08.8335200Z             },
2026-06-13T11:54:08.8335300Z             {
2026-06-13T11:54:08.8335467Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8335572Z               "line": 155
2026-06-13T11:54:08.8335683Z             },
2026-06-13T11:54:08.8335791Z             {
2026-06-13T11:54:08.8335940Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8336054Z               "line": 195
2026-06-13T11:54:08.8336158Z             },
2026-06-13T11:54:08.8336262Z             {
2026-06-13T11:54:08.8336409Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8336531Z               "line": 251
2026-06-13T11:54:08.8336642Z             },
2026-06-13T11:54:08.8336748Z             {
2026-06-13T11:54:08.8336923Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8337038Z               "line": 33
2026-06-13T11:54:08.8337142Z             },
2026-06-13T11:54:08.8337242Z             {
2026-06-13T11:54:08.8337424Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8337644Z               "line": 45
2026-06-13T11:54:08.8337748Z             },
2026-06-13T11:54:08.8337858Z             {
2026-06-13T11:54:08.8338025Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8338143Z               "line": 59
2026-06-13T11:54:08.8338250Z             },
2026-06-13T11:54:08.8338354Z             {
2026-06-13T11:54:08.8338507Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8338612Z               "line": 376
2026-06-13T11:54:08.8338720Z             }
2026-06-13T11:54:08.8338822Z           ]
2026-06-13T11:54:08.8338927Z         },
2026-06-13T11:54:08.8339125Z         "int": {
2026-06-13T11:54:08.8339235Z           "complete": true,
2026-06-13T11:54:08.8339535Z           "evidence": [
2026-06-13T11:54:08.8339646Z             {
2026-06-13T11:54:08.8339802Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8339912Z               "line": 792
2026-06-13T11:54:08.8340021Z             },
2026-06-13T11:54:08.8340136Z             {
2026-06-13T11:54:08.8345036Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8345164Z               "line": 342
2026-06-13T11:54:08.8345270Z             }
2026-06-13T11:54:08.8345374Z           ]
2026-06-13T11:54:08.8345479Z         },
2026-06-13T11:54:08.8345589Z         "unit": {
2026-06-13T11:54:08.8345717Z           "complete": true,
2026-06-13T11:54:08.8345832Z           "evidence": [
2026-06-13T11:54:08.8345943Z             {
2026-06-13T11:54:08.8346108Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8346229Z               "line": 293
2026-06-13T11:54:08.8346328Z             },
2026-06-13T11:54:08.8346442Z             {
2026-06-13T11:54:08.8346615Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8346723Z               "line": 304
2026-06-13T11:54:08.8346837Z             },
2026-06-13T11:54:08.8346941Z             {
2026-06-13T11:54:08.8347106Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8347221Z               "line": 406
2026-06-13T11:54:08.8347331Z             },
2026-06-13T11:54:08.8347435Z             {
2026-06-13T11:54:08.8347608Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8347721Z               "line": 72
2026-06-13T11:54:08.8347822Z             },
2026-06-13T11:54:08.8347932Z             {
2026-06-13T11:54:08.8348098Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8348213Z               "line": 82
2026-06-13T11:54:08.8348318Z             },
2026-06-13T11:54:08.8348427Z             {
2026-06-13T11:54:08.8348599Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8348718Z               "line": 100
2026-06-13T11:54:08.8348824Z             },
2026-06-13T11:54:08.8348928Z             {
2026-06-13T11:54:08.8349205Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8349343Z               "line": 110
2026-06-13T11:54:08.8349454Z             },
2026-06-13T11:54:08.8349562Z             {
2026-06-13T11:54:08.8349718Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-13T11:54:08.8349834Z               "line": 125
2026-06-13T11:54:08.8349933Z             },
2026-06-13T11:54:08.8350033Z             {
2026-06-13T11:54:08.8350186Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8350290Z               "line": 1044
2026-06-13T11:54:08.8350397Z             },
2026-06-13T11:54:08.8350501Z             {
2026-06-13T11:54:08.8350658Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8350773Z               "line": 1110
2026-06-13T11:54:08.8350882Z             },
2026-06-13T11:54:08.8350987Z             {
2026-06-13T11:54:08.8351144Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8351258Z               "line": 1357
2026-06-13T11:54:08.8351360Z             }
2026-06-13T11:54:08.8351612Z           ]
2026-06-13T11:54:08.8351727Z         }
2026-06-13T11:54:08.8351826Z       }
2026-06-13T11:54:08.8351930Z     },
2026-06-13T11:54:08.8352030Z     {
2026-06-13T11:54:08.8352147Z       "id": "REQ-PAIR-6",
2026-06-13T11:54:08.8352448Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-13T11:54:08.8352566Z       "requiredStages": [
2026-06-13T11:54:08.8352677Z         "impl",
2026-06-13T11:54:08.8352777Z         "unit"
2026-06-13T11:54:08.8352881Z       ],
2026-06-13T11:54:08.8352987Z       "stages": {
2026-06-13T11:54:08.8353101Z         "doc": {
2026-06-13T11:54:08.8353215Z           "complete": false,
2026-06-13T11:54:08.8353435Z           "evidence": []
2026-06-13T11:54:08.8353544Z         },
2026-06-13T11:54:08.8353659Z         "impl": {
2026-06-13T11:54:08.8353778Z           "complete": true,
2026-06-13T11:54:08.8353883Z           "evidence": [
2026-06-13T11:54:08.8353988Z             {
2026-06-13T11:54:08.8354135Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8354251Z               "line": 2603
2026-06-13T11:54:08.8354359Z             },
2026-06-13T11:54:08.8354459Z             {
2026-06-13T11:54:08.8354594Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8354702Z               "line": 2839
2026-06-13T11:54:08.8354811Z             },
2026-06-13T11:54:08.8354921Z             {
2026-06-13T11:54:08.8355066Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.8355181Z               "line": 18
2026-06-13T11:54:08.8355277Z             },
2026-06-13T11:54:08.8355385Z             {
2026-06-13T11:54:08.8355520Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.8355644Z               "line": 49
2026-06-13T11:54:08.8355748Z             },
2026-06-13T11:54:08.8355859Z             {
2026-06-13T11:54:08.8355996Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.8356106Z               "line": 163
2026-06-13T11:54:08.8356212Z             }
2026-06-13T11:54:08.8356311Z           ]
2026-06-13T11:54:08.8356406Z         },
2026-06-13T11:54:08.8356513Z         "int": {
2026-06-13T11:54:08.8356625Z           "complete": false,
2026-06-13T11:54:08.8356745Z           "evidence": []
2026-06-13T11:54:08.8356846Z         },
2026-06-13T11:54:08.8356954Z         "unit": {
2026-06-13T11:54:08.8357075Z           "complete": true,
2026-06-13T11:54:08.8357189Z           "evidence": [
2026-06-13T11:54:08.8357288Z             {
2026-06-13T11:54:08.8357421Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8357534Z               "line": 8457
2026-06-13T11:54:08.8357638Z             },
2026-06-13T11:54:08.8357743Z             {
2026-06-13T11:54:08.8357877Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8357990Z               "line": 8474
2026-06-13T11:54:08.8358092Z             },
2026-06-13T11:54:08.8358192Z             {
2026-06-13T11:54:08.8358334Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.8358440Z               "line": 228
2026-06-13T11:54:08.8358549Z             },
2026-06-13T11:54:08.8358653Z             {
2026-06-13T11:54:08.8358792Z               "path": "crates/spt/src/elevation.rs",
2026-06-13T11:54:08.8358911Z               "line": 237
2026-06-13T11:54:08.8359116Z             }
2026-06-13T11:54:08.8359230Z           ]
2026-06-13T11:54:08.8359331Z         }
2026-06-13T11:54:08.8359426Z       }
2026-06-13T11:54:08.8359521Z     },
2026-06-13T11:54:08.8359622Z     {
2026-06-13T11:54:08.8359727Z       "id": "REQ-PAIR-7",
2026-06-13T11:54:08.8359917Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-13T11:54:08.8360042Z       "requiredStages": [],
2026-06-13T11:54:08.8360145Z       "stages": {
2026-06-13T11:54:08.8360249Z         "doc": {
2026-06-13T11:54:08.8360355Z           "complete": false,
2026-06-13T11:54:08.8360460Z           "evidence": []
2026-06-13T11:54:08.8360564Z         },
2026-06-13T11:54:08.8360675Z         "impl": {
2026-06-13T11:54:08.8360898Z           "complete": false,
2026-06-13T11:54:08.8361085Z           "evidence": []
2026-06-13T11:54:08.8361189Z         },
2026-06-13T11:54:08.8361291Z         "int": {
2026-06-13T11:54:08.8361404Z           "complete": false,
2026-06-13T11:54:08.8361508Z           "evidence": []
2026-06-13T11:54:08.8361610Z         },
2026-06-13T11:54:08.8361714Z         "unit": {
2026-06-13T11:54:08.8361814Z           "complete": false,
2026-06-13T11:54:08.8361930Z           "evidence": []
2026-06-13T11:54:08.8362033Z         }
2026-06-13T11:54:08.8362134Z       }
2026-06-13T11:54:08.8362235Z     },
2026-06-13T11:54:08.8362338Z     {
2026-06-13T11:54:08.8362452Z       "id": "REQ-PAIR-8",
2026-06-13T11:54:08.8363971Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-13T11:54:08.8364229Z       "requiredStages": [
2026-06-13T11:54:08.8364333Z         "impl",
2026-06-13T11:54:08.8364438Z         "unit"
2026-06-13T11:54:08.8364548Z       ],
2026-06-13T11:54:08.8364653Z       "stages": {
2026-06-13T11:54:08.8364758Z         "doc": {
2026-06-13T11:54:08.8364863Z           "complete": false,
2026-06-13T11:54:08.8364972Z           "evidence": []
2026-06-13T11:54:08.8365073Z         },
2026-06-13T11:54:08.8365183Z         "impl": {
2026-06-13T11:54:08.8365295Z           "complete": true,
2026-06-13T11:54:08.8365400Z           "evidence": [
2026-06-13T11:54:08.8365528Z             {
2026-06-13T11:54:08.8365684Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8365794Z               "line": 577
2026-06-13T11:54:08.8365899Z             },
2026-06-13T11:54:08.8366008Z             {
2026-06-13T11:54:08.8366205Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8366322Z               "line": 22
2026-06-13T11:54:08.8366429Z             },
2026-06-13T11:54:08.8366529Z             {
2026-06-13T11:54:08.8366685Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8366800Z               "line": 76
2026-06-13T11:54:08.8366914Z             },
2026-06-13T11:54:08.8367025Z             {
2026-06-13T11:54:08.8367171Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8367281Z               "line": 127
2026-06-13T11:54:08.8367382Z             }
2026-06-13T11:54:08.8367490Z           ]
2026-06-13T11:54:08.8367591Z         },
2026-06-13T11:54:08.8367712Z         "int": {
2026-06-13T11:54:08.8367834Z           "complete": false,
2026-06-13T11:54:08.8367942Z           "evidence": []
2026-06-13T11:54:08.8368048Z         },
2026-06-13T11:54:08.8368146Z         "unit": {
2026-06-13T11:54:08.8368269Z           "complete": true,
2026-06-13T11:54:08.8368380Z           "evidence": [
2026-06-13T11:54:08.8368484Z             {
2026-06-13T11:54:08.8368642Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8368742Z               "line": 183
2026-06-13T11:54:08.8368846Z             },
2026-06-13T11:54:08.8369037Z             {
2026-06-13T11:54:08.8369194Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8369296Z               "line": 195
2026-06-13T11:54:08.8369400Z             },
2026-06-13T11:54:08.8369505Z             {
2026-06-13T11:54:08.8369658Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8369762Z               "line": 211
2026-06-13T11:54:08.8369867Z             },
2026-06-13T11:54:08.8369964Z             {
2026-06-13T11:54:08.8370119Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-13T11:54:08.8370230Z               "line": 227
2026-06-13T11:54:08.8370334Z             }
2026-06-13T11:54:08.8370430Z           ]
2026-06-13T11:54:08.8370631Z         }
2026-06-13T11:54:08.8370739Z       }
2026-06-13T11:54:08.8370844Z     },
2026-06-13T11:54:08.8370944Z     {
2026-06-13T11:54:08.8371053Z       "id": "REQ-PRES-1",
2026-06-13T11:54:08.8372461Z       "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-13T11:54:08.8372575Z       "requiredStages": [
2026-06-13T11:54:08.8372800Z         "impl",
2026-06-13T11:54:08.8372903Z         "unit",
2026-06-13T11:54:08.8373007Z         "int"
2026-06-13T11:54:08.8373112Z       ],
2026-06-13T11:54:08.8373216Z       "stages": {
2026-06-13T11:54:08.8373319Z         "doc": {
2026-06-13T11:54:08.8373429Z           "complete": true,
2026-06-13T11:54:08.8373550Z           "evidence": [
2026-06-13T11:54:08.8373653Z             {
2026-06-13T11:54:08.8373778Z               "path": "docs/DEFERRED.md",
2026-06-13T11:54:08.8373883Z               "line": 11
2026-06-13T11:54:08.8373986Z             }
2026-06-13T11:54:08.8374084Z           ]
2026-06-13T11:54:08.8374188Z         },
2026-06-13T11:54:08.8374292Z         "impl": {
2026-06-13T11:54:08.8374412Z           "complete": true,
2026-06-13T11:54:08.8374526Z           "evidence": [
2026-06-13T11:54:08.8374630Z             {
2026-06-13T11:54:08.8374770Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8374879Z               "line": 515
2026-06-13T11:54:08.8374989Z             },
2026-06-13T11:54:08.8375094Z             {
2026-06-13T11:54:08.8375241Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8375348Z               "line": 567
2026-06-13T11:54:08.8375456Z             },
2026-06-13T11:54:08.8375556Z             {
2026-06-13T11:54:08.8375705Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8375808Z               "line": 188
2026-06-13T11:54:08.8375912Z             },
2026-06-13T11:54:08.8376017Z             {
2026-06-13T11:54:08.8376149Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8376258Z               "line": 214
2026-06-13T11:54:08.8376364Z             },
2026-06-13T11:54:08.8376468Z             {
2026-06-13T11:54:08.8376616Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8376735Z               "line": 28
2026-06-13T11:54:08.8376849Z             },
2026-06-13T11:54:08.8376951Z             {
2026-06-13T11:54:08.8377089Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8377207Z               "line": 105
2026-06-13T11:54:08.8377313Z             },
2026-06-13T11:54:08.8377417Z             {
2026-06-13T11:54:08.8377565Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8377699Z               "line": 161
2026-06-13T11:54:08.8377812Z             },
2026-06-13T11:54:08.8377914Z             {
2026-06-13T11:54:08.8378055Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8378166Z               "line": 180
2026-06-13T11:54:08.8378272Z             },
2026-06-13T11:54:08.8378380Z             {
2026-06-13T11:54:08.8378537Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8378646Z               "line": 415
2026-06-13T11:54:08.8378744Z             },
2026-06-13T11:54:08.8378849Z             {
2026-06-13T11:54:08.8379072Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8379317Z               "line": 289
2026-06-13T11:54:08.8379435Z             },
2026-06-13T11:54:08.8379556Z             {
2026-06-13T11:54:08.8379702Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8379808Z               "line": 336
2026-06-13T11:54:08.8379908Z             },
2026-06-13T11:54:08.8380103Z             {
2026-06-13T11:54:08.8380251Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8380350Z               "line": 362
2026-06-13T11:54:08.8380457Z             },
2026-06-13T11:54:08.8380561Z             {
2026-06-13T11:54:08.8380709Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8380815Z               "line": 100
2026-06-13T11:54:08.8380918Z             }
2026-06-13T11:54:08.8381023Z           ]
2026-06-13T11:54:08.8381120Z         },
2026-06-13T11:54:08.8381219Z         "int": {
2026-06-13T11:54:08.8381332Z           "complete": true,
2026-06-13T11:54:08.8381442Z           "evidence": [
2026-06-13T11:54:08.8381543Z             {
2026-06-13T11:54:08.8381796Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8381904Z               "line": 557
2026-06-13T11:54:08.8382009Z             },
2026-06-13T11:54:08.8382115Z             {
2026-06-13T11:54:08.8382266Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8382377Z               "line": 677
2026-06-13T11:54:08.8382477Z             },
2026-06-13T11:54:08.8382572Z             {
2026-06-13T11:54:08.8382721Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8382829Z               "line": 1070
2026-06-13T11:54:08.8382925Z             }
2026-06-13T11:54:08.8383021Z           ]
2026-06-13T11:54:08.8383125Z         },
2026-06-13T11:54:08.8383225Z         "unit": {
2026-06-13T11:54:08.8383345Z           "complete": true,
2026-06-13T11:54:08.8383458Z           "evidence": [
2026-06-13T11:54:08.8383563Z             {
2026-06-13T11:54:08.8383701Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8383813Z               "line": 659
2026-06-13T11:54:08.8383922Z             },
2026-06-13T11:54:08.8384023Z             {
2026-06-13T11:54:08.8384194Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8384319Z               "line": 238
2026-06-13T11:54:08.8384438Z             },
2026-06-13T11:54:08.8384561Z             {
2026-06-13T11:54:08.8384705Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8384824Z               "line": 269
2026-06-13T11:54:08.8384929Z             },
2026-06-13T11:54:08.8385029Z             {
2026-06-13T11:54:08.8385167Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8385278Z               "line": 305
2026-06-13T11:54:08.8385377Z             },
2026-06-13T11:54:08.8385482Z             {
2026-06-13T11:54:08.8385631Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-13T11:54:08.8385730Z               "line": 336
2026-06-13T11:54:08.8385834Z             },
2026-06-13T11:54:08.8385950Z             {
2026-06-13T11:54:08.8386107Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8386222Z               "line": 1165
2026-06-13T11:54:08.8386326Z             },
2026-06-13T11:54:08.8386434Z             {
2026-06-13T11:54:08.8386601Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8386709Z               "line": 1131
2026-06-13T11:54:08.8386813Z             }
2026-06-13T11:54:08.8386919Z           ]
2026-06-13T11:54:08.8387024Z         }
2026-06-13T11:54:08.8387118Z       }
2026-06-13T11:54:08.8387224Z     },
2026-06-13T11:54:08.8387334Z     {
2026-06-13T11:54:08.8387442Z       "id": "REQ-REACH-1",
2026-06-13T11:54:08.8387629Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-13T11:54:08.8387743Z       "requiredStages": [
2026-06-13T11:54:08.8387849Z         "impl",
2026-06-13T11:54:08.8387954Z         "unit",
2026-06-13T11:54:08.8388058Z         "int"
2026-06-13T11:54:08.8388164Z       ],
2026-06-13T11:54:08.8388273Z       "stages": {
2026-06-13T11:54:08.8388368Z         "doc": {
2026-06-13T11:54:08.8388479Z           "complete": false,
2026-06-13T11:54:08.8388592Z           "evidence": []
2026-06-13T11:54:08.8388697Z         },
2026-06-13T11:54:08.8388803Z         "impl": {
2026-06-13T11:54:08.8389087Z           "complete": true,
2026-06-13T11:54:08.8389210Z           "evidence": [
2026-06-13T11:54:08.8389318Z             {
2026-06-13T11:54:08.8389466Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-13T11:54:08.8389577Z               "line": 140
2026-06-13T11:54:08.8389680Z             },
2026-06-13T11:54:08.8389777Z             {
2026-06-13T11:54:08.8389915Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8390029Z               "line": 76
2026-06-13T11:54:08.8390134Z             },
2026-06-13T11:54:08.8390235Z             {
2026-06-13T11:54:08.8390383Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8390482Z               "line": 222
2026-06-13T11:54:08.8390692Z             },
2026-06-13T11:54:08.8390797Z             {
2026-06-13T11:54:08.8390930Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8391041Z               "line": 422
2026-06-13T11:54:08.8391135Z             },
2026-06-13T11:54:08.8391249Z             {
2026-06-13T11:54:08.8391384Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8391506Z               "line": 529
2026-06-13T11:54:08.8391632Z             },
2026-06-13T11:54:08.8391737Z             {
2026-06-13T11:54:08.8391883Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:54:08.8391992Z               "line": 39
2026-06-13T11:54:08.8392104Z             },
2026-06-13T11:54:08.8392207Z             {
2026-06-13T11:54:08.8392351Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.8392465Z               "line": 229
2026-06-13T11:54:08.8392564Z             },
2026-06-13T11:54:08.8392671Z             {
2026-06-13T11:54:08.8392812Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:54:08.8392937Z               "line": 88
2026-06-13T11:54:08.8393037Z             },
2026-06-13T11:54:08.8393146Z             {
2026-06-13T11:54:08.8393285Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:54:08.8393399Z               "line": 98
2026-06-13T11:54:08.8393504Z             },
2026-06-13T11:54:08.8393605Z             {
2026-06-13T11:54:08.8393761Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8393871Z               "line": 210
2026-06-13T11:54:08.8393982Z             }
2026-06-13T11:54:08.8394090Z           ]
2026-06-13T11:54:08.8394189Z         },
2026-06-13T11:54:08.8394299Z         "int": {
2026-06-13T11:54:08.8394411Z           "complete": true,
2026-06-13T11:54:08.8394531Z           "evidence": [
2026-06-13T11:54:08.8394622Z             {
2026-06-13T11:54:08.8394788Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8394908Z               "line": 415
2026-06-13T11:54:08.8395017Z             },
2026-06-13T11:54:08.8395126Z             {
2026-06-13T11:54:08.8395279Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8395398Z               "line": 514
2026-06-13T11:54:08.8395504Z             },
2026-06-13T11:54:08.8395613Z             {
2026-06-13T11:54:08.8395780Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8395890Z               "line": 903
2026-06-13T11:54:08.8396013Z             },
2026-06-13T11:54:08.8396129Z             {
2026-06-13T11:54:08.8396290Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8396404Z               "line": 1198
2026-06-13T11:54:08.8396515Z             }
2026-06-13T11:54:08.8396633Z           ]
2026-06-13T11:54:08.8396734Z         },
2026-06-13T11:54:08.8396849Z         "unit": {
2026-06-13T11:54:08.8396962Z           "complete": true,
2026-06-13T11:54:08.8397080Z           "evidence": [
2026-06-13T11:54:08.8397180Z             {
2026-06-13T11:54:08.8397335Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8397455Z               "line": 639
2026-06-13T11:54:08.8397560Z             },
2026-06-13T11:54:08.8397669Z             {
2026-06-13T11:54:08.8397922Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-13T11:54:08.8398042Z               "line": 660
2026-06-13T11:54:08.8398151Z             },
2026-06-13T11:54:08.8398256Z             {
2026-06-13T11:54:08.8398405Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-13T11:54:08.8398514Z               "line": 391
2026-06-13T11:54:08.8398623Z             },
2026-06-13T11:54:08.8398725Z             {
2026-06-13T11:54:08.8398875Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:54:08.8399072Z               "line": 93
2026-06-13T11:54:08.8399171Z             },
2026-06-13T11:54:08.8399281Z             {
2026-06-13T11:54:08.8399425Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-13T11:54:08.8399538Z               "line": 224
2026-06-13T11:54:08.8399747Z             },
2026-06-13T11:54:08.8399850Z             {
2026-06-13T11:54:08.8399993Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:54:08.8400104Z               "line": 96
2026-06-13T11:54:08.8400212Z             },
2026-06-13T11:54:08.8400327Z             {
2026-06-13T11:54:08.8400475Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-13T11:54:08.8400584Z               "line": 146
2026-06-13T11:54:08.8400690Z             },
2026-06-13T11:54:08.8400804Z             {
2026-06-13T11:54:08.8400943Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.8401057Z               "line": 502
2026-06-13T11:54:08.8401156Z             },
2026-06-13T11:54:08.8401262Z             {
2026-06-13T11:54:08.8401400Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:54:08.8401514Z               "line": 118
2026-06-13T11:54:08.8401625Z             },
2026-06-13T11:54:08.8401719Z             {
2026-06-13T11:54:08.8401867Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-13T11:54:08.8401978Z               "line": 148
2026-06-13T11:54:08.8402086Z             },
2026-06-13T11:54:08.8402187Z             {
2026-06-13T11:54:08.8402349Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8402471Z               "line": 681
2026-06-13T11:54:08.8402572Z             }
2026-06-13T11:54:08.8402678Z           ]
2026-06-13T11:54:08.8402781Z         }
2026-06-13T11:54:08.8402886Z       }
2026-06-13T11:54:08.8402987Z     },
2026-06-13T11:54:08.8403091Z     {
2026-06-13T11:54:08.8403211Z       "id": "REQ-REACH-2",
2026-06-13T11:54:08.8403391Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-13T11:54:08.8403516Z       "requiredStages": [],
2026-06-13T11:54:08.8403616Z       "stages": {
2026-06-13T11:54:08.8403720Z         "doc": {
2026-06-13T11:54:08.8403827Z           "complete": false,
2026-06-13T11:54:08.8403936Z           "evidence": []
2026-06-13T11:54:08.8404045Z         },
2026-06-13T11:54:08.8404142Z         "impl": {
2026-06-13T11:54:08.8404255Z           "complete": false,
2026-06-13T11:54:08.8404359Z           "evidence": []
2026-06-13T11:54:08.8404451Z         },
2026-06-13T11:54:08.8404556Z         "int": {
2026-06-13T11:54:08.8404678Z           "complete": false,
2026-06-13T11:54:08.8404797Z           "evidence": []
2026-06-13T11:54:08.8404901Z         },
2026-06-13T11:54:08.8405010Z         "unit": {
2026-06-13T11:54:08.8405114Z           "complete": false,
2026-06-13T11:54:08.8405235Z           "evidence": []
2026-06-13T11:54:08.8405338Z         }
2026-06-13T11:54:08.8405439Z       }
2026-06-13T11:54:08.8405544Z     },
2026-06-13T11:54:08.8405643Z     {
2026-06-13T11:54:08.8405754Z       "id": "REQ-REL-1",
2026-06-13T11:54:08.8406178Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-13T11:54:08.8406297Z       "requiredStages": [
2026-06-13T11:54:08.8406408Z         "doc",
2026-06-13T11:54:08.8406521Z         "impl"
2026-06-13T11:54:08.8406636Z       ],
2026-06-13T11:54:08.8406742Z       "stages": {
2026-06-13T11:54:08.8406850Z         "doc": {
2026-06-13T11:54:08.8406960Z           "complete": true,
2026-06-13T11:54:08.8407174Z           "evidence": [
2026-06-13T11:54:08.8407280Z             {
2026-06-13T11:54:08.8407536Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-13T11:54:08.8407641Z               "line": 3
2026-06-13T11:54:08.8407745Z             }
2026-06-13T11:54:08.8407848Z           ]
2026-06-13T11:54:08.8407948Z         },
2026-06-13T11:54:08.8408063Z         "impl": {
2026-06-13T11:54:08.8408177Z           "complete": true,
2026-06-13T11:54:08.8408287Z           "evidence": [
2026-06-13T11:54:08.8408388Z             {
2026-06-13T11:54:08.8408535Z               "path": ".github/workflows/docs-publish.yml",
2026-06-13T11:54:08.8408641Z               "line": 11
2026-06-13T11:54:08.8408811Z             },
2026-06-13T11:54:08.8408912Z             {
2026-06-13T11:54:08.8409140Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8409260Z               "line": 265
2026-06-13T11:54:08.8409360Z             }
2026-06-13T11:54:08.8409464Z           ]
2026-06-13T11:54:08.8409575Z         },
2026-06-13T11:54:08.8409670Z         "int": {
2026-06-13T11:54:08.8409794Z           "complete": false,
2026-06-13T11:54:08.8409895Z           "evidence": []
2026-06-13T11:54:08.8409999Z         },
2026-06-13T11:54:08.8410103Z         "unit": {
2026-06-13T11:54:08.8410207Z           "complete": false,
2026-06-13T11:54:08.8410326Z           "evidence": []
2026-06-13T11:54:08.8410415Z         }
2026-06-13T11:54:08.8410524Z       }
2026-06-13T11:54:08.8410626Z     },
2026-06-13T11:54:08.8410730Z     {
2026-06-13T11:54:08.8410848Z       "id": "REQ-REL-2",
2026-06-13T11:54:08.8411364Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-13T11:54:08.8411493Z       "requiredStages": [
2026-06-13T11:54:08.8411593Z         "impl",
2026-06-13T11:54:08.8411702Z         "int"
2026-06-13T11:54:08.8411803Z       ],
2026-06-13T11:54:08.8411903Z       "stages": {
2026-06-13T11:54:08.8412017Z         "doc": {
2026-06-13T11:54:08.8412122Z           "complete": true,
2026-06-13T11:54:08.8412241Z           "evidence": [
2026-06-13T11:54:08.8412342Z             {
2026-06-13T11:54:08.8412476Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-13T11:54:08.8412580Z               "line": 6
2026-06-13T11:54:08.8412680Z             }
2026-06-13T11:54:08.8412786Z           ]
2026-06-13T11:54:08.8412890Z         },
2026-06-13T11:54:08.8413003Z         "impl": {
2026-06-13T11:54:08.8413118Z           "complete": true,
2026-06-13T11:54:08.8413228Z           "evidence": [
2026-06-13T11:54:08.8413331Z             {
2026-06-13T11:54:08.8413476Z               "path": ".github/workflows/release.yml",
2026-06-13T11:54:08.8413585Z               "line": 16
2026-06-13T11:54:08.8413680Z             },
2026-06-13T11:54:08.8413786Z             {
2026-06-13T11:54:08.8413914Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8414033Z               "line": 352
2026-06-13T11:54:08.8414143Z             },
2026-06-13T11:54:08.8414248Z             {
2026-06-13T11:54:08.8414387Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8414491Z               "line": 426
2026-06-13T11:54:08.8414591Z             },
2026-06-13T11:54:08.8414697Z             {
2026-06-13T11:54:08.8414834Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8414958Z               "line": 588
2026-06-13T11:54:08.8415059Z             },
2026-06-13T11:54:08.8415168Z             {
2026-06-13T11:54:08.8415295Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8415410Z               "line": 720
2026-06-13T11:54:08.8415513Z             }
2026-06-13T11:54:08.8415622Z           ]
2026-06-13T11:54:08.8415733Z         },
2026-06-13T11:54:08.8415837Z         "int": {
2026-06-13T11:54:08.8415956Z           "complete": true,
2026-06-13T11:54:08.8416057Z           "evidence": [
2026-06-13T11:54:08.8416166Z             {
2026-06-13T11:54:08.8416433Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-13T11:54:08.8416556Z               "line": 13
2026-06-13T11:54:08.8416663Z             }
2026-06-13T11:54:08.8416767Z           ]
2026-06-13T11:54:08.8416871Z         },
2026-06-13T11:54:08.8416977Z         "unit": {
2026-06-13T11:54:08.8417096Z           "complete": false,
2026-06-13T11:54:08.8417200Z           "evidence": []
2026-06-13T11:54:08.8417307Z         }
2026-06-13T11:54:08.8417405Z       }
2026-06-13T11:54:08.8417510Z     },
2026-06-13T11:54:08.8417617Z     {
2026-06-13T11:54:08.8417720Z       "id": "REQ-REL-3",
2026-06-13T11:54:08.8418201Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-13T11:54:08.8418418Z       "requiredStages": [
2026-06-13T11:54:08.8418528Z         "impl",
2026-06-13T11:54:08.8418628Z         "unit"
2026-06-13T11:54:08.8418728Z       ],
2026-06-13T11:54:08.8418832Z       "stages": {
2026-06-13T11:54:08.8419024Z         "doc": {
2026-06-13T11:54:08.8419147Z           "complete": false,
2026-06-13T11:54:08.8419253Z           "evidence": []
2026-06-13T11:54:08.8419357Z         },
2026-06-13T11:54:08.8419477Z         "impl": {
2026-06-13T11:54:08.8419586Z           "complete": true,
2026-06-13T11:54:08.8419691Z           "evidence": [
2026-06-13T11:54:08.8419791Z             {
2026-06-13T11:54:08.8419939Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8420034Z               "line": 237
2026-06-13T11:54:08.8420145Z             },
2026-06-13T11:54:08.8420249Z             {
2026-06-13T11:54:08.8420392Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8420513Z               "line": 289
2026-06-13T11:54:08.8420611Z             },
2026-06-13T11:54:08.8420714Z             {
2026-06-13T11:54:08.8420844Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8420961Z               "line": 329
2026-06-13T11:54:08.8421070Z             },
2026-06-13T11:54:08.8421171Z             {
2026-06-13T11:54:08.8421304Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8421414Z               "line": 353
2026-06-13T11:54:08.8421576Z             },
2026-06-13T11:54:08.8421675Z             {
2026-06-13T11:54:08.8421805Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8421919Z               "line": 394
2026-06-13T11:54:08.8422024Z             }
2026-06-13T11:54:08.8422125Z           ]
2026-06-13T11:54:08.8422224Z         },
2026-06-13T11:54:08.8422329Z         "int": {
2026-06-13T11:54:08.8422449Z           "complete": false,
2026-06-13T11:54:08.8422563Z           "evidence": []
2026-06-13T11:54:08.8422668Z         },
2026-06-13T11:54:08.8422778Z         "unit": {
2026-06-13T11:54:08.8422892Z           "complete": true,
2026-06-13T11:54:08.8423002Z           "evidence": [
2026-06-13T11:54:08.8423107Z             {
2026-06-13T11:54:08.8423250Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8423361Z               "line": 992
2026-06-13T11:54:08.8423473Z             },
2026-06-13T11:54:08.8423572Z             {
2026-06-13T11:54:08.8423716Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8423830Z               "line": 1051
2026-06-13T11:54:08.8423930Z             }
2026-06-13T11:54:08.8424036Z           ]
2026-06-13T11:54:08.8424141Z         }
2026-06-13T11:54:08.8424249Z       }
2026-06-13T11:54:08.8424351Z     },
2026-06-13T11:54:08.8424456Z     {
2026-06-13T11:54:08.8424598Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-13T11:54:08.8424813Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-13T11:54:08.8424922Z       "requiredStages": [
2026-06-13T11:54:08.8425028Z         "impl",
2026-06-13T11:54:08.8425137Z         "unit"
2026-06-13T11:54:08.8425237Z       ],
2026-06-13T11:54:08.8425357Z       "stages": {
2026-06-13T11:54:08.8425461Z         "doc": {
2026-06-13T11:54:08.8425581Z           "complete": false,
2026-06-13T11:54:08.8425798Z           "evidence": []
2026-06-13T11:54:08.8425903Z         },
2026-06-13T11:54:08.8430337Z         "impl": {
2026-06-13T11:54:08.8430490Z           "complete": true,
2026-06-13T11:54:08.8430604Z           "evidence": [
2026-06-13T11:54:08.8430710Z             {
2026-06-13T11:54:08.8430875Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8430981Z               "line": 18
2026-06-13T11:54:08.8431096Z             },
2026-06-13T11:54:08.8431199Z             {
2026-06-13T11:54:08.8431342Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8431465Z               "line": 35
2026-06-13T11:54:08.8431568Z             },
2026-06-13T11:54:08.8431673Z             {
2026-06-13T11:54:08.8431983Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8432108Z               "line": 72
2026-06-13T11:54:08.8432217Z             }
2026-06-13T11:54:08.8432323Z           ]
2026-06-13T11:54:08.8432432Z         },
2026-06-13T11:54:08.8432546Z         "int": {
2026-06-13T11:54:08.8432718Z           "complete": false,
2026-06-13T11:54:08.8432818Z           "evidence": []
2026-06-13T11:54:08.8432918Z         },
2026-06-13T11:54:08.8433028Z         "unit": {
2026-06-13T11:54:08.8433137Z           "complete": true,
2026-06-13T11:54:08.8433252Z           "evidence": [
2026-06-13T11:54:08.8433357Z             {
2026-06-13T11:54:08.8433505Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8433616Z               "line": 214
2026-06-13T11:54:08.8433723Z             },
2026-06-13T11:54:08.8433824Z             {
2026-06-13T11:54:08.8433968Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8434071Z               "line": 231
2026-06-13T11:54:08.8434185Z             },
2026-06-13T11:54:08.8434291Z             {
2026-06-13T11:54:08.8434433Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8434548Z               "line": 240
2026-06-13T11:54:08.8434653Z             }
2026-06-13T11:54:08.8434762Z           ]
2026-06-13T11:54:08.8434868Z         }
2026-06-13T11:54:08.8434973Z       }
2026-06-13T11:54:08.8435072Z     },
2026-06-13T11:54:08.8435172Z     {
2026-06-13T11:54:08.8435297Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-13T11:54:08.8435473Z       "title": "Hostable endpoint-types capability declaration",
2026-06-13T11:54:08.8435588Z       "requiredStages": [
2026-06-13T11:54:08.8435692Z         "impl",
2026-06-13T11:54:08.8435798Z         "unit"
2026-06-13T11:54:08.8435898Z       ],
2026-06-13T11:54:08.8436001Z       "stages": {
2026-06-13T11:54:08.8436112Z         "doc": {
2026-06-13T11:54:08.8436231Z           "complete": false,
2026-06-13T11:54:08.8436340Z           "evidence": []
2026-06-13T11:54:08.8436454Z         },
2026-06-13T11:54:08.8436558Z         "impl": {
2026-06-13T11:54:08.8436680Z           "complete": true,
2026-06-13T11:54:08.8436790Z           "evidence": [
2026-06-13T11:54:08.8436896Z             {
2026-06-13T11:54:08.8437047Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8437153Z               "line": 406
2026-06-13T11:54:08.8437262Z             }
2026-06-13T11:54:08.8437367Z           ]
2026-06-13T11:54:08.8437473Z         },
2026-06-13T11:54:08.8437577Z         "int": {
2026-06-13T11:54:08.8437696Z           "complete": false,
2026-06-13T11:54:08.8437816Z           "evidence": []
2026-06-13T11:54:08.8437920Z         },
2026-06-13T11:54:08.8438025Z         "unit": {
2026-06-13T11:54:08.8438136Z           "complete": true,
2026-06-13T11:54:08.8438259Z           "evidence": [
2026-06-13T11:54:08.8438350Z             {
2026-06-13T11:54:08.8438502Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8438607Z               "line": 720
2026-06-13T11:54:08.8438709Z             }
2026-06-13T11:54:08.8438812Z           ]
2026-06-13T11:54:08.8438913Z         }
2026-06-13T11:54:08.8439109Z       }
2026-06-13T11:54:08.8439202Z     },
2026-06-13T11:54:08.8439302Z     {
2026-06-13T11:54:08.8439421Z       "id": "REQ-SEAM-HISTORY",
2026-06-13T11:54:08.8439839Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-13T11:54:08.8439962Z       "requiredStages": [
2026-06-13T11:54:08.8440068Z         "impl",
2026-06-13T11:54:08.8440172Z         "unit",
2026-06-13T11:54:08.8440272Z         "int"
2026-06-13T11:54:08.8440378Z       ],
2026-06-13T11:54:08.8440483Z       "stages": {
2026-06-13T11:54:08.8440582Z         "doc": {
2026-06-13T11:54:08.8440707Z           "complete": false,
2026-06-13T11:54:08.8440812Z           "evidence": []
2026-06-13T11:54:08.8440907Z         },
2026-06-13T11:54:08.8441008Z         "impl": {
2026-06-13T11:54:08.8441126Z           "complete": true,
2026-06-13T11:54:08.8441251Z           "evidence": [
2026-06-13T11:54:08.8441455Z             {
2026-06-13T11:54:08.8441604Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.8441712Z               "line": 24
2026-06-13T11:54:08.8441831Z             },
2026-06-13T11:54:08.8441935Z             {
2026-06-13T11:54:08.8442090Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8442200Z               "line": 22
2026-06-13T11:54:08.8442301Z             }
2026-06-13T11:54:08.8442410Z           ]
2026-06-13T11:54:08.8442510Z         },
2026-06-13T11:54:08.8442616Z         "int": {
2026-06-13T11:54:08.8442724Z           "complete": true,
2026-06-13T11:54:08.8442844Z           "evidence": [
2026-06-13T11:54:08.8442949Z             {
2026-06-13T11:54:08.8443096Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.8443212Z               "line": 260
2026-06-13T11:54:08.8443311Z             }
2026-06-13T11:54:08.8443421Z           ]
2026-06-13T11:54:08.8443522Z         },
2026-06-13T11:54:08.8443635Z         "unit": {
2026-06-13T11:54:08.8443755Z           "complete": true,
2026-06-13T11:54:08.8443866Z           "evidence": [
2026-06-13T11:54:08.8443973Z             {
2026-06-13T11:54:08.8444098Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.8444218Z               "line": 167
2026-06-13T11:54:08.8444322Z             },
2026-06-13T11:54:08.8444428Z             {
2026-06-13T11:54:08.8444566Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.8444679Z               "line": 196
2026-06-13T11:54:08.8444783Z             },
2026-06-13T11:54:08.8444885Z             {
2026-06-13T11:54:08.8445022Z               "path": "crates/spt-live/src/echo.rs",
2026-06-13T11:54:08.8445132Z               "line": 216
2026-06-13T11:54:08.8445237Z             },
2026-06-13T11:54:08.8445351Z             {
2026-06-13T11:54:08.8445495Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8445608Z               "line": 199
2026-06-13T11:54:08.8445719Z             },
2026-06-13T11:54:08.8445823Z             {
2026-06-13T11:54:08.8445961Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8446077Z               "line": 219
2026-06-13T11:54:08.8446185Z             },
2026-06-13T11:54:08.8446286Z             {
2026-06-13T11:54:08.8446435Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8446548Z               "line": 244
2026-06-13T11:54:08.8446653Z             },
2026-06-13T11:54:08.8446763Z             {
2026-06-13T11:54:08.8446905Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8447019Z               "line": 269
2026-06-13T11:54:08.8447123Z             },
2026-06-13T11:54:08.8447231Z             {
2026-06-13T11:54:08.8447370Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8447485Z               "line": 290
2026-06-13T11:54:08.8447593Z             },
2026-06-13T11:54:08.8447694Z             {
2026-06-13T11:54:08.8447842Z               "path": "crates/spt-live/src/history.rs",
2026-06-13T11:54:08.8447961Z               "line": 317
2026-06-13T11:54:08.8448071Z             }
2026-06-13T11:54:08.8448170Z           ]
2026-06-13T11:54:08.8448276Z         }
2026-06-13T11:54:08.8448385Z       }
2026-06-13T11:54:08.8448490Z     },
2026-06-13T11:54:08.8448676Z     {
2026-06-13T11:54:08.8448800Z       "id": "REQ-SEAM-INJECT",
2026-06-13T11:54:08.8449081Z       "title": "inject-input methods configurable per activity-state",
2026-06-13T11:54:08.8449195Z       "requiredStages": [
2026-06-13T11:54:08.8449316Z         "impl",
2026-06-13T11:54:08.8449438Z         "unit"
2026-06-13T11:54:08.8449540Z       ],
2026-06-13T11:54:08.8449655Z       "stages": {
2026-06-13T11:54:08.8449758Z         "doc": {
2026-06-13T11:54:08.8449881Z           "complete": false,
2026-06-13T11:54:08.8449990Z           "evidence": []
2026-06-13T11:54:08.8450094Z         },
2026-06-13T11:54:08.8450208Z         "impl": {
2026-06-13T11:54:08.8450323Z           "complete": true,
2026-06-13T11:54:08.8450552Z           "evidence": [
2026-06-13T11:54:08.8450656Z             {
2026-06-13T11:54:08.8450808Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8450919Z               "line": 19
2026-06-13T11:54:08.8451029Z             },
2026-06-13T11:54:08.8451143Z             {
2026-06-13T11:54:08.8451286Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8451400Z               "line": 111
2026-06-13T11:54:08.8451506Z             }
2026-06-13T11:54:08.8451610Z           ]
2026-06-13T11:54:08.8451705Z         },
2026-06-13T11:54:08.8451811Z         "int": {
2026-06-13T11:54:08.8451925Z           "complete": false,
2026-06-13T11:54:08.8452030Z           "evidence": []
2026-06-13T11:54:08.8452141Z         },
2026-06-13T11:54:08.8452240Z         "unit": {
2026-06-13T11:54:08.8452357Z           "complete": true,
2026-06-13T11:54:08.8452472Z           "evidence": [
2026-06-13T11:54:08.8452576Z             {
2026-06-13T11:54:08.8452717Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8452837Z               "line": 320
2026-06-13T11:54:08.8452947Z             },
2026-06-13T11:54:08.8453046Z             {
2026-06-13T11:54:08.8453195Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8453308Z               "line": 340
2026-06-13T11:54:08.8453419Z             }
2026-06-13T11:54:08.8453524Z           ]
2026-06-13T11:54:08.8453628Z         }
2026-06-13T11:54:08.8453734Z       }
2026-06-13T11:54:08.8453834Z     },
2026-06-13T11:54:08.8453943Z     {
2026-06-13T11:54:08.8454063Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-13T11:54:08.8454234Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-13T11:54:08.8454358Z       "requiredStages": [
2026-06-13T11:54:08.8454464Z         "impl",
2026-06-13T11:54:08.8454577Z         "unit"
2026-06-13T11:54:08.8454678Z       ],
2026-06-13T11:54:08.8454793Z       "stages": {
2026-06-13T11:54:08.8454892Z         "doc": {
2026-06-13T11:54:08.8455017Z           "complete": false,
2026-06-13T11:54:08.8455145Z           "evidence": []
2026-06-13T11:54:08.8455244Z         },
2026-06-13T11:54:08.8455363Z         "impl": {
2026-06-13T11:54:08.8455474Z           "complete": true,
2026-06-13T11:54:08.8455587Z           "evidence": [
2026-06-13T11:54:08.8455692Z             {
2026-06-13T11:54:08.8455844Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8455959Z               "line": 18
2026-06-13T11:54:08.8456064Z             },
2026-06-13T11:54:08.8456173Z             {
2026-06-13T11:54:08.8456312Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8456431Z               "line": 325
2026-06-13T11:54:08.8456535Z             }
2026-06-13T11:54:08.8456642Z           ]
2026-06-13T11:54:08.8456750Z         },
2026-06-13T11:54:08.8456850Z         "int": {
2026-06-13T11:54:08.8456971Z           "complete": false,
2026-06-13T11:54:08.8457079Z           "evidence": []
2026-06-13T11:54:08.8457184Z         },
2026-06-13T11:54:08.8457296Z         "unit": {
2026-06-13T11:54:08.8457422Z           "complete": true,
2026-06-13T11:54:08.8457540Z           "evidence": [
2026-06-13T11:54:08.8457650Z             {
2026-06-13T11:54:08.8457801Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8457910Z               "line": 576
2026-06-13T11:54:08.8458125Z             },
2026-06-13T11:54:08.8458235Z             {
2026-06-13T11:54:08.8458382Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8458496Z               "line": 586
2026-06-13T11:54:08.8458598Z             }
2026-06-13T11:54:08.8458707Z           ]
2026-06-13T11:54:08.8458811Z         }
2026-06-13T11:54:08.8458917Z       }
2026-06-13T11:54:08.8459093Z     },
2026-06-13T11:54:08.8459204Z     {
2026-06-13T11:54:08.8459341Z       "id": "REQ-SEAM-PSYCHE",
2026-06-13T11:54:08.8459514Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-13T11:54:08.8459632Z       "requiredStages": [
2026-06-13T11:54:08.8459737Z         "impl",
2026-06-13T11:54:08.8459951Z         "unit",
2026-06-13T11:54:08.8460061Z         "int"
2026-06-13T11:54:08.8460168Z       ],
2026-06-13T11:54:08.8460280Z       "stages": {
2026-06-13T11:54:08.8460384Z         "doc": {
2026-06-13T11:54:08.8460504Z           "complete": false,
2026-06-13T11:54:08.8460625Z           "evidence": []
2026-06-13T11:54:08.8460729Z         },
2026-06-13T11:54:08.8460835Z         "impl": {
2026-06-13T11:54:08.8460954Z           "complete": true,
2026-06-13T11:54:08.8461068Z           "evidence": [
2026-06-13T11:54:08.8461169Z             {
2026-06-13T11:54:08.8461312Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:54:08.8461422Z               "line": 19
2026-06-13T11:54:08.8461532Z             },
2026-06-13T11:54:08.8461636Z             {
2026-06-13T11:54:08.8461780Z               "path": "crates/spt/src/api/live.rs",
2026-06-13T11:54:08.8461889Z               "line": 12
2026-06-13T11:54:08.8461988Z             },
2026-06-13T11:54:08.8462099Z             {
2026-06-13T11:54:08.8462241Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8462356Z               "line": 225
2026-06-13T11:54:08.8462462Z             }
2026-06-13T11:54:08.8462565Z           ]
2026-06-13T11:54:08.8462671Z         },
2026-06-13T11:54:08.8462776Z         "int": {
2026-06-13T11:54:08.8462898Z           "complete": true,
2026-06-13T11:54:08.8463008Z           "evidence": [
2026-06-13T11:54:08.8463117Z             {
2026-06-13T11:54:08.8463263Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.8463373Z               "line": 259
2026-06-13T11:54:08.8463484Z             }
2026-06-13T11:54:08.8463582Z           ]
2026-06-13T11:54:08.8463688Z         },
2026-06-13T11:54:08.8463788Z         "unit": {
2026-06-13T11:54:08.8463911Z           "complete": true,
2026-06-13T11:54:08.8464022Z           "evidence": [
2026-06-13T11:54:08.8464132Z             {
2026-06-13T11:54:08.8464274Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:54:08.8464384Z               "line": 161
2026-06-13T11:54:08.8464503Z             },
2026-06-13T11:54:08.8464603Z             {
2026-06-13T11:54:08.8464746Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:54:08.8464855Z               "line": 168
2026-06-13T11:54:08.8464962Z             },
2026-06-13T11:54:08.8465075Z             {
2026-06-13T11:54:08.8465214Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-13T11:54:08.8465329Z               "line": 191
2026-06-13T11:54:08.8465432Z             },
2026-06-13T11:54:08.8465543Z             {
2026-06-13T11:54:08.8465686Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:54:08.8465799Z               "line": 106
2026-06-13T11:54:08.8465914Z             },
2026-06-13T11:54:08.8466015Z             {
2026-06-13T11:54:08.8466156Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:54:08.8466267Z               "line": 137
2026-06-13T11:54:08.8466372Z             },
2026-06-13T11:54:08.8466476Z             {
2026-06-13T11:54:08.8466615Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-13T11:54:08.8466733Z               "line": 161
2026-06-13T11:54:08.8466834Z             }
2026-06-13T11:54:08.8466939Z           ]
2026-06-13T11:54:08.8467044Z         }
2026-06-13T11:54:08.8467153Z       }
2026-06-13T11:54:08.8467359Z     },
2026-06-13T11:54:08.8467473Z     {
2026-06-13T11:54:08.8467597Z       "id": "REQ-SEAM-RESUME",
2026-06-13T11:54:08.8467812Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-13T11:54:08.8467935Z       "requiredStages": [
2026-06-13T11:54:08.8468039Z         "impl",
2026-06-13T11:54:08.8468148Z         "unit"
2026-06-13T11:54:08.8468248Z       ],
2026-06-13T11:54:08.8468361Z       "stages": {
2026-06-13T11:54:08.8468470Z         "doc": {
2026-06-13T11:54:08.8468586Z           "complete": false,
2026-06-13T11:54:08.8468699Z           "evidence": []
2026-06-13T11:54:08.8468800Z         },
2026-06-13T11:54:08.8468920Z         "impl": {
2026-06-13T11:54:08.8469239Z           "complete": true,
2026-06-13T11:54:08.8469357Z           "evidence": [
2026-06-13T11:54:08.8469468Z             {
2026-06-13T11:54:08.8469610Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.8469725Z               "line": 19
2026-06-13T11:54:08.8469839Z             }
2026-06-13T11:54:08.8469949Z           ]
2026-06-13T11:54:08.8470050Z         },
2026-06-13T11:54:08.8470159Z         "int": {
2026-06-13T11:54:08.8470282Z           "complete": false,
2026-06-13T11:54:08.8470393Z           "evidence": []
2026-06-13T11:54:08.8470502Z         },
2026-06-13T11:54:08.8470607Z         "unit": {
2026-06-13T11:54:08.8470728Z           "complete": true,
2026-06-13T11:54:08.8470840Z           "evidence": [
2026-06-13T11:54:08.8470948Z             {
2026-06-13T11:54:08.8471097Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.8471209Z               "line": 193
2026-06-13T11:54:08.8471314Z             },
2026-06-13T11:54:08.8471415Z             {
2026-06-13T11:54:08.8471567Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.8471682Z               "line": 215
2026-06-13T11:54:08.8471787Z             },
2026-06-13T11:54:08.8471891Z             {
2026-06-13T11:54:08.8472030Z               "path": "crates/spt-live/src/resume.rs",
2026-06-13T11:54:08.8472163Z               "line": 236
2026-06-13T11:54:08.8472268Z             }
2026-06-13T11:54:08.8472378Z           ]
2026-06-13T11:54:08.8472478Z         }
2026-06-13T11:54:08.8472577Z       }
2026-06-13T11:54:08.8472678Z     },
2026-06-13T11:54:08.8472778Z     {
2026-06-13T11:54:08.8472902Z       "id": "REQ-SEAM-SPAWN",
2026-06-13T11:54:08.8473027Z       "title": "spawn-session seam",
2026-06-13T11:54:08.8473145Z       "requiredStages": [
2026-06-13T11:54:08.8473246Z         "impl",
2026-06-13T11:54:08.8473360Z         "unit"
2026-06-13T11:54:08.8473468Z       ],
2026-06-13T11:54:08.8473573Z       "stages": {
2026-06-13T11:54:08.8473682Z         "doc": {
2026-06-13T11:54:08.8473795Z           "complete": false,
2026-06-13T11:54:08.8473919Z           "evidence": []
2026-06-13T11:54:08.8474015Z         },
2026-06-13T11:54:08.8474123Z         "impl": {
2026-06-13T11:54:08.8474234Z           "complete": true,
2026-06-13T11:54:08.8474343Z           "evidence": [
2026-06-13T11:54:08.8474457Z             {
2026-06-13T11:54:08.8474606Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8474720Z               "line": 20
2026-06-13T11:54:08.8474830Z             }
2026-06-13T11:54:08.8474930Z           ]
2026-06-13T11:54:08.8475030Z         },
2026-06-13T11:54:08.8475130Z         "int": {
2026-06-13T11:54:08.8475245Z           "complete": false,
2026-06-13T11:54:08.8475354Z           "evidence": []
2026-06-13T11:54:08.8475464Z         },
2026-06-13T11:54:08.8475570Z         "unit": {
2026-06-13T11:54:08.8475683Z           "complete": true,
2026-06-13T11:54:08.8475798Z           "evidence": [
2026-06-13T11:54:08.8475899Z             {
2026-06-13T11:54:08.8476050Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8476161Z               "line": 435
2026-06-13T11:54:08.8476279Z             },
2026-06-13T11:54:08.8476378Z             {
2026-06-13T11:54:08.8476527Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8476754Z               "line": 442
2026-06-13T11:54:08.8476861Z             },
2026-06-13T11:54:08.8476974Z             {
2026-06-13T11:54:08.8477118Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8477237Z               "line": 452
2026-06-13T11:54:08.8477341Z             },
2026-06-13T11:54:08.8477452Z             {
2026-06-13T11:54:08.8477609Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8477723Z               "line": 458
2026-06-13T11:54:08.8477824Z             },
2026-06-13T11:54:08.8477928Z             {
2026-06-13T11:54:08.8478081Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8478195Z               "line": 483
2026-06-13T11:54:08.8478392Z             },
2026-06-13T11:54:08.8478505Z             {
2026-06-13T11:54:08.8478660Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-13T11:54:08.8478776Z               "line": 520
2026-06-13T11:54:08.8478878Z             }
2026-06-13T11:54:08.8479064Z           ]
2026-06-13T11:54:08.8479174Z         }
2026-06-13T11:54:08.8479446Z       }
2026-06-13T11:54:08.8479555Z     },
2026-06-13T11:54:08.8479661Z     {
2026-06-13T11:54:08.8479780Z       "id": "REQ-SEAM-UPDATE",
2026-06-13T11:54:08.8479980Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-13T11:54:08.8480099Z       "requiredStages": [
2026-06-13T11:54:08.8480208Z         "impl",
2026-06-13T11:54:08.8480319Z         "unit"
2026-06-13T11:54:08.8480428Z       ],
2026-06-13T11:54:08.8480533Z       "stages": {
2026-06-13T11:54:08.8480639Z         "doc": {
2026-06-13T11:54:08.8480747Z           "complete": false,
2026-06-13T11:54:08.8480862Z           "evidence": []
2026-06-13T11:54:08.8480963Z         },
2026-06-13T11:54:08.8481076Z         "impl": {
2026-06-13T11:54:08.8481186Z           "complete": true,
2026-06-13T11:54:08.8481297Z           "evidence": [
2026-06-13T11:54:08.8481409Z             {
2026-06-13T11:54:08.8481571Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8481685Z               "line": 28
2026-06-13T11:54:08.8481788Z             },
2026-06-13T11:54:08.8481898Z             {
2026-06-13T11:54:08.8482051Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8482155Z               "line": 83
2026-06-13T11:54:08.8482257Z             }
2026-06-13T11:54:08.8482361Z           ]
2026-06-13T11:54:08.8482465Z         },
2026-06-13T11:54:08.8482562Z         "int": {
2026-06-13T11:54:08.8482685Z           "complete": false,
2026-06-13T11:54:08.8482789Z           "evidence": []
2026-06-13T11:54:08.8482891Z         },
2026-06-13T11:54:08.8482999Z         "unit": {
2026-06-13T11:54:08.8483104Z           "complete": true,
2026-06-13T11:54:08.8483225Z           "evidence": [
2026-06-13T11:54:08.8483328Z             {
2026-06-13T11:54:08.8483482Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8483582Z               "line": 286
2026-06-13T11:54:08.8483686Z             },
2026-06-13T11:54:08.8483797Z             {
2026-06-13T11:54:08.8483948Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8484066Z               "line": 297
2026-06-13T11:54:08.8484172Z             }
2026-06-13T11:54:08.8484270Z           ]
2026-06-13T11:54:08.8484378Z         }
2026-06-13T11:54:08.8484484Z       }
2026-06-13T11:54:08.8484580Z     },
2026-06-13T11:54:08.8484674Z     {
2026-06-13T11:54:08.8484794Z       "id": "REQ-SEC-1",
2026-06-13T11:54:08.8485228Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-13T11:54:08.8485351Z       "requiredStages": [
2026-06-13T11:54:08.8485457Z         "impl",
2026-06-13T11:54:08.8485566Z         "unit"
2026-06-13T11:54:08.8485670Z       ],
2026-06-13T11:54:08.8485777Z       "stages": {
2026-06-13T11:54:08.8485886Z         "doc": {
2026-06-13T11:54:08.8486000Z           "complete": false,
2026-06-13T11:54:08.8486224Z           "evidence": []
2026-06-13T11:54:08.8486334Z         },
2026-06-13T11:54:08.8486445Z         "impl": {
2026-06-13T11:54:08.8486562Z           "complete": true,
2026-06-13T11:54:08.8486673Z           "evidence": [
2026-06-13T11:54:08.8486783Z             {
2026-06-13T11:54:08.8486938Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8487048Z               "line": 84
2026-06-13T11:54:08.8487159Z             },
2026-06-13T11:54:08.8487262Z             {
2026-06-13T11:54:08.8487407Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8487516Z               "line": 114
2026-06-13T11:54:08.8487620Z             },
2026-06-13T11:54:08.8487731Z             {
2026-06-13T11:54:08.8487978Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8488083Z               "line": 128
2026-06-13T11:54:08.8488192Z             },
2026-06-13T11:54:08.8488298Z             {
2026-06-13T11:54:08.8488440Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8488569Z               "line": 108
2026-06-13T11:54:08.8488675Z             },
2026-06-13T11:54:08.8488774Z             {
2026-06-13T11:54:08.8488922Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8489117Z               "line": 129
2026-06-13T11:54:08.8489235Z             },
2026-06-13T11:54:08.8489341Z             {
2026-06-13T11:54:08.8489491Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8489596Z               "line": 142
2026-06-13T11:54:08.8489702Z             },
2026-06-13T11:54:08.8489810Z             {
2026-06-13T11:54:08.8489944Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8490054Z               "line": 208
2026-06-13T11:54:08.8490163Z             },
2026-06-13T11:54:08.8490274Z             {
2026-06-13T11:54:08.8490416Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8490521Z               "line": 234
2026-06-13T11:54:08.8490626Z             },
2026-06-13T11:54:08.8490731Z             {
2026-06-13T11:54:08.8490870Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8490979Z               "line": 4288
2026-06-13T11:54:08.8491088Z             }
2026-06-13T11:54:08.8491194Z           ]
2026-06-13T11:54:08.8491289Z         },
2026-06-13T11:54:08.8491398Z         "int": {
2026-06-13T11:54:08.8491509Z           "complete": false,
2026-06-13T11:54:08.8491627Z           "evidence": []
2026-06-13T11:54:08.8491732Z         },
2026-06-13T11:54:08.8491828Z         "unit": {
2026-06-13T11:54:08.8491947Z           "complete": true,
2026-06-13T11:54:08.8492055Z           "evidence": [
2026-06-13T11:54:08.8492165Z             {
2026-06-13T11:54:08.8492315Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8492434Z               "line": 140
2026-06-13T11:54:08.8492526Z             },
2026-06-13T11:54:08.8492639Z             {
2026-06-13T11:54:08.8492787Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8492902Z               "line": 192
2026-06-13T11:54:08.8493020Z             },
2026-06-13T11:54:08.8493127Z             {
2026-06-13T11:54:08.8493274Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-13T11:54:08.8493383Z               "line": 233
2026-06-13T11:54:08.8493498Z             },
2026-06-13T11:54:08.8493607Z             {
2026-06-13T11:54:08.8493756Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-13T11:54:08.8493879Z               "line": 140
2026-06-13T11:54:08.8493979Z             },
2026-06-13T11:54:08.8494095Z             {
2026-06-13T11:54:08.8494222Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8494337Z               "line": 246
2026-06-13T11:54:08.8494452Z             },
2026-06-13T11:54:08.8494556Z             {
2026-06-13T11:54:08.8494702Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8494811Z               "line": 276
2026-06-13T11:54:08.8494920Z             },
2026-06-13T11:54:08.8495020Z             {
2026-06-13T11:54:08.8495272Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8495393Z               "line": 309
2026-06-13T11:54:08.8495497Z             },
2026-06-13T11:54:08.8495601Z             {
2026-06-13T11:54:08.8495735Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8495850Z               "line": 328
2026-06-13T11:54:08.8495965Z             },
2026-06-13T11:54:08.8496064Z             {
2026-06-13T11:54:08.8496207Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8496356Z               "line": 361
2026-06-13T11:54:08.8496456Z             },
2026-06-13T11:54:08.8496555Z             {
2026-06-13T11:54:08.8496685Z               "path": "crates/spt-store/src/access.rs",
2026-06-13T11:54:08.8496904Z               "line": 385
2026-06-13T11:54:08.8497009Z             },
2026-06-13T11:54:08.8497118Z             {
2026-06-13T11:54:08.8497243Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8497366Z               "line": 6091
2026-06-13T11:54:08.8497475Z             }
2026-06-13T11:54:08.8497584Z           ]
2026-06-13T11:54:08.8497695Z         }
2026-06-13T11:54:08.8497794Z       }
2026-06-13T11:54:08.8497889Z     },
2026-06-13T11:54:08.8497986Z     {
2026-06-13T11:54:08.8498109Z       "id": "REQ-SHELL-1",
2026-06-13T11:54:08.8499154Z       "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-13T11:54:08.8499273Z       "requiredStages": [
2026-06-13T11:54:08.8499396Z         "impl",
2026-06-13T11:54:08.8499497Z         "unit",
2026-06-13T11:54:08.8499607Z         "int"
2026-06-13T11:54:08.8499710Z       ],
2026-06-13T11:54:08.8499810Z       "stages": {
2026-06-13T11:54:08.8499919Z         "doc": {
2026-06-13T11:54:08.8500046Z           "complete": false,
2026-06-13T11:54:08.8500166Z           "evidence": []
2026-06-13T11:54:08.8500267Z         },
2026-06-13T11:54:08.8500370Z         "impl": {
2026-06-13T11:54:08.8500476Z           "complete": true,
2026-06-13T11:54:08.8500595Z           "evidence": [
2026-06-13T11:54:08.8500704Z             {
2026-06-13T11:54:08.8500863Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8500995Z               "line": 94
2026-06-13T11:54:08.8501101Z             },
2026-06-13T11:54:08.8501224Z             {
2026-06-13T11:54:08.8501377Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8501501Z               "line": 121
2026-06-13T11:54:08.8501606Z             },
2026-06-13T11:54:08.8501706Z             {
2026-06-13T11:54:08.8501858Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8501967Z               "line": 27
2026-06-13T11:54:08.8502074Z             },
2026-06-13T11:54:08.8502178Z             {
2026-06-13T11:54:08.8502331Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8502446Z               "line": 52
2026-06-13T11:54:08.8502544Z             },
2026-06-13T11:54:08.8502648Z             {
2026-06-13T11:54:08.8502791Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8502904Z               "line": 132
2026-06-13T11:54:08.8503009Z             },
2026-06-13T11:54:08.8503119Z             {
2026-06-13T11:54:08.8503280Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8503382Z               "line": 164
2026-06-13T11:54:08.8503477Z             },
2026-06-13T11:54:08.8503580Z             {
2026-06-13T11:54:08.8503730Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8503843Z               "line": 22
2026-06-13T11:54:08.8503948Z             },
2026-06-13T11:54:08.8504049Z             {
2026-06-13T11:54:08.8504186Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8504425Z               "line": 65
2026-06-13T11:54:08.8504534Z             },
2026-06-13T11:54:08.8504640Z             {
2026-06-13T11:54:08.8504782Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8504888Z               "line": 76
2026-06-13T11:54:08.8504994Z             },
2026-06-13T11:54:08.8505096Z             {
2026-06-13T11:54:08.8505244Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8505349Z               "line": 150
2026-06-13T11:54:08.8505451Z             },
2026-06-13T11:54:08.8505551Z             {
2026-06-13T11:54:08.8505701Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8505818Z               "line": 209
2026-06-13T11:54:08.8506048Z             },
2026-06-13T11:54:08.8506147Z             {
2026-06-13T11:54:08.8506291Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8506405Z               "line": 246
2026-06-13T11:54:08.8506515Z             },
2026-06-13T11:54:08.8506625Z             {
2026-06-13T11:54:08.8506772Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8506883Z               "line": 267
2026-06-13T11:54:08.8506996Z             },
2026-06-13T11:54:08.8507101Z             {
2026-06-13T11:54:08.8507250Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8507368Z               "line": 280
2026-06-13T11:54:08.8507469Z             },
2026-06-13T11:54:08.8507583Z             {
2026-06-13T11:54:08.8507726Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.8507847Z               "line": 217
2026-06-13T11:54:08.8507950Z             },
2026-06-13T11:54:08.8508054Z             {
2026-06-13T11:54:08.8508202Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.8508311Z               "line": 233
2026-06-13T11:54:08.8508416Z             },
2026-06-13T11:54:08.8508522Z             {
2026-06-13T11:54:08.8508674Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.8508789Z               "line": 41
2026-06-13T11:54:08.8508889Z             },
2026-06-13T11:54:08.8513674Z             {
2026-06-13T11:54:08.8513869Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.8513999Z               "line": 222
2026-06-13T11:54:08.8514103Z             },
2026-06-13T11:54:08.8514213Z             {
2026-06-13T11:54:08.8514366Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-13T11:54:08.8514484Z               "line": 156
2026-06-13T11:54:08.8514595Z             },
2026-06-13T11:54:08.8514699Z             {
2026-06-13T11:54:08.8514847Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.8514957Z               "line": 311
2026-06-13T11:54:08.8515085Z             },
2026-06-13T11:54:08.8515187Z             {
2026-06-13T11:54:08.8515328Z               "path": "crates/spt/src/api/mod.rs",
2026-06-13T11:54:08.8515448Z               "line": 363
2026-06-13T11:54:08.8515549Z             },
2026-06-13T11:54:08.8515666Z             {
2026-06-13T11:54:08.8515819Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8515937Z               "line": 261
2026-06-13T11:54:08.8516040Z             },
2026-06-13T11:54:08.8516150Z             {
2026-06-13T11:54:08.8516280Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8516393Z               "line": 4905
2026-06-13T11:54:08.8516504Z             },
2026-06-13T11:54:08.8516604Z             {
2026-06-13T11:54:08.8516736Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8516847Z               "line": 5055
2026-06-13T11:54:08.8516951Z             },
2026-06-13T11:54:08.8517060Z             {
2026-06-13T11:54:08.8517185Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8517308Z               "line": 5092
2026-06-13T11:54:08.8517404Z             }
2026-06-13T11:54:08.8517519Z           ]
2026-06-13T11:54:08.8517618Z         },
2026-06-13T11:54:08.8517724Z         "int": {
2026-06-13T11:54:08.8518010Z           "complete": true,
2026-06-13T11:54:08.8518125Z           "evidence": [
2026-06-13T11:54:08.8518238Z             {
2026-06-13T11:54:08.8518397Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8518515Z               "line": 707
2026-06-13T11:54:08.8518619Z             },
2026-06-13T11:54:08.8518729Z             {
2026-06-13T11:54:08.8518891Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:54:08.8519082Z               "line": 8
2026-06-13T11:54:08.8519200Z             },
2026-06-13T11:54:08.8519310Z             {
2026-06-13T11:54:08.8519468Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-13T11:54:08.8519587Z               "line": 49
2026-06-13T11:54:08.8519792Z             },
2026-06-13T11:54:08.8519901Z             {
2026-06-13T11:54:08.8520055Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8520173Z               "line": 708
2026-06-13T11:54:08.8520279Z             },
2026-06-13T11:54:08.8520398Z             {
2026-06-13T11:54:08.8520559Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8520675Z               "line": 1118
2026-06-13T11:54:08.8520783Z             },
2026-06-13T11:54:08.8520883Z             {
2026-06-13T11:54:08.8521044Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-13T11:54:08.8521157Z               "line": 17
2026-06-13T11:54:08.8521267Z             },
2026-06-13T11:54:08.8521377Z             {
2026-06-13T11:54:08.8521523Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-13T11:54:08.8521639Z               "line": 14
2026-06-13T11:54:08.8521743Z             }
2026-06-13T11:54:08.8521852Z           ]
2026-06-13T11:54:08.8521959Z         },
2026-06-13T11:54:08.8522077Z         "unit": {
2026-06-13T11:54:08.8522201Z           "complete": true,
2026-06-13T11:54:08.8522321Z           "evidence": [
2026-06-13T11:54:08.8522430Z             {
2026-06-13T11:54:08.8522579Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8522702Z               "line": 234
2026-06-13T11:54:08.8522811Z             },
2026-06-13T11:54:08.8522917Z             {
2026-06-13T11:54:08.8523069Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8523180Z               "line": 267
2026-06-13T11:54:08.8523289Z             },
2026-06-13T11:54:08.8523394Z             {
2026-06-13T11:54:08.8523542Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8523655Z               "line": 307
2026-06-13T11:54:08.8523773Z             },
2026-06-13T11:54:08.8523878Z             {
2026-06-13T11:54:08.8524024Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8524153Z               "line": 568
2026-06-13T11:54:08.8524258Z             },
2026-06-13T11:54:08.8524371Z             {
2026-06-13T11:54:08.8524521Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8524644Z               "line": 641
2026-06-13T11:54:08.8524758Z             },
2026-06-13T11:54:08.8524864Z             {
2026-06-13T11:54:08.8525015Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8525131Z               "line": 785
2026-06-13T11:54:08.8525245Z             },
2026-06-13T11:54:08.8525349Z             {
2026-06-13T11:54:08.8525498Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.8525612Z               "line": 595
2026-06-13T11:54:08.8525717Z             },
2026-06-13T11:54:08.8525828Z             {
2026-06-13T11:54:08.8525960Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-13T11:54:08.8526071Z               "line": 399
2026-06-13T11:54:08.8526175Z             },
2026-06-13T11:54:08.8526278Z             {
2026-06-13T11:54:08.8526416Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8526520Z               "line": 6560
2026-06-13T11:54:08.8526624Z             },
2026-06-13T11:54:08.8526720Z             {
2026-06-13T11:54:08.8526854Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8527097Z               "line": 6882
2026-06-13T11:54:08.8527201Z             },
2026-06-13T11:54:08.8527306Z             {
2026-06-13T11:54:08.8527416Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8527526Z               "line": 7299
2026-06-13T11:54:08.8527616Z             }
2026-06-13T11:54:08.8527722Z           ]
2026-06-13T11:54:08.8527831Z         }
2026-06-13T11:54:08.8527931Z       }
2026-06-13T11:54:08.8528037Z     },
2026-06-13T11:54:08.8528126Z     {
2026-06-13T11:54:08.8528246Z       "id": "REQ-SHELL-2",
2026-06-13T11:54:08.8530038Z       "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-13T11:54:08.8530267Z       "requiredStages": [
2026-06-13T11:54:08.8530371Z         "impl",
2026-06-13T11:54:08.8530471Z         "unit",
2026-06-13T11:54:08.8530573Z         "int"
2026-06-13T11:54:08.8530676Z       ],
2026-06-13T11:54:08.8530786Z       "stages": {
2026-06-13T11:54:08.8530892Z         "doc": {
2026-06-13T11:54:08.8530995Z           "complete": false,
2026-06-13T11:54:08.8531110Z           "evidence": []
2026-06-13T11:54:08.8531217Z         },
2026-06-13T11:54:08.8531319Z         "impl": {
2026-06-13T11:54:08.8531433Z           "complete": true,
2026-06-13T11:54:08.8531543Z           "evidence": [
2026-06-13T11:54:08.8531651Z             {
2026-06-13T11:54:08.8531822Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.8531937Z               "line": 214
2026-06-13T11:54:08.8532036Z             },
2026-06-13T11:54:08.8532185Z             {
2026-06-13T11:54:08.8532323Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8532432Z               "line": 403
2026-06-13T11:54:08.8532538Z             },
2026-06-13T11:54:08.8532632Z             {
2026-06-13T11:54:08.8532776Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-13T11:54:08.8532886Z               "line": 250
2026-06-13T11:54:08.8532995Z             },
2026-06-13T11:54:08.8533086Z             {
2026-06-13T11:54:08.8533224Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.8533329Z               "line": 353
2026-06-13T11:54:08.8533420Z             },
2026-06-13T11:54:08.8533534Z             {
2026-06-13T11:54:08.8533672Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8533797Z               "line": 30
2026-06-13T11:54:08.8533905Z             },
2026-06-13T11:54:08.8534011Z             {
2026-06-13T11:54:08.8534145Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8534253Z               "line": 152
2026-06-13T11:54:08.8534358Z             },
2026-06-13T11:54:08.8534457Z             {
2026-06-13T11:54:08.8534589Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8534694Z               "line": 188
2026-06-13T11:54:08.8534800Z             },
2026-06-13T11:54:08.8534908Z             {
2026-06-13T11:54:08.8535038Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8535147Z               "line": 347
2026-06-13T11:54:08.8535256Z             },
2026-06-13T11:54:08.8535363Z             {
2026-06-13T11:54:08.8535496Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.8535604Z               "line": 348
2026-06-13T11:54:08.8535710Z             },
2026-06-13T11:54:08.8535814Z             {
2026-06-13T11:54:08.8535962Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-13T11:54:08.8536068Z               "line": 115
2026-06-13T11:54:08.8536177Z             },
2026-06-13T11:54:08.8536282Z             {
2026-06-13T11:54:08.8536544Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8536660Z               "line": 120
2026-06-13T11:54:08.8536763Z             },
2026-06-13T11:54:08.8536872Z             {
2026-06-13T11:54:08.8537015Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8537123Z               "line": 360
2026-06-13T11:54:08.8537227Z             },
2026-06-13T11:54:08.8537323Z             {
2026-06-13T11:54:08.8537456Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8537565Z               "line": 469
2026-06-13T11:54:08.8537667Z             },
2026-06-13T11:54:08.8537766Z             {
2026-06-13T11:54:08.8537905Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8538095Z               "line": 24
2026-06-13T11:54:08.8538195Z             },
2026-06-13T11:54:08.8538301Z             {
2026-06-13T11:54:08.8538452Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8538549Z               "line": 76
2026-06-13T11:54:08.8538649Z             },
2026-06-13T11:54:08.8538753Z             {
2026-06-13T11:54:08.8538887Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8539077Z               "line": 154
2026-06-13T11:54:08.8539189Z             },
2026-06-13T11:54:08.8539292Z             {
2026-06-13T11:54:08.8539440Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8539541Z               "line": 177
2026-06-13T11:54:08.8539649Z             },
2026-06-13T11:54:08.8539758Z             {
2026-06-13T11:54:08.8539893Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8540001Z               "line": 273
2026-06-13T11:54:08.8540096Z             },
2026-06-13T11:54:08.8540203Z             {
2026-06-13T11:54:08.8540335Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8540445Z               "line": 455
2026-06-13T11:54:08.8540555Z             },
2026-06-13T11:54:08.8540655Z             {
2026-06-13T11:54:08.8540798Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8540917Z               "line": 537
2026-06-13T11:54:08.8541021Z             },
2026-06-13T11:54:08.8541128Z             {
2026-06-13T11:54:08.8541270Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:54:08.8541379Z               "line": 27
2026-06-13T11:54:08.8541481Z             },
2026-06-13T11:54:08.8541584Z             {
2026-06-13T11:54:08.8541723Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:54:08.8541829Z               "line": 43
2026-06-13T11:54:08.8541936Z             },
2026-06-13T11:54:08.8542041Z             {
2026-06-13T11:54:08.8542174Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8542282Z               "line": 325
2026-06-13T11:54:08.8542391Z             },
2026-06-13T11:54:08.8542493Z             {
2026-06-13T11:54:08.8542625Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8542735Z               "line": 1398
2026-06-13T11:54:08.8542831Z             },
2026-06-13T11:54:08.8542935Z             {
2026-06-13T11:54:08.8543060Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8543179Z               "line": 4919
2026-06-13T11:54:08.8543278Z             },
2026-06-13T11:54:08.8543389Z             {
2026-06-13T11:54:08.8543517Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8543622Z               "line": 4980
2026-06-13T11:54:08.8543728Z             },
2026-06-13T11:54:08.8543827Z             {
2026-06-13T11:54:08.8543956Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8544066Z               "line": 5008
2026-06-13T11:54:08.8544175Z             },
2026-06-13T11:54:08.8544290Z             {
2026-06-13T11:54:08.8544413Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8544533Z               "line": 5062
2026-06-13T11:54:08.8544634Z             },
2026-06-13T11:54:08.8544738Z             {
2026-06-13T11:54:08.8545004Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8545116Z               "line": 5178
2026-06-13T11:54:08.8545220Z             },
2026-06-13T11:54:08.8545316Z             {
2026-06-13T11:54:08.8545435Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8545535Z               "line": 5231
2026-06-13T11:54:08.8545636Z             },
2026-06-13T11:54:08.8545736Z             {
2026-06-13T11:54:08.8545869Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8545975Z               "line": 298
2026-06-13T11:54:08.8546079Z             },
2026-06-13T11:54:08.8546189Z             {
2026-06-13T11:54:08.8546313Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8546427Z               "line": 339
2026-06-13T11:54:08.8546633Z             }
2026-06-13T11:54:08.8546732Z           ]
2026-06-13T11:54:08.8546838Z         },
2026-06-13T11:54:08.8546938Z         "int": {
2026-06-13T11:54:08.8547051Z           "complete": true,
2026-06-13T11:54:08.8547158Z           "evidence": [
2026-06-13T11:54:08.8547272Z             {
2026-06-13T11:54:08.8547422Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8547528Z               "line": 700
2026-06-13T11:54:08.8547640Z             },
2026-06-13T11:54:08.8547734Z             {
2026-06-13T11:54:08.8547878Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8547983Z               "line": 708
2026-06-13T11:54:08.8548087Z             },
2026-06-13T11:54:08.8548189Z             {
2026-06-13T11:54:08.8548340Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8548455Z               "line": 1118
2026-06-13T11:54:08.8548560Z             },
2026-06-13T11:54:08.8548684Z             {
2026-06-13T11:54:08.8548837Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-13T11:54:08.8549051Z               "line": 18
2026-06-13T11:54:08.8549162Z             }
2026-06-13T11:54:08.8549261Z           ]
2026-06-13T11:54:08.8549375Z         },
2026-06-13T11:54:08.8549481Z         "unit": {
2026-06-13T11:54:08.8549599Z           "complete": true,
2026-06-13T11:54:08.8549705Z           "evidence": [
2026-06-13T11:54:08.8549815Z             {
2026-06-13T11:54:08.8549953Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-13T11:54:08.8550054Z               "line": 431
2026-06-13T11:54:08.8550158Z             },
2026-06-13T11:54:08.8550261Z             {
2026-06-13T11:54:08.8550400Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-13T11:54:08.8550496Z               "line": 796
2026-06-13T11:54:08.8550604Z             },
2026-06-13T11:54:08.8550715Z             {
2026-06-13T11:54:08.8550853Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8550976Z               "line": 674
2026-06-13T11:54:08.8551068Z             },
2026-06-13T11:54:08.8551182Z             {
2026-06-13T11:54:08.8551320Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8551435Z               "line": 723
2026-06-13T11:54:08.8551544Z             },
2026-06-13T11:54:08.8551649Z             {
2026-06-13T11:54:08.8551782Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-13T11:54:08.8551891Z               "line": 747
2026-06-13T11:54:08.8551998Z             },
2026-06-13T11:54:08.8552102Z             {
2026-06-13T11:54:08.8552250Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8552356Z               "line": 602
2026-06-13T11:54:08.8552454Z             },
2026-06-13T11:54:08.8552563Z             {
2026-06-13T11:54:08.8552702Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8552809Z               "line": 623
2026-06-13T11:54:08.8552913Z             },
2026-06-13T11:54:08.8553019Z             {
2026-06-13T11:54:08.8553156Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8553267Z               "line": 659
2026-06-13T11:54:08.8553372Z             },
2026-06-13T11:54:08.8553476Z             {
2026-06-13T11:54:08.8553735Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8553848Z               "line": 713
2026-06-13T11:54:08.8553959Z             },
2026-06-13T11:54:08.8554073Z             {
2026-06-13T11:54:08.8554211Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8554325Z               "line": 731
2026-06-13T11:54:08.8554425Z             },
2026-06-13T11:54:08.8554526Z             {
2026-06-13T11:54:08.8554663Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8554768Z               "line": 765
2026-06-13T11:54:08.8554879Z             },
2026-06-13T11:54:08.8554983Z             {
2026-06-13T11:54:08.8555131Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-13T11:54:08.8555326Z               "line": 840
2026-06-13T11:54:08.8555435Z             },
2026-06-13T11:54:08.8555545Z             {
2026-06-13T11:54:08.8555685Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-13T11:54:08.8555795Z               "line": 80
2026-06-13T11:54:08.8555886Z             },
2026-06-13T11:54:08.8555986Z             {
2026-06-13T11:54:08.8556109Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8556230Z               "line": 5891
2026-06-13T11:54:08.8556333Z             },
2026-06-13T11:54:08.8556434Z             {
2026-06-13T11:54:08.8556558Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8556667Z               "line": 6637
2026-06-13T11:54:08.8556773Z             },
2026-06-13T11:54:08.8556873Z             {
2026-06-13T11:54:08.8557006Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8557112Z               "line": 6707
2026-06-13T11:54:08.8557207Z             },
2026-06-13T11:54:08.8557311Z             {
2026-06-13T11:54:08.8557427Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8557540Z               "line": 6745
2026-06-13T11:54:08.8557641Z             }
2026-06-13T11:54:08.8557746Z           ]
2026-06-13T11:54:08.8557855Z         }
2026-06-13T11:54:08.8557964Z       }
2026-06-13T11:54:08.8558063Z     },
2026-06-13T11:54:08.8558168Z     {
2026-06-13T11:54:08.8558281Z       "id": "REQ-START-1",
2026-06-13T11:54:08.8558496Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-13T11:54:08.8558610Z       "requiredStages": [
2026-06-13T11:54:08.8558720Z         "impl",
2026-06-13T11:54:08.8558825Z         "unit"
2026-06-13T11:54:08.8558934Z       ],
2026-06-13T11:54:08.8559144Z       "stages": {
2026-06-13T11:54:08.8559267Z         "doc": {
2026-06-13T11:54:08.8559379Z           "complete": false,
2026-06-13T11:54:08.8559487Z           "evidence": []
2026-06-13T11:54:08.8559592Z         },
2026-06-13T11:54:08.8559703Z         "impl": {
2026-06-13T11:54:08.8559821Z           "complete": true,
2026-06-13T11:54:08.8559930Z           "evidence": [
2026-06-13T11:54:08.8560036Z             {
2026-06-13T11:54:08.8560159Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:54:08.8560270Z               "line": 16
2026-06-13T11:54:08.8560375Z             }
2026-06-13T11:54:08.8560474Z           ]
2026-06-13T11:54:08.8560580Z         },
2026-06-13T11:54:08.8560680Z         "int": {
2026-06-13T11:54:08.8560803Z           "complete": false,
2026-06-13T11:54:08.8560907Z           "evidence": []
2026-06-13T11:54:08.8561013Z         },
2026-06-13T11:54:08.8561122Z         "unit": {
2026-06-13T11:54:08.8561227Z           "complete": true,
2026-06-13T11:54:08.8561332Z           "evidence": [
2026-06-13T11:54:08.8561427Z             {
2026-06-13T11:54:08.8561551Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:54:08.8561657Z               "line": 43
2026-06-13T11:54:08.8561766Z             },
2026-06-13T11:54:08.8561880Z             {
2026-06-13T11:54:08.8562009Z               "path": "crates/spt-store/src/seed.rs",
2026-06-13T11:54:08.8562123Z               "line": 59
2026-06-13T11:54:08.8562229Z             }
2026-06-13T11:54:08.8562333Z           ]
2026-06-13T11:54:08.8562438Z         }
2026-06-13T11:54:08.8562695Z       }
2026-06-13T11:54:08.8562805Z     },
2026-06-13T11:54:08.8562939Z     {
2026-06-13T11:54:08.8563056Z       "id": "REQ-START-2",
2026-06-13T11:54:08.8563214Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-13T11:54:08.8563322Z       "requiredStages": [
2026-06-13T11:54:08.8563417Z         "impl",
2026-06-13T11:54:08.8563522Z         "unit",
2026-06-13T11:54:08.8563623Z         "int"
2026-06-13T11:54:08.8563712Z       ],
2026-06-13T11:54:08.8563812Z       "stages": {
2026-06-13T11:54:08.8563904Z         "doc": {
2026-06-13T11:54:08.8564013Z           "complete": false,
2026-06-13T11:54:08.8564108Z           "evidence": []
2026-06-13T11:54:08.8564209Z         },
2026-06-13T11:54:08.8564408Z         "impl": {
2026-06-13T11:54:08.8564514Z           "complete": true,
2026-06-13T11:54:08.8564614Z           "evidence": [
2026-06-13T11:54:08.8564703Z             {
2026-06-13T11:54:08.8564834Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8564938Z               "line": 16
2026-06-13T11:54:08.8565033Z             },
2026-06-13T11:54:08.8565129Z             {
2026-06-13T11:54:08.8565252Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8565352Z               "line": 100
2026-06-13T11:54:08.8565444Z             },
2026-06-13T11:54:08.8565539Z             {
2026-06-13T11:54:08.8565653Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8565759Z               "line": 224
2026-06-13T11:54:08.8565854Z             }
2026-06-13T11:54:08.8565943Z           ]
2026-06-13T11:54:08.8566033Z         },
2026-06-13T11:54:08.8566124Z         "int": {
2026-06-13T11:54:08.8566227Z           "complete": true,
2026-06-13T11:54:08.8566331Z           "evidence": [
2026-06-13T11:54:08.8566422Z             {
2026-06-13T11:54:08.8566555Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.8566646Z               "line": 186
2026-06-13T11:54:08.8566743Z             }
2026-06-13T11:54:08.8566833Z           ]
2026-06-13T11:54:08.8566927Z         },
2026-06-13T11:54:08.8567023Z         "unit": {
2026-06-13T11:54:08.8567128Z           "complete": true,
2026-06-13T11:54:08.8567232Z           "evidence": [
2026-06-13T11:54:08.8567323Z             {
2026-06-13T11:54:08.8567447Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8567542Z               "line": 438
2026-06-13T11:54:08.8567633Z             },
2026-06-13T11:54:08.8567725Z             {
2026-06-13T11:54:08.8567843Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8567943Z               "line": 471
2026-06-13T11:54:08.8568035Z             }
2026-06-13T11:54:08.8568128Z           ]
2026-06-13T11:54:08.8568225Z         }
2026-06-13T11:54:08.8568316Z       }
2026-06-13T11:54:08.8568406Z     },
2026-06-13T11:54:08.8568500Z     {
2026-06-13T11:54:08.8568610Z       "id": "REQ-START-3",
2026-06-13T11:54:08.8568788Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-13T11:54:08.8568902Z       "requiredStages": [
2026-06-13T11:54:08.8569085Z         "impl",
2026-06-13T11:54:08.8569184Z         "unit",
2026-06-13T11:54:08.8569270Z         "int"
2026-06-13T11:54:08.8569371Z       ],
2026-06-13T11:54:08.8569470Z       "stages": {
2026-06-13T11:54:08.8569561Z         "doc": {
2026-06-13T11:54:08.8569666Z           "complete": false,
2026-06-13T11:54:08.8569761Z           "evidence": []
2026-06-13T11:54:08.8569856Z         },
2026-06-13T11:54:08.8569948Z         "impl": {
2026-06-13T11:54:08.8570057Z           "complete": true,
2026-06-13T11:54:08.8570161Z           "evidence": [
2026-06-13T11:54:08.8570249Z             {
2026-06-13T11:54:08.8570381Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8570481Z               "line": 23
2026-06-13T11:54:08.8570578Z             },
2026-06-13T11:54:08.8570667Z             {
2026-06-13T11:54:08.8570796Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8571010Z               "line": 205
2026-06-13T11:54:08.8571101Z             },
2026-06-13T11:54:08.8571193Z             {
2026-06-13T11:54:08.8571315Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8571419Z               "line": 221
2026-06-13T11:54:08.8571510Z             },
2026-06-13T11:54:08.8571606Z             {
2026-06-13T11:54:08.8571734Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8571825Z               "line": 17
2026-06-13T11:54:08.8571926Z             },
2026-06-13T11:54:08.8572015Z             {
2026-06-13T11:54:08.8572145Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8572240Z               "line": 43
2026-06-13T11:54:08.8572344Z             },
2026-06-13T11:54:08.8572555Z             {
2026-06-13T11:54:08.8572683Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8572789Z               "line": 101
2026-06-13T11:54:08.8572884Z             }
2026-06-13T11:54:08.8572988Z           ]
2026-06-13T11:54:08.8573084Z         },
2026-06-13T11:54:08.8573184Z         "int": {
2026-06-13T11:54:08.8573288Z           "complete": true,
2026-06-13T11:54:08.8573389Z           "evidence": [
2026-06-13T11:54:08.8573485Z             {
2026-06-13T11:54:08.8573612Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-13T11:54:08.8573716Z               "line": 440
2026-06-13T11:54:08.8573802Z             }
2026-06-13T11:54:08.8573901Z           ]
2026-06-13T11:54:08.8573995Z         },
2026-06-13T11:54:08.8574082Z         "unit": {
2026-06-13T11:54:08.8574193Z           "complete": true,
2026-06-13T11:54:08.8574286Z           "evidence": [
2026-06-13T11:54:08.8574387Z             {
2026-06-13T11:54:08.8574511Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8574615Z               "line": 331
2026-06-13T11:54:08.8574712Z             },
2026-06-13T11:54:08.8574802Z             {
2026-06-13T11:54:08.8574925Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8575027Z               "line": 352
2026-06-13T11:54:08.8575122Z             },
2026-06-13T11:54:08.8575212Z             {
2026-06-13T11:54:08.8575341Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-13T11:54:08.8575441Z               "line": 362
2026-06-13T11:54:08.8575531Z             },
2026-06-13T11:54:08.8575622Z             {
2026-06-13T11:54:08.8575747Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8575846Z               "line": 439
2026-06-13T11:54:08.8575932Z             },
2026-06-13T11:54:08.8576028Z             {
2026-06-13T11:54:08.8576150Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8576247Z               "line": 472
2026-06-13T11:54:08.8576343Z             },
2026-06-13T11:54:08.8576433Z             {
2026-06-13T11:54:08.8576560Z               "path": "crates/spt/src/api/startup.rs",
2026-06-13T11:54:08.8576655Z               "line": 480
2026-06-13T11:54:08.8576750Z             }
2026-06-13T11:54:08.8576848Z           ]
2026-06-13T11:54:08.8576944Z         }
2026-06-13T11:54:08.8577040Z       }
2026-06-13T11:54:08.8577130Z     },
2026-06-13T11:54:08.8577225Z     {
2026-06-13T11:54:08.8577327Z       "id": "REQ-START-4",
2026-06-13T11:54:08.8577477Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-13T11:54:08.8577584Z       "requiredStages": [
2026-06-13T11:54:08.8577674Z         "impl",
2026-06-13T11:54:08.8577769Z         "unit"
2026-06-13T11:54:08.8577859Z       ],
2026-06-13T11:54:08.8577961Z       "stages": {
2026-06-13T11:54:08.8578050Z         "doc": {
2026-06-13T11:54:08.8578155Z           "complete": false,
2026-06-13T11:54:08.8578261Z           "evidence": []
2026-06-13T11:54:08.8578355Z         },
2026-06-13T11:54:08.8578460Z         "impl": {
2026-06-13T11:54:08.8578557Z           "complete": true,
2026-06-13T11:54:08.8578656Z           "evidence": [
2026-06-13T11:54:08.8578746Z             {
2026-06-13T11:54:08.8578881Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8579222Z               "line": 393
2026-06-13T11:54:08.8579492Z             }
2026-06-13T11:54:08.8579588Z           ]
2026-06-13T11:54:08.8579677Z         },
2026-06-13T11:54:08.8579777Z         "int": {
2026-06-13T11:54:08.8579879Z           "complete": false,
2026-06-13T11:54:08.8579983Z           "evidence": []
2026-06-13T11:54:08.8580078Z         },
2026-06-13T11:54:08.8580175Z         "unit": {
2026-06-13T11:54:08.8580279Z           "complete": true,
2026-06-13T11:54:08.8580373Z           "evidence": [
2026-06-13T11:54:08.8580475Z             {
2026-06-13T11:54:08.8580598Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-13T11:54:08.8580703Z               "line": 777
2026-06-13T11:54:08.8580903Z             }
2026-06-13T11:54:08.8580993Z           ]
2026-06-13T11:54:08.8581090Z         }
2026-06-13T11:54:08.8581180Z       }
2026-06-13T11:54:08.8581280Z     },
2026-06-13T11:54:08.8581366Z     {
2026-06-13T11:54:08.8581477Z       "id": "REQ-STORE-1",
2026-06-13T11:54:08.8582400Z       "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-13T11:54:08.8582505Z       "requiredStages": [
2026-06-13T11:54:08.8582599Z         "impl",
2026-06-13T11:54:08.8582715Z         "unit"
2026-06-13T11:54:08.8582805Z       ],
2026-06-13T11:54:08.8582895Z       "stages": {
2026-06-13T11:54:08.8582986Z         "doc": {
2026-06-13T11:54:08.8583096Z           "complete": false,
2026-06-13T11:54:08.8583186Z           "evidence": []
2026-06-13T11:54:08.8583286Z         },
2026-06-13T11:54:08.8583383Z         "impl": {
2026-06-13T11:54:08.8583472Z           "complete": true,
2026-06-13T11:54:08.8583568Z           "evidence": [
2026-06-13T11:54:08.8583659Z             {
2026-06-13T11:54:08.8583806Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8583897Z               "line": 23
2026-06-13T11:54:08.8583993Z             },
2026-06-13T11:54:08.8584078Z             {
2026-06-13T11:54:08.8584215Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8584310Z               "line": 46
2026-06-13T11:54:08.8584396Z             },
2026-06-13T11:54:08.8584480Z             {
2026-06-13T11:54:08.8584608Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8584710Z               "line": 97
2026-06-13T11:54:08.8584804Z             },
2026-06-13T11:54:08.8584894Z             {
2026-06-13T11:54:08.8585024Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8585133Z               "line": 125
2026-06-13T11:54:08.8585233Z             },
2026-06-13T11:54:08.8585320Z             {
2026-06-13T11:54:08.8585462Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8585562Z               "line": 181
2026-06-13T11:54:08.8585663Z             },
2026-06-13T11:54:08.8585753Z             {
2026-06-13T11:54:08.8585882Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8585982Z               "line": 205
2026-06-13T11:54:08.8586073Z             },
2026-06-13T11:54:08.8586167Z             {
2026-06-13T11:54:08.8586302Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8586396Z               "line": 441
2026-06-13T11:54:08.8586497Z             },
2026-06-13T11:54:08.8586584Z             {
2026-06-13T11:54:08.8586720Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8586817Z               "line": 25
2026-06-13T11:54:08.8586913Z             },
2026-06-13T11:54:08.8587011Z             {
2026-06-13T11:54:08.8587139Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8587244Z               "line": 120
2026-06-13T11:54:08.8587333Z             },
2026-06-13T11:54:08.8587432Z             {
2026-06-13T11:54:08.8587667Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8587771Z               "line": 148
2026-06-13T11:54:08.8587867Z             },
2026-06-13T11:54:08.8587958Z             {
2026-06-13T11:54:08.8588090Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8588187Z               "line": 165
2026-06-13T11:54:08.8588282Z             },
2026-06-13T11:54:08.8588376Z             {
2026-06-13T11:54:08.8588511Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8588610Z               "line": 180
2026-06-13T11:54:08.8588696Z             },
2026-06-13T11:54:08.8588793Z             {
2026-06-13T11:54:08.8588920Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8589226Z               "line": 198
2026-06-13T11:54:08.8589325Z             },
2026-06-13T11:54:08.8589427Z             {
2026-06-13T11:54:08.8589582Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8589687Z               "line": 207
2026-06-13T11:54:08.8589782Z             },
2026-06-13T11:54:08.8589867Z             {
2026-06-13T11:54:08.8590004Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:54:08.8590104Z               "line": 16
2026-06-13T11:54:08.8590192Z             },
2026-06-13T11:54:08.8590290Z             {
2026-06-13T11:54:08.8590415Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:54:08.8594909Z               "line": 63
2026-06-13T11:54:08.8595030Z             }
2026-06-13T11:54:08.8595130Z           ]
2026-06-13T11:54:08.8595226Z         },
2026-06-13T11:54:08.8595322Z         "int": {
2026-06-13T11:54:08.8595444Z           "complete": false,
2026-06-13T11:54:08.8595555Z           "evidence": []
2026-06-13T11:54:08.8595655Z         },
2026-06-13T11:54:08.8595750Z         "unit": {
2026-06-13T11:54:08.8595852Z           "complete": true,
2026-06-13T11:54:08.8595951Z           "evidence": [
2026-06-13T11:54:08.8596041Z             {
2026-06-13T11:54:08.8596204Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8596304Z               "line": 558
2026-06-13T11:54:08.8596398Z             },
2026-06-13T11:54:08.8596491Z             {
2026-06-13T11:54:08.8596637Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8596732Z               "line": 568
2026-06-13T11:54:08.8596829Z             },
2026-06-13T11:54:08.8596919Z             {
2026-06-13T11:54:08.8597042Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8597144Z               "line": 590
2026-06-13T11:54:08.8597228Z             },
2026-06-13T11:54:08.8597310Z             {
2026-06-13T11:54:08.8597440Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8597543Z               "line": 606
2026-06-13T11:54:08.8597637Z             },
2026-06-13T11:54:08.8597737Z             {
2026-06-13T11:54:08.8597879Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-13T11:54:08.8597983Z               "line": 629
2026-06-13T11:54:08.8598074Z             },
2026-06-13T11:54:08.8598170Z             {
2026-06-13T11:54:08.8598307Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8598408Z               "line": 472
2026-06-13T11:54:08.8598499Z             },
2026-06-13T11:54:08.8598594Z             {
2026-06-13T11:54:08.8598723Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-13T11:54:08.8598823Z               "line": 507
2026-06-13T11:54:08.8598922Z             },
2026-06-13T11:54:08.8599152Z             {
2026-06-13T11:54:08.8599299Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:54:08.8599386Z               "line": 120
2026-06-13T11:54:08.8599490Z             },
2026-06-13T11:54:08.8599576Z             {
2026-06-13T11:54:08.8599701Z               "path": "crates/spt-store/src/project.rs",
2026-06-13T11:54:08.8599800Z               "line": 128
2026-06-13T11:54:08.8599881Z             }
2026-06-13T11:54:08.8599978Z           ]
2026-06-13T11:54:08.8600214Z         }
2026-06-13T11:54:08.8600304Z       }
2026-06-13T11:54:08.8600395Z     },
2026-06-13T11:54:08.8600483Z     {
2026-06-13T11:54:08.8600592Z       "id": "REQ-SUBNET-1",
2026-06-13T11:54:08.8600922Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-13T11:54:08.8601023Z       "requiredStages": [
2026-06-13T11:54:08.8601104Z         "impl",
2026-06-13T11:54:08.8601198Z         "unit"
2026-06-13T11:54:08.8601290Z       ],
2026-06-13T11:54:08.8601380Z       "stages": {
2026-06-13T11:54:08.8601479Z         "doc": {
2026-06-13T11:54:08.8601576Z           "complete": false,
2026-06-13T11:54:08.8601780Z           "evidence": []
2026-06-13T11:54:08.8601861Z         },
2026-06-13T11:54:08.8601963Z         "impl": {
2026-06-13T11:54:08.8602072Z           "complete": true,
2026-06-13T11:54:08.8602162Z           "evidence": [
2026-06-13T11:54:08.8602253Z             {
2026-06-13T11:54:08.8602385Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8602491Z               "line": 281
2026-06-13T11:54:08.8602583Z             },
2026-06-13T11:54:08.8602667Z             {
2026-06-13T11:54:08.8602801Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8602883Z               "line": 599
2026-06-13T11:54:08.8602973Z             },
2026-06-13T11:54:08.8603057Z             {
2026-06-13T11:54:08.8603167Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8603258Z               "line": 2674
2026-06-13T11:54:08.8603362Z             },
2026-06-13T11:54:08.8603448Z             {
2026-06-13T11:54:08.8603554Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8603658Z               "line": 2839
2026-06-13T11:54:08.8603743Z             },
2026-06-13T11:54:08.8603835Z             {
2026-06-13T11:54:08.8603944Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8604048Z               "line": 2858
2026-06-13T11:54:08.8604149Z             },
2026-06-13T11:54:08.8604230Z             {
2026-06-13T11:54:08.8604344Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8604435Z               "line": 2919
2026-06-13T11:54:08.8604527Z             },
2026-06-13T11:54:08.8604611Z             {
2026-06-13T11:54:08.8604726Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8604832Z               "line": 2961
2026-06-13T11:54:08.8604916Z             },
2026-06-13T11:54:08.8605002Z             {
2026-06-13T11:54:08.8605108Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8605203Z               "line": 3150
2026-06-13T11:54:08.8605293Z             },
2026-06-13T11:54:08.8605378Z             {
2026-06-13T11:54:08.8605497Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8605586Z               "line": 3220
2026-06-13T11:54:08.8605690Z             },
2026-06-13T11:54:08.8605777Z             {
2026-06-13T11:54:08.8605882Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8605986Z               "line": 3444
2026-06-13T11:54:08.8606082Z             },
2026-06-13T11:54:08.8606173Z             {
2026-06-13T11:54:08.8606286Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8606392Z               "line": 418
2026-06-13T11:54:08.8606478Z             }
2026-06-13T11:54:08.8606572Z           ]
2026-06-13T11:54:08.8606658Z         },
2026-06-13T11:54:08.8606755Z         "int": {
2026-06-13T11:54:08.8606859Z           "complete": false,
2026-06-13T11:54:08.8606959Z           "evidence": []
2026-06-13T11:54:08.8607051Z         },
2026-06-13T11:54:08.8607130Z         "unit": {
2026-06-13T11:54:08.8607240Z           "complete": true,
2026-06-13T11:54:08.8607346Z           "evidence": [
2026-06-13T11:54:08.8607441Z             {
2026-06-13T11:54:08.8607584Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8607666Z               "line": 1477
2026-06-13T11:54:08.8607756Z             },
2026-06-13T11:54:08.8607947Z             {
2026-06-13T11:54:08.8608071Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8608160Z               "line": 7546
2026-06-13T11:54:08.8608250Z             },
2026-06-13T11:54:08.8608346Z             {
2026-06-13T11:54:08.8608444Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8608543Z               "line": 7716
2026-06-13T11:54:08.8608634Z             },
2026-06-13T11:54:08.8608721Z             {
2026-06-13T11:54:08.8608825Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8608910Z               "line": 7723
2026-06-13T11:54:08.8609106Z             },
2026-06-13T11:54:08.8609201Z             {
2026-06-13T11:54:08.8609312Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8609608Z               "line": 7776
2026-06-13T11:54:08.8609702Z             },
2026-06-13T11:54:08.8609788Z             {
2026-06-13T11:54:08.8609908Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8609998Z               "line": 7793
2026-06-13T11:54:08.8610088Z             },
2026-06-13T11:54:08.8610179Z             {
2026-06-13T11:54:08.8610285Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8610384Z               "line": 7823
2026-06-13T11:54:08.8610479Z             },
2026-06-13T11:54:08.8610567Z             {
2026-06-13T11:54:08.8610675Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8610769Z               "line": 7922
2026-06-13T11:54:08.8610860Z             },
2026-06-13T11:54:08.8610955Z             {
2026-06-13T11:54:08.8611067Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8611172Z               "line": 8073
2026-06-13T11:54:08.8611259Z             }
2026-06-13T11:54:08.8611363Z           ]
2026-06-13T11:54:08.8611443Z         }
2026-06-13T11:54:08.8611530Z       }
2026-06-13T11:54:08.8611616Z     },
2026-06-13T11:54:08.8611711Z     {
2026-06-13T11:54:08.8611801Z       "id": "REQ-SUBNET-2",
2026-06-13T11:54:08.8612077Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-13T11:54:08.8612188Z       "requiredStages": [
2026-06-13T11:54:08.8612292Z         "impl",
2026-06-13T11:54:08.8612392Z         "unit",
2026-06-13T11:54:08.8612484Z         "int"
2026-06-13T11:54:08.8612579Z       ],
2026-06-13T11:54:08.8612679Z       "stages": {
2026-06-13T11:54:08.8612760Z         "doc": {
2026-06-13T11:54:08.8612866Z           "complete": true,
2026-06-13T11:54:08.8612950Z           "evidence": [
2026-06-13T11:54:08.8613041Z             {
2026-06-13T11:54:08.8613209Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T11:54:08.8613309Z               "line": 60
2026-06-13T11:54:08.8613410Z             }
2026-06-13T11:54:08.8613505Z           ]
2026-06-13T11:54:08.8613594Z         },
2026-06-13T11:54:08.8613684Z         "impl": {
2026-06-13T11:54:08.8613789Z           "complete": true,
2026-06-13T11:54:08.8613876Z           "evidence": [
2026-06-13T11:54:08.8613960Z             {
2026-06-13T11:54:08.8614104Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.8614190Z               "line": 800
2026-06-13T11:54:08.8614289Z             },
2026-06-13T11:54:08.8614381Z             {
2026-06-13T11:54:08.8614504Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.8614604Z               "line": 801
2026-06-13T11:54:08.8614700Z             },
2026-06-13T11:54:08.8614781Z             {
2026-06-13T11:54:08.8614904Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.8615010Z               "line": 448
2026-06-13T11:54:08.8615092Z             },
2026-06-13T11:54:08.8615186Z             {
2026-06-13T11:54:08.8615296Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-13T11:54:08.8615402Z               "line": 578
2026-06-13T11:54:08.8615486Z             },
2026-06-13T11:54:08.8615572Z             {
2026-06-13T11:54:08.8615707Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8615947Z               "line": 26
2026-06-13T11:54:08.8616062Z             },
2026-06-13T11:54:08.8616150Z             {
2026-06-13T11:54:08.8616279Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8616380Z               "line": 60
2026-06-13T11:54:08.8616465Z             },
2026-06-13T11:54:08.8616560Z             {
2026-06-13T11:54:08.8616681Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8616785Z               "line": 168
2026-06-13T11:54:08.8616875Z             },
2026-06-13T11:54:08.8616967Z             {
2026-06-13T11:54:08.8617100Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8617185Z               "line": 295
2026-06-13T11:54:08.8617371Z             },
2026-06-13T11:54:08.8617457Z             {
2026-06-13T11:54:08.8617586Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8617672Z               "line": 417
2026-06-13T11:54:08.8617772Z             },
2026-06-13T11:54:08.8617872Z             {
2026-06-13T11:54:08.8618010Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-13T11:54:08.8618110Z               "line": 252
2026-06-13T11:54:08.8618197Z             },
2026-06-13T11:54:08.8618297Z             {
2026-06-13T11:54:08.8618415Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8618522Z               "line": 2885
2026-06-13T11:54:08.8618621Z             },
2026-06-13T11:54:08.8618711Z             {
2026-06-13T11:54:08.8618814Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8618906Z               "line": 3383
2026-06-13T11:54:08.8619099Z             },
2026-06-13T11:54:08.8619199Z             {
2026-06-13T11:54:08.8619305Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8619413Z               "line": 4012
2026-06-13T11:54:08.8619490Z             }
2026-06-13T11:54:08.8619576Z           ]
2026-06-13T11:54:08.8619662Z         },
2026-06-13T11:54:08.8619756Z         "int": {
2026-06-13T11:54:08.8619844Z           "complete": true,
2026-06-13T11:54:08.8619943Z           "evidence": [
2026-06-13T11:54:08.8620033Z             {
2026-06-13T11:54:08.8620168Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-13T11:54:08.8620272Z               "line": 22
2026-06-13T11:54:08.8620358Z             },
2026-06-13T11:54:08.8620449Z             {
2026-06-13T11:54:08.8620582Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8620667Z               "line": 575
2026-06-13T11:54:08.8620764Z             },
2026-06-13T11:54:08.8620849Z             {
2026-06-13T11:54:08.8620972Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8621069Z               "line": 792
2026-06-13T11:54:08.8621169Z             }
2026-06-13T11:54:08.8621258Z           ]
2026-06-13T11:54:08.8621353Z         },
2026-06-13T11:54:08.8621486Z         "unit": {
2026-06-13T11:54:08.8621618Z           "complete": true,
2026-06-13T11:54:08.8621756Z           "evidence": [
2026-06-13T11:54:08.8621876Z             {
2026-06-13T11:54:08.8622105Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8622294Z               "line": 586
2026-06-13T11:54:08.8622401Z             },
2026-06-13T11:54:08.8622501Z             {
2026-06-13T11:54:08.8622637Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8622748Z               "line": 7586
2026-06-13T11:54:08.8622839Z             },
2026-06-13T11:54:08.8622943Z             {
2026-06-13T11:54:08.8623078Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8623177Z               "line": 8277
2026-06-13T11:54:08.8623287Z             }
2026-06-13T11:54:08.8623378Z           ]
2026-06-13T11:54:08.8623482Z         }
2026-06-13T11:54:08.8623582Z       }
2026-06-13T11:54:08.8623684Z     },
2026-06-13T11:54:08.8623797Z     {
2026-06-13T11:54:08.8623931Z       "id": "REQ-SUBNET-3",
2026-06-13T11:54:08.8624244Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-13T11:54:08.8624578Z       "requiredStages": [
2026-06-13T11:54:08.8624693Z         "impl",
2026-06-13T11:54:08.8624788Z         "unit"
2026-06-13T11:54:08.8624887Z       ],
2026-06-13T11:54:08.8624984Z       "stages": {
2026-06-13T11:54:08.8625069Z         "doc": {
2026-06-13T11:54:08.8625202Z           "complete": false,
2026-06-13T11:54:08.8625303Z           "evidence": []
2026-06-13T11:54:08.8625402Z         },
2026-06-13T11:54:08.8625488Z         "impl": {
2026-06-13T11:54:08.8625599Z           "complete": true,
2026-06-13T11:54:08.8625703Z           "evidence": [
2026-06-13T11:54:08.8625794Z             {
2026-06-13T11:54:08.8625933Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8626123Z               "line": 152
2026-06-13T11:54:08.8626219Z             },
2026-06-13T11:54:08.8626305Z             {
2026-06-13T11:54:08.8626461Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8626560Z               "line": 299
2026-06-13T11:54:08.8626655Z             },
2026-06-13T11:54:08.8626744Z             {
2026-06-13T11:54:08.8626868Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8626969Z               "line": 437
2026-06-13T11:54:08.8627054Z             },
2026-06-13T11:54:08.8627139Z             {
2026-06-13T11:54:08.8627269Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8627350Z               "line": 480
2026-06-13T11:54:08.8627445Z             },
2026-06-13T11:54:08.8627532Z             {
2026-06-13T11:54:08.8627665Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8627750Z               "line": 125
2026-06-13T11:54:08.8627842Z             },
2026-06-13T11:54:08.8627951Z             {
2026-06-13T11:54:08.8628074Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8628180Z               "line": 253
2026-06-13T11:54:08.8628260Z             },
2026-06-13T11:54:08.8628351Z             {
2026-06-13T11:54:08.8628471Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8628561Z               "line": 264
2026-06-13T11:54:08.8628656Z             },
2026-06-13T11:54:08.8628733Z             {
2026-06-13T11:54:08.8628862Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8629052Z               "line": 285
2026-06-13T11:54:08.8629154Z             },
2026-06-13T11:54:08.8629251Z             {
2026-06-13T11:54:08.8629374Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8629475Z               "line": 589
2026-06-13T11:54:08.8629559Z             },
2026-06-13T11:54:08.8629649Z             {
2026-06-13T11:54:08.8629759Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8629870Z               "line": 648
2026-06-13T11:54:08.8629983Z             },
2026-06-13T11:54:08.8630060Z             {
2026-06-13T11:54:08.8630184Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.8630288Z               "line": 61
2026-06-13T11:54:08.8630384Z             },
2026-06-13T11:54:08.8630465Z             {
2026-06-13T11:54:08.8630598Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.8630704Z               "line": 90
2026-06-13T11:54:08.8630785Z             },
2026-06-13T11:54:08.8630870Z             {
2026-06-13T11:54:08.8630999Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.8631100Z               "line": 125
2026-06-13T11:54:08.8631184Z             },
2026-06-13T11:54:08.8631280Z             {
2026-06-13T11:54:08.8631410Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T11:54:08.8631494Z               "line": 9
2026-06-13T11:54:08.8631586Z             },
2026-06-13T11:54:08.8631667Z             {
2026-06-13T11:54:08.8631776Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8631866Z               "line": 3220
2026-06-13T11:54:08.8631951Z             },
2026-06-13T11:54:08.8632037Z             {
2026-06-13T11:54:08.8632278Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8632384Z               "line": 445
2026-06-13T11:54:08.8632469Z             }
2026-06-13T11:54:08.8632554Z           ]
2026-06-13T11:54:08.8632641Z         },
2026-06-13T11:54:08.8632736Z         "int": {
2026-06-13T11:54:08.8632831Z           "complete": false,
2026-06-13T11:54:08.8632927Z           "evidence": []
2026-06-13T11:54:08.8633017Z         },
2026-06-13T11:54:08.8633103Z         "unit": {
2026-06-13T11:54:08.8633207Z           "complete": true,
2026-06-13T11:54:08.8633309Z           "evidence": [
2026-06-13T11:54:08.8633394Z             {
2026-06-13T11:54:08.8633527Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8633723Z               "line": 1304
2026-06-13T11:54:08.8633809Z             },
2026-06-13T11:54:08.8633895Z             {
2026-06-13T11:54:08.8634038Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8634123Z               "line": 1606
2026-06-13T11:54:08.8634205Z             },
2026-06-13T11:54:08.8634291Z             {
2026-06-13T11:54:08.8634419Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8634511Z               "line": 886
2026-06-13T11:54:08.8634597Z             },
2026-06-13T11:54:08.8634681Z             {
2026-06-13T11:54:08.8634804Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8634900Z               "line": 959
2026-06-13T11:54:08.8634991Z             },
2026-06-13T11:54:08.8635081Z             {
2026-06-13T11:54:08.8635210Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8635301Z               "line": 1009
2026-06-13T11:54:08.8635400Z             },
2026-06-13T11:54:08.8635501Z             {
2026-06-13T11:54:08.8635625Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8635734Z               "line": 1068
2026-06-13T11:54:08.8635825Z             },
2026-06-13T11:54:08.8635921Z             {
2026-06-13T11:54:08.8636058Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-13T11:54:08.8636155Z               "line": 234
2026-06-13T11:54:08.8636250Z             },
2026-06-13T11:54:08.8636340Z             {
2026-06-13T11:54:08.8636470Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-13T11:54:08.8636565Z               "line": 49
2026-06-13T11:54:08.8636664Z             },
2026-06-13T11:54:08.8636750Z             {
2026-06-13T11:54:08.8636865Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8636963Z               "line": 7922
2026-06-13T11:54:08.8637054Z             },
2026-06-13T11:54:08.8637149Z             {
2026-06-13T11:54:08.8637257Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8637366Z               "line": 8028
2026-06-13T11:54:08.8637457Z             },
2026-06-13T11:54:08.8637554Z             {
2026-06-13T11:54:08.8637661Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8637758Z               "line": 8243
2026-06-13T11:54:08.8637857Z             }
2026-06-13T11:54:08.8637943Z           ]
2026-06-13T11:54:08.8638038Z         }
2026-06-13T11:54:08.8638125Z       }
2026-06-13T11:54:08.8638220Z     },
2026-06-13T11:54:08.8638315Z     {
2026-06-13T11:54:08.8638416Z       "id": "REQ-SUBNET-4",
2026-06-13T11:54:08.8638721Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-13T11:54:08.8638821Z       "requiredStages": [
2026-06-13T11:54:08.8638920Z         "impl",
2026-06-13T11:54:08.8639089Z         "unit"
2026-06-13T11:54:08.8639187Z       ],
2026-06-13T11:54:08.8639298Z       "stages": {
2026-06-13T11:54:08.8639389Z         "doc": {
2026-06-13T11:54:08.8639502Z           "complete": true,
2026-06-13T11:54:08.8639593Z           "evidence": [
2026-06-13T11:54:08.8639685Z             {
2026-06-13T11:54:08.8639849Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-13T11:54:08.8639954Z               "line": 60
2026-06-13T11:54:08.8640162Z             }
2026-06-13T11:54:08.8640252Z           ]
2026-06-13T11:54:08.8640348Z         },
2026-06-13T11:54:08.8640435Z         "impl": {
2026-06-13T11:54:08.8640543Z           "complete": true,
2026-06-13T11:54:08.8640634Z           "evidence": [
2026-06-13T11:54:08.8640725Z             {
2026-06-13T11:54:08.8640838Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8640935Z               "line": 2674
2026-06-13T11:54:08.8641025Z             },
2026-06-13T11:54:08.8641116Z             {
2026-06-13T11:54:08.8641225Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8641317Z               "line": 3979
2026-06-13T11:54:08.8641416Z             },
2026-06-13T11:54:08.8641641Z             {
2026-06-13T11:54:08.8641749Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8641845Z               "line": 4012
2026-06-13T11:54:08.8641932Z             }
2026-06-13T11:54:08.8642021Z           ]
2026-06-13T11:54:08.8642107Z         },
2026-06-13T11:54:08.8642214Z         "int": {
2026-06-13T11:54:08.8642322Z           "complete": false,
2026-06-13T11:54:08.8642412Z           "evidence": []
2026-06-13T11:54:08.8642501Z         },
2026-06-13T11:54:08.8642593Z         "unit": {
2026-06-13T11:54:08.8642691Z           "complete": true,
2026-06-13T11:54:08.8642786Z           "evidence": [
2026-06-13T11:54:08.8642876Z             {
2026-06-13T11:54:08.8642992Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8643086Z               "line": 7702
2026-06-13T11:54:08.8643177Z             },
2026-06-13T11:54:08.8643263Z             {
2026-06-13T11:54:08.8643377Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8643467Z               "line": 7776
2026-06-13T11:54:08.8643573Z             }
2026-06-13T11:54:08.8643668Z           ]
2026-06-13T11:54:08.8643758Z         }
2026-06-13T11:54:08.8643850Z       }
2026-06-13T11:54:08.8643935Z     },
2026-06-13T11:54:08.8644030Z     {
2026-06-13T11:54:08.8644126Z       "id": "REQ-SUBNET-5",
2026-06-13T11:54:08.8645451Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-13T11:54:08.8645565Z       "requiredStages": [
2026-06-13T11:54:08.8645655Z         "impl",
2026-06-13T11:54:08.8645751Z         "unit",
2026-06-13T11:54:08.8645842Z         "int"
2026-06-13T11:54:08.8645941Z       ],
2026-06-13T11:54:08.8646037Z       "stages": {
2026-06-13T11:54:08.8646128Z         "doc": {
2026-06-13T11:54:08.8646265Z           "complete": false,
2026-06-13T11:54:08.8646361Z           "evidence": []
2026-06-13T11:54:08.8646461Z         },
2026-06-13T11:54:08.8646547Z         "impl": {
2026-06-13T11:54:08.8646651Z           "complete": true,
2026-06-13T11:54:08.8646786Z           "evidence": [
2026-06-13T11:54:08.8646876Z             {
2026-06-13T11:54:08.8647000Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-13T11:54:08.8647096Z               "line": 126
2026-06-13T11:54:08.8647195Z             },
2026-06-13T11:54:08.8647286Z             {
2026-06-13T11:54:08.8647411Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-13T11:54:08.8647519Z               "line": 413
2026-06-13T11:54:08.8647600Z             },
2026-06-13T11:54:08.8647705Z             {
2026-06-13T11:54:08.8647831Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8647940Z               "line": 74
2026-06-13T11:54:08.8648031Z             },
2026-06-13T11:54:08.8648123Z             {
2026-06-13T11:54:08.8648255Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.8648351Z               "line": 332
2026-06-13T11:54:08.8648451Z             },
2026-06-13T11:54:08.8648541Z             {
2026-06-13T11:54:08.8648766Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.8648875Z               "line": 621
2026-06-13T11:54:08.8649043Z             },
2026-06-13T11:54:08.8649147Z             {
2026-06-13T11:54:08.8649272Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.8649376Z               "line": 31
2026-06-13T11:54:08.8649457Z             },
2026-06-13T11:54:08.8649557Z             {
2026-06-13T11:54:08.8649696Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.8649777Z               "line": 50
2026-06-13T11:54:08.8649877Z             },
2026-06-13T11:54:08.8649963Z             {
2026-06-13T11:54:08.8650091Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.8650298Z               "line": 69
2026-06-13T11:54:08.8650400Z             },
2026-06-13T11:54:08.8650486Z             {
2026-06-13T11:54:08.8650615Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.8650708Z               "line": 113
2026-06-13T11:54:08.8650798Z             },
2026-06-13T11:54:08.8650894Z             {
2026-06-13T11:54:08.8651023Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:54:08.8651122Z               "line": 25
2026-06-13T11:54:08.8651209Z             },
2026-06-13T11:54:08.8651294Z             {
2026-06-13T11:54:08.8651432Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:54:08.8651524Z               "line": 34
2026-06-13T11:54:08.8651609Z             },
2026-06-13T11:54:08.8651695Z             {
2026-06-13T11:54:08.8651824Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:54:08.8651924Z               "line": 17
2026-06-13T11:54:08.8652005Z             },
2026-06-13T11:54:08.8652114Z             {
2026-06-13T11:54:08.8652220Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8652314Z               "line": 3937
2026-06-13T11:54:08.8652401Z             },
2026-06-13T11:54:08.8652492Z             {
2026-06-13T11:54:08.8652624Z               "path": "crates/spt/src/wansend.rs",
2026-06-13T11:54:08.8652720Z               "line": 419
2026-06-13T11:54:08.8652807Z             }
2026-06-13T11:54:08.8652897Z           ]
2026-06-13T11:54:08.8652981Z         },
2026-06-13T11:54:08.8653066Z         "int": {
2026-06-13T11:54:08.8653162Z           "complete": true,
2026-06-13T11:54:08.8653265Z           "evidence": [
2026-06-13T11:54:08.8653351Z             {
2026-06-13T11:54:08.8653485Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8653571Z               "line": 815
2026-06-13T11:54:08.8653660Z             }
2026-06-13T11:54:08.8653747Z           ]
2026-06-13T11:54:08.8653842Z         },
2026-06-13T11:54:08.8653946Z         "unit": {
2026-06-13T11:54:08.8654037Z           "complete": true,
2026-06-13T11:54:08.8654138Z           "evidence": [
2026-06-13T11:54:08.8654224Z             {
2026-06-13T11:54:08.8654357Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.8654458Z               "line": 341
2026-06-13T11:54:08.8654548Z             },
2026-06-13T11:54:08.8654633Z             {
2026-06-13T11:54:08.8654759Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-13T11:54:08.8654858Z               "line": 1115
2026-06-13T11:54:08.8654943Z             },
2026-06-13T11:54:08.8655040Z             {
2026-06-13T11:54:08.8655172Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-13T11:54:08.8655268Z               "line": 151
2026-06-13T11:54:08.8655369Z             },
2026-06-13T11:54:08.8655458Z             {
2026-06-13T11:54:08.8655597Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-13T11:54:08.8655679Z               "line": 61
2026-06-13T11:54:08.8655782Z             },
2026-06-13T11:54:08.8655877Z             {
2026-06-13T11:54:08.8656011Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:54:08.8656111Z               "line": 111
2026-06-13T11:54:08.8656201Z             },
2026-06-13T11:54:08.8656301Z             {
2026-06-13T11:54:08.8656549Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:54:08.8656655Z               "line": 138
2026-06-13T11:54:08.8656750Z             },
2026-06-13T11:54:08.8656840Z             {
2026-06-13T11:54:08.8656965Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-13T11:54:08.8657065Z               "line": 148
2026-06-13T11:54:08.8657164Z             },
2026-06-13T11:54:08.8657246Z             {
2026-06-13T11:54:08.8657365Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8657460Z               "line": 7603
2026-06-13T11:54:08.8657546Z             }
2026-06-13T11:54:08.8657633Z           ]
2026-06-13T11:54:08.8657717Z         }
2026-06-13T11:54:08.8657885Z       }
2026-06-13T11:54:08.8657971Z     },
2026-06-13T11:54:08.8658065Z     {
2026-06-13T11:54:08.8658165Z       "id": "REQ-SUBNET-6",
2026-06-13T11:54:08.8658873Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-13T11:54:08.8659120Z       "requiredStages": [
2026-06-13T11:54:08.8659203Z         "impl",
2026-06-13T11:54:08.8659303Z         "unit"
2026-06-13T11:54:08.8659388Z       ],
2026-06-13T11:54:08.8659483Z       "stages": {
2026-06-13T11:54:08.8659570Z         "doc": {
2026-06-13T11:54:08.8659665Z           "complete": false,
2026-06-13T11:54:08.8659769Z           "evidence": []
2026-06-13T11:54:08.8659847Z         },
2026-06-13T11:54:08.8659936Z         "impl": {
2026-06-13T11:54:08.8660032Z           "complete": true,
2026-06-13T11:54:08.8660137Z           "evidence": [
2026-06-13T11:54:08.8660228Z             {
2026-06-13T11:54:08.8660356Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8660452Z               "line": 254
2026-06-13T11:54:08.8660538Z             },
2026-06-13T11:54:08.8660632Z             {
2026-06-13T11:54:08.8660738Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8660838Z               "line": 3595
2026-06-13T11:54:08.8660932Z             },
2026-06-13T11:54:08.8661017Z             {
2026-06-13T11:54:08.8661123Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8661207Z               "line": 3612
2026-06-13T11:54:08.8661292Z             },
2026-06-13T11:54:08.8661377Z             {
2026-06-13T11:54:08.8661488Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8661588Z               "line": 3665
2026-06-13T11:54:08.8661673Z             },
2026-06-13T11:54:08.8661764Z             {
2026-06-13T11:54:08.8661874Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8661978Z               "line": 3688
2026-06-13T11:54:08.8662070Z             }
2026-06-13T11:54:08.8662151Z           ]
2026-06-13T11:54:08.8662232Z         },
2026-06-13T11:54:08.8662311Z         "int": {
2026-06-13T11:54:08.8662418Z           "complete": false,
2026-06-13T11:54:08.8662512Z           "evidence": []
2026-06-13T11:54:08.8662603Z         },
2026-06-13T11:54:08.8662684Z         "unit": {
2026-06-13T11:54:08.8662790Z           "complete": true,
2026-06-13T11:54:08.8662889Z           "evidence": [
2026-06-13T11:54:08.8662975Z             {
2026-06-13T11:54:08.8663086Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8663170Z               "line": 7617
2026-06-13T11:54:08.8663261Z             },
2026-06-13T11:54:08.8663344Z             {
2026-06-13T11:54:08.8663443Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8663546Z               "line": 7650
2026-06-13T11:54:08.8663631Z             },
2026-06-13T11:54:08.8663718Z             {
2026-06-13T11:54:08.8663825Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8663925Z               "line": 7659
2026-06-13T11:54:08.8664016Z             }
2026-06-13T11:54:08.8664098Z           ]
2026-06-13T11:54:08.8664182Z         }
2026-06-13T11:54:08.8664268Z       }
2026-06-13T11:54:08.8664469Z     },
2026-06-13T11:54:08.8664559Z     {
2026-06-13T11:54:08.8664660Z       "id": "REQ-SUBNET-7",
2026-06-13T11:54:08.8666306Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-13T11:54:08.8666518Z       "requiredStages": [
2026-06-13T11:54:08.8666624Z         "impl",
2026-06-13T11:54:08.8666713Z         "unit"
2026-06-13T11:54:08.8666808Z       ],
2026-06-13T11:54:08.8671202Z       "stages": {
2026-06-13T11:54:08.8671313Z         "doc": {
2026-06-13T11:54:08.8671450Z           "complete": false,
2026-06-13T11:54:08.8671535Z           "evidence": []
2026-06-13T11:54:08.8671630Z         },
2026-06-13T11:54:08.8671716Z         "impl": {
2026-06-13T11:54:08.8671814Z           "complete": true,
2026-06-13T11:54:08.8671918Z           "evidence": [
2026-06-13T11:54:08.8672005Z             {
2026-06-13T11:54:08.8672152Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:54:08.8672242Z               "line": 17
2026-06-13T11:54:08.8672325Z             },
2026-06-13T11:54:08.8672406Z             {
2026-06-13T11:54:08.8672547Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8672649Z               "line": 103
2026-06-13T11:54:08.8672735Z             },
2026-06-13T11:54:08.8672824Z             {
2026-06-13T11:54:08.8672944Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-13T11:54:08.8673044Z               "line": 312
2026-06-13T11:54:08.8673135Z             },
2026-06-13T11:54:08.8673225Z             {
2026-06-13T11:54:08.8673369Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-13T11:54:08.8673459Z               "line": 131
2026-06-13T11:54:08.8673559Z             },
2026-06-13T11:54:08.8673646Z             {
2026-06-13T11:54:08.8673783Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8673865Z               "line": 160
2026-06-13T11:54:08.8673951Z             },
2026-06-13T11:54:08.8674041Z             {
2026-06-13T11:54:08.8674163Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8674263Z               "line": 441
2026-06-13T11:54:08.8674344Z             },
2026-06-13T11:54:08.8674428Z             {
2026-06-13T11:54:08.8674562Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8674658Z               "line": 618
2026-06-13T11:54:08.8674752Z             },
2026-06-13T11:54:08.8674838Z             {
2026-06-13T11:54:08.8674967Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8675058Z               "line": 658
2026-06-13T11:54:08.8675148Z             },
2026-06-13T11:54:08.8675244Z             {
2026-06-13T11:54:08.8675373Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8675463Z               "line": 714
2026-06-13T11:54:08.8675549Z             },
2026-06-13T11:54:08.8675639Z             {
2026-06-13T11:54:08.8675778Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8675874Z               "line": 136
2026-06-13T11:54:08.8675973Z             },
2026-06-13T11:54:08.8676054Z             {
2026-06-13T11:54:08.8676184Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8676273Z               "line": 139
2026-06-13T11:54:08.8676373Z             }
2026-06-13T11:54:08.8676456Z           ]
2026-06-13T11:54:08.8676551Z         },
2026-06-13T11:54:08.8676645Z         "int": {
2026-06-13T11:54:08.8676732Z           "complete": false,
2026-06-13T11:54:08.8676833Z           "evidence": []
2026-06-13T11:54:08.8677093Z         },
2026-06-13T11:54:08.8677193Z         "unit": {
2026-06-13T11:54:08.8677293Z           "complete": true,
2026-06-13T11:54:08.8677397Z           "evidence": [
2026-06-13T11:54:08.8677485Z             {
2026-06-13T11:54:08.8677612Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:54:08.8677712Z               "line": 136
2026-06-13T11:54:08.8677804Z             },
2026-06-13T11:54:08.8677895Z             {
2026-06-13T11:54:08.8678022Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-13T11:54:08.8678124Z               "line": 156
2026-06-13T11:54:08.8678223Z             },
2026-06-13T11:54:08.8678313Z             {
2026-06-13T11:54:08.8678557Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8678647Z               "line": 935
2026-06-13T11:54:08.8678744Z             },
2026-06-13T11:54:08.8678828Z             {
2026-06-13T11:54:08.8679049Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-13T11:54:08.8679157Z               "line": 957
2026-06-13T11:54:08.8679252Z             },
2026-06-13T11:54:08.8679479Z             {
2026-06-13T11:54:08.8679606Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-13T11:54:08.8679707Z               "line": 1419
2026-06-13T11:54:08.8679794Z             },
2026-06-13T11:54:08.8679878Z             {
2026-06-13T11:54:08.8680012Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-13T11:54:08.8680098Z               "line": 1004
2026-06-13T11:54:08.8680193Z             }
2026-06-13T11:54:08.8680274Z           ]
2026-06-13T11:54:08.8680361Z         }
2026-06-13T11:54:08.8680447Z       }
2026-06-13T11:54:08.8680527Z     },
2026-06-13T11:54:08.8680628Z     {
2026-06-13T11:54:08.8680732Z       "id": "REQ-SUBNET-8",
2026-06-13T11:54:08.8681916Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-13T11:54:08.8682024Z       "requiredStages": [
2026-06-13T11:54:08.8682109Z         "impl",
2026-06-13T11:54:08.8682195Z         "unit"
2026-06-13T11:54:08.8682276Z       ],
2026-06-13T11:54:08.8682374Z       "stages": {
2026-06-13T11:54:08.8682464Z         "doc": {
2026-06-13T11:54:08.8682565Z           "complete": false,
2026-06-13T11:54:08.8682661Z           "evidence": []
2026-06-13T11:54:08.8682755Z         },
2026-06-13T11:54:08.8682851Z         "impl": {
2026-06-13T11:54:08.8682942Z           "complete": true,
2026-06-13T11:54:08.8683075Z           "evidence": [
2026-06-13T11:54:08.8683161Z             {
2026-06-13T11:54:08.8683275Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8683370Z               "line": 2962
2026-06-13T11:54:08.8683456Z             },
2026-06-13T11:54:08.8683548Z             {
2026-06-13T11:54:08.8683652Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8683751Z               "line": 2991
2026-06-13T11:54:08.8683834Z             },
2026-06-13T11:54:08.8683919Z             {
2026-06-13T11:54:08.8684019Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8684115Z               "line": 3008
2026-06-13T11:54:08.8684210Z             },
2026-06-13T11:54:08.8684295Z             {
2026-06-13T11:54:08.8684405Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8684497Z               "line": 3031
2026-06-13T11:54:08.8684591Z             },
2026-06-13T11:54:08.8684685Z             {
2026-06-13T11:54:08.8684795Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8684899Z               "line": 3445
2026-06-13T11:54:08.8684984Z             }
2026-06-13T11:54:08.8685078Z           ]
2026-06-13T11:54:08.8685165Z         },
2026-06-13T11:54:08.8685261Z         "int": {
2026-06-13T11:54:08.8685471Z           "complete": false,
2026-06-13T11:54:08.8685571Z           "evidence": []
2026-06-13T11:54:08.8685665Z         },
2026-06-13T11:54:08.8685757Z         "unit": {
2026-06-13T11:54:08.8685857Z           "complete": true,
2026-06-13T11:54:08.8685951Z           "evidence": [
2026-06-13T11:54:08.8686042Z             {
2026-06-13T11:54:08.8686157Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8686252Z               "line": 7807
2026-06-13T11:54:08.8686347Z             },
2026-06-13T11:54:08.8686434Z             {
2026-06-13T11:54:08.8686548Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8686643Z               "line": 7823
2026-06-13T11:54:08.8686739Z             }
2026-06-13T11:54:08.8686938Z           ]
2026-06-13T11:54:08.8687026Z         }
2026-06-13T11:54:08.8687120Z       }
2026-06-13T11:54:08.8687205Z     },
2026-06-13T11:54:08.8687297Z     {
2026-06-13T11:54:08.8687397Z       "id": "REQ-TERM-1",
2026-06-13T11:54:08.8687590Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-13T11:54:08.8687696Z       "requiredStages": [
2026-06-13T11:54:08.8687792Z         "impl",
2026-06-13T11:54:08.8687886Z         "unit"
2026-06-13T11:54:08.8687977Z       ],
2026-06-13T11:54:08.8688073Z       "stages": {
2026-06-13T11:54:08.8688163Z         "doc": {
2026-06-13T11:54:08.8688267Z           "complete": false,
2026-06-13T11:54:08.8688364Z           "evidence": []
2026-06-13T11:54:08.8688464Z         },
2026-06-13T11:54:08.8688563Z         "impl": {
2026-06-13T11:54:08.8688660Z           "complete": true,
2026-06-13T11:54:08.8688759Z           "evidence": [
2026-06-13T11:54:08.8688849Z             {
2026-06-13T11:54:08.8689069Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T11:54:08.8689173Z               "line": 59
2026-06-13T11:54:08.8689270Z             },
2026-06-13T11:54:08.8689370Z             {
2026-06-13T11:54:08.8689512Z               "path": "crates/spt-term/src/pty.rs",
2026-06-13T11:54:08.8689614Z               "line": 171
2026-06-13T11:54:08.8689717Z             },
2026-06-13T11:54:08.8689807Z             {
2026-06-13T11:54:08.8689940Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:54:08.8690039Z               "line": 100
2026-06-13T11:54:08.8690134Z             }
2026-06-13T11:54:08.8690220Z           ]
2026-06-13T11:54:08.8690311Z         },
2026-06-13T11:54:08.8690400Z         "int": {
2026-06-13T11:54:08.8690500Z           "complete": false,
2026-06-13T11:54:08.8690602Z           "evidence": []
2026-06-13T11:54:08.8690692Z         },
2026-06-13T11:54:08.8690787Z         "unit": {
2026-06-13T11:54:08.8690883Z           "complete": true,
2026-06-13T11:54:08.8690978Z           "evidence": [
2026-06-13T11:54:08.8691068Z             {
2026-06-13T11:54:08.8691217Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T11:54:08.8691312Z               "line": 24
2026-06-13T11:54:08.8691401Z             },
2026-06-13T11:54:08.8691493Z             {
2026-06-13T11:54:08.8691621Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-13T11:54:08.8691721Z               "line": 56
2026-06-13T11:54:08.8691808Z             }
2026-06-13T11:54:08.8691903Z           ]
2026-06-13T11:54:08.8691993Z         }
2026-06-13T11:54:08.8692084Z       }
2026-06-13T11:54:08.8692176Z     },
2026-06-13T11:54:08.8692265Z     {
2026-06-13T11:54:08.8692365Z       "id": "REQ-TERM-2",
2026-06-13T11:54:08.8692552Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-13T11:54:08.8692655Z       "requiredStages": [
2026-06-13T11:54:08.8692750Z         "impl",
2026-06-13T11:54:08.8692841Z         "unit"
2026-06-13T11:54:08.8692934Z       ],
2026-06-13T11:54:08.8693029Z       "stages": {
2026-06-13T11:54:08.8693125Z         "doc": {
2026-06-13T11:54:08.8693221Z           "complete": false,
2026-06-13T11:54:08.8693325Z           "evidence": []
2026-06-13T11:54:08.8693411Z         },
2026-06-13T11:54:08.8693512Z         "impl": {
2026-06-13T11:54:08.8693611Z           "complete": true,
2026-06-13T11:54:08.8693817Z           "evidence": [
2026-06-13T11:54:08.8693912Z             {
2026-06-13T11:54:08.8694036Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:54:08.8694136Z               "line": 117
2026-06-13T11:54:08.8694231Z             },
2026-06-13T11:54:08.8694321Z             {
2026-06-13T11:54:08.8694451Z               "path": "crates/spt-term/src/surface.rs",
2026-06-13T11:54:08.8694545Z               "line": 127
2026-06-13T11:54:08.8694636Z             }
2026-06-13T11:54:08.8694719Z           ]
2026-06-13T11:54:08.8694813Z         },
2026-06-13T11:54:08.8694898Z         "int": {
2026-06-13T11:54:08.8694985Z           "complete": false,
2026-06-13T11:54:08.8695081Z           "evidence": []
2026-06-13T11:54:08.8695255Z         },
2026-06-13T11:54:08.8695355Z         "unit": {
2026-06-13T11:54:08.8695454Z           "complete": true,
2026-06-13T11:54:08.8695549Z           "evidence": [
2026-06-13T11:54:08.8695639Z             {
2026-06-13T11:54:08.8695773Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T11:54:08.8695877Z               "line": 46
2026-06-13T11:54:08.8695963Z             },
2026-06-13T11:54:08.8696059Z             {
2026-06-13T11:54:08.8696173Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-13T11:54:08.8696273Z               "line": 77
2026-06-13T11:54:08.8696364Z             }
2026-06-13T11:54:08.8696450Z           ]
2026-06-13T11:54:08.8696535Z         }
2026-06-13T11:54:08.8696627Z       }
2026-06-13T11:54:08.8696717Z     },
2026-06-13T11:54:08.8696812Z     {
2026-06-13T11:54:08.8696941Z       "id": "REQ-TERM-3",
2026-06-13T11:54:08.8697089Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-13T11:54:08.8697188Z       "requiredStages": [
2026-06-13T11:54:08.8697290Z         "impl",
2026-06-13T11:54:08.8697384Z         "unit"
2026-06-13T11:54:08.8697475Z       ],
2026-06-13T11:54:08.8697571Z       "stages": {
2026-06-13T11:54:08.8697666Z         "doc": {
2026-06-13T11:54:08.8697765Z           "complete": false,
2026-06-13T11:54:08.8697876Z           "evidence": []
2026-06-13T11:54:08.8697972Z         },
2026-06-13T11:54:08.8698065Z         "impl": {
2026-06-13T11:54:08.8698170Z           "complete": true,
2026-06-13T11:54:08.8698261Z           "evidence": [
2026-06-13T11:54:08.8698357Z             {
2026-06-13T11:54:08.8698479Z               "path": "crates/spt-term/src/stream.rs",
2026-06-13T11:54:08.8698575Z               "line": 71
2026-06-13T11:54:08.8698666Z             }
2026-06-13T11:54:08.8698756Z           ]
2026-06-13T11:54:08.8698852Z         },
2026-06-13T11:54:08.8699048Z         "int": {
2026-06-13T11:54:08.8699152Z           "complete": false,
2026-06-13T11:54:08.8699248Z           "evidence": []
2026-06-13T11:54:08.8699377Z         },
2026-06-13T11:54:08.8699472Z         "unit": {
2026-06-13T11:54:08.8699568Z           "complete": true,
2026-06-13T11:54:08.8699667Z           "evidence": [
2026-06-13T11:54:08.8699753Z             {
2026-06-13T11:54:08.8699888Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T11:54:08.8699977Z               "line": 37
2026-06-13T11:54:08.8700067Z             },
2026-06-13T11:54:08.8700160Z             {
2026-06-13T11:54:08.8700282Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-13T11:54:08.8700377Z               "line": 67
2026-06-13T11:54:08.8700467Z             }
2026-06-13T11:54:08.8700562Z           ]
2026-06-13T11:54:08.8700651Z         }
2026-06-13T11:54:08.8700745Z       }
2026-06-13T11:54:08.8700837Z     },
2026-06-13T11:54:08.8700924Z     {
2026-06-13T11:54:08.8701027Z       "id": "REQ-TERM-4",
2026-06-13T11:54:08.8701385Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-13T11:54:08.8701505Z       "requiredStages": [
2026-06-13T11:54:08.8701600Z         "impl",
2026-06-13T11:54:08.8701690Z         "unit",
2026-06-13T11:54:08.8701787Z         "int"
2026-06-13T11:54:08.8701872Z       ],
2026-06-13T11:54:08.8701966Z       "stages": {
2026-06-13T11:54:08.8702186Z         "doc": {
2026-06-13T11:54:08.8702296Z           "complete": true,
2026-06-13T11:54:08.8702397Z           "evidence": [
2026-06-13T11:54:08.8702487Z             {
2026-06-13T11:54:08.8702601Z               "path": "docs/MANIFEST.md",
2026-06-13T11:54:08.8702698Z               "line": 115
2026-06-13T11:54:08.8702793Z             }
2026-06-13T11:54:08.8702882Z           ]
2026-06-13T11:54:08.8702973Z         },
2026-06-13T11:54:08.8703070Z         "impl": {
2026-06-13T11:54:08.8703168Z           "complete": true,
2026-06-13T11:54:08.8703268Z           "evidence": [
2026-06-13T11:54:08.8703353Z             {
2026-06-13T11:54:08.8703481Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.8703670Z               "line": 759
2026-06-13T11:54:08.8703767Z             },
2026-06-13T11:54:08.8703861Z             {
2026-06-13T11:54:08.8703981Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8704081Z               "line": 41
2026-06-13T11:54:08.8704180Z             },
2026-06-13T11:54:08.8704276Z             {
2026-06-13T11:54:08.8704395Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8704495Z               "line": 91
2026-06-13T11:54:08.8704591Z             },
2026-06-13T11:54:08.8704678Z             {
2026-06-13T11:54:08.8704805Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8704896Z               "line": 152
2026-06-13T11:54:08.8704993Z             },
2026-06-13T11:54:08.8705082Z             {
2026-06-13T11:54:08.8705206Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8705307Z               "line": 221
2026-06-13T11:54:08.8705396Z             },
2026-06-13T11:54:08.8705497Z             {
2026-06-13T11:54:08.8705627Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8705730Z               "line": 20
2026-06-13T11:54:08.8705824Z             },
2026-06-13T11:54:08.8705920Z             {
2026-06-13T11:54:08.8706061Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8706160Z               "line": 222
2026-06-13T11:54:08.8706257Z             },
2026-06-13T11:54:08.8706348Z             {
2026-06-13T11:54:08.8706480Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8706572Z               "line": 242
2026-06-13T11:54:08.8706672Z             },
2026-06-13T11:54:08.8706766Z             {
2026-06-13T11:54:08.8706892Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8706996Z               "line": 699
2026-06-13T11:54:08.8707081Z             },
2026-06-13T11:54:08.8707177Z             {
2026-06-13T11:54:08.8707296Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8707405Z               "line": 162
2026-06-13T11:54:08.8707501Z             },
2026-06-13T11:54:08.8707587Z             {
2026-06-13T11:54:08.8707715Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8707807Z               "line": 206
2026-06-13T11:54:08.8707907Z             },
2026-06-13T11:54:08.8707997Z             {
2026-06-13T11:54:08.8708112Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8708208Z               "line": 233
2026-06-13T11:54:08.8708297Z             },
2026-06-13T11:54:08.8708393Z             {
2026-06-13T11:54:08.8708499Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8708597Z               "line": 926
2026-06-13T11:54:08.8708682Z             }
2026-06-13T11:54:08.8708768Z           ]
2026-06-13T11:54:08.8708865Z         },
2026-06-13T11:54:08.8709044Z         "int": {
2026-06-13T11:54:08.8709136Z           "complete": true,
2026-06-13T11:54:08.8709226Z           "evidence": [
2026-06-13T11:54:08.8709335Z             {
2026-06-13T11:54:08.8709460Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-13T11:54:08.8709560Z               "line": 18
2026-06-13T11:54:08.8709650Z             }
2026-06-13T11:54:08.8709731Z           ]
2026-06-13T11:54:08.8709955Z         },
2026-06-13T11:54:08.8710042Z         "unit": {
2026-06-13T11:54:08.8710142Z           "complete": true,
2026-06-13T11:54:08.8710237Z           "evidence": [
2026-06-13T11:54:08.8710317Z             {
2026-06-13T11:54:08.8710443Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8710532Z               "line": 259
2026-06-13T11:54:08.8710623Z             },
2026-06-13T11:54:08.8710705Z             {
2026-06-13T11:54:08.8710833Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8710927Z               "line": 277
2026-06-13T11:54:08.8711013Z             },
2026-06-13T11:54:08.8711099Z             {
2026-06-13T11:54:08.8711216Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8711402Z               "line": 289
2026-06-13T11:54:08.8711484Z             },
2026-06-13T11:54:08.8711582Z             {
2026-06-13T11:54:08.8711707Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8711798Z               "line": 304
2026-06-13T11:54:08.8711897Z             },
2026-06-13T11:54:08.8711984Z             {
2026-06-13T11:54:08.8712093Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8712179Z               "line": 320
2026-06-13T11:54:08.8712274Z             },
2026-06-13T11:54:08.8712366Z             {
2026-06-13T11:54:08.8712480Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8712570Z               "line": 346
2026-06-13T11:54:08.8712656Z             },
2026-06-13T11:54:08.8712751Z             {
2026-06-13T11:54:08.8712860Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8712962Z               "line": 361
2026-06-13T11:54:08.8713066Z             },
2026-06-13T11:54:08.8713156Z             {
2026-06-13T11:54:08.8713272Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-13T11:54:08.8713358Z               "line": 391
2026-06-13T11:54:08.8713447Z             },
2026-06-13T11:54:08.8713539Z             {
2026-06-13T11:54:08.8713677Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8713770Z               "line": 365
2026-06-13T11:54:08.8713860Z             },
2026-06-13T11:54:08.8713947Z             {
2026-06-13T11:54:08.8714060Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8714164Z               "line": 382
2026-06-13T11:54:08.8714250Z             },
2026-06-13T11:54:08.8714336Z             {
2026-06-13T11:54:08.8714474Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8714555Z               "line": 411
2026-06-13T11:54:08.8714646Z             },
2026-06-13T11:54:08.8714731Z             {
2026-06-13T11:54:08.8714856Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-13T11:54:08.8714960Z               "line": 428
2026-06-13T11:54:08.8715051Z             },
2026-06-13T11:54:08.8715141Z             {
2026-06-13T11:54:08.8715262Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8715370Z               "line": 902
2026-06-13T11:54:08.8715461Z             },
2026-06-13T11:54:08.8715548Z             {
2026-06-13T11:54:08.8715661Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8715752Z               "line": 909
2026-06-13T11:54:08.8715843Z             },
2026-06-13T11:54:08.8715933Z             {
2026-06-13T11:54:08.8716052Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8716135Z               "line": 924
2026-06-13T11:54:08.8716225Z             },
2026-06-13T11:54:08.8716319Z             {
2026-06-13T11:54:08.8716437Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8716528Z               "line": 420
2026-06-13T11:54:08.8716626Z             },
2026-06-13T11:54:08.8716716Z             {
2026-06-13T11:54:08.8716831Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8716931Z               "line": 458
2026-06-13T11:54:08.8717012Z             },
2026-06-13T11:54:08.8717184Z             {
2026-06-13T11:54:08.8717317Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8717398Z               "line": 471
2026-06-13T11:54:08.8717489Z             },
2026-06-13T11:54:08.8717580Z             {
2026-06-13T11:54:08.8717693Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8717781Z               "line": 497
2026-06-13T11:54:08.8717865Z             },
2026-06-13T11:54:08.8717951Z             {
2026-06-13T11:54:08.8718066Z               "path": "crates/spt-term/src/digest.rs",
2026-06-13T11:54:08.8718156Z               "line": 524
2026-06-13T11:54:08.8718242Z             },
2026-06-13T11:54:08.8718332Z             {
2026-06-13T11:54:08.8718457Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-13T11:54:08.8718619Z               "line": 32
2026-06-13T11:54:08.8718711Z             },
2026-06-13T11:54:08.8718796Z             {
2026-06-13T11:54:08.8718910Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8719097Z               "line": 7374
2026-06-13T11:54:08.8719190Z             }
2026-06-13T11:54:08.8719285Z           ]
2026-06-13T11:54:08.8719377Z         }
2026-06-13T11:54:08.8719463Z       }
2026-06-13T11:54:08.8719552Z     },
2026-06-13T11:54:08.8719643Z     {
2026-06-13T11:54:08.8719734Z       "id": "REQ-UPD-1",
2026-06-13T11:54:08.8719867Z       "title": "Peer-propagated update over P2P",
2026-06-13T11:54:08.8719977Z       "requiredStages": [
2026-06-13T11:54:08.8720068Z         "impl",
2026-06-13T11:54:08.8720158Z         "unit",
2026-06-13T11:54:08.8720238Z         "int"
2026-06-13T11:54:08.8720331Z       ],
2026-06-13T11:54:08.8720416Z       "stages": {
2026-06-13T11:54:08.8720511Z         "doc": {
2026-06-13T11:54:08.8720621Z           "complete": false,
2026-06-13T11:54:08.8720707Z           "evidence": []
2026-06-13T11:54:08.8720797Z         },
2026-06-13T11:54:08.8720882Z         "impl": {
2026-06-13T11:54:08.8720989Z           "complete": true,
2026-06-13T11:54:08.8721078Z           "evidence": [
2026-06-13T11:54:08.8721179Z             {
2026-06-13T11:54:08.8721313Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8721402Z               "line": 28
2026-06-13T11:54:08.8721492Z             },
2026-06-13T11:54:08.8721578Z             {
2026-06-13T11:54:08.8721710Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8721804Z               "line": 103
2026-06-13T11:54:08.8721895Z             },
2026-06-13T11:54:08.8721987Z             {
2026-06-13T11:54:08.8722096Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8722191Z               "line": 342
2026-06-13T11:54:08.8722272Z             },
2026-06-13T11:54:08.8722363Z             {
2026-06-13T11:54:08.8722495Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8722597Z               "line": 22
2026-06-13T11:54:08.8722687Z             },
2026-06-13T11:54:08.8722772Z             {
2026-06-13T11:54:08.8722902Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8722997Z               "line": 207
2026-06-13T11:54:08.8723092Z             },
2026-06-13T11:54:08.8723173Z             {
2026-06-13T11:54:08.8723302Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8723407Z               "line": 283
2026-06-13T11:54:08.8723488Z             },
2026-06-13T11:54:08.8723575Z             {
2026-06-13T11:54:08.8723693Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8723793Z               "line": 340
2026-06-13T11:54:08.8723875Z             },
2026-06-13T11:54:08.8723969Z             {
2026-06-13T11:54:08.8724099Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8724199Z               "line": 37
2026-06-13T11:54:08.8724289Z             }
2026-06-13T11:54:08.8724374Z           ]
2026-06-13T11:54:08.8724459Z         },
2026-06-13T11:54:08.8724540Z         "int": {
2026-06-13T11:54:08.8724639Z           "complete": true,
2026-06-13T11:54:08.8724844Z           "evidence": [
2026-06-13T11:54:08.8724930Z             {
2026-06-13T11:54:08.8725062Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-13T11:54:08.8725154Z               "line": 207
2026-06-13T11:54:08.8725240Z             },
2026-06-13T11:54:08.8725329Z             {
2026-06-13T11:54:08.8725454Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-13T11:54:08.8725544Z               "line": 987
2026-06-13T11:54:08.8725625Z             }
2026-06-13T11:54:08.8725759Z           ]
2026-06-13T11:54:08.8725845Z         },
2026-06-13T11:54:08.8725940Z         "unit": {
2026-06-13T11:54:08.8726045Z           "complete": true,
2026-06-13T11:54:08.8726136Z           "evidence": [
2026-06-13T11:54:08.8726336Z             {
2026-06-13T11:54:08.8726451Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8726554Z               "line": 490
2026-06-13T11:54:08.8726641Z             },
2026-06-13T11:54:08.8726733Z             {
2026-06-13T11:54:08.8726869Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8726964Z               "line": 616
2026-06-13T11:54:08.8727059Z             },
2026-06-13T11:54:08.8727149Z             {
2026-06-13T11:54:08.8727286Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.8727377Z               "line": 277
2026-06-13T11:54:08.8727469Z             },
2026-06-13T11:54:08.8727562Z             {
2026-06-13T11:54:08.8727682Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8727777Z               "line": 124
2026-06-13T11:54:08.8727867Z             },
2026-06-13T11:54:08.8727958Z             {
2026-06-13T11:54:08.8728078Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8728187Z               "line": 200
2026-06-13T11:54:08.8728283Z             }
2026-06-13T11:54:08.8728370Z           ]
2026-06-13T11:54:08.8728459Z         }
2026-06-13T11:54:08.8728550Z       }
2026-06-13T11:54:08.8728641Z     },
2026-06-13T11:54:08.8728740Z     {
2026-06-13T11:54:08.8728840Z       "id": "REQ-UPD-2",
2026-06-13T11:54:08.8729064Z       "title": "All binaries signature-verified before handoff",
2026-06-13T11:54:08.8729164Z       "requiredStages": [
2026-06-13T11:54:08.8729261Z         "impl",
2026-06-13T11:54:08.8729351Z         "unit"
2026-06-13T11:54:08.8729446Z       ],
2026-06-13T11:54:08.8729537Z       "stages": {
2026-06-13T11:54:08.8729638Z         "doc": {
2026-06-13T11:54:08.8729741Z           "complete": false,
2026-06-13T11:54:08.8729840Z           "evidence": []
2026-06-13T11:54:08.8729932Z         },
2026-06-13T11:54:08.8730023Z         "impl": {
2026-06-13T11:54:08.8730127Z           "complete": true,
2026-06-13T11:54:08.8730218Z           "evidence": [
2026-06-13T11:54:08.8730328Z             {
2026-06-13T11:54:08.8730456Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8730552Z               "line": 343
2026-06-13T11:54:08.8730642Z             },
2026-06-13T11:54:08.8730732Z             {
2026-06-13T11:54:08.8730871Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8730966Z               "line": 476
2026-06-13T11:54:08.8731057Z             },
2026-06-13T11:54:08.8731157Z             {
2026-06-13T11:54:08.8731277Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8731376Z               "line": 29
2026-06-13T11:54:08.8731462Z             },
2026-06-13T11:54:08.8731558Z             {
2026-06-13T11:54:08.8731681Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8731777Z               "line": 271
2026-06-13T11:54:08.8731869Z             },
2026-06-13T11:54:08.8731957Z             {
2026-06-13T11:54:08.8732081Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8732181Z               "line": 288
2026-06-13T11:54:08.8732270Z             },
2026-06-13T11:54:08.8732360Z             {
2026-06-13T11:54:08.8732489Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8732693Z               "line": 408
2026-06-13T11:54:08.8732784Z             },
2026-06-13T11:54:08.8732885Z             {
2026-06-13T11:54:08.8733008Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8733104Z               "line": 540
2026-06-13T11:54:08.8733190Z             },
2026-06-13T11:54:08.8733285Z             {
2026-06-13T11:54:08.8733409Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8733500Z               "line": 155
2026-06-13T11:54:08.8733590Z             }
2026-06-13T11:54:08.8733680Z           ]
2026-06-13T11:54:08.8733768Z         },
2026-06-13T11:54:08.8733857Z         "int": {
2026-06-13T11:54:08.8733962Z           "complete": false,
2026-06-13T11:54:08.8734191Z           "evidence": []
2026-06-13T11:54:08.8734282Z         },
2026-06-13T11:54:08.8734373Z         "unit": {
2026-06-13T11:54:08.8734468Z           "complete": true,
2026-06-13T11:54:08.8734567Z           "evidence": [
2026-06-13T11:54:08.8734664Z             {
2026-06-13T11:54:08.8734797Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8734896Z               "line": 697
2026-06-13T11:54:08.8734981Z             },
2026-06-13T11:54:08.8735076Z             {
2026-06-13T11:54:08.8735194Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8735289Z               "line": 758
2026-06-13T11:54:08.8735384Z             },
2026-06-13T11:54:08.8735471Z             {
2026-06-13T11:54:08.8735598Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8735690Z               "line": 772
2026-06-13T11:54:08.8735780Z             },
2026-06-13T11:54:08.8735871Z             {
2026-06-13T11:54:08.8735996Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8736086Z               "line": 788
2026-06-13T11:54:08.8736171Z             },
2026-06-13T11:54:08.8736267Z             {
2026-06-13T11:54:08.8736382Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8736491Z               "line": 879
2026-06-13T11:54:08.8736581Z             },
2026-06-13T11:54:08.8736673Z             {
2026-06-13T11:54:08.8736800Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8736891Z               "line": 414
2026-06-13T11:54:08.8736987Z             },
2026-06-13T11:54:08.8737077Z             {
2026-06-13T11:54:08.8737206Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8737302Z               "line": 427
2026-06-13T11:54:08.8737397Z             },
2026-06-13T11:54:08.8737486Z             {
2026-06-13T11:54:08.8737619Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.8737714Z               "line": 410
2026-06-13T11:54:08.8737803Z             }
2026-06-13T11:54:08.8737884Z           ]
2026-06-13T11:54:08.8737971Z         }
2026-06-13T11:54:08.8738066Z       }
2026-06-13T11:54:08.8738156Z     },
2026-06-13T11:54:08.8738247Z     {
2026-06-13T11:54:08.8738352Z       "id": "REQ-UPD-3",
2026-06-13T11:54:08.8738533Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-13T11:54:08.8738638Z       "requiredStages": [
2026-06-13T11:54:08.8738729Z         "impl",
2026-06-13T11:54:08.8738823Z         "unit",
2026-06-13T11:54:08.8738915Z         "int"
2026-06-13T11:54:08.8739095Z       ],
2026-06-13T11:54:08.8739187Z       "stages": {
2026-06-13T11:54:08.8739282Z         "doc": {
2026-06-13T11:54:08.8743112Z           "complete": false,
2026-06-13T11:54:08.8743239Z           "evidence": []
2026-06-13T11:54:08.8743326Z         },
2026-06-13T11:54:08.8743431Z         "impl": {
2026-06-13T11:54:08.8743530Z           "complete": true,
2026-06-13T11:54:08.8743640Z           "evidence": [
2026-06-13T11:54:08.8743741Z             {
2026-06-13T11:54:08.8743888Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8743974Z               "line": 40
2026-06-13T11:54:08.8744065Z             },
2026-06-13T11:54:08.8744155Z             {
2026-06-13T11:54:08.8744432Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8744537Z               "line": 87
2026-06-13T11:54:08.8744628Z             },
2026-06-13T11:54:08.8744718Z             {
2026-06-13T11:54:08.8744846Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-13T11:54:08.8744938Z               "line": 935
2026-06-13T11:54:08.8745024Z             },
2026-06-13T11:54:08.8745108Z             {
2026-06-13T11:54:08.8745239Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-13T11:54:08.8745329Z               "line": 717
2026-06-13T11:54:08.8745413Z             },
2026-06-13T11:54:08.8745494Z             {
2026-06-13T11:54:08.8745628Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8745825Z               "line": 26
2026-06-13T11:54:08.8745911Z             },
2026-06-13T11:54:08.8746007Z             {
2026-06-13T11:54:08.8746121Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8746211Z               "line": 114
2026-06-13T11:54:08.8746293Z             },
2026-06-13T11:54:08.8746379Z             {
2026-06-13T11:54:08.8746502Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8746598Z               "line": 246
2026-06-13T11:54:08.8746689Z             },
2026-06-13T11:54:08.8746769Z             {
2026-06-13T11:54:08.8746880Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8746975Z               "line": 1906
2026-06-13T11:54:08.8747056Z             }
2026-06-13T11:54:08.8747146Z           ]
2026-06-13T11:54:08.8747238Z         },
2026-06-13T11:54:08.8747332Z         "int": {
2026-06-13T11:54:08.8747422Z           "complete": true,
2026-06-13T11:54:08.8747520Z           "evidence": [
2026-06-13T11:54:08.8747614Z             {
2026-06-13T11:54:08.8747742Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-13T11:54:08.8747834Z               "line": 58
2026-06-13T11:54:08.8747920Z             }
2026-06-13T11:54:08.8748013Z           ]
2026-06-13T11:54:08.8748099Z         },
2026-06-13T11:54:08.8748194Z         "unit": {
2026-06-13T11:54:08.8748288Z           "complete": true,
2026-06-13T11:54:08.8748377Z           "evidence": [
2026-06-13T11:54:08.8748473Z             {
2026-06-13T11:54:08.8748589Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8748692Z               "line": 532
2026-06-13T11:54:08.8748778Z             },
2026-06-13T11:54:08.8748865Z             {
2026-06-13T11:54:08.8749083Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8749184Z               "line": 582
2026-06-13T11:54:08.8749294Z             },
2026-06-13T11:54:08.8749379Z             {
2026-06-13T11:54:08.8749508Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8749609Z               "line": 650
2026-06-13T11:54:08.8749694Z             },
2026-06-13T11:54:08.8749776Z             {
2026-06-13T11:54:08.8749904Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-13T11:54:08.8750004Z               "line": 1062
2026-06-13T11:54:08.8750100Z             },
2026-06-13T11:54:08.8750199Z             {
2026-06-13T11:54:08.8750323Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8750420Z               "line": 271
2026-06-13T11:54:08.8750523Z             },
2026-06-13T11:54:08.8750604Z             {
2026-06-13T11:54:08.8750725Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8750815Z               "line": 295
2026-06-13T11:54:08.8750918Z             },
2026-06-13T11:54:08.8751004Z             {
2026-06-13T11:54:08.8751129Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8751232Z               "line": 316
2026-06-13T11:54:08.8751309Z             },
2026-06-13T11:54:08.8751401Z             {
2026-06-13T11:54:08.8751524Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8751628Z               "line": 332
2026-06-13T11:54:08.8751706Z             }
2026-06-13T11:54:08.8751801Z           ]
2026-06-13T11:54:08.8752001Z         }
2026-06-13T11:54:08.8752087Z       }
2026-06-13T11:54:08.8752195Z     },
2026-06-13T11:54:08.8752282Z     {
2026-06-13T11:54:08.8752397Z       "id": "REQ-UPD-4",
2026-06-13T11:54:08.8752592Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-13T11:54:08.8752707Z       "requiredStages": [
2026-06-13T11:54:08.8752792Z         "impl",
2026-06-13T11:54:08.8752878Z         "unit"
2026-06-13T11:54:08.8752970Z       ],
2026-06-13T11:54:08.8753059Z       "stages": {
2026-06-13T11:54:08.8753139Z         "doc": {
2026-06-13T11:54:08.8753239Z           "complete": false,
2026-06-13T11:54:08.8753340Z           "evidence": []
2026-06-13T11:54:08.8753437Z         },
2026-06-13T11:54:08.8753624Z         "impl": {
2026-06-13T11:54:08.8753715Z           "complete": true,
2026-06-13T11:54:08.8753809Z           "evidence": [
2026-06-13T11:54:08.8753900Z             {
2026-06-13T11:54:08.8754024Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8754124Z               "line": 41
2026-06-13T11:54:08.8754220Z             },
2026-06-13T11:54:08.8754301Z             {
2026-06-13T11:54:08.8754429Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8754525Z               "line": 88
2026-06-13T11:54:08.8754616Z             },
2026-06-13T11:54:08.8754697Z             {
2026-06-13T11:54:08.8754825Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8754926Z               "line": 23
2026-06-13T11:54:08.8755011Z             },
2026-06-13T11:54:08.8755097Z             {
2026-06-13T11:54:08.8755217Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8755311Z               "line": 56
2026-06-13T11:54:08.8755402Z             },
2026-06-13T11:54:08.8755508Z             {
2026-06-13T11:54:08.8755649Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8755750Z               "line": 77
2026-06-13T11:54:08.8755842Z             },
2026-06-13T11:54:08.8755955Z             {
2026-06-13T11:54:08.8756082Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-13T11:54:08.8756173Z               "line": 186
2026-06-13T11:54:08.8756272Z             },
2026-06-13T11:54:08.8756366Z             {
2026-06-13T11:54:08.8756481Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-13T11:54:08.8756577Z               "line": 108
2026-06-13T11:54:08.8756667Z             },
2026-06-13T11:54:08.8756762Z             {
2026-06-13T11:54:08.8756877Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.8756981Z               "line": 170
2026-06-13T11:54:08.8757072Z             },
2026-06-13T11:54:08.8757145Z             {
2026-06-13T11:54:08.8757277Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8757367Z               "line": 1905
2026-06-13T11:54:08.8757464Z             }
2026-06-13T11:54:08.8757549Z           ]
2026-06-13T11:54:08.8757644Z         },
2026-06-13T11:54:08.8757730Z         "int": {
2026-06-13T11:54:08.8757831Z           "complete": false,
2026-06-13T11:54:08.8757930Z           "evidence": []
2026-06-13T11:54:08.8758016Z         },
2026-06-13T11:54:08.8758117Z         "unit": {
2026-06-13T11:54:08.8758207Z           "complete": true,
2026-06-13T11:54:08.8758302Z           "evidence": [
2026-06-13T11:54:08.8758399Z             {
2026-06-13T11:54:08.8758522Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8758621Z               "line": 578
2026-06-13T11:54:08.8758702Z             },
2026-06-13T11:54:08.8758801Z             {
2026-06-13T11:54:08.8758928Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8759111Z               "line": 703
2026-06-13T11:54:08.8759215Z             },
2026-06-13T11:54:08.8759300Z             {
2026-06-13T11:54:08.8759430Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-13T11:54:08.8759520Z               "line": 384
2026-06-13T11:54:08.8759610Z             },
2026-06-13T11:54:08.8759692Z             {
2026-06-13T11:54:08.8759934Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8760040Z               "line": 102
2026-06-13T11:54:08.8760120Z             },
2026-06-13T11:54:08.8760215Z             {
2026-06-13T11:54:08.8760336Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8760435Z               "line": 123
2026-06-13T11:54:08.8760521Z             },
2026-06-13T11:54:08.8760602Z             {
2026-06-13T11:54:08.8760726Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-13T11:54:08.8760822Z               "line": 142
2026-06-13T11:54:08.8760917Z             },
2026-06-13T11:54:08.8760999Z             {
2026-06-13T11:54:08.8761126Z               "path": "crates/spt-store/src/info.rs",
2026-06-13T11:54:08.8761328Z               "line": 386
2026-06-13T11:54:08.8761412Z             },
2026-06-13T11:54:08.8761502Z             {
2026-06-13T11:54:08.8761626Z               "path": "crates/spt-store/src/perch.rs",
2026-06-13T11:54:08.8761732Z               "line": 566
2026-06-13T11:54:08.8761816Z             },
2026-06-13T11:54:08.8761903Z             {
2026-06-13T11:54:08.8762017Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8762112Z               "line": 6051
2026-06-13T11:54:08.8762198Z             }
2026-06-13T11:54:08.8762280Z           ]
2026-06-13T11:54:08.8762366Z         }
2026-06-13T11:54:08.8762446Z       }
2026-06-13T11:54:08.8762532Z     },
2026-06-13T11:54:08.8762628Z     {
2026-06-13T11:54:08.8762719Z       "id": "REQ-UPD-5",
2026-06-13T11:54:08.8762872Z       "title": "spt-core ripple-updates registered adapters",
2026-06-13T11:54:08.8762971Z       "requiredStages": [
2026-06-13T11:54:08.8763057Z         "impl",
2026-06-13T11:54:08.8763157Z         "unit"
2026-06-13T11:54:08.8763239Z       ],
2026-06-13T11:54:08.8763323Z       "stages": {
2026-06-13T11:54:08.8763409Z         "doc": {
2026-06-13T11:54:08.8763516Z           "complete": false,
2026-06-13T11:54:08.8763611Z           "evidence": []
2026-06-13T11:54:08.8763752Z         },
2026-06-13T11:54:08.8763842Z         "impl": {
2026-06-13T11:54:08.8763946Z           "complete": true,
2026-06-13T11:54:08.8764040Z           "evidence": [
2026-06-13T11:54:08.8764121Z             {
2026-06-13T11:54:08.8764271Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8764355Z               "line": 27
2026-06-13T11:54:08.8764455Z             },
2026-06-13T11:54:08.8764542Z             {
2026-06-13T11:54:08.8764664Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8764765Z               "line": 82
2026-06-13T11:54:08.8764847Z             },
2026-06-13T11:54:08.8764933Z             {
2026-06-13T11:54:08.8765060Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8765162Z               "line": 134
2026-06-13T11:54:08.8765247Z             },
2026-06-13T11:54:08.8765332Z             {
2026-06-13T11:54:08.8765462Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8765586Z               "line": 492
2026-06-13T11:54:08.8765685Z             },
2026-06-13T11:54:08.8765772Z             {
2026-06-13T11:54:08.8765899Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8765990Z               "line": 528
2026-06-13T11:54:08.8766077Z             }
2026-06-13T11:54:08.8766172Z           ]
2026-06-13T11:54:08.8766262Z         },
2026-06-13T11:54:08.8766354Z         "int": {
2026-06-13T11:54:08.8766454Z           "complete": false,
2026-06-13T11:54:08.8766553Z           "evidence": []
2026-06-13T11:54:08.8766642Z         },
2026-06-13T11:54:08.8766738Z         "unit": {
2026-06-13T11:54:08.8766841Z           "complete": true,
2026-06-13T11:54:08.8766936Z           "evidence": [
2026-06-13T11:54:08.8767036Z             {
2026-06-13T11:54:08.8767165Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8767270Z               "line": 232
2026-06-13T11:54:08.8767356Z             },
2026-06-13T11:54:08.8767451Z             {
2026-06-13T11:54:08.8767676Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8767771Z               "line": 246
2026-06-13T11:54:08.8767865Z             },
2026-06-13T11:54:08.8767952Z             {
2026-06-13T11:54:08.8768090Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8768180Z               "line": 260
2026-06-13T11:54:08.8768281Z             },
2026-06-13T11:54:08.8768372Z             {
2026-06-13T11:54:08.8768505Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8768606Z               "line": 274
2026-06-13T11:54:08.8768696Z             },
2026-06-13T11:54:08.8768791Z             {
2026-06-13T11:54:08.8769129Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-13T11:54:08.8769219Z               "line": 308
2026-06-13T11:54:08.8769324Z             },
2026-06-13T11:54:08.8769413Z             {
2026-06-13T11:54:08.8769555Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-13T11:54:08.8769651Z               "line": 866
2026-06-13T11:54:08.8769742Z             }
2026-06-13T11:54:08.8769836Z           ]
2026-06-13T11:54:08.8769923Z         }
2026-06-13T11:54:08.8770014Z       }
2026-06-13T11:54:08.8770103Z     },
2026-06-13T11:54:08.8770189Z     {
2026-06-13T11:54:08.8770285Z       "id": "REQ-UPD-6",
2026-06-13T11:54:08.8771105Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-13T11:54:08.8771211Z       "requiredStages": [
2026-06-13T11:54:08.8771310Z         "doc",
2026-06-13T11:54:08.8771401Z         "impl",
2026-06-13T11:54:08.8771492Z         "unit",
2026-06-13T11:54:08.8771578Z         "int"
2026-06-13T11:54:08.8771667Z       ],
2026-06-13T11:54:08.8771763Z       "stages": {
2026-06-13T11:54:08.8771860Z         "doc": {
2026-06-13T11:54:08.8771958Z           "complete": true,
2026-06-13T11:54:08.8772053Z           "evidence": [
2026-06-13T11:54:08.8772138Z             {
2026-06-13T11:54:08.8772283Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:54:08.8772376Z               "line": 3
2026-06-13T11:54:08.8772468Z             },
2026-06-13T11:54:08.8772564Z             {
2026-06-13T11:54:08.8772673Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-13T11:54:08.8772773Z               "line": 3
2026-06-13T11:54:08.8772864Z             },
2026-06-13T11:54:08.8772955Z             {
2026-06-13T11:54:08.8773112Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-13T11:54:08.8773221Z               "line": 3
2026-06-13T11:54:08.8773321Z             }
2026-06-13T11:54:08.8773407Z           ]
2026-06-13T11:54:08.8773508Z         },
2026-06-13T11:54:08.8773598Z         "impl": {
2026-06-13T11:54:08.8773703Z           "complete": true,
2026-06-13T11:54:08.8773804Z           "evidence": [
2026-06-13T11:54:08.8773902Z             {
2026-06-13T11:54:08.8774041Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8774147Z               "line": 76
2026-06-13T11:54:08.8774250Z             },
2026-06-13T11:54:08.8774345Z             {
2026-06-13T11:54:08.8774493Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8774610Z               "line": 212
2026-06-13T11:54:08.8774706Z             },
2026-06-13T11:54:08.8774816Z             {
2026-06-13T11:54:08.8774943Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8775058Z               "line": 69
2026-06-13T11:54:08.8775154Z             },
2026-06-13T11:54:08.8775268Z             {
2026-06-13T11:54:08.8775407Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8775502Z               "line": 133
2026-06-13T11:54:08.8775616Z             },
2026-06-13T11:54:08.8775712Z             {
2026-06-13T11:54:08.8775989Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8776107Z               "line": 243
2026-06-13T11:54:08.8776221Z             },
2026-06-13T11:54:08.8776342Z             {
2026-06-13T11:54:08.8776474Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8776589Z               "line": 406
2026-06-13T11:54:08.8776700Z             },
2026-06-13T11:54:08.8776813Z             {
2026-06-13T11:54:08.8777000Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8777113Z               "line": 534
2026-06-13T11:54:08.8777221Z             },
2026-06-13T11:54:08.8777313Z             {
2026-06-13T11:54:08.8777458Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8777692Z               "line": 548
2026-06-13T11:54:08.8777796Z             },
2026-06-13T11:54:08.8777892Z             {
2026-06-13T11:54:08.8778036Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8778178Z               "line": 603
2026-06-13T11:54:08.8778279Z             },
2026-06-13T11:54:08.8778384Z             {
2026-06-13T11:54:08.8778512Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8778627Z               "line": 634
2026-06-13T11:54:08.8778717Z             },
2026-06-13T11:54:08.8778826Z             {
2026-06-13T11:54:08.8779046Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:54:08.8779156Z               "line": 137
2026-06-13T11:54:08.8779266Z             },
2026-06-13T11:54:08.8779375Z             {
2026-06-13T11:54:08.8779694Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-13T11:54:08.8779803Z               "line": 184
2026-06-13T11:54:08.8779907Z             },
2026-06-13T11:54:08.8780020Z             {
2026-06-13T11:54:08.8780149Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8780255Z               "line": 78
2026-06-13T11:54:08.8780335Z             },
2026-06-13T11:54:08.8780445Z             {
2026-06-13T11:54:08.8780574Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8780692Z               "line": 114
2026-06-13T11:54:08.8780798Z             },
2026-06-13T11:54:08.8780893Z             {
2026-06-13T11:54:08.8781040Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8781132Z               "line": 185
2026-06-13T11:54:08.8781236Z             },
2026-06-13T11:54:08.8781346Z             {
2026-06-13T11:54:08.8781475Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8781580Z               "line": 260
2026-06-13T11:54:08.8781670Z             },
2026-06-13T11:54:08.8781771Z             {
2026-06-13T11:54:08.8781894Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8781994Z               "line": 292
2026-06-13T11:54:08.8782096Z             },
2026-06-13T11:54:08.8782185Z             {
2026-06-13T11:54:08.8782323Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8782429Z               "line": 323
2026-06-13T11:54:08.8782523Z             },
2026-06-13T11:54:08.8782608Z             {
2026-06-13T11:54:08.8782733Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8782838Z               "line": 346
2026-06-13T11:54:08.8782927Z             },
2026-06-13T11:54:08.8783013Z             {
2026-06-13T11:54:08.8783129Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8783228Z               "line": 388
2026-06-13T11:54:08.8783309Z             },
2026-06-13T11:54:08.8783400Z             {
2026-06-13T11:54:08.8783529Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8783624Z               "line": 398
2026-06-13T11:54:08.8783725Z             },
2026-06-13T11:54:08.8783810Z             {
2026-06-13T11:54:08.8783943Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8784025Z               "line": 410
2026-06-13T11:54:08.8784125Z             },
2026-06-13T11:54:08.8784307Z             {
2026-06-13T11:54:08.8784430Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8784525Z               "line": 420
2026-06-13T11:54:08.8784611Z             },
2026-06-13T11:54:08.8784698Z             {
2026-06-13T11:54:08.8784819Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8784910Z               "line": 439
2026-06-13T11:54:08.8785005Z             },
2026-06-13T11:54:08.8785090Z             {
2026-06-13T11:54:08.8785213Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8785299Z               "line": 449
2026-06-13T11:54:08.8785391Z             },
2026-06-13T11:54:08.8785480Z             {
2026-06-13T11:54:08.8785743Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8785842Z               "line": 94
2026-06-13T11:54:08.8785924Z             },
2026-06-13T11:54:08.8786024Z             {
2026-06-13T11:54:08.8786157Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8786253Z               "line": 120
2026-06-13T11:54:08.8786348Z             },
2026-06-13T11:54:08.8786438Z             {
2026-06-13T11:54:08.8786559Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8786658Z               "line": 135
2026-06-13T11:54:08.8786753Z             },
2026-06-13T11:54:08.8786834Z             {
2026-06-13T11:54:08.8786954Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8787064Z               "line": 162
2026-06-13T11:54:08.8787145Z             },
2026-06-13T11:54:08.8787236Z             {
2026-06-13T11:54:08.8787358Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8787464Z               "line": 174
2026-06-13T11:54:08.8787551Z             },
2026-06-13T11:54:08.8787645Z             {
2026-06-13T11:54:08.8787768Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8787858Z               "line": 185
2026-06-13T11:54:08.8787948Z             },
2026-06-13T11:54:08.8788037Z             {
2026-06-13T11:54:08.8788166Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8788252Z               "line": 451
2026-06-13T11:54:08.8788342Z             },
2026-06-13T11:54:08.8788432Z             {
2026-06-13T11:54:08.8788543Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8788648Z               "line": 555
2026-06-13T11:54:08.8788738Z             },
2026-06-13T11:54:08.8788825Z             {
2026-06-13T11:54:08.8789019Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8789125Z               "line": 171
2026-06-13T11:54:08.8789215Z             },
2026-06-13T11:54:08.8789291Z             {
2026-06-13T11:54:08.8789426Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8789511Z               "line": 65
2026-06-13T11:54:08.8789596Z             },
2026-06-13T11:54:08.8789692Z             {
2026-06-13T11:54:08.8789812Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8789906Z               "line": 71
2026-06-13T11:54:08.8789983Z             },
2026-06-13T11:54:08.8790074Z             {
2026-06-13T11:54:08.8790183Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-13T11:54:08.8790282Z               "line": 77
2026-06-13T11:54:08.8790373Z             },
2026-06-13T11:54:08.8790454Z             {
2026-06-13T11:54:08.8790575Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8790665Z               "line": 778
2026-06-13T11:54:08.8790752Z             },
2026-06-13T11:54:08.8790839Z             {
2026-06-13T11:54:08.8790947Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8791048Z               "line": 795
2026-06-13T11:54:08.8791138Z             },
2026-06-13T11:54:08.8791223Z             {
2026-06-13T11:54:08.8791329Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8791424Z               "line": 838
2026-06-13T11:54:08.8791505Z             },
2026-06-13T11:54:08.8791716Z             {
2026-06-13T11:54:08.8791839Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8791925Z               "line": 981
2026-06-13T11:54:08.8792012Z             },
2026-06-13T11:54:08.8792097Z             {
2026-06-13T11:54:08.8792201Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8792293Z               "line": 1131
2026-06-13T11:54:08.8792388Z             }
2026-06-13T11:54:08.8792478Z           ]
2026-06-13T11:54:08.8792568Z         },
2026-06-13T11:54:08.8792656Z         "int": {
2026-06-13T11:54:08.8792754Z           "complete": true,
2026-06-13T11:54:08.8792850Z           "evidence": [
2026-06-13T11:54:08.8792937Z             {
2026-06-13T11:54:08.8793191Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.8793293Z               "line": 569
2026-06-13T11:54:08.8793379Z             },
2026-06-13T11:54:08.8793464Z             {
2026-06-13T11:54:08.8793588Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:54:08.8793684Z               "line": 135
2026-06-13T11:54:08.8793764Z             }
2026-06-13T11:54:08.8793849Z           ]
2026-06-13T11:54:08.8793937Z         },
2026-06-13T11:54:08.8794027Z         "unit": {
2026-06-13T11:54:08.8794127Z           "complete": true,
2026-06-13T11:54:08.8794213Z           "evidence": [
2026-06-13T11:54:08.8794303Z             {
2026-06-13T11:54:08.8794436Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8794537Z               "line": 623
2026-06-13T11:54:08.8794628Z             },
2026-06-13T11:54:08.8794713Z             {
2026-06-13T11:54:08.8794838Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8794929Z               "line": 672
2026-06-13T11:54:08.8795023Z             },
2026-06-13T11:54:08.8795109Z             {
2026-06-13T11:54:08.8795239Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-13T11:54:08.8795342Z               "line": 696
2026-06-13T11:54:08.8795427Z             },
2026-06-13T11:54:08.8795528Z             {
2026-06-13T11:54:08.8795659Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8795763Z               "line": 513
2026-06-13T11:54:08.8795845Z             },
2026-06-13T11:54:08.8795936Z             {
2026-06-13T11:54:08.8796073Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8796170Z               "line": 638
2026-06-13T11:54:08.8796255Z             },
2026-06-13T11:54:08.8796341Z             {
2026-06-13T11:54:08.8796470Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8796551Z               "line": 675
2026-06-13T11:54:08.8796636Z             },
2026-06-13T11:54:08.8796741Z             {
2026-06-13T11:54:08.8796856Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8796951Z               "line": 894
2026-06-13T11:54:08.8797036Z             },
2026-06-13T11:54:08.8797119Z             {
2026-06-13T11:54:08.8797237Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8797337Z               "line": 916
2026-06-13T11:54:08.8797429Z             },
2026-06-13T11:54:08.8797514Z             {
2026-06-13T11:54:08.8797643Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8797724Z               "line": 933
2026-06-13T11:54:08.8797810Z             },
2026-06-13T11:54:08.8797895Z             {
2026-06-13T11:54:08.8798005Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8798097Z               "line": 948
2026-06-13T11:54:08.8798177Z             },
2026-06-13T11:54:08.8798275Z             {
2026-06-13T11:54:08.8798390Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8798494Z               "line": 974
2026-06-13T11:54:08.8798588Z             },
2026-06-13T11:54:08.8798664Z             {
2026-06-13T11:54:08.8798789Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-13T11:54:08.8798879Z               "line": 457
2026-06-13T11:54:08.8799199Z             },
2026-06-13T11:54:08.8799317Z             {
2026-06-13T11:54:08.8799461Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-13T11:54:08.8799560Z               "line": 338
2026-06-13T11:54:08.8799646Z             },
2026-06-13T11:54:08.8799733Z             {
2026-06-13T11:54:08.8799838Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8799933Z               "line": 8114
2026-06-13T11:54:08.8800024Z             },
2026-06-13T11:54:08.8800118Z             {
2026-06-13T11:54:08.8800233Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8800324Z               "line": 1260
2026-06-13T11:54:08.8800415Z             },
2026-06-13T11:54:08.8800606Z             {
2026-06-13T11:54:08.8800739Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-13T11:54:08.8800823Z               "line": 130
2026-06-13T11:54:08.8800908Z             }
2026-06-13T11:54:08.8801004Z           ]
2026-06-13T11:54:08.8801084Z         }
2026-06-13T11:54:08.8801173Z       }
2026-06-13T11:54:08.8801255Z     },
2026-06-13T11:54:08.8801351Z     {
2026-06-13T11:54:08.8801450Z       "id": "REQ-UPD-7",
2026-06-13T11:54:08.8803666Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-13T11:54:08.8803800Z       "requiredStages": [
2026-06-13T11:54:08.8803882Z         "impl",
2026-06-13T11:54:08.8803977Z         "unit"
2026-06-13T11:54:08.8804067Z       ],
2026-06-13T11:54:08.8804187Z       "stages": {
2026-06-13T11:54:08.8804278Z         "doc": {
2026-06-13T11:54:08.8804377Z           "complete": false,
2026-06-13T11:54:08.8804478Z           "evidence": []
2026-06-13T11:54:08.8804558Z         },
2026-06-13T11:54:08.8804658Z         "impl": {
2026-06-13T11:54:08.8804759Z           "complete": true,
2026-06-13T11:54:08.8804850Z           "evidence": [
2026-06-13T11:54:08.8804945Z             {
2026-06-13T11:54:08.8805058Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8805165Z               "line": 2010
2026-06-13T11:54:08.8805245Z             }
2026-06-13T11:54:08.8805345Z           ]
2026-06-13T11:54:08.8805432Z         },
2026-06-13T11:54:08.8805527Z         "int": {
2026-06-13T11:54:08.8805631Z           "complete": false,
2026-06-13T11:54:08.8805717Z           "evidence": []
2026-06-13T11:54:08.8805804Z         },
2026-06-13T11:54:08.8805893Z         "unit": {
2026-06-13T11:54:08.8805987Z           "complete": true,
2026-06-13T11:54:08.8806107Z           "evidence": [
2026-06-13T11:54:08.8806219Z             {
2026-06-13T11:54:08.8806333Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8806420Z               "line": 8090
2026-06-13T11:54:08.8806511Z             }
2026-06-13T11:54:08.8806596Z           ]
2026-06-13T11:54:08.8806686Z         }
2026-06-13T11:54:08.8806773Z       }
2026-06-13T11:54:08.8806858Z     },
2026-06-13T11:54:08.8806948Z     {
2026-06-13T11:54:08.8807035Z       "id": "REQ-UPD-8",
2026-06-13T11:54:08.8809773Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-13T11:54:08.8809887Z       "requiredStages": [
2026-06-13T11:54:08.8809979Z         "impl",
2026-06-13T11:54:08.8810078Z         "unit"
2026-06-13T11:54:08.8810168Z       ],
2026-06-13T11:54:08.8810264Z       "stages": {
2026-06-13T11:54:08.8810355Z         "doc": {
2026-06-13T11:54:08.8810450Z           "complete": false,
2026-06-13T11:54:08.8810551Z           "evidence": []
2026-06-13T11:54:08.8810755Z         },
2026-06-13T11:54:08.8810851Z         "impl": {
2026-06-13T11:54:08.8810952Z           "complete": true,
2026-06-13T11:54:08.8811045Z           "evidence": [
2026-06-13T11:54:08.8811132Z             {
2026-06-13T11:54:08.8811299Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8811398Z               "line": 77
2026-06-13T11:54:08.8811483Z             },
2026-06-13T11:54:08.8811574Z             {
2026-06-13T11:54:08.8811705Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8811795Z               "line": 49
2026-06-13T11:54:08.8811892Z             },
2026-06-13T11:54:08.8811973Z             {
2026-06-13T11:54:08.8812105Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8812197Z               "line": 152
2026-06-13T11:54:08.8812293Z             },
2026-06-13T11:54:08.8812387Z             {
2026-06-13T11:54:08.8812507Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8812612Z               "line": 215
2026-06-13T11:54:08.8812701Z             },
2026-06-13T11:54:08.8812793Z             {
2026-06-13T11:54:08.8812916Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8813011Z               "line": 230
2026-06-13T11:54:08.8813117Z             },
2026-06-13T11:54:08.8813208Z             {
2026-06-13T11:54:08.8813331Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8813423Z               "line": 247
2026-06-13T11:54:08.8813518Z             },
2026-06-13T11:54:08.8813603Z             {
2026-06-13T11:54:08.8813728Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8813824Z               "line": 269
2026-06-13T11:54:08.8813912Z             },
2026-06-13T11:54:08.8814004Z             {
2026-06-13T11:54:08.8814124Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8814222Z               "line": 66
2026-06-13T11:54:08.8814308Z             },
2026-06-13T11:54:08.8814408Z             {
2026-06-13T11:54:08.8814537Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-13T11:54:08.8814627Z               "line": 154
2026-06-13T11:54:08.8814718Z             },
2026-06-13T11:54:08.8814809Z             {
2026-06-13T11:54:08.8814932Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8815028Z               "line": 1884
2026-06-13T11:54:08.8815118Z             },
2026-06-13T11:54:08.8815213Z             {
2026-06-13T11:54:08.8815319Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8815419Z               "line": 1957
2026-06-13T11:54:08.8815505Z             },
2026-06-13T11:54:08.8815595Z             {
2026-06-13T11:54:08.8815706Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8815800Z               "line": 1967
2026-06-13T11:54:08.8815891Z             },
2026-06-13T11:54:08.8815978Z             {
2026-06-13T11:54:08.8816087Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8816186Z               "line": 1974
2026-06-13T11:54:08.8816277Z             },
2026-06-13T11:54:08.8816374Z             {
2026-06-13T11:54:08.8820948Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8821077Z               "line": 2011
2026-06-13T11:54:08.8821163Z             },
2026-06-13T11:54:08.8821397Z             {
2026-06-13T11:54:08.8821526Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8821630Z               "line": 480
2026-06-13T11:54:08.8821712Z             },
2026-06-13T11:54:08.8821788Z             {
2026-06-13T11:54:08.8821911Z               "path": "crates/xtask/src/main.rs",
2026-06-13T11:54:08.8822005Z               "line": 494
2026-06-13T11:54:08.8822096Z             }
2026-06-13T11:54:08.8822181Z           ]
2026-06-13T11:54:08.8822284Z         },
2026-06-13T11:54:08.8822365Z         "int": {
2026-06-13T11:54:08.8822471Z           "complete": false,
2026-06-13T11:54:08.8822571Z           "evidence": []
2026-06-13T11:54:08.8822651Z         },
2026-06-13T11:54:08.8822867Z         "unit": {
2026-06-13T11:54:08.8822966Z           "complete": true,
2026-06-13T11:54:08.8823067Z           "evidence": [
2026-06-13T11:54:08.8823148Z             {
2026-06-13T11:54:08.8823295Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-13T11:54:08.8823391Z               "line": 476
2026-06-13T11:54:08.8823476Z             },
2026-06-13T11:54:08.8823571Z             {
2026-06-13T11:54:08.8823702Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-13T11:54:08.8823801Z               "line": 580
2026-06-13T11:54:08.8823886Z             },
2026-06-13T11:54:08.8823973Z             {
2026-06-13T11:54:08.8824087Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8824178Z               "line": 8092
2026-06-13T11:54:08.8824268Z             },
2026-06-13T11:54:08.8824355Z             {
2026-06-13T11:54:08.8824468Z               "path": "crates/spt/src/cli.rs",
2026-06-13T11:54:08.8824564Z               "line": 8114
2026-06-13T11:54:08.8824660Z             }
2026-06-13T11:54:08.8824750Z           ]
2026-06-13T11:54:08.8824834Z         }
2026-06-13T11:54:08.8824920Z       }
2026-06-13T11:54:08.8825012Z     }
2026-06-13T11:54:08.8825107Z   ],
2026-06-13T11:54:08.8825192Z   "findings": []
2026-06-13T11:54:08.8825283Z }
2026-06-13T11:54:08.8859096Z ##[group]Run ./traceable-reqs lint || true
2026-06-13T11:54:08.8859259Z [36;1m./traceable-reqs lint || true[0m
2026-06-13T11:54:08.8872777Z shell: /usr/bin/bash -e {0}
2026-06-13T11:54:08.8872876Z ##[endgroup]
2026-06-13T11:54:08.9066789Z Requirement quality findings (93); 190 requirements queued for agent review:
2026-06-13T11:54:08.9068004Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9068558Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-13T11:54:08.9069178Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:54:08.9069745Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:54:08.9070308Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-13T11:54:08.9071034Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-13T11:54:08.9071673Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9072074Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-13T11:54:08.9072477Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-13T11:54:08.9073035Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9073533Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-13T11:54:08.9074124Z   [must] requirement_quality REQ-DAEMON-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9074487Z   [must] requirement_quality REQ-DAEMON-6 criterion=length — title is 84 words; want 3..=25
2026-06-13T11:54:08.9075020Z   [must] requirement_quality REQ-DAEMON-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9075387Z   [must] requirement_quality REQ-DAEMON-7 criterion=length — title is 62 words; want 3..=25
2026-06-13T11:54:08.9075742Z   [must] requirement_quality REQ-DAEMON-8 criterion=length — title is 44 words; want 3..=25
2026-06-13T11:54:08.9076224Z   [must] requirement_quality REQ-DAEMON-9 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9076567Z   [must] requirement_quality REQ-DAEMON-9 criterion=length — title is 114 words; want 3..=25
2026-06-13T11:54:08.9077049Z   [must] requirement_quality REQ-EP-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9077702Z   [must] requirement_quality REQ-EP-6 criterion=length — title is 58 words; want 3..=25
2026-06-13T11:54:08.9078047Z   [must] requirement_quality REQ-EP-7 criterion=length — title is 68 words; want 3..=25
2026-06-13T11:54:08.9078644Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9079199Z   [must] requirement_quality REQ-HAZARD-BRAIN-RESPAWN-PATH criterion=length — title is 119 words; want 3..=25
2026-06-13T11:54:08.9079923Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9080410Z   [must] requirement_quality REQ-HAZARD-BROKER-PROCESS-ISOLATION criterion=length — title is 114 words; want 3..=25
2026-06-13T11:54:08.9080873Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-13T11:54:08.9081361Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-13T11:54:08.9082046Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-13T11:54:08.9082666Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9083109Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-13T11:54:08.9083552Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9083904Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-CR-LINESAFE criterion=length — title is 73 words; want 3..=25
2026-06-13T11:54:08.9084360Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9084684Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-13T11:54:08.9085129Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9085463Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-13T11:54:08.9085807Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-13T11:54:08.9086148Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-13T11:54:08.9086579Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9087042Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9087395Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-13T11:54:08.9087834Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9088167Z   [must] requirement_quality REQ-HAZARD-PUMP-IPC-DEADLINE criterion=length — title is 38 words; want 3..=25
2026-06-13T11:54:08.9088597Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9089044Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-13T11:54:08.9089782Z   [must] requirement_quality REQ-HAZARD-ROLLBACK-STATE-COMPAT criterion=length — title is 72 words; want 3..=25
2026-06-13T11:54:08.9090275Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-13T11:54:08.9090594Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-13T11:54:08.9090861Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-13T11:54:08.9091145Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-13T11:54:08.9091524Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9091786Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T11:54:08.9092159Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9092425Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-13T11:54:08.9092683Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-13T11:54:08.9093194Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9093475Z   [must] requirement_quality REQ-MANIFEST-3 criterion=length — title is 26 words; want 3..=25
2026-06-13T11:54:08.9093742Z   [must] requirement_quality REQ-MANIFEST-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T11:54:08.9094007Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-13T11:54:08.9094362Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9094624Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-13T11:54:08.9094987Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9095240Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-13T11:54:08.9095607Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9095860Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-13T11:54:08.9096232Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9096498Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-13T11:54:08.9096881Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9097153Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-13T11:54:08.9097544Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9097820Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-13T11:54:08.9098112Z   [must] requirement_quality REQ-MSG-5 criterion=length — title is 38 words; want 3..=25
2026-06-13T11:54:08.9098364Z   [must] requirement_quality REQ-MSG-6 criterion=length — title is 65 words; want 3..=25
2026-06-13T11:54:08.9098727Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9099046Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-13T11:54:08.9099422Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9099684Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-13T11:54:08.9100080Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-13T11:54:08.9100356Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-13T11:54:08.9100614Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-13T11:54:08.9100882Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-13T11:54:08.9101150Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-13T11:54:08.9101521Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9101786Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-13T11:54:08.9102147Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9102414Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-13T11:54:08.9102776Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-13T11:54:08.9103148Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9103406Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-13T11:54:08.9103758Z   [must] requirement_quality REQ-UPD-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9104017Z   [must] requirement_quality REQ-UPD-7 criterion=length — title is 88 words; want 3..=25
2026-06-13T11:54:08.9104369Z   [must] requirement_quality REQ-UPD-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-13T11:54:08.9104629Z   [must] requirement_quality REQ-UPD-8 criterion=length — title is 115 words; want 3..=25
2026-06-13T11:54:08.9104668Z 
2026-06-13T11:54:08.9104780Z # Requirement quality review
2026-06-13T11:54:08.9104818Z 
2026-06-13T11:54:08.9105033Z You are reviewing 190 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-13T11:54:08.9105233Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-13T11:54:08.9105429Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-13T11:54:08.9105581Z this command's output. Your task is the rubric items below.
2026-06-13T11:54:08.9105615Z 
2026-06-13T11:54:08.9105710Z ## Rubric
2026-06-13T11:54:08.9105748Z 
2026-06-13T11:54:08.9106024Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-13T11:54:08.9106264Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-13T11:54:08.9106501Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-13T11:54:08.9106664Z - **active-voice** — clear subject and active verb.
2026-06-13T11:54:08.9106696Z 
2026-06-13T11:54:08.9106931Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-13T11:54:08.9107039Z clear concerns.
2026-06-13T11:54:08.9107072Z 
2026-06-13T11:54:08.9107162Z ## Requirements
2026-06-13T11:54:08.9107196Z 
2026-06-13T11:54:08.9107296Z ### REQ-ARCH-1
2026-06-13T11:54:08.9107422Z - Title: Many small acyclically-layered crates
2026-06-13T11:54:08.9107528Z - Required stages: impl
2026-06-13T11:54:08.9107561Z 
2026-06-13T11:54:08.9107657Z ### REQ-ARCH-2
2026-06-13T11:54:08.9107809Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-13T11:54:08.9107915Z - Required stages: impl
2026-06-13T11:54:08.9107947Z 
2026-06-13T11:54:08.9108033Z ### REQ-ARCH-3
2026-06-13T11:54:08.9108224Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-13T11:54:08.9108434Z - Required stages: impl, unit
2026-06-13T11:54:08.9108458Z 
2026-06-13T11:54:08.9108549Z ### REQ-ARCH-4
2026-06-13T11:54:08.9108719Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-13T11:54:08.9108821Z - Required stages: impl, unit
2026-06-13T11:54:08.9108864Z 
2026-06-13T11:54:08.9109068Z ### REQ-DAEMON-1
2026-06-13T11:54:08.9109277Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-13T11:54:08.9109388Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9109422Z 
2026-06-13T11:54:08.9109522Z ### REQ-DAEMON-2
2026-06-13T11:54:08.9109649Z - Title: Broker/brain split for seamless self-update
2026-06-13T11:54:08.9109756Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9109794Z 
2026-06-13T11:54:08.9109879Z ### REQ-DAEMON-3
2026-06-13T11:54:08.9110029Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-13T11:54:08.9110136Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9110169Z 
2026-06-13T11:54:08.9110273Z ### REQ-DAEMON-4
2026-06-13T11:54:08.9110398Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-13T11:54:08.9110507Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9110541Z 
2026-06-13T11:54:08.9110640Z ### REQ-STORE-1
2026-06-13T11:54:08.9111729Z - 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-13T11:54:08.9111837Z - Required stages: impl, unit
2026-06-13T11:54:08.9111866Z 
2026-06-13T11:54:08.9111971Z ### REQ-MANIFEST-1
2026-06-13T11:54:08.9112151Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-13T11:54:08.9112265Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9112294Z 
2026-06-13T11:54:08.9112403Z ### REQ-MANIFEST-2
2026-06-13T11:54:08.9112901Z - Title: Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors
2026-06-13T11:54:08.9113022Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9113055Z 
2026-06-13T11:54:08.9113145Z ### REQ-MANIFEST-3
2026-06-13T11:54:08.9113765Z - Title: Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)
2026-06-13T11:54:08.9113884Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9113908Z 
2026-06-13T11:54:08.9114003Z ### REQ-MANIFEST-4
2026-06-13T11:54:08.9114694Z - Title: Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace
2026-06-13T11:54:08.9114800Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9114834Z 
2026-06-13T11:54:08.9114934Z ### REQ-SEAM-SPAWN
2026-06-13T11:54:08.9115038Z - Title: spawn-session seam
2026-06-13T11:54:08.9115137Z - Required stages: impl, unit
2026-06-13T11:54:08.9115171Z 
2026-06-13T11:54:08.9115266Z ### REQ-SEAM-POSTSPAWN
2026-06-13T11:54:08.9115397Z - Title: post-spawn / api bind seam with boot nonce
2026-06-13T11:54:08.9115502Z - Required stages: impl, unit
2026-06-13T11:54:08.9115536Z 
2026-06-13T11:54:08.9115636Z ### REQ-SEAM-PSYCHE
2026-06-13T11:54:08.9115773Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-13T11:54:08.9115884Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9115918Z 
2026-06-13T11:54:08.9116017Z ### REQ-SEAM-HISTORY
2026-06-13T11:54:08.9116194Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-13T11:54:08.9116304Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9116336Z 
2026-06-13T11:54:08.9116432Z ### REQ-SEAM-ACTIVITY
2026-06-13T11:54:08.9116618Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-13T11:54:08.9116833Z - Required stages: impl, unit
2026-06-13T11:54:08.9116866Z 
2026-06-13T11:54:08.9116970Z ### REQ-SEAM-INJECT
2026-06-13T11:54:08.9117134Z - Title: inject-input methods configurable per activity-state
2026-06-13T11:54:08.9117233Z - Required stages: impl, unit
2026-06-13T11:54:08.9117276Z 
2026-06-13T11:54:08.9117376Z ### REQ-SEAM-RESUME
2026-06-13T11:54:08.9117553Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-13T11:54:08.9117666Z - Required stages: impl, unit
2026-06-13T11:54:08.9117699Z 
2026-06-13T11:54:08.9117804Z ### REQ-SEAM-CAPABILITY
2026-06-13T11:54:08.9117945Z - Title: Hostable endpoint-types capability declaration
2026-06-13T11:54:08.9118054Z - Required stages: impl, unit
2026-06-13T11:54:08.9118083Z 
2026-06-13T11:54:08.9118179Z ### REQ-SEAM-UPDATE
2026-06-13T11:54:08.9118340Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-13T11:54:08.9118546Z - Required stages: impl, unit
2026-06-13T11:54:08.9118574Z 
2026-06-13T11:54:08.9118674Z ### REQ-API-1
2026-06-13T11:54:08.9118837Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-13T11:54:08.9118945Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9119047Z 
2026-06-13T11:54:08.9119156Z ### REQ-API-2
2026-06-13T11:54:08.9119471Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-13T11:54:08.9119575Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9119609Z 
2026-06-13T11:54:08.9119705Z ### REQ-API-3
2026-06-13T11:54:08.9119837Z - Title: commune/signoff are file-drops, not commands
2026-06-13T11:54:08.9119948Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9119977Z 
2026-06-13T11:54:08.9120082Z ### REQ-START-1
2026-06-13T11:54:08.9120263Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-13T11:54:08.9120373Z - Required stages: impl, unit
2026-06-13T11:54:08.9120406Z 
2026-06-13T11:54:08.9120495Z ### REQ-START-2
2026-06-13T11:54:08.9120633Z - Title: Harness-hosted startup: api seed then listen
2026-06-13T11:54:08.9120749Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9120786Z 
2026-06-13T11:54:08.9120881Z ### REQ-START-3
2026-06-13T11:54:08.9121044Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-13T11:54:08.9121157Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9121186Z 
2026-06-13T11:54:08.9121287Z ### REQ-START-4
2026-06-13T11:54:08.9121416Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-13T11:54:08.9121524Z - Required stages: impl, unit
2026-06-13T11:54:08.9121553Z 
2026-06-13T11:54:08.9121659Z ### REQ-EP-1
2026-06-13T11:54:08.9121787Z - Title: Day-one endpoint types; open type system
2026-06-13T11:54:08.9121892Z - Required stages: impl, unit
2026-06-13T11:54:08.9121926Z 
2026-06-13T11:54:08.9122012Z ### REQ-EP-2
2026-06-13T11:54:08.9122173Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-13T11:54:08.9122284Z - Required stages: impl, unit
2026-06-13T11:54:08.9122317Z 
2026-06-13T11:54:08.9122411Z ### REQ-EP-3
2026-06-13T11:54:08.9122594Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-13T11:54:08.9122693Z - Required stages: impl, unit
2026-06-13T11:54:08.9122726Z 
2026-06-13T11:54:08.9122825Z ### REQ-EP-4
2026-06-13T11:54:08.9122982Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-13T11:54:08.9123085Z - Required stages: impl, unit
2026-06-13T11:54:08.9123114Z 
2026-06-13T11:54:08.9123209Z ### REQ-EP-5
2026-06-13T11:54:08.9123839Z - 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-13T11:54:08.9123953Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9123983Z 
2026-06-13T11:54:08.9124082Z ### REQ-EP-6
2026-06-13T11:54:08.9125560Z - Title: Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6
2026-06-13T11:54:08.9125783Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9125817Z 
2026-06-13T11:54:08.9125914Z ### REQ-EP-7
2026-06-13T11:54:08.9127593Z - Title: Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)
2026-06-13T11:54:08.9127709Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9127741Z 
2026-06-13T11:54:08.9127836Z ### REQ-INST-1
2026-06-13T11:54:08.9128070Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-13T11:54:08.9128179Z - Required stages: 
2026-06-13T11:54:08.9128207Z 
2026-06-13T11:54:08.9128302Z ### REQ-INST-2
2026-06-13T11:54:08.9128425Z - Title: Per-node files, synced Psyche mind
2026-06-13T11:54:08.9128533Z - Required stages: impl, unit
2026-06-13T11:54:08.9128566Z 
2026-06-13T11:54:08.9128658Z ### REQ-INST-3
2026-06-13T11:54:08.9128805Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-13T11:54:08.9128915Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9129040Z 
2026-06-13T11:54:08.9129139Z ### REQ-INST-4
2026-06-13T11:54:08.9129307Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-13T11:54:08.9129416Z - Required stages: impl, unit
2026-06-13T11:54:08.9129459Z 
2026-06-13T11:54:08.9129559Z ### REQ-INST-5
2026-06-13T11:54:08.9129716Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-13T11:54:08.9129821Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9129854Z 
2026-06-13T11:54:08.9129951Z ### REQ-INST-6
2026-06-13T11:54:08.9130121Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-13T11:54:08.9130227Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9130256Z 
2026-06-13T11:54:08.9130345Z ### REQ-INST-7
2026-06-13T11:54:08.9130469Z - Title: Subnet registry + bare-id resolution policy
2026-06-13T11:54:08.9130566Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9130599Z 
2026-06-13T11:54:08.9130698Z ### REQ-INST-8
2026-06-13T11:54:08.9130838Z - Title: Remote-control mode distinct from local operation
2026-06-13T11:54:08.9130938Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9130971Z 
2026-06-13T11:54:08.9131069Z ### REQ-INST-9
2026-06-13T11:54:08.9131241Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-13T11:54:08.9131351Z - Required stages: impl, unit
2026-06-13T11:54:08.9131389Z 
2026-06-13T11:54:08.9131484Z ### REQ-INST-10
2026-06-13T11:54:08.9131675Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-13T11:54:08.9131784Z - Required stages: impl, unit
2026-06-13T11:54:08.9131813Z 
2026-06-13T11:54:08.9131905Z ### REQ-INST-11
2026-06-13T11:54:08.9132114Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-13T11:54:08.9132224Z - Required stages: impl, unit
2026-06-13T11:54:08.9132252Z 
2026-06-13T11:54:08.9132338Z ### REQ-INST-12
2026-06-13T11:54:08.9132614Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-13T11:54:08.9132714Z - Required stages: impl, unit
2026-06-13T11:54:08.9132748Z 
2026-06-13T11:54:08.9132844Z ### REQ-INST-13
2026-06-13T11:54:08.9133010Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-13T11:54:08.9133234Z - Required stages: impl, unit
2026-06-13T11:54:08.9133267Z 
2026-06-13T11:54:08.9133357Z ### REQ-INST-14
2026-06-13T11:54:08.9133721Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-13T11:54:08.9133827Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9133861Z 
2026-06-13T11:54:08.9133955Z ### REQ-INST-15
2026-06-13T11:54:08.9134632Z - 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-13T11:54:08.9134743Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9134772Z 
2026-06-13T11:54:08.9134857Z ### REQ-REACH-1
2026-06-13T11:54:08.9134999Z - Title: Off-node remote-drive detection + file transfer
2026-06-13T11:54:08.9135110Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9135143Z 
2026-06-13T11:54:08.9135238Z ### REQ-REACH-2
2026-06-13T11:54:08.9135392Z - Title: Remote command execution (deferred, consent-gated)
2026-06-13T11:54:08.9135476Z - Required stages: 
2026-06-13T11:54:08.9135509Z 
2026-06-13T11:54:08.9135712Z ### REQ-MSG-1
2026-06-13T11:54:08.9136148Z - 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-13T11:54:08.9136252Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9136281Z 
2026-06-13T11:54:08.9136377Z ### REQ-MSG-2
2026-06-13T11:54:08.9136637Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-13T11:54:08.9136728Z - Required stages: impl, unit
2026-06-13T11:54:08.9136762Z 
2026-06-13T11:54:08.9136856Z ### REQ-MSG-3
2026-06-13T11:54:08.9137213Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-13T11:54:08.9137329Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9137352Z 
2026-06-13T11:54:08.9137438Z ### REQ-MSG-4
2026-06-13T11:54:08.9138245Z - Title: Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type="msg" from=…> otherwise, chunk oversized lines into EVENT-PART
2026-06-13T11:54:08.9138353Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9138386Z 
2026-06-13T11:54:08.9138477Z ### REQ-MSG-5
2026-06-13T11:54:08.9139280Z - Title: user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)
2026-06-13T11:54:08.9139399Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9139437Z 
2026-06-13T11:54:08.9139523Z ### REQ-MSG-6
2026-06-13T11:54:08.9141063Z - Title: cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)
2026-06-13T11:54:08.9141174Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9141206Z 
2026-06-13T11:54:08.9141296Z ### REQ-NODE-IDENTITY
2026-06-13T11:54:08.9141517Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-13T11:54:08.9141620Z - Required stages: impl, unit
2026-06-13T11:54:08.9141653Z 
2026-06-13T11:54:08.9141874Z ### REQ-NET-1
2026-06-13T11:54:08.9142054Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-13T11:54:08.9142155Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9142188Z 
2026-06-13T11:54:08.9142283Z ### REQ-NET-2
2026-06-13T11:54:08.9142445Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-13T11:54:08.9142550Z - Required stages: impl
2026-06-13T11:54:08.9142583Z 
2026-06-13T11:54:08.9142679Z ### REQ-NET-3
2026-06-13T11:54:08.9142836Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-13T11:54:08.9142940Z - Required stages: impl, unit
2026-06-13T11:54:08.9142974Z 
2026-06-13T11:54:08.9143056Z ### REQ-PAIR-1
2026-06-13T11:54:08.9143174Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-13T11:54:08.9143279Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9143323Z 
2026-06-13T11:54:08.9143418Z ### REQ-PAIR-2
2026-06-13T11:54:08.9143556Z - Title: Local trust store with TOFU + warn-on-change
2026-06-13T11:54:08.9143656Z - Required stages: 
2026-06-13T11:54:08.9143695Z 
2026-06-13T11:54:08.9143799Z ### REQ-PAIR-3
2026-06-13T11:54:08.9143941Z - Title: Fetch current pairing code from any paired node
2026-06-13T11:54:08.9144046Z - Required stages: impl, unit
2026-06-13T11:54:08.9144074Z 
2026-06-13T11:54:08.9144281Z ### REQ-PAIR-4
2026-06-13T11:54:08.9144378Z - Title: Subnet naming on first pairing
2026-06-13T11:54:08.9144483Z - Required stages: impl, unit
2026-06-13T11:54:08.9144515Z 
2026-06-13T11:54:08.9144606Z ### REQ-PAIR-5
2026-06-13T11:54:08.9144901Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-13T11:54:08.9145008Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9145041Z 
2026-06-13T11:54:08.9145131Z ### REQ-PAIR-6
2026-06-13T11:54:08.9145379Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-13T11:54:08.9145474Z - Required stages: impl, unit
2026-06-13T11:54:08.9145502Z 
2026-06-13T11:54:08.9145599Z ### REQ-PAIR-7
2026-06-13T11:54:08.9145756Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-13T11:54:08.9145841Z - Required stages: 
2026-06-13T11:54:08.9145875Z 
2026-06-13T11:54:08.9145976Z ### REQ-SUBNET-1
2026-06-13T11:54:08.9146281Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-13T11:54:08.9146389Z - Required stages: impl, unit
2026-06-13T11:54:08.9146418Z 
2026-06-13T11:54:08.9146519Z ### REQ-SUBNET-2
2026-06-13T11:54:08.9146732Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-13T11:54:08.9146841Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9146875Z 
2026-06-13T11:54:08.9146974Z ### REQ-SUBNET-3
2026-06-13T11:54:08.9147235Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-13T11:54:08.9147350Z - Required stages: impl, unit
2026-06-13T11:54:08.9147378Z 
2026-06-13T11:54:08.9147477Z ### REQ-SUBNET-4
2026-06-13T11:54:08.9147754Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-13T11:54:08.9147860Z - Required stages: impl, unit
2026-06-13T11:54:08.9147894Z 
2026-06-13T11:54:08.9147994Z ### REQ-DOCS-6
2026-06-13T11:54:08.9148303Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-13T11:54:08.9148408Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9148441Z 
2026-06-13T11:54:08.9148533Z ### REQ-SEC-1
2026-06-13T11:54:08.9148895Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-13T11:54:08.9149101Z - Required stages: impl, unit
2026-06-13T11:54:08.9149129Z 
2026-06-13T11:54:08.9149224Z ### REQ-NOTIF-1
2026-06-13T11:54:08.9149564Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-13T11:54:08.9149792Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9149826Z 
2026-06-13T11:54:08.9149916Z ### REQ-NOTIF-2
2026-06-13T11:54:08.9150174Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-13T11:54:08.9150288Z - Required stages: doc, impl, unit, int
2026-06-13T11:54:08.9150321Z 
2026-06-13T11:54:08.9150403Z ### REQ-UPD-1
2026-06-13T11:54:08.9150522Z - Title: Peer-propagated update over P2P
2026-06-13T11:54:08.9150621Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9150645Z 
2026-06-13T11:54:08.9150737Z ### REQ-UPD-2
2026-06-13T11:54:08.9150879Z - Title: All binaries signature-verified before handoff
2026-06-13T11:54:08.9150979Z - Required stages: impl, unit
2026-06-13T11:54:08.9151013Z 
2026-06-13T11:54:08.9151113Z ### REQ-UPD-3
2026-06-13T11:54:08.9151275Z - Title: No endpoint process terminates/suspends during self-update
2026-06-13T11:54:08.9151410Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9151461Z 
2026-06-13T11:54:08.9151556Z ### REQ-UPD-4
2026-06-13T11:54:08.9151734Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-13T11:54:08.9151832Z - Required stages: impl, unit
2026-06-13T11:54:08.9151857Z 
2026-06-13T11:54:08.9152040Z ### REQ-UPD-5
2026-06-13T11:54:08.9152180Z - Title: spt-core ripple-updates registered adapters
2026-06-13T11:54:08.9152285Z - Required stages: impl, unit
2026-06-13T11:54:08.9152318Z 
2026-06-13T11:54:08.9152415Z ### REQ-UPD-6
2026-06-13T11:54:08.9153214Z - Title: Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)
2026-06-13T11:54:08.9153320Z - Required stages: doc, impl, unit, int
2026-06-13T11:54:08.9153353Z 
2026-06-13T11:54:08.9153449Z ### REQ-UPD-7
2026-06-13T11:54:08.9155515Z - Title: Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.
2026-06-13T11:54:08.9155620Z - Required stages: impl, unit
2026-06-13T11:54:08.9155653Z 
2026-06-13T11:54:08.9155752Z ### REQ-UPD-8
2026-06-13T11:54:08.9158253Z - Title: Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.
2026-06-13T11:54:08.9158377Z - Required stages: impl, unit
2026-06-13T11:54:08.9158406Z 
2026-06-13T11:54:08.9158501Z ### REQ-TERM-1
2026-06-13T11:54:08.9158682Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-13T11:54:08.9158783Z - Required stages: impl, unit
2026-06-13T11:54:08.9158816Z 
2026-06-13T11:54:08.9159098Z ### REQ-TERM-2
2026-06-13T11:54:08.9159278Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-13T11:54:08.9159384Z - Required stages: impl, unit
2026-06-13T11:54:08.9159413Z 
2026-06-13T11:54:08.9159516Z ### REQ-TERM-3
2026-06-13T11:54:08.9159656Z - Title: Byte-stream remote terminal streaming for v1
2026-06-13T11:54:08.9159770Z - Required stages: impl, unit
2026-06-13T11:54:08.9159798Z 
2026-06-13T11:54:08.9159902Z ### REQ-TERM-4
2026-06-13T11:54:08.9160242Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-13T11:54:08.9160357Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9160386Z 
2026-06-13T11:54:08.9160481Z ### REQ-FRONT-1
2026-06-13T11:54:08.9160658Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-13T11:54:08.9160753Z - Required stages: 
2026-06-13T11:54:08.9160791Z 
2026-06-13T11:54:08.9160886Z ### REQ-INSTALL-1
2026-06-13T11:54:08.9161087Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-13T11:54:08.9161186Z - Required stages: doc, impl, int
2026-06-13T11:54:08.9161220Z 
2026-06-13T11:54:08.9161316Z ### REQ-INSTALL-2
2026-06-13T11:54:08.9161558Z - Title: Marketplace-repackaging-friendly install
2026-06-13T11:54:08.9161665Z - Required stages: doc
2026-06-13T11:54:08.9161697Z 
2026-06-13T11:54:08.9161797Z ### REQ-INSTALL-3
2026-06-13T11:54:08.9161927Z - Title: Idempotent + interactive-optional first run
2026-06-13T11:54:08.9162040Z - Required stages: impl, int
2026-06-13T11:54:08.9162068Z 
2026-06-13T11:54:08.9162160Z ### REQ-INSTALL-4
2026-06-13T11:54:08.9162774Z - 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-13T11:54:08.9162878Z - Required stages: impl, unit
2026-06-13T11:54:08.9162912Z 
2026-06-13T11:54:08.9163008Z ### REQ-MIGRATE-1
2026-06-13T11:54:08.9163174Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-13T11:54:08.9163270Z - Required stages: 
2026-06-13T11:54:08.9163298Z 
2026-06-13T11:54:08.9163398Z ### REQ-INFRA-1
2026-06-13T11:54:08.9163580Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-13T11:54:08.9163675Z - Required stages: 
2026-06-13T11:54:08.9163703Z 
2026-06-13T11:54:08.9163809Z ### REQ-INSTALL-5
2026-06-13T11:54:08.9164266Z - Title: Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration
2026-06-13T11:54:08.9164371Z - Required stages: impl, int
2026-06-13T11:54:08.9164400Z 
2026-06-13T11:54:08.9164501Z ### REQ-REL-1
2026-06-13T11:54:08.9164858Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-13T11:54:08.9164967Z - Required stages: doc, impl
2026-06-13T11:54:08.9164990Z 
2026-06-13T11:54:08.9165075Z ### REQ-REL-2
2026-06-13T11:54:08.9165527Z - Title: Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline
2026-06-13T11:54:08.9165631Z - Required stages: impl, int
2026-06-13T11:54:08.9165664Z 
2026-06-13T11:54:08.9165741Z ### REQ-REL-3
2026-06-13T11:54:08.9166161Z - Title: Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)
2026-06-13T11:54:08.9166270Z - Required stages: impl, unit
2026-06-13T11:54:08.9166299Z 
2026-06-13T11:54:08.9166390Z ### REQ-DOCS-1
2026-06-13T11:54:08.9166585Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-13T11:54:08.9166690Z - Required stages: doc, impl
2026-06-13T11:54:08.9166719Z 
2026-06-13T11:54:08.9166818Z ### REQ-DOCS-2
2026-06-13T11:54:08.9167096Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-13T11:54:08.9167195Z - Required stages: doc, int
2026-06-13T11:54:08.9167229Z 
2026-06-13T11:54:08.9167329Z ### REQ-DOCS-3
2026-06-13T11:54:08.9167514Z - Title: Diátaxis structure; one canonical way to do X
2026-06-13T11:54:08.9167625Z - Required stages: doc
2026-06-13T11:54:08.9167654Z 
2026-06-13T11:54:08.9167745Z ### REQ-DOCS-4
2026-06-13T11:54:08.9167942Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-13T11:54:08.9168057Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9168090Z 
2026-06-13T11:54:08.9168174Z ### REQ-DOCS-5
2026-06-13T11:54:08.9168365Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-13T11:54:08.9168465Z - Required stages: impl, int
2026-06-13T11:54:08.9168499Z 
2026-06-13T11:54:08.9168617Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-13T11:54:08.9168808Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-13T11:54:08.9168918Z - Required stages: impl, unit
2026-06-13T11:54:08.9169047Z 
2026-06-13T11:54:08.9169161Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-13T11:54:08.9169305Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-13T11:54:08.9169409Z - Required stages: impl, unit
2026-06-13T11:54:08.9169566Z 
2026-06-13T11:54:08.9169682Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-13T11:54:08.9169814Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-13T11:54:08.9169925Z - Required stages: impl, unit
2026-06-13T11:54:08.9169953Z 
2026-06-13T11:54:08.9170057Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-13T11:54:08.9170231Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-13T11:54:08.9170330Z - Required stages: impl, unit
2026-06-13T11:54:08.9170363Z 
2026-06-13T11:54:08.9170467Z ### REQ-HAZARD-WORKER-PATH
2026-06-13T11:54:08.9170643Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-13T11:54:08.9170741Z - Required stages: impl, unit
2026-06-13T11:54:08.9170774Z 
2026-06-13T11:54:08.9170893Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-13T11:54:08.9171069Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-13T11:54:08.9171160Z - Required stages: 
2026-06-13T11:54:08.9171194Z 
2026-06-13T11:54:08.9171308Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-13T11:54:08.9171436Z - Title: Stdin session_id precedence over env (2.2)
2026-06-13T11:54:08.9171543Z - Required stages: 
2026-06-13T11:54:08.9171576Z 
2026-06-13T11:54:08.9171685Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-13T11:54:08.9171838Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-13T11:54:08.9171952Z - Required stages: impl, unit
2026-06-13T11:54:08.9171980Z 
2026-06-13T11:54:08.9172085Z ### REQ-HAZARD-GEN-START-NOW
2026-06-13T11:54:08.9182540Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-13T11:54:08.9182693Z - Required stages: impl, int
2026-06-13T11:54:08.9182728Z 
2026-06-13T11:54:08.9182850Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-13T11:54:08.9183061Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-13T11:54:08.9183170Z - Required stages: impl, unit
2026-06-13T11:54:08.9183198Z 
2026-06-13T11:54:08.9183328Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-13T11:54:08.9183503Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-13T11:54:08.9183619Z - Required stages: impl, unit
2026-06-13T11:54:08.9183648Z 
2026-06-13T11:54:08.9183767Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-13T11:54:08.9183950Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-13T11:54:08.9184062Z - Required stages: impl, unit
2026-06-13T11:54:08.9184090Z 
2026-06-13T11:54:08.9184208Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-13T11:54:08.9184372Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-13T11:54:08.9184481Z - Required stages: impl, unit
2026-06-13T11:54:08.9184513Z 
2026-06-13T11:54:08.9184624Z ### REQ-HAZARD-ENVELOPE-CR-LINESAFE
2026-06-13T11:54:08.9186652Z - Title: Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\n`→`<br>`) BEFORE framing, so a body carrying `\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).
2026-06-13T11:54:08.9186765Z - Required stages: impl, unit
2026-06-13T11:54:08.9186799Z 
2026-06-13T11:54:08.9186914Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-13T11:54:08.9187094Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-13T11:54:08.9187200Z - Required stages: impl, unit
2026-06-13T11:54:08.9187229Z 
2026-06-13T11:54:08.9187348Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-13T11:54:08.9187563Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-13T11:54:08.9187667Z - Required stages: impl, unit
2026-06-13T11:54:08.9187700Z 
2026-06-13T11:54:08.9187805Z ### REQ-HAZARD-ID-CHARSET
2026-06-13T11:54:08.9188144Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-13T11:54:08.9188253Z - Required stages: impl, unit
2026-06-13T11:54:08.9188287Z 
2026-06-13T11:54:08.9188401Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-13T11:54:08.9188578Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-13T11:54:08.9188687Z - Required stages: impl, unit
2026-06-13T11:54:08.9188716Z 
2026-06-13T11:54:08.9188818Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-13T11:54:08.9189173Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-13T11:54:08.9189275Z - Required stages: impl, unit
2026-06-13T11:54:08.9189309Z 
2026-06-13T11:54:08.9189414Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-13T11:54:08.9189796Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-13T11:54:08.9189900Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9189933Z 
2026-06-13T11:54:08.9190053Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-13T11:54:08.9190477Z - 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-13T11:54:08.9190582Z - Required stages: impl, unit
2026-06-13T11:54:08.9190615Z 
2026-06-13T11:54:08.9190726Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-13T11:54:08.9190834Z - Title: Deferred rows survive poll drain (4.4)
2026-06-13T11:54:08.9190944Z - Required stages: impl, unit
2026-06-13T11:54:08.9190977Z 
2026-06-13T11:54:08.9191088Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-13T11:54:08.9191211Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-13T11:54:08.9191322Z - Required stages: impl, unit
2026-06-13T11:54:08.9191355Z 
2026-06-13T11:54:08.9191464Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-13T11:54:08.9191620Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-13T11:54:08.9191725Z - Required stages: impl, unit
2026-06-13T11:54:08.9191753Z 
2026-06-13T11:54:08.9191861Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-13T11:54:08.9192028Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-13T11:54:08.9192129Z - Required stages: impl, unit
2026-06-13T11:54:08.9192157Z 
2026-06-13T11:54:08.9192271Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-13T11:54:08.9192415Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-13T11:54:08.9192514Z - Required stages: impl, unit
2026-06-13T11:54:08.9192547Z 
2026-06-13T11:54:08.9192654Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-13T11:54:08.9192796Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-13T11:54:08.9192900Z - Required stages: impl, unit
2026-06-13T11:54:08.9192934Z 
2026-06-13T11:54:08.9193186Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-13T11:54:08.9193363Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-13T11:54:08.9193468Z - Required stages: impl, unit
2026-06-13T11:54:08.9193501Z 
2026-06-13T11:54:08.9193603Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-13T11:54:08.9193797Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-13T11:54:08.9193903Z - Required stages: impl, unit
2026-06-13T11:54:08.9193932Z 
2026-06-13T11:54:08.9194035Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-13T11:54:08.9194203Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-13T11:54:08.9194304Z - Required stages: impl, unit
2026-06-13T11:54:08.9194336Z 
2026-06-13T11:54:08.9194459Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-13T11:54:08.9194597Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-13T11:54:08.9194698Z - Required stages: impl, unit
2026-06-13T11:54:08.9194731Z 
2026-06-13T11:54:08.9194854Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-13T11:54:08.9195069Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-13T11:54:08.9195174Z - Required stages: impl, unit
2026-06-13T11:54:08.9195208Z 
2026-06-13T11:54:08.9195317Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-13T11:54:08.9195956Z - 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-13T11:54:08.9196070Z - Required stages: impl, unit
2026-06-13T11:54:08.9196099Z 
2026-06-13T11:54:08.9196205Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-13T11:54:08.9197274Z - 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-13T11:54:08.9197392Z - Required stages: impl, unit
2026-06-13T11:54:08.9197426Z 
2026-06-13T11:54:08.9197527Z ### REQ-HAZARD-CONPTY-DSR
2026-06-13T11:54:08.9197741Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-13T11:54:08.9197846Z - Required stages: impl, unit
2026-06-13T11:54:08.9197884Z 
2026-06-13T11:54:08.9197993Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-13T11:54:08.9198409Z - Title: Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)
2026-06-13T11:54:08.9198513Z - Required stages: impl, unit
2026-06-13T11:54:08.9198547Z 
2026-06-13T11:54:08.9198656Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-13T11:54:08.9199320Z - Title: Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)
2026-06-13T11:54:08.9199434Z - Required stages: impl, unit
2026-06-13T11:54:08.9199467Z 
2026-06-13T11:54:08.9199585Z ### REQ-HAZARD-PUMP-IPC-DEADLINE
2026-06-13T11:54:08.9200394Z - Title: The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump
2026-06-13T11:54:08.9200512Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9200546Z 
2026-06-13T11:54:08.9200657Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-13T11:54:08.9201523Z - Title: Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)
2026-06-13T11:54:08.9201644Z - Required stages: impl, unit
2026-06-13T11:54:08.9201819Z 
2026-06-13T11:54:08.9201949Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-13T11:54:08.9202161Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-13T11:54:08.9202285Z - Required stages: impl, unit
2026-06-13T11:54:08.9202313Z 
2026-06-13T11:54:08.9202445Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-13T11:54:08.9202712Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-13T11:54:08.9202826Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9202855Z 
2026-06-13T11:54:08.9202970Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-13T11:54:08.9203237Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-13T11:54:08.9203337Z - Required stages: impl, unit
2026-06-13T11:54:08.9203366Z 
2026-06-13T11:54:08.9203509Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-13T11:54:08.9203938Z - 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-13T11:54:08.9204066Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9204095Z 
2026-06-13T11:54:08.9204234Z ### REQ-HAZARD-BROKER-PROCESS-ISOLATION
2026-06-13T11:54:08.9206959Z - Title: Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).
2026-06-13T11:54:08.9207080Z - Required stages: doc, impl, unit, int
2026-06-13T11:54:08.9207118Z 
2026-06-13T11:54:08.9207235Z ### REQ-HAZARD-ROLLBACK-STATE-COMPAT
2026-06-13T11:54:08.9208887Z - Title: A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.
2026-06-13T11:54:08.9209126Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9209159Z 
2026-06-13T11:54:08.9209275Z ### REQ-HAZARD-BRAIN-RESPAWN-PATH
2026-06-13T11:54:08.9211683Z - Title: The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.
2026-06-13T11:54:08.9211792Z - Required stages: doc, impl, unit, int
2026-06-13T11:54:08.9211822Z 
2026-06-13T11:54:08.9211931Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-13T11:54:08.9212812Z - 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-13T11:54:08.9212920Z - Required stages: impl, unit
2026-06-13T11:54:08.9212953Z 
2026-06-13T11:54:08.9213066Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-13T11:54:08.9213687Z - 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-13T11:54:08.9213784Z - Required stages: impl, unit
2026-06-13T11:54:08.9213816Z 
2026-06-13T11:54:08.9213921Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-13T11:54:08.9214564Z - 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-13T11:54:08.9214669Z - Required stages: impl, unit
2026-06-13T11:54:08.9214699Z 
2026-06-13T11:54:08.9214817Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-13T11:54:08.9215438Z - 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-13T11:54:08.9215541Z - Required stages: impl, unit
2026-06-13T11:54:08.9215574Z 
2026-06-13T11:54:08.9215679Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-13T11:54:08.9216537Z - 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-13T11:54:08.9216638Z - Required stages: impl, unit
2026-06-13T11:54:08.9216667Z 
2026-06-13T11:54:08.9216795Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-13T11:54:08.9217563Z - 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-13T11:54:08.9217678Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9217710Z 
2026-06-13T11:54:08.9217805Z ### REQ-CONSENT-1
2026-06-13T11:54:08.9218680Z - 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-13T11:54:08.9218784Z - Required stages: impl, unit
2026-06-13T11:54:08.9218818Z 
2026-06-13T11:54:08.9218909Z ### REQ-CONSENT-2
2026-06-13T11:54:08.9219776Z - 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-13T11:54:08.9219882Z - Required stages: impl, unit
2026-06-13T11:54:08.9219916Z 
2026-06-13T11:54:08.9220005Z ### REQ-PRES-1
2026-06-13T11:54:08.9221303Z - 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-13T11:54:08.9221413Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9221442Z 
2026-06-13T11:54:08.9221646Z ### REQ-SHELL-1
2026-06-13T11:54:08.9222510Z - 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-13T11:54:08.9222619Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9222653Z 
2026-06-13T11:54:08.9222730Z ### REQ-SHELL-2
2026-06-13T11:54:08.9224147Z - 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-13T11:54:08.9224252Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9224285Z 
2026-06-13T11:54:08.9224391Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-13T11:54:08.9225744Z - Title: The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)
2026-06-13T11:54:08.9225859Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9225898Z 
2026-06-13T11:54:08.9226002Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-13T11:54:08.9227269Z - Title: A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)
2026-06-13T11:54:08.9227379Z - Required stages: doc, impl, unit
2026-06-13T11:54:08.9227412Z 
2026-06-13T11:54:08.9227499Z ### REQ-CLI-1
2026-06-13T11:54:08.9228513Z - Title: spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)
2026-06-13T11:54:08.9228616Z - Required stages: impl, unit
2026-06-13T11:54:08.9228649Z 
2026-06-13T11:54:08.9228748Z ### REQ-CLI-2
2026-06-13T11:54:08.9229517Z - Title: spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)
2026-06-13T11:54:08.9229626Z - Required stages: impl, unit
2026-06-13T11:54:08.9229655Z 
2026-06-13T11:54:08.9229751Z ### REQ-CLI-3
2026-06-13T11:54:08.9230447Z - Title: Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)
2026-06-13T11:54:08.9230551Z - Required stages: impl, unit
2026-06-13T11:54:08.9230580Z 
2026-06-13T11:54:08.9230676Z ### REQ-SUBNET-5
2026-06-13T11:54:08.9231755Z - Title: Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)
2026-06-13T11:54:08.9231978Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9232008Z 
2026-06-13T11:54:08.9232117Z ### REQ-SUBNET-6
2026-06-13T11:54:08.9232779Z - Title: Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)
2026-06-13T11:54:08.9232874Z - Required stages: impl, unit
2026-06-13T11:54:08.9232899Z 
2026-06-13T11:54:08.9233009Z ### REQ-SUBNET-7
2026-06-13T11:54:08.9234754Z - Title: Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)
2026-06-13T11:54:08.9234879Z - Required stages: impl, unit
2026-06-13T11:54:08.9234908Z 
2026-06-13T11:54:08.9235013Z ### REQ-SUBNET-8
2026-06-13T11:54:08.9236129Z - Title: Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)
2026-06-13T11:54:08.9236243Z - Required stages: impl, unit
2026-06-13T11:54:08.9236276Z 
2026-06-13T11:54:08.9236371Z ### REQ-INSTALL-6
2026-06-13T11:54:08.9237577Z - Title: Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)
2026-06-13T11:54:08.9237681Z - Required stages: impl, unit
2026-06-13T11:54:08.9237715Z 
2026-06-13T11:54:08.9237807Z ### REQ-INSTALL-7
2026-06-13T11:54:08.9238925Z - Title: Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)
2026-06-13T11:54:08.9239111Z - Required stages: impl
2026-06-13T11:54:08.9239139Z 
2026-06-13T11:54:08.9239238Z ### REQ-INSTALL-8
2026-06-13T11:54:08.9240262Z - Title: OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)
2026-06-13T11:54:08.9240368Z - Required stages: impl
2026-06-13T11:54:08.9240396Z 
2026-06-13T11:54:08.9240491Z ### REQ-CONV-1
2026-06-13T11:54:08.9241902Z - Title: Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)
2026-06-13T11:54:08.9242133Z - Required stages: impl, unit
2026-06-13T11:54:08.9242166Z 
2026-06-13T11:54:08.9242253Z ### REQ-CONV-2
2026-06-13T11:54:08.9243369Z - Title: Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)
2026-06-13T11:54:08.9243478Z - Required stages: impl, unit
2026-06-13T11:54:08.9243502Z 
2026-06-13T11:54:08.9243598Z ### REQ-PAIR-8
2026-06-13T11:54:08.9244872Z - Title: NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)
2026-06-13T11:54:08.9244977Z - Required stages: impl, unit
2026-06-13T11:54:08.9245009Z 
2026-06-13T11:54:08.9245201Z ### REQ-DAEMON-5
2026-06-13T11:54:08.9246456Z - Title: Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)
2026-06-13T11:54:08.9246564Z - Required stages: impl, unit
2026-06-13T11:54:08.9246598Z 
2026-06-13T11:54:08.9246694Z ### REQ-DAEMON-6
2026-06-13T11:54:08.9248599Z - Title: Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.
2026-06-13T11:54:08.9248714Z - Required stages: impl, unit
2026-06-13T11:54:08.9248747Z 
2026-06-13T11:54:08.9248833Z ### REQ-DAEMON-7
2026-06-13T11:54:08.9250260Z - Title: `daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).
2026-06-13T11:54:08.9250370Z - Required stages: impl, unit
2026-06-13T11:54:08.9250393Z 
2026-06-13T11:54:08.9250488Z ### REQ-DAEMON-8
2026-06-13T11:54:08.9251419Z - Title: Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.
2026-06-13T11:54:08.9251525Z - Required stages: impl, unit
2026-06-13T11:54:08.9251554Z 
2026-06-13T11:54:08.9251648Z ### REQ-DAEMON-9
2026-06-13T11:54:08.9253919Z - Title: Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.
2026-06-13T11:54:08.9254139Z - Required stages: impl, unit
2026-06-13T11:54:08.9254172Z 
2026-06-13T11:54:08.9254276Z ### REQ-HAZARD-EPOCH-RESET
2026-06-13T11:54:08.9255565Z - Title: Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)
2026-06-13T11:54:08.9255680Z - Required stages: 
2026-06-13T11:54:08.9255714Z 
2026-06-13T11:54:08.9255804Z ### REQ-MESH-1
2026-06-13T11:54:08.9257983Z - Title: Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).
2026-06-13T11:54:08.9258115Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9258148Z 
2026-06-13T11:54:08.9258230Z ### REQ-MESH-2
2026-06-13T11:54:08.9260850Z - Title: Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).
2026-06-13T11:54:08.9260973Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9261006Z 
2026-06-13T11:54:08.9261097Z ### REQ-MESH-3
2026-06-13T11:54:08.9262729Z - Title: Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.
2026-06-13T11:54:08.9262851Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9262880Z 
2026-06-13T11:54:08.9262964Z ### REQ-MESH-4
2026-06-13T11:54:08.9265151Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.
2026-06-13T11:54:08.9265399Z - Required stages: impl, unit, int
2026-06-13T11:54:08.9265432Z 
2026-06-13T11:54:08.9265541Z ### REQ-MESH-5
2026-06-13T11:54:08.9266922Z - Title: Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.
2026-06-13T11:54:08.9267170Z - Required stages: impl, unit
2026-06-13T11:54:08.9267199Z 
2026-06-13T11:54:08.9267304Z ### REQ-MESH-6
2026-06-13T11:54:08.9268504Z - Title: Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)
2026-06-13T11:54:08.9268614Z - Required stages: impl, unit
2026-06-13T11:54:08.9268647Z 
2026-06-13T11:54:08.9268747Z ## How to report back
2026-06-13T11:54:08.9268785Z 
2026-06-13T11:54:08.9269037Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-13T11:54:08.9269061Z 
2026-06-13T11:54:08.9269167Z     {
2026-06-13T11:54:08.9269282Z       "code": "requirement_quality",
2026-06-13T11:54:08.9269391Z       "requirementId": "REQ-...",
2026-06-13T11:54:08.9269562Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-13T11:54:08.9269676Z       "message": "<short reason>",
2026-06-13T11:54:08.9269816Z       "suggestedRevision": "<optional rewrite>"
2026-06-13T11:54:08.9269905Z     }
2026-06-13T11:54:08.9269940Z 
2026-06-13T11:54:08.9270136Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-13T11:54:08.9270273Z deterministic findings above don't need to be repeated.
2026-06-13T11:54:08.9379213Z Post job cleanup.
2026-06-13T11:54:09.0077734Z [command]/usr/bin/git version
2026-06-13T11:54:09.0142975Z git version 2.43.0
2026-06-13T11:54:09.0176463Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/1cec2b7f-739d-4b6a-9e7a-f4d2ddc59eb0' before making global git config changes
2026-06-13T11:54:09.0177787Z Adding repository directory to the temporary git global config as a safe directory
2026-06-13T11:54:09.0180837Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-13T11:54:09.0210838Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-13T11:54:09.0236466Z [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-13T11:54:09.0428181Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-13T11:54:09.0446605Z http.https://github.com/.extraheader
2026-06-13T11:54:09.0453697Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-13T11:54:09.0479210Z [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-13T11:54:09.0664684Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-13T11:54:09.0696056Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-13T11:54:09.1035512Z Cleaning up orphan processes
