﻿2026-06-07T22:53:27.7071186Z Current runner version: '2.334.0'
2026-06-07T22:53:27.7076181Z Runner name: 'kitsubito'
2026-06-07T22:53:27.7076882Z Runner group name: 'Default'
2026-06-07T22:53:27.7078006Z Machine name: 'KITSUBITO'
2026-06-07T22:53:27.7080412Z ##[group]GITHUB_TOKEN Permissions
2026-06-07T22:53:27.7082395Z Contents: read
2026-06-07T22:53:27.7082947Z Metadata: read
2026-06-07T22:53:27.7083517Z Packages: read
2026-06-07T22:53:27.7084042Z ##[endgroup]
2026-06-07T22:53:27.7085976Z Secret source: Actions
2026-06-07T22:53:27.7086660Z Prepare workflow directory
2026-06-07T22:53:27.7725827Z Prepare all required actions
2026-06-07T22:53:27.7754706Z Getting action download info
2026-06-07T22:53:28.2115097Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-07T22:53:28.7393730Z Complete job name: traceability
2026-06-07T22:53:28.8236392Z ##[group]Run actions/checkout@v5
2026-06-07T22:53:28.8237274Z with:
2026-06-07T22:53:28.8237757Z   repository: SaberMage/spt-core
2026-06-07T22:53:28.8241383Z   token: ***
2026-06-07T22:53:28.8241830Z   ssh-strict: true
2026-06-07T22:53:28.8242218Z   ssh-user: git
2026-06-07T22:53:28.8242619Z   persist-credentials: true
2026-06-07T22:53:28.8243055Z   clean: true
2026-06-07T22:53:28.8243456Z   sparse-checkout-cone-mode: true
2026-06-07T22:53:28.8243886Z   fetch-depth: 1
2026-06-07T22:53:28.8244257Z   fetch-tags: false
2026-06-07T22:53:28.8244638Z   show-progress: true
2026-06-07T22:53:28.8245034Z   lfs: false
2026-06-07T22:53:28.8245400Z   submodules: false
2026-06-07T22:53:28.8245780Z   set-safe-directory: true
2026-06-07T22:53:28.8246400Z ##[endgroup]
2026-06-07T22:53:28.9052891Z Syncing repository: SaberMage/spt-core
2026-06-07T22:53:28.9054456Z ##[group]Getting Git version info
2026-06-07T22:53:28.9055261Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-07T22:53:28.9056261Z [command]/usr/bin/git version
2026-06-07T22:53:28.9056711Z git version 2.43.0
2026-06-07T22:53:28.9058135Z ##[endgroup]
2026-06-07T22:53:28.9061753Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/70a8a213-86e4-4499-98a6-7e7509e43d12' before making global git config changes
2026-06-07T22:53:28.9062997Z Adding repository directory to the temporary git global config as a safe directory
2026-06-07T22:53:28.9064096Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-07T22:53:28.9087114Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-07T22:53:28.9105933Z https://github.com/SaberMage/spt-core
2026-06-07T22:53:28.9115923Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-07T22:53:28.9118413Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-07T22:53:28.9143825Z refs/heads/dev-freeform
2026-06-07T22:53:28.9150728Z [command]/usr/bin/git checkout --detach
2026-06-07T22:53:28.9243323Z HEAD is now at e10def4 test(rig): two-host ladder run on M8-D4 binary [twohost]
2026-06-07T22:53:28.9308961Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-07T22:53:28.9343399Z Deleted branch dev-freeform (was e10def4).
2026-06-07T22:53:28.9375875Z ##[endgroup]
2026-06-07T22:53:28.9376405Z [command]/usr/bin/git submodule status
2026-06-07T22:53:28.9563091Z ##[group]Cleaning the repository
2026-06-07T22:53:28.9565298Z [command]/usr/bin/git clean -ffdx
2026-06-07T22:53:31.5831984Z Removing .adapter-notify/
2026-06-07T22:53:31.5832470Z Removing target/
2026-06-07T22:53:31.5841919Z [command]/usr/bin/git reset --hard HEAD
2026-06-07T22:53:31.5885172Z HEAD is now at e10def4 test(rig): two-host ladder run on M8-D4 binary [twohost]
2026-06-07T22:53:31.5890721Z ##[endgroup]
2026-06-07T22:53:31.5891679Z ##[group]Disabling automatic garbage collection
2026-06-07T22:53:31.5895669Z [command]/usr/bin/git config --local gc.auto 0
2026-06-07T22:53:31.5918255Z ##[endgroup]
2026-06-07T22:53:31.5918756Z ##[group]Setting up auth
2026-06-07T22:53:31.5922826Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-07T22:53:31.5944779Z [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-07T22:53:31.6132848Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-07T22:53:31.6156200Z [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-07T22:53:31.6336198Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-07T22:53:31.6359957Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-07T22:53:31.6547458Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-07T22:53:31.6574829Z ##[endgroup]
2026-06-07T22:53:31.6575378Z ##[group]Fetching the repository
2026-06-07T22:53:31.6580835Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e10def4f44dce9bb1c5732e89bdf1f4ba8ae95d3:refs/remotes/origin/dev-freeform
2026-06-07T22:53:32.0878181Z ##[endgroup]
2026-06-07T22:53:32.0878963Z ##[group]Determining the checkout info
2026-06-07T22:53:32.0880223Z ##[endgroup]
2026-06-07T22:53:32.0894931Z [command]/usr/bin/git sparse-checkout disable
2026-06-07T22:53:32.0946713Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-07T22:53:32.0973836Z ##[group]Checking out the ref
2026-06-07T22:53:32.0976690Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-07T22:53:32.1015505Z Switched to a new branch 'dev-freeform'
2026-06-07T22:53:32.1015928Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-07T22:53:32.1019517Z ##[endgroup]
2026-06-07T22:53:32.1046146Z [command]/usr/bin/git log -1 --format=%H
2026-06-07T22:53:32.1063884Z e10def4f44dce9bb1c5732e89bdf1f4ba8ae95d3
2026-06-07T22:53:32.1252093Z ##[group]Run WANT=0.1.2
2026-06-07T22:53:32.1252394Z [36;1mWANT=0.1.2[0m
2026-06-07T22:53:32.1252647Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-07T22:53:32.1252990Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-07T22:53:32.1253305Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-07T22:53:32.1253544Z [36;1melse[0m
2026-06-07T22:53:32.1253803Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-07T22:53:32.1254162Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-07T22:53:32.1254447Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-07T22:53:32.1254690Z [36;1m  rm -rf "$SRC"[0m
2026-06-07T22:53:32.1254924Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-07T22:53:32.1255334Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-07T22:53:32.1255832Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-07T22:53:32.1256142Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-07T22:53:32.1256416Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-07T22:53:32.1256714Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-07T22:53:32.1256943Z [36;1mfi[0m
2026-06-07T22:53:32.1257200Z [36;1m./traceable-reqs --version[0m
2026-06-07T22:53:32.1272071Z shell: /usr/bin/bash -e {0}
2026-06-07T22:53:32.1272311Z env:
2026-06-07T22:53:32.1272861Z   GH_TOKEN: ***
2026-06-07T22:53:32.1273062Z ##[endgroup]
2026-06-07T22:53:32.1349951Z traceable-reqs 0.1.2
2026-06-07T22:53:32.1380280Z ##[group]Run ./traceable-reqs check --json
2026-06-07T22:53:32.1380650Z [36;1m./traceable-reqs check --json[0m
2026-06-07T22:53:32.1393502Z shell: /usr/bin/bash -e {0}
2026-06-07T22:53:32.1393740Z ##[endgroup]
2026-06-07T22:53:32.1623628Z {
2026-06-07T22:53:32.1624167Z   "schemaVersion": 1,
2026-06-07T22:53:32.1624482Z   "summary": {
2026-06-07T22:53:32.1624687Z     "requirementCount": 166,
2026-06-07T22:53:32.1624982Z     "completeCount": 166,
2026-06-07T22:53:32.1625206Z     "incompleteCount": 0,
2026-06-07T22:53:32.1625492Z     "findingCount": 0
2026-06-07T22:53:32.1625684Z   },
2026-06-07T22:53:32.1625868Z   "requirements": [
2026-06-07T22:53:32.1626110Z     {
2026-06-07T22:53:32.1626304Z       "id": "REQ-API-1",
2026-06-07T22:53:32.1626619Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-07T22:53:32.1627067Z       "requiredStages": [
2026-06-07T22:53:32.1627273Z         "impl",
2026-06-07T22:53:32.1627515Z         "unit",
2026-06-07T22:53:32.1627735Z         "int"
2026-06-07T22:53:32.1627912Z       ],
2026-06-07T22:53:32.1628117Z       "stages": {
2026-06-07T22:53:32.1628336Z         "doc": {
2026-06-07T22:53:32.1628616Z           "complete": false,
2026-06-07T22:53:32.1628929Z           "evidence": []
2026-06-07T22:53:32.1629224Z         },
2026-06-07T22:53:32.1629467Z         "impl": {
2026-06-07T22:53:32.1629729Z           "complete": true,
2026-06-07T22:53:32.1630020Z           "evidence": [
2026-06-07T22:53:32.1630541Z             {
2026-06-07T22:53:32.1631035Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.1631602Z               "line": 15
2026-06-07T22:53:32.1632045Z             }
2026-06-07T22:53:32.1632418Z           ]
2026-06-07T22:53:32.1632860Z         },
2026-06-07T22:53:32.1633295Z         "int": {
2026-06-07T22:53:32.1633682Z           "complete": true,
2026-06-07T22:53:32.1634154Z           "evidence": [
2026-06-07T22:53:32.1634526Z             {
2026-06-07T22:53:32.1649293Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1649740Z               "line": 13
2026-06-07T22:53:32.1650039Z             }
2026-06-07T22:53:32.1650311Z           ]
2026-06-07T22:53:32.1650549Z         },
2026-06-07T22:53:32.1650788Z         "unit": {
2026-06-07T22:53:32.1651050Z           "complete": true,
2026-06-07T22:53:32.1651365Z           "evidence": [
2026-06-07T22:53:32.1651637Z             {
2026-06-07T22:53:32.1651929Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.1652303Z               "line": 442
2026-06-07T22:53:32.1652596Z             },
2026-06-07T22:53:32.1652858Z             {
2026-06-07T22:53:32.1653149Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.1653522Z               "line": 448
2026-06-07T22:53:32.1653802Z             },
2026-06-07T22:53:32.1654060Z             {
2026-06-07T22:53:32.1654341Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.1654703Z               "line": 515
2026-06-07T22:53:32.1654993Z             }
2026-06-07T22:53:32.1655247Z           ]
2026-06-07T22:53:32.1655481Z         }
2026-06-07T22:53:32.1655737Z       }
2026-06-07T22:53:32.1655985Z     },
2026-06-07T22:53:32.1656219Z     {
2026-06-07T22:53:32.1656473Z       "id": "REQ-API-2",
2026-06-07T22:53:32.1657031Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-07T22:53:32.1657591Z       "requiredStages": [
2026-06-07T22:53:32.1657889Z         "impl",
2026-06-07T22:53:32.1658147Z         "unit",
2026-06-07T22:53:32.1658409Z         "int"
2026-06-07T22:53:32.1658672Z       ],
2026-06-07T22:53:32.1658919Z       "stages": {
2026-06-07T22:53:32.1659181Z         "doc": {
2026-06-07T22:53:32.1659453Z           "complete": false,
2026-06-07T22:53:32.1659787Z           "evidence": []
2026-06-07T22:53:32.1660077Z         },
2026-06-07T22:53:32.1660352Z         "impl": {
2026-06-07T22:53:32.1660624Z           "complete": true,
2026-06-07T22:53:32.1660929Z           "evidence": [
2026-06-07T22:53:32.1661443Z             {
2026-06-07T22:53:32.1661762Z               "path": "crates/spt-store/src/history.rs",
2026-06-07T22:53:32.1662140Z               "line": 15
2026-06-07T22:53:32.1662425Z             },
2026-06-07T22:53:32.1662677Z             {
2026-06-07T22:53:32.1662990Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.1663572Z               "line": 20
2026-06-07T22:53:32.1663863Z             },
2026-06-07T22:53:32.1664110Z             {
2026-06-07T22:53:32.1664412Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.1664783Z               "line": 139
2026-06-07T22:53:32.1665069Z             },
2026-06-07T22:53:32.1665317Z             {
2026-06-07T22:53:32.1665630Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1666007Z               "line": 21
2026-06-07T22:53:32.1666287Z             },
2026-06-07T22:53:32.1666545Z             {
2026-06-07T22:53:32.1666846Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1667314Z               "line": 38
2026-06-07T22:53:32.1667596Z             },
2026-06-07T22:53:32.1667852Z             {
2026-06-07T22:53:32.1668146Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1668520Z               "line": 190
2026-06-07T22:53:32.1668811Z             },
2026-06-07T22:53:32.1669069Z             {
2026-06-07T22:53:32.1669370Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1669736Z               "line": 232
2026-06-07T22:53:32.1670018Z             },
2026-06-07T22:53:32.1670280Z             {
2026-06-07T22:53:32.1670600Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1671026Z               "line": 262
2026-06-07T22:53:32.1671241Z             },
2026-06-07T22:53:32.1671426Z             {
2026-06-07T22:53:32.1671765Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1672142Z               "line": 17
2026-06-07T22:53:32.1672424Z             },
2026-06-07T22:53:32.1672705Z             {
2026-06-07T22:53:32.1672995Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1673371Z               "line": 30
2026-06-07T22:53:32.1673645Z             },
2026-06-07T22:53:32.1673902Z             {
2026-06-07T22:53:32.1674193Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1674574Z               "line": 63
2026-06-07T22:53:32.1674861Z             },
2026-06-07T22:53:32.1675127Z             {
2026-06-07T22:53:32.1675418Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1675789Z               "line": 76
2026-06-07T22:53:32.1676066Z             }
2026-06-07T22:53:32.1676324Z           ]
2026-06-07T22:53:32.1676572Z         },
2026-06-07T22:53:32.1676824Z         "int": {
2026-06-07T22:53:32.1677182Z           "complete": true,
2026-06-07T22:53:32.1677487Z           "evidence": [
2026-06-07T22:53:32.1677783Z             {
2026-06-07T22:53:32.1678107Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1678499Z               "line": 14
2026-06-07T22:53:32.1678688Z             },
2026-06-07T22:53:32.1678859Z             {
2026-06-07T22:53:32.1679061Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1679310Z               "line": 183
2026-06-07T22:53:32.1679501Z             }
2026-06-07T22:53:32.1679677Z           ]
2026-06-07T22:53:32.1679840Z         },
2026-06-07T22:53:32.1679996Z         "unit": {
2026-06-07T22:53:32.1680173Z           "complete": true,
2026-06-07T22:53:32.1680368Z           "evidence": [
2026-06-07T22:53:32.1680549Z             {
2026-06-07T22:53:32.1680751Z               "path": "crates/spt-store/src/history.rs",
2026-06-07T22:53:32.1680998Z               "line": 42
2026-06-07T22:53:32.1681188Z             },
2026-06-07T22:53:32.1681359Z             {
2026-06-07T22:53:32.1681552Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.1681801Z               "line": 254
2026-06-07T22:53:32.1681987Z             },
2026-06-07T22:53:32.1682296Z             {
2026-06-07T22:53:32.1682501Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1682858Z               "line": 438
2026-06-07T22:53:32.1683054Z             },
2026-06-07T22:53:32.1683221Z             {
2026-06-07T22:53:32.1683435Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1683802Z               "line": 449
2026-06-07T22:53:32.1684015Z             },
2026-06-07T22:53:32.1684190Z             {
2026-06-07T22:53:32.1684391Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1684654Z               "line": 581
2026-06-07T22:53:32.1684844Z             },
2026-06-07T22:53:32.1685021Z             {
2026-06-07T22:53:32.1685311Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1685565Z               "line": 593
2026-06-07T22:53:32.1685759Z             },
2026-06-07T22:53:32.1685927Z             {
2026-06-07T22:53:32.1686127Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1686384Z               "line": 141
2026-06-07T22:53:32.1686580Z             },
2026-06-07T22:53:32.1686750Z             {
2026-06-07T22:53:32.1686941Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.1687364Z               "line": 185
2026-06-07T22:53:32.1687556Z             }
2026-06-07T22:53:32.1687742Z           ]
2026-06-07T22:53:32.1687909Z         }
2026-06-07T22:53:32.1688076Z       }
2026-06-07T22:53:32.1688242Z     },
2026-06-07T22:53:32.1688411Z     {
2026-06-07T22:53:32.1688591Z       "id": "REQ-API-3",
2026-06-07T22:53:32.1688844Z       "title": "commune/signoff are file-drops, not commands",
2026-06-07T22:53:32.1689135Z       "requiredStages": [
2026-06-07T22:53:32.1689386Z         "impl",
2026-06-07T22:53:32.1689579Z         "unit",
2026-06-07T22:53:32.1689752Z         "int"
2026-06-07T22:53:32.1689931Z       ],
2026-06-07T22:53:32.1702200Z       "stages": {
2026-06-07T22:53:32.1702422Z         "doc": {
2026-06-07T22:53:32.1702630Z           "complete": false,
2026-06-07T22:53:32.1702883Z           "evidence": []
2026-06-07T22:53:32.1703097Z         },
2026-06-07T22:53:32.1703269Z         "impl": {
2026-06-07T22:53:32.1703455Z           "complete": true,
2026-06-07T22:53:32.1703673Z           "evidence": [
2026-06-07T22:53:32.1703860Z             {
2026-06-07T22:53:32.1704085Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.1704342Z               "line": 27
2026-06-07T22:53:32.1704541Z             },
2026-06-07T22:53:32.1704710Z             {
2026-06-07T22:53:32.1704932Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1705201Z               "line": 372
2026-06-07T22:53:32.1705407Z             }
2026-06-07T22:53:32.1705582Z           ]
2026-06-07T22:53:32.1705755Z         },
2026-06-07T22:53:32.1705911Z         "int": {
2026-06-07T22:53:32.1706098Z           "complete": true,
2026-06-07T22:53:32.1706308Z           "evidence": [
2026-06-07T22:53:32.1706493Z             {
2026-06-07T22:53:32.1706709Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1707080Z               "line": 257
2026-06-07T22:53:32.1707272Z             }
2026-06-07T22:53:32.1707441Z           ]
2026-06-07T22:53:32.1707605Z         },
2026-06-07T22:53:32.1707775Z         "unit": {
2026-06-07T22:53:32.1707976Z           "complete": true,
2026-06-07T22:53:32.1708179Z           "evidence": [
2026-06-07T22:53:32.1708367Z             {
2026-06-07T22:53:32.1708577Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.1708828Z               "line": 242
2026-06-07T22:53:32.1709020Z             },
2026-06-07T22:53:32.1709191Z             {
2026-06-07T22:53:32.1709391Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.1709649Z               "line": 622
2026-06-07T22:53:32.1709841Z             }
2026-06-07T22:53:32.1710020Z           ]
2026-06-07T22:53:32.1710185Z         }
2026-06-07T22:53:32.1710349Z       }
2026-06-07T22:53:32.1710511Z     },
2026-06-07T22:53:32.1710671Z     {
2026-06-07T22:53:32.1710995Z       "id": "REQ-ARCH-1",
2026-06-07T22:53:32.1711239Z       "title": "Many small acyclically-layered crates",
2026-06-07T22:53:32.1711510Z       "requiredStages": [
2026-06-07T22:53:32.1711710Z         "impl"
2026-06-07T22:53:32.1711887Z       ],
2026-06-07T22:53:32.1712164Z       "stages": {
2026-06-07T22:53:32.1712344Z         "doc": {
2026-06-07T22:53:32.1712535Z           "complete": false,
2026-06-07T22:53:32.1712746Z           "evidence": []
2026-06-07T22:53:32.1712939Z         },
2026-06-07T22:53:32.1713106Z         "impl": {
2026-06-07T22:53:32.1713290Z           "complete": true,
2026-06-07T22:53:32.1713491Z           "evidence": [
2026-06-07T22:53:32.1713681Z             {
2026-06-07T22:53:32.1713872Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-07T22:53:32.1714124Z               "line": 16
2026-06-07T22:53:32.1714321Z             },
2026-06-07T22:53:32.1714497Z             {
2026-06-07T22:53:32.1714693Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-07T22:53:32.1714960Z               "line": 12
2026-06-07T22:53:32.1715150Z             },
2026-06-07T22:53:32.1715327Z             {
2026-06-07T22:53:32.1715520Z               "path": "crates/spt-store/src/lib.rs",
2026-06-07T22:53:32.1715776Z               "line": 12
2026-06-07T22:53:32.1715972Z             }
2026-06-07T22:53:32.1716142Z           ]
2026-06-07T22:53:32.1716310Z         },
2026-06-07T22:53:32.1716481Z         "int": {
2026-06-07T22:53:32.1716663Z           "complete": false,
2026-06-07T22:53:32.1716878Z           "evidence": []
2026-06-07T22:53:32.1717168Z         },
2026-06-07T22:53:32.1717339Z         "unit": {
2026-06-07T22:53:32.1717526Z           "complete": false,
2026-06-07T22:53:32.1717735Z           "evidence": []
2026-06-07T22:53:32.1717927Z         }
2026-06-07T22:53:32.1718088Z       }
2026-06-07T22:53:32.1718251Z     },
2026-06-07T22:53:32.1718416Z     {
2026-06-07T22:53:32.1718598Z       "id": "REQ-ARCH-2",
2026-06-07T22:53:32.1718879Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-07T22:53:32.1719252Z       "requiredStages": [
2026-06-07T22:53:32.1719452Z         "impl"
2026-06-07T22:53:32.1719618Z       ],
2026-06-07T22:53:32.1719771Z       "stages": {
2026-06-07T22:53:32.1719942Z         "doc": {
2026-06-07T22:53:32.1720125Z           "complete": false,
2026-06-07T22:53:32.1720338Z           "evidence": []
2026-06-07T22:53:32.1720533Z         },
2026-06-07T22:53:32.1720706Z         "impl": {
2026-06-07T22:53:32.1720885Z           "complete": true,
2026-06-07T22:53:32.1721090Z           "evidence": [
2026-06-07T22:53:32.1721278Z             {
2026-06-07T22:53:32.1721484Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-07T22:53:32.1721741Z               "line": 18
2026-06-07T22:53:32.1721927Z             }
2026-06-07T22:53:32.1722094Z           ]
2026-06-07T22:53:32.1722260Z         },
2026-06-07T22:53:32.1722423Z         "int": {
2026-06-07T22:53:32.1722605Z           "complete": false,
2026-06-07T22:53:32.1722814Z           "evidence": []
2026-06-07T22:53:32.1723010Z         },
2026-06-07T22:53:32.1723172Z         "unit": {
2026-06-07T22:53:32.1723349Z           "complete": false,
2026-06-07T22:53:32.1723552Z           "evidence": []
2026-06-07T22:53:32.1723745Z         }
2026-06-07T22:53:32.1723902Z       }
2026-06-07T22:53:32.1724065Z     },
2026-06-07T22:53:32.1724227Z     {
2026-06-07T22:53:32.1724408Z       "id": "REQ-ARCH-3",
2026-06-07T22:53:32.1741807Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-07T22:53:32.1742201Z       "requiredStages": [
2026-06-07T22:53:32.1742422Z         "impl",
2026-06-07T22:53:32.1742595Z         "unit"
2026-06-07T22:53:32.1742771Z       ],
2026-06-07T22:53:32.1742939Z       "stages": {
2026-06-07T22:53:32.1743115Z         "doc": {
2026-06-07T22:53:32.1743295Z           "complete": false,
2026-06-07T22:53:32.1743511Z           "evidence": []
2026-06-07T22:53:32.1743700Z         },
2026-06-07T22:53:32.1743863Z         "impl": {
2026-06-07T22:53:32.1744191Z           "complete": true,
2026-06-07T22:53:32.1744398Z           "evidence": [
2026-06-07T22:53:32.1744592Z             {
2026-06-07T22:53:32.1744800Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T22:53:32.1745061Z               "line": 34
2026-06-07T22:53:32.1745347Z             },
2026-06-07T22:53:32.1745514Z             {
2026-06-07T22:53:32.1745711Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T22:53:32.1745962Z               "line": 41
2026-06-07T22:53:32.1746148Z             }
2026-06-07T22:53:32.1746311Z           ]
2026-06-07T22:53:32.1746477Z         },
2026-06-07T22:53:32.1746645Z         "int": {
2026-06-07T22:53:32.1746820Z           "complete": false,
2026-06-07T22:53:32.1747125Z           "evidence": []
2026-06-07T22:53:32.1747311Z         },
2026-06-07T22:53:32.1747480Z         "unit": {
2026-06-07T22:53:32.1747667Z           "complete": true,
2026-06-07T22:53:32.1747866Z           "evidence": [
2026-06-07T22:53:32.1748048Z             {
2026-06-07T22:53:32.1748263Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T22:53:32.1748510Z               "line": 51
2026-06-07T22:53:32.1748691Z             },
2026-06-07T22:53:32.1748858Z             {
2026-06-07T22:53:32.1749058Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T22:53:32.1749325Z               "line": 71
2026-06-07T22:53:32.1749517Z             },
2026-06-07T22:53:32.1749682Z             {
2026-06-07T22:53:32.1749884Z               "path": "crates/spt-proto/src/version.rs",
2026-06-07T22:53:32.1750134Z               "line": 83
2026-06-07T22:53:32.1750312Z             }
2026-06-07T22:53:32.1750474Z           ]
2026-06-07T22:53:32.1750622Z         }
2026-06-07T22:53:32.1750778Z       }
2026-06-07T22:53:32.1750937Z     },
2026-06-07T22:53:32.1751098Z     {
2026-06-07T22:53:32.1751255Z       "id": "REQ-ARCH-4",
2026-06-07T22:53:32.1751547Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-07T22:53:32.1751957Z       "requiredStages": [
2026-06-07T22:53:32.1752148Z         "impl",
2026-06-07T22:53:32.1752323Z         "unit"
2026-06-07T22:53:32.1752496Z       ],
2026-06-07T22:53:32.1752656Z       "stages": {
2026-06-07T22:53:32.1752837Z         "doc": {
2026-06-07T22:53:32.1753011Z           "complete": false,
2026-06-07T22:53:32.1753226Z           "evidence": []
2026-06-07T22:53:32.1753418Z         },
2026-06-07T22:53:32.1753588Z         "impl": {
2026-06-07T22:53:32.1753761Z           "complete": true,
2026-06-07T22:53:32.1753965Z           "evidence": [
2026-06-07T22:53:32.1754152Z             {
2026-06-07T22:53:32.1754348Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1754599Z               "line": 82
2026-06-07T22:53:32.1754789Z             },
2026-06-07T22:53:32.1754953Z             {
2026-06-07T22:53:32.1755152Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1755403Z               "line": 96
2026-06-07T22:53:32.1755588Z             },
2026-06-07T22:53:32.1755764Z             {
2026-06-07T22:53:32.1755951Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1756198Z               "line": 116
2026-06-07T22:53:32.1756389Z             },
2026-06-07T22:53:32.1756556Z             {
2026-06-07T22:53:32.1756751Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1757118Z               "line": 131
2026-06-07T22:53:32.1757309Z             },
2026-06-07T22:53:32.1757471Z             {
2026-06-07T22:53:32.1757657Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1757908Z               "line": 181
2026-06-07T22:53:32.1758097Z             }
2026-06-07T22:53:32.1758265Z           ]
2026-06-07T22:53:32.1758445Z         },
2026-06-07T22:53:32.1758622Z         "int": {
2026-06-07T22:53:32.1758803Z           "complete": false,
2026-06-07T22:53:32.1759008Z           "evidence": []
2026-06-07T22:53:32.1759194Z         },
2026-06-07T22:53:32.1759356Z         "unit": {
2026-06-07T22:53:32.1759647Z           "complete": true,
2026-06-07T22:53:32.1759857Z           "evidence": [
2026-06-07T22:53:32.1760038Z             {
2026-06-07T22:53:32.1760242Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1760487Z               "line": 242
2026-06-07T22:53:32.1760671Z             },
2026-06-07T22:53:32.1760947Z             {
2026-06-07T22:53:32.1761139Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1761387Z               "line": 252
2026-06-07T22:53:32.1761567Z             },
2026-06-07T22:53:32.1761730Z             {
2026-06-07T22:53:32.1761929Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1762173Z               "line": 263
2026-06-07T22:53:32.1762360Z             },
2026-06-07T22:53:32.1762531Z             {
2026-06-07T22:53:32.1762723Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1762971Z               "line": 274
2026-06-07T22:53:32.1763154Z             },
2026-06-07T22:53:32.1763321Z             {
2026-06-07T22:53:32.1763524Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1763833Z               "line": 286
2026-06-07T22:53:32.1764011Z             },
2026-06-07T22:53:32.1764167Z             {
2026-06-07T22:53:32.1764354Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1764607Z               "line": 299
2026-06-07T22:53:32.1764806Z             },
2026-06-07T22:53:32.1764974Z             {
2026-06-07T22:53:32.1765164Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1765421Z               "line": 310
2026-06-07T22:53:32.1765613Z             },
2026-06-07T22:53:32.1765787Z             {
2026-06-07T22:53:32.1765977Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1766229Z               "line": 327
2026-06-07T22:53:32.1766419Z             },
2026-06-07T22:53:32.1766582Z             {
2026-06-07T22:53:32.1766777Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.1767126Z               "line": 358
2026-06-07T22:53:32.1767321Z             }
2026-06-07T22:53:32.1767489Z           ]
2026-06-07T22:53:32.1767650Z         }
2026-06-07T22:53:32.1767813Z       }
2026-06-07T22:53:32.1767969Z     },
2026-06-07T22:53:32.1768198Z     {
2026-06-07T22:53:32.1768364Z       "id": "REQ-CLI-1",
2026-06-07T22:53:32.1769530Z       "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-07T22:53:32.1770817Z       "requiredStages": [
2026-06-07T22:53:32.1771014Z         "impl",
2026-06-07T22:53:32.1771192Z         "unit"
2026-06-07T22:53:32.1771356Z       ],
2026-06-07T22:53:32.1771521Z       "stages": {
2026-06-07T22:53:32.1771694Z         "doc": {
2026-06-07T22:53:32.1771889Z           "complete": false,
2026-06-07T22:53:32.1772099Z           "evidence": []
2026-06-07T22:53:32.1772290Z         },
2026-06-07T22:53:32.1772452Z         "impl": {
2026-06-07T22:53:32.1772634Z           "complete": true,
2026-06-07T22:53:32.1772838Z           "evidence": [
2026-06-07T22:53:32.1773024Z             {
2026-06-07T22:53:32.1773212Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1773448Z               "line": 193
2026-06-07T22:53:32.1773653Z             },
2026-06-07T22:53:32.1773814Z             {
2026-06-07T22:53:32.1774003Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1774247Z               "line": 740
2026-06-07T22:53:32.1774441Z             },
2026-06-07T22:53:32.1774609Z             {
2026-06-07T22:53:32.1774800Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1775037Z               "line": 1040
2026-06-07T22:53:32.1775243Z             },
2026-06-07T22:53:32.1775410Z             {
2026-06-07T22:53:32.1775710Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1775963Z               "line": 1816
2026-06-07T22:53:32.1776159Z             }
2026-06-07T22:53:32.1776324Z           ]
2026-06-07T22:53:32.1776491Z         },
2026-06-07T22:53:32.1776669Z         "int": {
2026-06-07T22:53:32.1776866Z           "complete": false,
2026-06-07T22:53:32.1777260Z           "evidence": []
2026-06-07T22:53:32.1777457Z         },
2026-06-07T22:53:32.1777619Z         "unit": {
2026-06-07T22:53:32.1777804Z           "complete": true,
2026-06-07T22:53:32.1778010Z           "evidence": [
2026-06-07T22:53:32.1778205Z             {
2026-06-07T22:53:32.1778397Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1778674Z               "line": 4618
2026-06-07T22:53:32.1778872Z             }
2026-06-07T22:53:32.1779034Z           ]
2026-06-07T22:53:32.1779198Z         }
2026-06-07T22:53:32.1779366Z       }
2026-06-07T22:53:32.1779527Z     },
2026-06-07T22:53:32.1779685Z     {
2026-06-07T22:53:32.1779865Z       "id": "REQ-CLI-2",
2026-06-07T22:53:32.1780658Z       "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-07T22:53:32.1781541Z       "requiredStages": [
2026-06-07T22:53:32.1781743Z         "impl",
2026-06-07T22:53:32.1781916Z         "unit"
2026-06-07T22:53:32.1782091Z       ],
2026-06-07T22:53:32.1782264Z       "stages": {
2026-06-07T22:53:32.1782449Z         "doc": {
2026-06-07T22:53:32.1782631Z           "complete": false,
2026-06-07T22:53:32.1782846Z           "evidence": []
2026-06-07T22:53:32.1783045Z         },
2026-06-07T22:53:32.1783217Z         "impl": {
2026-06-07T22:53:32.1783398Z           "complete": true,
2026-06-07T22:53:32.1783608Z           "evidence": [
2026-06-07T22:53:32.1783805Z             {
2026-06-07T22:53:32.1784013Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.1784279Z               "line": 260
2026-06-07T22:53:32.1784475Z             },
2026-06-07T22:53:32.1784644Z             {
2026-06-07T22:53:32.1784860Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-07T22:53:32.1785126Z               "line": 65
2026-06-07T22:53:32.1785321Z             },
2026-06-07T22:53:32.1785488Z             {
2026-06-07T22:53:32.1785690Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.1785946Z               "line": 239
2026-06-07T22:53:32.1786137Z             },
2026-06-07T22:53:32.1786299Z             {
2026-06-07T22:53:32.1786479Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1786715Z               "line": 337
2026-06-07T22:53:32.1786898Z             },
2026-06-07T22:53:32.1787177Z             {
2026-06-07T22:53:32.1787355Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1787588Z               "line": 782
2026-06-07T22:53:32.1787769Z             },
2026-06-07T22:53:32.1787936Z             {
2026-06-07T22:53:32.1788117Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1788360Z               "line": 1224
2026-06-07T22:53:32.1788547Z             },
2026-06-07T22:53:32.1788712Z             {
2026-06-07T22:53:32.1788895Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1789142Z               "line": 1239
2026-06-07T22:53:32.1789337Z             },
2026-06-07T22:53:32.1789503Z             {
2026-06-07T22:53:32.1789682Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1789926Z               "line": 1261
2026-06-07T22:53:32.1790120Z             }
2026-06-07T22:53:32.1790284Z           ]
2026-06-07T22:53:32.1790445Z         },
2026-06-07T22:53:32.1790607Z         "int": {
2026-06-07T22:53:32.1790789Z           "complete": false,
2026-06-07T22:53:32.1791002Z           "evidence": []
2026-06-07T22:53:32.1791195Z         },
2026-06-07T22:53:32.1791365Z         "unit": {
2026-06-07T22:53:32.1791547Z           "complete": true,
2026-06-07T22:53:32.1791852Z           "evidence": [
2026-06-07T22:53:32.1792043Z             {
2026-06-07T22:53:32.1792251Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.1792515Z               "line": 309
2026-06-07T22:53:32.1792705Z             },
2026-06-07T22:53:32.1792985Z             {
2026-06-07T22:53:32.1793168Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1793416Z               "line": 4756
2026-06-07T22:53:32.1793610Z             }
2026-06-07T22:53:32.1793777Z           ]
2026-06-07T22:53:32.1793944Z         }
2026-06-07T22:53:32.1794106Z       }
2026-06-07T22:53:32.1794268Z     },
2026-06-07T22:53:32.1794431Z     {
2026-06-07T22:53:32.1794603Z       "id": "REQ-CLI-3",
2026-06-07T22:53:32.1795424Z       "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-07T22:53:32.1796311Z       "requiredStages": [
2026-06-07T22:53:32.1796506Z         "impl",
2026-06-07T22:53:32.1796687Z         "unit"
2026-06-07T22:53:32.1796859Z       ],
2026-06-07T22:53:32.1797135Z       "stages": {
2026-06-07T22:53:32.1797312Z         "doc": {
2026-06-07T22:53:32.1797511Z           "complete": false,
2026-06-07T22:53:32.1797723Z           "evidence": []
2026-06-07T22:53:32.1797915Z         },
2026-06-07T22:53:32.1798076Z         "impl": {
2026-06-07T22:53:32.1798263Z           "complete": true,
2026-06-07T22:53:32.1798462Z           "evidence": [
2026-06-07T22:53:32.1798653Z             {
2026-06-07T22:53:32.1798840Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1799087Z               "line": 734
2026-06-07T22:53:32.1799282Z             }
2026-06-07T22:53:32.1799451Z           ]
2026-06-07T22:53:32.1799616Z         },
2026-06-07T22:53:32.1799780Z         "int": {
2026-06-07T22:53:32.1799959Z           "complete": false,
2026-06-07T22:53:32.1800173Z           "evidence": []
2026-06-07T22:53:32.1800361Z         },
2026-06-07T22:53:32.1800530Z         "unit": {
2026-06-07T22:53:32.1800710Z           "complete": true,
2026-06-07T22:53:32.1800919Z           "evidence": [
2026-06-07T22:53:32.1801111Z             {
2026-06-07T22:53:32.1801306Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1801549Z               "line": 4583
2026-06-07T22:53:32.1801745Z             }
2026-06-07T22:53:32.1801916Z           ]
2026-06-07T22:53:32.1802084Z         }
2026-06-07T22:53:32.1802245Z       }
2026-06-07T22:53:32.1802422Z     },
2026-06-07T22:53:32.1802589Z     {
2026-06-07T22:53:32.1802760Z       "id": "REQ-CONSENT-1",
2026-06-07T22:53:32.1803751Z       "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-07T22:53:32.1804872Z       "requiredStages": [
2026-06-07T22:53:32.1805071Z         "impl",
2026-06-07T22:53:32.1805245Z         "unit"
2026-06-07T22:53:32.1805419Z       ],
2026-06-07T22:53:32.1805590Z       "stages": {
2026-06-07T22:53:32.1805787Z         "doc": {
2026-06-07T22:53:32.1805965Z           "complete": false,
2026-06-07T22:53:32.1806170Z           "evidence": []
2026-06-07T22:53:32.1806365Z         },
2026-06-07T22:53:32.1806537Z         "impl": {
2026-06-07T22:53:32.1806723Z           "complete": true,
2026-06-07T22:53:32.1806928Z           "evidence": [
2026-06-07T22:53:32.1807195Z             {
2026-06-07T22:53:32.1807405Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1807662Z               "line": 27
2026-06-07T22:53:32.1807853Z             },
2026-06-07T22:53:32.1808028Z             {
2026-06-07T22:53:32.1808236Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1808732Z               "line": 75
2026-06-07T22:53:32.1808927Z             },
2026-06-07T22:53:32.1809090Z             {
2026-06-07T22:53:32.1809299Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1809552Z               "line": 98
2026-06-07T22:53:32.1809914Z             },
2026-06-07T22:53:32.1810082Z             {
2026-06-07T22:53:32.1810277Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1810528Z               "line": 82
2026-06-07T22:53:32.1810719Z             },
2026-06-07T22:53:32.1810883Z             {
2026-06-07T22:53:32.1811094Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1811347Z               "line": 109
2026-06-07T22:53:32.1811541Z             },
2026-06-07T22:53:32.1811713Z             {
2026-06-07T22:53:32.1811909Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1812166Z               "line": 127
2026-06-07T22:53:32.1812362Z             },
2026-06-07T22:53:32.1812529Z             {
2026-06-07T22:53:32.1812728Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1812987Z               "line": 142
2026-06-07T22:53:32.1813178Z             },
2026-06-07T22:53:32.1813344Z             {
2026-06-07T22:53:32.1858574Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1859014Z               "line": 4319
2026-06-07T22:53:32.1859233Z             }
2026-06-07T22:53:32.1859404Z           ]
2026-06-07T22:53:32.1859566Z         },
2026-06-07T22:53:32.1859738Z         "int": {
2026-06-07T22:53:32.1859996Z           "complete": false,
2026-06-07T22:53:32.1860307Z           "evidence": []
2026-06-07T22:53:32.1860506Z         },
2026-06-07T22:53:32.1860673Z         "unit": {
2026-06-07T22:53:32.1860857Z           "complete": true,
2026-06-07T22:53:32.1861065Z           "evidence": [
2026-06-07T22:53:32.1861252Z             {
2026-06-07T22:53:32.1861470Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1861746Z               "line": 334
2026-06-07T22:53:32.1861938Z             },
2026-06-07T22:53:32.1862109Z             {
2026-06-07T22:53:32.1862310Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1862568Z               "line": 380
2026-06-07T22:53:32.1862753Z             },
2026-06-07T22:53:32.1862920Z             {
2026-06-07T22:53:32.1863117Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1863371Z               "line": 391
2026-06-07T22:53:32.1863561Z             },
2026-06-07T22:53:32.1863722Z             {
2026-06-07T22:53:32.1863923Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1864176Z               "line": 165
2026-06-07T22:53:32.1864366Z             },
2026-06-07T22:53:32.1864528Z             {
2026-06-07T22:53:32.1864719Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1864972Z               "line": 184
2026-06-07T22:53:32.1865157Z             },
2026-06-07T22:53:32.1865320Z             {
2026-06-07T22:53:32.1865515Z               "path": "crates/spt-store/src/grants.rs",
2026-06-07T22:53:32.1865764Z               "line": 204
2026-06-07T22:53:32.1865949Z             },
2026-06-07T22:53:32.1866116Z             {
2026-06-07T22:53:32.1866296Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1866549Z               "line": 4909
2026-06-07T22:53:32.1866740Z             }
2026-06-07T22:53:32.1866901Z           ]
2026-06-07T22:53:32.1867169Z         }
2026-06-07T22:53:32.1867322Z       }
2026-06-07T22:53:32.1867488Z     },
2026-06-07T22:53:32.1867651Z     {
2026-06-07T22:53:32.1867822Z       "id": "REQ-CONSENT-2",
2026-06-07T22:53:32.1868756Z       "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-07T22:53:32.1869979Z       "requiredStages": [
2026-06-07T22:53:32.1870194Z         "impl",
2026-06-07T22:53:32.1870370Z         "unit"
2026-06-07T22:53:32.1870533Z       ],
2026-06-07T22:53:32.1870699Z       "stages": {
2026-06-07T22:53:32.1870867Z         "doc": {
2026-06-07T22:53:32.1871042Z           "complete": false,
2026-06-07T22:53:32.1871355Z           "evidence": []
2026-06-07T22:53:32.1871555Z         },
2026-06-07T22:53:32.1871720Z         "impl": {
2026-06-07T22:53:32.1871902Z           "complete": true,
2026-06-07T22:53:32.1872102Z           "evidence": [
2026-06-07T22:53:32.1872288Z             {
2026-06-07T22:53:32.1872494Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1872751Z               "line": 140
2026-06-07T22:53:32.1872941Z             },
2026-06-07T22:53:32.1873119Z             {
2026-06-07T22:53:32.1873313Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1873571Z               "line": 165
2026-06-07T22:53:32.1873763Z             },
2026-06-07T22:53:32.1873932Z             {
2026-06-07T22:53:32.1874126Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1874374Z               "line": 199
2026-06-07T22:53:32.1874564Z             },
2026-06-07T22:53:32.1874726Z             {
2026-06-07T22:53:32.1874921Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1875178Z               "line": 241
2026-06-07T22:53:32.1875361Z             },
2026-06-07T22:53:32.1875532Z             {
2026-06-07T22:53:32.1875722Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1875972Z               "line": 269
2026-06-07T22:53:32.1876166Z             },
2026-06-07T22:53:32.1876338Z             {
2026-06-07T22:53:32.1876539Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1876794Z               "line": 300
2026-06-07T22:53:32.1877151Z             },
2026-06-07T22:53:32.1877320Z             {
2026-06-07T22:53:32.1877510Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1877757Z               "line": 4184
2026-06-07T22:53:32.1877953Z             },
2026-06-07T22:53:32.1878115Z             {
2026-06-07T22:53:32.1878306Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1878540Z               "line": 4242
2026-06-07T22:53:32.1878754Z             }
2026-06-07T22:53:32.1878968Z           ]
2026-06-07T22:53:32.1879142Z         },
2026-06-07T22:53:32.1879302Z         "int": {
2026-06-07T22:53:32.1879488Z           "complete": false,
2026-06-07T22:53:32.1879689Z           "evidence": []
2026-06-07T22:53:32.1879877Z         },
2026-06-07T22:53:32.1880038Z         "unit": {
2026-06-07T22:53:32.1880220Z           "complete": true,
2026-06-07T22:53:32.1880416Z           "evidence": [
2026-06-07T22:53:32.1880601Z             {
2026-06-07T22:53:32.1880797Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1881050Z               "line": 419
2026-06-07T22:53:32.1881240Z             },
2026-06-07T22:53:32.1881408Z             {
2026-06-07T22:53:32.1881607Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1881864Z               "line": 436
2026-06-07T22:53:32.1882049Z             },
2026-06-07T22:53:32.1882213Z             {
2026-06-07T22:53:32.1882406Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1882658Z               "line": 472
2026-06-07T22:53:32.1882843Z             },
2026-06-07T22:53:32.1883006Z             {
2026-06-07T22:53:32.1883200Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.1883454Z               "line": 516
2026-06-07T22:53:32.1883636Z             },
2026-06-07T22:53:32.1883797Z             {
2026-06-07T22:53:32.1883984Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1884227Z               "line": 5804
2026-06-07T22:53:32.1884421Z             },
2026-06-07T22:53:32.1884592Z             {
2026-06-07T22:53:32.1884780Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1885020Z               "line": 5886
2026-06-07T22:53:32.1885310Z             }
2026-06-07T22:53:32.1885481Z           ]
2026-06-07T22:53:32.1885643Z         }
2026-06-07T22:53:32.1885805Z       }
2026-06-07T22:53:32.1885968Z     },
2026-06-07T22:53:32.1886120Z     {
2026-06-07T22:53:32.1886306Z       "id": "REQ-CONV-1",
2026-06-07T22:53:32.1888114Z       "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-07T22:53:32.1889566Z       "requiredStages": [
2026-06-07T22:53:32.1889768Z         "impl",
2026-06-07T22:53:32.1889942Z         "unit"
2026-06-07T22:53:32.1890113Z       ],
2026-06-07T22:53:32.1890303Z       "stages": {
2026-06-07T22:53:32.1890475Z         "doc": {
2026-06-07T22:53:32.1890651Z           "complete": false,
2026-06-07T22:53:32.1890860Z           "evidence": []
2026-06-07T22:53:32.1891052Z         },
2026-06-07T22:53:32.1891213Z         "impl": {
2026-06-07T22:53:32.1891399Z           "complete": true,
2026-06-07T22:53:32.1891605Z           "evidence": [
2026-06-07T22:53:32.1891795Z             {
2026-06-07T22:53:32.1892010Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1892274Z               "line": 576
2026-06-07T22:53:32.1892457Z             },
2026-06-07T22:53:32.1892619Z             {
2026-06-07T22:53:32.1892821Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.1893084Z               "line": 97
2026-06-07T22:53:32.1893266Z             },
2026-06-07T22:53:32.1893432Z             {
2026-06-07T22:53:32.1893637Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.1893890Z               "line": 324
2026-06-07T22:53:32.1894085Z             },
2026-06-07T22:53:32.1894257Z             {
2026-06-07T22:53:32.1894448Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.1894705Z               "line": 365
2026-06-07T22:53:32.1894897Z             },
2026-06-07T22:53:32.1895057Z             {
2026-06-07T22:53:32.1895265Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.1895518Z               "line": 444
2026-06-07T22:53:32.1895708Z             },
2026-06-07T22:53:32.1895880Z             {
2026-06-07T22:53:32.1896080Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1896337Z               "line": 544
2026-06-07T22:53:32.1896528Z             },
2026-06-07T22:53:32.1896695Z             {
2026-06-07T22:53:32.1896910Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1897253Z               "line": 570
2026-06-07T22:53:32.1897449Z             },
2026-06-07T22:53:32.1897620Z             {
2026-06-07T22:53:32.1897834Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.1898110Z               "line": 333
2026-06-07T22:53:32.1898301Z             },
2026-06-07T22:53:32.1898473Z             {
2026-06-07T22:53:32.1898674Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T22:53:32.1898993Z               "line": 19
2026-06-07T22:53:32.1899178Z             }
2026-06-07T22:53:32.1899356Z           ]
2026-06-07T22:53:32.1899594Z         },
2026-06-07T22:53:32.1899952Z         "int": {
2026-06-07T22:53:32.1900233Z           "complete": false,
2026-06-07T22:53:32.1900546Z           "evidence": []
2026-06-07T22:53:32.1900973Z         },
2026-06-07T22:53:32.1901250Z         "unit": {
2026-06-07T22:53:32.1901516Z           "complete": true,
2026-06-07T22:53:32.1901899Z           "evidence": [
2026-06-07T22:53:32.1902190Z             {
2026-06-07T22:53:32.1902514Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1902880Z               "line": 833
2026-06-07T22:53:32.1903258Z             },
2026-06-07T22:53:32.1903582Z             {
2026-06-07T22:53:32.1903892Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T22:53:32.1904312Z               "line": 108
2026-06-07T22:53:32.1904607Z             },
2026-06-07T22:53:32.1904846Z             {
2026-06-07T22:53:32.1905323Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T22:53:32.1905669Z               "line": 134
2026-06-07T22:53:32.1905981Z             },
2026-06-07T22:53:32.1906268Z             {
2026-06-07T22:53:32.1906553Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-07T22:53:32.1907069Z               "line": 144
2026-06-07T22:53:32.1907356Z             }
2026-06-07T22:53:32.1907647Z           ]
2026-06-07T22:53:32.1907914Z         }
2026-06-07T22:53:32.1908166Z       }
2026-06-07T22:53:32.1908465Z     },
2026-06-07T22:53:32.1908714Z     {
2026-06-07T22:53:32.1908976Z       "id": "REQ-CONV-2",
2026-06-07T22:53:32.1910416Z       "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-07T22:53:32.1911699Z       "requiredStages": [
2026-06-07T22:53:32.1912024Z         "impl",
2026-06-07T22:53:32.1912290Z         "unit"
2026-06-07T22:53:32.1912544Z       ],
2026-06-07T22:53:32.1912848Z       "stages": {
2026-06-07T22:53:32.1913172Z         "doc": {
2026-06-07T22:53:32.1913473Z           "complete": false,
2026-06-07T22:53:32.1913781Z           "evidence": []
2026-06-07T22:53:32.1914052Z         },
2026-06-07T22:53:32.1914358Z         "impl": {
2026-06-07T22:53:32.1914643Z           "complete": true,
2026-06-07T22:53:32.1914958Z           "evidence": [
2026-06-07T22:53:32.1915335Z             {
2026-06-07T22:53:32.1915659Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1916073Z               "line": 316
2026-06-07T22:53:32.1916366Z             },
2026-06-07T22:53:32.1916643Z             {
2026-06-07T22:53:32.1917320Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1917672Z               "line": 292
2026-06-07T22:53:32.1918001Z             },
2026-06-07T22:53:32.1918273Z             {
2026-06-07T22:53:32.1918621Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.1919159Z               "line": 625
2026-06-07T22:53:32.1919436Z             },
2026-06-07T22:53:32.1919740Z             {
2026-06-07T22:53:32.1920036Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.1920379Z               "line": 636
2026-06-07T22:53:32.1920724Z             },
2026-06-07T22:53:32.1921009Z             {
2026-06-07T22:53:32.1921434Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.1921775Z               "line": 334
2026-06-07T22:53:32.1922041Z             },
2026-06-07T22:53:32.1922361Z             {
2026-06-07T22:53:32.1922632Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1923004Z               "line": 1771
2026-06-07T22:53:32.1923300Z             },
2026-06-07T22:53:32.1923591Z             {
2026-06-07T22:53:32.1923925Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1924252Z               "line": 1787
2026-06-07T22:53:32.1924573Z             },
2026-06-07T22:53:32.1924840Z             {
2026-06-07T22:53:32.1925127Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1925741Z               "line": 1844
2026-06-07T22:53:32.1926066Z             }
2026-06-07T22:53:32.1926338Z           ]
2026-06-07T22:53:32.1926605Z         },
2026-06-07T22:53:32.1926875Z         "int": {
2026-06-07T22:53:32.1927279Z           "complete": false,
2026-06-07T22:53:32.1927589Z           "evidence": []
2026-06-07T22:53:32.1927856Z         },
2026-06-07T22:53:32.1928151Z         "unit": {
2026-06-07T22:53:32.1928580Z           "complete": true,
2026-06-07T22:53:32.1928933Z           "evidence": [
2026-06-07T22:53:32.1929228Z             {
2026-06-07T22:53:32.1929505Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1929923Z               "line": 914
2026-06-07T22:53:32.1930305Z             }
2026-06-07T22:53:32.1930606Z           ]
2026-06-07T22:53:32.1930868Z         }
2026-06-07T22:53:32.1931135Z       }
2026-06-07T22:53:32.1931454Z     },
2026-06-07T22:53:32.1931703Z     {
2026-06-07T22:53:32.1931999Z       "id": "REQ-DAEMON-1",
2026-06-07T22:53:32.1932382Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-07T22:53:32.1932800Z       "requiredStages": [
2026-06-07T22:53:32.1933124Z         "impl",
2026-06-07T22:53:32.1933388Z         "unit",
2026-06-07T22:53:32.1933716Z         "int"
2026-06-07T22:53:32.1933983Z       ],
2026-06-07T22:53:32.1934251Z       "stages": {
2026-06-07T22:53:32.1934547Z         "doc": {
2026-06-07T22:53:32.1934826Z           "complete": false,
2026-06-07T22:53:32.1935134Z           "evidence": []
2026-06-07T22:53:32.1935453Z         },
2026-06-07T22:53:32.1935730Z         "impl": {
2026-06-07T22:53:32.1936074Z           "complete": true,
2026-06-07T22:53:32.1936384Z           "evidence": [
2026-06-07T22:53:32.1936650Z             {
2026-06-07T22:53:32.1937076Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1937445Z               "line": 12
2026-06-07T22:53:32.1937739Z             },
2026-06-07T22:53:32.1938030Z             {
2026-06-07T22:53:32.1938826Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1939236Z               "line": 16
2026-06-07T22:53:32.1939508Z             },
2026-06-07T22:53:32.1939779Z             {
2026-06-07T22:53:32.1940093Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T22:53:32.1940432Z               "line": 15
2026-06-07T22:53:32.1940866Z             },
2026-06-07T22:53:32.1941123Z             {
2026-06-07T22:53:32.1941495Z               "path": "crates/spt/src/api/live.rs",
2026-06-07T22:53:32.1941829Z               "line": 13
2026-06-07T22:53:32.1942125Z             }
2026-06-07T22:53:32.1942410Z           ]
2026-06-07T22:53:32.1942667Z         },
2026-06-07T22:53:32.1942975Z         "int": {
2026-06-07T22:53:32.1943247Z           "complete": true,
2026-06-07T22:53:32.1943614Z           "evidence": [
2026-06-07T22:53:32.1943904Z             {
2026-06-07T22:53:32.1944200Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T22:53:32.1944610Z               "line": 32
2026-06-07T22:53:32.1944886Z             }
2026-06-07T22:53:32.1945135Z           ]
2026-06-07T22:53:32.1945438Z         },
2026-06-07T22:53:32.1945690Z         "unit": {
2026-06-07T22:53:32.1946038Z           "complete": true,
2026-06-07T22:53:32.1946329Z           "evidence": [
2026-06-07T22:53:32.1946600Z             {
2026-06-07T22:53:32.1946934Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1947392Z               "line": 285
2026-06-07T22:53:32.1947697Z             },
2026-06-07T22:53:32.1947967Z             {
2026-06-07T22:53:32.1948270Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1948676Z               "line": 293
2026-06-07T22:53:32.1949019Z             },
2026-06-07T22:53:32.1955328Z             {
2026-06-07T22:53:32.1955615Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1955898Z               "line": 309
2026-06-07T22:53:32.1956102Z             },
2026-06-07T22:53:32.1956273Z             {
2026-06-07T22:53:32.1956482Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1956745Z               "line": 317
2026-06-07T22:53:32.1957046Z             },
2026-06-07T22:53:32.1957223Z             {
2026-06-07T22:53:32.1957436Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1957732Z               "line": 565
2026-06-07T22:53:32.1957924Z             },
2026-06-07T22:53:32.1958095Z             {
2026-06-07T22:53:32.1958450Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1958720Z               "line": 635
2026-06-07T22:53:32.1958918Z             },
2026-06-07T22:53:32.1959082Z             {
2026-06-07T22:53:32.1959284Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T22:53:32.1959636Z               "line": 104
2026-06-07T22:53:32.1959823Z             },
2026-06-07T22:53:32.1959988Z             {
2026-06-07T22:53:32.1960189Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-07T22:53:32.1960443Z               "line": 129
2026-06-07T22:53:32.1960632Z             }
2026-06-07T22:53:32.1960801Z           ]
2026-06-07T22:53:32.1960962Z         }
2026-06-07T22:53:32.1961125Z       }
2026-06-07T22:53:32.1961289Z     },
2026-06-07T22:53:32.1961453Z     {
2026-06-07T22:53:32.1961627Z       "id": "REQ-DAEMON-2",
2026-06-07T22:53:32.1961881Z       "title": "Broker/brain split for seamless self-update",
2026-06-07T22:53:32.1962181Z       "requiredStages": [
2026-06-07T22:53:32.1962387Z         "impl",
2026-06-07T22:53:32.1962567Z         "unit",
2026-06-07T22:53:32.1962739Z         "int"
2026-06-07T22:53:32.1962915Z       ],
2026-06-07T22:53:32.1963087Z       "stages": {
2026-06-07T22:53:32.1963178Z         "doc": {
2026-06-07T22:53:32.1963279Z           "complete": false,
2026-06-07T22:53:32.1963379Z           "evidence": []
2026-06-07T22:53:32.1963473Z         },
2026-06-07T22:53:32.1963560Z         "impl": {
2026-06-07T22:53:32.1963661Z           "complete": true,
2026-06-07T22:53:32.1963754Z           "evidence": [
2026-06-07T22:53:32.1963844Z             {
2026-06-07T22:53:32.1963978Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.1964071Z               "line": 23
2026-06-07T22:53:32.1964161Z             },
2026-06-07T22:53:32.1964243Z             {
2026-06-07T22:53:32.1964363Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.1964457Z               "line": 531
2026-06-07T22:53:32.1964548Z             },
2026-06-07T22:53:32.1964639Z             {
2026-06-07T22:53:32.1964753Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.1964848Z               "line": 684
2026-06-07T22:53:32.1964935Z             },
2026-06-07T22:53:32.1965020Z             {
2026-06-07T22:53:32.1965153Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.1965245Z               "line": 32
2026-06-07T22:53:32.1965330Z             },
2026-06-07T22:53:32.1965415Z             {
2026-06-07T22:53:32.1965531Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.1965621Z               "line": 191
2026-06-07T22:53:32.1965712Z             },
2026-06-07T22:53:32.1965807Z             {
2026-06-07T22:53:32.1965922Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.1966016Z               "line": 546
2026-06-07T22:53:32.1966102Z             },
2026-06-07T22:53:32.1966199Z             {
2026-06-07T22:53:32.1966321Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.1966411Z               "line": 788
2026-06-07T22:53:32.1966502Z             },
2026-06-07T22:53:32.1966587Z             {
2026-06-07T22:53:32.1966704Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T22:53:32.1966795Z               "line": 11
2026-06-07T22:53:32.1966891Z             },
2026-06-07T22:53:32.1967061Z             {
2026-06-07T22:53:32.1967173Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.1967277Z               "line": 146
2026-06-07T22:53:32.1967362Z             },
2026-06-07T22:53:32.1967454Z             {
2026-06-07T22:53:32.1967563Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.1967663Z               "line": 13
2026-06-07T22:53:32.1967754Z             },
2026-06-07T22:53:32.1967840Z             {
2026-06-07T22:53:32.1967959Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1968049Z               "line": 27
2026-06-07T22:53:32.1968145Z             },
2026-06-07T22:53:32.1968335Z             {
2026-06-07T22:53:32.1968460Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1968554Z               "line": 94
2026-06-07T22:53:32.1968640Z             },
2026-06-07T22:53:32.1968733Z             {
2026-06-07T22:53:32.1968940Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1969035Z               "line": 415
2026-06-07T22:53:32.1969116Z             },
2026-06-07T22:53:32.1969210Z             {
2026-06-07T22:53:32.1969323Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1969420Z               "line": 535
2026-06-07T22:53:32.1969506Z             },
2026-06-07T22:53:32.1969590Z             {
2026-06-07T22:53:32.1969701Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1969791Z               "line": 595
2026-06-07T22:53:32.1969877Z             },
2026-06-07T22:53:32.1969967Z             {
2026-06-07T22:53:32.1970087Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1970182Z               "line": 644
2026-06-07T22:53:32.1970268Z             },
2026-06-07T22:53:32.1970354Z             {
2026-06-07T22:53:32.1970468Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1970563Z               "line": 692
2026-06-07T22:53:32.1970646Z             },
2026-06-07T22:53:32.1970722Z             {
2026-06-07T22:53:32.1970845Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T22:53:32.1970931Z               "line": 10
2026-06-07T22:53:32.1971027Z             }
2026-06-07T22:53:32.1971116Z           ]
2026-06-07T22:53:32.1971202Z         },
2026-06-07T22:53:32.1971294Z         "int": {
2026-06-07T22:53:32.1971384Z           "complete": true,
2026-06-07T22:53:32.1971483Z           "evidence": [
2026-06-07T22:53:32.1971565Z             {
2026-06-07T22:53:32.1971690Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-07T22:53:32.1971788Z               "line": 17
2026-06-07T22:53:32.1971878Z             },
2026-06-07T22:53:32.1971965Z             {
2026-06-07T22:53:32.1972093Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T22:53:32.1972188Z               "line": 33
2026-06-07T22:53:32.1972275Z             },
2026-06-07T22:53:32.1972361Z             {
2026-06-07T22:53:32.1972488Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-07T22:53:32.1972580Z               "line": 19
2026-06-07T22:53:32.1972670Z             },
2026-06-07T22:53:32.1972751Z             {
2026-06-07T22:53:32.1972880Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T22:53:32.1972971Z               "line": 70
2026-06-07T22:53:32.1973061Z             },
2026-06-07T22:53:32.1973151Z             {
2026-06-07T22:53:32.1973272Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T22:53:32.1973366Z               "line": 90
2026-06-07T22:53:32.1973457Z             },
2026-06-07T22:53:32.1973549Z             {
2026-06-07T22:53:32.1973676Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T22:53:32.1973767Z               "line": 166
2026-06-07T22:53:32.1973849Z             },
2026-06-07T22:53:32.1973925Z             {
2026-06-07T22:53:32.1974048Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T22:53:32.1974145Z               "line": 208
2026-06-07T22:53:32.1974240Z             },
2026-06-07T22:53:32.1974319Z             {
2026-06-07T22:53:32.1974447Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-07T22:53:32.1974543Z               "line": 127
2026-06-07T22:53:32.1974627Z             }
2026-06-07T22:53:32.1974721Z           ]
2026-06-07T22:53:32.1974803Z         },
2026-06-07T22:53:32.1974903Z         "unit": {
2026-06-07T22:53:32.1974979Z           "complete": true,
2026-06-07T22:53:32.1975069Z           "evidence": [
2026-06-07T22:53:32.1975157Z             {
2026-06-07T22:53:32.1975271Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T22:53:32.1975462Z               "line": 62
2026-06-07T22:53:32.1975547Z             },
2026-06-07T22:53:32.1975632Z             {
2026-06-07T22:53:32.1975747Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T22:53:32.1975842Z               "line": 76
2026-06-07T22:53:32.1975957Z             },
2026-06-07T22:53:32.1976111Z             {
2026-06-07T22:53:32.1976223Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-07T22:53:32.1976314Z               "line": 88
2026-06-07T22:53:32.1976401Z             },
2026-06-07T22:53:32.1976486Z             {
2026-06-07T22:53:32.1976605Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.1976702Z               "line": 294
2026-06-07T22:53:32.1976783Z             },
2026-06-07T22:53:32.1976876Z             {
2026-06-07T22:53:32.1977062Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.1977152Z               "line": 583
2026-06-07T22:53:32.1977236Z             },
2026-06-07T22:53:32.1977326Z             {
2026-06-07T22:53:32.1977442Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.1977531Z               "line": 591
2026-06-07T22:53:32.1977621Z             },
2026-06-07T22:53:32.1977704Z             {
2026-06-07T22:53:32.1977818Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.1977917Z               "line": 608
2026-06-07T22:53:32.1977999Z             },
2026-06-07T22:53:32.1978090Z             {
2026-06-07T22:53:32.1978194Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.1978290Z               "line": 662
2026-06-07T22:53:32.1978376Z             },
2026-06-07T22:53:32.1978466Z             {
2026-06-07T22:53:32.1978585Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1978677Z               "line": 762
2026-06-07T22:53:32.1978767Z             },
2026-06-07T22:53:32.1978848Z             {
2026-06-07T22:53:32.1978968Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.1979058Z               "line": 774
2026-06-07T22:53:32.1979153Z             },
2026-06-07T22:53:32.1979239Z             {
2026-06-07T22:53:32.1979359Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T22:53:32.1979453Z               "line": 110
2026-06-07T22:53:32.1979533Z             }
2026-06-07T22:53:32.1979629Z           ]
2026-06-07T22:53:32.1979713Z         }
2026-06-07T22:53:32.1979803Z       }
2026-06-07T22:53:32.1979888Z     },
2026-06-07T22:53:32.1979975Z     {
2026-06-07T22:53:32.1980075Z       "id": "REQ-DAEMON-3",
2026-06-07T22:53:32.1980232Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-07T22:53:32.1980328Z       "requiredStages": [
2026-06-07T22:53:32.1980413Z         "impl",
2026-06-07T22:53:32.1980503Z         "unit",
2026-06-07T22:53:32.1980595Z         "int"
2026-06-07T22:53:32.1980676Z       ],
2026-06-07T22:53:32.1980766Z       "stages": {
2026-06-07T22:53:32.1980852Z         "doc": {
2026-06-07T22:53:32.1980952Z           "complete": false,
2026-06-07T22:53:32.1981048Z           "evidence": []
2026-06-07T22:53:32.1981138Z         },
2026-06-07T22:53:32.1981229Z         "impl": {
2026-06-07T22:53:32.1981319Z           "complete": true,
2026-06-07T22:53:32.1981410Z           "evidence": [
2026-06-07T22:53:32.1981496Z             {
2026-06-07T22:53:32.1981620Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.1981710Z               "line": 14
2026-06-07T22:53:32.1981796Z             },
2026-06-07T22:53:32.1981883Z             {
2026-06-07T22:53:32.1982005Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-07T22:53:32.1982091Z               "line": 11
2026-06-07T22:53:32.1982179Z             },
2026-06-07T22:53:32.1982264Z             {
2026-06-07T22:53:32.1982376Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.1982467Z               "line": 247
2026-06-07T22:53:32.1982554Z             },
2026-06-07T22:53:32.1982635Z             {
2026-06-07T22:53:32.1982845Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1982940Z               "line": 1223
2026-06-07T22:53:32.1983029Z             },
2026-06-07T22:53:32.1983116Z             {
2026-06-07T22:53:32.1983221Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1983316Z               "line": 2598
2026-06-07T22:53:32.1983484Z             },
2026-06-07T22:53:32.1983573Z             {
2026-06-07T22:53:32.1983673Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1983770Z               "line": 2619
2026-06-07T22:53:32.1983855Z             }
2026-06-07T22:53:32.1983941Z           ]
2026-06-07T22:53:32.1984027Z         },
2026-06-07T22:53:32.1984113Z         "int": {
2026-06-07T22:53:32.1984207Z           "complete": true,
2026-06-07T22:53:32.1984298Z           "evidence": [
2026-06-07T22:53:32.1984385Z             {
2026-06-07T22:53:32.1984499Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1984588Z               "line": 46
2026-06-07T22:53:32.1984675Z             },
2026-06-07T22:53:32.1984772Z             {
2026-06-07T22:53:32.1984888Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.1984979Z               "line": 435
2026-06-07T22:53:32.1985060Z             }
2026-06-07T22:53:32.1985145Z           ]
2026-06-07T22:53:32.1985229Z         },
2026-06-07T22:53:32.1985329Z         "unit": {
2026-06-07T22:53:32.1985421Z           "complete": true,
2026-06-07T22:53:32.1985511Z           "evidence": [
2026-06-07T22:53:32.1985596Z             {
2026-06-07T22:53:32.1985722Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.1985807Z               "line": 562
2026-06-07T22:53:32.1985896Z             },
2026-06-07T22:53:32.1985983Z             {
2026-06-07T22:53:32.1986083Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.1986174Z               "line": 6591
2026-06-07T22:53:32.1986259Z             }
2026-06-07T22:53:32.1986346Z           ]
2026-06-07T22:53:32.1986426Z         }
2026-06-07T22:53:32.1986512Z       }
2026-06-07T22:53:32.1986603Z     },
2026-06-07T22:53:32.1986685Z     {
2026-06-07T22:53:32.1986783Z       "id": "REQ-DAEMON-4",
2026-06-07T22:53:32.1986903Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-07T22:53:32.1987065Z       "requiredStages": [
2026-06-07T22:53:32.1987151Z         "impl",
2026-06-07T22:53:32.1987247Z         "unit",
2026-06-07T22:53:32.1987348Z         "int"
2026-06-07T22:53:32.1987431Z       ],
2026-06-07T22:53:32.1987521Z       "stages": {
2026-06-07T22:53:32.1987613Z         "doc": {
2026-06-07T22:53:32.1987707Z           "complete": false,
2026-06-07T22:53:32.1987796Z           "evidence": []
2026-06-07T22:53:32.1987881Z         },
2026-06-07T22:53:32.1987978Z         "impl": {
2026-06-07T22:53:32.1988068Z           "complete": true,
2026-06-07T22:53:32.1988163Z           "evidence": [
2026-06-07T22:53:32.1988249Z             {
2026-06-07T22:53:32.1988374Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1988468Z               "line": 371
2026-06-07T22:53:32.1988559Z             },
2026-06-07T22:53:32.1988645Z             {
2026-06-07T22:53:32.1988769Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1988869Z               "line": 436
2026-06-07T22:53:32.1988951Z             },
2026-06-07T22:53:32.1989041Z             {
2026-06-07T22:53:32.1989160Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1989256Z               "line": 458
2026-06-07T22:53:32.1989341Z             }
2026-06-07T22:53:32.1989422Z           ]
2026-06-07T22:53:32.1989513Z         },
2026-06-07T22:53:32.1989595Z         "int": {
2026-06-07T22:53:32.1989689Z           "complete": true,
2026-06-07T22:53:32.1989779Z           "evidence": [
2026-06-07T22:53:32.1989872Z             {
2026-06-07T22:53:32.1990003Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T22:53:32.1990098Z               "line": 34
2026-06-07T22:53:32.1990184Z             }
2026-06-07T22:53:32.1990269Z           ]
2026-06-07T22:53:32.1990453Z         },
2026-06-07T22:53:32.1990545Z         "unit": {
2026-06-07T22:53:32.1990640Z           "complete": true,
2026-06-07T22:53:32.1990739Z           "evidence": [
2026-06-07T22:53:32.1990821Z             {
2026-06-07T22:53:32.1990945Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.1991126Z               "line": 428
2026-06-07T22:53:32.1991212Z             },
2026-06-07T22:53:32.1991298Z             {
2026-06-07T22:53:32.1991417Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1991508Z               "line": 784
2026-06-07T22:53:32.1991593Z             },
2026-06-07T22:53:32.1991678Z             {
2026-06-07T22:53:32.1991794Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1991889Z               "line": 854
2026-06-07T22:53:32.1991970Z             },
2026-06-07T22:53:32.1992061Z             {
2026-06-07T22:53:32.1992180Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1992275Z               "line": 884
2026-06-07T22:53:32.1992366Z             },
2026-06-07T22:53:32.1992452Z             {
2026-06-07T22:53:32.1992570Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.1992666Z               "line": 917
2026-06-07T22:53:32.1992748Z             }
2026-06-07T22:53:32.1992847Z           ]
2026-06-07T22:53:32.1992931Z         }
2026-06-07T22:53:32.1993022Z       }
2026-06-07T22:53:32.1993105Z     },
2026-06-07T22:53:32.1993195Z     {
2026-06-07T22:53:32.1993284Z       "id": "REQ-DAEMON-5",
2026-06-07T22:53:32.1994683Z       "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-07T22:53:32.1994791Z       "requiredStages": [
2026-06-07T22:53:32.1994882Z         "impl",
2026-06-07T22:53:32.1994969Z         "unit"
2026-06-07T22:53:32.1995060Z       ],
2026-06-07T22:53:32.1995148Z       "stages": {
2026-06-07T22:53:32.1995236Z         "doc": {
2026-06-07T22:53:32.1995337Z           "complete": false,
2026-06-07T22:53:32.1995435Z           "evidence": []
2026-06-07T22:53:32.1995520Z         },
2026-06-07T22:53:32.1995611Z         "impl": {
2026-06-07T22:53:32.1995710Z           "complete": true,
2026-06-07T22:53:32.1995799Z           "evidence": [
2026-06-07T22:53:32.1995889Z             {
2026-06-07T22:53:32.1996014Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1996113Z               "line": 282
2026-06-07T22:53:32.1996194Z             },
2026-06-07T22:53:32.1996282Z             {
2026-06-07T22:53:32.1996410Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1996505Z               "line": 639
2026-06-07T22:53:32.1996601Z             },
2026-06-07T22:53:32.1996686Z             {
2026-06-07T22:53:32.1996810Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1996901Z               "line": 652
2026-06-07T22:53:32.1997077Z             },
2026-06-07T22:53:32.1997163Z             {
2026-06-07T22:53:32.1997287Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1997378Z               "line": 670
2026-06-07T22:53:32.1997463Z             },
2026-06-07T22:53:32.1997550Z             {
2026-06-07T22:53:32.1997663Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1997759Z               "line": 711
2026-06-07T22:53:32.1997850Z             }
2026-06-07T22:53:32.1997931Z           ]
2026-06-07T22:53:32.1998020Z         },
2026-06-07T22:53:32.1998105Z         "int": {
2026-06-07T22:53:32.1998206Z           "complete": false,
2026-06-07T22:53:32.1998300Z           "evidence": []
2026-06-07T22:53:32.1998385Z         },
2026-06-07T22:53:32.1998576Z         "unit": {
2026-06-07T22:53:32.1998675Z           "complete": true,
2026-06-07T22:53:32.1998771Z           "evidence": [
2026-06-07T22:53:32.1998862Z             {
2026-06-07T22:53:32.1998995Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1999086Z               "line": 759
2026-06-07T22:53:32.1999281Z             },
2026-06-07T22:53:32.1999372Z             {
2026-06-07T22:53:32.1999492Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1999587Z               "line": 783
2026-06-07T22:53:32.1999672Z             },
2026-06-07T22:53:32.1999759Z             {
2026-06-07T22:53:32.1999877Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.1999968Z               "line": 809
2026-06-07T22:53:32.2000054Z             }
2026-06-07T22:53:32.2000141Z           ]
2026-06-07T22:53:32.2000225Z         }
2026-06-07T22:53:32.2000311Z       }
2026-06-07T22:53:32.2000403Z     },
2026-06-07T22:53:32.2000488Z     {
2026-06-07T22:53:32.2000597Z       "id": "REQ-DOCS-1",
2026-06-07T22:53:32.2000801Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-07T22:53:32.2000895Z       "requiredStages": [
2026-06-07T22:53:32.2000989Z         "doc",
2026-06-07T22:53:32.2001071Z         "impl"
2026-06-07T22:53:32.2001172Z       ],
2026-06-07T22:53:32.2001262Z       "stages": {
2026-06-07T22:53:32.2001352Z         "doc": {
2026-06-07T22:53:32.2001448Z           "complete": true,
2026-06-07T22:53:32.2001538Z           "evidence": [
2026-06-07T22:53:32.2001628Z             {
2026-06-07T22:53:32.2001734Z               "path": "docs-site/src/index.md",
2026-06-07T22:53:32.2001829Z               "line": 50
2026-06-07T22:53:32.2001915Z             }
2026-06-07T22:53:32.2002006Z           ]
2026-06-07T22:53:32.2002092Z         },
2026-06-07T22:53:32.2002182Z         "impl": {
2026-06-07T22:53:32.2002277Z           "complete": true,
2026-06-07T22:53:32.2002369Z           "evidence": [
2026-06-07T22:53:32.2002459Z             {
2026-06-07T22:53:32.2002592Z               "path": ".github/workflows/docs-publish.yml",
2026-06-07T22:53:32.2002683Z               "line": 12
2026-06-07T22:53:32.2002773Z             },
2026-06-07T22:53:32.2002859Z             {
2026-06-07T22:53:32.2002975Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2003069Z               "line": 14
2026-06-07T22:53:32.2003158Z             }
2026-06-07T22:53:32.2003241Z           ]
2026-06-07T22:53:32.2003327Z         },
2026-06-07T22:53:32.2003416Z         "int": {
2026-06-07T22:53:32.2003511Z           "complete": false,
2026-06-07T22:53:32.2003602Z           "evidence": []
2026-06-07T22:53:32.2003684Z         },
2026-06-07T22:53:32.2003779Z         "unit": {
2026-06-07T22:53:32.2003873Z           "complete": false,
2026-06-07T22:53:32.2003970Z           "evidence": []
2026-06-07T22:53:32.2004060Z         }
2026-06-07T22:53:32.2004145Z       }
2026-06-07T22:53:32.2004236Z     },
2026-06-07T22:53:32.2004318Z     {
2026-06-07T22:53:32.2004422Z       "id": "REQ-DOCS-2",
2026-06-07T22:53:32.2004589Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-07T22:53:32.2004684Z       "requiredStages": [
2026-06-07T22:53:32.2004775Z         "doc",
2026-06-07T22:53:32.2004860Z         "int"
2026-06-07T22:53:32.2004947Z       ],
2026-06-07T22:53:32.2005041Z       "stages": {
2026-06-07T22:53:32.2005132Z         "doc": {
2026-06-07T22:53:32.2005224Z           "complete": true,
2026-06-07T22:53:32.2005319Z           "evidence": [
2026-06-07T22:53:32.2005409Z             {
2026-06-07T22:53:32.2005539Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-07T22:53:32.2005634Z               "line": 3
2026-06-07T22:53:32.2005718Z             },
2026-06-07T22:53:32.2005815Z             {
2026-06-07T22:53:32.2005944Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-07T22:53:32.2006037Z               "line": 3
2026-06-07T22:53:32.2006123Z             }
2026-06-07T22:53:32.2006204Z           ]
2026-06-07T22:53:32.2006368Z         },
2026-06-07T22:53:32.2006459Z         "impl": {
2026-06-07T22:53:32.2006560Z           "complete": false,
2026-06-07T22:53:32.2006651Z           "evidence": []
2026-06-07T22:53:32.2006740Z         },
2026-06-07T22:53:32.2006827Z         "int": {
2026-06-07T22:53:32.2006917Z           "complete": true,
2026-06-07T22:53:32.2007180Z           "evidence": [
2026-06-07T22:53:32.2007270Z             {
2026-06-07T22:53:32.2007403Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T22:53:32.2007495Z               "line": 14
2026-06-07T22:53:32.2007585Z             }
2026-06-07T22:53:32.2007670Z           ]
2026-06-07T22:53:32.2007757Z         },
2026-06-07T22:53:32.2007848Z         "unit": {
2026-06-07T22:53:32.2007943Z           "complete": false,
2026-06-07T22:53:32.2008033Z           "evidence": []
2026-06-07T22:53:32.2008115Z         }
2026-06-07T22:53:32.2008205Z       }
2026-06-07T22:53:32.2008295Z     },
2026-06-07T22:53:32.2008382Z     {
2026-06-07T22:53:32.2008487Z       "id": "REQ-DOCS-3",
2026-06-07T22:53:32.2008694Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-07T22:53:32.2008795Z       "requiredStages": [
2026-06-07T22:53:32.2008878Z         "doc"
2026-06-07T22:53:32.2008969Z       ],
2026-06-07T22:53:32.2009059Z       "stages": {
2026-06-07T22:53:32.2009150Z         "doc": {
2026-06-07T22:53:32.2009245Z           "complete": true,
2026-06-07T22:53:32.2009341Z           "evidence": [
2026-06-07T22:53:32.2009427Z             {
2026-06-07T22:53:32.2009541Z               "path": "docs-site/src/index.md",
2026-06-07T22:53:32.2009631Z               "line": 42
2026-06-07T22:53:32.2009719Z             }
2026-06-07T22:53:32.2009803Z           ]
2026-06-07T22:53:32.2009893Z         },
2026-06-07T22:53:32.2009980Z         "impl": {
2026-06-07T22:53:32.2010076Z           "complete": false,
2026-06-07T22:53:32.2010166Z           "evidence": []
2026-06-07T22:53:32.2010256Z         },
2026-06-07T22:53:32.2010348Z         "int": {
2026-06-07T22:53:32.2010447Z           "complete": false,
2026-06-07T22:53:32.2010542Z           "evidence": []
2026-06-07T22:53:32.2010634Z         },
2026-06-07T22:53:32.2010724Z         "unit": {
2026-06-07T22:53:32.2010819Z           "complete": false,
2026-06-07T22:53:32.2010914Z           "evidence": []
2026-06-07T22:53:32.2011011Z         }
2026-06-07T22:53:32.2011095Z       }
2026-06-07T22:53:32.2011185Z     },
2026-06-07T22:53:32.2011271Z     {
2026-06-07T22:53:32.2011366Z       "id": "REQ-DOCS-4",
2026-06-07T22:53:32.2011564Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-07T22:53:32.2011660Z       "requiredStages": [
2026-06-07T22:53:32.2011750Z         "doc",
2026-06-07T22:53:32.2011836Z         "impl",
2026-06-07T22:53:32.2011926Z         "unit"
2026-06-07T22:53:32.2012008Z       ],
2026-06-07T22:53:32.2012103Z       "stages": {
2026-06-07T22:53:32.2012193Z         "doc": {
2026-06-07T22:53:32.2012290Z           "complete": true,
2026-06-07T22:53:32.2012389Z           "evidence": [
2026-06-07T22:53:32.2012475Z             {
2026-06-07T22:53:32.2012591Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-07T22:53:32.2012680Z               "line": 35
2026-06-07T22:53:32.2012770Z             }
2026-06-07T22:53:32.2012857Z           ]
2026-06-07T22:53:32.2012947Z         },
2026-06-07T22:53:32.2013042Z         "impl": {
2026-06-07T22:53:32.2013137Z           "complete": true,
2026-06-07T22:53:32.2013239Z           "evidence": [
2026-06-07T22:53:32.2013324Z             {
2026-06-07T22:53:32.2013452Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2013544Z               "line": 522
2026-06-07T22:53:32.2013634Z             },
2026-06-07T22:53:32.2013723Z             {
2026-06-07T22:53:32.2013830Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2013925Z               "line": 15
2026-06-07T22:53:32.2014014Z             }
2026-06-07T22:53:32.2014104Z           ]
2026-06-07T22:53:32.2014191Z         },
2026-06-07T22:53:32.2014376Z         "int": {
2026-06-07T22:53:32.2014481Z           "complete": false,
2026-06-07T22:53:32.2014568Z           "evidence": []
2026-06-07T22:53:32.2014658Z         },
2026-06-07T22:53:32.2014743Z         "unit": {
2026-06-07T22:53:32.2014835Z           "complete": true,
2026-06-07T22:53:32.2015006Z           "evidence": [
2026-06-07T22:53:32.2015101Z             {
2026-06-07T22:53:32.2015230Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2015320Z               "line": 978
2026-06-07T22:53:32.2015412Z             }
2026-06-07T22:53:32.2015493Z           ]
2026-06-07T22:53:32.2015583Z         }
2026-06-07T22:53:32.2015664Z       }
2026-06-07T22:53:32.2015755Z     },
2026-06-07T22:53:32.2015841Z     {
2026-06-07T22:53:32.2015935Z       "id": "REQ-DOCS-5",
2026-06-07T22:53:32.2016127Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-07T22:53:32.2016222Z       "requiredStages": [
2026-06-07T22:53:32.2016312Z         "impl",
2026-06-07T22:53:32.2016414Z         "int"
2026-06-07T22:53:32.2016509Z       ],
2026-06-07T22:53:32.2016597Z       "stages": {
2026-06-07T22:53:32.2016683Z         "doc": {
2026-06-07T22:53:32.2016778Z           "complete": false,
2026-06-07T22:53:32.2016877Z           "evidence": []
2026-06-07T22:53:32.2017067Z         },
2026-06-07T22:53:32.2017158Z         "impl": {
2026-06-07T22:53:32.2017253Z           "complete": true,
2026-06-07T22:53:32.2017349Z           "evidence": [
2026-06-07T22:53:32.2017435Z             {
2026-06-07T22:53:32.2017558Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2017644Z               "line": 523
2026-06-07T22:53:32.2017736Z             },
2026-06-07T22:53:32.2017820Z             {
2026-06-07T22:53:32.2017935Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2018026Z               "line": 113
2026-06-07T22:53:32.2018112Z             }
2026-06-07T22:53:32.2018202Z           ]
2026-06-07T22:53:32.2018283Z         },
2026-06-07T22:53:32.2018380Z         "int": {
2026-06-07T22:53:32.2018473Z           "complete": true,
2026-06-07T22:53:32.2018564Z           "evidence": [
2026-06-07T22:53:32.2018652Z             {
2026-06-07T22:53:32.2018755Z               "path": ".github/workflows/ci.yml",
2026-06-07T22:53:32.2018851Z               "line": 86
2026-06-07T22:53:32.2018942Z             },
2026-06-07T22:53:32.2019028Z             {
2026-06-07T22:53:32.2019145Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2019240Z               "line": 1015
2026-06-07T22:53:32.2019331Z             }
2026-06-07T22:53:32.2019415Z           ]
2026-06-07T22:53:32.2019505Z         },
2026-06-07T22:53:32.2019591Z         "unit": {
2026-06-07T22:53:32.2019687Z           "complete": false,
2026-06-07T22:53:32.2019777Z           "evidence": []
2026-06-07T22:53:32.2019862Z         }
2026-06-07T22:53:32.2019954Z       }
2026-06-07T22:53:32.2020039Z     },
2026-06-07T22:53:32.2020124Z     {
2026-06-07T22:53:32.2020220Z       "id": "REQ-DOCS-6",
2026-06-07T22:53:32.2020550Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-07T22:53:32.2020645Z       "requiredStages": [
2026-06-07T22:53:32.2020736Z         "impl",
2026-06-07T22:53:32.2020831Z         "unit",
2026-06-07T22:53:32.2020923Z         "int"
2026-06-07T22:53:32.2021012Z       ],
2026-06-07T22:53:32.2021097Z       "stages": {
2026-06-07T22:53:32.2021199Z         "doc": {
2026-06-07T22:53:32.2021289Z           "complete": true,
2026-06-07T22:53:32.2023550Z           "evidence": [
2026-06-07T22:53:32.2023660Z             {
2026-06-07T22:53:32.2023809Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-07T22:53:32.2023902Z               "line": 4
2026-06-07T22:53:32.2023989Z             }
2026-06-07T22:53:32.2024071Z           ]
2026-06-07T22:53:32.2024156Z         },
2026-06-07T22:53:32.2024245Z         "impl": {
2026-06-07T22:53:32.2024342Z           "complete": true,
2026-06-07T22:53:32.2024565Z           "evidence": [
2026-06-07T22:53:32.2024659Z             {
2026-06-07T22:53:32.2024770Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2024861Z               "line": 3270
2026-06-07T22:53:32.2024946Z             }
2026-06-07T22:53:32.2025032Z           ]
2026-06-07T22:53:32.2025208Z         },
2026-06-07T22:53:32.2025293Z         "int": {
2026-06-07T22:53:32.2025391Z           "complete": true,
2026-06-07T22:53:32.2025476Z           "evidence": [
2026-06-07T22:53:32.2025566Z             {
2026-06-07T22:53:32.2025691Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T22:53:32.2025781Z               "line": 34
2026-06-07T22:53:32.2025866Z             }
2026-06-07T22:53:32.2025947Z           ]
2026-06-07T22:53:32.2026039Z         },
2026-06-07T22:53:32.2026124Z         "unit": {
2026-06-07T22:53:32.2026219Z           "complete": true,
2026-06-07T22:53:32.2026305Z           "evidence": [
2026-06-07T22:53:32.2026391Z             {
2026-06-07T22:53:32.2026510Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2026596Z               "line": 6618
2026-06-07T22:53:32.2026683Z             }
2026-06-07T22:53:32.2026763Z           ]
2026-06-07T22:53:32.2026848Z         }
2026-06-07T22:53:32.2026931Z       }
2026-06-07T22:53:32.2027120Z     },
2026-06-07T22:53:32.2027210Z     {
2026-06-07T22:53:32.2027306Z       "id": "REQ-EP-1",
2026-06-07T22:53:32.2027442Z       "title": "Day-one endpoint types; open type system",
2026-06-07T22:53:32.2027541Z       "requiredStages": [
2026-06-07T22:53:32.2027628Z         "impl",
2026-06-07T22:53:32.2027709Z         "unit"
2026-06-07T22:53:32.2027794Z       ],
2026-06-07T22:53:32.2027885Z       "stages": {
2026-06-07T22:53:32.2027967Z         "doc": {
2026-06-07T22:53:32.2028067Z           "complete": false,
2026-06-07T22:53:32.2028156Z           "evidence": []
2026-06-07T22:53:32.2028238Z         },
2026-06-07T22:53:32.2028324Z         "impl": {
2026-06-07T22:53:32.2028414Z           "complete": true,
2026-06-07T22:53:32.2028514Z           "evidence": [
2026-06-07T22:53:32.2028596Z             {
2026-06-07T22:53:32.2028729Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2028819Z               "line": 77
2026-06-07T22:53:32.2028902Z             },
2026-06-07T22:53:32.2028996Z             {
2026-06-07T22:53:32.2029119Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2029212Z               "line": 94
2026-06-07T22:53:32.2029292Z             }
2026-06-07T22:53:32.2029377Z           ]
2026-06-07T22:53:32.2029458Z         },
2026-06-07T22:53:32.2029545Z         "int": {
2026-06-07T22:53:32.2029640Z           "complete": false,
2026-06-07T22:53:32.2029729Z           "evidence": []
2026-06-07T22:53:32.2029814Z         },
2026-06-07T22:53:32.2029901Z         "unit": {
2026-06-07T22:53:32.2029989Z           "complete": true,
2026-06-07T22:53:32.2030079Z           "evidence": [
2026-06-07T22:53:32.2030161Z             {
2026-06-07T22:53:32.2030285Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2030379Z               "line": 161
2026-06-07T22:53:32.2030466Z             },
2026-06-07T22:53:32.2030548Z             {
2026-06-07T22:53:32.2030671Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2030761Z               "line": 178
2026-06-07T22:53:32.2030843Z             }
2026-06-07T22:53:32.2030928Z           ]
2026-06-07T22:53:32.2031014Z         }
2026-06-07T22:53:32.2031105Z       }
2026-06-07T22:53:32.2031187Z     },
2026-06-07T22:53:32.2031267Z     {
2026-06-07T22:53:32.2031362Z       "id": "REQ-EP-2",
2026-06-07T22:53:32.2031530Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-07T22:53:32.2031625Z       "requiredStages": [
2026-06-07T22:53:32.2031715Z         "impl",
2026-06-07T22:53:32.2031802Z         "unit"
2026-06-07T22:53:32.2031887Z       ],
2026-06-07T22:53:32.2031977Z       "stages": {
2026-06-07T22:53:32.2032059Z         "doc": {
2026-06-07T22:53:32.2032267Z           "complete": false,
2026-06-07T22:53:32.2032362Z           "evidence": []
2026-06-07T22:53:32.2032448Z         },
2026-06-07T22:53:32.2032547Z         "impl": {
2026-06-07T22:53:32.2032637Z           "complete": true,
2026-06-07T22:53:32.2032723Z           "evidence": [
2026-06-07T22:53:32.2032894Z             {
2026-06-07T22:53:32.2033018Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2033105Z               "line": 114
2026-06-07T22:53:32.2033186Z             },
2026-06-07T22:53:32.2033275Z             {
2026-06-07T22:53:32.2033391Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2033481Z               "line": 131
2026-06-07T22:53:32.2033566Z             },
2026-06-07T22:53:32.2033652Z             {
2026-06-07T22:53:32.2033767Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2033858Z               "line": 138
2026-06-07T22:53:32.2033943Z             }
2026-06-07T22:53:32.2034025Z           ]
2026-06-07T22:53:32.2034115Z         },
2026-06-07T22:53:32.2034200Z         "int": {
2026-06-07T22:53:32.2034297Z           "complete": false,
2026-06-07T22:53:32.2034383Z           "evidence": []
2026-06-07T22:53:32.2034467Z         },
2026-06-07T22:53:32.2034553Z         "unit": {
2026-06-07T22:53:32.2034650Z           "complete": true,
2026-06-07T22:53:32.2034745Z           "evidence": [
2026-06-07T22:53:32.2034825Z             {
2026-06-07T22:53:32.2034941Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2035032Z               "line": 190
2026-06-07T22:53:32.2035120Z             },
2026-06-07T22:53:32.2035205Z             {
2026-06-07T22:53:32.2035316Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2035412Z               "line": 208
2026-06-07T22:53:32.2035497Z             },
2026-06-07T22:53:32.2035578Z             {
2026-06-07T22:53:32.2035693Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-07T22:53:32.2035782Z               "line": 221
2026-06-07T22:53:32.2035868Z             }
2026-06-07T22:53:32.2035951Z           ]
2026-06-07T22:53:32.2036041Z         }
2026-06-07T22:53:32.2036121Z       }
2026-06-07T22:53:32.2036207Z     },
2026-06-07T22:53:32.2036289Z     {
2026-06-07T22:53:32.2036379Z       "id": "REQ-EP-3",
2026-06-07T22:53:32.2036570Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-07T22:53:32.2036660Z       "requiredStages": [
2026-06-07T22:53:32.2036746Z         "impl",
2026-06-07T22:53:32.2036832Z         "unit"
2026-06-07T22:53:32.2036914Z       ],
2026-06-07T22:53:32.2037403Z       "stages": {
2026-06-07T22:53:32.2037496Z         "doc": {
2026-06-07T22:53:32.2037586Z           "complete": false,
2026-06-07T22:53:32.2037680Z           "evidence": []
2026-06-07T22:53:32.2037760Z         },
2026-06-07T22:53:32.2037846Z         "impl": {
2026-06-07T22:53:32.2037941Z           "complete": true,
2026-06-07T22:53:32.2038030Z           "evidence": [
2026-06-07T22:53:32.2038115Z             {
2026-06-07T22:53:32.2038246Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2038331Z               "line": 31
2026-06-07T22:53:32.2038415Z             },
2026-06-07T22:53:32.2038503Z             {
2026-06-07T22:53:32.2038622Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2038712Z               "line": 49
2026-06-07T22:53:32.2038798Z             }
2026-06-07T22:53:32.2038879Z           ]
2026-06-07T22:53:32.2038969Z         },
2026-06-07T22:53:32.2039079Z         "int": {
2026-06-07T22:53:32.2039175Z           "complete": false,
2026-06-07T22:53:32.2039270Z           "evidence": []
2026-06-07T22:53:32.2039351Z         },
2026-06-07T22:53:32.2039442Z         "unit": {
2026-06-07T22:53:32.2039532Z           "complete": true,
2026-06-07T22:53:32.2039618Z           "evidence": [
2026-06-07T22:53:32.2039708Z             {
2026-06-07T22:53:32.2039814Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2039894Z               "line": 156
2026-06-07T22:53:32.2040072Z             },
2026-06-07T22:53:32.2040228Z             {
2026-06-07T22:53:32.2040327Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2040418Z               "line": 164
2026-06-07T22:53:32.2040503Z             },
2026-06-07T22:53:32.2040583Z             {
2026-06-07T22:53:32.2040784Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2040869Z               "line": 177
2026-06-07T22:53:32.2040954Z             },
2026-06-07T22:53:32.2041036Z             {
2026-06-07T22:53:32.2041155Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2041259Z               "line": 200
2026-06-07T22:53:32.2041340Z             },
2026-06-07T22:53:32.2041423Z             {
2026-06-07T22:53:32.2041536Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2041627Z               "line": 216
2026-06-07T22:53:32.2041708Z             },
2026-06-07T22:53:32.2041789Z             {
2026-06-07T22:53:32.2041912Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-07T22:53:32.2042000Z               "line": 233
2026-06-07T22:53:32.2042085Z             }
2026-06-07T22:53:32.2042170Z           ]
2026-06-07T22:53:32.2042251Z         }
2026-06-07T22:53:32.2042334Z       }
2026-06-07T22:53:32.2042414Z     },
2026-06-07T22:53:32.2042509Z     {
2026-06-07T22:53:32.2042600Z       "id": "REQ-EP-4",
2026-06-07T22:53:32.2042748Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-07T22:53:32.2042837Z       "requiredStages": [
2026-06-07T22:53:32.2042927Z         "impl",
2026-06-07T22:53:32.2043018Z         "unit"
2026-06-07T22:53:32.2043102Z       ],
2026-06-07T22:53:32.2043192Z       "stages": {
2026-06-07T22:53:32.2043283Z         "doc": {
2026-06-07T22:53:32.2043379Z           "complete": false,
2026-06-07T22:53:32.2043469Z           "evidence": []
2026-06-07T22:53:32.2043554Z         },
2026-06-07T22:53:32.2043636Z         "impl": {
2026-06-07T22:53:32.2043732Z           "complete": true,
2026-06-07T22:53:32.2043825Z           "evidence": [
2026-06-07T22:53:32.2043908Z             {
2026-06-07T22:53:32.2044022Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2044112Z               "line": 461
2026-06-07T22:53:32.2044198Z             },
2026-06-07T22:53:32.2044290Z             {
2026-06-07T22:53:32.2044404Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2044499Z               "line": 706
2026-06-07T22:53:32.2044580Z             },
2026-06-07T22:53:32.2044666Z             {
2026-06-07T22:53:32.2044780Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2044872Z               "line": 805
2026-06-07T22:53:32.2044957Z             },
2026-06-07T22:53:32.2045037Z             {
2026-06-07T22:53:32.2045152Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.2045239Z               "line": 83
2026-06-07T22:53:32.2045328Z             },
2026-06-07T22:53:32.2045409Z             {
2026-06-07T22:53:32.2045525Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.2045615Z               "line": 460
2026-06-07T22:53:32.2045694Z             },
2026-06-07T22:53:32.2045780Z             {
2026-06-07T22:53:32.2045886Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.2045981Z               "line": 546
2026-06-07T22:53:32.2046061Z             },
2026-06-07T22:53:32.2046148Z             {
2026-06-07T22:53:32.2046272Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.2046357Z               "line": 181
2026-06-07T22:53:32.2046452Z             },
2026-06-07T22:53:32.2046535Z             {
2026-06-07T22:53:32.2046648Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.2046739Z               "line": 317
2026-06-07T22:53:32.2046821Z             },
2026-06-07T22:53:32.2046905Z             {
2026-06-07T22:53:32.2047092Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.2047183Z               "line": 727
2026-06-07T22:53:32.2047368Z             }
2026-06-07T22:53:32.2047460Z           ]
2026-06-07T22:53:32.2047545Z         },
2026-06-07T22:53:32.2047630Z         "int": {
2026-06-07T22:53:32.2047721Z           "complete": false,
2026-06-07T22:53:32.2047813Z           "evidence": []
2026-06-07T22:53:32.2047993Z         },
2026-06-07T22:53:32.2048080Z         "unit": {
2026-06-07T22:53:32.2048175Z           "complete": true,
2026-06-07T22:53:32.2048269Z           "evidence": [
2026-06-07T22:53:32.2048349Z             {
2026-06-07T22:53:32.2048464Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-07T22:53:32.2048548Z               "line": 637
2026-06-07T22:53:32.2048633Z             },
2026-06-07T22:53:32.2048709Z             {
2026-06-07T22:53:32.2048839Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-07T22:53:32.2048933Z               "line": 75
2026-06-07T22:53:32.2049020Z             },
2026-06-07T22:53:32.2049139Z             {
2026-06-07T22:53:32.2049267Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-07T22:53:32.2049358Z               "line": 146
2026-06-07T22:53:32.2049439Z             }
2026-06-07T22:53:32.2049529Z           ]
2026-06-07T22:53:32.2049615Z         }
2026-06-07T22:53:32.2049698Z       }
2026-06-07T22:53:32.2049787Z     },
2026-06-07T22:53:32.2049873Z     {
2026-06-07T22:53:32.2049969Z       "id": "REQ-EP-5",
2026-06-07T22:53:32.2050608Z       "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-07T22:53:32.2050704Z       "requiredStages": [
2026-06-07T22:53:32.2050788Z         "impl",
2026-06-07T22:53:32.2050873Z         "unit",
2026-06-07T22:53:32.2050959Z         "int"
2026-06-07T22:53:32.2051039Z       ],
2026-06-07T22:53:32.2051129Z       "stages": {
2026-06-07T22:53:32.2051209Z         "doc": {
2026-06-07T22:53:32.2051310Z           "complete": false,
2026-06-07T22:53:32.2051400Z           "evidence": []
2026-06-07T22:53:32.2051481Z         },
2026-06-07T22:53:32.2051567Z         "impl": {
2026-06-07T22:53:32.2051658Z           "complete": true,
2026-06-07T22:53:32.2051758Z           "evidence": [
2026-06-07T22:53:32.2051872Z             {
2026-06-07T22:53:32.2052021Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2052110Z               "line": 280
2026-06-07T22:53:32.2052191Z             },
2026-06-07T22:53:32.2052274Z             {
2026-06-07T22:53:32.2052397Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2052487Z               "line": 18
2026-06-07T22:53:32.2052570Z             },
2026-06-07T22:53:32.2052655Z             {
2026-06-07T22:53:32.2052774Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2052859Z               "line": 63
2026-06-07T22:53:32.2052941Z             },
2026-06-07T22:53:32.2053026Z             {
2026-06-07T22:53:32.2053145Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2053237Z               "line": 92
2026-06-07T22:53:32.2053322Z             },
2026-06-07T22:53:32.2053406Z             {
2026-06-07T22:53:32.2053521Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2053620Z               "line": 167
2026-06-07T22:53:32.2053700Z             },
2026-06-07T22:53:32.2053785Z             {
2026-06-07T22:53:32.2053906Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2053991Z               "line": 179
2026-06-07T22:53:32.2054076Z             },
2026-06-07T22:53:32.2054158Z             {
2026-06-07T22:53:32.2054272Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2054362Z               "line": 114
2026-06-07T22:53:32.2054443Z             },
2026-06-07T22:53:32.2054526Z             {
2026-06-07T22:53:32.2054645Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2054807Z               "line": 22
2026-06-07T22:53:32.2054893Z             },
2026-06-07T22:53:32.2054974Z             {
2026-06-07T22:53:32.2055092Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2055179Z               "line": 129
2026-06-07T22:53:32.2055268Z             },
2026-06-07T22:53:32.2055412Z             {
2026-06-07T22:53:32.2055537Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2055621Z               "line": 156
2026-06-07T22:53:32.2055703Z             },
2026-06-07T22:53:32.2055784Z             {
2026-06-07T22:53:32.2055903Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2055998Z               "line": 178
2026-06-07T22:53:32.2056081Z             },
2026-06-07T22:53:32.2056166Z             {
2026-06-07T22:53:32.2056278Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2056368Z               "line": 203
2026-06-07T22:53:32.2056451Z             },
2026-06-07T22:53:32.2056551Z             {
2026-06-07T22:53:32.2056674Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2056761Z               "line": 229
2026-06-07T22:53:32.2056847Z             },
2026-06-07T22:53:32.2056936Z             {
2026-06-07T22:53:32.2057146Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2057241Z               "line": 252
2026-06-07T22:53:32.2057327Z             },
2026-06-07T22:53:32.2057419Z             {
2026-06-07T22:53:32.2057538Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2057628Z               "line": 81
2026-06-07T22:53:32.2057715Z             },
2026-06-07T22:53:32.2057799Z             {
2026-06-07T22:53:32.2057914Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2058001Z               "line": 3575
2026-06-07T22:53:32.2058096Z             },
2026-06-07T22:53:32.2058176Z             {
2026-06-07T22:53:32.2058281Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2058378Z               "line": 3698
2026-06-07T22:53:32.2058471Z             },
2026-06-07T22:53:32.2058558Z             {
2026-06-07T22:53:32.2058659Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2058753Z               "line": 3859
2026-06-07T22:53:32.2058843Z             },
2026-06-07T22:53:32.2058938Z             {
2026-06-07T22:53:32.2059038Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2059131Z               "line": 4241
2026-06-07T22:53:32.2059217Z             }
2026-06-07T22:53:32.2059303Z           ]
2026-06-07T22:53:32.2059389Z         },
2026-06-07T22:53:32.2059469Z         "int": {
2026-06-07T22:53:32.2059570Z           "complete": true,
2026-06-07T22:53:32.2059666Z           "evidence": [
2026-06-07T22:53:32.2059761Z             {
2026-06-07T22:53:32.2059884Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T22:53:32.2059976Z               "line": 16
2026-06-07T22:53:32.2060061Z             },
2026-06-07T22:53:32.2060151Z             {
2026-06-07T22:53:32.2060277Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T22:53:32.2060366Z               "line": 15
2026-06-07T22:53:32.2060452Z             }
2026-06-07T22:53:32.2060529Z           ]
2026-06-07T22:53:32.2060620Z         },
2026-06-07T22:53:32.2060743Z         "unit": {
2026-06-07T22:53:32.2060858Z           "complete": true,
2026-06-07T22:53:32.2060949Z           "evidence": [
2026-06-07T22:53:32.2061033Z             {
2026-06-07T22:53:32.2061187Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2061282Z               "line": 246
2026-06-07T22:53:32.2061367Z             },
2026-06-07T22:53:32.2061461Z             {
2026-06-07T22:53:32.2061595Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2061703Z               "line": 306
2026-06-07T22:53:32.2061778Z             },
2026-06-07T22:53:32.2061860Z             {
2026-06-07T22:53:32.2061975Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-07T22:53:32.2062271Z               "line": 362
2026-06-07T22:53:32.2062365Z             },
2026-06-07T22:53:32.2062447Z             {
2026-06-07T22:53:32.2062571Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2062661Z               "line": 268
2026-06-07T22:53:32.2062747Z             },
2026-06-07T22:53:32.2062924Z             {
2026-06-07T22:53:32.2063042Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2063134Z               "line": 291
2026-06-07T22:53:32.2063215Z             },
2026-06-07T22:53:32.2063305Z             {
2026-06-07T22:53:32.2063429Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2063520Z               "line": 491
2026-06-07T22:53:32.2063610Z             },
2026-06-07T22:53:32.2063691Z             {
2026-06-07T22:53:32.2063802Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2063891Z               "line": 5023
2026-06-07T22:53:32.2063981Z             },
2026-06-07T22:53:32.2064066Z             {
2026-06-07T22:53:32.2064185Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2064279Z               "line": 5147
2026-06-07T22:53:32.2064365Z             },
2026-06-07T22:53:32.2064451Z             {
2026-06-07T22:53:32.2064551Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2064650Z               "line": 5734
2026-06-07T22:53:32.2064742Z             },
2026-06-07T22:53:32.2064828Z             {
2026-06-07T22:53:32.2064928Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2065018Z               "line": 5799
2026-06-07T22:53:32.2065100Z             }
2026-06-07T22:53:32.2065185Z           ]
2026-06-07T22:53:32.2065270Z         }
2026-06-07T22:53:32.2065352Z       }
2026-06-07T22:53:32.2065438Z     },
2026-06-07T22:53:32.2065524Z     {
2026-06-07T22:53:32.2065614Z       "id": "REQ-FRONT-1",
2026-06-07T22:53:32.2065791Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-07T22:53:32.2065891Z       "requiredStages": [],
2026-06-07T22:53:32.2065982Z       "stages": {
2026-06-07T22:53:32.2066073Z         "doc": {
2026-06-07T22:53:32.2066167Z           "complete": false,
2026-06-07T22:53:32.2066253Z           "evidence": []
2026-06-07T22:53:32.2066336Z         },
2026-06-07T22:53:32.2066430Z         "impl": {
2026-06-07T22:53:32.2066524Z           "complete": false,
2026-06-07T22:53:32.2066621Z           "evidence": []
2026-06-07T22:53:32.2066703Z         },
2026-06-07T22:53:32.2066791Z         "int": {
2026-06-07T22:53:32.2066886Z           "complete": false,
2026-06-07T22:53:32.2067044Z           "evidence": []
2026-06-07T22:53:32.2067135Z         },
2026-06-07T22:53:32.2067219Z         "unit": {
2026-06-07T22:53:32.2067321Z           "complete": false,
2026-06-07T22:53:32.2067421Z           "evidence": []
2026-06-07T22:53:32.2067510Z         }
2026-06-07T22:53:32.2067597Z       }
2026-06-07T22:53:32.2067679Z     },
2026-06-07T22:53:32.2067764Z     {
2026-06-07T22:53:32.2067878Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-07T22:53:32.2068059Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-07T22:53:32.2068159Z       "requiredStages": [
2026-06-07T22:53:32.2068255Z         "impl",
2026-06-07T22:53:32.2068346Z         "unit"
2026-06-07T22:53:32.2068427Z       ],
2026-06-07T22:53:32.2068526Z       "stages": {
2026-06-07T22:53:32.2068614Z         "doc": {
2026-06-07T22:53:32.2068707Z           "complete": false,
2026-06-07T22:53:32.2068798Z           "evidence": []
2026-06-07T22:53:32.2068881Z         },
2026-06-07T22:53:32.2068971Z         "impl": {
2026-06-07T22:53:32.2069064Z           "complete": true,
2026-06-07T22:53:32.2069156Z           "evidence": [
2026-06-07T22:53:32.2069243Z             {
2026-06-07T22:53:32.2069365Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2069455Z               "line": 149
2026-06-07T22:53:32.2069541Z             },
2026-06-07T22:53:32.2069631Z             {
2026-06-07T22:53:32.2069853Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2069959Z               "line": 18
2026-06-07T22:53:32.2070044Z             },
2026-06-07T22:53:32.2070130Z             {
2026-06-07T22:53:32.2070236Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2070326Z               "line": 98
2026-06-07T22:53:32.2070503Z             }
2026-06-07T22:53:32.2070592Z           ]
2026-06-07T22:53:32.2070678Z         },
2026-06-07T22:53:32.2070750Z         "int": {
2026-06-07T22:53:32.2070851Z           "complete": false,
2026-06-07T22:53:32.2070936Z           "evidence": []
2026-06-07T22:53:32.2071021Z         },
2026-06-07T22:53:32.2071103Z         "unit": {
2026-06-07T22:53:32.2071204Z           "complete": true,
2026-06-07T22:53:32.2071317Z           "evidence": [
2026-06-07T22:53:32.2071433Z             {
2026-06-07T22:53:32.2071618Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2071762Z               "line": 565
2026-06-07T22:53:32.2071889Z             },
2026-06-07T22:53:32.2072026Z             {
2026-06-07T22:53:32.2072183Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2072282Z               "line": 159
2026-06-07T22:53:32.2072377Z             },
2026-06-07T22:53:32.2072469Z             {
2026-06-07T22:53:32.2072592Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2072697Z               "line": 231
2026-06-07T22:53:32.2072778Z             }
2026-06-07T22:53:32.2072864Z           ]
2026-06-07T22:53:32.2072959Z         }
2026-06-07T22:53:32.2073045Z       }
2026-06-07T22:53:32.2073131Z     },
2026-06-07T22:53:32.2073216Z     {
2026-06-07T22:53:32.2073336Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-07T22:53:32.2073756Z       "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-07T22:53:32.2073855Z       "requiredStages": [
2026-06-07T22:53:32.2073941Z         "impl",
2026-06-07T22:53:32.2074038Z         "unit"
2026-06-07T22:53:32.2074127Z       ],
2026-06-07T22:53:32.2074213Z       "stages": {
2026-06-07T22:53:32.2074300Z         "doc": {
2026-06-07T22:53:32.2074400Z           "complete": true,
2026-06-07T22:53:32.2074503Z           "evidence": [
2026-06-07T22:53:32.2074593Z             {
2026-06-07T22:53:32.2074712Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2074811Z               "line": 217
2026-06-07T22:53:32.2074901Z             }
2026-06-07T22:53:32.2074973Z           ]
2026-06-07T22:53:32.2075059Z         },
2026-06-07T22:53:32.2075144Z         "impl": {
2026-06-07T22:53:32.2075244Z           "complete": true,
2026-06-07T22:53:32.2075331Z           "evidence": [
2026-06-07T22:53:32.2075417Z             {
2026-06-07T22:53:32.2075549Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2075641Z               "line": 302
2026-06-07T22:53:32.2075726Z             },
2026-06-07T22:53:32.2075807Z             {
2026-06-07T22:53:32.2075942Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2076031Z               "line": 257
2026-06-07T22:53:32.2076122Z             },
2026-06-07T22:53:32.2076208Z             {
2026-06-07T22:53:32.2076328Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2076427Z               "line": 405
2026-06-07T22:53:32.2076513Z             },
2026-06-07T22:53:32.2076604Z             {
2026-06-07T22:53:32.2076718Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2076813Z               "line": 77
2026-06-07T22:53:32.2076896Z             }
2026-06-07T22:53:32.2077074Z           ]
2026-06-07T22:53:32.2077162Z         },
2026-06-07T22:53:32.2077248Z         "int": {
2026-06-07T22:53:32.2077347Z           "complete": false,
2026-06-07T22:53:32.2077436Z           "evidence": []
2026-06-07T22:53:32.2077528Z         },
2026-06-07T22:53:32.2077619Z         "unit": {
2026-06-07T22:53:32.2077709Z           "complete": true,
2026-06-07T22:53:32.2077920Z           "evidence": [
2026-06-07T22:53:32.2078009Z             {
2026-06-07T22:53:32.2078133Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2078219Z               "line": 478
2026-06-07T22:53:32.2078310Z             },
2026-06-07T22:53:32.2078390Z             {
2026-06-07T22:53:32.2078600Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2078700Z               "line": 516
2026-06-07T22:53:32.2078781Z             },
2026-06-07T22:53:32.2078868Z             {
2026-06-07T22:53:32.2078982Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2079077Z               "line": 166
2026-06-07T22:53:32.2079159Z             }
2026-06-07T22:53:32.2079244Z           ]
2026-06-07T22:53:32.2079335Z         }
2026-06-07T22:53:32.2079441Z       }
2026-06-07T22:53:32.2079541Z     },
2026-06-07T22:53:32.2079624Z     {
2026-06-07T22:53:32.2079756Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-07T22:53:32.2080299Z       "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-07T22:53:32.2080395Z       "requiredStages": [
2026-06-07T22:53:32.2080481Z         "impl",
2026-06-07T22:53:32.2080576Z         "unit"
2026-06-07T22:53:32.2080666Z       ],
2026-06-07T22:53:32.2080772Z       "stages": {
2026-06-07T22:53:32.2080858Z         "doc": {
2026-06-07T22:53:32.2080957Z           "complete": false,
2026-06-07T22:53:32.2081044Z           "evidence": []
2026-06-07T22:53:32.2081129Z         },
2026-06-07T22:53:32.2081206Z         "impl": {
2026-06-07T22:53:32.2081319Z           "complete": true,
2026-06-07T22:53:32.2081402Z           "evidence": [
2026-06-07T22:53:32.2081486Z             {
2026-06-07T22:53:32.2081620Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T22:53:32.2081707Z               "line": 22
2026-06-07T22:53:32.2081796Z             },
2026-06-07T22:53:32.2081891Z             {
2026-06-07T22:53:32.2082012Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2082097Z               "line": 476
2026-06-07T22:53:32.2082183Z             },
2026-06-07T22:53:32.2082298Z             {
2026-06-07T22:53:32.2082431Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T22:53:32.2082549Z               "line": 17
2026-06-07T22:53:32.2082635Z             },
2026-06-07T22:53:32.2082725Z             {
2026-06-07T22:53:32.2082851Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T22:53:32.2082937Z               "line": 140
2026-06-07T22:53:32.2083024Z             },
2026-06-07T22:53:32.2083110Z             {
2026-06-07T22:53:32.2083237Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2083325Z               "line": 194
2026-06-07T22:53:32.2083415Z             },
2026-06-07T22:53:32.2083499Z             {
2026-06-07T22:53:32.2083630Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2083724Z               "line": 219
2026-06-07T22:53:32.2083810Z             },
2026-06-07T22:53:32.2083896Z             {
2026-06-07T22:53:32.2084015Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2084110Z               "line": 245
2026-06-07T22:53:32.2084211Z             },
2026-06-07T22:53:32.2084298Z             {
2026-06-07T22:53:32.2084416Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2084506Z               "line": 124
2026-06-07T22:53:32.2084593Z             },
2026-06-07T22:53:32.2084678Z             {
2026-06-07T22:53:32.2084797Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2084889Z               "line": 224
2026-06-07T22:53:32.2084969Z             }
2026-06-07T22:53:32.2085063Z           ]
2026-06-07T22:53:32.2085148Z         },
2026-06-07T22:53:32.2085230Z         "int": {
2026-06-07T22:53:32.2085324Z           "complete": false,
2026-06-07T22:53:32.2085490Z           "evidence": []
2026-06-07T22:53:32.2085581Z         },
2026-06-07T22:53:32.2085671Z         "unit": {
2026-06-07T22:53:32.2085766Z           "complete": true,
2026-06-07T22:53:32.2085857Z           "evidence": [
2026-06-07T22:53:32.2085948Z             {
2026-06-07T22:53:32.2086066Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T22:53:32.2086244Z               "line": 62
2026-06-07T22:53:32.2086334Z             },
2026-06-07T22:53:32.2086419Z             {
2026-06-07T22:53:32.2086539Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T22:53:32.2086625Z               "line": 72
2026-06-07T22:53:32.2086720Z             },
2026-06-07T22:53:32.2086802Z             {
2026-06-07T22:53:32.2086930Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-07T22:53:32.2087259Z               "line": 84
2026-06-07T22:53:32.2087345Z             },
2026-06-07T22:53:32.2087426Z             {
2026-06-07T22:53:32.2087550Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2087644Z               "line": 337
2026-06-07T22:53:32.2087732Z             },
2026-06-07T22:53:32.2087823Z             {
2026-06-07T22:53:32.2087940Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T22:53:32.2088035Z               "line": 274
2026-06-07T22:53:32.2088131Z             },
2026-06-07T22:53:32.2088212Z             {
2026-06-07T22:53:32.2088339Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T22:53:32.2088436Z               "line": 315
2026-06-07T22:53:32.2088517Z             },
2026-06-07T22:53:32.2091089Z             {
2026-06-07T22:53:32.2091255Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-07T22:53:32.2091351Z               "line": 353
2026-06-07T22:53:32.2091441Z             },
2026-06-07T22:53:32.2091526Z             {
2026-06-07T22:53:32.2091666Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2091756Z               "line": 656
2026-06-07T22:53:32.2091851Z             },
2026-06-07T22:53:32.2091942Z             {
2026-06-07T22:53:32.2092066Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2092166Z               "line": 397
2026-06-07T22:53:32.2092262Z             },
2026-06-07T22:53:32.2092343Z             {
2026-06-07T22:53:32.2092475Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2092568Z               "line": 440
2026-06-07T22:53:32.2092658Z             }
2026-06-07T22:53:32.2092743Z           ]
2026-06-07T22:53:32.2092829Z         }
2026-06-07T22:53:32.2092911Z       }
2026-06-07T22:53:32.2092996Z     },
2026-06-07T22:53:32.2093085Z     {
2026-06-07T22:53:32.2093200Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-07T22:53:32.2093416Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-07T22:53:32.2093517Z       "requiredStages": [
2026-06-07T22:53:32.2093603Z         "impl",
2026-06-07T22:53:32.2093698Z         "unit"
2026-06-07T22:53:32.2093783Z       ],
2026-06-07T22:53:32.2093880Z       "stages": {
2026-06-07T22:53:32.2093970Z         "doc": {
2026-06-07T22:53:32.2094069Z           "complete": false,
2026-06-07T22:53:32.2094156Z           "evidence": []
2026-06-07T22:53:32.2094242Z         },
2026-06-07T22:53:32.2094328Z         "impl": {
2026-06-07T22:53:32.2094432Z           "complete": true,
2026-06-07T22:53:32.2094524Z           "evidence": [
2026-06-07T22:53:32.2094608Z             {
2026-06-07T22:53:32.2094723Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T22:53:32.2094814Z               "line": 169
2026-06-07T22:53:32.2094900Z             }
2026-06-07T22:53:32.2094990Z           ]
2026-06-07T22:53:32.2095076Z         },
2026-06-07T22:53:32.2095163Z         "int": {
2026-06-07T22:53:32.2095256Z           "complete": true,
2026-06-07T22:53:32.2095347Z           "evidence": [
2026-06-07T22:53:32.2095430Z             {
2026-06-07T22:53:32.2095548Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-07T22:53:32.2095766Z               "line": 44
2026-06-07T22:53:32.2095856Z             },
2026-06-07T22:53:32.2095945Z             {
2026-06-07T22:53:32.2096050Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-07T22:53:32.2096141Z               "line": 66
2026-06-07T22:53:32.2096222Z             }
2026-06-07T22:53:32.2096403Z           ]
2026-06-07T22:53:32.2096489Z         },
2026-06-07T22:53:32.2096574Z         "unit": {
2026-06-07T22:53:32.2096669Z           "complete": true,
2026-06-07T22:53:32.2096762Z           "evidence": [
2026-06-07T22:53:32.2096846Z             {
2026-06-07T22:53:32.2097057Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T22:53:32.2097151Z               "line": 186
2026-06-07T22:53:32.2097256Z             },
2026-06-07T22:53:32.2097338Z             {
2026-06-07T22:53:32.2097457Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T22:53:32.2097547Z               "line": 238
2026-06-07T22:53:32.2097633Z             },
2026-06-07T22:53:32.2097720Z             {
2026-06-07T22:53:32.2097843Z               "path": "crates/spt-term/src/reader.rs",
2026-06-07T22:53:32.2097933Z               "line": 266
2026-06-07T22:53:32.2098021Z             }
2026-06-07T22:53:32.2098106Z           ]
2026-06-07T22:53:32.2098190Z         }
2026-06-07T22:53:32.2098277Z       }
2026-06-07T22:53:32.2098364Z     },
2026-06-07T22:53:32.2098453Z     {
2026-06-07T22:53:32.2098576Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-07T22:53:32.2098982Z       "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-07T22:53:32.2099082Z       "requiredStages": [
2026-06-07T22:53:32.2099167Z         "impl",
2026-06-07T22:53:32.2099258Z         "unit",
2026-06-07T22:53:32.2099339Z         "int"
2026-06-07T22:53:32.2099440Z       ],
2026-06-07T22:53:32.2099529Z       "stages": {
2026-06-07T22:53:32.2099612Z         "doc": {
2026-06-07T22:53:32.2099711Z           "complete": false,
2026-06-07T22:53:32.2099806Z           "evidence": []
2026-06-07T22:53:32.2099897Z         },
2026-06-07T22:53:32.2099983Z         "impl": {
2026-06-07T22:53:32.2100078Z           "complete": true,
2026-06-07T22:53:32.2100168Z           "evidence": [
2026-06-07T22:53:32.2100251Z             {
2026-06-07T22:53:32.2100383Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2100469Z               "line": 150
2026-06-07T22:53:32.2100556Z             },
2026-06-07T22:53:32.2100637Z             {
2026-06-07T22:53:32.2100759Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2100847Z               "line": 174
2026-06-07T22:53:32.2100933Z             },
2026-06-07T22:53:32.2101022Z             {
2026-06-07T22:53:32.2101131Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2101222Z               "line": 79
2026-06-07T22:53:32.2101307Z             },
2026-06-07T22:53:32.2101391Z             {
2026-06-07T22:53:32.2101515Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2101606Z               "line": 51
2026-06-07T22:53:32.2101692Z             },
2026-06-07T22:53:32.2101776Z             {
2026-06-07T22:53:32.2101892Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2101978Z               "line": 154
2026-06-07T22:53:32.2102072Z             },
2026-06-07T22:53:32.2102159Z             {
2026-06-07T22:53:32.2102278Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2102373Z               "line": 27
2026-06-07T22:53:32.2102454Z             },
2026-06-07T22:53:32.2102541Z             {
2026-06-07T22:53:32.2102655Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2102745Z               "line": 79
2026-06-07T22:53:32.2102827Z             },
2026-06-07T22:53:32.2102912Z             {
2026-06-07T22:53:32.2103026Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2103113Z               "line": 102
2026-06-07T22:53:32.2103298Z             },
2026-06-07T22:53:32.2103389Z             {
2026-06-07T22:53:32.2103505Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2103593Z               "line": 116
2026-06-07T22:53:32.2103678Z             }
2026-06-07T22:53:32.2103765Z           ]
2026-06-07T22:53:32.2103939Z         },
2026-06-07T22:53:32.2104029Z         "int": {
2026-06-07T22:53:32.2104125Z           "complete": true,
2026-06-07T22:53:32.2104211Z           "evidence": [
2026-06-07T22:53:32.2104296Z             {
2026-06-07T22:53:32.2104425Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-07T22:53:32.2104516Z               "line": 35
2026-06-07T22:53:32.2104596Z             }
2026-06-07T22:53:32.2104682Z           ]
2026-06-07T22:53:32.2104774Z         },
2026-06-07T22:53:32.2104859Z         "unit": {
2026-06-07T22:53:32.2104954Z           "complete": true,
2026-06-07T22:53:32.2105041Z           "evidence": [
2026-06-07T22:53:32.2105131Z             {
2026-06-07T22:53:32.2105263Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2105351Z               "line": 584
2026-06-07T22:53:32.2105442Z             },
2026-06-07T22:53:32.2105526Z             {
2026-06-07T22:53:32.2105641Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2105733Z               "line": 351
2026-06-07T22:53:32.2105826Z             },
2026-06-07T22:53:32.2105907Z             {
2026-06-07T22:53:32.2106023Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2106113Z               "line": 124
2026-06-07T22:53:32.2106198Z             },
2026-06-07T22:53:32.2106283Z             {
2026-06-07T22:53:32.2106398Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2106491Z               "line": 143
2026-06-07T22:53:32.2106576Z             },
2026-06-07T22:53:32.2106658Z             {
2026-06-07T22:53:32.2106778Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2106872Z               "line": 160
2026-06-07T22:53:32.2107054Z             },
2026-06-07T22:53:32.2107130Z             {
2026-06-07T22:53:32.2107259Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2107355Z               "line": 187
2026-06-07T22:53:32.2107440Z             },
2026-06-07T22:53:32.2107540Z             {
2026-06-07T22:53:32.2107656Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-07T22:53:32.2107740Z               "line": 206
2026-06-07T22:53:32.2107826Z             },
2026-06-07T22:53:32.2107913Z             {
2026-06-07T22:53:32.2108026Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2108121Z               "line": 229
2026-06-07T22:53:32.2108208Z             }
2026-06-07T22:53:32.2108290Z           ]
2026-06-07T22:53:32.2108383Z         }
2026-06-07T22:53:32.2108465Z       }
2026-06-07T22:53:32.2108547Z     },
2026-06-07T22:53:32.2108633Z     {
2026-06-07T22:53:32.2108755Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-07T22:53:32.2109380Z       "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-07T22:53:32.2109484Z       "requiredStages": [
2026-06-07T22:53:32.2109571Z         "impl",
2026-06-07T22:53:32.2109647Z         "unit"
2026-06-07T22:53:32.2109732Z       ],
2026-06-07T22:53:32.2109847Z       "stages": {
2026-06-07T22:53:32.2109943Z         "doc": {
2026-06-07T22:53:32.2110028Z           "complete": false,
2026-06-07T22:53:32.2110118Z           "evidence": []
2026-06-07T22:53:32.2110219Z         },
2026-06-07T22:53:32.2110310Z         "impl": {
2026-06-07T22:53:32.2110405Z           "complete": true,
2026-06-07T22:53:32.2110496Z           "evidence": [
2026-06-07T22:53:32.2110577Z             {
2026-06-07T22:53:32.2110724Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2110934Z               "line": 222
2026-06-07T22:53:32.2111020Z             },
2026-06-07T22:53:32.2111102Z             {
2026-06-07T22:53:32.2111253Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2111344Z               "line": 389
2026-06-07T22:53:32.2111431Z             }
2026-06-07T22:53:32.2111610Z           ]
2026-06-07T22:53:32.2111695Z         },
2026-06-07T22:53:32.2111782Z         "int": {
2026-06-07T22:53:32.2111876Z           "complete": false,
2026-06-07T22:53:32.2111970Z           "evidence": []
2026-06-07T22:53:32.2112051Z         },
2026-06-07T22:53:32.2112133Z         "unit": {
2026-06-07T22:53:32.2112228Z           "complete": true,
2026-06-07T22:53:32.2112317Z           "evidence": [
2026-06-07T22:53:32.2112404Z             {
2026-06-07T22:53:32.2112528Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T22:53:32.2112618Z               "line": 161
2026-06-07T22:53:32.2112709Z             }
2026-06-07T22:53:32.2112791Z           ]
2026-06-07T22:53:32.2112881Z         }
2026-06-07T22:53:32.2112966Z       }
2026-06-07T22:53:32.2113054Z     },
2026-06-07T22:53:32.2113134Z     {
2026-06-07T22:53:32.2113248Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-07T22:53:32.2113435Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-07T22:53:32.2113534Z       "requiredStages": [
2026-06-07T22:53:32.2113620Z         "impl",
2026-06-07T22:53:32.2113707Z         "unit"
2026-06-07T22:53:32.2113792Z       ],
2026-06-07T22:53:32.2113878Z       "stages": {
2026-06-07T22:53:32.2113964Z         "doc": {
2026-06-07T22:53:32.2114065Z           "complete": false,
2026-06-07T22:53:32.2114153Z           "evidence": []
2026-06-07T22:53:32.2114243Z         },
2026-06-07T22:53:32.2114320Z         "impl": {
2026-06-07T22:53:32.2114410Z           "complete": true,
2026-06-07T22:53:32.2114499Z           "evidence": [
2026-06-07T22:53:32.2114584Z             {
2026-06-07T22:53:32.2114700Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2114795Z               "line": 40
2026-06-07T22:53:32.2114880Z             },
2026-06-07T22:53:32.2114961Z             {
2026-06-07T22:53:32.2115076Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2115161Z               "line": 100
2026-06-07T22:53:32.2115252Z             },
2026-06-07T22:53:32.2115348Z             {
2026-06-07T22:53:32.2115457Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2115548Z               "line": 215
2026-06-07T22:53:32.2115629Z             },
2026-06-07T22:53:32.2115719Z             {
2026-06-07T22:53:32.2115828Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2115916Z               "line": 314
2026-06-07T22:53:32.2116002Z             }
2026-06-07T22:53:32.2116081Z           ]
2026-06-07T22:53:32.2116172Z         },
2026-06-07T22:53:32.2116254Z         "int": {
2026-06-07T22:53:32.2116349Z           "complete": false,
2026-06-07T22:53:32.2116435Z           "evidence": []
2026-06-07T22:53:32.2116535Z         },
2026-06-07T22:53:32.2116622Z         "unit": {
2026-06-07T22:53:32.2116711Z           "complete": true,
2026-06-07T22:53:32.2116801Z           "evidence": [
2026-06-07T22:53:32.2116887Z             {
2026-06-07T22:53:32.2117080Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2117175Z               "line": 352
2026-06-07T22:53:32.2117276Z             },
2026-06-07T22:53:32.2117361Z             {
2026-06-07T22:53:32.2117466Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2117557Z               "line": 409
2026-06-07T22:53:32.2117643Z             },
2026-06-07T22:53:32.2117728Z             {
2026-06-07T22:53:32.2117833Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2117924Z               "line": 458
2026-06-07T22:53:32.2118005Z             },
2026-06-07T22:53:32.2118090Z             {
2026-06-07T22:53:32.2118201Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2118390Z               "line": 479
2026-06-07T22:53:32.2118478Z             }
2026-06-07T22:53:32.2118559Z           ]
2026-06-07T22:53:32.2118643Z         }
2026-06-07T22:53:32.2118729Z       }
2026-06-07T22:53:32.2118811Z     },
2026-06-07T22:53:32.2118897Z     {
2026-06-07T22:53:32.2119015Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-07T22:53:32.2119249Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-07T22:53:32.2119339Z       "requiredStages": [
2026-06-07T22:53:32.2119432Z         "impl",
2026-06-07T22:53:32.2119518Z         "unit"
2026-06-07T22:53:32.2119596Z       ],
2026-06-07T22:53:32.2119687Z       "stages": {
2026-06-07T22:53:32.2119773Z         "doc": {
2026-06-07T22:53:32.2119864Z           "complete": false,
2026-06-07T22:53:32.2119954Z           "evidence": []
2026-06-07T22:53:32.2120039Z         },
2026-06-07T22:53:32.2120127Z         "impl": {
2026-06-07T22:53:32.2120217Z           "complete": true,
2026-06-07T22:53:32.2120307Z           "evidence": [
2026-06-07T22:53:32.2120402Z             {
2026-06-07T22:53:32.2120512Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2120602Z               "line": 113
2026-06-07T22:53:32.2120688Z             },
2026-06-07T22:53:32.2120770Z             {
2026-06-07T22:53:32.2120879Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2120974Z               "line": 208
2026-06-07T22:53:32.2121056Z             }
2026-06-07T22:53:32.2121141Z           ]
2026-06-07T22:53:32.2121222Z         },
2026-06-07T22:53:32.2121308Z         "int": {
2026-06-07T22:53:32.2121405Z           "complete": false,
2026-06-07T22:53:32.2121494Z           "evidence": []
2026-06-07T22:53:32.2121580Z         },
2026-06-07T22:53:32.2121667Z         "unit": {
2026-06-07T22:53:32.2121757Z           "complete": true,
2026-06-07T22:53:32.2121847Z           "evidence": [
2026-06-07T22:53:32.2121933Z             {
2026-06-07T22:53:32.2122049Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2122142Z               "line": 373
2026-06-07T22:53:32.2122227Z             },
2026-06-07T22:53:32.2122313Z             {
2026-06-07T22:53:32.2122427Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2122511Z               "line": 436
2026-06-07T22:53:32.2122601Z             }
2026-06-07T22:53:32.2122693Z           ]
2026-06-07T22:53:32.2122774Z         }
2026-06-07T22:53:32.2122864Z       }
2026-06-07T22:53:32.2122945Z     },
2026-06-07T22:53:32.2123026Z     {
2026-06-07T22:53:32.2123145Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-07T22:53:32.2124310Z       "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-07T22:53:32.2124404Z       "requiredStages": [
2026-06-07T22:53:32.2124499Z         "impl",
2026-06-07T22:53:32.2124596Z         "unit"
2026-06-07T22:53:32.2124681Z       ],
2026-06-07T22:53:32.2124770Z       "stages": {
2026-06-07T22:53:32.2124860Z         "doc": {
2026-06-07T22:53:32.2124951Z           "complete": true,
2026-06-07T22:53:32.2125040Z           "evidence": [
2026-06-07T22:53:32.2125130Z             {
2026-06-07T22:53:32.2125240Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2125331Z               "line": 203
2026-06-07T22:53:32.2125425Z             }
2026-06-07T22:53:32.2125512Z           ]
2026-06-07T22:53:32.2125593Z         },
2026-06-07T22:53:32.2125684Z         "impl": {
2026-06-07T22:53:32.2125773Z           "complete": true,
2026-06-07T22:53:32.2125865Z           "evidence": [
2026-06-07T22:53:32.2125951Z             {
2026-06-07T22:53:32.2126078Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2126171Z               "line": 399
2026-06-07T22:53:32.2126251Z             },
2026-06-07T22:53:32.2126417Z             {
2026-06-07T22:53:32.2126533Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2126623Z               "line": 491
2026-06-07T22:53:32.2126708Z             },
2026-06-07T22:53:32.2126795Z             {
2026-06-07T22:53:32.2126923Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2127191Z               "line": 183
2026-06-07T22:53:32.2127299Z             }
2026-06-07T22:53:32.2127385Z           ]
2026-06-07T22:53:32.2127466Z         },
2026-06-07T22:53:32.2127555Z         "int": {
2026-06-07T22:53:32.2127649Z           "complete": false,
2026-06-07T22:53:32.2127744Z           "evidence": []
2026-06-07T22:53:32.2127827Z         },
2026-06-07T22:53:32.2127917Z         "unit": {
2026-06-07T22:53:32.2128007Z           "complete": true,
2026-06-07T22:53:32.2128098Z           "evidence": [
2026-06-07T22:53:32.2128179Z             {
2026-06-07T22:53:32.2128302Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2128403Z               "line": 529
2026-06-07T22:53:32.2128489Z             },
2026-06-07T22:53:32.2128575Z             {
2026-06-07T22:53:32.2128698Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T22:53:32.2128794Z               "line": 44
2026-06-07T22:53:32.2128885Z             },
2026-06-07T22:53:32.2128975Z             {
2026-06-07T22:53:32.2129091Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T22:53:32.2129175Z               "line": 54
2026-06-07T22:53:32.2129261Z             },
2026-06-07T22:53:32.2129348Z             {
2026-06-07T22:53:32.2129480Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-07T22:53:32.2129571Z               "line": 51
2026-06-07T22:53:32.2129657Z             }
2026-06-07T22:53:32.2129744Z           ]
2026-06-07T22:53:32.2129823Z         }
2026-06-07T22:53:32.2129914Z       }
2026-06-07T22:53:32.2129997Z     },
2026-06-07T22:53:32.2130078Z     {
2026-06-07T22:53:32.2130199Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-07T22:53:32.2130429Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-07T22:53:32.2130528Z       "requiredStages": [
2026-06-07T22:53:32.2130614Z         "impl",
2026-06-07T22:53:32.2130696Z         "unit"
2026-06-07T22:53:32.2130782Z       ],
2026-06-07T22:53:32.2130881Z       "stages": {
2026-06-07T22:53:32.2130972Z         "doc": {
2026-06-07T22:53:32.2131067Z           "complete": false,
2026-06-07T22:53:32.2131162Z           "evidence": []
2026-06-07T22:53:32.2131243Z         },
2026-06-07T22:53:32.2131335Z         "impl": {
2026-06-07T22:53:32.2131425Z           "complete": true,
2026-06-07T22:53:32.2131515Z           "evidence": [
2026-06-07T22:53:32.2131611Z             {
2026-06-07T22:53:32.2131725Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2131820Z               "line": 26
2026-06-07T22:53:32.2131902Z             },
2026-06-07T22:53:32.2131993Z             {
2026-06-07T22:53:32.2132121Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2132212Z               "line": 135
2026-06-07T22:53:32.2132299Z             },
2026-06-07T22:53:32.2132383Z             {
2026-06-07T22:53:32.2132507Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2132599Z               "line": 26
2026-06-07T22:53:32.2132697Z             },
2026-06-07T22:53:32.2132778Z             {
2026-06-07T22:53:32.2132902Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2132991Z               "line": 237
2026-06-07T22:53:32.2133071Z             }
2026-06-07T22:53:32.2133161Z           ]
2026-06-07T22:53:32.2133244Z         },
2026-06-07T22:53:32.2133329Z         "int": {
2026-06-07T22:53:32.2133419Z           "complete": false,
2026-06-07T22:53:32.2133515Z           "evidence": []
2026-06-07T22:53:32.2133606Z         },
2026-06-07T22:53:32.2133691Z         "unit": {
2026-06-07T22:53:32.2133781Z           "complete": true,
2026-06-07T22:53:32.2133973Z           "evidence": [
2026-06-07T22:53:32.2134063Z             {
2026-06-07T22:53:32.2134174Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2134268Z               "line": 161
2026-06-07T22:53:32.2134359Z             },
2026-06-07T22:53:32.2134440Z             {
2026-06-07T22:53:32.2134640Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2134726Z               "line": 170
2026-06-07T22:53:32.2134813Z             },
2026-06-07T22:53:32.2134898Z             {
2026-06-07T22:53:32.2135012Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2135103Z               "line": 179
2026-06-07T22:53:32.2135185Z             },
2026-06-07T22:53:32.2135273Z             {
2026-06-07T22:53:32.2135382Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2135474Z               "line": 190
2026-06-07T22:53:32.2135558Z             },
2026-06-07T22:53:32.2135648Z             {
2026-06-07T22:53:32.2135772Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2135858Z               "line": 199
2026-06-07T22:53:32.2135948Z             },
2026-06-07T22:53:32.2136033Z             {
2026-06-07T22:53:32.2136149Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2136239Z               "line": 216
2026-06-07T22:53:32.2136329Z             },
2026-06-07T22:53:32.2136416Z             {
2026-06-07T22:53:32.2136525Z               "path": "crates/spt-live/src/context.rs",
2026-06-07T22:53:32.2136620Z               "line": 242
2026-06-07T22:53:32.2136706Z             },
2026-06-07T22:53:32.2136788Z             {
2026-06-07T22:53:32.2136897Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2137070Z               "line": 257
2026-06-07T22:53:32.2137154Z             },
2026-06-07T22:53:32.2137245Z             {
2026-06-07T22:53:32.2137365Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2137451Z               "line": 244
2026-06-07T22:53:32.2137540Z             },
2026-06-07T22:53:32.2137636Z             {
2026-06-07T22:53:32.2137761Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2137855Z               "line": 265
2026-06-07T22:53:32.2137940Z             },
2026-06-07T22:53:32.2138026Z             {
2026-06-07T22:53:32.2138153Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2138242Z               "line": 293
2026-06-07T22:53:32.2138334Z             },
2026-06-07T22:53:32.2138420Z             {
2026-06-07T22:53:32.2138538Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2138624Z               "line": 317
2026-06-07T22:53:32.2138716Z             },
2026-06-07T22:53:32.2138797Z             {
2026-06-07T22:53:32.2138920Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-07T22:53:32.2139016Z               "line": 327
2026-06-07T22:53:32.2139096Z             },
2026-06-07T22:53:32.2139186Z             {
2026-06-07T22:53:32.2139302Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2139388Z               "line": 540
2026-06-07T22:53:32.2139473Z             }
2026-06-07T22:53:32.2139559Z           ]
2026-06-07T22:53:32.2139646Z         }
2026-06-07T22:53:32.2139735Z       }
2026-06-07T22:53:32.2139830Z     },
2026-06-07T22:53:32.2139913Z     {
2026-06-07T22:53:32.2140032Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-07T22:53:32.2140188Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-07T22:53:32.2140327Z       "requiredStages": [
2026-06-07T22:53:32.2140416Z         "impl",
2026-06-07T22:53:32.2140503Z         "unit"
2026-06-07T22:53:32.2140590Z       ],
2026-06-07T22:53:32.2140675Z       "stages": {
2026-06-07T22:53:32.2140764Z         "doc": {
2026-06-07T22:53:32.2140859Z           "complete": false,
2026-06-07T22:53:32.2140946Z           "evidence": []
2026-06-07T22:53:32.2141037Z         },
2026-06-07T22:53:32.2141126Z         "impl": {
2026-06-07T22:53:32.2141237Z           "complete": true,
2026-06-07T22:53:32.2141427Z           "evidence": [
2026-06-07T22:53:32.2141518Z             {
2026-06-07T22:53:32.2141632Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2141727Z               "line": 25
2026-06-07T22:53:32.2141813Z             },
2026-06-07T22:53:32.2141990Z             {
2026-06-07T22:53:32.2142109Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2142196Z               "line": 26
2026-06-07T22:53:32.2142280Z             },
2026-06-07T22:53:32.2142366Z             {
2026-06-07T22:53:32.2142482Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2142577Z               "line": 159
2026-06-07T22:53:32.2142667Z             }
2026-06-07T22:53:32.2142753Z           ]
2026-06-07T22:53:32.2142835Z         },
2026-06-07T22:53:32.2142920Z         "int": {
2026-06-07T22:53:32.2143014Z           "complete": false,
2026-06-07T22:53:32.2143102Z           "evidence": []
2026-06-07T22:53:32.2143193Z         },
2026-06-07T22:53:32.2143286Z         "unit": {
2026-06-07T22:53:32.2143376Z           "complete": true,
2026-06-07T22:53:32.2143462Z           "evidence": [
2026-06-07T22:53:32.2143552Z             {
2026-06-07T22:53:32.2143660Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2143751Z               "line": 184
2026-06-07T22:53:32.2143851Z             },
2026-06-07T22:53:32.2143922Z             {
2026-06-07T22:53:32.2144031Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2144124Z               "line": 236
2026-06-07T22:53:32.2144199Z             },
2026-06-07T22:53:32.2144279Z             {
2026-06-07T22:53:32.2144395Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2144499Z               "line": 186
2026-06-07T22:53:32.2144585Z             }
2026-06-07T22:53:32.2144670Z           ]
2026-06-07T22:53:32.2144758Z         }
2026-06-07T22:53:32.2144842Z       }
2026-06-07T22:53:32.2144923Z     },
2026-06-07T22:53:32.2145010Z     {
2026-06-07T22:53:32.2145120Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-07T22:53:32.2145286Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-07T22:53:32.2145383Z       "requiredStages": [
2026-06-07T22:53:32.2145467Z         "impl",
2026-06-07T22:53:32.2145558Z         "unit"
2026-06-07T22:53:32.2145644Z       ],
2026-06-07T22:53:32.2145736Z       "stages": {
2026-06-07T22:53:32.2145824Z         "doc": {
2026-06-07T22:53:32.2145919Z           "complete": false,
2026-06-07T22:53:32.2146019Z           "evidence": []
2026-06-07T22:53:32.2146104Z         },
2026-06-07T22:53:32.2146194Z         "impl": {
2026-06-07T22:53:32.2146283Z           "complete": true,
2026-06-07T22:53:32.2146375Z           "evidence": [
2026-06-07T22:53:32.2146465Z             {
2026-06-07T22:53:32.2146583Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2146676Z               "line": 48
2026-06-07T22:53:32.2146757Z             },
2026-06-07T22:53:32.2146842Z             {
2026-06-07T22:53:32.2147052Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2147147Z               "line": 55
2026-06-07T22:53:32.2147232Z             },
2026-06-07T22:53:32.2147320Z             {
2026-06-07T22:53:32.2147443Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2147537Z               "line": 74
2026-06-07T22:53:32.2147630Z             },
2026-06-07T22:53:32.2147714Z             {
2026-06-07T22:53:32.2147829Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2147920Z               "line": 91
2026-06-07T22:53:32.2148001Z             }
2026-06-07T22:53:32.2148086Z           ]
2026-06-07T22:53:32.2148172Z         },
2026-06-07T22:53:32.2148259Z         "int": {
2026-06-07T22:53:32.2148354Z           "complete": false,
2026-06-07T22:53:32.2148448Z           "evidence": []
2026-06-07T22:53:32.2148533Z         },
2026-06-07T22:53:32.2148619Z         "unit": {
2026-06-07T22:53:32.2148713Z           "complete": true,
2026-06-07T22:53:32.2148918Z           "evidence": [
2026-06-07T22:53:32.2149009Z             {
2026-06-07T22:53:32.2149122Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2149213Z               "line": 149
2026-06-07T22:53:32.2149300Z             },
2026-06-07T22:53:32.2149389Z             {
2026-06-07T22:53:32.2149590Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2149681Z               "line": 166
2026-06-07T22:53:32.2149770Z             },
2026-06-07T22:53:32.2149853Z             {
2026-06-07T22:53:32.2149971Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2150071Z               "line": 176
2026-06-07T22:53:32.2150153Z             },
2026-06-07T22:53:32.2150244Z             {
2026-06-07T22:53:32.2150353Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2150448Z               "line": 194
2026-06-07T22:53:32.2150530Z             },
2026-06-07T22:53:32.2150624Z             {
2026-06-07T22:53:32.2150748Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2150840Z               "line": 207
2026-06-07T22:53:32.2150934Z             }
2026-06-07T22:53:32.2151020Z           ]
2026-06-07T22:53:32.2151107Z         }
2026-06-07T22:53:32.2151188Z       }
2026-06-07T22:53:32.2151277Z     },
2026-06-07T22:53:32.2151372Z     {
2026-06-07T22:53:32.2151487Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-07T22:53:32.2151672Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-07T22:53:32.2151768Z       "requiredStages": [
2026-06-07T22:53:32.2151883Z         "impl",
2026-06-07T22:53:32.2151982Z         "unit"
2026-06-07T22:53:32.2152078Z       ],
2026-06-07T22:53:32.2152169Z       "stages": {
2026-06-07T22:53:32.2152255Z         "doc": {
2026-06-07T22:53:32.2152344Z           "complete": false,
2026-06-07T22:53:32.2152431Z           "evidence": []
2026-06-07T22:53:32.2152521Z         },
2026-06-07T22:53:32.2152607Z         "impl": {
2026-06-07T22:53:32.2152717Z           "complete": true,
2026-06-07T22:53:32.2152808Z           "evidence": [
2026-06-07T22:53:32.2152893Z             {
2026-06-07T22:53:32.2153017Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2153109Z               "line": 373
2026-06-07T22:53:32.2153193Z             },
2026-06-07T22:53:32.2153289Z             {
2026-06-07T22:53:32.2153400Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2153494Z               "line": 26
2026-06-07T22:53:32.2153575Z             }
2026-06-07T22:53:32.2153662Z           ]
2026-06-07T22:53:32.2153743Z         },
2026-06-07T22:53:32.2153832Z         "int": {
2026-06-07T22:53:32.2153922Z           "complete": false,
2026-06-07T22:53:32.2154017Z           "evidence": []
2026-06-07T22:53:32.2154103Z         },
2026-06-07T22:53:32.2154187Z         "unit": {
2026-06-07T22:53:32.2154281Z           "complete": true,
2026-06-07T22:53:32.2154369Z           "evidence": [
2026-06-07T22:53:32.2154460Z             {
2026-06-07T22:53:32.2154582Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2154674Z               "line": 150
2026-06-07T22:53:32.2154764Z             },
2026-06-07T22:53:32.2154844Z             {
2026-06-07T22:53:32.2154960Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2155059Z               "line": 208
2026-06-07T22:53:32.2155140Z             }
2026-06-07T22:53:32.2155240Z           ]
2026-06-07T22:53:32.2155323Z         }
2026-06-07T22:53:32.2155407Z       }
2026-06-07T22:53:32.2155493Z     },
2026-06-07T22:53:32.2155574Z     {
2026-06-07T22:53:32.2155694Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-07T22:53:32.2157354Z       "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-07T22:53:32.2157463Z       "requiredStages": [
2026-06-07T22:53:32.2157551Z         "doc",
2026-06-07T22:53:32.2157640Z         "impl",
2026-06-07T22:53:32.2157721Z         "unit"
2026-06-07T22:53:32.2157903Z       ],
2026-06-07T22:53:32.2160122Z       "stages": {
2026-06-07T22:53:32.2160236Z         "doc": {
2026-06-07T22:53:32.2160340Z           "complete": true,
2026-06-07T22:53:32.2160432Z           "evidence": [
2026-06-07T22:53:32.2160522Z             {
2026-06-07T22:53:32.2160641Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2160738Z               "line": 211
2026-06-07T22:53:32.2160823Z             }
2026-06-07T22:53:32.2160908Z           ]
2026-06-07T22:53:32.2160994Z         },
2026-06-07T22:53:32.2161081Z         "impl": {
2026-06-07T22:53:32.2161175Z           "complete": true,
2026-06-07T22:53:32.2161266Z           "evidence": [
2026-06-07T22:53:32.2161352Z             {
2026-06-07T22:53:32.2161499Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2161590Z               "line": 54
2026-06-07T22:53:32.2161677Z             },
2026-06-07T22:53:32.2161762Z             {
2026-06-07T22:53:32.2161880Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2161979Z               "line": 317
2026-06-07T22:53:32.2162062Z             },
2026-06-07T22:53:32.2162152Z             {
2026-06-07T22:53:32.2162275Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2162372Z               "line": 36
2026-06-07T22:53:32.2162458Z             },
2026-06-07T22:53:32.2162547Z             {
2026-06-07T22:53:32.2162662Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2162753Z               "line": 59
2026-06-07T22:53:32.2162838Z             },
2026-06-07T22:53:32.2162924Z             {
2026-06-07T22:53:32.2163039Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2163130Z               "line": 87
2026-06-07T22:53:32.2163219Z             },
2026-06-07T22:53:32.2163302Z             {
2026-06-07T22:53:32.2163420Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2163510Z               "line": 106
2026-06-07T22:53:32.2163597Z             },
2026-06-07T22:53:32.2163688Z             {
2026-06-07T22:53:32.2163802Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2163897Z               "line": 331
2026-06-07T22:53:32.2163979Z             },
2026-06-07T22:53:32.2164068Z             {
2026-06-07T22:53:32.2164188Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2164275Z               "line": 473
2026-06-07T22:53:32.2164365Z             },
2026-06-07T22:53:32.2164449Z             {
2026-06-07T22:53:32.2164568Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2164654Z               "line": 519
2026-06-07T22:53:32.2164737Z             },
2026-06-07T22:53:32.2164837Z             {
2026-06-07T22:53:32.2164948Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2165039Z               "line": 145
2026-06-07T22:53:32.2165118Z             },
2026-06-07T22:53:32.2165205Z             {
2026-06-07T22:53:32.2165314Z               "path": "crates/spt/src/main.rs",
2026-06-07T22:53:32.2165409Z               "line": 29
2026-06-07T22:53:32.2165495Z             }
2026-06-07T22:53:32.2165573Z           ]
2026-06-07T22:53:32.2165662Z         },
2026-06-07T22:53:32.2165748Z         "int": {
2026-06-07T22:53:32.2165840Z           "complete": false,
2026-06-07T22:53:32.2165930Z           "evidence": []
2026-06-07T22:53:32.2166016Z         },
2026-06-07T22:53:32.2166106Z         "unit": {
2026-06-07T22:53:32.2166198Z           "complete": true,
2026-06-07T22:53:32.2166287Z           "evidence": [
2026-06-07T22:53:32.2166372Z             {
2026-06-07T22:53:32.2166493Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2166674Z               "line": 661
2026-06-07T22:53:32.2166764Z             },
2026-06-07T22:53:32.2166851Z             {
2026-06-07T22:53:32.2167063Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2167154Z               "line": 707
2026-06-07T22:53:32.2167239Z             }
2026-06-07T22:53:32.2167466Z           ]
2026-06-07T22:53:32.2167552Z         }
2026-06-07T22:53:32.2167642Z       }
2026-06-07T22:53:32.2167733Z     },
2026-06-07T22:53:32.2167820Z     {
2026-06-07T22:53:32.2167943Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-07T22:53:32.2168096Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-07T22:53:32.2168200Z       "requiredStages": [
2026-06-07T22:53:32.2168286Z         "impl",
2026-06-07T22:53:32.2168372Z         "unit"
2026-06-07T22:53:32.2168459Z       ],
2026-06-07T22:53:32.2168544Z       "stages": {
2026-06-07T22:53:32.2168634Z         "doc": {
2026-06-07T22:53:32.2168726Z           "complete": false,
2026-06-07T22:53:32.2168830Z           "evidence": []
2026-06-07T22:53:32.2168911Z         },
2026-06-07T22:53:32.2169001Z         "impl": {
2026-06-07T22:53:32.2169094Z           "complete": true,
2026-06-07T22:53:32.2169182Z           "evidence": [
2026-06-07T22:53:32.2169273Z             {
2026-06-07T22:53:32.2169394Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2169492Z               "line": 36
2026-06-07T22:53:32.2169573Z             },
2026-06-07T22:53:32.2169663Z             {
2026-06-07T22:53:32.2169781Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2169866Z               "line": 68
2026-06-07T22:53:32.2169951Z             }
2026-06-07T22:53:32.2170038Z           ]
2026-06-07T22:53:32.2170120Z         },
2026-06-07T22:53:32.2170204Z         "int": {
2026-06-07T22:53:32.2170300Z           "complete": false,
2026-06-07T22:53:32.2170391Z           "evidence": []
2026-06-07T22:53:32.2170472Z         },
2026-06-07T22:53:32.2170557Z         "unit": {
2026-06-07T22:53:32.2170653Z           "complete": true,
2026-06-07T22:53:32.2170744Z           "evidence": [
2026-06-07T22:53:32.2170824Z             {
2026-06-07T22:53:32.2170949Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2171039Z               "line": 143
2026-06-07T22:53:32.2171120Z             },
2026-06-07T22:53:32.2171215Z             {
2026-06-07T22:53:32.2171326Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2171421Z               "line": 160
2026-06-07T22:53:32.2171511Z             },
2026-06-07T22:53:32.2171593Z             {
2026-06-07T22:53:32.2171712Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2171797Z               "line": 168
2026-06-07T22:53:32.2171883Z             }
2026-06-07T22:53:32.2171965Z           ]
2026-06-07T22:53:32.2172049Z         }
2026-06-07T22:53:32.2172135Z       }
2026-06-07T22:53:32.2172218Z     },
2026-06-07T22:53:32.2172304Z     {
2026-06-07T22:53:32.2172435Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-07T22:53:32.2172612Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-07T22:53:32.2172703Z       "requiredStages": [
2026-06-07T22:53:32.2172787Z         "impl",
2026-06-07T22:53:32.2172883Z         "unit"
2026-06-07T22:53:32.2172965Z       ],
2026-06-07T22:53:32.2173060Z       "stages": {
2026-06-07T22:53:32.2173150Z         "doc": {
2026-06-07T22:53:32.2173242Z           "complete": false,
2026-06-07T22:53:32.2173332Z           "evidence": []
2026-06-07T22:53:32.2173417Z         },
2026-06-07T22:53:32.2173498Z         "impl": {
2026-06-07T22:53:32.2173595Z           "complete": true,
2026-06-07T22:53:32.2173685Z           "evidence": [
2026-06-07T22:53:32.2173765Z             {
2026-06-07T22:53:32.2173885Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2173976Z               "line": 107
2026-06-07T22:53:32.2174061Z             }
2026-06-07T22:53:32.2174147Z           ]
2026-06-07T22:53:32.2174229Z         },
2026-06-07T22:53:32.2174419Z         "int": {
2026-06-07T22:53:32.2174511Z           "complete": false,
2026-06-07T22:53:32.2174605Z           "evidence": []
2026-06-07T22:53:32.2174685Z         },
2026-06-07T22:53:32.2174772Z         "unit": {
2026-06-07T22:53:32.2174863Z           "complete": true,
2026-06-07T22:53:32.2175028Z           "evidence": [
2026-06-07T22:53:32.2175109Z             {
2026-06-07T22:53:32.2175228Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2175316Z               "line": 184
2026-06-07T22:53:32.2175402Z             },
2026-06-07T22:53:32.2175489Z             {
2026-06-07T22:53:32.2175613Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2175702Z               "line": 193
2026-06-07T22:53:32.2175784Z             },
2026-06-07T22:53:32.2175870Z             {
2026-06-07T22:53:32.2175983Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2176070Z               "line": 201
2026-06-07T22:53:32.2176156Z             },
2026-06-07T22:53:32.2176251Z             {
2026-06-07T22:53:32.2176366Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2176457Z               "line": 211
2026-06-07T22:53:32.2176537Z             },
2026-06-07T22:53:32.2176623Z             {
2026-06-07T22:53:32.2176748Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-07T22:53:32.2176838Z               "line": 221
2026-06-07T22:53:32.2176919Z             }
2026-06-07T22:53:32.2177077Z           ]
2026-06-07T22:53:32.2177162Z         }
2026-06-07T22:53:32.2177243Z       }
2026-06-07T22:53:32.2177324Z     },
2026-06-07T22:53:32.2177411Z     {
2026-06-07T22:53:32.2177528Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-07T22:53:32.2177695Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-07T22:53:32.2177790Z       "requiredStages": [
2026-06-07T22:53:32.2177883Z         "impl",
2026-06-07T22:53:32.2177968Z         "unit"
2026-06-07T22:53:32.2178056Z       ],
2026-06-07T22:53:32.2178146Z       "stages": {
2026-06-07T22:53:32.2178231Z         "doc": {
2026-06-07T22:53:32.2178332Z           "complete": false,
2026-06-07T22:53:32.2178422Z           "evidence": []
2026-06-07T22:53:32.2178508Z         },
2026-06-07T22:53:32.2178589Z         "impl": {
2026-06-07T22:53:32.2178685Z           "complete": true,
2026-06-07T22:53:32.2178780Z           "evidence": [
2026-06-07T22:53:32.2178865Z             {
2026-06-07T22:53:32.2178981Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2179066Z               "line": 14
2026-06-07T22:53:32.2179152Z             },
2026-06-07T22:53:32.2179242Z             {
2026-06-07T22:53:32.2179353Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2179442Z               "line": 62
2026-06-07T22:53:32.2179523Z             }
2026-06-07T22:53:32.2179605Z           ]
2026-06-07T22:53:32.2179691Z         },
2026-06-07T22:53:32.2179776Z         "int": {
2026-06-07T22:53:32.2179867Z           "complete": false,
2026-06-07T22:53:32.2179964Z           "evidence": []
2026-06-07T22:53:32.2180048Z         },
2026-06-07T22:53:32.2180133Z         "unit": {
2026-06-07T22:53:32.2180228Z           "complete": true,
2026-06-07T22:53:32.2180314Z           "evidence": [
2026-06-07T22:53:32.2180402Z             {
2026-06-07T22:53:32.2180511Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2180603Z               "line": 160
2026-06-07T22:53:32.2180689Z             },
2026-06-07T22:53:32.2180774Z             {
2026-06-07T22:53:32.2180888Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2180975Z               "line": 197
2026-06-07T22:53:32.2181060Z             },
2026-06-07T22:53:32.2181141Z             {
2026-06-07T22:53:32.2181257Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2181347Z               "line": 219
2026-06-07T22:53:32.2181432Z             }
2026-06-07T22:53:32.2181514Z           ]
2026-06-07T22:53:32.2181599Z         }
2026-06-07T22:53:32.2181680Z       }
2026-06-07T22:53:32.2181882Z     },
2026-06-07T22:53:32.2181971Z     {
2026-06-07T22:53:32.2182076Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-07T22:53:32.2183458Z       "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-07T22:53:32.2183653Z       "requiredStages": [],
2026-06-07T22:53:32.2183739Z       "stages": {
2026-06-07T22:53:32.2183825Z         "doc": {
2026-06-07T22:53:32.2183925Z           "complete": true,
2026-06-07T22:53:32.2184015Z           "evidence": [
2026-06-07T22:53:32.2184103Z             {
2026-06-07T22:53:32.2184216Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2184316Z               "line": 162
2026-06-07T22:53:32.2184397Z             }
2026-06-07T22:53:32.2184484Z           ]
2026-06-07T22:53:32.2184568Z         },
2026-06-07T22:53:32.2184659Z         "impl": {
2026-06-07T22:53:32.2184761Z           "complete": false,
2026-06-07T22:53:32.2184850Z           "evidence": []
2026-06-07T22:53:32.2184941Z         },
2026-06-07T22:53:32.2185027Z         "int": {
2026-06-07T22:53:32.2185118Z           "complete": false,
2026-06-07T22:53:32.2185208Z           "evidence": []
2026-06-07T22:53:32.2185298Z         },
2026-06-07T22:53:32.2185386Z         "unit": {
2026-06-07T22:53:32.2185475Z           "complete": false,
2026-06-07T22:53:32.2185569Z           "evidence": []
2026-06-07T22:53:32.2185650Z         }
2026-06-07T22:53:32.2185736Z       }
2026-06-07T22:53:32.2185820Z     },
2026-06-07T22:53:32.2185905Z     {
2026-06-07T22:53:32.2186020Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-07T22:53:32.2186243Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-07T22:53:32.2186340Z       "requiredStages": [
2026-06-07T22:53:32.2186426Z         "impl",
2026-06-07T22:53:32.2186520Z         "unit"
2026-06-07T22:53:32.2186601Z       ],
2026-06-07T22:53:32.2186688Z       "stages": {
2026-06-07T22:53:32.2186778Z         "doc": {
2026-06-07T22:53:32.2186877Z           "complete": false,
2026-06-07T22:53:32.2187060Z           "evidence": []
2026-06-07T22:53:32.2187140Z         },
2026-06-07T22:53:32.2187231Z         "impl": {
2026-06-07T22:53:32.2187322Z           "complete": true,
2026-06-07T22:53:32.2187412Z           "evidence": [
2026-06-07T22:53:32.2187498Z             {
2026-06-07T22:53:32.2187618Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2187708Z               "line": 76
2026-06-07T22:53:32.2187789Z             },
2026-06-07T22:53:32.2187875Z             {
2026-06-07T22:53:32.2187986Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2188074Z               "line": 167
2026-06-07T22:53:32.2188164Z             },
2026-06-07T22:53:32.2188246Z             {
2026-06-07T22:53:32.2188359Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2188448Z               "line": 233
2026-06-07T22:53:32.2188533Z             },
2026-06-07T22:53:32.2188616Z             {
2026-06-07T22:53:32.2188730Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2188819Z               "line": 272
2026-06-07T22:53:32.2188901Z             }
2026-06-07T22:53:32.2188987Z           ]
2026-06-07T22:53:32.2189068Z         },
2026-06-07T22:53:32.2189158Z         "int": {
2026-06-07T22:53:32.2189250Z           "complete": false,
2026-06-07T22:53:32.2189340Z           "evidence": []
2026-06-07T22:53:32.2189425Z         },
2026-06-07T22:53:32.2189507Z         "unit": {
2026-06-07T22:53:32.2189603Z           "complete": true,
2026-06-07T22:53:32.2189693Z           "evidence": [
2026-06-07T22:53:32.2189764Z             {
2026-06-07T22:53:32.2190103Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2190199Z               "line": 321
2026-06-07T22:53:32.2190279Z             },
2026-06-07T22:53:32.2190374Z             {
2026-06-07T22:53:32.2190509Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2190590Z               "line": 329
2026-06-07T22:53:32.2190764Z             },
2026-06-07T22:53:32.2190846Z             {
2026-06-07T22:53:32.2190953Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2191039Z               "line": 356
2026-06-07T22:53:32.2191115Z             },
2026-06-07T22:53:32.2191201Z             {
2026-06-07T22:53:32.2191320Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2191420Z               "line": 395
2026-06-07T22:53:32.2191530Z             },
2026-06-07T22:53:32.2191634Z             {
2026-06-07T22:53:32.2191745Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2191831Z               "line": 406
2026-06-07T22:53:32.2191917Z             },
2026-06-07T22:53:32.2192002Z             {
2026-06-07T22:53:32.2192108Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2192197Z               "line": 418
2026-06-07T22:53:32.2192283Z             },
2026-06-07T22:53:32.2192394Z             {
2026-06-07T22:53:32.2192503Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-07T22:53:32.2192602Z               "line": 442
2026-06-07T22:53:32.2192689Z             }
2026-06-07T22:53:32.2192771Z           ]
2026-06-07T22:53:32.2192855Z         }
2026-06-07T22:53:32.2192941Z       }
2026-06-07T22:53:32.2193028Z     },
2026-06-07T22:53:32.2193109Z     {
2026-06-07T22:53:32.2193222Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-07T22:53:32.2193367Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-07T22:53:32.2193461Z       "requiredStages": [
2026-06-07T22:53:32.2193551Z         "impl",
2026-06-07T22:53:32.2193631Z         "int"
2026-06-07T22:53:32.2193718Z       ],
2026-06-07T22:53:32.2193823Z       "stages": {
2026-06-07T22:53:32.2193908Z         "doc": {
2026-06-07T22:53:32.2194003Z           "complete": false,
2026-06-07T22:53:32.2194104Z           "evidence": []
2026-06-07T22:53:32.2194189Z         },
2026-06-07T22:53:32.2194270Z         "impl": {
2026-06-07T22:53:32.2194367Z           "complete": true,
2026-06-07T22:53:32.2194462Z           "evidence": [
2026-06-07T22:53:32.2194547Z             {
2026-06-07T22:53:32.2194668Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2194757Z               "line": 22
2026-06-07T22:53:32.2194842Z             }
2026-06-07T22:53:32.2194924Z           ]
2026-06-07T22:53:32.2195011Z         },
2026-06-07T22:53:32.2195096Z         "int": {
2026-06-07T22:53:32.2195186Z           "complete": true,
2026-06-07T22:53:32.2195277Z           "evidence": [
2026-06-07T22:53:32.2195358Z             {
2026-06-07T22:53:32.2195486Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-07T22:53:32.2195573Z               "line": 18
2026-06-07T22:53:32.2195664Z             }
2026-06-07T22:53:32.2195748Z           ]
2026-06-07T22:53:32.2195835Z         },
2026-06-07T22:53:32.2195917Z         "unit": {
2026-06-07T22:53:32.2196017Z           "complete": false,
2026-06-07T22:53:32.2196111Z           "evidence": []
2026-06-07T22:53:32.2196200Z         }
2026-06-07T22:53:32.2196287Z       }
2026-06-07T22:53:32.2196366Z     },
2026-06-07T22:53:32.2196451Z     {
2026-06-07T22:53:32.2196570Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-07T22:53:32.2196756Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-07T22:53:32.2196852Z       "requiredStages": [
2026-06-07T22:53:32.2197062Z         "impl",
2026-06-07T22:53:32.2197338Z         "unit"
2026-06-07T22:53:32.2197438Z       ],
2026-06-07T22:53:32.2197563Z       "stages": {
2026-06-07T22:53:32.2197658Z         "doc": {
2026-06-07T22:53:32.2197748Z           "complete": false,
2026-06-07T22:53:32.2197849Z           "evidence": []
2026-06-07T22:53:32.2198030Z         },
2026-06-07T22:53:32.2198125Z         "impl": {
2026-06-07T22:53:32.2198216Z           "complete": true,
2026-06-07T22:53:32.2198311Z           "evidence": [
2026-06-07T22:53:32.2198392Z             {
2026-06-07T22:53:32.2198522Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2198705Z               "line": 372
2026-06-07T22:53:32.2198796Z             },
2026-06-07T22:53:32.2198881Z             {
2026-06-07T22:53:32.2199008Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2199098Z               "line": 27
2026-06-07T22:53:32.2199186Z             }
2026-06-07T22:53:32.2199271Z           ]
2026-06-07T22:53:32.2199356Z         },
2026-06-07T22:53:32.2199442Z         "int": {
2026-06-07T22:53:32.2199538Z           "complete": false,
2026-06-07T22:53:32.2199628Z           "evidence": []
2026-06-07T22:53:32.2199714Z         },
2026-06-07T22:53:32.2199801Z         "unit": {
2026-06-07T22:53:32.2199895Z           "complete": true,
2026-06-07T22:53:32.2199999Z           "evidence": [
2026-06-07T22:53:32.2200087Z             {
2026-06-07T22:53:32.2200210Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2200300Z               "line": 817
2026-06-07T22:53:32.2200387Z             },
2026-06-07T22:53:32.2200473Z             {
2026-06-07T22:53:32.2200606Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2200696Z               "line": 181
2026-06-07T22:53:32.2200783Z             }
2026-06-07T22:53:32.2200872Z           ]
2026-06-07T22:53:32.2200958Z         }
2026-06-07T22:53:32.2201041Z       }
2026-06-07T22:53:32.2201131Z     },
2026-06-07T22:53:32.2201224Z     {
2026-06-07T22:53:32.2201343Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-07T22:53:32.2201504Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-07T22:53:32.2201603Z       "requiredStages": [
2026-06-07T22:53:32.2201685Z         "impl",
2026-06-07T22:53:32.2201776Z         "unit"
2026-06-07T22:53:32.2201870Z       ],
2026-06-07T22:53:32.2201965Z       "stages": {
2026-06-07T22:53:32.2202053Z         "doc": {
2026-06-07T22:53:32.2202144Z           "complete": false,
2026-06-07T22:53:32.2202237Z           "evidence": []
2026-06-07T22:53:32.2202319Z         },
2026-06-07T22:53:32.2202405Z         "impl": {
2026-06-07T22:53:32.2202500Z           "complete": true,
2026-06-07T22:53:32.2202591Z           "evidence": [
2026-06-07T22:53:32.2202682Z             {
2026-06-07T22:53:32.2202796Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2202886Z               "line": 20
2026-06-07T22:53:32.2202973Z             },
2026-06-07T22:53:32.2203063Z             {
2026-06-07T22:53:32.2203172Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2203264Z               "line": 100
2026-06-07T22:53:32.2203355Z             },
2026-06-07T22:53:32.2203439Z             {
2026-06-07T22:53:32.2203559Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T22:53:32.2203655Z               "line": 68
2026-06-07T22:53:32.2203744Z             },
2026-06-07T22:53:32.2203825Z             {
2026-06-07T22:53:32.2203946Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T22:53:32.2204040Z               "line": 80
2026-06-07T22:53:32.2204125Z             }
2026-06-07T22:53:32.2204215Z           ]
2026-06-07T22:53:32.2204297Z         },
2026-06-07T22:53:32.2204392Z         "int": {
2026-06-07T22:53:32.2204487Z           "complete": false,
2026-06-07T22:53:32.2204583Z           "evidence": []
2026-06-07T22:53:32.2204669Z         },
2026-06-07T22:53:32.2204754Z         "unit": {
2026-06-07T22:53:32.2204854Z           "complete": true,
2026-06-07T22:53:32.2204941Z           "evidence": [
2026-06-07T22:53:32.2205027Z             {
2026-06-07T22:53:32.2205136Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2205232Z               "line": 152
2026-06-07T22:53:32.2205317Z             },
2026-06-07T22:53:32.2205402Z             {
2026-06-07T22:53:32.2205604Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2205694Z               "line": 175
2026-06-07T22:53:32.2205784Z             },
2026-06-07T22:53:32.2205867Z             {
2026-06-07T22:53:32.2205979Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2206152Z               "line": 186
2026-06-07T22:53:32.2206238Z             },
2026-06-07T22:53:32.2206328Z             {
2026-06-07T22:53:32.2206438Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2206530Z               "line": 202
2026-06-07T22:53:32.2206613Z             },
2026-06-07T22:53:32.2206699Z             {
2026-06-07T22:53:32.2206808Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-07T22:53:32.2206898Z               "line": 216
2026-06-07T22:53:32.2207077Z             },
2026-06-07T22:53:32.2207150Z             {
2026-06-07T22:53:32.2207274Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-07T22:53:32.2207382Z               "line": 137
2026-06-07T22:53:32.2207470Z             }
2026-06-07T22:53:32.2207555Z           ]
2026-06-07T22:53:32.2207640Z         }
2026-06-07T22:53:32.2207726Z       }
2026-06-07T22:53:32.2207808Z     },
2026-06-07T22:53:32.2207894Z     {
2026-06-07T22:53:32.2207993Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-07T22:53:32.2208251Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-07T22:53:32.2208351Z       "requiredStages": [
2026-06-07T22:53:32.2208434Z         "impl",
2026-06-07T22:53:32.2208528Z         "unit"
2026-06-07T22:53:32.2208618Z       ],
2026-06-07T22:53:32.2208709Z       "stages": {
2026-06-07T22:53:32.2208791Z         "doc": {
2026-06-07T22:53:32.2208894Z           "complete": true,
2026-06-07T22:53:32.2208990Z           "evidence": [
2026-06-07T22:53:32.2209073Z             {
2026-06-07T22:53:32.2209180Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2209270Z               "line": 131
2026-06-07T22:53:32.2209361Z             }
2026-06-07T22:53:32.2209446Z           ]
2026-06-07T22:53:32.2209531Z         },
2026-06-07T22:53:32.2209616Z         "impl": {
2026-06-07T22:53:32.2209707Z           "complete": true,
2026-06-07T22:53:32.2209802Z           "evidence": [
2026-06-07T22:53:32.2209888Z             {
2026-06-07T22:53:32.2210012Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2210098Z               "line": 65
2026-06-07T22:53:32.2210188Z             },
2026-06-07T22:53:32.2210274Z             {
2026-06-07T22:53:32.2210380Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2210475Z               "line": 17
2026-06-07T22:53:32.2210555Z             },
2026-06-07T22:53:32.2210642Z             {
2026-06-07T22:53:32.2210756Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2210847Z               "line": 217
2026-06-07T22:53:32.2210932Z             },
2026-06-07T22:53:32.2211019Z             {
2026-06-07T22:53:32.2211137Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2211228Z               "line": 317
2026-06-07T22:53:32.2211315Z             },
2026-06-07T22:53:32.2211409Z             {
2026-06-07T22:53:32.2211542Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2211634Z               "line": 32
2026-06-07T22:53:32.2211724Z             },
2026-06-07T22:53:32.2211813Z             {
2026-06-07T22:53:32.2211918Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2212013Z               "line": 3666
2026-06-07T22:53:32.2212097Z             },
2026-06-07T22:53:32.2212183Z             {
2026-06-07T22:53:32.2212288Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2212384Z               "line": 3934
2026-06-07T22:53:32.2212468Z             }
2026-06-07T22:53:32.2212555Z           ]
2026-06-07T22:53:32.2212637Z         },
2026-06-07T22:53:32.2212732Z         "int": {
2026-06-07T22:53:32.2212826Z           "complete": false,
2026-06-07T22:53:32.2213017Z           "evidence": []
2026-06-07T22:53:32.2213102Z         },
2026-06-07T22:53:32.2213189Z         "unit": {
2026-06-07T22:53:32.2213285Z           "complete": true,
2026-06-07T22:53:32.2213371Z           "evidence": [
2026-06-07T22:53:32.2213465Z             {
2026-06-07T22:53:32.2213572Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2213761Z               "line": 94
2026-06-07T22:53:32.2213843Z             },
2026-06-07T22:53:32.2213929Z             {
2026-06-07T22:53:32.2214033Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2214124Z               "line": 111
2026-06-07T22:53:32.2214215Z             },
2026-06-07T22:53:32.2214300Z             {
2026-06-07T22:53:32.2214405Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2214497Z               "line": 124
2026-06-07T22:53:32.2214587Z             },
2026-06-07T22:53:32.2214671Z             {
2026-06-07T22:53:32.2214785Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2214881Z               "line": 134
2026-06-07T22:53:32.2214967Z             },
2026-06-07T22:53:32.2215052Z             {
2026-06-07T22:53:32.2215158Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2215249Z               "line": 144
2026-06-07T22:53:32.2215328Z             },
2026-06-07T22:53:32.2215419Z             {
2026-06-07T22:53:32.2215529Z               "path": "crates/spt-proto/src/id.rs",
2026-06-07T22:53:32.2215615Z               "line": 156
2026-06-07T22:53:32.2215701Z             },
2026-06-07T22:53:32.2215783Z             {
2026-06-07T22:53:32.2215911Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2215996Z               "line": 714
2026-06-07T22:53:32.2216083Z             }
2026-06-07T22:53:32.2216169Z           ]
2026-06-07T22:53:32.2216249Z         }
2026-06-07T22:53:32.2216335Z       }
2026-06-07T22:53:32.2216417Z     },
2026-06-07T22:53:32.2216511Z     {
2026-06-07T22:53:32.2216616Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-07T22:53:32.2216756Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-07T22:53:32.2216854Z       "requiredStages": [
2026-06-07T22:53:32.2216935Z         "impl",
2026-06-07T22:53:32.2217127Z         "unit"
2026-06-07T22:53:32.2217207Z       ],
2026-06-07T22:53:32.2217296Z       "stages": {
2026-06-07T22:53:32.2217383Z         "doc": {
2026-06-07T22:53:32.2217486Z           "complete": false,
2026-06-07T22:53:32.2217576Z           "evidence": []
2026-06-07T22:53:32.2217662Z         },
2026-06-07T22:53:32.2217753Z         "impl": {
2026-06-07T22:53:32.2217848Z           "complete": true,
2026-06-07T22:53:32.2217938Z           "evidence": [
2026-06-07T22:53:32.2218020Z             {
2026-06-07T22:53:32.2218135Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2218229Z               "line": 128
2026-06-07T22:53:32.2218315Z             }
2026-06-07T22:53:32.2218397Z           ]
2026-06-07T22:53:32.2218482Z         },
2026-06-07T22:53:32.2218573Z         "int": {
2026-06-07T22:53:32.2218674Z           "complete": false,
2026-06-07T22:53:32.2218768Z           "evidence": []
2026-06-07T22:53:32.2218854Z         },
2026-06-07T22:53:32.2218940Z         "unit": {
2026-06-07T22:53:32.2219036Z           "complete": true,
2026-06-07T22:53:32.2219126Z           "evidence": [
2026-06-07T22:53:32.2219216Z             {
2026-06-07T22:53:32.2219332Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2219421Z               "line": 205
2026-06-07T22:53:32.2219507Z             }
2026-06-07T22:53:32.2219589Z           ]
2026-06-07T22:53:32.2219675Z         }
2026-06-07T22:53:32.2219754Z       }
2026-06-07T22:53:32.2219839Z     },
2026-06-07T22:53:32.2219921Z     {
2026-06-07T22:53:32.2220035Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-07T22:53:32.2220185Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-07T22:53:32.2220282Z       "requiredStages": [
2026-06-07T22:53:32.2220367Z         "impl",
2026-06-07T22:53:32.2220453Z         "unit"
2026-06-07T22:53:32.2220634Z       ],
2026-06-07T22:53:32.2220734Z       "stages": {
2026-06-07T22:53:32.2220819Z         "doc": {
2026-06-07T22:53:32.2220912Z           "complete": false,
2026-06-07T22:53:32.2221001Z           "evidence": []
2026-06-07T22:53:32.2221087Z         },
2026-06-07T22:53:32.2221264Z         "impl": {
2026-06-07T22:53:32.2221359Z           "complete": true,
2026-06-07T22:53:32.2221444Z           "evidence": [
2026-06-07T22:53:32.2221532Z             {
2026-06-07T22:53:32.2221659Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2221745Z               "line": 246
2026-06-07T22:53:32.2221826Z             },
2026-06-07T22:53:32.2221918Z             {
2026-06-07T22:53:32.2222026Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2222117Z               "line": 257
2026-06-07T22:53:32.2222204Z             },
2026-06-07T22:53:32.2222289Z             {
2026-06-07T22:53:32.2222397Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2222498Z               "line": 275
2026-06-07T22:53:32.2222578Z             }
2026-06-07T22:53:32.2222667Z           ]
2026-06-07T22:53:32.2222747Z         },
2026-06-07T22:53:32.2222843Z         "int": {
2026-06-07T22:53:32.2222935Z           "complete": false,
2026-06-07T22:53:32.2223033Z           "evidence": []
2026-06-07T22:53:32.2223115Z         },
2026-06-07T22:53:32.2223206Z         "unit": {
2026-06-07T22:53:32.2223301Z           "complete": true,
2026-06-07T22:53:32.2223386Z           "evidence": [
2026-06-07T22:53:32.2223473Z             {
2026-06-07T22:53:32.2223582Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2223667Z               "line": 299
2026-06-07T22:53:32.2223754Z             },
2026-06-07T22:53:32.2223840Z             {
2026-06-07T22:53:32.2223954Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2224045Z               "line": 320
2026-06-07T22:53:32.2224132Z             },
2026-06-07T22:53:32.2224216Z             {
2026-06-07T22:53:32.2224326Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2224422Z               "line": 547
2026-06-07T22:53:32.2224508Z             },
2026-06-07T22:53:32.2224593Z             {
2026-06-07T22:53:32.2224698Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2226761Z               "line": 558
2026-06-07T22:53:32.2226871Z             },
2026-06-07T22:53:32.2227063Z             {
2026-06-07T22:53:32.2227195Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2227287Z               "line": 571
2026-06-07T22:53:32.2227373Z             }
2026-06-07T22:53:32.2227457Z           ]
2026-06-07T22:53:32.2227544Z         }
2026-06-07T22:53:32.2227631Z       }
2026-06-07T22:53:32.2227716Z     },
2026-06-07T22:53:32.2227800Z     {
2026-06-07T22:53:32.2227919Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-07T22:53:32.2232163Z       "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-07T22:53:32.2232286Z       "requiredStages": [
2026-06-07T22:53:32.2232406Z         "impl",
2026-06-07T22:53:32.2232496Z         "unit"
2026-06-07T22:53:32.2232581Z       ],
2026-06-07T22:53:32.2232677Z       "stages": {
2026-06-07T22:53:32.2232764Z         "doc": {
2026-06-07T22:53:32.2232867Z           "complete": false,
2026-06-07T22:53:32.2232962Z           "evidence": []
2026-06-07T22:53:32.2233043Z         },
2026-06-07T22:53:32.2233138Z         "impl": {
2026-06-07T22:53:32.2233227Z           "complete": true,
2026-06-07T22:53:32.2233322Z           "evidence": [
2026-06-07T22:53:32.2233408Z             {
2026-06-07T22:53:32.2233551Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2233641Z               "line": 629
2026-06-07T22:53:32.2233723Z             }
2026-06-07T22:53:32.2233809Z           ]
2026-06-07T22:53:32.2233894Z         },
2026-06-07T22:53:32.2234124Z         "int": {
2026-06-07T22:53:32.2234223Z           "complete": false,
2026-06-07T22:53:32.2234314Z           "evidence": []
2026-06-07T22:53:32.2234405Z         },
2026-06-07T22:53:32.2234486Z         "unit": {
2026-06-07T22:53:32.2234581Z           "complete": true,
2026-06-07T22:53:32.2234762Z           "evidence": [
2026-06-07T22:53:32.2234848Z             {
2026-06-07T22:53:32.2234973Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2235063Z               "line": 743
2026-06-07T22:53:32.2235148Z             }
2026-06-07T22:53:32.2235229Z           ]
2026-06-07T22:53:32.2235316Z         }
2026-06-07T22:53:32.2235402Z       }
2026-06-07T22:53:32.2235486Z     },
2026-06-07T22:53:32.2235569Z     {
2026-06-07T22:53:32.2235683Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-07T22:53:32.2235915Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-07T22:53:32.2236007Z       "requiredStages": [
2026-06-07T22:53:32.2236111Z         "impl",
2026-06-07T22:53:32.2236196Z         "unit"
2026-06-07T22:53:32.2236283Z       ],
2026-06-07T22:53:32.2236369Z       "stages": {
2026-06-07T22:53:32.2236458Z         "doc": {
2026-06-07T22:53:32.2236554Z           "complete": false,
2026-06-07T22:53:32.2236641Z           "evidence": []
2026-06-07T22:53:32.2236736Z         },
2026-06-07T22:53:32.2236821Z         "impl": {
2026-06-07T22:53:32.2236912Z           "complete": true,
2026-06-07T22:53:32.2237097Z           "evidence": [
2026-06-07T22:53:32.2237183Z             {
2026-06-07T22:53:32.2237303Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2237398Z               "line": 14
2026-06-07T22:53:32.2237489Z             },
2026-06-07T22:53:32.2237571Z             {
2026-06-07T22:53:32.2237679Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.2237770Z               "line": 411
2026-06-07T22:53:32.2237852Z             }
2026-06-07T22:53:32.2237938Z           ]
2026-06-07T22:53:32.2238026Z         },
2026-06-07T22:53:32.2238114Z         "int": {
2026-06-07T22:53:32.2238205Z           "complete": false,
2026-06-07T22:53:32.2238294Z           "evidence": []
2026-06-07T22:53:32.2238379Z         },
2026-06-07T22:53:32.2238465Z         "unit": {
2026-06-07T22:53:32.2238561Z           "complete": true,
2026-06-07T22:53:32.2238654Z           "evidence": [
2026-06-07T22:53:32.2238739Z             {
2026-06-07T22:53:32.2238845Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2238945Z               "line": 130
2026-06-07T22:53:32.2239025Z             },
2026-06-07T22:53:32.2239116Z             {
2026-06-07T22:53:32.2239231Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2239321Z               "line": 138
2026-06-07T22:53:32.2239406Z             },
2026-06-07T22:53:32.2239489Z             {
2026-06-07T22:53:32.2239598Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2239688Z               "line": 146
2026-06-07T22:53:32.2239780Z             },
2026-06-07T22:53:32.2239865Z             {
2026-06-07T22:53:32.2239964Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2240060Z               "line": 154
2026-06-07T22:53:32.2240143Z             },
2026-06-07T22:53:32.2240222Z             {
2026-06-07T22:53:32.2240332Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2240428Z               "line": 162
2026-06-07T22:53:32.2240518Z             },
2026-06-07T22:53:32.2240599Z             {
2026-06-07T22:53:32.2240710Z               "path": "crates/spt/src/api/auth.rs",
2026-06-07T22:53:32.2240796Z               "line": 170
2026-06-07T22:53:32.2240879Z             }
2026-06-07T22:53:32.2240965Z           ]
2026-06-07T22:53:32.2241051Z         }
2026-06-07T22:53:32.2241136Z       }
2026-06-07T22:53:32.2241220Z     },
2026-06-07T22:53:32.2241301Z     {
2026-06-07T22:53:32.2241412Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-07T22:53:32.2242536Z       "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-07T22:53:32.2242642Z       "requiredStages": [
2026-06-07T22:53:32.2242818Z         "impl",
2026-06-07T22:53:32.2242903Z         "unit"
2026-06-07T22:53:32.2242991Z       ],
2026-06-07T22:53:32.2243075Z       "stages": {
2026-06-07T22:53:32.2243151Z         "doc": {
2026-06-07T22:53:32.2243291Z           "complete": false,
2026-06-07T22:53:32.2243395Z           "evidence": []
2026-06-07T22:53:32.2243494Z         },
2026-06-07T22:53:32.2243579Z         "impl": {
2026-06-07T22:53:32.2243670Z           "complete": true,
2026-06-07T22:53:32.2243763Z           "evidence": [
2026-06-07T22:53:32.2243843Z             {
2026-06-07T22:53:32.2243993Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2244087Z               "line": 34
2026-06-07T22:53:32.2244182Z             }
2026-06-07T22:53:32.2244274Z           ]
2026-06-07T22:53:32.2244360Z         },
2026-06-07T22:53:32.2244450Z         "int": {
2026-06-07T22:53:32.2244541Z           "complete": false,
2026-06-07T22:53:32.2244636Z           "evidence": []
2026-06-07T22:53:32.2244727Z         },
2026-06-07T22:53:32.2244812Z         "unit": {
2026-06-07T22:53:32.2244904Z           "complete": true,
2026-06-07T22:53:32.2244993Z           "evidence": [
2026-06-07T22:53:32.2245079Z             {
2026-06-07T22:53:32.2245219Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2245308Z               "line": 188
2026-06-07T22:53:32.2245394Z             },
2026-06-07T22:53:32.2245475Z             {
2026-06-07T22:53:32.2245614Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2245703Z               "line": 200
2026-06-07T22:53:32.2245789Z             },
2026-06-07T22:53:32.2245872Z             {
2026-06-07T22:53:32.2246013Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2246104Z               "line": 211
2026-06-07T22:53:32.2246187Z             },
2026-06-07T22:53:32.2246272Z             {
2026-06-07T22:53:32.2246408Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2246509Z               "line": 253
2026-06-07T22:53:32.2246590Z             },
2026-06-07T22:53:32.2246676Z             {
2026-06-07T22:53:32.2246819Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2246910Z               "line": 277
2026-06-07T22:53:32.2247081Z             },
2026-06-07T22:53:32.2247167Z             {
2026-06-07T22:53:32.2247319Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2247410Z               "line": 300
2026-06-07T22:53:32.2247492Z             },
2026-06-07T22:53:32.2247577Z             {
2026-06-07T22:53:32.2247720Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-07T22:53:32.2247811Z               "line": 316
2026-06-07T22:53:32.2247892Z             }
2026-06-07T22:53:32.2247977Z           ]
2026-06-07T22:53:32.2248063Z         }
2026-06-07T22:53:32.2248145Z       }
2026-06-07T22:53:32.2248234Z     },
2026-06-07T22:53:32.2248311Z     {
2026-06-07T22:53:32.2248431Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-07T22:53:32.2248953Z       "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-07T22:53:32.2249054Z       "requiredStages": [
2026-06-07T22:53:32.2249144Z         "impl",
2026-06-07T22:53:32.2249233Z         "unit"
2026-06-07T22:53:32.2249318Z       ],
2026-06-07T22:53:32.2249410Z       "stages": {
2026-06-07T22:53:32.2249496Z         "doc": {
2026-06-07T22:53:32.2249585Z           "complete": false,
2026-06-07T22:53:32.2249681Z           "evidence": []
2026-06-07T22:53:32.2249867Z         },
2026-06-07T22:53:32.2249962Z         "impl": {
2026-06-07T22:53:32.2250059Z           "complete": true,
2026-06-07T22:53:32.2250148Z           "evidence": [
2026-06-07T22:53:32.2250233Z             {
2026-06-07T22:53:32.2250349Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2250529Z               "line": 29
2026-06-07T22:53:32.2250615Z             },
2026-06-07T22:53:32.2250698Z             {
2026-06-07T22:53:32.2250816Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2250907Z               "line": 154
2026-06-07T22:53:32.2250988Z             },
2026-06-07T22:53:32.2251074Z             {
2026-06-07T22:53:32.2251187Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2251275Z               "line": 173
2026-06-07T22:53:32.2251361Z             },
2026-06-07T22:53:32.2251449Z             {
2026-06-07T22:53:32.2251558Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2251664Z               "line": 200
2026-06-07T22:53:32.2251743Z             }
2026-06-07T22:53:32.2251837Z           ]
2026-06-07T22:53:32.2251957Z         },
2026-06-07T22:53:32.2252053Z         "int": {
2026-06-07T22:53:32.2252152Z           "complete": false,
2026-06-07T22:53:32.2252243Z           "evidence": []
2026-06-07T22:53:32.2252338Z         },
2026-06-07T22:53:32.2252415Z         "unit": {
2026-06-07T22:53:32.2252510Z           "complete": true,
2026-06-07T22:53:32.2252597Z           "evidence": [
2026-06-07T22:53:32.2252677Z             {
2026-06-07T22:53:32.2252815Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2252911Z               "line": 276
2026-06-07T22:53:32.2252996Z             },
2026-06-07T22:53:32.2253077Z             {
2026-06-07T22:53:32.2253188Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2253292Z               "line": 291
2026-06-07T22:53:32.2253373Z             },
2026-06-07T22:53:32.2253473Z             {
2026-06-07T22:53:32.2253598Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2253687Z               "line": 310
2026-06-07T22:53:32.2253774Z             },
2026-06-07T22:53:32.2253851Z             {
2026-06-07T22:53:32.2253964Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2254059Z               "line": 326
2026-06-07T22:53:32.2254144Z             },
2026-06-07T22:53:32.2254235Z             {
2026-06-07T22:53:32.2254357Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2254447Z               "line": 385
2026-06-07T22:53:32.2254529Z             },
2026-06-07T22:53:32.2254615Z             {
2026-06-07T22:53:32.2254723Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2254814Z               "line": 399
2026-06-07T22:53:32.2254896Z             },
2026-06-07T22:53:32.2254986Z             {
2026-06-07T22:53:32.2255101Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2255187Z               "line": 410
2026-06-07T22:53:32.2255277Z             },
2026-06-07T22:53:32.2255363Z             {
2026-06-07T22:53:32.2255474Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2255558Z               "line": 421
2026-06-07T22:53:32.2255644Z             }
2026-06-07T22:53:32.2255735Z           ]
2026-06-07T22:53:32.2255821Z         }
2026-06-07T22:53:32.2255911Z       }
2026-06-07T22:53:32.2255992Z     },
2026-06-07T22:53:32.2256079Z     {
2026-06-07T22:53:32.2256197Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-07T22:53:32.2256859Z       "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-07T22:53:32.2257064Z       "requiredStages": [
2026-06-07T22:53:32.2257151Z         "impl",
2026-06-07T22:53:32.2257245Z         "unit"
2026-06-07T22:53:32.2257326Z       ],
2026-06-07T22:53:32.2257413Z       "stages": {
2026-06-07T22:53:32.2257602Z         "doc": {
2026-06-07T22:53:32.2257704Z           "complete": false,
2026-06-07T22:53:32.2257794Z           "evidence": []
2026-06-07T22:53:32.2257879Z         },
2026-06-07T22:53:32.2257965Z         "impl": {
2026-06-07T22:53:32.2258056Z           "complete": true,
2026-06-07T22:53:32.2258241Z           "evidence": [
2026-06-07T22:53:32.2258323Z             {
2026-06-07T22:53:32.2258461Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2258552Z               "line": 27
2026-06-07T22:53:32.2258633Z             },
2026-06-07T22:53:32.2258724Z             {
2026-06-07T22:53:32.2258852Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2258943Z               "line": 110
2026-06-07T22:53:32.2259034Z             },
2026-06-07T22:53:32.2259119Z             {
2026-06-07T22:53:32.2259244Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2259330Z               "line": 153
2026-06-07T22:53:32.2259476Z             },
2026-06-07T22:53:32.2259566Z             {
2026-06-07T22:53:32.2259690Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2259784Z               "line": 182
2026-06-07T22:53:32.2259864Z             },
2026-06-07T22:53:32.2259950Z             {
2026-06-07T22:53:32.2260094Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2260188Z               "line": 31
2026-06-07T22:53:32.2260270Z             },
2026-06-07T22:53:32.2260356Z             {
2026-06-07T22:53:32.2260498Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2260590Z               "line": 113
2026-06-07T22:53:32.2260675Z             },
2026-06-07T22:53:32.2260756Z             {
2026-06-07T22:53:32.2260891Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2260981Z               "line": 138
2026-06-07T22:53:32.2261061Z             }
2026-06-07T22:53:32.2261152Z           ]
2026-06-07T22:53:32.2261239Z         },
2026-06-07T22:53:32.2261324Z         "int": {
2026-06-07T22:53:32.2261414Z           "complete": false,
2026-06-07T22:53:32.2261505Z           "evidence": []
2026-06-07T22:53:32.2261587Z         },
2026-06-07T22:53:32.2261676Z         "unit": {
2026-06-07T22:53:32.2261776Z           "complete": true,
2026-06-07T22:53:32.2261863Z           "evidence": [
2026-06-07T22:53:32.2261949Z             {
2026-06-07T22:53:32.2262076Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2262171Z               "line": 261
2026-06-07T22:53:32.2262252Z             },
2026-06-07T22:53:32.2262336Z             {
2026-06-07T22:53:32.2262459Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2262547Z               "line": 276
2026-06-07T22:53:32.2262627Z             },
2026-06-07T22:53:32.2262707Z             {
2026-06-07T22:53:32.2262837Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2262932Z               "line": 293
2026-06-07T22:53:32.2263017Z             },
2026-06-07T22:53:32.2263103Z             {
2026-06-07T22:53:32.2263223Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2263313Z               "line": 310
2026-06-07T22:53:32.2263399Z             },
2026-06-07T22:53:32.2263481Z             {
2026-06-07T22:53:32.2263600Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2263690Z               "line": 327
2026-06-07T22:53:32.2263776Z             },
2026-06-07T22:53:32.2263857Z             {
2026-06-07T22:53:32.2263980Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2264067Z               "line": 366
2026-06-07T22:53:32.2264154Z             },
2026-06-07T22:53:32.2264242Z             {
2026-06-07T22:53:32.2264377Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2264468Z               "line": 179
2026-06-07T22:53:32.2264624Z             },
2026-06-07T22:53:32.2264719Z             {
2026-06-07T22:53:32.2264851Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2264945Z               "line": 194
2026-06-07T22:53:32.2265031Z             },
2026-06-07T22:53:32.2265108Z             {
2026-06-07T22:53:32.2265316Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2265404Z               "line": 204
2026-06-07T22:53:32.2265490Z             },
2026-06-07T22:53:32.2265574Z             {
2026-06-07T22:53:32.2265704Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2265794Z               "line": 259
2026-06-07T22:53:32.2265875Z             },
2026-06-07T22:53:32.2265965Z             {
2026-06-07T22:53:32.2266099Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2266190Z               "line": 269
2026-06-07T22:53:32.2266270Z             },
2026-06-07T22:53:32.2266358Z             {
2026-06-07T22:53:32.2266500Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2266585Z               "line": 283
2026-06-07T22:53:32.2266673Z             }
2026-06-07T22:53:32.2266753Z           ]
2026-06-07T22:53:32.2266843Z         }
2026-06-07T22:53:32.2266924Z       }
2026-06-07T22:53:32.2267100Z     },
2026-06-07T22:53:32.2267191Z     {
2026-06-07T22:53:32.2267307Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-07T22:53:32.2267500Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-07T22:53:32.2267595Z       "requiredStages": [],
2026-06-07T22:53:32.2267682Z       "stages": {
2026-06-07T22:53:32.2267762Z         "doc": {
2026-06-07T22:53:32.2267861Z           "complete": false,
2026-06-07T22:53:32.2267959Z           "evidence": []
2026-06-07T22:53:32.2268040Z         },
2026-06-07T22:53:32.2268125Z         "impl": {
2026-06-07T22:53:32.2268215Z           "complete": false,
2026-06-07T22:53:32.2268306Z           "evidence": []
2026-06-07T22:53:32.2268402Z         },
2026-06-07T22:53:32.2268487Z         "int": {
2026-06-07T22:53:32.2268584Z           "complete": false,
2026-06-07T22:53:32.2268668Z           "evidence": []
2026-06-07T22:53:32.2268754Z         },
2026-06-07T22:53:32.2268840Z         "unit": {
2026-06-07T22:53:32.2268941Z           "complete": false,
2026-06-07T22:53:32.2269026Z           "evidence": []
2026-06-07T22:53:32.2269117Z         }
2026-06-07T22:53:32.2269198Z       }
2026-06-07T22:53:32.2269279Z     },
2026-06-07T22:53:32.2269364Z     {
2026-06-07T22:53:32.2269489Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-07T22:53:32.2270287Z       "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-07T22:53:32.2270386Z       "requiredStages": [
2026-06-07T22:53:32.2270477Z         "impl",
2026-06-07T22:53:32.2270583Z         "unit"
2026-06-07T22:53:32.2270668Z       ],
2026-06-07T22:53:32.2270758Z       "stages": {
2026-06-07T22:53:32.2270840Z         "doc": {
2026-06-07T22:53:32.2270935Z           "complete": false,
2026-06-07T22:53:32.2271025Z           "evidence": []
2026-06-07T22:53:32.2271121Z         },
2026-06-07T22:53:32.2271207Z         "impl": {
2026-06-07T22:53:32.2271297Z           "complete": true,
2026-06-07T22:53:32.2271392Z           "evidence": [
2026-06-07T22:53:32.2271474Z             {
2026-06-07T22:53:32.2271603Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2271697Z               "line": 26
2026-06-07T22:53:32.2271780Z             },
2026-06-07T22:53:32.2271869Z             {
2026-06-07T22:53:32.2271984Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2272075Z               "line": 95
2026-06-07T22:53:32.2272161Z             },
2026-06-07T22:53:32.2272245Z             {
2026-06-07T22:53:32.2272490Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2272584Z               "line": 166
2026-06-07T22:53:32.2272674Z             },
2026-06-07T22:53:32.2272755Z             {
2026-06-07T22:53:32.2272872Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2272962Z               "line": 19
2026-06-07T22:53:32.2273139Z             },
2026-06-07T22:53:32.2273230Z             {
2026-06-07T22:53:32.2273344Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2273431Z               "line": 50
2026-06-07T22:53:32.2273521Z             },
2026-06-07T22:53:32.2273601Z             {
2026-06-07T22:53:32.2273717Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T22:53:32.2273811Z               "line": 18
2026-06-07T22:53:32.2273897Z             },
2026-06-07T22:53:32.2273978Z             {
2026-06-07T22:53:32.2274093Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T22:53:32.2274184Z               "line": 71
2026-06-07T22:53:32.2274283Z             },
2026-06-07T22:53:32.2274366Z             {
2026-06-07T22:53:32.2274483Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.2274584Z               "line": 70
2026-06-07T22:53:32.2274666Z             }
2026-06-07T22:53:32.2274756Z           ]
2026-06-07T22:53:32.2274846Z         },
2026-06-07T22:53:32.2274932Z         "int": {
2026-06-07T22:53:32.2275033Z           "complete": false,
2026-06-07T22:53:32.2275126Z           "evidence": []
2026-06-07T22:53:32.2275212Z         },
2026-06-07T22:53:32.2275298Z         "unit": {
2026-06-07T22:53:32.2275393Z           "complete": true,
2026-06-07T22:53:32.2275482Z           "evidence": [
2026-06-07T22:53:32.2275562Z             {
2026-06-07T22:53:32.2275682Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2275773Z               "line": 289
2026-06-07T22:53:32.2275858Z             },
2026-06-07T22:53:32.2275939Z             {
2026-06-07T22:53:32.2276064Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2276148Z               "line": 308
2026-06-07T22:53:32.2276235Z             },
2026-06-07T22:53:32.2276326Z             {
2026-06-07T22:53:32.2276449Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2276540Z               "line": 336
2026-06-07T22:53:32.2276627Z             },
2026-06-07T22:53:32.2276712Z             {
2026-06-07T22:53:32.2276836Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2276928Z               "line": 399
2026-06-07T22:53:32.2277098Z             },
2026-06-07T22:53:32.2277185Z             {
2026-06-07T22:53:32.2277303Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2277398Z               "line": 410
2026-06-07T22:53:32.2277484Z             },
2026-06-07T22:53:32.2277567Z             {
2026-06-07T22:53:32.2277688Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2277775Z               "line": 441
2026-06-07T22:53:32.2277857Z             },
2026-06-07T22:53:32.2277952Z             {
2026-06-07T22:53:32.2278070Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2278160Z               "line": 452
2026-06-07T22:53:32.2278247Z             },
2026-06-07T22:53:32.2278332Z             {
2026-06-07T22:53:32.2278456Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2278547Z               "line": 77
2026-06-07T22:53:32.2278633Z             },
2026-06-07T22:53:32.2278718Z             {
2026-06-07T22:53:32.2278834Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2278919Z               "line": 97
2026-06-07T22:53:32.2279004Z             },
2026-06-07T22:53:32.2279090Z             {
2026-06-07T22:53:32.2279200Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2279291Z               "line": 112
2026-06-07T22:53:32.2279376Z             },
2026-06-07T22:53:32.2279458Z             {
2026-06-07T22:53:32.2279682Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2279773Z               "line": 123
2026-06-07T22:53:32.2279858Z             },
2026-06-07T22:53:32.2279943Z             {
2026-06-07T22:53:32.2280054Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2280145Z               "line": 130
2026-06-07T22:53:32.2280321Z             },
2026-06-07T22:53:32.2280403Z             {
2026-06-07T22:53:32.2280516Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-07T22:53:32.2280606Z               "line": 145
2026-06-07T22:53:32.2280686Z             },
2026-06-07T22:53:32.2280768Z             {
2026-06-07T22:53:32.2280880Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T22:53:32.2280970Z               "line": 115
2026-06-07T22:53:32.2281051Z             },
2026-06-07T22:53:32.2281133Z             {
2026-06-07T22:53:32.2281242Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T22:53:32.2281333Z               "line": 130
2026-06-07T22:53:32.2281414Z             },
2026-06-07T22:53:32.2281510Z             {
2026-06-07T22:53:32.2281623Z               "path": "crates/spt-proto/src/event.rs",
2026-06-07T22:53:32.2281715Z               "line": 336
2026-06-07T22:53:32.2281795Z             }
2026-06-07T22:53:32.2281876Z           ]
2026-06-07T22:53:32.2281957Z         }
2026-06-07T22:53:32.2282053Z       }
2026-06-07T22:53:32.2282134Z     },
2026-06-07T22:53:32.2282219Z     {
2026-06-07T22:53:32.2282340Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-07T22:53:32.2282591Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-07T22:53:32.2282688Z       "requiredStages": [
2026-06-07T22:53:32.2282772Z         "impl",
2026-06-07T22:53:32.2282859Z         "unit"
2026-06-07T22:53:32.2282940Z       ],
2026-06-07T22:53:32.2283041Z       "stages": {
2026-06-07T22:53:32.2283125Z         "doc": {
2026-06-07T22:53:32.2283205Z           "complete": true,
2026-06-07T22:53:32.2283297Z           "evidence": [
2026-06-07T22:53:32.2283382Z             {
2026-06-07T22:53:32.2283494Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2283589Z               "line": 137
2026-06-07T22:53:32.2283681Z             }
2026-06-07T22:53:32.2283766Z           ]
2026-06-07T22:53:32.2283846Z         },
2026-06-07T22:53:32.2283948Z         "impl": {
2026-06-07T22:53:32.2284043Z           "complete": true,
2026-06-07T22:53:32.2284133Z           "evidence": [
2026-06-07T22:53:32.2284214Z             {
2026-06-07T22:53:32.2284334Z               "path": "crates/spt-store/src/db.rs",
2026-06-07T22:53:32.2284424Z               "line": 29
2026-06-07T22:53:32.2284505Z             },
2026-06-07T22:53:32.2284596Z             {
2026-06-07T22:53:32.2284710Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2284805Z               "line": 101
2026-06-07T22:53:32.2284888Z             },
2026-06-07T22:53:32.2284978Z             {
2026-06-07T22:53:32.2285101Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2285202Z               "line": 30
2026-06-07T22:53:32.2285283Z             },
2026-06-07T22:53:32.2285367Z             {
2026-06-07T22:53:32.2285483Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2285570Z               "line": 48
2026-06-07T22:53:32.2285659Z             }
2026-06-07T22:53:32.2285749Z           ]
2026-06-07T22:53:32.2285829Z         },
2026-06-07T22:53:32.2285915Z         "int": {
2026-06-07T22:53:32.2286009Z           "complete": false,
2026-06-07T22:53:32.2286099Z           "evidence": []
2026-06-07T22:53:32.2286180Z         },
2026-06-07T22:53:32.2286272Z         "unit": {
2026-06-07T22:53:32.2286365Z           "complete": true,
2026-06-07T22:53:32.2286456Z           "evidence": [
2026-06-07T22:53:32.2286544Z             {
2026-06-07T22:53:32.2286662Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2286752Z               "line": 162
2026-06-07T22:53:32.2286834Z             }
2026-06-07T22:53:32.2286928Z           ]
2026-06-07T22:53:32.2287229Z         }
2026-06-07T22:53:32.2287320Z       }
2026-06-07T22:53:32.2287405Z     },
2026-06-07T22:53:32.2287488Z     {
2026-06-07T22:53:32.2287605Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-07T22:53:32.2287977Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-07T22:53:32.2288174Z       "requiredStages": [
2026-06-07T22:53:32.2288263Z         "doc",
2026-06-07T22:53:32.2288345Z         "impl",
2026-06-07T22:53:32.2288432Z         "unit"
2026-06-07T22:53:32.2288517Z       ],
2026-06-07T22:53:32.2288606Z       "stages": {
2026-06-07T22:53:32.2288691Z         "doc": {
2026-06-07T22:53:32.2288788Z           "complete": true,
2026-06-07T22:53:32.2288883Z           "evidence": [
2026-06-07T22:53:32.2288968Z             {
2026-06-07T22:53:32.2289074Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2289165Z               "line": 149
2026-06-07T22:53:32.2289249Z             }
2026-06-07T22:53:32.2289345Z           ]
2026-06-07T22:53:32.2289432Z         },
2026-06-07T22:53:32.2289522Z         "impl": {
2026-06-07T22:53:32.2289612Z           "complete": true,
2026-06-07T22:53:32.2289704Z           "evidence": [
2026-06-07T22:53:32.2289788Z             {
2026-06-07T22:53:32.2289917Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2290004Z               "line": 22
2026-06-07T22:53:32.2290094Z             }
2026-06-07T22:53:32.2290180Z           ]
2026-06-07T22:53:32.2290265Z         },
2026-06-07T22:53:32.2290353Z         "int": {
2026-06-07T22:53:32.2290442Z           "complete": false,
2026-06-07T22:53:32.2290537Z           "evidence": []
2026-06-07T22:53:32.2290619Z         },
2026-06-07T22:53:32.2290710Z         "unit": {
2026-06-07T22:53:32.2290799Z           "complete": true,
2026-06-07T22:53:32.2290886Z           "evidence": [
2026-06-07T22:53:32.2290972Z             {
2026-06-07T22:53:32.2291094Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2291189Z               "line": 298
2026-06-07T22:53:32.2291270Z             }
2026-06-07T22:53:32.2291361Z           ]
2026-06-07T22:53:32.2291449Z         }
2026-06-07T22:53:32.2291530Z       }
2026-06-07T22:53:32.2291616Z     },
2026-06-07T22:53:32.2291698Z     {
2026-06-07T22:53:32.2291821Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-07T22:53:32.2292261Z       "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-07T22:53:32.2292365Z       "requiredStages": [
2026-06-07T22:53:32.2292450Z         "impl",
2026-06-07T22:53:32.2292537Z         "unit"
2026-06-07T22:53:32.2292628Z       ],
2026-06-07T22:53:32.2292718Z       "stages": {
2026-06-07T22:53:32.2292804Z         "doc": {
2026-06-07T22:53:32.2292895Z           "complete": true,
2026-06-07T22:53:32.2292994Z           "evidence": [
2026-06-07T22:53:32.2293076Z             {
2026-06-07T22:53:32.2293186Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2293281Z               "line": 143
2026-06-07T22:53:32.2293361Z             }
2026-06-07T22:53:32.2293447Z           ]
2026-06-07T22:53:32.2293530Z         },
2026-06-07T22:53:32.2293619Z         "impl": {
2026-06-07T22:53:32.2293714Z           "complete": true,
2026-06-07T22:53:32.2293813Z           "evidence": [
2026-06-07T22:53:32.2293904Z             {
2026-06-07T22:53:32.2294026Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2294121Z               "line": 209
2026-06-07T22:53:32.2294207Z             },
2026-06-07T22:53:32.2294293Z             {
2026-06-07T22:53:32.2294411Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T22:53:32.2294503Z               "line": 15
2026-06-07T22:53:32.2294589Z             }
2026-06-07T22:53:32.2294669Z           ]
2026-06-07T22:53:32.2294755Z         },
2026-06-07T22:53:32.2294842Z         "int": {
2026-06-07T22:53:32.2294932Z           "complete": false,
2026-06-07T22:53:32.2295099Z           "evidence": []
2026-06-07T22:53:32.2295185Z         },
2026-06-07T22:53:32.2295270Z         "unit": {
2026-06-07T22:53:32.2295365Z           "complete": true,
2026-06-07T22:53:32.2295462Z           "evidence": [
2026-06-07T22:53:32.2295547Z             {
2026-06-07T22:53:32.2295767Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-07T22:53:32.2295857Z               "line": 87
2026-06-07T22:53:32.2295942Z             },
2026-06-07T22:53:32.2296028Z             {
2026-06-07T22:53:32.2296148Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2296238Z               "line": 729
2026-06-07T22:53:32.2296323Z             },
2026-06-07T22:53:32.2296409Z             {
2026-06-07T22:53:32.2296527Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2296616Z               "line": 748
2026-06-07T22:53:32.2296701Z             },
2026-06-07T22:53:32.2296784Z             {
2026-06-07T22:53:32.2296921Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2297094Z               "line": 167
2026-06-07T22:53:32.2297180Z             },
2026-06-07T22:53:32.2297264Z             {
2026-06-07T22:53:32.2297380Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T22:53:32.2297470Z               "line": 77
2026-06-07T22:53:32.2297560Z             },
2026-06-07T22:53:32.2297641Z             {
2026-06-07T22:53:32.2297756Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T22:53:32.2297847Z               "line": 94
2026-06-07T22:53:32.2300092Z             },
2026-06-07T22:53:32.2300196Z             {
2026-06-07T22:53:32.2300335Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-07T22:53:32.2300425Z               "line": 114
2026-06-07T22:53:32.2300515Z             }
2026-06-07T22:53:32.2300602Z           ]
2026-06-07T22:53:32.2300682Z         }
2026-06-07T22:53:32.2300768Z       }
2026-06-07T22:53:32.2300849Z     },
2026-06-07T22:53:32.2300932Z     {
2026-06-07T22:53:32.2301059Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-07T22:53:32.2302405Z       "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-07T22:53:32.2302511Z       "requiredStages": [
2026-06-07T22:53:32.2302601Z         "doc",
2026-06-07T22:53:32.2302686Z         "impl",
2026-06-07T22:53:32.2302772Z         "unit"
2026-06-07T22:53:32.2302864Z       ],
2026-06-07T22:53:32.2302954Z       "stages": {
2026-06-07T22:53:32.2303034Z         "doc": {
2026-06-07T22:53:32.2303131Z           "complete": true,
2026-06-07T22:53:32.2303216Z           "evidence": [
2026-06-07T22:53:32.2303301Z             {
2026-06-07T22:53:32.2303412Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2303498Z               "line": 155
2026-06-07T22:53:32.2303592Z             }
2026-06-07T22:53:32.2303669Z           ]
2026-06-07T22:53:32.2303775Z         },
2026-06-07T22:53:32.2303860Z         "impl": {
2026-06-07T22:53:32.2303960Z           "complete": true,
2026-06-07T22:53:32.2304061Z           "evidence": [
2026-06-07T22:53:32.2304179Z             {
2026-06-07T22:53:32.2304302Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2304383Z               "line": 345
2026-06-07T22:53:32.2304469Z             },
2026-06-07T22:53:32.2304552Z             {
2026-06-07T22:53:32.2304700Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2304787Z               "line": 391
2026-06-07T22:53:32.2304872Z             },
2026-06-07T22:53:32.2304990Z             {
2026-06-07T22:53:32.2305115Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2305468Z               "line": 398
2026-06-07T22:53:32.2305553Z             },
2026-06-07T22:53:32.2305644Z             {
2026-06-07T22:53:32.2305797Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2305888Z               "line": 191
2026-06-07T22:53:32.2305974Z             }
2026-06-07T22:53:32.2306145Z           ]
2026-06-07T22:53:32.2306231Z         },
2026-06-07T22:53:32.2306317Z         "int": {
2026-06-07T22:53:32.2306413Z           "complete": false,
2026-06-07T22:53:32.2306507Z           "evidence": []
2026-06-07T22:53:32.2306588Z         },
2026-06-07T22:53:32.2306680Z         "unit": {
2026-06-07T22:53:32.2306770Z           "complete": true,
2026-06-07T22:53:32.2306859Z           "evidence": [
2026-06-07T22:53:32.2307054Z             {
2026-06-07T22:53:32.2307181Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2307271Z               "line": 1188
2026-06-07T22:53:32.2307354Z             },
2026-06-07T22:53:32.2307439Z             {
2026-06-07T22:53:32.2307567Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2307659Z               "line": 1246
2026-06-07T22:53:32.2307740Z             },
2026-06-07T22:53:32.2307829Z             {
2026-06-07T22:53:32.2307949Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2308044Z               "line": 761
2026-06-07T22:53:32.2308135Z             }
2026-06-07T22:53:32.2308216Z           ]
2026-06-07T22:53:32.2308302Z         }
2026-06-07T22:53:32.2308387Z       }
2026-06-07T22:53:32.2308473Z     },
2026-06-07T22:53:32.2308555Z     {
2026-06-07T22:53:32.2308679Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-07T22:53:32.2308875Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-07T22:53:32.2308970Z       "requiredStages": [
2026-06-07T22:53:32.2309059Z         "impl",
2026-06-07T22:53:32.2309146Z         "unit"
2026-06-07T22:53:32.2309237Z       ],
2026-06-07T22:53:32.2309331Z       "stages": {
2026-06-07T22:53:32.2309417Z         "doc": {
2026-06-07T22:53:32.2309514Z           "complete": false,
2026-06-07T22:53:32.2309609Z           "evidence": []
2026-06-07T22:53:32.2309693Z         },
2026-06-07T22:53:32.2309779Z         "impl": {
2026-06-07T22:53:32.2309869Z           "complete": true,
2026-06-07T22:53:32.2309965Z           "evidence": [
2026-06-07T22:53:32.2310045Z             {
2026-06-07T22:53:32.2310165Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2310251Z               "line": 15
2026-06-07T22:53:32.2310337Z             },
2026-06-07T22:53:32.2310417Z             {
2026-06-07T22:53:32.2310542Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2310633Z               "line": 55
2026-06-07T22:53:32.2310713Z             },
2026-06-07T22:53:32.2310800Z             {
2026-06-07T22:53:32.2310923Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2311018Z               "line": 66
2026-06-07T22:53:32.2311100Z             },
2026-06-07T22:53:32.2311196Z             {
2026-06-07T22:53:32.2311314Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2311400Z               "line": 115
2026-06-07T22:53:32.2311482Z             },
2026-06-07T22:53:32.2311562Z             {
2026-06-07T22:53:32.2311681Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2311773Z               "line": 138
2026-06-07T22:53:32.2311859Z             }
2026-06-07T22:53:32.2311943Z           ]
2026-06-07T22:53:32.2312025Z         },
2026-06-07T22:53:32.2312107Z         "int": {
2026-06-07T22:53:32.2312201Z           "complete": false,
2026-06-07T22:53:32.2312296Z           "evidence": []
2026-06-07T22:53:32.2312376Z         },
2026-06-07T22:53:32.2312462Z         "unit": {
2026-06-07T22:53:32.2312556Z           "complete": true,
2026-06-07T22:53:32.2312641Z           "evidence": [
2026-06-07T22:53:32.2312736Z             {
2026-06-07T22:53:32.2312842Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2313051Z               "line": 149
2026-06-07T22:53:32.2313260Z             },
2026-06-07T22:53:32.2313347Z             {
2026-06-07T22:53:32.2313461Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2313547Z               "line": 155
2026-06-07T22:53:32.2313715Z             },
2026-06-07T22:53:32.2313800Z             {
2026-06-07T22:53:32.2313909Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2313996Z               "line": 169
2026-06-07T22:53:32.2314105Z             },
2026-06-07T22:53:32.2314191Z             {
2026-06-07T22:53:32.2314296Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2314388Z               "line": 178
2026-06-07T22:53:32.2314467Z             },
2026-06-07T22:53:32.2314553Z             {
2026-06-07T22:53:32.2314669Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2314758Z               "line": 195
2026-06-07T22:53:32.2314843Z             },
2026-06-07T22:53:32.2314933Z             {
2026-06-07T22:53:32.2315048Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2315136Z               "line": 208
2026-06-07T22:53:32.2315221Z             },
2026-06-07T22:53:32.2315303Z             {
2026-06-07T22:53:32.2315418Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2315513Z               "line": 271
2026-06-07T22:53:32.2315594Z             },
2026-06-07T22:53:32.2315675Z             {
2026-06-07T22:53:32.2315789Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2315885Z               "line": 290
2026-06-07T22:53:32.2315967Z             },
2026-06-07T22:53:32.2316052Z             {
2026-06-07T22:53:32.2316166Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2316253Z               "line": 319
2026-06-07T22:53:32.2316329Z             }
2026-06-07T22:53:32.2316410Z           ]
2026-06-07T22:53:32.2316495Z         }
2026-06-07T22:53:32.2316582Z       }
2026-06-07T22:53:32.2316662Z     },
2026-06-07T22:53:32.2316748Z     {
2026-06-07T22:53:32.2316863Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-07T22:53:32.2317250Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-07T22:53:32.2317344Z       "requiredStages": [
2026-06-07T22:53:32.2317447Z         "impl",
2026-06-07T22:53:32.2317534Z         "unit",
2026-06-07T22:53:32.2317619Z         "int"
2026-06-07T22:53:32.2317703Z       ],
2026-06-07T22:53:32.2317793Z       "stages": {
2026-06-07T22:53:32.2317880Z         "doc": {
2026-06-07T22:53:32.2317971Z           "complete": false,
2026-06-07T22:53:32.2318061Z           "evidence": []
2026-06-07T22:53:32.2318146Z         },
2026-06-07T22:53:32.2318233Z         "impl": {
2026-06-07T22:53:32.2318323Z           "complete": true,
2026-06-07T22:53:32.2318413Z           "evidence": [
2026-06-07T22:53:32.2318500Z             {
2026-06-07T22:53:32.2318614Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2318718Z               "line": 269
2026-06-07T22:53:32.2318805Z             },
2026-06-07T22:53:32.2318886Z             {
2026-06-07T22:53:32.2319000Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2319091Z               "line": 578
2026-06-07T22:53:32.2319191Z             },
2026-06-07T22:53:32.2319276Z             {
2026-06-07T22:53:32.2319391Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2319478Z               "line": 601
2026-06-07T22:53:32.2319563Z             },
2026-06-07T22:53:32.2319653Z             {
2026-06-07T22:53:32.2319764Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.2319854Z               "line": 625
2026-06-07T22:53:32.2319939Z             },
2026-06-07T22:53:32.2320020Z             {
2026-06-07T22:53:32.2320141Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2320225Z               "line": 492
2026-06-07T22:53:32.2320310Z             },
2026-06-07T22:53:32.2320492Z             {
2026-06-07T22:53:32.2320620Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2320711Z               "line": 580
2026-06-07T22:53:32.2320793Z             },
2026-06-07T22:53:32.2320874Z             {
2026-06-07T22:53:32.2320987Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2321174Z               "line": 690
2026-06-07T22:53:32.2321254Z             },
2026-06-07T22:53:32.2321335Z             {
2026-06-07T22:53:32.2321460Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.2321550Z               "line": 738
2026-06-07T22:53:32.2321636Z             },
2026-06-07T22:53:32.2321718Z             {
2026-06-07T22:53:32.2321831Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.2321922Z               "line": 46
2026-06-07T22:53:32.2322009Z             },
2026-06-07T22:53:32.2322090Z             {
2026-06-07T22:53:32.2322208Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.2322309Z               "line": 167
2026-06-07T22:53:32.2322390Z             },
2026-06-07T22:53:32.2322475Z             {
2026-06-07T22:53:32.2322585Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T22:53:32.2322677Z               "line": 71
2026-06-07T22:53:32.2322762Z             },
2026-06-07T22:53:32.2322856Z             {
2026-06-07T22:53:32.2322970Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2323056Z               "line": 134
2026-06-07T22:53:32.2323139Z             },
2026-06-07T22:53:32.2323225Z             {
2026-06-07T22:53:32.2323336Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2323427Z               "line": 180
2026-06-07T22:53:32.2323511Z             }
2026-06-07T22:53:32.2323597Z           ]
2026-06-07T22:53:32.2323679Z         },
2026-06-07T22:53:32.2323764Z         "int": {
2026-06-07T22:53:32.2323854Z           "complete": true,
2026-06-07T22:53:32.2323941Z           "evidence": [
2026-06-07T22:53:32.2324026Z             {
2026-06-07T22:53:32.2324159Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-07T22:53:32.2324246Z               "line": 27
2026-06-07T22:53:32.2324332Z             },
2026-06-07T22:53:32.2324422Z             {
2026-06-07T22:53:32.2324546Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-07T22:53:32.2324652Z               "line": 128
2026-06-07T22:53:32.2324742Z             },
2026-06-07T22:53:32.2324823Z             {
2026-06-07T22:53:32.2324948Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-07T22:53:32.2325036Z               "line": 199
2026-06-07T22:53:32.2325123Z             }
2026-06-07T22:53:32.2325205Z           ]
2026-06-07T22:53:32.2325295Z         },
2026-06-07T22:53:32.2325379Z         "unit": {
2026-06-07T22:53:32.2325469Z           "complete": true,
2026-06-07T22:53:32.2325561Z           "evidence": [
2026-06-07T22:53:32.2325640Z             {
2026-06-07T22:53:32.2325763Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.2325854Z               "line": 313
2026-06-07T22:53:32.2325940Z             },
2026-06-07T22:53:32.2326025Z             {
2026-06-07T22:53:32.2326140Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.2326226Z               "line": 345
2026-06-07T22:53:32.2326321Z             },
2026-06-07T22:53:32.2326407Z             {
2026-06-07T22:53:32.2326518Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-07T22:53:32.2326607Z               "line": 366
2026-06-07T22:53:32.2326693Z             },
2026-06-07T22:53:32.2326774Z             {
2026-06-07T22:53:32.2326893Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T22:53:32.2327065Z               "line": 253
2026-06-07T22:53:32.2327157Z             },
2026-06-07T22:53:32.2327236Z             {
2026-06-07T22:53:32.2327361Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T22:53:32.2327447Z               "line": 238
2026-06-07T22:53:32.2327632Z             },
2026-06-07T22:53:32.2327723Z             {
2026-06-07T22:53:32.2327838Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T22:53:32.2327932Z               "line": 229
2026-06-07T22:53:32.2328012Z             },
2026-06-07T22:53:32.2328099Z             {
2026-06-07T22:53:32.2328320Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2328411Z               "line": 488
2026-06-07T22:53:32.2328493Z             },
2026-06-07T22:53:32.2328578Z             {
2026-06-07T22:53:32.2328692Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2328779Z               "line": 518
2026-06-07T22:53:32.2328865Z             }
2026-06-07T22:53:32.2328949Z           ]
2026-06-07T22:53:32.2329031Z         }
2026-06-07T22:53:32.2329112Z       }
2026-06-07T22:53:32.2329198Z     },
2026-06-07T22:53:32.2329279Z     {
2026-06-07T22:53:32.2329395Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-07T22:53:32.2329593Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-07T22:53:32.2329690Z       "requiredStages": [
2026-06-07T22:53:32.2329775Z         "impl",
2026-06-07T22:53:32.2329860Z         "unit"
2026-06-07T22:53:32.2329946Z       ],
2026-06-07T22:53:32.2330038Z       "stages": {
2026-06-07T22:53:32.2330123Z         "doc": {
2026-06-07T22:53:32.2330223Z           "complete": false,
2026-06-07T22:53:32.2330314Z           "evidence": []
2026-06-07T22:53:32.2330395Z         },
2026-06-07T22:53:32.2330485Z         "impl": {
2026-06-07T22:53:32.2330576Z           "complete": true,
2026-06-07T22:53:32.2330663Z           "evidence": [
2026-06-07T22:53:32.2330748Z             {
2026-06-07T22:53:32.2330875Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2330961Z               "line": 56
2026-06-07T22:53:32.2331043Z             },
2026-06-07T22:53:32.2331133Z             {
2026-06-07T22:53:32.2331252Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2331348Z               "line": 65
2026-06-07T22:53:32.2331434Z             },
2026-06-07T22:53:32.2331518Z             {
2026-06-07T22:53:32.2331644Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2331734Z               "line": 72
2026-06-07T22:53:32.2331819Z             },
2026-06-07T22:53:32.2331910Z             {
2026-06-07T22:53:32.2332025Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2332115Z               "line": 33
2026-06-07T22:53:32.2332196Z             },
2026-06-07T22:53:32.2332282Z             {
2026-06-07T22:53:32.2332391Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2332482Z               "line": 65
2026-06-07T22:53:32.2332564Z             },
2026-06-07T22:53:32.2332645Z             {
2026-06-07T22:53:32.2332759Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2332845Z               "line": 74
2026-06-07T22:53:32.2332931Z             },
2026-06-07T22:53:32.2333016Z             {
2026-06-07T22:53:32.2333130Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2333218Z               "line": 83
2026-06-07T22:53:32.2333303Z             },
2026-06-07T22:53:32.2333387Z             {
2026-06-07T22:53:32.2333501Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2333597Z               "line": 92
2026-06-07T22:53:32.2333681Z             },
2026-06-07T22:53:32.2333761Z             {
2026-06-07T22:53:32.2333871Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2333967Z               "line": 101
2026-06-07T22:53:32.2334052Z             },
2026-06-07T22:53:32.2334138Z             {
2026-06-07T22:53:32.2334253Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2334339Z               "line": 109
2026-06-07T22:53:32.2334434Z             },
2026-06-07T22:53:32.2334516Z             {
2026-06-07T22:53:32.2334624Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2334797Z               "line": 118
2026-06-07T22:53:32.2334883Z             },
2026-06-07T22:53:32.2334973Z             {
2026-06-07T22:53:32.2335078Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2335169Z               "line": 127
2026-06-07T22:53:32.2335254Z             },
2026-06-07T22:53:32.2335411Z             {
2026-06-07T22:53:32.2335522Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2335611Z               "line": 134
2026-06-07T22:53:32.2335697Z             },
2026-06-07T22:53:32.2335784Z             {
2026-06-07T22:53:32.2335893Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2335983Z               "line": 141
2026-06-07T22:53:32.2336068Z             },
2026-06-07T22:53:32.2336154Z             {
2026-06-07T22:53:32.2336266Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2336351Z               "line": 149
2026-06-07T22:53:32.2336433Z             },
2026-06-07T22:53:32.2336519Z             {
2026-06-07T22:53:32.2336633Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2336729Z               "line": 158
2026-06-07T22:53:32.2336815Z             },
2026-06-07T22:53:32.2336900Z             {
2026-06-07T22:53:32.2337097Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2337192Z               "line": 167
2026-06-07T22:53:32.2337277Z             },
2026-06-07T22:53:32.2337364Z             {
2026-06-07T22:53:32.2337472Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2337563Z               "line": 176
2026-06-07T22:53:32.2337649Z             },
2026-06-07T22:53:32.2337741Z             {
2026-06-07T22:53:32.2337849Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2337940Z               "line": 188
2026-06-07T22:53:32.2338027Z             },
2026-06-07T22:53:32.2338107Z             {
2026-06-07T22:53:32.2338216Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2338303Z               "line": 195
2026-06-07T22:53:32.2338399Z             },
2026-06-07T22:53:32.2338487Z             {
2026-06-07T22:53:32.2338596Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2338688Z               "line": 204
2026-06-07T22:53:32.2338776Z             },
2026-06-07T22:53:32.2338861Z             {
2026-06-07T22:53:32.2338976Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2339063Z               "line": 211
2026-06-07T22:53:32.2339147Z             },
2026-06-07T22:53:32.2339237Z             {
2026-06-07T22:53:32.2339353Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2339439Z               "line": 278
2026-06-07T22:53:32.2339529Z             },
2026-06-07T22:53:32.2339610Z             {
2026-06-07T22:53:32.2339720Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2339810Z               "line": 290
2026-06-07T22:53:32.2339896Z             },
2026-06-07T22:53:32.2339978Z             {
2026-06-07T22:53:32.2340092Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2340182Z               "line": 377
2026-06-07T22:53:32.2340264Z             }
2026-06-07T22:53:32.2340345Z           ]
2026-06-07T22:53:32.2340425Z         },
2026-06-07T22:53:32.2340511Z         "int": {
2026-06-07T22:53:32.2340608Z           "complete": false,
2026-06-07T22:53:32.2340697Z           "evidence": []
2026-06-07T22:53:32.2340783Z         },
2026-06-07T22:53:32.2340865Z         "unit": {
2026-06-07T22:53:32.2340960Z           "complete": true,
2026-06-07T22:53:32.2341049Z           "evidence": [
2026-06-07T22:53:32.2341136Z             {
2026-06-07T22:53:32.2341252Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2341336Z               "line": 459
2026-06-07T22:53:32.2341421Z             },
2026-06-07T22:53:32.2341502Z             {
2026-06-07T22:53:32.2341613Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2341698Z               "line": 500
2026-06-07T22:53:32.2341894Z             },
2026-06-07T22:53:32.2341984Z             {
2026-06-07T22:53:32.2342093Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2342180Z               "line": 513
2026-06-07T22:53:32.2342266Z             },
2026-06-07T22:53:32.2342346Z             {
2026-06-07T22:53:32.2342537Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2342632Z               "line": 599
2026-06-07T22:53:32.2342722Z             }
2026-06-07T22:53:32.2342809Z           ]
2026-06-07T22:53:32.2342890Z         }
2026-06-07T22:53:32.2342975Z       }
2026-06-07T22:53:32.2343061Z     },
2026-06-07T22:53:32.2343144Z     {
2026-06-07T22:53:32.2343252Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-07T22:53:32.2343439Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-07T22:53:32.2343534Z       "requiredStages": [
2026-06-07T22:53:32.2343623Z         "impl",
2026-06-07T22:53:32.2343705Z         "unit"
2026-06-07T22:53:32.2343792Z       ],
2026-06-07T22:53:32.2343914Z       "stages": {
2026-06-07T22:53:32.2344009Z         "doc": {
2026-06-07T22:53:32.2344105Z           "complete": false,
2026-06-07T22:53:32.2344194Z           "evidence": []
2026-06-07T22:53:32.2344265Z         },
2026-06-07T22:53:32.2344349Z         "impl": {
2026-06-07T22:53:32.2344480Z           "complete": true,
2026-06-07T22:53:32.2344565Z           "evidence": [
2026-06-07T22:53:32.2344654Z             {
2026-06-07T22:53:32.2344771Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2344866Z               "line": 143
2026-06-07T22:53:32.2345003Z             },
2026-06-07T22:53:32.2345085Z             {
2026-06-07T22:53:32.2345209Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2345299Z               "line": 148
2026-06-07T22:53:32.2345386Z             }
2026-06-07T22:53:32.2345495Z           ]
2026-06-07T22:53:32.2345576Z         },
2026-06-07T22:53:32.2345661Z         "int": {
2026-06-07T22:53:32.2345753Z           "complete": false,
2026-06-07T22:53:32.2345852Z           "evidence": []
2026-06-07T22:53:32.2345933Z         },
2026-06-07T22:53:32.2346020Z         "unit": {
2026-06-07T22:53:32.2346115Z           "complete": true,
2026-06-07T22:53:32.2346201Z           "evidence": [
2026-06-07T22:53:32.2346282Z             {
2026-06-07T22:53:32.2346402Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2346495Z               "line": 264
2026-06-07T22:53:32.2346576Z             },
2026-06-07T22:53:32.2346662Z             {
2026-06-07T22:53:32.2346779Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2346869Z               "line": 544
2026-06-07T22:53:32.2347046Z             },
2026-06-07T22:53:32.2347141Z             {
2026-06-07T22:53:32.2347255Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2347342Z               "line": 557
2026-06-07T22:53:32.2347428Z             }
2026-06-07T22:53:32.2347512Z           ]
2026-06-07T22:53:32.2347594Z         }
2026-06-07T22:53:32.2347681Z       }
2026-06-07T22:53:32.2347766Z     },
2026-06-07T22:53:32.2347846Z     {
2026-06-07T22:53:32.2347957Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-07T22:53:32.2348091Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-07T22:53:32.2348190Z       "requiredStages": [
2026-06-07T22:53:32.2348282Z         "impl",
2026-06-07T22:53:32.2348371Z         "unit"
2026-06-07T22:53:32.2348452Z       ],
2026-06-07T22:53:32.2348543Z       "stages": {
2026-06-07T22:53:32.2348630Z         "doc": {
2026-06-07T22:53:32.2348719Z           "complete": false,
2026-06-07T22:53:32.2348815Z           "evidence": []
2026-06-07T22:53:32.2348897Z         },
2026-06-07T22:53:32.2348987Z         "impl": {
2026-06-07T22:53:32.2349076Z           "complete": true,
2026-06-07T22:53:32.2349166Z           "evidence": [
2026-06-07T22:53:32.2349252Z             {
2026-06-07T22:53:32.2349369Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2349464Z               "line": 114
2026-06-07T22:53:32.2349647Z             },
2026-06-07T22:53:32.2349736Z             {
2026-06-07T22:53:32.2349860Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2349951Z               "line": 481
2026-06-07T22:53:32.2350031Z             }
2026-06-07T22:53:32.2350214Z           ]
2026-06-07T22:53:32.2350304Z         },
2026-06-07T22:53:32.2350389Z         "int": {
2026-06-07T22:53:32.2350481Z           "complete": false,
2026-06-07T22:53:32.2350571Z           "evidence": []
2026-06-07T22:53:32.2350657Z         },
2026-06-07T22:53:32.2350742Z         "unit": {
2026-06-07T22:53:32.2350839Z           "complete": true,
2026-06-07T22:53:32.2350928Z           "evidence": [
2026-06-07T22:53:32.2351014Z             {
2026-06-07T22:53:32.2351139Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2351224Z               "line": 515
2026-06-07T22:53:32.2351314Z             }
2026-06-07T22:53:32.2351400Z           ]
2026-06-07T22:53:32.2351488Z         }
2026-06-07T22:53:32.2351581Z       }
2026-06-07T22:53:32.2351667Z     },
2026-06-07T22:53:32.2351750Z     {
2026-06-07T22:53:32.2351873Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-07T22:53:32.2352091Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-07T22:53:32.2352196Z       "requiredStages": [
2026-06-07T22:53:32.2352281Z         "impl",
2026-06-07T22:53:32.2352367Z         "unit"
2026-06-07T22:53:32.2352449Z       ],
2026-06-07T22:53:32.2352540Z       "stages": {
2026-06-07T22:53:32.2352625Z         "doc": {
2026-06-07T22:53:32.2352720Z           "complete": false,
2026-06-07T22:53:32.2352811Z           "evidence": []
2026-06-07T22:53:32.2352897Z         },
2026-06-07T22:53:32.2352986Z         "impl": {
2026-06-07T22:53:32.2353074Z           "complete": true,
2026-06-07T22:53:32.2353164Z           "evidence": [
2026-06-07T22:53:32.2353244Z             {
2026-06-07T22:53:32.2353369Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2353460Z               "line": 459
2026-06-07T22:53:32.2353550Z             },
2026-06-07T22:53:32.2353636Z             {
2026-06-07T22:53:32.2353751Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2353841Z               "line": 28
2026-06-07T22:53:32.2353927Z             }
2026-06-07T22:53:32.2354019Z           ]
2026-06-07T22:53:32.2354099Z         },
2026-06-07T22:53:32.2354188Z         "int": {
2026-06-07T22:53:32.2354280Z           "complete": false,
2026-06-07T22:53:32.2354371Z           "evidence": []
2026-06-07T22:53:32.2354455Z         },
2026-06-07T22:53:32.2354545Z         "unit": {
2026-06-07T22:53:32.2354641Z           "complete": true,
2026-06-07T22:53:32.2354726Z           "evidence": [
2026-06-07T22:53:32.2354815Z             {
2026-06-07T22:53:32.2354929Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2355016Z               "line": 229
2026-06-07T22:53:32.2355102Z             }
2026-06-07T22:53:32.2355182Z           ]
2026-06-07T22:53:32.2355273Z         }
2026-06-07T22:53:32.2355354Z       }
2026-06-07T22:53:32.2355440Z     },
2026-06-07T22:53:32.2355525Z     {
2026-06-07T22:53:32.2355631Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-07T22:53:32.2355764Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-07T22:53:32.2355864Z       "requiredStages": [],
2026-06-07T22:53:32.2355951Z       "stages": {
2026-06-07T22:53:32.2356031Z         "doc": {
2026-06-07T22:53:32.2356131Z           "complete": false,
2026-06-07T22:53:32.2356222Z           "evidence": []
2026-06-07T22:53:32.2356304Z         },
2026-06-07T22:53:32.2356398Z         "impl": {
2026-06-07T22:53:32.2356488Z           "complete": false,
2026-06-07T22:53:32.2356581Z           "evidence": []
2026-06-07T22:53:32.2356665Z         },
2026-06-07T22:53:32.2356751Z         "int": {
2026-06-07T22:53:32.2356842Z           "complete": false,
2026-06-07T22:53:32.2356928Z           "evidence": []
2026-06-07T22:53:32.2357103Z         },
2026-06-07T22:53:32.2357307Z         "unit": {
2026-06-07T22:53:32.2357410Z           "complete": false,
2026-06-07T22:53:32.2357500Z           "evidence": []
2026-06-07T22:53:32.2357583Z         }
2026-06-07T22:53:32.2357668Z       }
2026-06-07T22:53:32.2357753Z     },
2026-06-07T22:53:32.2357840Z     {
2026-06-07T22:53:32.2358068Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-07T22:53:32.2358217Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-07T22:53:32.2358312Z       "requiredStages": [
2026-06-07T22:53:32.2358401Z         "impl",
2026-06-07T22:53:32.2358489Z         "unit"
2026-06-07T22:53:32.2358570Z       ],
2026-06-07T22:53:32.2358655Z       "stages": {
2026-06-07T22:53:32.2358740Z         "doc": {
2026-06-07T22:53:32.2358837Z           "complete": false,
2026-06-07T22:53:32.2358927Z           "evidence": []
2026-06-07T22:53:32.2359012Z         },
2026-06-07T22:53:32.2359098Z         "impl": {
2026-06-07T22:53:32.2359190Z           "complete": true,
2026-06-07T22:53:32.2359274Z           "evidence": [
2026-06-07T22:53:32.2359365Z             {
2026-06-07T22:53:32.2359481Z               "path": "crates/spt-live/src/turn.rs",
2026-06-07T22:53:32.2359566Z               "line": 19
2026-06-07T22:53:32.2359650Z             },
2026-06-07T22:53:32.2359735Z             {
2026-06-07T22:53:32.2359855Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2359948Z               "line": 347
2026-06-07T22:53:32.2360034Z             },
2026-06-07T22:53:32.2360115Z             {
2026-06-07T22:53:32.2360226Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2360315Z               "line": 383
2026-06-07T22:53:32.2360402Z             },
2026-06-07T22:53:32.2360483Z             {
2026-06-07T22:53:32.2360596Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2360682Z               "line": 15
2026-06-07T22:53:32.2360770Z             },
2026-06-07T22:53:32.2360849Z             {
2026-06-07T22:53:32.2360973Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2361060Z               "line": 48
2026-06-07T22:53:32.2361141Z             },
2026-06-07T22:53:32.2361226Z             {
2026-06-07T22:53:32.2361336Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2361423Z               "line": 119
2026-06-07T22:53:32.2361517Z             },
2026-06-07T22:53:32.2361603Z             {
2026-06-07T22:53:32.2361704Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2361794Z               "line": 2428
2026-06-07T22:53:32.2361875Z             }
2026-06-07T22:53:32.2361956Z           ]
2026-06-07T22:53:32.2362038Z         },
2026-06-07T22:53:32.2362123Z         "int": {
2026-06-07T22:53:32.2362213Z           "complete": false,
2026-06-07T22:53:32.2362305Z           "evidence": []
2026-06-07T22:53:32.2362387Z         },
2026-06-07T22:53:32.2362470Z         "unit": {
2026-06-07T22:53:32.2362556Z           "complete": true,
2026-06-07T22:53:32.2362646Z           "evidence": [
2026-06-07T22:53:32.2362738Z             {
2026-06-07T22:53:32.2362856Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2362942Z               "line": 496
2026-06-07T22:53:32.2363028Z             },
2026-06-07T22:53:32.2363114Z             {
2026-06-07T22:53:32.2363223Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2363325Z               "line": 165
2026-06-07T22:53:32.2363410Z             },
2026-06-07T22:53:32.2363490Z             {
2026-06-07T22:53:32.2363600Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-07T22:53:32.2363686Z               "line": 175
2026-06-07T22:53:32.2363772Z             }
2026-06-07T22:53:32.2363852Z           ]
2026-06-07T22:53:32.2363934Z         }
2026-06-07T22:53:32.2364020Z       }
2026-06-07T22:53:32.2364100Z     },
2026-06-07T22:53:32.2364181Z     {
2026-06-07T22:53:32.2364288Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-07T22:53:32.2365225Z       "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-07T22:53:32.2365324Z       "requiredStages": [
2026-06-07T22:53:32.2365479Z         "impl",
2026-06-07T22:53:32.2367653Z         "unit"
2026-06-07T22:53:32.2367753Z       ],
2026-06-07T22:53:32.2367848Z       "stages": {
2026-06-07T22:53:32.2367933Z         "doc": {
2026-06-07T22:53:32.2368027Z           "complete": false,
2026-06-07T22:53:32.2368118Z           "evidence": []
2026-06-07T22:53:32.2368204Z         },
2026-06-07T22:53:32.2368294Z         "impl": {
2026-06-07T22:53:32.2368390Z           "complete": true,
2026-06-07T22:53:32.2368476Z           "evidence": [
2026-06-07T22:53:32.2368557Z             {
2026-06-07T22:53:32.2368671Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2368763Z               "line": 2186
2026-06-07T22:53:32.2368848Z             },
2026-06-07T22:53:32.2368952Z             {
2026-06-07T22:53:32.2369082Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2369172Z               "line": 103
2026-06-07T22:53:32.2369253Z             },
2026-06-07T22:53:32.2369339Z             {
2026-06-07T22:53:32.2369449Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2369539Z               "line": 135
2026-06-07T22:53:32.2369625Z             }
2026-06-07T22:53:32.2369707Z           ]
2026-06-07T22:53:32.2369788Z         },
2026-06-07T22:53:32.2369873Z         "int": {
2026-06-07T22:53:32.2369964Z           "complete": false,
2026-06-07T22:53:32.2370055Z           "evidence": []
2026-06-07T22:53:32.2370140Z         },
2026-06-07T22:53:32.2370225Z         "unit": {
2026-06-07T22:53:32.2370315Z           "complete": true,
2026-06-07T22:53:32.2370401Z           "evidence": [
2026-06-07T22:53:32.2370485Z             {
2026-06-07T22:53:32.2370594Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2370685Z               "line": 258
2026-06-07T22:53:32.2370777Z             },
2026-06-07T22:53:32.2370856Z             {
2026-06-07T22:53:32.2370962Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2371048Z               "line": 283
2026-06-07T22:53:32.2371134Z             },
2026-06-07T22:53:32.2371219Z             {
2026-06-07T22:53:32.2371330Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2371414Z               "line": 296
2026-06-07T22:53:32.2371495Z             },
2026-06-07T22:53:32.2371576Z             {
2026-06-07T22:53:32.2371682Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2371763Z               "line": 308
2026-06-07T22:53:32.2371843Z             }
2026-06-07T22:53:32.2371930Z           ]
2026-06-07T22:53:32.2372011Z         }
2026-06-07T22:53:32.2372091Z       }
2026-06-07T22:53:32.2372172Z     },
2026-06-07T22:53:32.2372255Z     {
2026-06-07T22:53:32.2372359Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-07T22:53:32.2372526Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-07T22:53:32.2372622Z       "requiredStages": [
2026-06-07T22:53:32.2372706Z         "impl",
2026-06-07T22:53:32.2372787Z         "unit"
2026-06-07T22:53:32.2372870Z       ],
2026-06-07T22:53:32.2372956Z       "stages": {
2026-06-07T22:53:32.2373044Z         "doc": {
2026-06-07T22:53:32.2373139Z           "complete": false,
2026-06-07T22:53:32.2373225Z           "evidence": []
2026-06-07T22:53:32.2373316Z         },
2026-06-07T22:53:32.2373401Z         "impl": {
2026-06-07T22:53:32.2373492Z           "complete": true,
2026-06-07T22:53:32.2373589Z           "evidence": [
2026-06-07T22:53:32.2373665Z             {
2026-06-07T22:53:32.2373788Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2373875Z               "line": 35
2026-06-07T22:53:32.2373960Z             }
2026-06-07T22:53:32.2374040Z           ]
2026-06-07T22:53:32.2374121Z         },
2026-06-07T22:53:32.2374204Z         "int": {
2026-06-07T22:53:32.2374432Z           "complete": false,
2026-06-07T22:53:32.2374528Z           "evidence": []
2026-06-07T22:53:32.2374608Z         },
2026-06-07T22:53:32.2374699Z         "unit": {
2026-06-07T22:53:32.2374795Z           "complete": true,
2026-06-07T22:53:32.2374881Z           "evidence": [
2026-06-07T22:53:32.2375052Z             {
2026-06-07T22:53:32.2375167Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-07T22:53:32.2375261Z               "line": 220
2026-06-07T22:53:32.2375342Z             }
2026-06-07T22:53:32.2375430Z           ]
2026-06-07T22:53:32.2375511Z         }
2026-06-07T22:53:32.2375589Z       }
2026-06-07T22:53:32.2375675Z     },
2026-06-07T22:53:32.2375752Z     {
2026-06-07T22:53:32.2375865Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-07T22:53:32.2376122Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-07T22:53:32.2376212Z       "requiredStages": [
2026-06-07T22:53:32.2376307Z         "impl",
2026-06-07T22:53:32.2376388Z         "unit"
2026-06-07T22:53:32.2376474Z       ],
2026-06-07T22:53:32.2376556Z       "stages": {
2026-06-07T22:53:32.2376641Z         "doc": {
2026-06-07T22:53:32.2376727Z           "complete": false,
2026-06-07T22:53:32.2376822Z           "evidence": []
2026-06-07T22:53:32.2376913Z         },
2026-06-07T22:53:32.2377086Z         "impl": {
2026-06-07T22:53:32.2377180Z           "complete": true,
2026-06-07T22:53:32.2377265Z           "evidence": [
2026-06-07T22:53:32.2377347Z             {
2026-06-07T22:53:32.2377470Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.2377561Z               "line": 397
2026-06-07T22:53:32.2377647Z             },
2026-06-07T22:53:32.2377729Z             {
2026-06-07T22:53:32.2377842Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2377929Z               "line": 396
2026-06-07T22:53:32.2378011Z             },
2026-06-07T22:53:32.2378100Z             {
2026-06-07T22:53:32.2378223Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.2378313Z               "line": 156
2026-06-07T22:53:32.2378394Z             }
2026-06-07T22:53:32.2378473Z           ]
2026-06-07T22:53:32.2378558Z         },
2026-06-07T22:53:32.2378645Z         "int": {
2026-06-07T22:53:32.2378746Z           "complete": false,
2026-06-07T22:53:32.2378831Z           "evidence": []
2026-06-07T22:53:32.2378911Z         },
2026-06-07T22:53:32.2378994Z         "unit": {
2026-06-07T22:53:32.2379084Z           "complete": true,
2026-06-07T22:53:32.2379169Z           "evidence": [
2026-06-07T22:53:32.2379251Z             {
2026-06-07T22:53:32.2379370Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2379451Z               "line": 797
2026-06-07T22:53:32.2379536Z             },
2026-06-07T22:53:32.2379619Z             {
2026-06-07T22:53:32.2379732Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2379818Z               "line": 811
2026-06-07T22:53:32.2379904Z             },
2026-06-07T22:53:32.2379985Z             {
2026-06-07T22:53:32.2380099Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2380185Z               "line": 830
2026-06-07T22:53:32.2380268Z             },
2026-06-07T22:53:32.2380348Z             {
2026-06-07T22:53:32.2380471Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2380558Z               "line": 847
2026-06-07T22:53:32.2380639Z             },
2026-06-07T22:53:32.2380719Z             {
2026-06-07T22:53:32.2380842Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.2380928Z               "line": 430
2026-06-07T22:53:32.2381012Z             }
2026-06-07T22:53:32.2381092Z           ]
2026-06-07T22:53:32.2381168Z         }
2026-06-07T22:53:32.2381250Z       }
2026-06-07T22:53:32.2381332Z     },
2026-06-07T22:53:32.2381412Z     {
2026-06-07T22:53:32.2381517Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-07T22:53:32.2382408Z       "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-07T22:53:32.2382509Z       "requiredStages": [
2026-06-07T22:53:32.2382681Z         "doc",
2026-06-07T22:53:32.2382766Z         "impl",
2026-06-07T22:53:32.2382848Z         "unit"
2026-06-07T22:53:32.2382933Z       ],
2026-06-07T22:53:32.2383019Z       "stages": {
2026-06-07T22:53:32.2383100Z         "doc": {
2026-06-07T22:53:32.2383196Z           "complete": true,
2026-06-07T22:53:32.2383281Z           "evidence": [
2026-06-07T22:53:32.2383362Z             {
2026-06-07T22:53:32.2383473Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-07T22:53:32.2383558Z               "line": 311
2026-06-07T22:53:32.2383642Z             }
2026-06-07T22:53:32.2383723Z           ]
2026-06-07T22:53:32.2383810Z         },
2026-06-07T22:53:32.2383891Z         "impl": {
2026-06-07T22:53:32.2383990Z           "complete": true,
2026-06-07T22:53:32.2384077Z           "evidence": [
2026-06-07T22:53:32.2384163Z             {
2026-06-07T22:53:32.2384276Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2384367Z               "line": 85
2026-06-07T22:53:32.2384459Z             },
2026-06-07T22:53:32.2384540Z             {
2026-06-07T22:53:32.2384653Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2384735Z               "line": 99
2026-06-07T22:53:32.2384821Z             },
2026-06-07T22:53:32.2384902Z             {
2026-06-07T22:53:32.2385021Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2385107Z               "line": 55
2026-06-07T22:53:32.2385187Z             },
2026-06-07T22:53:32.2385273Z             {
2026-06-07T22:53:32.2385384Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2385474Z               "line": 31
2026-06-07T22:53:32.2385555Z             },
2026-06-07T22:53:32.2385645Z             {
2026-06-07T22:53:32.2385756Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2385845Z               "line": 187
2026-06-07T22:53:32.2385927Z             },
2026-06-07T22:53:32.2386009Z             {
2026-06-07T22:53:32.2386136Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2386221Z               "line": 92
2026-06-07T22:53:32.2386302Z             },
2026-06-07T22:53:32.2386383Z             {
2026-06-07T22:53:32.2386500Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.2386590Z               "line": 29
2026-06-07T22:53:32.2386672Z             },
2026-06-07T22:53:32.2386753Z             {
2026-06-07T22:53:32.2386867Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.2387044Z               "line": 104
2026-06-07T22:53:32.2387134Z             },
2026-06-07T22:53:32.2387215Z             {
2026-06-07T22:53:32.2387345Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2387435Z               "line": 168
2026-06-07T22:53:32.2387515Z             },
2026-06-07T22:53:32.2387593Z             {
2026-06-07T22:53:32.2387711Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T22:53:32.2387802Z               "line": 28
2026-06-07T22:53:32.2387888Z             },
2026-06-07T22:53:32.2387970Z             {
2026-06-07T22:53:32.2388083Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T22:53:32.2388169Z               "line": 74
2026-06-07T22:53:32.2388251Z             },
2026-06-07T22:53:32.2388336Z             {
2026-06-07T22:53:32.2388450Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2388537Z               "line": 40
2026-06-07T22:53:32.2388619Z             },
2026-06-07T22:53:32.2388698Z             {
2026-06-07T22:53:32.2388811Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2388898Z               "line": 181
2026-06-07T22:53:32.2389095Z             },
2026-06-07T22:53:32.2389181Z             {
2026-06-07T22:53:32.2389287Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T22:53:32.2389376Z               "line": 70
2026-06-07T22:53:32.2389457Z             },
2026-06-07T22:53:32.2389539Z             {
2026-06-07T22:53:32.2389753Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2389839Z               "line": 223
2026-06-07T22:53:32.2389925Z             },
2026-06-07T22:53:32.2390002Z             {
2026-06-07T22:53:32.2390115Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T22:53:32.2390207Z               "line": 37
2026-06-07T22:53:32.2390288Z             },
2026-06-07T22:53:32.2390373Z             {
2026-06-07T22:53:32.2390484Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.2390574Z               "line": 38
2026-06-07T22:53:32.2390654Z             },
2026-06-07T22:53:32.2390740Z             {
2026-06-07T22:53:32.2390856Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2390945Z               "line": 36
2026-06-07T22:53:32.2391031Z             },
2026-06-07T22:53:32.2391108Z             {
2026-06-07T22:53:32.2391223Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T22:53:32.2391307Z               "line": 40
2026-06-07T22:53:32.2391397Z             }
2026-06-07T22:53:32.2391479Z           ]
2026-06-07T22:53:32.2391563Z         },
2026-06-07T22:53:32.2391648Z         "int": {
2026-06-07T22:53:32.2391738Z           "complete": false,
2026-06-07T22:53:32.2391830Z           "evidence": []
2026-06-07T22:53:32.2391911Z         },
2026-06-07T22:53:32.2391995Z         "unit": {
2026-06-07T22:53:32.2392082Z           "complete": true,
2026-06-07T22:53:32.2392168Z           "evidence": [
2026-06-07T22:53:32.2392249Z             {
2026-06-07T22:53:32.2392373Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2392459Z               "line": 195
2026-06-07T22:53:32.2392544Z             },
2026-06-07T22:53:32.2392634Z             {
2026-06-07T22:53:32.2392755Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-07T22:53:32.2392845Z               "line": 122
2026-06-07T22:53:32.2392930Z             },
2026-06-07T22:53:32.2393012Z             {
2026-06-07T22:53:32.2393136Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.2393231Z               "line": 674
2026-06-07T22:53:32.2393312Z             },
2026-06-07T22:53:32.2393394Z             {
2026-06-07T22:53:32.2393512Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2393602Z               "line": 215
2026-06-07T22:53:32.2393690Z             },
2026-06-07T22:53:32.2393775Z             {
2026-06-07T22:53:32.2393888Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T22:53:32.2393975Z               "line": 156
2026-06-07T22:53:32.2394052Z             },
2026-06-07T22:53:32.2394146Z             {
2026-06-07T22:53:32.2394264Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2394341Z               "line": 112
2026-06-07T22:53:32.2394422Z             },
2026-06-07T22:53:32.2394522Z             {
2026-06-07T22:53:32.2394651Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T22:53:32.2394733Z               "line": 157
2026-06-07T22:53:32.2394813Z             },
2026-06-07T22:53:32.2394903Z             {
2026-06-07T22:53:32.2395019Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.2395110Z               "line": 215
2026-06-07T22:53:32.2395184Z             },
2026-06-07T22:53:32.2395271Z             {
2026-06-07T22:53:32.2395404Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2395490Z               "line": 140
2026-06-07T22:53:32.2395571Z             },
2026-06-07T22:53:32.2395653Z             {
2026-06-07T22:53:32.2395766Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T22:53:32.2395857Z               "line": 162
2026-06-07T22:53:32.2396090Z             }
2026-06-07T22:53:32.2396177Z           ]
2026-06-07T22:53:32.2396259Z         }
2026-06-07T22:53:32.2396344Z       }
2026-06-07T22:53:32.2396428Z     },
2026-06-07T22:53:32.2396511Z     {
2026-06-07T22:53:32.2396626Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-07T22:53:32.2396786Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-07T22:53:32.2397051Z       "requiredStages": [
2026-06-07T22:53:32.2397136Z         "impl",
2026-06-07T22:53:32.2397222Z         "unit"
2026-06-07T22:53:32.2397308Z       ],
2026-06-07T22:53:32.2397394Z       "stages": {
2026-06-07T22:53:32.2397475Z         "doc": {
2026-06-07T22:53:32.2397572Z           "complete": false,
2026-06-07T22:53:32.2397667Z           "evidence": []
2026-06-07T22:53:32.2397751Z         },
2026-06-07T22:53:32.2397838Z         "impl": {
2026-06-07T22:53:32.2397929Z           "complete": true,
2026-06-07T22:53:32.2398019Z           "evidence": [
2026-06-07T22:53:32.2398100Z             {
2026-06-07T22:53:32.2398225Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2398315Z               "line": 95
2026-06-07T22:53:32.2398400Z             },
2026-06-07T22:53:32.2398487Z             {
2026-06-07T22:53:32.2398595Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2398695Z               "line": 102
2026-06-07T22:53:32.2398777Z             }
2026-06-07T22:53:32.2398859Z           ]
2026-06-07T22:53:32.2398948Z         },
2026-06-07T22:53:32.2399029Z         "int": {
2026-06-07T22:53:32.2399126Z           "complete": false,
2026-06-07T22:53:32.2399216Z           "evidence": []
2026-06-07T22:53:32.2399300Z         },
2026-06-07T22:53:32.2399385Z         "unit": {
2026-06-07T22:53:32.2399472Z           "complete": true,
2026-06-07T22:53:32.2399566Z           "evidence": [
2026-06-07T22:53:32.2399646Z             {
2026-06-07T22:53:32.2399760Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2399847Z               "line": 250
2026-06-07T22:53:32.2399936Z             },
2026-06-07T22:53:32.2400022Z             {
2026-06-07T22:53:32.2400133Z               "path": "crates/spt-store/src/proc.rs",
2026-06-07T22:53:32.2400224Z               "line": 198
2026-06-07T22:53:32.2400308Z             },
2026-06-07T22:53:32.2400400Z             {
2026-06-07T22:53:32.2400514Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2400604Z               "line": 442
2026-06-07T22:53:32.2400690Z             },
2026-06-07T22:53:32.2400772Z             {
2026-06-07T22:53:32.2400881Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2400972Z               "line": 475
2026-06-07T22:53:32.2401058Z             }
2026-06-07T22:53:32.2401139Z           ]
2026-06-07T22:53:32.2401224Z         }
2026-06-07T22:53:32.2401310Z       }
2026-06-07T22:53:32.2401397Z     },
2026-06-07T22:53:32.2401482Z     {
2026-06-07T22:53:32.2401587Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-07T22:53:32.2401773Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-07T22:53:32.2401867Z       "requiredStages": [
2026-06-07T22:53:32.2401957Z         "impl",
2026-06-07T22:53:32.2402044Z         "unit"
2026-06-07T22:53:32.2402132Z       ],
2026-06-07T22:53:32.2402218Z       "stages": {
2026-06-07T22:53:32.2402303Z         "doc": {
2026-06-07T22:53:32.2402404Z           "complete": false,
2026-06-07T22:53:32.2402494Z           "evidence": []
2026-06-07T22:53:32.2402579Z         },
2026-06-07T22:53:32.2402666Z         "impl": {
2026-06-07T22:53:32.2402757Z           "complete": true,
2026-06-07T22:53:32.2402847Z           "evidence": [
2026-06-07T22:53:32.2402933Z             {
2026-06-07T22:53:32.2403043Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2403129Z               "line": 234
2026-06-07T22:53:32.2403213Z             },
2026-06-07T22:53:32.2403296Z             {
2026-06-07T22:53:32.2403415Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2403505Z               "line": 279
2026-06-07T22:53:32.2403687Z             },
2026-06-07T22:53:32.2403781Z             {
2026-06-07T22:53:32.2403887Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2403978Z               "line": 291
2026-06-07T22:53:32.2404058Z             }
2026-06-07T22:53:32.2404144Z           ]
2026-06-07T22:53:32.2404316Z         },
2026-06-07T22:53:32.2404401Z         "int": {
2026-06-07T22:53:32.2404492Z           "complete": false,
2026-06-07T22:53:32.2404584Z           "evidence": []
2026-06-07T22:53:32.2404664Z         },
2026-06-07T22:53:32.2404749Z         "unit": {
2026-06-07T22:53:32.2404844Z           "complete": true,
2026-06-07T22:53:32.2404930Z           "evidence": [
2026-06-07T22:53:32.2405016Z             {
2026-06-07T22:53:32.2405125Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2405216Z               "line": 427
2026-06-07T22:53:32.2405302Z             },
2026-06-07T22:53:32.2405383Z             {
2026-06-07T22:53:32.2405501Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2405593Z               "line": 471
2026-06-07T22:53:32.2405674Z             }
2026-06-07T22:53:32.2405759Z           ]
2026-06-07T22:53:32.2405846Z         }
2026-06-07T22:53:32.2405932Z       }
2026-06-07T22:53:32.2406013Z     },
2026-06-07T22:53:32.2406107Z     {
2026-06-07T22:53:32.2406199Z       "id": "REQ-INFRA-1",
2026-06-07T22:53:32.2406370Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-07T22:53:32.2406465Z       "requiredStages": [],
2026-06-07T22:53:32.2406552Z       "stages": {
2026-06-07T22:53:32.2406641Z         "doc": {
2026-06-07T22:53:32.2406732Z           "complete": false,
2026-06-07T22:53:32.2406824Z           "evidence": []
2026-06-07T22:53:32.2406905Z         },
2026-06-07T22:53:32.2407076Z         "impl": {
2026-06-07T22:53:32.2407172Z           "complete": false,
2026-06-07T22:53:32.2407256Z           "evidence": []
2026-06-07T22:53:32.2407346Z         },
2026-06-07T22:53:32.2407432Z         "int": {
2026-06-07T22:53:32.2407532Z           "complete": false,
2026-06-07T22:53:32.2407625Z           "evidence": []
2026-06-07T22:53:32.2407706Z         },
2026-06-07T22:53:32.2407792Z         "unit": {
2026-06-07T22:53:32.2407883Z           "complete": false,
2026-06-07T22:53:32.2407977Z           "evidence": []
2026-06-07T22:53:32.2408064Z         }
2026-06-07T22:53:32.2408146Z       }
2026-06-07T22:53:32.2408232Z     },
2026-06-07T22:53:32.2408311Z     {
2026-06-07T22:53:32.2408408Z       "id": "REQ-INST-1",
2026-06-07T22:53:32.2408555Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-07T22:53:32.2408655Z       "requiredStages": [],
2026-06-07T22:53:32.2408737Z       "stages": {
2026-06-07T22:53:32.2408822Z         "doc": {
2026-06-07T22:53:32.2408917Z           "complete": false,
2026-06-07T22:53:32.2409003Z           "evidence": []
2026-06-07T22:53:32.2409085Z         },
2026-06-07T22:53:32.2409174Z         "impl": {
2026-06-07T22:53:32.2409265Z           "complete": false,
2026-06-07T22:53:32.2409362Z           "evidence": []
2026-06-07T22:53:32.2409443Z         },
2026-06-07T22:53:32.2409532Z         "int": {
2026-06-07T22:53:32.2409623Z           "complete": false,
2026-06-07T22:53:32.2409715Z           "evidence": []
2026-06-07T22:53:32.2409795Z         },
2026-06-07T22:53:32.2409884Z         "unit": {
2026-06-07T22:53:32.2409974Z           "complete": false,
2026-06-07T22:53:32.2410066Z           "evidence": []
2026-06-07T22:53:32.2410154Z         }
2026-06-07T22:53:32.2410230Z       }
2026-06-07T22:53:32.2410316Z     },
2026-06-07T22:53:32.2410397Z     {
2026-06-07T22:53:32.2410488Z       "id": "REQ-INST-10",
2026-06-07T22:53:32.2410689Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-07T22:53:32.2410779Z       "requiredStages": [
2026-06-07T22:53:32.2410863Z         "impl",
2026-06-07T22:53:32.2410945Z         "unit"
2026-06-07T22:53:32.2411032Z       ],
2026-06-07T22:53:32.2411113Z       "stages": {
2026-06-07T22:53:32.2411294Z         "doc": {
2026-06-07T22:53:32.2411388Z           "complete": false,
2026-06-07T22:53:32.2411479Z           "evidence": []
2026-06-07T22:53:32.2411560Z         },
2026-06-07T22:53:32.2411643Z         "impl": {
2026-06-07T22:53:32.2411741Z           "complete": true,
2026-06-07T22:53:32.2411928Z           "evidence": [
2026-06-07T22:53:32.2412014Z             {
2026-06-07T22:53:32.2412142Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2412229Z               "line": 527
2026-06-07T22:53:32.2412315Z             },
2026-06-07T22:53:32.2412399Z             {
2026-06-07T22:53:32.2412517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2412604Z               "line": 604
2026-06-07T22:53:32.2412688Z             },
2026-06-07T22:53:32.2412768Z             {
2026-06-07T22:53:32.2412882Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2412974Z               "line": 13
2026-06-07T22:53:32.2413059Z             },
2026-06-07T22:53:32.2413149Z             {
2026-06-07T22:53:32.2413260Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2413355Z               "line": 67
2026-06-07T22:53:32.2413435Z             },
2026-06-07T22:53:32.2413512Z             {
2026-06-07T22:53:32.2413617Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2413712Z               "line": 18
2026-06-07T22:53:32.2413798Z             },
2026-06-07T22:53:32.2413885Z             {
2026-06-07T22:53:32.2413998Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2414084Z               "line": 432
2026-06-07T22:53:32.2414209Z             }
2026-06-07T22:53:32.2414294Z           ]
2026-06-07T22:53:32.2414375Z         },
2026-06-07T22:53:32.2414471Z         "int": {
2026-06-07T22:53:32.2414566Z           "complete": false,
2026-06-07T22:53:32.2414656Z           "evidence": []
2026-06-07T22:53:32.2414737Z         },
2026-06-07T22:53:32.2414829Z         "unit": {
2026-06-07T22:53:32.2414928Z           "complete": true,
2026-06-07T22:53:32.2415013Z           "evidence": [
2026-06-07T22:53:32.2415115Z             {
2026-06-07T22:53:32.2415234Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2415318Z               "line": 810
2026-06-07T22:53:32.2415418Z             },
2026-06-07T22:53:32.2415552Z             {
2026-06-07T22:53:32.2415718Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2415815Z               "line": 1080
2026-06-07T22:53:32.2415896Z             },
2026-06-07T22:53:32.2415981Z             {
2026-06-07T22:53:32.2416086Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2416177Z               "line": 1091
2026-06-07T22:53:32.2416262Z             },
2026-06-07T22:53:32.2416347Z             {
2026-06-07T22:53:32.2416468Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2416563Z               "line": 1107
2026-06-07T22:53:32.2416648Z             },
2026-06-07T22:53:32.2416745Z             {
2026-06-07T22:53:32.2416863Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2417035Z               "line": 1123
2026-06-07T22:53:32.2417121Z             },
2026-06-07T22:53:32.2417206Z             {
2026-06-07T22:53:32.2417321Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2417417Z               "line": 1145
2026-06-07T22:53:32.2417502Z             },
2026-06-07T22:53:32.2417583Z             {
2026-06-07T22:53:32.2417699Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2417789Z               "line": 1450
2026-06-07T22:53:32.2417873Z             },
2026-06-07T22:53:32.2417959Z             {
2026-06-07T22:53:32.2418068Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2418162Z               "line": 130
2026-06-07T22:53:32.2418252Z             },
2026-06-07T22:53:32.2418333Z             {
2026-06-07T22:53:32.2418443Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2418629Z               "line": 167
2026-06-07T22:53:32.2418725Z             },
2026-06-07T22:53:32.2418805Z             {
2026-06-07T22:53:32.2418920Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2419011Z               "line": 175
2026-06-07T22:53:32.2419181Z             },
2026-06-07T22:53:32.2419268Z             {
2026-06-07T22:53:32.2419383Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-07T22:53:32.2419473Z               "line": 183
2026-06-07T22:53:32.2419559Z             },
2026-06-07T22:53:32.2419641Z             {
2026-06-07T22:53:32.2419749Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2419839Z               "line": 882
2026-06-07T22:53:32.2419932Z             }
2026-06-07T22:53:32.2420012Z           ]
2026-06-07T22:53:32.2420097Z         }
2026-06-07T22:53:32.2420169Z       }
2026-06-07T22:53:32.2420261Z     },
2026-06-07T22:53:32.2420346Z     {
2026-06-07T22:53:32.2420435Z       "id": "REQ-INST-11",
2026-06-07T22:53:32.2420659Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-07T22:53:32.2420752Z       "requiredStages": [
2026-06-07T22:53:32.2420837Z         "impl",
2026-06-07T22:53:32.2420919Z         "unit"
2026-06-07T22:53:32.2421005Z       ],
2026-06-07T22:53:32.2421104Z       "stages": {
2026-06-07T22:53:32.2421186Z         "doc": {
2026-06-07T22:53:32.2421282Z           "complete": false,
2026-06-07T22:53:32.2421368Z           "evidence": []
2026-06-07T22:53:32.2421453Z         },
2026-06-07T22:53:32.2421534Z         "impl": {
2026-06-07T22:53:32.2421629Z           "complete": true,
2026-06-07T22:53:32.2421724Z           "evidence": [
2026-06-07T22:53:32.2421815Z             {
2026-06-07T22:53:32.2421935Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2422025Z               "line": 393
2026-06-07T22:53:32.2422106Z             },
2026-06-07T22:53:32.2422188Z             {
2026-06-07T22:53:32.2422325Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2422411Z               "line": 265
2026-06-07T22:53:32.2422493Z             },
2026-06-07T22:53:32.2422579Z             {
2026-06-07T22:53:32.2422692Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T22:53:32.2422784Z               "line": 59
2026-06-07T22:53:32.2422870Z             },
2026-06-07T22:53:32.2422954Z             {
2026-06-07T22:53:32.2423063Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2423154Z               "line": 3309
2026-06-07T22:53:32.2423239Z             },
2026-06-07T22:53:32.2423319Z             {
2026-06-07T22:53:32.2423423Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2423515Z               "line": 4408
2026-06-07T22:53:32.2423595Z             }
2026-06-07T22:53:32.2423686Z           ]
2026-06-07T22:53:32.2423771Z         },
2026-06-07T22:53:32.2423853Z         "int": {
2026-06-07T22:53:32.2423948Z           "complete": false,
2026-06-07T22:53:32.2424048Z           "evidence": []
2026-06-07T22:53:32.2424130Z         },
2026-06-07T22:53:32.2424215Z         "unit": {
2026-06-07T22:53:32.2424310Z           "complete": true,
2026-06-07T22:53:32.2424401Z           "evidence": [
2026-06-07T22:53:32.2424487Z             {
2026-06-07T22:53:32.2424606Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2424702Z               "line": 1250
2026-06-07T22:53:32.2424784Z             },
2026-06-07T22:53:32.2424868Z             {
2026-06-07T22:53:32.2424992Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2425080Z               "line": 1283
2026-06-07T22:53:32.2425164Z             },
2026-06-07T22:53:32.2425245Z             {
2026-06-07T22:53:32.2425370Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2425460Z               "line": 495
2026-06-07T22:53:32.2425545Z             },
2026-06-07T22:53:32.2425626Z             {
2026-06-07T22:53:32.2425817Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T22:53:32.2425911Z               "line": 160
2026-06-07T22:53:32.2425992Z             },
2026-06-07T22:53:32.2426075Z             {
2026-06-07T22:53:32.2426188Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T22:53:32.2426278Z               "line": 190
2026-06-07T22:53:32.2426427Z             },
2026-06-07T22:53:32.2426512Z             {
2026-06-07T22:53:32.2426627Z               "path": "crates/spt-store/src/rename.rs",
2026-06-07T22:53:32.2426713Z               "line": 225
2026-06-07T22:53:32.2426799Z             },
2026-06-07T22:53:32.2426884Z             {
2026-06-07T22:53:32.2427066Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2427156Z               "line": 4648
2026-06-07T22:53:32.2427232Z             }
2026-06-07T22:53:32.2427315Z           ]
2026-06-07T22:53:32.2427395Z         }
2026-06-07T22:53:32.2427480Z       }
2026-06-07T22:53:32.2427561Z     },
2026-06-07T22:53:32.2427644Z     {
2026-06-07T22:53:32.2427742Z       "id": "REQ-INST-12",
2026-06-07T22:53:32.2428029Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-07T22:53:32.2428123Z       "requiredStages": [
2026-06-07T22:53:32.2428206Z         "impl",
2026-06-07T22:53:32.2428292Z         "unit"
2026-06-07T22:53:32.2428381Z       ],
2026-06-07T22:53:32.2428466Z       "stages": {
2026-06-07T22:53:32.2428552Z         "doc": {
2026-06-07T22:53:32.2428643Z           "complete": false,
2026-06-07T22:53:32.2428731Z           "evidence": []
2026-06-07T22:53:32.2428812Z         },
2026-06-07T22:53:32.2428898Z         "impl": {
2026-06-07T22:53:32.2428989Z           "complete": true,
2026-06-07T22:53:32.2429079Z           "evidence": [
2026-06-07T22:53:32.2429165Z             {
2026-06-07T22:53:32.2429280Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2429370Z               "line": 445
2026-06-07T22:53:32.2429450Z             },
2026-06-07T22:53:32.2429533Z             {
2026-06-07T22:53:32.2429656Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2429742Z               "line": 538
2026-06-07T22:53:32.2429823Z             },
2026-06-07T22:53:32.2429905Z             {
2026-06-07T22:53:32.2430019Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2430109Z               "line": 618
2026-06-07T22:53:32.2430196Z             },
2026-06-07T22:53:32.2430276Z             {
2026-06-07T22:53:32.2430386Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2432375Z               "line": 87
2026-06-07T22:53:32.2432477Z             },
2026-06-07T22:53:32.2432562Z             {
2026-06-07T22:53:32.2432695Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2432791Z               "line": 216
2026-06-07T22:53:32.2432875Z             },
2026-06-07T22:53:32.2432957Z             {
2026-06-07T22:53:32.2433087Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2433186Z               "line": 135
2026-06-07T22:53:32.2433271Z             }
2026-06-07T22:53:32.2433354Z           ]
2026-06-07T22:53:32.2433440Z         },
2026-06-07T22:53:32.2433524Z         "int": {
2026-06-07T22:53:32.2433619Z           "complete": false,
2026-06-07T22:53:32.2433709Z           "evidence": []
2026-06-07T22:53:32.2433799Z         },
2026-06-07T22:53:32.2433884Z         "unit": {
2026-06-07T22:53:32.2433974Z           "complete": true,
2026-06-07T22:53:32.2434066Z           "evidence": [
2026-06-07T22:53:32.2434151Z             {
2026-06-07T22:53:32.2434269Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2434356Z               "line": 1325
2026-06-07T22:53:32.2434442Z             },
2026-06-07T22:53:32.2434522Z             {
2026-06-07T22:53:32.2434637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2434728Z               "line": 1348
2026-06-07T22:53:32.2434814Z             },
2026-06-07T22:53:32.2434894Z             {
2026-06-07T22:53:32.2435129Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2435224Z               "line": 1385
2026-06-07T22:53:32.2435305Z             },
2026-06-07T22:53:32.2435386Z             {
2026-06-07T22:53:32.2435509Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2435691Z               "line": 350
2026-06-07T22:53:32.2435771Z             },
2026-06-07T22:53:32.2435853Z             {
2026-06-07T22:53:32.2435973Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2436067Z               "line": 172
2026-06-07T22:53:32.2436143Z             },
2026-06-07T22:53:32.2436231Z             {
2026-06-07T22:53:32.2436344Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2436429Z               "line": 193
2026-06-07T22:53:32.2436514Z             },
2026-06-07T22:53:32.2436596Z             {
2026-06-07T22:53:32.2436710Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2436810Z               "line": 219
2026-06-07T22:53:32.2436891Z             }
2026-06-07T22:53:32.2437063Z           ]
2026-06-07T22:53:32.2437143Z         }
2026-06-07T22:53:32.2437226Z       }
2026-06-07T22:53:32.2437307Z     },
2026-06-07T22:53:32.2437387Z     {
2026-06-07T22:53:32.2437477Z       "id": "REQ-INST-13",
2026-06-07T22:53:32.2437674Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-07T22:53:32.2437773Z       "requiredStages": [
2026-06-07T22:53:32.2437855Z         "impl",
2026-06-07T22:53:32.2437941Z         "unit"
2026-06-07T22:53:32.2438021Z       ],
2026-06-07T22:53:32.2438107Z       "stages": {
2026-06-07T22:53:32.2438190Z         "doc": {
2026-06-07T22:53:32.2438284Z           "complete": false,
2026-06-07T22:53:32.2438374Z           "evidence": []
2026-06-07T22:53:32.2438451Z         },
2026-06-07T22:53:32.2438538Z         "impl": {
2026-06-07T22:53:32.2438631Z           "complete": true,
2026-06-07T22:53:32.2438718Z           "evidence": [
2026-06-07T22:53:32.2438809Z             {
2026-06-07T22:53:32.2438928Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2439012Z               "line": 98
2026-06-07T22:53:32.2439098Z             },
2026-06-07T22:53:32.2439179Z             {
2026-06-07T22:53:32.2439296Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2439390Z               "line": 158
2026-06-07T22:53:32.2439473Z             }
2026-06-07T22:53:32.2439554Z           ]
2026-06-07T22:53:32.2439639Z         },
2026-06-07T22:53:32.2439720Z         "int": {
2026-06-07T22:53:32.2439816Z           "complete": false,
2026-06-07T22:53:32.2439902Z           "evidence": []
2026-06-07T22:53:32.2439982Z         },
2026-06-07T22:53:32.2440068Z         "unit": {
2026-06-07T22:53:32.2440159Z           "complete": true,
2026-06-07T22:53:32.2440245Z           "evidence": [
2026-06-07T22:53:32.2440325Z             {
2026-06-07T22:53:32.2440446Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2440541Z               "line": 248
2026-06-07T22:53:32.2440626Z             },
2026-06-07T22:53:32.2440712Z             {
2026-06-07T22:53:32.2440827Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-07T22:53:32.2440913Z               "line": 266
2026-06-07T22:53:32.2440993Z             }
2026-06-07T22:53:32.2441085Z           ]
2026-06-07T22:53:32.2441165Z         }
2026-06-07T22:53:32.2441247Z       }
2026-06-07T22:53:32.2441328Z     },
2026-06-07T22:53:32.2441409Z     {
2026-06-07T22:53:32.2441508Z       "id": "REQ-INST-14",
2026-06-07T22:53:32.2441868Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-07T22:53:32.2441963Z       "requiredStages": [
2026-06-07T22:53:32.2442044Z         "doc",
2026-06-07T22:53:32.2442130Z         "impl",
2026-06-07T22:53:32.2442211Z         "unit"
2026-06-07T22:53:32.2442292Z       ],
2026-06-07T22:53:32.2442379Z       "stages": {
2026-06-07T22:53:32.2442558Z         "doc": {
2026-06-07T22:53:32.2442655Z           "complete": true,
2026-06-07T22:53:32.2442741Z           "evidence": [
2026-06-07T22:53:32.2442826Z             {
2026-06-07T22:53:32.2442921Z               "path": "CONTEXT.md",
2026-06-07T22:53:32.2443008Z               "line": 425
2026-06-07T22:53:32.2443192Z             },
2026-06-07T22:53:32.2443275Z             {
2026-06-07T22:53:32.2443375Z               "path": "docs/STORAGE.md",
2026-06-07T22:53:32.2443460Z               "line": 49
2026-06-07T22:53:32.2443551Z             }
2026-06-07T22:53:32.2443628Z           ]
2026-06-07T22:53:32.2443709Z         },
2026-06-07T22:53:32.2443794Z         "impl": {
2026-06-07T22:53:32.2443885Z           "complete": true,
2026-06-07T22:53:32.2443972Z           "evidence": [
2026-06-07T22:53:32.2444052Z             {
2026-06-07T22:53:32.2444179Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2444265Z               "line": 317
2026-06-07T22:53:32.2444345Z             },
2026-06-07T22:53:32.2444434Z             {
2026-06-07T22:53:32.2444548Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2444640Z               "line": 257
2026-06-07T22:53:32.2444721Z             },
2026-06-07T22:53:32.2444801Z             {
2026-06-07T22:53:32.2444921Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2445007Z               "line": 211
2026-06-07T22:53:32.2445092Z             },
2026-06-07T22:53:32.2445173Z             {
2026-06-07T22:53:32.2445279Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2445365Z               "line": 973
2026-06-07T22:53:32.2445445Z             }
2026-06-07T22:53:32.2445527Z           ]
2026-06-07T22:53:32.2445608Z         },
2026-06-07T22:53:32.2445694Z         "int": {
2026-06-07T22:53:32.2445784Z           "complete": false,
2026-06-07T22:53:32.2445870Z           "evidence": []
2026-06-07T22:53:32.2445951Z         },
2026-06-07T22:53:32.2446041Z         "unit": {
2026-06-07T22:53:32.2446137Z           "complete": true,
2026-06-07T22:53:32.2446224Z           "evidence": [
2026-06-07T22:53:32.2446307Z             {
2026-06-07T22:53:32.2446428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2446514Z               "line": 847
2026-06-07T22:53:32.2446599Z             },
2026-06-07T22:53:32.2446684Z             {
2026-06-07T22:53:32.2446796Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2446882Z               "line": 822
2026-06-07T22:53:32.2447051Z             },
2026-06-07T22:53:32.2447132Z             {
2026-06-07T22:53:32.2447247Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2447337Z               "line": 1021
2026-06-07T22:53:32.2447418Z             },
2026-06-07T22:53:32.2447500Z             {
2026-06-07T22:53:32.2447613Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2447699Z               "line": 463
2026-06-07T22:53:32.2447781Z             },
2026-06-07T22:53:32.2447871Z             {
2026-06-07T22:53:32.2447976Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2448067Z               "line": 4724
2026-06-07T22:53:32.2448153Z             }
2026-06-07T22:53:32.2448239Z           ]
2026-06-07T22:53:32.2448319Z         }
2026-06-07T22:53:32.2448410Z       }
2026-06-07T22:53:32.2448491Z     },
2026-06-07T22:53:32.2448577Z     {
2026-06-07T22:53:32.2448667Z       "id": "REQ-INST-15",
2026-06-07T22:53:32.2449350Z       "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-07T22:53:32.2449445Z       "requiredStages": [
2026-06-07T22:53:32.2449530Z         "doc",
2026-06-07T22:53:32.2449610Z         "impl",
2026-06-07T22:53:32.2449691Z         "unit"
2026-06-07T22:53:32.2449777Z       ],
2026-06-07T22:53:32.2449960Z       "stages": {
2026-06-07T22:53:32.2450047Z         "doc": {
2026-06-07T22:53:32.2450138Z           "complete": true,
2026-06-07T22:53:32.2450228Z           "evidence": [
2026-06-07T22:53:32.2450305Z             {
2026-06-07T22:53:32.2450481Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-07T22:53:32.2450653Z               "line": 3
2026-06-07T22:53:32.2450734Z             }
2026-06-07T22:53:32.2450819Z           ]
2026-06-07T22:53:32.2450895Z         },
2026-06-07T22:53:32.2450983Z         "impl": {
2026-06-07T22:53:32.2451072Z           "complete": true,
2026-06-07T22:53:32.2451158Z           "evidence": [
2026-06-07T22:53:32.2451239Z             {
2026-06-07T22:53:32.2451363Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2451449Z               "line": 266
2026-06-07T22:53:32.2451530Z             },
2026-06-07T22:53:32.2451612Z             {
2026-06-07T22:53:32.2451720Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2451811Z               "line": 60
2026-06-07T22:53:32.2451898Z             },
2026-06-07T22:53:32.2452007Z             {
2026-06-07T22:53:32.2452162Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2452249Z               "line": 336
2026-06-07T22:53:32.2452344Z             },
2026-06-07T22:53:32.2452423Z             {
2026-06-07T22:53:32.2452542Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2452629Z               "line": 385
2026-06-07T22:53:32.2452709Z             },
2026-06-07T22:53:32.2452794Z             {
2026-06-07T22:53:32.2452900Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2452986Z               "line": 19
2026-06-07T22:53:32.2453066Z             },
2026-06-07T22:53:32.2453152Z             {
2026-06-07T22:53:32.2453258Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2453343Z               "line": 70
2026-06-07T22:53:32.2453424Z             },
2026-06-07T22:53:32.2453510Z             {
2026-06-07T22:53:32.2453620Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2453706Z               "line": 96
2026-06-07T22:53:32.2453791Z             },
2026-06-07T22:53:32.2453873Z             {
2026-06-07T22:53:32.2453978Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2454077Z               "line": 121
2026-06-07T22:53:32.2454159Z             },
2026-06-07T22:53:32.2454245Z             {
2026-06-07T22:53:32.2454349Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2454435Z               "line": 172
2026-06-07T22:53:32.2454522Z             },
2026-06-07T22:53:32.2454602Z             {
2026-06-07T22:53:32.2454711Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2454796Z               "line": 143
2026-06-07T22:53:32.2454877Z             },
2026-06-07T22:53:32.2454961Z             {
2026-06-07T22:53:32.2455066Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2455156Z               "line": 865
2026-06-07T22:53:32.2455239Z             }
2026-06-07T22:53:32.2455332Z           ]
2026-06-07T22:53:32.2455409Z         },
2026-06-07T22:53:32.2455496Z         "int": {
2026-06-07T22:53:32.2455591Z           "complete": false,
2026-06-07T22:53:32.2455675Z           "evidence": []
2026-06-07T22:53:32.2455762Z         },
2026-06-07T22:53:32.2455844Z         "unit": {
2026-06-07T22:53:32.2455934Z           "complete": true,
2026-06-07T22:53:32.2456019Z           "evidence": [
2026-06-07T22:53:32.2456101Z             {
2026-06-07T22:53:32.2456224Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2456310Z               "line": 545
2026-06-07T22:53:32.2456392Z             },
2026-06-07T22:53:32.2456469Z             {
2026-06-07T22:53:32.2456592Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.2456678Z               "line": 606
2026-06-07T22:53:32.2456760Z             },
2026-06-07T22:53:32.2456840Z             {
2026-06-07T22:53:32.2457150Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2457244Z               "line": 213
2026-06-07T22:53:32.2457326Z             },
2026-06-07T22:53:32.2457408Z             {
2026-06-07T22:53:32.2457512Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2457688Z               "line": 249
2026-06-07T22:53:32.2457769Z             },
2026-06-07T22:53:32.2457850Z             {
2026-06-07T22:53:32.2457959Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2458041Z               "line": 262
2026-06-07T22:53:32.2458127Z             },
2026-06-07T22:53:32.2458207Z             {
2026-06-07T22:53:32.2458312Z               "path": "crates/spt-store/src/home.rs",
2026-06-07T22:53:32.2458403Z               "line": 338
2026-06-07T22:53:32.2458484Z             },
2026-06-07T22:53:32.2458569Z             {
2026-06-07T22:53:32.2458680Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2458765Z               "line": 496
2026-06-07T22:53:32.2458860Z             },
2026-06-07T22:53:32.2458942Z             {
2026-06-07T22:53:32.2459047Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2459132Z               "line": 4661
2026-06-07T22:53:32.2459218Z             },
2026-06-07T22:53:32.2459295Z             {
2026-06-07T22:53:32.2459404Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2459489Z               "line": 6027
2026-06-07T22:53:32.2459576Z             }
2026-06-07T22:53:32.2459658Z           ]
2026-06-07T22:53:32.2459737Z         }
2026-06-07T22:53:32.2459818Z       }
2026-06-07T22:53:32.2459901Z     },
2026-06-07T22:53:32.2459978Z     {
2026-06-07T22:53:32.2460075Z       "id": "REQ-INST-2",
2026-06-07T22:53:32.2460199Z       "title": "Per-node files, synced Psyche mind",
2026-06-07T22:53:32.2460290Z       "requiredStages": [
2026-06-07T22:53:32.2460374Z         "impl",
2026-06-07T22:53:32.2460459Z         "unit"
2026-06-07T22:53:32.2460540Z       ],
2026-06-07T22:53:32.2460636Z       "stages": {
2026-06-07T22:53:32.2460722Z         "doc": {
2026-06-07T22:53:32.2460812Z           "complete": false,
2026-06-07T22:53:32.2460898Z           "evidence": []
2026-06-07T22:53:32.2460979Z         },
2026-06-07T22:53:32.2461065Z         "impl": {
2026-06-07T22:53:32.2461155Z           "complete": true,
2026-06-07T22:53:32.2461252Z           "evidence": [
2026-06-07T22:53:32.2461332Z             {
2026-06-07T22:53:32.2461451Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2461538Z               "line": 86
2026-06-07T22:53:32.2461618Z             },
2026-06-07T22:53:32.2461699Z             {
2026-06-07T22:53:32.2461809Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2461896Z               "line": 28
2026-06-07T22:53:32.2461980Z             },
2026-06-07T22:53:32.2462061Z             {
2026-06-07T22:53:32.2462172Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2462252Z               "line": 74
2026-06-07T22:53:32.2462347Z             },
2026-06-07T22:53:32.2462428Z             {
2026-06-07T22:53:32.2462535Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2462619Z               "line": 96
2026-06-07T22:53:32.2462704Z             },
2026-06-07T22:53:32.2462785Z             {
2026-06-07T22:53:32.2462894Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2462978Z               "line": 81
2026-06-07T22:53:32.2463063Z             },
2026-06-07T22:53:32.2463145Z             {
2026-06-07T22:53:32.2463255Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-07T22:53:32.2463345Z               "line": 118
2026-06-07T22:53:32.2463426Z             }
2026-06-07T22:53:32.2463503Z           ]
2026-06-07T22:53:32.2463584Z         },
2026-06-07T22:53:32.2463669Z         "int": {
2026-06-07T22:53:32.2463760Z           "complete": false,
2026-06-07T22:53:32.2463851Z           "evidence": []
2026-06-07T22:53:32.2463937Z         },
2026-06-07T22:53:32.2464022Z         "unit": {
2026-06-07T22:53:32.2464180Z           "complete": true,
2026-06-07T22:53:32.2464270Z           "evidence": [
2026-06-07T22:53:32.2464351Z             {
2026-06-07T22:53:32.2464466Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-07T22:53:32.2464552Z               "line": 212
2026-06-07T22:53:32.2464700Z             },
2026-06-07T22:53:32.2464786Z             {
2026-06-07T22:53:32.2464890Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2464976Z               "line": 258
2026-06-07T22:53:32.2465059Z             }
2026-06-07T22:53:32.2465144Z           ]
2026-06-07T22:53:32.2465228Z         }
2026-06-07T22:53:32.2465309Z       }
2026-06-07T22:53:32.2465390Z     },
2026-06-07T22:53:32.2465470Z     {
2026-06-07T22:53:32.2465559Z       "id": "REQ-INST-3",
2026-06-07T22:53:32.2465703Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-07T22:53:32.2465799Z       "requiredStages": [
2026-06-07T22:53:32.2465879Z         "doc",
2026-06-07T22:53:32.2465974Z         "impl",
2026-06-07T22:53:32.2466056Z         "unit"
2026-06-07T22:53:32.2466142Z       ],
2026-06-07T22:53:32.2466231Z       "stages": {
2026-06-07T22:53:32.2466313Z         "doc": {
2026-06-07T22:53:32.2466404Z           "complete": true,
2026-06-07T22:53:32.2466490Z           "evidence": [
2026-06-07T22:53:32.2466574Z             {
2026-06-07T22:53:32.2466685Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-07T22:53:32.2466770Z               "line": 3
2026-06-07T22:53:32.2466851Z             }
2026-06-07T22:53:32.2466933Z           ]
2026-06-07T22:53:32.2467104Z         },
2026-06-07T22:53:32.2467190Z         "impl": {
2026-06-07T22:53:32.2467277Z           "complete": true,
2026-06-07T22:53:32.2467372Z           "evidence": [
2026-06-07T22:53:32.2467456Z             {
2026-06-07T22:53:32.2467576Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2467663Z               "line": 70
2026-06-07T22:53:32.2467743Z             },
2026-06-07T22:53:32.2467833Z             {
2026-06-07T22:53:32.2467954Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2468040Z               "line": 440
2026-06-07T22:53:32.2468123Z             },
2026-06-07T22:53:32.2468204Z             {
2026-06-07T22:53:32.2468320Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2468419Z               "line": 202
2026-06-07T22:53:32.2468500Z             },
2026-06-07T22:53:32.2468582Z             {
2026-06-07T22:53:32.2468697Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2468786Z               "line": 291
2026-06-07T22:53:32.2468867Z             },
2026-06-07T22:53:32.2468949Z             {
2026-06-07T22:53:32.2469063Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2469158Z               "line": 325
2026-06-07T22:53:32.2469245Z             },
2026-06-07T22:53:32.2469330Z             {
2026-06-07T22:53:32.2469449Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2469545Z               "line": 300
2026-06-07T22:53:32.2469631Z             },
2026-06-07T22:53:32.2469716Z             {
2026-06-07T22:53:32.2469846Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2469936Z               "line": 194
2026-06-07T22:53:32.2470031Z             },
2026-06-07T22:53:32.2470112Z             {
2026-06-07T22:53:32.2470237Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2470321Z               "line": 303
2026-06-07T22:53:32.2470408Z             },
2026-06-07T22:53:32.2470490Z             {
2026-06-07T22:53:32.2470603Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2470698Z               "line": 45
2026-06-07T22:53:32.2470778Z             },
2026-06-07T22:53:32.2470864Z             {
2026-06-07T22:53:32.2470981Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2471071Z               "line": 114
2026-06-07T22:53:32.2471153Z             },
2026-06-07T22:53:32.2471348Z             {
2026-06-07T22:53:32.2471468Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2471554Z               "line": 152
2026-06-07T22:53:32.2471648Z             },
2026-06-07T22:53:32.2471729Z             {
2026-06-07T22:53:32.2471845Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2472025Z               "line": 168
2026-06-07T22:53:32.2472103Z             },
2026-06-07T22:53:32.2472188Z             {
2026-06-07T22:53:32.2472301Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2472388Z               "line": 178
2026-06-07T22:53:32.2472470Z             },
2026-06-07T22:53:32.2472549Z             {
2026-06-07T22:53:32.2472669Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2472756Z               "line": 210
2026-06-07T22:53:32.2472840Z             },
2026-06-07T22:53:32.2472922Z             {
2026-06-07T22:53:32.2473047Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2473141Z               "line": 287
2026-06-07T22:53:32.2473221Z             },
2026-06-07T22:53:32.2473311Z             {
2026-06-07T22:53:32.2473422Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2473505Z               "line": 311
2026-06-07T22:53:32.2473591Z             },
2026-06-07T22:53:32.2473676Z             {
2026-06-07T22:53:32.2473787Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2473872Z               "line": 387
2026-06-07T22:53:32.2473972Z             },
2026-06-07T22:53:32.2474059Z             {
2026-06-07T22:53:32.2474168Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2474262Z               "line": 436
2026-06-07T22:53:32.2474388Z             },
2026-06-07T22:53:32.2474473Z             {
2026-06-07T22:53:32.2474592Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-07T22:53:32.2474679Z               "line": 37
2026-06-07T22:53:32.2474788Z             },
2026-06-07T22:53:32.2474873Z             {
2026-06-07T22:53:32.2474989Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2475112Z               "line": 62
2026-06-07T22:53:32.2475226Z             },
2026-06-07T22:53:32.2475299Z             {
2026-06-07T22:53:32.2475426Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2475531Z               "line": 190
2026-06-07T22:53:32.2475619Z             },
2026-06-07T22:53:32.2475699Z             {
2026-06-07T22:53:32.2475807Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2475907Z               "line": 1121
2026-06-07T22:53:32.2475983Z             }
2026-06-07T22:53:32.2476072Z           ]
2026-06-07T22:53:32.2476152Z         },
2026-06-07T22:53:32.2476238Z         "int": {
2026-06-07T22:53:32.2476330Z           "complete": false,
2026-06-07T22:53:32.2476420Z           "evidence": []
2026-06-07T22:53:32.2476510Z         },
2026-06-07T22:53:32.2476592Z         "unit": {
2026-06-07T22:53:32.2476692Z           "complete": true,
2026-06-07T22:53:32.2476782Z           "evidence": [
2026-06-07T22:53:32.2476863Z             {
2026-06-07T22:53:32.2477068Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.2477159Z               "line": 360
2026-06-07T22:53:32.2477245Z             },
2026-06-07T22:53:32.2477331Z             {
2026-06-07T22:53:32.2477454Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2477546Z               "line": 664
2026-06-07T22:53:32.2477631Z             },
2026-06-07T22:53:32.2477712Z             {
2026-06-07T22:53:32.2477827Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2477918Z               "line": 721
2026-06-07T22:53:32.2477998Z             },
2026-06-07T22:53:32.2478084Z             {
2026-06-07T22:53:32.2478209Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2478298Z               "line": 948
2026-06-07T22:53:32.2478379Z             },
2026-06-07T22:53:32.2478571Z             {
2026-06-07T22:53:32.2478693Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2478788Z               "line": 1039
2026-06-07T22:53:32.2478871Z             },
2026-06-07T22:53:32.2478951Z             {
2026-06-07T22:53:32.2479161Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2479257Z               "line": 447
2026-06-07T22:53:32.2479336Z             },
2026-06-07T22:53:32.2479427Z             {
2026-06-07T22:53:32.2479538Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2479633Z               "line": 483
2026-06-07T22:53:32.2479713Z             },
2026-06-07T22:53:32.2479800Z             {
2026-06-07T22:53:32.2479914Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2480004Z               "line": 538
2026-06-07T22:53:32.2480086Z             },
2026-06-07T22:53:32.2480172Z             {
2026-06-07T22:53:32.2480295Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2480381Z               "line": 695
2026-06-07T22:53:32.2480468Z             },
2026-06-07T22:53:32.2480557Z             {
2026-06-07T22:53:32.2480667Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2480759Z               "line": 929
2026-06-07T22:53:32.2480849Z             },
2026-06-07T22:53:32.2480934Z             {
2026-06-07T22:53:32.2481046Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2481136Z               "line": 943
2026-06-07T22:53:32.2481229Z             },
2026-06-07T22:53:32.2481310Z             {
2026-06-07T22:53:32.2481429Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2481518Z               "line": 1061
2026-06-07T22:53:32.2481608Z             },
2026-06-07T22:53:32.2481694Z             {
2026-06-07T22:53:32.2481814Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2481903Z               "line": 413
2026-06-07T22:53:32.2481995Z             },
2026-06-07T22:53:32.2482081Z             {
2026-06-07T22:53:32.2482185Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2482275Z               "line": 4685
2026-06-07T22:53:32.2482358Z             }
2026-06-07T22:53:32.2482442Z           ]
2026-06-07T22:53:32.2482532Z         }
2026-06-07T22:53:32.2482614Z       }
2026-06-07T22:53:32.2482701Z     },
2026-06-07T22:53:32.2482781Z     {
2026-06-07T22:53:32.2482876Z       "id": "REQ-INST-4",
2026-06-07T22:53:32.2483044Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-07T22:53:32.2483210Z       "requiredStages": [
2026-06-07T22:53:32.2483292Z         "impl",
2026-06-07T22:53:32.2483378Z         "unit"
2026-06-07T22:53:32.2483463Z       ],
2026-06-07T22:53:32.2483549Z       "stages": {
2026-06-07T22:53:32.2483641Z         "doc": {
2026-06-07T22:53:32.2483739Z           "complete": false,
2026-06-07T22:53:32.2483834Z           "evidence": []
2026-06-07T22:53:32.2483943Z         },
2026-06-07T22:53:32.2484042Z         "impl": {
2026-06-07T22:53:32.2484146Z           "complete": true,
2026-06-07T22:53:32.2484242Z           "evidence": [
2026-06-07T22:53:32.2484314Z             {
2026-06-07T22:53:32.2484427Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2484527Z               "line": 292
2026-06-07T22:53:32.2484619Z             },
2026-06-07T22:53:32.2484719Z             {
2026-06-07T22:53:32.2484842Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2484943Z               "line": 202
2026-06-07T22:53:32.2485043Z             },
2026-06-07T22:53:32.2485119Z             {
2026-06-07T22:53:32.2485244Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2485338Z               "line": 234
2026-06-07T22:53:32.2485419Z             },
2026-06-07T22:53:32.2485544Z             {
2026-06-07T22:53:32.2485653Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2485743Z               "line": 274
2026-06-07T22:53:32.2486068Z             }
2026-06-07T22:53:32.2486150Z           ]
2026-06-07T22:53:32.2486235Z         },
2026-06-07T22:53:32.2486339Z         "int": {
2026-06-07T22:53:32.2486433Z           "complete": false,
2026-06-07T22:53:32.2486520Z           "evidence": []
2026-06-07T22:53:32.2486675Z         },
2026-06-07T22:53:32.2486760Z         "unit": {
2026-06-07T22:53:32.2486852Z           "complete": true,
2026-06-07T22:53:32.2486942Z           "evidence": [
2026-06-07T22:53:32.2487109Z             {
2026-06-07T22:53:32.2487233Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2487323Z               "line": 716
2026-06-07T22:53:32.2487409Z             },
2026-06-07T22:53:32.2487491Z             {
2026-06-07T22:53:32.2487605Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2487695Z               "line": 559
2026-06-07T22:53:32.2487782Z             },
2026-06-07T22:53:32.2487862Z             {
2026-06-07T22:53:32.2487976Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2488067Z               "line": 666
2026-06-07T22:53:32.2488153Z             },
2026-06-07T22:53:32.2488234Z             {
2026-06-07T22:53:32.2488348Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2488436Z               "line": 748
2026-06-07T22:53:32.2488534Z             }
2026-06-07T22:53:32.2488615Z           ]
2026-06-07T22:53:32.2488697Z         }
2026-06-07T22:53:32.2488783Z       }
2026-06-07T22:53:32.2488873Z     },
2026-06-07T22:53:32.2488959Z     {
2026-06-07T22:53:32.2489051Z       "id": "REQ-INST-5",
2026-06-07T22:53:32.2489225Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-07T22:53:32.2489315Z       "requiredStages": [
2026-06-07T22:53:32.2489406Z         "impl",
2026-06-07T22:53:32.2489492Z         "unit",
2026-06-07T22:53:32.2489577Z         "int"
2026-06-07T22:53:32.2489668Z       ],
2026-06-07T22:53:32.2489750Z       "stages": {
2026-06-07T22:53:32.2489845Z         "doc": {
2026-06-07T22:53:32.2489934Z           "complete": false,
2026-06-07T22:53:32.2490027Z           "evidence": []
2026-06-07T22:53:32.2490112Z         },
2026-06-07T22:53:32.2490202Z         "impl": {
2026-06-07T22:53:32.2490298Z           "complete": true,
2026-06-07T22:53:32.2490384Z           "evidence": [
2026-06-07T22:53:32.2490469Z             {
2026-06-07T22:53:32.2490593Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2490684Z               "line": 39
2026-06-07T22:53:32.2490765Z             },
2026-06-07T22:53:32.2490851Z             {
2026-06-07T22:53:32.2490966Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2491057Z               "line": 68
2026-06-07T22:53:32.2491146Z             },
2026-06-07T22:53:32.2491227Z             {
2026-06-07T22:53:32.2491338Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2491437Z               "line": 97
2026-06-07T22:53:32.2491523Z             },
2026-06-07T22:53:32.2491615Z             {
2026-06-07T22:53:32.2491724Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2491813Z               "line": 180
2026-06-07T22:53:32.2491898Z             },
2026-06-07T22:53:32.2491980Z             {
2026-06-07T22:53:32.2492092Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2492177Z               "line": 311
2026-06-07T22:53:32.2492259Z             }
2026-06-07T22:53:32.2492340Z           ]
2026-06-07T22:53:32.2492421Z         },
2026-06-07T22:53:32.2492506Z         "int": {
2026-06-07T22:53:32.2492598Z           "complete": true,
2026-06-07T22:53:32.2492688Z           "evidence": [
2026-06-07T22:53:32.2492773Z             {
2026-06-07T22:53:32.2492894Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2492984Z               "line": 146
2026-06-07T22:53:32.2493070Z             },
2026-06-07T22:53:32.2493150Z             {
2026-06-07T22:53:32.2493271Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T22:53:32.2493465Z               "line": 102
2026-06-07T22:53:32.2493552Z             },
2026-06-07T22:53:32.2493632Z             {
2026-06-07T22:53:32.2493751Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2493843Z               "line": 635
2026-06-07T22:53:32.2494018Z             },
2026-06-07T22:53:32.2494104Z             {
2026-06-07T22:53:32.2494220Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2494309Z               "line": 972
2026-06-07T22:53:32.2494394Z             }
2026-06-07T22:53:32.2494475Z           ]
2026-06-07T22:53:32.2494561Z         },
2026-06-07T22:53:32.2494644Z         "unit": {
2026-06-07T22:53:32.2494735Z           "complete": true,
2026-06-07T22:53:32.2494825Z           "evidence": [
2026-06-07T22:53:32.2494907Z             {
2026-06-07T22:53:32.2495021Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2495112Z               "line": 520
2026-06-07T22:53:32.2495193Z             },
2026-06-07T22:53:32.2495284Z             {
2026-06-07T22:53:32.2495393Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2497535Z               "line": 563
2026-06-07T22:53:32.2497639Z             },
2026-06-07T22:53:32.2497727Z             {
2026-06-07T22:53:32.2497859Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2497969Z               "line": 210
2026-06-07T22:53:32.2498051Z             }
2026-06-07T22:53:32.2498136Z           ]
2026-06-07T22:53:32.2498222Z         }
2026-06-07T22:53:32.2498303Z       }
2026-06-07T22:53:32.2498389Z     },
2026-06-07T22:53:32.2498470Z     {
2026-06-07T22:53:32.2498565Z       "id": "REQ-INST-6",
2026-06-07T22:53:32.2498751Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-07T22:53:32.2498851Z       "requiredStages": [
2026-06-07T22:53:32.2498938Z         "impl",
2026-06-07T22:53:32.2499024Z         "unit",
2026-06-07T22:53:32.2499108Z         "int"
2026-06-07T22:53:32.2499199Z       ],
2026-06-07T22:53:32.2499291Z       "stages": {
2026-06-07T22:53:32.2499376Z         "doc": {
2026-06-07T22:53:32.2499471Z           "complete": true,
2026-06-07T22:53:32.2499557Z           "evidence": [
2026-06-07T22:53:32.2499640Z             {
2026-06-07T22:53:32.2499747Z               "path": "docs/DEFERRED.md",
2026-06-07T22:53:32.2499841Z               "line": 13
2026-06-07T22:53:32.2499923Z             }
2026-06-07T22:53:32.2500010Z           ]
2026-06-07T22:53:32.2500095Z         },
2026-06-07T22:53:32.2500180Z         "impl": {
2026-06-07T22:53:32.2500272Z           "complete": true,
2026-06-07T22:53:32.2500358Z           "evidence": [
2026-06-07T22:53:32.2500443Z             {
2026-06-07T22:53:32.2500567Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2500653Z               "line": 377
2026-06-07T22:53:32.2500743Z             },
2026-06-07T22:53:32.2500828Z             {
2026-06-07T22:53:32.2500944Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T22:53:32.2501039Z               "line": 27
2026-06-07T22:53:32.2501124Z             },
2026-06-07T22:53:32.2501206Z             {
2026-06-07T22:53:32.2501325Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T22:53:32.2501416Z               "line": 73
2026-06-07T22:53:32.2501506Z             },
2026-06-07T22:53:32.2501588Z             {
2026-06-07T22:53:32.2501706Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-07T22:53:32.2501792Z               "line": 182
2026-06-07T22:53:32.2501875Z             },
2026-06-07T22:53:32.2501955Z             {
2026-06-07T22:53:32.2502074Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2502166Z               "line": 424
2026-06-07T22:53:32.2502246Z             },
2026-06-07T22:53:32.2502331Z             {
2026-06-07T22:53:32.2502444Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-07T22:53:32.2502535Z               "line": 31
2026-06-07T22:53:32.2502615Z             },
2026-06-07T22:53:32.2502843Z             {
2026-06-07T22:53:32.2502967Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2503052Z               "line": 182
2026-06-07T22:53:32.2503139Z             },
2026-06-07T22:53:32.2503220Z             {
2026-06-07T22:53:32.2503334Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2503516Z               "line": 81
2026-06-07T22:53:32.2503601Z             },
2026-06-07T22:53:32.2503686Z             {
2026-06-07T22:53:32.2503792Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2503887Z               "line": 1122
2026-06-07T22:53:32.2503973Z             },
2026-06-07T22:53:32.2504059Z             {
2026-06-07T22:53:32.2504169Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2504254Z               "line": 179
2026-06-07T22:53:32.2504340Z             },
2026-06-07T22:53:32.2504422Z             {
2026-06-07T22:53:32.2504526Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2504626Z               "line": 215
2026-06-07T22:53:32.2504708Z             }
2026-06-07T22:53:32.2504794Z           ]
2026-06-07T22:53:32.2504878Z         },
2026-06-07T22:53:32.2504963Z         "int": {
2026-06-07T22:53:32.2505059Z           "complete": true,
2026-06-07T22:53:32.2505149Z           "evidence": [
2026-06-07T22:53:32.2505238Z             {
2026-06-07T22:53:32.2505367Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2505462Z               "line": 649
2026-06-07T22:53:32.2505543Z             },
2026-06-07T22:53:32.2505628Z             {
2026-06-07T22:53:32.2505744Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2505835Z               "line": 1017
2026-06-07T22:53:32.2505919Z             },
2026-06-07T22:53:32.2506006Z             {
2026-06-07T22:53:32.2506110Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2506201Z               "line": 712
2026-06-07T22:53:32.2506282Z             }
2026-06-07T22:53:32.2506369Z           ]
2026-06-07T22:53:32.2506453Z         },
2026-06-07T22:53:32.2506539Z         "unit": {
2026-06-07T22:53:32.2506636Z           "complete": true,
2026-06-07T22:53:32.2506722Z           "evidence": [
2026-06-07T22:53:32.2506806Z             {
2026-06-07T22:53:32.2506926Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2507106Z               "line": 620
2026-06-07T22:53:32.2507192Z             },
2026-06-07T22:53:32.2507275Z             {
2026-06-07T22:53:32.2507393Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2507483Z               "line": 897
2026-06-07T22:53:32.2507568Z             },
2026-06-07T22:53:32.2507654Z             {
2026-06-07T22:53:32.2507766Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-07T22:53:32.2507852Z               "line": 66
2026-06-07T22:53:32.2507933Z             },
2026-06-07T22:53:32.2508020Z             {
2026-06-07T22:53:32.2508133Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2508229Z               "line": 272
2026-06-07T22:53:32.2508315Z             },
2026-06-07T22:53:32.2508396Z             {
2026-06-07T22:53:32.2508510Z               "path": "crates/spt/src/api/worker.rs",
2026-06-07T22:53:32.2508597Z               "line": 201
2026-06-07T22:53:32.2508687Z             }
2026-06-07T22:53:32.2508772Z           ]
2026-06-07T22:53:32.2508853Z         }
2026-06-07T22:53:32.2508936Z       }
2026-06-07T22:53:32.2509020Z     },
2026-06-07T22:53:32.2509101Z     {
2026-06-07T22:53:32.2509193Z       "id": "REQ-INST-7",
2026-06-07T22:53:32.2509330Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-07T22:53:32.2509426Z       "requiredStages": [
2026-06-07T22:53:32.2509508Z         "impl",
2026-06-07T22:53:32.2509594Z         "unit",
2026-06-07T22:53:32.2509673Z         "int"
2026-06-07T22:53:32.2509759Z       ],
2026-06-07T22:53:32.2509841Z       "stages": {
2026-06-07T22:53:32.2509922Z         "doc": {
2026-06-07T22:53:32.2510117Z           "complete": false,
2026-06-07T22:53:32.2510209Z           "evidence": []
2026-06-07T22:53:32.2510293Z         },
2026-06-07T22:53:32.2510374Z         "impl": {
2026-06-07T22:53:32.2510464Z           "complete": true,
2026-06-07T22:53:32.2510551Z           "evidence": [
2026-06-07T22:53:32.2510636Z             {
2026-06-07T22:53:32.2510842Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2510932Z               "line": 412
2026-06-07T22:53:32.2511012Z             },
2026-06-07T22:53:32.2511093Z             {
2026-06-07T22:53:32.2511208Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2511294Z               "line": 40
2026-06-07T22:53:32.2511374Z             },
2026-06-07T22:53:32.2511457Z             {
2026-06-07T22:53:32.2511580Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2511670Z               "line": 27
2026-06-07T22:53:32.2511747Z             },
2026-06-07T22:53:32.2511833Z             {
2026-06-07T22:53:32.2511957Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2512052Z               "line": 167
2026-06-07T22:53:32.2512134Z             },
2026-06-07T22:53:32.2512214Z             {
2026-06-07T22:53:32.2512343Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2512440Z               "line": 257
2026-06-07T22:53:32.2512520Z             },
2026-06-07T22:53:32.2512600Z             {
2026-06-07T22:53:32.2512711Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-07T22:53:32.2512806Z               "line": 59
2026-06-07T22:53:32.2512891Z             },
2026-06-07T22:53:32.2512971Z             {
2026-06-07T22:53:32.2513090Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2513180Z               "line": 41
2026-06-07T22:53:32.2513264Z             },
2026-06-07T22:53:32.2513345Z             {
2026-06-07T22:53:32.2513466Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2513560Z               "line": 27
2026-06-07T22:53:32.2513646Z             },
2026-06-07T22:53:32.2513723Z             {
2026-06-07T22:53:32.2513842Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2513931Z               "line": 59
2026-06-07T22:53:32.2514009Z             },
2026-06-07T22:53:32.2514100Z             {
2026-06-07T22:53:32.2514218Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2514304Z               "line": 68
2026-06-07T22:53:32.2514386Z             },
2026-06-07T22:53:32.2514471Z             {
2026-06-07T22:53:32.2514585Z               "path": "crates/spt-store/src/registry.rs",
2026-06-07T22:53:32.2514668Z               "line": 139
2026-06-07T22:53:32.2514757Z             }
2026-06-07T22:53:32.2514839Z           ]
2026-06-07T22:53:32.2514919Z         },
2026-06-07T22:53:32.2515001Z         "int": {
2026-06-07T22:53:32.2515095Z           "complete": true,
2026-06-07T22:53:32.2515186Z           "evidence": [
2026-06-07T22:53:32.2515273Z             {
2026-06-07T22:53:32.2515396Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T22:53:32.2515481Z               "line": 102
2026-06-07T22:53:32.2515562Z             },
2026-06-07T22:53:32.2515643Z             {
2026-06-07T22:53:32.2515755Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2515845Z               "line": 593
2026-06-07T22:53:32.2515927Z             },
2026-06-07T22:53:32.2516013Z             {
2026-06-07T22:53:32.2516127Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2516212Z               "line": 867
2026-06-07T22:53:32.2516295Z             }
2026-06-07T22:53:32.2516380Z           ]
2026-06-07T22:53:32.2516465Z         },
2026-06-07T22:53:32.2516546Z         "unit": {
2026-06-07T22:53:32.2516638Z           "complete": true,
2026-06-07T22:53:32.2516724Z           "evidence": [
2026-06-07T22:53:32.2516803Z             {
2026-06-07T22:53:32.2517099Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2517191Z               "line": 818
2026-06-07T22:53:32.2517277Z             },
2026-06-07T22:53:32.2517361Z             {
2026-06-07T22:53:32.2517481Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2517568Z               "line": 1100
2026-06-07T22:53:32.2517738Z             },
2026-06-07T22:53:32.2517815Z             {
2026-06-07T22:53:32.2517945Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-07T22:53:32.2518028Z               "line": 83
2026-06-07T22:53:32.2518109Z             },
2026-06-07T22:53:32.2518190Z             {
2026-06-07T22:53:32.2518308Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2518398Z               "line": 690
2026-06-07T22:53:32.2518479Z             },
2026-06-07T22:53:32.2518561Z             {
2026-06-07T22:53:32.2518674Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2518760Z               "line": 701
2026-06-07T22:53:32.2518857Z             },
2026-06-07T22:53:32.2518933Z             {
2026-06-07T22:53:32.2519046Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2519137Z               "line": 716
2026-06-07T22:53:32.2519218Z             },
2026-06-07T22:53:32.2519299Z             {
2026-06-07T22:53:32.2519423Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2519510Z               "line": 99
2026-06-07T22:53:32.2519595Z             },
2026-06-07T22:53:32.2519675Z             {
2026-06-07T22:53:32.2519791Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2519876Z               "line": 114
2026-06-07T22:53:32.2519962Z             },
2026-06-07T22:53:32.2520038Z             {
2026-06-07T22:53:32.2520159Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-07T22:53:32.2520243Z               "line": 147
2026-06-07T22:53:32.2520334Z             }
2026-06-07T22:53:32.2520416Z           ]
2026-06-07T22:53:32.2520497Z         }
2026-06-07T22:53:32.2520586Z       }
2026-06-07T22:53:32.2520663Z     },
2026-06-07T22:53:32.2520745Z     {
2026-06-07T22:53:32.2520835Z       "id": "REQ-INST-8",
2026-06-07T22:53:32.2520985Z       "title": "Remote-control mode distinct from local operation",
2026-06-07T22:53:32.2521077Z       "requiredStages": [
2026-06-07T22:53:32.2521168Z         "impl",
2026-06-07T22:53:32.2521248Z         "unit",
2026-06-07T22:53:32.2521329Z         "int"
2026-06-07T22:53:32.2521411Z       ],
2026-06-07T22:53:32.2521497Z       "stages": {
2026-06-07T22:53:32.2521582Z         "doc": {
2026-06-07T22:53:32.2521673Z           "complete": false,
2026-06-07T22:53:32.2521764Z           "evidence": []
2026-06-07T22:53:32.2521849Z         },
2026-06-07T22:53:32.2521935Z         "impl": {
2026-06-07T22:53:32.2522027Z           "complete": true,
2026-06-07T22:53:32.2522111Z           "evidence": [
2026-06-07T22:53:32.2522197Z             {
2026-06-07T22:53:32.2522317Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2522408Z               "line": 98
2026-06-07T22:53:32.2522493Z             },
2026-06-07T22:53:32.2522579Z             {
2026-06-07T22:53:32.2522694Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2522783Z               "line": 209
2026-06-07T22:53:32.2522865Z             },
2026-06-07T22:53:32.2522956Z             {
2026-06-07T22:53:32.2523070Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2523155Z               "line": 230
2026-06-07T22:53:32.2523232Z             },
2026-06-07T22:53:32.2523329Z             {
2026-06-07T22:53:32.2523441Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T22:53:32.2523531Z               "line": 35
2026-06-07T22:53:32.2523612Z             }
2026-06-07T22:53:32.2523693Z           ]
2026-06-07T22:53:32.2523777Z         },
2026-06-07T22:53:32.2523862Z         "int": {
2026-06-07T22:53:32.2523954Z           "complete": true,
2026-06-07T22:53:32.2524040Z           "evidence": [
2026-06-07T22:53:32.2524221Z             {
2026-06-07T22:53:32.2524350Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2524435Z               "line": 404
2026-06-07T22:53:32.2524521Z             },
2026-06-07T22:53:32.2524603Z             {
2026-06-07T22:53:32.2524721Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2525828Z               "line": 931
2026-06-07T22:53:32.2525914Z             }
2026-06-07T22:53:32.2525998Z           ]
2026-06-07T22:53:32.2526079Z         },
2026-06-07T22:53:32.2526165Z         "unit": {
2026-06-07T22:53:32.2526255Z           "complete": true,
2026-06-07T22:53:32.2526344Z           "evidence": [
2026-06-07T22:53:32.2526424Z             {
2026-06-07T22:53:32.2526545Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T22:53:32.2526635Z               "line": 180
2026-06-07T22:53:32.2526715Z             },
2026-06-07T22:53:32.2526802Z             {
2026-06-07T22:53:32.2526921Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T22:53:32.2527102Z               "line": 258
2026-06-07T22:53:32.2527184Z             },
2026-06-07T22:53:32.2527269Z             {
2026-06-07T22:53:32.2527383Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T22:53:32.2527470Z               "line": 70
2026-06-07T22:53:32.2527560Z             },
2026-06-07T22:53:32.2527641Z             {
2026-06-07T22:53:32.2527756Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-07T22:53:32.2527842Z               "line": 110
2026-06-07T22:53:32.2527926Z             }
2026-06-07T22:53:32.2528007Z           ]
2026-06-07T22:53:32.2528090Z         }
2026-06-07T22:53:32.2528171Z       }
2026-06-07T22:53:32.2528255Z     },
2026-06-07T22:53:32.2528342Z     {
2026-06-07T22:53:32.2528429Z       "id": "REQ-INST-9",
2026-06-07T22:53:32.2528608Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-07T22:53:32.2528702Z       "requiredStages": [
2026-06-07T22:53:32.2528784Z         "impl",
2026-06-07T22:53:32.2528878Z         "unit"
2026-06-07T22:53:32.2528958Z       ],
2026-06-07T22:53:32.2529049Z       "stages": {
2026-06-07T22:53:32.2529130Z         "doc": {
2026-06-07T22:53:32.2529225Z           "complete": false,
2026-06-07T22:53:32.2529316Z           "evidence": []
2026-06-07T22:53:32.2529407Z         },
2026-06-07T22:53:32.2529493Z         "impl": {
2026-06-07T22:53:32.2529582Z           "complete": true,
2026-06-07T22:53:32.2529674Z           "evidence": [
2026-06-07T22:53:32.2529760Z             {
2026-06-07T22:53:32.2529878Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2529969Z               "line": 328
2026-06-07T22:53:32.2530051Z             }
2026-06-07T22:53:32.2530136Z           ]
2026-06-07T22:53:32.2530216Z         },
2026-06-07T22:53:32.2530308Z         "int": {
2026-06-07T22:53:32.2530399Z           "complete": false,
2026-06-07T22:53:32.2530488Z           "evidence": []
2026-06-07T22:53:32.2530574Z         },
2026-06-07T22:53:32.2530666Z         "unit": {
2026-06-07T22:53:32.2530761Z           "complete": true,
2026-06-07T22:53:32.2530846Z           "evidence": [
2026-06-07T22:53:32.2530932Z             {
2026-06-07T22:53:32.2531052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2531141Z               "line": 1168
2026-06-07T22:53:32.2531233Z             },
2026-06-07T22:53:32.2531310Z             {
2026-06-07T22:53:32.2531432Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2531518Z               "line": 1177
2026-06-07T22:53:32.2531604Z             },
2026-06-07T22:53:32.2531685Z             {
2026-06-07T22:53:32.2531808Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2531894Z               "line": 1193
2026-06-07T22:53:32.2531981Z             },
2026-06-07T22:53:32.2532067Z             {
2026-06-07T22:53:32.2532180Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2532272Z               "line": 1205
2026-06-07T22:53:32.2532457Z             },
2026-06-07T22:53:32.2532548Z             {
2026-06-07T22:53:32.2532667Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2532757Z               "line": 1225
2026-06-07T22:53:32.2532838Z             }
2026-06-07T22:53:32.2532921Z           ]
2026-06-07T22:53:32.2533096Z         }
2026-06-07T22:53:32.2533182Z       }
2026-06-07T22:53:32.2533264Z     },
2026-06-07T22:53:32.2533348Z     {
2026-06-07T22:53:32.2533444Z       "id": "REQ-INSTALL-1",
2026-06-07T22:53:32.2533630Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-07T22:53:32.2533725Z       "requiredStages": [
2026-06-07T22:53:32.2533807Z         "doc",
2026-06-07T22:53:32.2533894Z         "impl",
2026-06-07T22:53:32.2533982Z         "int"
2026-06-07T22:53:32.2534063Z       ],
2026-06-07T22:53:32.2534149Z       "stages": {
2026-06-07T22:53:32.2534235Z         "doc": {
2026-06-07T22:53:32.2534323Z           "complete": true,
2026-06-07T22:53:32.2534417Z           "evidence": [
2026-06-07T22:53:32.2534504Z             {
2026-06-07T22:53:32.2534600Z               "path": "CONTEXT.md",
2026-06-07T22:53:32.2534690Z               "line": 560
2026-06-07T22:53:32.2534771Z             }
2026-06-07T22:53:32.2534857Z           ]
2026-06-07T22:53:32.2534953Z         },
2026-06-07T22:53:32.2535038Z         "impl": {
2026-06-07T22:53:32.2535129Z           "complete": true,
2026-06-07T22:53:32.2535220Z           "evidence": [
2026-06-07T22:53:32.2535305Z             {
2026-06-07T22:53:32.2535410Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2535501Z               "line": 57
2026-06-07T22:53:32.2535582Z             },
2026-06-07T22:53:32.2535667Z             {
2026-06-07T22:53:32.2535768Z               "path": "installer/install.sh",
2026-06-07T22:53:32.2535858Z               "line": 52
2026-06-07T22:53:32.2535944Z             }
2026-06-07T22:53:32.2536025Z           ]
2026-06-07T22:53:32.2536112Z         },
2026-06-07T22:53:32.2536197Z         "int": {
2026-06-07T22:53:32.2536297Z           "complete": true,
2026-06-07T22:53:32.2536384Z           "evidence": [
2026-06-07T22:53:32.2536474Z             {
2026-06-07T22:53:32.2536597Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T22:53:32.2536682Z               "line": 21
2026-06-07T22:53:32.2536777Z             }
2026-06-07T22:53:32.2536861Z           ]
2026-06-07T22:53:32.2537037Z         },
2026-06-07T22:53:32.2537124Z         "unit": {
2026-06-07T22:53:32.2537214Z           "complete": false,
2026-06-07T22:53:32.2537313Z           "evidence": []
2026-06-07T22:53:32.2537396Z         }
2026-06-07T22:53:32.2537481Z       }
2026-06-07T22:53:32.2537567Z     },
2026-06-07T22:53:32.2537653Z     {
2026-06-07T22:53:32.2537744Z       "id": "REQ-INSTALL-2",
2026-06-07T22:53:32.2537886Z       "title": "Marketplace-repackaging-friendly install",
2026-06-07T22:53:32.2537982Z       "requiredStages": [
2026-06-07T22:53:32.2538068Z         "doc"
2026-06-07T22:53:32.2538153Z       ],
2026-06-07T22:53:32.2538243Z       "stages": {
2026-06-07T22:53:32.2538331Z         "doc": {
2026-06-07T22:53:32.2538425Z           "complete": true,
2026-06-07T22:53:32.2538520Z           "evidence": [
2026-06-07T22:53:32.2538601Z             {
2026-06-07T22:53:32.2538698Z               "path": "CONTEXT.md",
2026-06-07T22:53:32.2538792Z               "line": 561
2026-06-07T22:53:32.2538873Z             }
2026-06-07T22:53:32.2538955Z           ]
2026-06-07T22:53:32.2539036Z         },
2026-06-07T22:53:32.2539125Z         "impl": {
2026-06-07T22:53:32.2539215Z           "complete": false,
2026-06-07T22:53:32.2539311Z           "evidence": []
2026-06-07T22:53:32.2539396Z         },
2026-06-07T22:53:32.2539475Z         "int": {
2026-06-07T22:53:32.2539566Z           "complete": false,
2026-06-07T22:53:32.2539657Z           "evidence": []
2026-06-07T22:53:32.2539743Z         },
2026-06-07T22:53:32.2539828Z         "unit": {
2026-06-07T22:53:32.2539919Z           "complete": false,
2026-06-07T22:53:32.2540100Z           "evidence": []
2026-06-07T22:53:32.2540185Z         }
2026-06-07T22:53:32.2540272Z       }
2026-06-07T22:53:32.2540353Z     },
2026-06-07T22:53:32.2540434Z     {
2026-06-07T22:53:32.2540529Z       "id": "REQ-INSTALL-3",
2026-06-07T22:53:32.2540663Z       "title": "Idempotent + interactive-optional first run",
2026-06-07T22:53:32.2540844Z       "requiredStages": [
2026-06-07T22:53:32.2540926Z         "impl",
2026-06-07T22:53:32.2541011Z         "int"
2026-06-07T22:53:32.2541092Z       ],
2026-06-07T22:53:32.2541178Z       "stages": {
2026-06-07T22:53:32.2541260Z         "doc": {
2026-06-07T22:53:32.2541349Z           "complete": false,
2026-06-07T22:53:32.2541439Z           "evidence": []
2026-06-07T22:53:32.2541522Z         },
2026-06-07T22:53:32.2541603Z         "impl": {
2026-06-07T22:53:32.2541692Z           "complete": true,
2026-06-07T22:53:32.2541783Z           "evidence": [
2026-06-07T22:53:32.2541870Z             {
2026-06-07T22:53:32.2541974Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2542073Z               "line": 100
2026-06-07T22:53:32.2542154Z             },
2026-06-07T22:53:32.2542236Z             {
2026-06-07T22:53:32.2542335Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2542425Z               "line": 111
2026-06-07T22:53:32.2542507Z             },
2026-06-07T22:53:32.2542598Z             {
2026-06-07T22:53:32.2542702Z               "path": "installer/install.sh",
2026-06-07T22:53:32.2542788Z               "line": 79
2026-06-07T22:53:32.2542870Z             }
2026-06-07T22:53:32.2542947Z           ]
2026-06-07T22:53:32.2543031Z         },
2026-06-07T22:53:32.2543118Z         "int": {
2026-06-07T22:53:32.2543204Z           "complete": true,
2026-06-07T22:53:32.2543294Z           "evidence": [
2026-06-07T22:53:32.2543374Z             {
2026-06-07T22:53:32.2543495Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T22:53:32.2543580Z               "line": 167
2026-06-07T22:53:32.2543665Z             }
2026-06-07T22:53:32.2543747Z           ]
2026-06-07T22:53:32.2543838Z         },
2026-06-07T22:53:32.2543923Z         "unit": {
2026-06-07T22:53:32.2544014Z           "complete": false,
2026-06-07T22:53:32.2544101Z           "evidence": []
2026-06-07T22:53:32.2544181Z         }
2026-06-07T22:53:32.2544266Z       }
2026-06-07T22:53:32.2544357Z     },
2026-06-07T22:53:32.2544444Z     {
2026-06-07T22:53:32.2544538Z       "id": "REQ-INSTALL-4",
2026-06-07T22:53:32.2545146Z       "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-07T22:53:32.2545245Z       "requiredStages": [
2026-06-07T22:53:32.2545326Z         "impl",
2026-06-07T22:53:32.2545413Z         "unit"
2026-06-07T22:53:32.2545499Z       ],
2026-06-07T22:53:32.2545583Z       "stages": {
2026-06-07T22:53:32.2545670Z         "doc": {
2026-06-07T22:53:32.2545756Z           "complete": false,
2026-06-07T22:53:32.2545856Z           "evidence": []
2026-06-07T22:53:32.2545937Z         },
2026-06-07T22:53:32.2546024Z         "impl": {
2026-06-07T22:53:32.2546113Z           "complete": true,
2026-06-07T22:53:32.2546199Z           "evidence": [
2026-06-07T22:53:32.2546280Z             {
2026-06-07T22:53:32.2546418Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2546509Z               "line": 154
2026-06-07T22:53:32.2546590Z             },
2026-06-07T22:53:32.2546672Z             {
2026-06-07T22:53:32.2546795Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2546881Z               "line": 29
2026-06-07T22:53:32.2547058Z             },
2026-06-07T22:53:32.2547142Z             {
2026-06-07T22:53:32.2547261Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2547347Z               "line": 117
2026-06-07T22:53:32.2547431Z             },
2026-06-07T22:53:32.2547516Z             {
2026-06-07T22:53:32.2547731Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2547822Z               "line": 161
2026-06-07T22:53:32.2547893Z             },
2026-06-07T22:53:32.2547975Z             {
2026-06-07T22:53:32.2548098Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2548183Z               "line": 191
2026-06-07T22:53:32.2548365Z             },
2026-06-07T22:53:32.2548446Z             {
2026-06-07T22:53:32.2548581Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2548680Z               "line": 223
2026-06-07T22:53:32.2548771Z             },
2026-06-07T22:53:32.2548852Z             {
2026-06-07T22:53:32.2548957Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2549047Z               "line": 3414
2026-06-07T22:53:32.2549128Z             }
2026-06-07T22:53:32.2549210Z           ]
2026-06-07T22:53:32.2549296Z         },
2026-06-07T22:53:32.2549380Z         "int": {
2026-06-07T22:53:32.2549471Z           "complete": false,
2026-06-07T22:53:32.2549573Z           "evidence": []
2026-06-07T22:53:32.2549657Z         },
2026-06-07T22:53:32.2549742Z         "unit": {
2026-06-07T22:53:32.2549847Z           "complete": true,
2026-06-07T22:53:32.2549932Z           "evidence": [
2026-06-07T22:53:32.2550022Z             {
2026-06-07T22:53:32.2550154Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2550246Z               "line": 334
2026-06-07T22:53:32.2550317Z             },
2026-06-07T22:53:32.2550402Z             {
2026-06-07T22:53:32.2550551Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2550656Z               "line": 269
2026-06-07T22:53:32.2550736Z             },
2026-06-07T22:53:32.2550818Z             {
2026-06-07T22:53:32.2550941Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2551036Z               "line": 310
2026-06-07T22:53:32.2551108Z             },
2026-06-07T22:53:32.2551185Z             {
2026-06-07T22:53:32.2551314Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-07T22:53:32.2551409Z               "line": 330
2026-06-07T22:53:32.2551486Z             },
2026-06-07T22:53:32.2551566Z             {
2026-06-07T22:53:32.2551671Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2551758Z               "line": 4977
2026-06-07T22:53:32.2551853Z             }
2026-06-07T22:53:32.2551952Z           ]
2026-06-07T22:53:32.2552062Z         }
2026-06-07T22:53:32.2552172Z       }
2026-06-07T22:53:32.2552257Z     },
2026-06-07T22:53:32.2552338Z     {
2026-06-07T22:53:32.2552435Z       "id": "REQ-INSTALL-5",
2026-06-07T22:53:32.2552896Z       "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-07T22:53:32.2552995Z       "requiredStages": [
2026-06-07T22:53:32.2553077Z         "impl",
2026-06-07T22:53:32.2553163Z         "int"
2026-06-07T22:53:32.2553243Z       ],
2026-06-07T22:53:32.2553338Z       "stages": {
2026-06-07T22:53:32.2553425Z         "doc": {
2026-06-07T22:53:32.2553516Z           "complete": false,
2026-06-07T22:53:32.2553605Z           "evidence": []
2026-06-07T22:53:32.2553697Z         },
2026-06-07T22:53:32.2553783Z         "impl": {
2026-06-07T22:53:32.2553873Z           "complete": true,
2026-06-07T22:53:32.2553968Z           "evidence": [
2026-06-07T22:53:32.2554055Z             {
2026-06-07T22:53:32.2554158Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2554245Z               "line": 5
2026-06-07T22:53:32.2554332Z             },
2026-06-07T22:53:32.2554413Z             {
2026-06-07T22:53:32.2554517Z               "path": "installer/install.sh",
2026-06-07T22:53:32.2554603Z               "line": 6
2026-06-07T22:53:32.2554685Z             }
2026-06-07T22:53:32.2554774Z           ]
2026-06-07T22:53:32.2554855Z         },
2026-06-07T22:53:32.2554937Z         "int": {
2026-06-07T22:53:32.2555033Z           "complete": true,
2026-06-07T22:53:32.2555197Z           "evidence": [
2026-06-07T22:53:32.2555288Z             {
2026-06-07T22:53:32.2555402Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-07T22:53:32.2555495Z               "line": 22
2026-06-07T22:53:32.2555576Z             }
2026-06-07T22:53:32.2555659Z           ]
2026-06-07T22:53:32.2555911Z         },
2026-06-07T22:53:32.2555997Z         "unit": {
2026-06-07T22:53:32.2556092Z           "complete": false,
2026-06-07T22:53:32.2556177Z           "evidence": []
2026-06-07T22:53:32.2556259Z         }
2026-06-07T22:53:32.2556340Z       }
2026-06-07T22:53:32.2556425Z     },
2026-06-07T22:53:32.2556511Z     {
2026-06-07T22:53:32.2556603Z       "id": "REQ-INSTALL-6",
2026-06-07T22:53:32.2557940Z       "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-07T22:53:32.2558043Z       "requiredStages": [
2026-06-07T22:53:32.2558128Z         "impl",
2026-06-07T22:53:32.2558211Z         "unit"
2026-06-07T22:53:32.2558292Z       ],
2026-06-07T22:53:32.2558391Z       "stages": {
2026-06-07T22:53:32.2558477Z         "doc": {
2026-06-07T22:53:32.2558573Z           "complete": false,
2026-06-07T22:53:32.2558663Z           "evidence": []
2026-06-07T22:53:32.2558748Z         },
2026-06-07T22:53:32.2558836Z         "impl": {
2026-06-07T22:53:32.2558925Z           "complete": true,
2026-06-07T22:53:32.2559020Z           "evidence": [
2026-06-07T22:53:32.2559102Z             {
2026-06-07T22:53:32.2559226Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2559316Z               "line": 59
2026-06-07T22:53:32.2559397Z             },
2026-06-07T22:53:32.2559485Z             {
2026-06-07T22:53:32.2559607Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2559698Z               "line": 365
2026-06-07T22:53:32.2559780Z             },
2026-06-07T22:53:32.2559870Z             {
2026-06-07T22:53:32.2559998Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2560080Z               "line": 138
2026-06-07T22:53:32.2560171Z             },
2026-06-07T22:53:32.2560255Z             {
2026-06-07T22:53:32.2560374Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2560460Z               "line": 223
2026-06-07T22:53:32.2560548Z             },
2026-06-07T22:53:32.2560629Z             {
2026-06-07T22:53:32.2560734Z               "path": "installer/install.sh",
2026-06-07T22:53:32.2560821Z               "line": 104
2026-06-07T22:53:32.2560905Z             }
2026-06-07T22:53:32.2560991Z           ]
2026-06-07T22:53:32.2561073Z         },
2026-06-07T22:53:32.2561159Z         "int": {
2026-06-07T22:53:32.2561254Z           "complete": false,
2026-06-07T22:53:32.2561349Z           "evidence": []
2026-06-07T22:53:32.2561435Z         },
2026-06-07T22:53:32.2561516Z         "unit": {
2026-06-07T22:53:32.2561615Z           "complete": true,
2026-06-07T22:53:32.2561703Z           "evidence": [
2026-06-07T22:53:32.2561793Z             {
2026-06-07T22:53:32.2561912Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-07T22:53:32.2562008Z               "line": 673
2026-06-07T22:53:32.2564033Z             }
2026-06-07T22:53:32.2564137Z           ]
2026-06-07T22:53:32.2564223Z         }
2026-06-07T22:53:32.2564310Z       }
2026-06-07T22:53:32.2564395Z     },
2026-06-07T22:53:32.2564475Z     {
2026-06-07T22:53:32.2564577Z       "id": "REQ-INSTALL-7",
2026-06-07T22:53:32.2565886Z       "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-07T22:53:32.2565985Z       "requiredStages": [
2026-06-07T22:53:32.2566074Z         "impl"
2026-06-07T22:53:32.2566161Z       ],
2026-06-07T22:53:32.2566252Z       "stages": {
2026-06-07T22:53:32.2566337Z         "doc": {
2026-06-07T22:53:32.2566524Z           "complete": false,
2026-06-07T22:53:32.2566619Z           "evidence": []
2026-06-07T22:53:32.2566699Z         },
2026-06-07T22:53:32.2566785Z         "impl": {
2026-06-07T22:53:32.2566877Z           "complete": true,
2026-06-07T22:53:32.2567062Z           "evidence": [
2026-06-07T22:53:32.2567148Z             {
2026-06-07T22:53:32.2567257Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2567347Z               "line": 2400
2026-06-07T22:53:32.2567434Z             },
2026-06-07T22:53:32.2567516Z             {
2026-06-07T22:53:32.2567630Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2567720Z               "line": 157
2026-06-07T22:53:32.2567812Z             }
2026-06-07T22:53:32.2567896Z           ]
2026-06-07T22:53:32.2567982Z         },
2026-06-07T22:53:32.2568064Z         "int": {
2026-06-07T22:53:32.2568160Z           "complete": false,
2026-06-07T22:53:32.2568248Z           "evidence": []
2026-06-07T22:53:32.2568334Z         },
2026-06-07T22:53:32.2568434Z         "unit": {
2026-06-07T22:53:32.2568523Z           "complete": false,
2026-06-07T22:53:32.2568613Z           "evidence": []
2026-06-07T22:53:32.2568698Z         }
2026-06-07T22:53:32.2568781Z       }
2026-06-07T22:53:32.2568862Z     },
2026-06-07T22:53:32.2568946Z     {
2026-06-07T22:53:32.2569042Z       "id": "REQ-INSTALL-8",
2026-06-07T22:53:32.2570045Z       "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-07T22:53:32.2570148Z       "requiredStages": [
2026-06-07T22:53:32.2570234Z         "impl"
2026-06-07T22:53:32.2570311Z       ],
2026-06-07T22:53:32.2570397Z       "stages": {
2026-06-07T22:53:32.2570477Z         "doc": {
2026-06-07T22:53:32.2570573Z           "complete": false,
2026-06-07T22:53:32.2570664Z           "evidence": []
2026-06-07T22:53:32.2570745Z         },
2026-06-07T22:53:32.2570834Z         "impl": {
2026-06-07T22:53:32.2570919Z           "complete": true,
2026-06-07T22:53:32.2571006Z           "evidence": [
2026-06-07T22:53:32.2571090Z             {
2026-06-07T22:53:32.2571194Z               "path": "installer/install.ps1",
2026-06-07T22:53:32.2571279Z               "line": 184
2026-06-07T22:53:32.2571362Z             },
2026-06-07T22:53:32.2571447Z             {
2026-06-07T22:53:32.2571546Z               "path": "installer/install.sh",
2026-06-07T22:53:32.2571638Z               "line": 121
2026-06-07T22:53:32.2571724Z             }
2026-06-07T22:53:32.2571804Z           ]
2026-06-07T22:53:32.2571885Z         },
2026-06-07T22:53:32.2571976Z         "int": {
2026-06-07T22:53:32.2572071Z           "complete": false,
2026-06-07T22:53:32.2572157Z           "evidence": []
2026-06-07T22:53:32.2572253Z         },
2026-06-07T22:53:32.2572334Z         "unit": {
2026-06-07T22:53:32.2572424Z           "complete": false,
2026-06-07T22:53:32.2572509Z           "evidence": []
2026-06-07T22:53:32.2572597Z         }
2026-06-07T22:53:32.2572682Z       }
2026-06-07T22:53:32.2572767Z     },
2026-06-07T22:53:32.2572849Z     {
2026-06-07T22:53:32.2572945Z       "id": "REQ-MANIFEST-1",
2026-06-07T22:53:32.2573125Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-07T22:53:32.2573217Z       "requiredStages": [
2026-06-07T22:53:32.2573302Z         "doc",
2026-06-07T22:53:32.2573387Z         "impl",
2026-06-07T22:53:32.2573468Z         "unit"
2026-06-07T22:53:32.2573551Z       ],
2026-06-07T22:53:32.2573734Z       "stages": {
2026-06-07T22:53:32.2573820Z         "doc": {
2026-06-07T22:53:32.2573912Z           "complete": true,
2026-06-07T22:53:32.2574006Z           "evidence": [
2026-06-07T22:53:32.2574091Z             {
2026-06-07T22:53:32.2574197Z               "path": "docs/MANIFEST.md",
2026-06-07T22:53:32.2574378Z               "line": 19
2026-06-07T22:53:32.2574464Z             }
2026-06-07T22:53:32.2574550Z           ]
2026-06-07T22:53:32.2574632Z         },
2026-06-07T22:53:32.2574721Z         "impl": {
2026-06-07T22:53:32.2574813Z           "complete": true,
2026-06-07T22:53:32.2574903Z           "evidence": [
2026-06-07T22:53:32.2574989Z             {
2026-06-07T22:53:32.2575122Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2575241Z               "line": 18
2026-06-07T22:53:32.2575337Z             }
2026-06-07T22:53:32.2575418Z           ]
2026-06-07T22:53:32.2575500Z         },
2026-06-07T22:53:32.2575580Z         "int": {
2026-06-07T22:53:32.2575666Z           "complete": false,
2026-06-07T22:53:32.2575777Z           "evidence": []
2026-06-07T22:53:32.2575853Z         },
2026-06-07T22:53:32.2575932Z         "unit": {
2026-06-07T22:53:32.2576033Z           "complete": true,
2026-06-07T22:53:32.2576120Z           "evidence": [
2026-06-07T22:53:32.2576210Z             {
2026-06-07T22:53:32.2576317Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2576408Z               "line": 746
2026-06-07T22:53:32.2576494Z             },
2026-06-07T22:53:32.2576569Z             {
2026-06-07T22:53:32.2576692Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2576784Z               "line": 860
2026-06-07T22:53:32.2576884Z             },
2026-06-07T22:53:32.2577132Z             {
2026-06-07T22:53:32.2577245Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2577335Z               "line": 872
2026-06-07T22:53:32.2577423Z             },
2026-06-07T22:53:32.2577532Z             {
2026-06-07T22:53:32.2577655Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2577742Z               "line": 883
2026-06-07T22:53:32.2577832Z             },
2026-06-07T22:53:32.2577912Z             {
2026-06-07T22:53:32.2578028Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2578123Z               "line": 900
2026-06-07T22:53:32.2578209Z             },
2026-06-07T22:53:32.2578294Z             {
2026-06-07T22:53:32.2578414Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2578499Z               "line": 914
2026-06-07T22:53:32.2578580Z             },
2026-06-07T22:53:32.2578672Z             {
2026-06-07T22:53:32.2578790Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2578880Z               "line": 929
2026-06-07T22:53:32.2578961Z             },
2026-06-07T22:53:32.2579042Z             {
2026-06-07T22:53:32.2579154Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2579248Z               "line": 944
2026-06-07T22:53:32.2579336Z             },
2026-06-07T22:53:32.2579417Z             {
2026-06-07T22:53:32.2579530Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2579617Z               "line": 959
2026-06-07T22:53:32.2579702Z             },
2026-06-07T22:53:32.2579788Z             {
2026-06-07T22:53:32.2579902Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2579994Z               "line": 970
2026-06-07T22:53:32.2580080Z             }
2026-06-07T22:53:32.2580164Z           ]
2026-06-07T22:53:32.2580247Z         }
2026-06-07T22:53:32.2580337Z       }
2026-06-07T22:53:32.2580418Z     },
2026-06-07T22:53:32.2580499Z     {
2026-06-07T22:53:32.2580595Z       "id": "REQ-MIGRATE-1",
2026-06-07T22:53:32.2580756Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-07T22:53:32.2580856Z       "requiredStages": [],
2026-06-07T22:53:32.2580943Z       "stages": {
2026-06-07T22:53:32.2581133Z         "doc": {
2026-06-07T22:53:32.2581229Z           "complete": false,
2026-06-07T22:53:32.2581319Z           "evidence": []
2026-06-07T22:53:32.2581409Z         },
2026-06-07T22:53:32.2581494Z         "impl": {
2026-06-07T22:53:32.2581585Z           "complete": false,
2026-06-07T22:53:32.2581768Z           "evidence": []
2026-06-07T22:53:32.2581849Z         },
2026-06-07T22:53:32.2581936Z         "int": {
2026-06-07T22:53:32.2582030Z           "complete": false,
2026-06-07T22:53:32.2582120Z           "evidence": []
2026-06-07T22:53:32.2582208Z         },
2026-06-07T22:53:32.2582294Z         "unit": {
2026-06-07T22:53:32.2582383Z           "complete": false,
2026-06-07T22:53:32.2582470Z           "evidence": []
2026-06-07T22:53:32.2582555Z         }
2026-06-07T22:53:32.2582636Z       }
2026-06-07T22:53:32.2582727Z     },
2026-06-07T22:53:32.2582808Z     {
2026-06-07T22:53:32.2582899Z       "id": "REQ-MSG-1",
2026-06-07T22:53:32.2583342Z       "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-07T22:53:32.2583438Z       "requiredStages": [
2026-06-07T22:53:32.2583523Z         "impl",
2026-06-07T22:53:32.2583609Z         "unit",
2026-06-07T22:53:32.2583695Z         "int"
2026-06-07T22:53:32.2583787Z       ],
2026-06-07T22:53:32.2583876Z       "stages": {
2026-06-07T22:53:32.2583966Z         "doc": {
2026-06-07T22:53:32.2584053Z           "complete": false,
2026-06-07T22:53:32.2584144Z           "evidence": []
2026-06-07T22:53:32.2584223Z         },
2026-06-07T22:53:32.2584309Z         "impl": {
2026-06-07T22:53:32.2584399Z           "complete": true,
2026-06-07T22:53:32.2584491Z           "evidence": [
2026-06-07T22:53:32.2584571Z             {
2026-06-07T22:53:32.2584685Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2584777Z               "line": 28
2026-06-07T22:53:32.2584863Z             },
2026-06-07T22:53:32.2584943Z             {
2026-06-07T22:53:32.2585063Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2585149Z               "line": 94
2026-06-07T22:53:32.2585234Z             },
2026-06-07T22:53:32.2585314Z             {
2026-06-07T22:53:32.2585425Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2585525Z               "line": 127
2026-06-07T22:53:32.2585605Z             },
2026-06-07T22:53:32.2585687Z             {
2026-06-07T22:53:32.2585797Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2585887Z               "line": 149
2026-06-07T22:53:32.2585968Z             },
2026-06-07T22:53:32.2586050Z             {
2026-06-07T22:53:32.2586164Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2586249Z               "line": 174
2026-06-07T22:53:32.2586337Z             },
2026-06-07T22:53:32.2586417Z             {
2026-06-07T22:53:32.2586535Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2586632Z               "line": 18
2026-06-07T22:53:32.2586718Z             },
2026-06-07T22:53:32.2586802Z             {
2026-06-07T22:53:32.2586916Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2587091Z               "line": 13
2026-06-07T22:53:32.2587176Z             },
2026-06-07T22:53:32.2587266Z             {
2026-06-07T22:53:32.2587372Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2587462Z               "line": 61
2026-06-07T22:53:32.2587542Z             },
2026-06-07T22:53:32.2587625Z             {
2026-06-07T22:53:32.2587734Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T22:53:32.2587819Z               "line": 10
2026-06-07T22:53:32.2587901Z             }
2026-06-07T22:53:32.2587983Z           ]
2026-06-07T22:53:32.2588067Z         },
2026-06-07T22:53:32.2588148Z         "int": {
2026-06-07T22:53:32.2588240Z           "complete": true,
2026-06-07T22:53:32.2588330Z           "evidence": [
2026-06-07T22:53:32.2588411Z             {
2026-06-07T22:53:32.2588664Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T22:53:32.2588750Z               "line": 9
2026-06-07T22:53:32.2588840Z             },
2026-06-07T22:53:32.2588922Z             {
2026-06-07T22:53:32.2589049Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T22:53:32.2589237Z               "line": 70
2026-06-07T22:53:32.2589313Z             },
2026-06-07T22:53:32.2589383Z             {
2026-06-07T22:53:32.2589511Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T22:53:32.2589606Z               "line": 129
2026-06-07T22:53:32.2589681Z             }
2026-06-07T22:53:32.2589771Z           ]
2026-06-07T22:53:32.2589896Z         },
2026-06-07T22:53:32.2589991Z         "unit": {
2026-06-07T22:53:32.2590086Z           "complete": true,
2026-06-07T22:53:32.2590177Z           "evidence": [
2026-06-07T22:53:32.2590277Z             {
2026-06-07T22:53:32.2590390Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2590501Z               "line": 203
2026-06-07T22:53:32.2590592Z             },
2026-06-07T22:53:32.2590673Z             {
2026-06-07T22:53:32.2590787Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2590869Z               "line": 232
2026-06-07T22:53:32.2590954Z             },
2026-06-07T22:53:32.2591039Z             {
2026-06-07T22:53:32.2591150Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2591254Z               "line": 277
2026-06-07T22:53:32.2591340Z             },
2026-06-07T22:53:32.2591426Z             {
2026-06-07T22:53:32.2591532Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2591621Z               "line": 300
2026-06-07T22:53:32.2591707Z             },
2026-06-07T22:53:32.2591789Z             {
2026-06-07T22:53:32.2591902Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-07T22:53:32.2591988Z               "line": 324
2026-06-07T22:53:32.2592073Z             },
2026-06-07T22:53:32.2592159Z             {
2026-06-07T22:53:32.2592276Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2592366Z               "line": 203
2026-06-07T22:53:32.2592448Z             },
2026-06-07T22:53:32.2592535Z             {
2026-06-07T22:53:32.2592648Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2592743Z               "line": 236
2026-06-07T22:53:32.2592829Z             },
2026-06-07T22:53:32.2592910Z             {
2026-06-07T22:53:32.2593025Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2593111Z               "line": 250
2026-06-07T22:53:32.2593192Z             },
2026-06-07T22:53:32.2593272Z             {
2026-06-07T22:53:32.2593383Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2593473Z               "line": 262
2026-06-07T22:53:32.2593554Z             },
2026-06-07T22:53:32.2593644Z             {
2026-06-07T22:53:32.2593750Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2593844Z               "line": 158
2026-06-07T22:53:32.2593931Z             },
2026-06-07T22:53:32.2594012Z             {
2026-06-07T22:53:32.2594117Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-07T22:53:32.2594207Z               "line": 241
2026-06-07T22:53:32.2594288Z             },
2026-06-07T22:53:32.2594380Z             {
2026-06-07T22:53:32.2594483Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T22:53:32.2594570Z               "line": 68
2026-06-07T22:53:32.2594642Z             },
2026-06-07T22:53:32.2594728Z             {
2026-06-07T22:53:32.2594845Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T22:53:32.2594945Z               "line": 77
2026-06-07T22:53:32.2595027Z             },
2026-06-07T22:53:32.2595112Z             {
2026-06-07T22:53:32.2595221Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T22:53:32.2595308Z               "line": 83
2026-06-07T22:53:32.2595389Z             },
2026-06-07T22:53:32.2595474Z             {
2026-06-07T22:53:32.2595656Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-07T22:53:32.2595747Z               "line": 102
2026-06-07T22:53:32.2595832Z             }
2026-06-07T22:53:32.2595913Z           ]
2026-06-07T22:53:32.2596000Z         }
2026-06-07T22:53:32.2596080Z       }
2026-06-07T22:53:32.2596166Z     },
2026-06-07T22:53:32.2596314Z     {
2026-06-07T22:53:32.2596404Z       "id": "REQ-MSG-2",
2026-06-07T22:53:32.2596667Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-07T22:53:32.2596757Z       "requiredStages": [
2026-06-07T22:53:32.2596843Z         "impl",
2026-06-07T22:53:32.2596930Z         "unit"
2026-06-07T22:53:32.2597100Z       ],
2026-06-07T22:53:32.2597192Z       "stages": {
2026-06-07T22:53:32.2597273Z         "doc": {
2026-06-07T22:53:32.2597372Z           "complete": false,
2026-06-07T22:53:32.2597457Z           "evidence": []
2026-06-07T22:53:32.2597543Z         },
2026-06-07T22:53:32.2597623Z         "impl": {
2026-06-07T22:53:32.2597727Z           "complete": true,
2026-06-07T22:53:32.2597817Z           "evidence": [
2026-06-07T22:53:32.2597904Z             {
2026-06-07T22:53:32.2598008Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2598097Z               "line": 11
2026-06-07T22:53:32.2598190Z             },
2026-06-07T22:53:32.2598271Z             {
2026-06-07T22:53:32.2598379Z               "path": "crates/spt/src/main.rs",
2026-06-07T22:53:32.2598470Z               "line": 8
2026-06-07T22:53:32.2598552Z             }
2026-06-07T22:53:32.2598637Z           ]
2026-06-07T22:53:32.2598718Z         },
2026-06-07T22:53:32.2598805Z         "int": {
2026-06-07T22:53:32.2598895Z           "complete": false,
2026-06-07T22:53:32.2598985Z           "evidence": []
2026-06-07T22:53:32.2599076Z         },
2026-06-07T22:53:32.2599158Z         "unit": {
2026-06-07T22:53:32.2599253Z           "complete": true,
2026-06-07T22:53:32.2599343Z           "evidence": [
2026-06-07T22:53:32.2599424Z             {
2026-06-07T22:53:32.2599534Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2599624Z               "line": 4495
2026-06-07T22:53:32.2599715Z             },
2026-06-07T22:53:32.2599797Z             {
2026-06-07T22:53:32.2599901Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2600000Z               "line": 4544
2026-06-07T22:53:32.2600086Z             },
2026-06-07T22:53:32.2600171Z             {
2026-06-07T22:53:32.2600284Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2600369Z               "line": 4567
2026-06-07T22:53:32.2600451Z             },
2026-06-07T22:53:32.2600537Z             {
2026-06-07T22:53:32.2600636Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2600732Z               "line": 5997
2026-06-07T22:53:32.2600819Z             },
2026-06-07T22:53:32.2600899Z             {
2026-06-07T22:53:32.2601004Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2601095Z               "line": 6006
2026-06-07T22:53:32.2601190Z             },
2026-06-07T22:53:32.2601270Z             {
2026-06-07T22:53:32.2601377Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2601467Z               "line": 6020
2026-06-07T22:53:32.2601552Z             }
2026-06-07T22:53:32.2601638Z           ]
2026-06-07T22:53:32.2601720Z         }
2026-06-07T22:53:32.2601805Z       }
2026-06-07T22:53:32.2601886Z     },
2026-06-07T22:53:32.2601972Z     {
2026-06-07T22:53:32.2602063Z       "id": "REQ-MSG-3",
2026-06-07T22:53:32.2602440Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-07T22:53:32.2602533Z       "requiredStages": [
2026-06-07T22:53:32.2602618Z         "impl",
2026-06-07T22:53:32.2602705Z         "unit",
2026-06-07T22:53:32.2602789Z         "int"
2026-06-07T22:53:32.2602869Z       ],
2026-06-07T22:53:32.2602955Z       "stages": {
2026-06-07T22:53:32.2603042Z         "doc": {
2026-06-07T22:53:32.2603236Z           "complete": false,
2026-06-07T22:53:32.2603328Z           "evidence": []
2026-06-07T22:53:32.2603424Z         },
2026-06-07T22:53:32.2603508Z         "impl": {
2026-06-07T22:53:32.2603599Z           "complete": true,
2026-06-07T22:53:32.2603686Z           "evidence": [
2026-06-07T22:53:32.2603776Z             {
2026-06-07T22:53:32.2603986Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-07T22:53:32.2604076Z               "line": 19
2026-06-07T22:53:32.2604166Z             },
2026-06-07T22:53:32.2604248Z             {
2026-06-07T22:53:32.2604366Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2604452Z               "line": 21
2026-06-07T22:53:32.2604539Z             },
2026-06-07T22:53:32.2604626Z             {
2026-06-07T22:53:32.2604733Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2604825Z               "line": 48
2026-06-07T22:53:32.2604907Z             },
2026-06-07T22:53:32.2604992Z             {
2026-06-07T22:53:32.2605105Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2605198Z               "line": 142
2026-06-07T22:53:32.2605284Z             }
2026-06-07T22:53:32.2605362Z           ]
2026-06-07T22:53:32.2605448Z         },
2026-06-07T22:53:32.2605534Z         "int": {
2026-06-07T22:53:32.2605630Z           "complete": true,
2026-06-07T22:53:32.2605720Z           "evidence": [
2026-06-07T22:53:32.2605805Z             {
2026-06-07T22:53:32.2605944Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T22:53:32.2606029Z               "line": 10
2026-06-07T22:53:32.2606115Z             },
2026-06-07T22:53:32.2606198Z             {
2026-06-07T22:53:32.2606330Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-07T22:53:32.2606421Z               "line": 70
2026-06-07T22:53:32.2606503Z             }
2026-06-07T22:53:32.2606588Z           ]
2026-06-07T22:53:32.2606669Z         },
2026-06-07T22:53:32.2606754Z         "unit": {
2026-06-07T22:53:32.2606851Z           "complete": true,
2026-06-07T22:53:32.2607041Z           "evidence": [
2026-06-07T22:53:32.2607127Z             {
2026-06-07T22:53:32.2607236Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2607327Z               "line": 196
2026-06-07T22:53:32.2607408Z             },
2026-06-07T22:53:32.2607500Z             {
2026-06-07T22:53:32.2607608Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2607699Z               "line": 215
2026-06-07T22:53:32.2607791Z             },
2026-06-07T22:53:32.2607871Z             {
2026-06-07T22:53:32.2607979Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-07T22:53:32.2608070Z               "line": 237
2026-06-07T22:53:32.2608151Z             }
2026-06-07T22:53:32.2608235Z           ]
2026-06-07T22:53:32.2608329Z         }
2026-06-07T22:53:32.2608415Z       }
2026-06-07T22:53:32.2608493Z     },
2026-06-07T22:53:32.2608578Z     {
2026-06-07T22:53:32.2608667Z       "id": "REQ-MSG-4",
2026-06-07T22:53:32.2609479Z       "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-07T22:53:32.2609574Z       "requiredStages": [
2026-06-07T22:53:32.2609665Z         "impl",
2026-06-07T22:53:32.2609751Z         "unit",
2026-06-07T22:53:32.2609831Z         "int"
2026-06-07T22:53:32.2609913Z       ],
2026-06-07T22:53:32.2609999Z       "stages": {
2026-06-07T22:53:32.2610085Z         "doc": {
2026-06-07T22:53:32.2610175Z           "complete": false,
2026-06-07T22:53:32.2610265Z           "evidence": []
2026-06-07T22:53:32.2610348Z         },
2026-06-07T22:53:32.2610433Z         "impl": {
2026-06-07T22:53:32.2610522Z           "complete": true,
2026-06-07T22:53:32.2610603Z           "evidence": [
2026-06-07T22:53:32.2610689Z             {
2026-06-07T22:53:32.2610801Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2610987Z               "line": 16
2026-06-07T22:53:32.2611078Z             },
2026-06-07T22:53:32.2611159Z             {
2026-06-07T22:53:32.2611263Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2611350Z               "line": 25
2026-06-07T22:53:32.2611436Z             },
2026-06-07T22:53:32.2611602Z             {
2026-06-07T22:53:32.2611708Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2611797Z               "line": 47
2026-06-07T22:53:32.2611878Z             },
2026-06-07T22:53:32.2611960Z             {
2026-06-07T22:53:32.2612069Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2612159Z               "line": 363
2026-06-07T22:53:32.2612242Z             },
2026-06-07T22:53:32.2612323Z             {
2026-06-07T22:53:32.2612427Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2612513Z               "line": 1806
2026-06-07T22:53:32.2612599Z             }
2026-06-07T22:53:32.2612680Z           ]
2026-06-07T22:53:32.2612770Z         },
2026-06-07T22:53:32.2612856Z         "int": {
2026-06-07T22:53:32.2612952Z           "complete": true,
2026-06-07T22:53:32.2613042Z           "evidence": [
2026-06-07T22:53:32.2613122Z             {
2026-06-07T22:53:32.2613246Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T22:53:32.2613340Z               "line": 93
2026-06-07T22:53:32.2613420Z             },
2026-06-07T22:53:32.2613501Z             {
2026-06-07T22:53:32.2613626Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-07T22:53:32.2613716Z               "line": 123
2026-06-07T22:53:32.2613797Z             }
2026-06-07T22:53:32.2613883Z           ]
2026-06-07T22:53:32.2613964Z         },
2026-06-07T22:53:32.2614045Z         "unit": {
2026-06-07T22:53:32.2614135Z           "complete": true,
2026-06-07T22:53:32.2614222Z           "evidence": [
2026-06-07T22:53:32.2614307Z             {
2026-06-07T22:53:32.2614411Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2614503Z               "line": 62
2026-06-07T22:53:32.2614589Z             },
2026-06-07T22:53:32.2614670Z             {
2026-06-07T22:53:32.2614779Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2614861Z               "line": 73
2026-06-07T22:53:32.2614946Z             },
2026-06-07T22:53:32.2615031Z             {
2026-06-07T22:53:32.2615138Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2615223Z               "line": 84
2026-06-07T22:53:32.2615308Z             },
2026-06-07T22:53:32.2615394Z             {
2026-06-07T22:53:32.2615495Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2615580Z               "line": 96
2026-06-07T22:53:32.2615661Z             },
2026-06-07T22:53:32.2615743Z             {
2026-06-07T22:53:32.2615848Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2615941Z               "line": 105
2026-06-07T22:53:32.2616027Z             },
2026-06-07T22:53:32.2616108Z             {
2026-06-07T22:53:32.2616214Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-07T22:53:32.2616299Z               "line": 120
2026-06-07T22:53:32.2616385Z             }
2026-06-07T22:53:32.2616462Z           ]
2026-06-07T22:53:32.2616548Z         }
2026-06-07T22:53:32.2616633Z       }
2026-06-07T22:53:32.2616719Z     },
2026-06-07T22:53:32.2616796Z     {
2026-06-07T22:53:32.2616886Z       "id": "REQ-NET-1",
2026-06-07T22:53:32.2617152Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-07T22:53:32.2617243Z       "requiredStages": [
2026-06-07T22:53:32.2617334Z         "impl",
2026-06-07T22:53:32.2617421Z         "unit",
2026-06-07T22:53:32.2617501Z         "int"
2026-06-07T22:53:32.2617582Z       ],
2026-06-07T22:53:32.2617663Z       "stages": {
2026-06-07T22:53:32.2617750Z         "doc": {
2026-06-07T22:53:32.2617839Z           "complete": false,
2026-06-07T22:53:32.2617930Z           "evidence": []
2026-06-07T22:53:32.2618012Z         },
2026-06-07T22:53:32.2618206Z         "impl": {
2026-06-07T22:53:32.2618303Z           "complete": true,
2026-06-07T22:53:32.2618389Z           "evidence": [
2026-06-07T22:53:32.2618472Z             {
2026-06-07T22:53:32.2618591Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2618687Z               "line": 54
2026-06-07T22:53:32.2618866Z             },
2026-06-07T22:53:32.2618947Z             {
2026-06-07T22:53:32.2619071Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2619156Z               "line": 554
2026-06-07T22:53:32.2619237Z             },
2026-06-07T22:53:32.2619320Z             {
2026-06-07T22:53:32.2619434Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-07T22:53:32.2619524Z               "line": 69
2026-06-07T22:53:32.2619605Z             },
2026-06-07T22:53:32.2619686Z             {
2026-06-07T22:53:32.2619800Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2619891Z               "line": 65
2026-06-07T22:53:32.2619982Z             },
2026-06-07T22:53:32.2620068Z             {
2026-06-07T22:53:32.2620182Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2620274Z               "line": 127
2026-06-07T22:53:32.2620353Z             },
2026-06-07T22:53:32.2620435Z             {
2026-06-07T22:53:32.2620559Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2620645Z               "line": 143
2026-06-07T22:53:32.2620725Z             },
2026-06-07T22:53:32.2620812Z             {
2026-06-07T22:53:32.2620923Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2621016Z               "line": 158
2026-06-07T22:53:32.2621096Z             },
2026-06-07T22:53:32.2621182Z             {
2026-06-07T22:53:32.2621291Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2621380Z               "line": 235
2026-06-07T22:53:32.2621461Z             },
2026-06-07T22:53:32.2621542Z             {
2026-06-07T22:53:32.2621662Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2621747Z               "line": 270
2026-06-07T22:53:32.2621833Z             },
2026-06-07T22:53:32.2621915Z             {
2026-06-07T22:53:32.2622028Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2622124Z               "line": 276
2026-06-07T22:53:32.2622201Z             },
2026-06-07T22:53:32.2622286Z             {
2026-06-07T22:53:32.2622400Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2622487Z               "line": 282
2026-06-07T22:53:32.2622582Z             },
2026-06-07T22:53:32.2622663Z             {
2026-06-07T22:53:32.2622778Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2622864Z               "line": 298
2026-06-07T22:53:32.2622949Z             },
2026-06-07T22:53:32.2623030Z             {
2026-06-07T22:53:32.2623151Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2623240Z               "line": 318
2026-06-07T22:53:32.2623326Z             },
2026-06-07T22:53:32.2623412Z             {
2026-06-07T22:53:32.2623522Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2623611Z               "line": 35
2026-06-07T22:53:32.2623696Z             },
2026-06-07T22:53:32.2623783Z             {
2026-06-07T22:53:32.2623905Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2623994Z               "line": 85
2026-06-07T22:53:32.2624080Z             },
2026-06-07T22:53:32.2624158Z             {
2026-06-07T22:53:32.2624271Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2624357Z               "line": 135
2026-06-07T22:53:32.2624438Z             },
2026-06-07T22:53:32.2624519Z             {
2026-06-07T22:53:32.2624628Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2624715Z               "line": 1654
2026-06-07T22:53:32.2624796Z             },
2026-06-07T22:53:32.2624882Z             {
2026-06-07T22:53:32.2625068Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2625158Z               "line": 17
2026-06-07T22:53:32.2625244Z             }
2026-06-07T22:53:32.2625325Z           ]
2026-06-07T22:53:32.2625407Z         },
2026-06-07T22:53:32.2625487Z         "int": {
2026-06-07T22:53:32.2625578Z           "complete": true,
2026-06-07T22:53:32.2625736Z           "evidence": [
2026-06-07T22:53:32.2625821Z             {
2026-06-07T22:53:32.2625950Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2626036Z               "line": 330
2026-06-07T22:53:32.2626117Z             },
2026-06-07T22:53:32.2626196Z             {
2026-06-07T22:53:32.2626313Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2626399Z               "line": 603
2026-06-07T22:53:32.2626483Z             },
2026-06-07T22:53:32.2626568Z             {
2026-06-07T22:53:32.2626678Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2626769Z               "line": 876
2026-06-07T22:53:32.2626859Z             }
2026-06-07T22:53:32.2627037Z           ]
2026-06-07T22:53:32.2627118Z         },
2026-06-07T22:53:32.2627207Z         "unit": {
2026-06-07T22:53:32.2627303Z           "complete": true,
2026-06-07T22:53:32.2627389Z           "evidence": [
2026-06-07T22:53:32.2627474Z             {
2026-06-07T22:53:32.2627589Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2627680Z               "line": 610
2026-06-07T22:53:32.2627761Z             },
2026-06-07T22:53:32.2627841Z             {
2026-06-07T22:53:32.2627957Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2628042Z               "line": 645
2026-06-07T22:53:32.2628132Z             },
2026-06-07T22:53:32.2628213Z             {
2026-06-07T22:53:32.2628334Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2628418Z               "line": 803
2026-06-07T22:53:32.2628505Z             },
2026-06-07T22:53:32.2628591Z             {
2026-06-07T22:53:32.2628709Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-07T22:53:32.2628795Z               "line": 151
2026-06-07T22:53:32.2628878Z             },
2026-06-07T22:53:32.2628963Z             {
2026-06-07T22:53:32.2629080Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2629170Z               "line": 391
2026-06-07T22:53:32.2631219Z             },
2026-06-07T22:53:32.2631319Z             {
2026-06-07T22:53:32.2631458Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2631548Z               "line": 405
2026-06-07T22:53:32.2631633Z             },
2026-06-07T22:53:32.2631718Z             {
2026-06-07T22:53:32.2631842Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2631936Z               "line": 424
2026-06-07T22:53:32.2632016Z             },
2026-06-07T22:53:32.2632102Z             {
2026-06-07T22:53:32.2632222Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2632321Z               "line": 119
2026-06-07T22:53:32.2632407Z             },
2026-06-07T22:53:32.2632489Z             {
2026-06-07T22:53:32.2632608Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-07T22:53:32.2632694Z               "line": 162
2026-06-07T22:53:32.2632780Z             },
2026-06-07T22:53:32.2632870Z             {
2026-06-07T22:53:32.2632989Z               "path": "crates/spt-store/src/spool.rs",
2026-06-07T22:53:32.2633076Z               "line": 492
2026-06-07T22:53:32.2633161Z             },
2026-06-07T22:53:32.2633247Z             {
2026-06-07T22:53:32.2633352Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2633448Z               "line": 602
2026-06-07T22:53:32.2633528Z             },
2026-06-07T22:53:32.2633614Z             {
2026-06-07T22:53:32.2633720Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2633814Z               "line": 991
2026-06-07T22:53:32.2633914Z             }
2026-06-07T22:53:32.2634011Z           ]
2026-06-07T22:53:32.2634228Z         }
2026-06-07T22:53:32.2634309Z       }
2026-06-07T22:53:32.2634390Z     },
2026-06-07T22:53:32.2634474Z     {
2026-06-07T22:53:32.2634573Z       "id": "REQ-NET-2",
2026-06-07T22:53:32.2634775Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-07T22:53:32.2634970Z       "requiredStages": [
2026-06-07T22:53:32.2635042Z         "impl"
2026-06-07T22:53:32.2635123Z       ],
2026-06-07T22:53:32.2635212Z       "stages": {
2026-06-07T22:53:32.2635299Z         "doc": {
2026-06-07T22:53:32.2635418Z           "complete": false,
2026-06-07T22:53:32.2635536Z           "evidence": []
2026-06-07T22:53:32.2635629Z         },
2026-06-07T22:53:32.2635737Z         "impl": {
2026-06-07T22:53:32.2635828Z           "complete": true,
2026-06-07T22:53:32.2635919Z           "evidence": [
2026-06-07T22:53:32.2636000Z             {
2026-06-07T22:53:32.2636128Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.2636219Z               "line": 57
2026-06-07T22:53:32.2636306Z             },
2026-06-07T22:53:32.2636395Z             {
2026-06-07T22:53:32.2636514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2636606Z               "line": 39
2026-06-07T22:53:32.2636691Z             },
2026-06-07T22:53:32.2636781Z             {
2026-06-07T22:53:32.2636902Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2637085Z               "line": 49
2026-06-07T22:53:32.2637171Z             },
2026-06-07T22:53:32.2637253Z             {
2026-06-07T22:53:32.2637377Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2637462Z               "line": 127
2026-06-07T22:53:32.2637548Z             },
2026-06-07T22:53:32.2637634Z             {
2026-06-07T22:53:32.2637748Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2637839Z               "line": 143
2026-06-07T22:53:32.2637921Z             },
2026-06-07T22:53:32.2638002Z             {
2026-06-07T22:53:32.2638130Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-07T22:53:32.2638217Z               "line": 158
2026-06-07T22:53:32.2638301Z             }
2026-06-07T22:53:32.2638382Z           ]
2026-06-07T22:53:32.2638468Z         },
2026-06-07T22:53:32.2638550Z         "int": {
2026-06-07T22:53:32.2638659Z           "complete": false,
2026-06-07T22:53:32.2638750Z           "evidence": []
2026-06-07T22:53:32.2638832Z         },
2026-06-07T22:53:32.2638922Z         "unit": {
2026-06-07T22:53:32.2639012Z           "complete": true,
2026-06-07T22:53:32.2639088Z           "evidence": [
2026-06-07T22:53:32.2639175Z             {
2026-06-07T22:53:32.2639288Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.2639370Z               "line": 402
2026-06-07T22:53:32.2639447Z             }
2026-06-07T22:53:32.2639533Z           ]
2026-06-07T22:53:32.2639617Z         }
2026-06-07T22:53:32.2639698Z       }
2026-06-07T22:53:32.2639779Z     },
2026-06-07T22:53:32.2639864Z     {
2026-06-07T22:53:32.2639967Z       "id": "REQ-NET-3",
2026-06-07T22:53:32.2640135Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-07T22:53:32.2640230Z       "requiredStages": [
2026-06-07T22:53:32.2640315Z         "impl",
2026-06-07T22:53:32.2640401Z         "unit"
2026-06-07T22:53:32.2640487Z       ],
2026-06-07T22:53:32.2640578Z       "stages": {
2026-06-07T22:53:32.2640663Z         "doc": {
2026-06-07T22:53:32.2640755Z           "complete": false,
2026-06-07T22:53:32.2640844Z           "evidence": []
2026-06-07T22:53:32.2640930Z         },
2026-06-07T22:53:32.2641016Z         "impl": {
2026-06-07T22:53:32.2641108Z           "complete": true,
2026-06-07T22:53:32.2641198Z           "evidence": [
2026-06-07T22:53:32.2641278Z             {
2026-06-07T22:53:32.2641394Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2641483Z               "line": 39
2026-06-07T22:53:32.2641569Z             },
2026-06-07T22:53:32.2641650Z             {
2026-06-07T22:53:32.2641860Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2641951Z               "line": 179
2026-06-07T22:53:32.2642043Z             },
2026-06-07T22:53:32.2642122Z             {
2026-06-07T22:53:32.2642236Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-07T22:53:32.2642430Z               "line": 330
2026-06-07T22:53:32.2642520Z             },
2026-06-07T22:53:32.2642605Z             {
2026-06-07T22:53:32.2642720Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T22:53:32.2642810Z               "line": 36
2026-06-07T22:53:32.2642891Z             },
2026-06-07T22:53:32.2642972Z             {
2026-06-07T22:53:32.2643097Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2643186Z               "line": 158
2026-06-07T22:53:32.2643263Z             },
2026-06-07T22:53:32.2643350Z             {
2026-06-07T22:53:32.2643473Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2643568Z               "line": 212
2026-06-07T22:53:32.2643651Z             },
2026-06-07T22:53:32.2643735Z             {
2026-06-07T22:53:32.2643855Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2643941Z               "line": 233
2026-06-07T22:53:32.2644026Z             },
2026-06-07T22:53:32.2644121Z             {
2026-06-07T22:53:32.2644237Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2644327Z               "line": 291
2026-06-07T22:53:32.2644407Z             },
2026-06-07T22:53:32.2644494Z             {
2026-06-07T22:53:32.2644610Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2644698Z               "line": 310
2026-06-07T22:53:32.2644779Z             },
2026-06-07T22:53:32.2644864Z             {
2026-06-07T22:53:32.2644983Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2645067Z               "line": 348
2026-06-07T22:53:32.2645152Z             },
2026-06-07T22:53:32.2645234Z             {
2026-06-07T22:53:32.2645354Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2645443Z               "line": 393
2026-06-07T22:53:32.2645525Z             },
2026-06-07T22:53:32.2645611Z             {
2026-06-07T22:53:32.2645725Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2645821Z               "line": 406
2026-06-07T22:53:32.2645902Z             },
2026-06-07T22:53:32.2645988Z             {
2026-06-07T22:53:32.2646106Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2646194Z               "line": 29
2026-06-07T22:53:32.2646283Z             },
2026-06-07T22:53:32.2646369Z             {
2026-06-07T22:53:32.2646484Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2646575Z               "line": 72
2026-06-07T22:53:32.2646654Z             },
2026-06-07T22:53:32.2646740Z             {
2026-06-07T22:53:32.2646856Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2647037Z               "line": 123
2026-06-07T22:53:32.2647118Z             }
2026-06-07T22:53:32.2647209Z           ]
2026-06-07T22:53:32.2647293Z         },
2026-06-07T22:53:32.2647375Z         "int": {
2026-06-07T22:53:32.2647472Z           "complete": false,
2026-06-07T22:53:32.2647566Z           "evidence": []
2026-06-07T22:53:32.2647650Z         },
2026-06-07T22:53:32.2647736Z         "unit": {
2026-06-07T22:53:32.2647828Z           "complete": true,
2026-06-07T22:53:32.2647918Z           "evidence": [
2026-06-07T22:53:32.2647998Z             {
2026-06-07T22:53:32.2648118Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2648204Z               "line": 214
2026-06-07T22:53:32.2648294Z             },
2026-06-07T22:53:32.2648375Z             {
2026-06-07T22:53:32.2648490Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2648576Z               "line": 342
2026-06-07T22:53:32.2648656Z             },
2026-06-07T22:53:32.2648739Z             {
2026-06-07T22:53:32.2648952Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-07T22:53:32.2649043Z               "line": 493
2026-06-07T22:53:32.2649125Z             },
2026-06-07T22:53:32.2649209Z             {
2026-06-07T22:53:32.2649324Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T22:53:32.2649505Z               "line": 93
2026-06-07T22:53:32.2649586Z             },
2026-06-07T22:53:32.2649668Z             {
2026-06-07T22:53:32.2649783Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-07T22:53:32.2649871Z               "line": 142
2026-06-07T22:53:32.2649954Z             },
2026-06-07T22:53:32.2650031Z             {
2026-06-07T22:53:32.2650149Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2650238Z               "line": 315
2026-06-07T22:53:32.2650320Z             },
2026-06-07T22:53:32.2650401Z             {
2026-06-07T22:53:32.2650517Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2650617Z               "line": 355
2026-06-07T22:53:32.2650700Z             },
2026-06-07T22:53:32.2650776Z             {
2026-06-07T22:53:32.2650894Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-07T22:53:32.2650981Z               "line": 494
2026-06-07T22:53:32.2651062Z             }
2026-06-07T22:53:32.2651152Z           ]
2026-06-07T22:53:32.2651233Z         }
2026-06-07T22:53:32.2651315Z       }
2026-06-07T22:53:32.2651400Z     },
2026-06-07T22:53:32.2651481Z     {
2026-06-07T22:53:32.2651576Z       "id": "REQ-NODE-IDENTITY",
2026-06-07T22:53:32.2651796Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-07T22:53:32.2651891Z       "requiredStages": [
2026-06-07T22:53:32.2651973Z         "impl",
2026-06-07T22:53:32.2652057Z         "unit"
2026-06-07T22:53:32.2652177Z       ],
2026-06-07T22:53:32.2652269Z       "stages": {
2026-06-07T22:53:32.2652349Z         "doc": {
2026-06-07T22:53:32.2652444Z           "complete": false,
2026-06-07T22:53:32.2652535Z           "evidence": []
2026-06-07T22:53:32.2652617Z         },
2026-06-07T22:53:32.2652701Z         "impl": {
2026-06-07T22:53:32.2652791Z           "complete": true,
2026-06-07T22:53:32.2652877Z           "evidence": [
2026-06-07T22:53:32.2652958Z             {
2026-06-07T22:53:32.2653084Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2653169Z               "line": 60
2026-06-07T22:53:32.2653252Z             },
2026-06-07T22:53:32.2653333Z             {
2026-06-07T22:53:32.2653447Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2653533Z               "line": 68
2026-06-07T22:53:32.2653614Z             },
2026-06-07T22:53:32.2653695Z             {
2026-06-07T22:53:32.2653809Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2653896Z               "line": 86
2026-06-07T22:53:32.2653976Z             },
2026-06-07T22:53:32.2654057Z             {
2026-06-07T22:53:32.2654177Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2654262Z               "line": 120
2026-06-07T22:53:32.2654352Z             },
2026-06-07T22:53:32.2654434Z             {
2026-06-07T22:53:32.2654545Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2654634Z               "line": 127
2026-06-07T22:53:32.2654715Z             },
2026-06-07T22:53:32.2654797Z             {
2026-06-07T22:53:32.2654906Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2654996Z               "line": 143
2026-06-07T22:53:32.2655077Z             },
2026-06-07T22:53:32.2655160Z             {
2026-06-07T22:53:32.2655268Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T22:53:32.2655358Z               "line": 16
2026-06-07T22:53:32.2655439Z             }
2026-06-07T22:53:32.2655520Z           ]
2026-06-07T22:53:32.2655603Z         },
2026-06-07T22:53:32.2655684Z         "int": {
2026-06-07T22:53:32.2655775Z           "complete": false,
2026-06-07T22:53:32.2655937Z           "evidence": []
2026-06-07T22:53:32.2656027Z         },
2026-06-07T22:53:32.2656109Z         "unit": {
2026-06-07T22:53:32.2656200Z           "complete": true,
2026-06-07T22:53:32.2656285Z           "evidence": [
2026-06-07T22:53:32.2656371Z             {
2026-06-07T22:53:32.2656481Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2656638Z               "line": 199
2026-06-07T22:53:32.2656719Z             },
2026-06-07T22:53:32.2656805Z             {
2026-06-07T22:53:32.2656915Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2657092Z               "line": 218
2026-06-07T22:53:32.2657177Z             },
2026-06-07T22:53:32.2657258Z             {
2026-06-07T22:53:32.2657378Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2657464Z               "line": 234
2026-06-07T22:53:32.2657548Z             },
2026-06-07T22:53:32.2657630Z             {
2026-06-07T22:53:32.2657750Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-07T22:53:32.2657839Z               "line": 256
2026-06-07T22:53:32.2657921Z             },
2026-06-07T22:53:32.2658003Z             {
2026-06-07T22:53:32.2658112Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T22:53:32.2658197Z               "line": 124
2026-06-07T22:53:32.2658287Z             },
2026-06-07T22:53:32.2658368Z             {
2026-06-07T22:53:32.2658478Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T22:53:32.2658563Z               "line": 140
2026-06-07T22:53:32.2658649Z             },
2026-06-07T22:53:32.2658727Z             {
2026-06-07T22:53:32.2658835Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-07T22:53:32.2658926Z               "line": 155
2026-06-07T22:53:32.2659003Z             }
2026-06-07T22:53:32.2659084Z           ]
2026-06-07T22:53:32.2659169Z         }
2026-06-07T22:53:32.2659245Z       }
2026-06-07T22:53:32.2659327Z     },
2026-06-07T22:53:32.2659408Z     {
2026-06-07T22:53:32.2659503Z       "id": "REQ-NOTIF-1",
2026-06-07T22:53:32.2659850Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-07T22:53:32.2659952Z       "requiredStages": [
2026-06-07T22:53:32.2660033Z         "impl",
2026-06-07T22:53:32.2660128Z         "unit",
2026-06-07T22:53:32.2660214Z         "int"
2026-06-07T22:53:32.2660319Z       ],
2026-06-07T22:53:32.2660409Z       "stages": {
2026-06-07T22:53:32.2660480Z         "doc": {
2026-06-07T22:53:32.2660577Z           "complete": false,
2026-06-07T22:53:32.2660663Z           "evidence": []
2026-06-07T22:53:32.2660751Z         },
2026-06-07T22:53:32.2660855Z         "impl": {
2026-06-07T22:53:32.2660946Z           "complete": true,
2026-06-07T22:53:32.2661036Z           "evidence": [
2026-06-07T22:53:32.2661115Z             {
2026-06-07T22:53:32.2661231Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2661316Z               "line": 474
2026-06-07T22:53:32.2661402Z             },
2026-06-07T22:53:32.2661483Z             {
2026-06-07T22:53:32.2661598Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2661684Z               "line": 30
2026-06-07T22:53:32.2661764Z             },
2026-06-07T22:53:32.2661851Z             {
2026-06-07T22:53:32.2661965Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2662055Z               "line": 62
2026-06-07T22:53:32.2662136Z             },
2026-06-07T22:53:32.2662218Z             {
2026-06-07T22:53:32.2662328Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2662408Z               "line": 86
2026-06-07T22:53:32.2662495Z             },
2026-06-07T22:53:32.2662576Z             {
2026-06-07T22:53:32.2662685Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2662771Z               "line": 100
2026-06-07T22:53:32.2662857Z             },
2026-06-07T22:53:32.2662947Z             {
2026-06-07T22:53:32.2663153Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2663248Z               "line": 135
2026-06-07T22:53:32.2663327Z             },
2026-06-07T22:53:32.2663412Z             {
2026-06-07T22:53:32.2663523Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2663611Z               "line": 180
2026-06-07T22:53:32.2663888Z             },
2026-06-07T22:53:32.2663973Z             {
2026-06-07T22:53:32.2664088Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2664179Z               "line": 251
2026-06-07T22:53:32.2664264Z             },
2026-06-07T22:53:32.2664350Z             {
2026-06-07T22:53:32.2664466Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2664556Z               "line": 361
2026-06-07T22:53:32.2664636Z             },
2026-06-07T22:53:32.2664723Z             {
2026-06-07T22:53:32.2664832Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2664922Z               "line": 421
2026-06-07T22:53:32.2665023Z             },
2026-06-07T22:53:32.2665105Z             {
2026-06-07T22:53:32.2665228Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2665318Z               "line": 24
2026-06-07T22:53:32.2665400Z             },
2026-06-07T22:53:32.2665485Z             {
2026-06-07T22:53:32.2665609Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2665701Z               "line": 34
2026-06-07T22:53:32.2665781Z             },
2026-06-07T22:53:32.2665866Z             {
2026-06-07T22:53:32.2665989Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2666075Z               "line": 58
2026-06-07T22:53:32.2666159Z             },
2026-06-07T22:53:32.2666245Z             {
2026-06-07T22:53:32.2666359Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2666446Z               "line": 79
2026-06-07T22:53:32.2666530Z             },
2026-06-07T22:53:32.2666616Z             {
2026-06-07T22:53:32.2666736Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2666821Z               "line": 91
2026-06-07T22:53:32.2666907Z             },
2026-06-07T22:53:32.2667079Z             {
2026-06-07T22:53:32.2667198Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.2667289Z               "line": 41
2026-06-07T22:53:32.2667375Z             },
2026-06-07T22:53:32.2667461Z             {
2026-06-07T22:53:32.2667575Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2667667Z               "line": 96
2026-06-07T22:53:32.2667751Z             },
2026-06-07T22:53:32.2667832Z             {
2026-06-07T22:53:32.2667948Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2668038Z               "line": 20
2026-06-07T22:53:32.2668118Z             },
2026-06-07T22:53:32.2668204Z             {
2026-06-07T22:53:32.2668315Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2668404Z               "line": 30
2026-06-07T22:53:32.2668496Z             },
2026-06-07T22:53:32.2668582Z             {
2026-06-07T22:53:32.2668690Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2668780Z               "line": 50
2026-06-07T22:53:32.2668866Z             },
2026-06-07T22:53:32.2668953Z             {
2026-06-07T22:53:32.2669071Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2669161Z               "line": 28
2026-06-07T22:53:32.2669244Z             },
2026-06-07T22:53:32.2669325Z             {
2026-06-07T22:53:32.2669438Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2669524Z               "line": 126
2026-06-07T22:53:32.2669615Z             },
2026-06-07T22:53:32.2669696Z             {
2026-06-07T22:53:32.2669805Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2669897Z               "line": 161
2026-06-07T22:53:32.2669982Z             },
2026-06-07T22:53:32.2670068Z             {
2026-06-07T22:53:32.2670273Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2670368Z               "line": 202
2026-06-07T22:53:32.2670454Z             },
2026-06-07T22:53:32.2670541Z             {
2026-06-07T22:53:32.2670649Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2670735Z               "line": 213
2026-06-07T22:53:32.2670931Z             },
2026-06-07T22:53:32.2671016Z             {
2026-06-07T22:53:32.2671123Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2671218Z               "line": 238
2026-06-07T22:53:32.2671307Z             },
2026-06-07T22:53:32.2671397Z             {
2026-06-07T22:53:32.2671506Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2671600Z               "line": 261
2026-06-07T22:53:32.2671685Z             },
2026-06-07T22:53:32.2671772Z             {
2026-06-07T22:53:32.2671886Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2671976Z               "line": 63
2026-06-07T22:53:32.2672067Z             }
2026-06-07T22:53:32.2672153Z           ]
2026-06-07T22:53:32.2672240Z         },
2026-06-07T22:53:32.2672324Z         "int": {
2026-06-07T22:53:32.2672416Z           "complete": true,
2026-06-07T22:53:32.2672506Z           "evidence": [
2026-06-07T22:53:32.2672587Z             {
2026-06-07T22:53:32.2672726Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2672811Z               "line": 274
2026-06-07T22:53:32.2672897Z             },
2026-06-07T22:53:32.2672982Z             {
2026-06-07T22:53:32.2673103Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-07T22:53:32.2673192Z               "line": 102
2026-06-07T22:53:32.2673273Z             },
2026-06-07T22:53:32.2673360Z             {
2026-06-07T22:53:32.2673479Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2673565Z               "line": 612
2026-06-07T22:53:32.2673651Z             },
2026-06-07T22:53:32.2673732Z             {
2026-06-07T22:53:32.2673855Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2673945Z               "line": 1005
2026-06-07T22:53:32.2674031Z             }
2026-06-07T22:53:32.2674111Z           ]
2026-06-07T22:53:32.2674200Z         },
2026-06-07T22:53:32.2674290Z         "unit": {
2026-06-07T22:53:32.2674387Z           "complete": true,
2026-06-07T22:53:32.2674477Z           "evidence": [
2026-06-07T22:53:32.2674557Z             {
2026-06-07T22:53:32.2674672Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2674758Z               "line": 514
2026-06-07T22:53:32.2674843Z             },
2026-06-07T22:53:32.2674929Z             {
2026-06-07T22:53:32.2675040Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2675130Z               "line": 563
2026-06-07T22:53:32.2675210Z             },
2026-06-07T22:53:32.2675293Z             {
2026-06-07T22:53:32.2675406Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2675497Z               "line": 666
2026-06-07T22:53:32.2675588Z             },
2026-06-07T22:53:32.2675669Z             {
2026-06-07T22:53:32.2675783Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2675874Z               "line": 698
2026-06-07T22:53:32.2675956Z             },
2026-06-07T22:53:32.2676045Z             {
2026-06-07T22:53:32.2676154Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2676247Z               "line": 766
2026-06-07T22:53:32.2676328Z             },
2026-06-07T22:53:32.2676411Z             {
2026-06-07T22:53:32.2676520Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2676612Z               "line": 824
2026-06-07T22:53:32.2676701Z             },
2026-06-07T22:53:32.2676781Z             {
2026-06-07T22:53:32.2676891Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2677067Z               "line": 1045
2026-06-07T22:53:32.2677152Z             },
2026-06-07T22:53:32.2677234Z             {
2026-06-07T22:53:32.2677453Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2677549Z               "line": 140
2026-06-07T22:53:32.2677635Z             },
2026-06-07T22:53:32.2677720Z             {
2026-06-07T22:53:32.2677835Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2678016Z               "line": 233
2026-06-07T22:53:32.2678097Z             },
2026-06-07T22:53:32.2678184Z             {
2026-06-07T22:53:32.2678302Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-07T22:53:32.2678397Z               "line": 256
2026-06-07T22:53:32.2678489Z             },
2026-06-07T22:53:32.2678570Z             {
2026-06-07T22:53:32.2678688Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2678774Z               "line": 341
2026-06-07T22:53:32.2678861Z             },
2026-06-07T22:53:32.2678945Z             {
2026-06-07T22:53:32.2679060Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-07T22:53:32.2679157Z               "line": 373
2026-06-07T22:53:32.2679242Z             },
2026-06-07T22:53:32.2679331Z             {
2026-06-07T22:53:32.2679455Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-07T22:53:32.2679542Z               "line": 117
2026-06-07T22:53:32.2679627Z             },
2026-06-07T22:53:32.2679711Z             {
2026-06-07T22:53:32.2679823Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2679908Z               "line": 72
2026-06-07T22:53:32.2679989Z             },
2026-06-07T22:53:32.2680070Z             {
2026-06-07T22:53:32.2680185Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-07T22:53:32.2680270Z               "line": 97
2026-06-07T22:53:32.2680355Z             },
2026-06-07T22:53:32.2680443Z             {
2026-06-07T22:53:32.2680552Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2680642Z               "line": 379
2026-06-07T22:53:32.2680719Z             },
2026-06-07T22:53:32.2680805Z             {
2026-06-07T22:53:32.2680919Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2681004Z               "line": 417
2026-06-07T22:53:32.2681087Z             },
2026-06-07T22:53:32.2681167Z             {
2026-06-07T22:53:32.2681276Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2681363Z               "line": 433
2026-06-07T22:53:32.2681449Z             },
2026-06-07T22:53:32.2681529Z             {
2026-06-07T22:53:32.2681639Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2681726Z               "line": 472
2026-06-07T22:53:32.2681806Z             },
2026-06-07T22:53:32.2681891Z             {
2026-06-07T22:53:32.2682000Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2682086Z               "line": 489
2026-06-07T22:53:32.2682170Z             },
2026-06-07T22:53:32.2682245Z             {
2026-06-07T22:53:32.2682346Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2682442Z               "line": 517
2026-06-07T22:53:32.2682527Z             },
2026-06-07T22:53:32.2682608Z             {
2026-06-07T22:53:32.2682723Z               "path": "crates/spt-store/src/notif.rs",
2026-06-07T22:53:32.2682842Z               "line": 548
2026-06-07T22:53:32.2682927Z             },
2026-06-07T22:53:32.2683005Z             {
2026-06-07T22:53:32.2683113Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2683208Z               "line": 455
2026-06-07T22:53:32.2683333Z             }
2026-06-07T22:53:32.2683625Z           ]
2026-06-07T22:53:32.2683876Z         }
2026-06-07T22:53:32.2684067Z       }
2026-06-07T22:53:32.2684220Z     },
2026-06-07T22:53:32.2684372Z     {
2026-06-07T22:53:32.2684538Z       "id": "REQ-NOTIF-2",
2026-06-07T22:53:32.2684899Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-07T22:53:32.2685314Z       "requiredStages": [
2026-06-07T22:53:32.2685508Z         "doc",
2026-06-07T22:53:32.2685761Z         "impl",
2026-06-07T22:53:32.2685929Z         "unit",
2026-06-07T22:53:32.2686090Z         "int"
2026-06-07T22:53:32.2686244Z       ],
2026-06-07T22:53:32.2686400Z       "stages": {
2026-06-07T22:53:32.2686587Z         "doc": {
2026-06-07T22:53:32.2686777Z           "complete": true,
2026-06-07T22:53:32.2687162Z           "evidence": [
2026-06-07T22:53:32.2687360Z             {
2026-06-07T22:53:32.2687537Z               "path": "CONTEXT.md",
2026-06-07T22:53:32.2687766Z               "line": 346
2026-06-07T22:53:32.2687956Z             },
2026-06-07T22:53:32.2688119Z             {
2026-06-07T22:53:32.2688294Z               "path": "docs/MANIFEST.md",
2026-06-07T22:53:32.2688523Z               "line": 62
2026-06-07T22:53:32.2688710Z             }
2026-06-07T22:53:32.2688871Z           ]
2026-06-07T22:53:32.2689030Z         },
2026-06-07T22:53:32.2689190Z         "impl": {
2026-06-07T22:53:32.2689369Z           "complete": true,
2026-06-07T22:53:32.2689567Z           "evidence": [
2026-06-07T22:53:32.2689755Z             {
2026-06-07T22:53:32.2689952Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2690210Z               "line": 280
2026-06-07T22:53:32.2690402Z             },
2026-06-07T22:53:32.2690587Z             {
2026-06-07T22:53:32.2690830Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2691083Z               "line": 294
2026-06-07T22:53:32.2691269Z             },
2026-06-07T22:53:32.2691426Z             {
2026-06-07T22:53:32.2691618Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2691861Z               "line": 319
2026-06-07T22:53:32.2692042Z             },
2026-06-07T22:53:32.2692209Z             {
2026-06-07T22:53:32.2692408Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.2692664Z               "line": 126
2026-06-07T22:53:32.2692853Z             },
2026-06-07T22:53:32.2693016Z             {
2026-06-07T22:53:32.2693206Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2693468Z               "line": 72
2026-06-07T22:53:32.2697275Z             },
2026-06-07T22:53:32.2697499Z             {
2026-06-07T22:53:32.2697704Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2697953Z               "line": 1352
2026-06-07T22:53:32.2698145Z             },
2026-06-07T22:53:32.2698326Z             {
2026-06-07T22:53:32.2698512Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2698755Z               "line": 1401
2026-06-07T22:53:32.2698940Z             },
2026-06-07T22:53:32.2699102Z             {
2026-06-07T22:53:32.2699285Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2699522Z               "line": 1480
2026-06-07T22:53:32.2699704Z             },
2026-06-07T22:53:32.2699866Z             {
2026-06-07T22:53:32.2700047Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2700301Z               "line": 1519
2026-06-07T22:53:32.2700484Z             }
2026-06-07T22:53:32.2700642Z           ]
2026-06-07T22:53:32.2700804Z         },
2026-06-07T22:53:32.2700967Z         "int": {
2026-06-07T22:53:32.2701147Z           "complete": true,
2026-06-07T22:53:32.2701358Z           "evidence": [
2026-06-07T22:53:32.2701554Z             {
2026-06-07T22:53:32.2701762Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2702043Z               "line": 738
2026-06-07T22:53:32.2702231Z             },
2026-06-07T22:53:32.2702406Z             {
2026-06-07T22:53:32.2702602Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2702866Z               "line": 1158
2026-06-07T22:53:32.2703058Z             }
2026-06-07T22:53:32.2703905Z           ]
2026-06-07T22:53:32.2704067Z         },
2026-06-07T22:53:32.2704267Z         "unit": {
2026-06-07T22:53:32.2704450Z           "complete": true,
2026-06-07T22:53:32.2704644Z           "evidence": [
2026-06-07T22:53:32.2704820Z             {
2026-06-07T22:53:32.2705011Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2705663Z               "line": 894
2026-06-07T22:53:32.2705852Z             },
2026-06-07T22:53:32.2706014Z             {
2026-06-07T22:53:32.2706204Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2706486Z               "line": 962
2026-06-07T22:53:32.2706673Z             },
2026-06-07T22:53:32.2707049Z             {
2026-06-07T22:53:32.2707239Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2707478Z               "line": 4785
2026-06-07T22:53:32.2707664Z             },
2026-06-07T22:53:32.2707826Z             {
2026-06-07T22:53:32.2707998Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2708234Z               "line": 4840
2026-06-07T22:53:32.2708419Z             }
2026-06-07T22:53:32.2708581Z           ]
2026-06-07T22:53:32.2708733Z         }
2026-06-07T22:53:32.2708891Z       }
2026-06-07T22:53:32.2709053Z     },
2026-06-07T22:53:32.2709210Z     {
2026-06-07T22:53:32.2709377Z       "id": "REQ-PAIR-1",
2026-06-07T22:53:32.2709606Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-07T22:53:32.2709845Z       "requiredStages": [
2026-06-07T22:53:32.2710035Z         "impl",
2026-06-07T22:53:32.2710203Z         "unit",
2026-06-07T22:53:32.2710369Z         "int"
2026-06-07T22:53:32.2710527Z       ],
2026-06-07T22:53:32.2710692Z       "stages": {
2026-06-07T22:53:32.2710875Z         "doc": {
2026-06-07T22:53:32.2711054Z           "complete": false,
2026-06-07T22:53:32.2711260Z           "evidence": []
2026-06-07T22:53:32.2711441Z         },
2026-06-07T22:53:32.2711608Z         "impl": {
2026-06-07T22:53:32.2711784Z           "complete": true,
2026-06-07T22:53:32.2711983Z           "evidence": [
2026-06-07T22:53:32.2712166Z             {
2026-06-07T22:53:32.2712389Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2712661Z               "line": 27
2026-06-07T22:53:32.2712842Z             },
2026-06-07T22:53:32.2713005Z             {
2026-06-07T22:53:32.2713214Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2713477Z               "line": 88
2026-06-07T22:53:32.2713676Z             },
2026-06-07T22:53:32.2713841Z             {
2026-06-07T22:53:32.2714051Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2714318Z               "line": 110
2026-06-07T22:53:32.2714508Z             },
2026-06-07T22:53:32.2714671Z             {
2026-06-07T22:53:32.2714870Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2715395Z               "line": 153
2026-06-07T22:53:32.2715576Z             },
2026-06-07T22:53:32.2715747Z             {
2026-06-07T22:53:32.2715949Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2716233Z               "line": 182
2026-06-07T22:53:32.2716412Z             },
2026-06-07T22:53:32.2716579Z             {
2026-06-07T22:53:32.2716784Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2717145Z               "line": 29
2026-06-07T22:53:32.2717323Z             },
2026-06-07T22:53:32.2717499Z             {
2026-06-07T22:53:32.2717728Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-07T22:53:32.2718014Z               "line": 31
2026-06-07T22:53:32.2718197Z             },
2026-06-07T22:53:32.2718357Z             {
2026-06-07T22:53:32.2718568Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2718829Z               "line": 40
2026-06-07T22:53:32.2719012Z             },
2026-06-07T22:53:32.2719169Z             {
2026-06-07T22:53:32.2719374Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2719636Z               "line": 165
2026-06-07T22:53:32.2719818Z             },
2026-06-07T22:53:32.2719980Z             {
2026-06-07T22:53:32.2720176Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2720448Z               "line": 359
2026-06-07T22:53:32.2720633Z             }
2026-06-07T22:53:32.2720791Z           ]
2026-06-07T22:53:32.2721082Z         },
2026-06-07T22:53:32.2721247Z         "int": {
2026-06-07T22:53:32.2721426Z           "complete": true,
2026-06-07T22:53:32.2721624Z           "evidence": [
2026-06-07T22:53:32.2721800Z             {
2026-06-07T22:53:32.2722001Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2722359Z               "line": 573
2026-06-07T22:53:32.2722539Z             },
2026-06-07T22:53:32.2722702Z             {
2026-06-07T22:53:32.2722896Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2723150Z               "line": 790
2026-06-07T22:53:32.2723332Z             }
2026-06-07T22:53:32.2723498Z           ]
2026-06-07T22:53:32.2723656Z         },
2026-06-07T22:53:32.2723812Z         "unit": {
2026-06-07T22:53:32.2723990Z           "complete": true,
2026-06-07T22:53:32.2724169Z           "evidence": [
2026-06-07T22:53:32.2724350Z             {
2026-06-07T22:53:32.2724553Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2724824Z               "line": 236
2026-06-07T22:53:32.2725049Z             },
2026-06-07T22:53:32.2725212Z             {
2026-06-07T22:53:32.2725415Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-07T22:53:32.2725669Z               "line": 349
2026-06-07T22:53:32.2725855Z             },
2026-06-07T22:53:32.2726012Z             {
2026-06-07T22:53:32.2726218Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2726481Z               "line": 194
2026-06-07T22:53:32.2726660Z             },
2026-06-07T22:53:32.2726817Z             {
2026-06-07T22:53:32.2727110Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2727368Z               "line": 216
2026-06-07T22:53:32.2727549Z             },
2026-06-07T22:53:32.2727706Z             {
2026-06-07T22:53:32.2727907Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2728164Z               "line": 230
2026-06-07T22:53:32.2728350Z             },
2026-06-07T22:53:32.2728512Z             {
2026-06-07T22:53:32.2728703Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2728965Z               "line": 242
2026-06-07T22:53:32.2729147Z             },
2026-06-07T22:53:32.2729302Z             {
2026-06-07T22:53:32.2729510Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2729768Z               "line": 256
2026-06-07T22:53:32.2729948Z             },
2026-06-07T22:53:32.2730111Z             {
2026-06-07T22:53:32.2730307Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2730559Z               "line": 270
2026-06-07T22:53:32.2730750Z             },
2026-06-07T22:53:32.2730916Z             {
2026-06-07T22:53:32.2731117Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2731370Z               "line": 277
2026-06-07T22:53:32.2731560Z             },
2026-06-07T22:53:32.2731723Z             {
2026-06-07T22:53:32.2731929Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-07T22:53:32.2732193Z               "line": 295
2026-06-07T22:53:32.2732380Z             },
2026-06-07T22:53:32.2732546Z             {
2026-06-07T22:53:32.2732747Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2733005Z               "line": 819
2026-06-07T22:53:32.2733190Z             },
2026-06-07T22:53:32.2733372Z             {
2026-06-07T22:53:32.2733567Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2733829Z               "line": 903
2026-06-07T22:53:32.2734014Z             },
2026-06-07T22:53:32.2734183Z             {
2026-06-07T22:53:32.2734387Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2734644Z               "line": 972
2026-06-07T22:53:32.2734829Z             },
2026-06-07T22:53:32.2734994Z             {
2026-06-07T22:53:32.2735195Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2735566Z               "line": 1035
2026-06-07T22:53:32.2735762Z             },
2026-06-07T22:53:32.2735924Z             {
2026-06-07T22:53:32.2736125Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2736381Z               "line": 1093
2026-06-07T22:53:32.2736663Z             },
2026-06-07T22:53:32.2736826Z             {
2026-06-07T22:53:32.2737117Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2737386Z               "line": 1325
2026-06-07T22:53:32.2737575Z             }
2026-06-07T22:53:32.2737738Z           ]
2026-06-07T22:53:32.2737899Z         }
2026-06-07T22:53:32.2738058Z       }
2026-06-07T22:53:32.2738213Z     },
2026-06-07T22:53:32.2738372Z     {
2026-06-07T22:53:32.2738538Z       "id": "REQ-PAIR-2",
2026-06-07T22:53:32.2738786Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-07T22:53:32.2739077Z       "requiredStages": [
2026-06-07T22:53:32.2739268Z         "impl",
2026-06-07T22:53:32.2739448Z         "unit"
2026-06-07T22:53:32.2739617Z       ],
2026-06-07T22:53:32.2739806Z       "stages": {
2026-06-07T22:53:32.2739992Z         "doc": {
2026-06-07T22:53:32.2740170Z           "complete": false,
2026-06-07T22:53:32.2740371Z           "evidence": []
2026-06-07T22:53:32.2740557Z         },
2026-06-07T22:53:32.2740747Z         "impl": {
2026-06-07T22:53:32.2740930Z           "complete": true,
2026-06-07T22:53:32.2741129Z           "evidence": [
2026-06-07T22:53:32.2741310Z             {
2026-06-07T22:53:32.2741506Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2741758Z               "line": 42
2026-06-07T22:53:32.2741940Z             },
2026-06-07T22:53:32.2742111Z             {
2026-06-07T22:53:32.2742316Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2742560Z               "line": 150
2026-06-07T22:53:32.2742748Z             },
2026-06-07T22:53:32.2742912Z             {
2026-06-07T22:53:32.2743102Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2743359Z               "line": 170
2026-06-07T22:53:32.2743541Z             },
2026-06-07T22:53:32.2743707Z             {
2026-06-07T22:53:32.2743903Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2744151Z               "line": 208
2026-06-07T22:53:32.2744341Z             },
2026-06-07T22:53:32.2744504Z             {
2026-06-07T22:53:32.2744690Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2744937Z               "line": 231
2026-06-07T22:53:32.2745129Z             }
2026-06-07T22:53:32.2745299Z           ]
2026-06-07T22:53:32.2745456Z         },
2026-06-07T22:53:32.2745620Z         "int": {
2026-06-07T22:53:32.2745797Z           "complete": false,
2026-06-07T22:53:32.2746002Z           "evidence": []
2026-06-07T22:53:32.2746189Z         },
2026-06-07T22:53:32.2746351Z         "unit": {
2026-06-07T22:53:32.2746532Z           "complete": true,
2026-06-07T22:53:32.2746723Z           "evidence": [
2026-06-07T22:53:32.2746913Z             {
2026-06-07T22:53:32.2747189Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2747451Z               "line": 252
2026-06-07T22:53:32.2747644Z             },
2026-06-07T22:53:32.2747813Z             {
2026-06-07T22:53:32.2748004Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2748259Z               "line": 271
2026-06-07T22:53:32.2748445Z             },
2026-06-07T22:53:32.2748603Z             {
2026-06-07T22:53:32.2748792Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2749042Z               "line": 286
2026-06-07T22:53:32.2749223Z             },
2026-06-07T22:53:32.2749389Z             {
2026-06-07T22:53:32.2749576Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2749833Z               "line": 308
2026-06-07T22:53:32.2750018Z             },
2026-06-07T22:53:32.2750186Z             {
2026-06-07T22:53:32.2750385Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2750913Z               "line": 324
2026-06-07T22:53:32.2751097Z             },
2026-06-07T22:53:32.2751261Z             {
2026-06-07T22:53:32.2751475Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2751717Z               "line": 342
2026-06-07T22:53:32.2751899Z             },
2026-06-07T22:53:32.2752275Z             {
2026-06-07T22:53:32.2752551Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2752801Z               "line": 357
2026-06-07T22:53:32.2752991Z             },
2026-06-07T22:53:32.2753148Z             {
2026-06-07T22:53:32.2753337Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2753586Z               "line": 370
2026-06-07T22:53:32.2753777Z             },
2026-06-07T22:53:32.2753933Z             {
2026-06-07T22:53:32.2754120Z               "path": "crates/spt-store/src/trust.rs",
2026-06-07T22:53:32.2754359Z               "line": 384
2026-06-07T22:53:32.2754549Z             }
2026-06-07T22:53:32.2754711Z           ]
2026-06-07T22:53:32.2754878Z         }
2026-06-07T22:53:32.2755036Z       }
2026-06-07T22:53:32.2755197Z     },
2026-06-07T22:53:32.2755355Z     {
2026-06-07T22:53:32.2755517Z       "id": "REQ-PAIR-3",
2026-06-07T22:53:32.2755764Z       "title": "Fetch current pairing code from any paired node",
2026-06-07T22:53:32.2756063Z       "requiredStages": [
2026-06-07T22:53:32.2756257Z         "impl",
2026-06-07T22:53:32.2756429Z         "unit"
2026-06-07T22:53:32.2756596Z       ],
2026-06-07T22:53:32.2756758Z       "stages": {
2026-06-07T22:53:32.2756935Z         "doc": {
2026-06-07T22:53:32.2757202Z           "complete": false,
2026-06-07T22:53:32.2757411Z           "evidence": []
2026-06-07T22:53:32.2757598Z         },
2026-06-07T22:53:32.2757768Z         "impl": {
2026-06-07T22:53:32.2757950Z           "complete": true,
2026-06-07T22:53:32.2758146Z           "evidence": [
2026-06-07T22:53:32.2758331Z             {
2026-06-07T22:53:32.2758526Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2758766Z               "line": 1903
2026-06-07T22:53:32.2758958Z             },
2026-06-07T22:53:32.2759125Z             {
2026-06-07T22:53:32.2759310Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2759549Z               "line": 1972
2026-06-07T22:53:32.2759739Z             },
2026-06-07T22:53:32.2759906Z             {
2026-06-07T22:53:32.2760084Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2760321Z               "line": 2208
2026-06-07T22:53:32.2760508Z             }
2026-06-07T22:53:32.2760669Z           ]
2026-06-07T22:53:32.2760828Z         },
2026-06-07T22:53:32.2760997Z         "int": {
2026-06-07T22:53:32.2761177Z           "complete": false,
2026-06-07T22:53:32.2761372Z           "evidence": []
2026-06-07T22:53:32.2761652Z         },
2026-06-07T22:53:32.2761811Z         "unit": {
2026-06-07T22:53:32.2761992Z           "complete": true,
2026-06-07T22:53:32.2762187Z           "evidence": [
2026-06-07T22:53:32.2762364Z             {
2026-06-07T22:53:32.2762588Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2762840Z               "line": 6153
2026-06-07T22:53:32.2763046Z             },
2026-06-07T22:53:32.2763212Z             {
2026-06-07T22:53:32.2763389Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2763623Z               "line": 6343
2026-06-07T22:53:32.2766414Z             },
2026-06-07T22:53:32.2766604Z             {
2026-06-07T22:53:32.2766803Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2767157Z               "line": 6674
2026-06-07T22:53:32.2767351Z             },
2026-06-07T22:53:32.2767519Z             {
2026-06-07T22:53:32.2767704Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2767957Z               "line": 6693
2026-06-07T22:53:32.2768153Z             },
2026-06-07T22:53:32.2768319Z             {
2026-06-07T22:53:32.2768501Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2768736Z               "line": 6717
2026-06-07T22:53:32.2768924Z             },
2026-06-07T22:53:32.2769222Z             {
2026-06-07T22:53:32.2769413Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2769646Z               "line": 6736
2026-06-07T22:53:32.2769838Z             },
2026-06-07T22:53:32.2769999Z             {
2026-06-07T22:53:32.2770176Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2770505Z               "line": 6749
2026-06-07T22:53:32.2770701Z             },
2026-06-07T22:53:32.2770858Z             {
2026-06-07T22:53:32.2771035Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2771268Z               "line": 6758
2026-06-07T22:53:32.2771453Z             }
2026-06-07T22:53:32.2771615Z           ]
2026-06-07T22:53:32.2771770Z         }
2026-06-07T22:53:32.2771927Z       }
2026-06-07T22:53:32.2772085Z     },
2026-06-07T22:53:32.2772247Z     {
2026-06-07T22:53:32.2772423Z       "id": "REQ-PAIR-4",
2026-06-07T22:53:32.2772643Z       "title": "Subnet naming on first pairing",
2026-06-07T22:53:32.2772905Z       "requiredStages": [
2026-06-07T22:53:32.2773109Z         "impl",
2026-06-07T22:53:32.2773277Z         "unit"
2026-06-07T22:53:32.2773443Z       ],
2026-06-07T22:53:32.2773602Z       "stages": {
2026-06-07T22:53:32.2773772Z         "doc": {
2026-06-07T22:53:32.2773954Z           "complete": false,
2026-06-07T22:53:32.2774160Z           "evidence": []
2026-06-07T22:53:32.2774343Z         },
2026-06-07T22:53:32.2774515Z         "impl": {
2026-06-07T22:53:32.2774691Z           "complete": true,
2026-06-07T22:53:32.2774892Z           "evidence": [
2026-06-07T22:53:32.2775077Z             {
2026-06-07T22:53:32.2775274Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-07T22:53:32.2775531Z               "line": 154
2026-06-07T22:53:32.2775712Z             }
2026-06-07T22:53:32.2775869Z           ]
2026-06-07T22:53:32.2776031Z         },
2026-06-07T22:53:32.2776194Z         "int": {
2026-06-07T22:53:32.2776370Z           "complete": false,
2026-06-07T22:53:32.2776570Z           "evidence": []
2026-06-07T22:53:32.2776753Z         },
2026-06-07T22:53:32.2776913Z         "unit": {
2026-06-07T22:53:32.2777178Z           "complete": true,
2026-06-07T22:53:32.2777373Z           "evidence": [
2026-06-07T22:53:32.2777549Z             {
2026-06-07T22:53:32.2777764Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2778037Z               "line": 1151
2026-06-07T22:53:32.2778221Z             }
2026-06-07T22:53:32.2778380Z           ]
2026-06-07T22:53:32.2778541Z         }
2026-06-07T22:53:32.2778699Z       }
2026-06-07T22:53:32.2778860Z     },
2026-06-07T22:53:32.2779014Z     {
2026-06-07T22:53:32.2779180Z       "id": "REQ-PAIR-5",
2026-06-07T22:53:32.2779579Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-07T22:53:32.2780036Z       "requiredStages": [
2026-06-07T22:53:32.2780225Z         "impl",
2026-06-07T22:53:32.2780416Z         "unit",
2026-06-07T22:53:32.2780594Z         "int"
2026-06-07T22:53:32.2780759Z       ],
2026-06-07T22:53:32.2780918Z       "stages": {
2026-06-07T22:53:32.2781089Z         "doc": {
2026-06-07T22:53:32.2781261Z           "complete": false,
2026-06-07T22:53:32.2781465Z           "evidence": []
2026-06-07T22:53:32.2781651Z         },
2026-06-07T22:53:32.2781819Z         "impl": {
2026-06-07T22:53:32.2781999Z           "complete": true,
2026-06-07T22:53:32.2782199Z           "evidence": [
2026-06-07T22:53:32.2782377Z             {
2026-06-07T22:53:32.2782588Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2782850Z               "line": 44
2026-06-07T22:53:32.2783035Z             },
2026-06-07T22:53:32.2783193Z             {
2026-06-07T22:53:32.2783398Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2783665Z               "line": 96
2026-06-07T22:53:32.2783852Z             },
2026-06-07T22:53:32.2784027Z             {
2026-06-07T22:53:32.2784227Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2784608Z               "line": 107
2026-06-07T22:53:32.2784796Z             },
2026-06-07T22:53:32.2784961Z             {
2026-06-07T22:53:32.2785166Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2785425Z               "line": 124
2026-06-07T22:53:32.2785609Z             },
2026-06-07T22:53:32.2785867Z             {
2026-06-07T22:53:32.2786063Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2786325Z               "line": 155
2026-06-07T22:53:32.2786506Z             },
2026-06-07T22:53:32.2786669Z             {
2026-06-07T22:53:32.2786863Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2787197Z               "line": 195
2026-06-07T22:53:32.2787379Z             },
2026-06-07T22:53:32.2787544Z             {
2026-06-07T22:53:32.2787743Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2787995Z               "line": 251
2026-06-07T22:53:32.2788180Z             },
2026-06-07T22:53:32.2788353Z             {
2026-06-07T22:53:32.2788577Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2788858Z               "line": 33
2026-06-07T22:53:32.2789044Z             },
2026-06-07T22:53:32.2789206Z             {
2026-06-07T22:53:32.2789420Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2789702Z               "line": 45
2026-06-07T22:53:32.2789880Z             },
2026-06-07T22:53:32.2790040Z             {
2026-06-07T22:53:32.2790253Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2790524Z               "line": 59
2026-06-07T22:53:32.2790709Z             },
2026-06-07T22:53:32.2790872Z             {
2026-06-07T22:53:32.2791071Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2791334Z               "line": 359
2026-06-07T22:53:32.2791525Z             }
2026-06-07T22:53:32.2791682Z           ]
2026-06-07T22:53:32.2791840Z         },
2026-06-07T22:53:32.2792011Z         "int": {
2026-06-07T22:53:32.2792103Z           "complete": true,
2026-06-07T22:53:32.2792197Z           "evidence": [
2026-06-07T22:53:32.2792288Z             {
2026-06-07T22:53:32.2792413Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2792508Z               "line": 790
2026-06-07T22:53:32.2792592Z             },
2026-06-07T22:53:32.2792677Z             {
2026-06-07T22:53:32.2792801Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2792890Z               "line": 342
2026-06-07T22:53:32.2792975Z             }
2026-06-07T22:53:32.2793062Z           ]
2026-06-07T22:53:32.2793148Z         },
2026-06-07T22:53:32.2793233Z         "unit": {
2026-06-07T22:53:32.2793328Z           "complete": true,
2026-06-07T22:53:32.2793425Z           "evidence": [
2026-06-07T22:53:32.2793511Z             {
2026-06-07T22:53:32.2793633Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2793725Z               "line": 293
2026-06-07T22:53:32.2793815Z             },
2026-06-07T22:53:32.2793896Z             {
2026-06-07T22:53:32.2794021Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2794116Z               "line": 304
2026-06-07T22:53:32.2794197Z             },
2026-06-07T22:53:32.2794292Z             {
2026-06-07T22:53:32.2794417Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.2794506Z               "line": 406
2026-06-07T22:53:32.2794597Z             },
2026-06-07T22:53:32.2794679Z             {
2026-06-07T22:53:32.2794816Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2794907Z               "line": 72
2026-06-07T22:53:32.2794994Z             },
2026-06-07T22:53:32.2795079Z             {
2026-06-07T22:53:32.2795212Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2795304Z               "line": 82
2026-06-07T22:53:32.2795394Z             },
2026-06-07T22:53:32.2795573Z             {
2026-06-07T22:53:32.2795717Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2795807Z               "line": 100
2026-06-07T22:53:32.2795892Z             },
2026-06-07T22:53:32.2795975Z             {
2026-06-07T22:53:32.2796203Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2796294Z               "line": 110
2026-06-07T22:53:32.2796380Z             },
2026-06-07T22:53:32.2796460Z             {
2026-06-07T22:53:32.2796595Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-07T22:53:32.2796684Z               "line": 125
2026-06-07T22:53:32.2796770Z             },
2026-06-07T22:53:32.2796851Z             {
2026-06-07T22:53:32.2797041Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2797137Z               "line": 896
2026-06-07T22:53:32.2797224Z             },
2026-06-07T22:53:32.2797310Z             {
2026-06-07T22:53:32.2797442Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2797534Z               "line": 961
2026-06-07T22:53:32.2797625Z             },
2026-06-07T22:53:32.2797704Z             {
2026-06-07T22:53:32.2797830Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.2797925Z               "line": 1215
2026-06-07T22:53:32.2798009Z             }
2026-06-07T22:53:32.2798095Z           ]
2026-06-07T22:53:32.2798176Z         }
2026-06-07T22:53:32.2798262Z       }
2026-06-07T22:53:32.2798345Z     },
2026-06-07T22:53:32.2798431Z     {
2026-06-07T22:53:32.2798522Z       "id": "REQ-PAIR-6",
2026-06-07T22:53:32.2798784Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-07T22:53:32.2798875Z       "requiredStages": [
2026-06-07T22:53:32.2798961Z         "impl",
2026-06-07T22:53:32.2799051Z         "unit"
2026-06-07T22:53:32.2799132Z       ],
2026-06-07T22:53:32.2799218Z       "stages": {
2026-06-07T22:53:32.2799313Z         "doc": {
2026-06-07T22:53:32.2799413Z           "complete": false,
2026-06-07T22:53:32.2799500Z           "evidence": []
2026-06-07T22:53:32.2799585Z         },
2026-06-07T22:53:32.2799675Z         "impl": {
2026-06-07T22:53:32.2799767Z           "complete": true,
2026-06-07T22:53:32.2799857Z           "evidence": [
2026-06-07T22:53:32.2799938Z             {
2026-06-07T22:53:32.2800047Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2800139Z               "line": 1972
2026-06-07T22:53:32.2800218Z             },
2026-06-07T22:53:32.2800305Z             {
2026-06-07T22:53:32.2800406Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2800496Z               "line": 2208
2026-06-07T22:53:32.2800576Z             },
2026-06-07T22:53:32.2800661Z             {
2026-06-07T22:53:32.2800776Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2800860Z               "line": 18
2026-06-07T22:53:32.2800950Z             },
2026-06-07T22:53:32.2801041Z             {
2026-06-07T22:53:32.2801151Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2801241Z               "line": 49
2026-06-07T22:53:32.2801326Z             },
2026-06-07T22:53:32.2801409Z             {
2026-06-07T22:53:32.2801518Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2801617Z               "line": 163
2026-06-07T22:53:32.2801699Z             }
2026-06-07T22:53:32.2801780Z           ]
2026-06-07T22:53:32.2801861Z         },
2026-06-07T22:53:32.2801946Z         "int": {
2026-06-07T22:53:32.2802043Z           "complete": false,
2026-06-07T22:53:32.2802128Z           "evidence": []
2026-06-07T22:53:32.2802218Z         },
2026-06-07T22:53:32.2802300Z         "unit": {
2026-06-07T22:53:32.2802395Z           "complete": true,
2026-06-07T22:53:32.2802480Z           "evidence": [
2026-06-07T22:53:32.2802562Z             {
2026-06-07T22:53:32.2802668Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2802857Z               "line": 6771
2026-06-07T22:53:32.2802944Z             },
2026-06-07T22:53:32.2803025Z             {
2026-06-07T22:53:32.2803133Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2803228Z               "line": 6788
2026-06-07T22:53:32.2803310Z             },
2026-06-07T22:53:32.2803484Z             {
2026-06-07T22:53:32.2803593Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2803680Z               "line": 228
2026-06-07T22:53:32.2803765Z             },
2026-06-07T22:53:32.2803855Z             {
2026-06-07T22:53:32.2803970Z               "path": "crates/spt/src/elevation.rs",
2026-06-07T22:53:32.2804061Z               "line": 237
2026-06-07T22:53:32.2804146Z             }
2026-06-07T22:53:32.2804218Z           ]
2026-06-07T22:53:32.2804299Z         }
2026-06-07T22:53:32.2804385Z       }
2026-06-07T22:53:32.2804470Z     },
2026-06-07T22:53:32.2804551Z     {
2026-06-07T22:53:32.2804638Z       "id": "REQ-PAIR-7",
2026-06-07T22:53:32.2804862Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-07T22:53:32.2804957Z       "requiredStages": [],
2026-06-07T22:53:32.2805038Z       "stages": {
2026-06-07T22:53:32.2805119Z         "doc": {
2026-06-07T22:53:32.2805211Z           "complete": false,
2026-06-07T22:53:32.2805301Z           "evidence": []
2026-06-07T22:53:32.2805390Z         },
2026-06-07T22:53:32.2805496Z         "impl": {
2026-06-07T22:53:32.2805592Z           "complete": false,
2026-06-07T22:53:32.2805705Z           "evidence": []
2026-06-07T22:53:32.2805806Z         },
2026-06-07T22:53:32.2805897Z         "int": {
2026-06-07T22:53:32.2805991Z           "complete": false,
2026-06-07T22:53:32.2806076Z           "evidence": []
2026-06-07T22:53:32.2806162Z         },
2026-06-07T22:53:32.2806244Z         "unit": {
2026-06-07T22:53:32.2806339Z           "complete": false,
2026-06-07T22:53:32.2806433Z           "evidence": []
2026-06-07T22:53:32.2806520Z         }
2026-06-07T22:53:32.2806601Z       }
2026-06-07T22:53:32.2806691Z     },
2026-06-07T22:53:32.2806782Z     {
2026-06-07T22:53:32.2806873Z       "id": "REQ-PAIR-8",
2026-06-07T22:53:32.2808346Z       "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-07T22:53:32.2808447Z       "requiredStages": [
2026-06-07T22:53:32.2808537Z         "impl",
2026-06-07T22:53:32.2808622Z         "unit"
2026-06-07T22:53:32.2808707Z       ],
2026-06-07T22:53:32.2808793Z       "stages": {
2026-06-07T22:53:32.2808882Z         "doc": {
2026-06-07T22:53:32.2808972Z           "complete": false,
2026-06-07T22:53:32.2809063Z           "evidence": []
2026-06-07T22:53:32.2809153Z         },
2026-06-07T22:53:32.2809243Z         "impl": {
2026-06-07T22:53:32.2809349Z           "complete": true,
2026-06-07T22:53:32.2809440Z           "evidence": [
2026-06-07T22:53:32.2809526Z             {
2026-06-07T22:53:32.2809653Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.2809746Z               "line": 466
2026-06-07T22:53:32.2809840Z             },
2026-06-07T22:53:32.2809930Z             {
2026-06-07T22:53:32.2810060Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2810150Z               "line": 22
2026-06-07T22:53:32.2810230Z             },
2026-06-07T22:53:32.2810317Z             {
2026-06-07T22:53:32.2810459Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2810560Z               "line": 76
2026-06-07T22:53:32.2810647Z             },
2026-06-07T22:53:32.2810728Z             {
2026-06-07T22:53:32.2810851Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2810937Z               "line": 127
2026-06-07T22:53:32.2811126Z             }
2026-06-07T22:53:32.2811217Z           ]
2026-06-07T22:53:32.2811303Z         },
2026-06-07T22:53:32.2811388Z         "int": {
2026-06-07T22:53:32.2811477Z           "complete": false,
2026-06-07T22:53:32.2811571Z           "evidence": []
2026-06-07T22:53:32.2811654Z         },
2026-06-07T22:53:32.2811849Z         "unit": {
2026-06-07T22:53:32.2811944Z           "complete": true,
2026-06-07T22:53:32.2812030Z           "evidence": [
2026-06-07T22:53:32.2812115Z             {
2026-06-07T22:53:32.2812235Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2812331Z               "line": 183
2026-06-07T22:53:32.2812412Z             },
2026-06-07T22:53:32.2812497Z             {
2026-06-07T22:53:32.2812618Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2812707Z               "line": 195
2026-06-07T22:53:32.2812792Z             },
2026-06-07T22:53:32.2812875Z             {
2026-06-07T22:53:32.2813002Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2813093Z               "line": 211
2026-06-07T22:53:32.2813179Z             },
2026-06-07T22:53:32.2813266Z             {
2026-06-07T22:53:32.2813389Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-07T22:53:32.2813479Z               "line": 227
2026-06-07T22:53:32.2813572Z             }
2026-06-07T22:53:32.2813656Z           ]
2026-06-07T22:53:32.2813736Z         }
2026-06-07T22:53:32.2813826Z       }
2026-06-07T22:53:32.2813912Z     },
2026-06-07T22:53:32.2813996Z     {
2026-06-07T22:53:32.2814091Z       "id": "REQ-PRES-1",
2026-06-07T22:53:32.2815466Z       "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-07T22:53:32.2815565Z       "requiredStages": [
2026-06-07T22:53:32.2815650Z         "impl",
2026-06-07T22:53:32.2815737Z         "unit",
2026-06-07T22:53:32.2815823Z         "int"
2026-06-07T22:53:32.2815908Z       ],
2026-06-07T22:53:32.2816008Z       "stages": {
2026-06-07T22:53:32.2816090Z         "doc": {
2026-06-07T22:53:32.2816185Z           "complete": true,
2026-06-07T22:53:32.2816274Z           "evidence": [
2026-06-07T22:53:32.2816366Z             {
2026-06-07T22:53:32.2816472Z               "path": "docs/DEFERRED.md",
2026-06-07T22:53:32.2816560Z               "line": 11
2026-06-07T22:53:32.2816645Z             }
2026-06-07T22:53:32.2816732Z           ]
2026-06-07T22:53:32.2816819Z         },
2026-06-07T22:53:32.2816909Z         "impl": {
2026-06-07T22:53:32.2817085Z           "complete": true,
2026-06-07T22:53:32.2817181Z           "evidence": [
2026-06-07T22:53:32.2817266Z             {
2026-06-07T22:53:32.2817395Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2817486Z               "line": 475
2026-06-07T22:53:32.2817571Z             },
2026-06-07T22:53:32.2817657Z             {
2026-06-07T22:53:32.2817772Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2817867Z               "line": 527
2026-06-07T22:53:32.2817957Z             },
2026-06-07T22:53:32.2818048Z             {
2026-06-07T22:53:32.2818162Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2818252Z               "line": 181
2026-06-07T22:53:32.2818340Z             },
2026-06-07T22:53:32.2818425Z             {
2026-06-07T22:53:32.2818539Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2818625Z               "line": 207
2026-06-07T22:53:32.2818707Z             },
2026-06-07T22:53:32.2818801Z             {
2026-06-07T22:53:32.2818916Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2819012Z               "line": 28
2026-06-07T22:53:32.2819205Z             },
2026-06-07T22:53:32.2819296Z             {
2026-06-07T22:53:32.2819414Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2819508Z               "line": 105
2026-06-07T22:53:32.2819594Z             },
2026-06-07T22:53:32.2819676Z             {
2026-06-07T22:53:32.2819880Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2819972Z               "line": 161
2026-06-07T22:53:32.2820047Z             },
2026-06-07T22:53:32.2820133Z             {
2026-06-07T22:53:32.2820258Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2820362Z               "line": 180
2026-06-07T22:53:32.2820448Z             },
2026-06-07T22:53:32.2820533Z             {
2026-06-07T22:53:32.2820653Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2820739Z               "line": 328
2026-06-07T22:53:32.2820824Z             },
2026-06-07T22:53:32.2820911Z             {
2026-06-07T22:53:32.2821043Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2821134Z               "line": 289
2026-06-07T22:53:32.2821217Z             },
2026-06-07T22:53:32.2821297Z             {
2026-06-07T22:53:32.2821420Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2821512Z               "line": 336
2026-06-07T22:53:32.2821598Z             },
2026-06-07T22:53:32.2821687Z             {
2026-06-07T22:53:32.2821800Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2821891Z               "line": 362
2026-06-07T22:53:32.2821976Z             },
2026-06-07T22:53:32.2822065Z             {
2026-06-07T22:53:32.2822180Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2822276Z               "line": 100
2026-06-07T22:53:32.2822361Z             }
2026-06-07T22:53:32.2822442Z           ]
2026-06-07T22:53:32.2822529Z         },
2026-06-07T22:53:32.2822614Z         "int": {
2026-06-07T22:53:32.2822713Z           "complete": true,
2026-06-07T22:53:32.2822800Z           "evidence": [
2026-06-07T22:53:32.2822891Z             {
2026-06-07T22:53:32.2823019Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2823105Z               "line": 546
2026-06-07T22:53:32.2823192Z             },
2026-06-07T22:53:32.2823277Z             {
2026-06-07T22:53:32.2823400Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2823497Z               "line": 675
2026-06-07T22:53:32.2823582Z             },
2026-06-07T22:53:32.2823667Z             {
2026-06-07T22:53:32.2823783Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2823868Z               "line": 1068
2026-06-07T22:53:32.2823954Z             }
2026-06-07T22:53:32.2824040Z           ]
2026-06-07T22:53:32.2824107Z         },
2026-06-07T22:53:32.2824179Z         "unit": {
2026-06-07T22:53:32.2824272Z           "complete": true,
2026-06-07T22:53:32.2824357Z           "evidence": [
2026-06-07T22:53:32.2824449Z             {
2026-06-07T22:53:32.2824589Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.2824684Z               "line": 601
2026-06-07T22:53:32.2824771Z             },
2026-06-07T22:53:32.2824857Z             {
2026-06-07T22:53:32.2824975Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2825071Z               "line": 237
2026-06-07T22:53:32.2825157Z             },
2026-06-07T22:53:32.2825237Z             {
2026-06-07T22:53:32.2825362Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2825453Z               "line": 268
2026-06-07T22:53:32.2825538Z             },
2026-06-07T22:53:32.2825624Z             {
2026-06-07T22:53:32.2825740Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2825829Z               "line": 304
2026-06-07T22:53:32.2825915Z             },
2026-06-07T22:53:32.2826001Z             {
2026-06-07T22:53:32.2826120Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-07T22:53:32.2826282Z               "line": 335
2026-06-07T22:53:32.2826374Z             },
2026-06-07T22:53:32.2826454Z             {
2026-06-07T22:53:32.2826582Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.2826670Z               "line": 901
2026-06-07T22:53:32.2826830Z             },
2026-06-07T22:53:32.2826911Z             {
2026-06-07T22:53:32.2827120Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.2827210Z               "line": 980
2026-06-07T22:53:32.2827292Z             }
2026-06-07T22:53:32.2827379Z           ]
2026-06-07T22:53:32.2827464Z         }
2026-06-07T22:53:32.2827548Z       }
2026-06-07T22:53:32.2827636Z     },
2026-06-07T22:53:32.2827717Z     {
2026-06-07T22:53:32.2827816Z       "id": "REQ-REACH-1",
2026-06-07T22:53:32.2827960Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-07T22:53:32.2828051Z       "requiredStages": [
2026-06-07T22:53:32.2828145Z         "impl",
2026-06-07T22:53:32.2828241Z         "unit",
2026-06-07T22:53:32.2828327Z         "int"
2026-06-07T22:53:32.2828408Z       ],
2026-06-07T22:53:32.2828498Z       "stages": {
2026-06-07T22:53:32.2828580Z         "doc": {
2026-06-07T22:53:32.2828675Z           "complete": false,
2026-06-07T22:53:32.2828770Z           "evidence": []
2026-06-07T22:53:32.2828861Z         },
2026-06-07T22:53:32.2828947Z         "impl": {
2026-06-07T22:53:32.2829037Z           "complete": true,
2026-06-07T22:53:32.2829128Z           "evidence": [
2026-06-07T22:53:32.2829210Z             {
2026-06-07T22:53:32.2829338Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-07T22:53:32.2829423Z               "line": 140
2026-06-07T22:53:32.2829510Z             },
2026-06-07T22:53:32.2829596Z             {
2026-06-07T22:53:32.2829709Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2829799Z               "line": 76
2026-06-07T22:53:32.2829885Z             },
2026-06-07T22:53:32.2829970Z             {
2026-06-07T22:53:32.2830087Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2830178Z               "line": 222
2026-06-07T22:53:32.2830265Z             },
2026-06-07T22:53:32.2830345Z             {
2026-06-07T22:53:32.2830459Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2830551Z               "line": 422
2026-06-07T22:53:32.2830637Z             },
2026-06-07T22:53:32.2830716Z             {
2026-06-07T22:53:32.2830828Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2830918Z               "line": 529
2026-06-07T22:53:32.2831003Z             },
2026-06-07T22:53:32.2831089Z             {
2026-06-07T22:53:32.2831199Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T22:53:32.2831290Z               "line": 39
2026-06-07T22:53:32.2831375Z             },
2026-06-07T22:53:32.2831462Z             {
2026-06-07T22:53:32.2831576Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2831666Z               "line": 229
2026-06-07T22:53:32.2831757Z             },
2026-06-07T22:53:32.2831843Z             {
2026-06-07T22:53:32.2831957Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T22:53:32.2832048Z               "line": 88
2026-06-07T22:53:32.2832134Z             },
2026-06-07T22:53:32.2832219Z             {
2026-06-07T22:53:32.2832327Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T22:53:32.2832419Z               "line": 98
2026-06-07T22:53:32.2832499Z             },
2026-06-07T22:53:32.2832588Z             {
2026-06-07T22:53:32.2832706Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2832798Z               "line": 210
2026-06-07T22:53:32.2832884Z             }
2026-06-07T22:53:32.2832964Z           ]
2026-06-07T22:53:32.2833050Z         },
2026-06-07T22:53:32.2835244Z         "int": {
2026-06-07T22:53:32.2835365Z           "complete": true,
2026-06-07T22:53:32.2835464Z           "evidence": [
2026-06-07T22:53:32.2835578Z             {
2026-06-07T22:53:32.2835869Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2835966Z               "line": 404
2026-06-07T22:53:32.2836051Z             },
2026-06-07T22:53:32.2836131Z             {
2026-06-07T22:53:32.2836266Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2836446Z               "line": 503
2026-06-07T22:53:32.2836532Z             },
2026-06-07T22:53:32.2836620Z             {
2026-06-07T22:53:32.2836742Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2836833Z               "line": 901
2026-06-07T22:53:32.2836920Z             },
2026-06-07T22:53:32.2837123Z             {
2026-06-07T22:53:32.2837244Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2837337Z               "line": 1196
2026-06-07T22:53:32.2837423Z             }
2026-06-07T22:53:32.2837506Z           ]
2026-06-07T22:53:32.2837588Z         },
2026-06-07T22:53:32.2837676Z         "unit": {
2026-06-07T22:53:32.2837780Z           "complete": true,
2026-06-07T22:53:32.2837866Z           "evidence": [
2026-06-07T22:53:32.2837953Z             {
2026-06-07T22:53:32.2838067Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2838157Z               "line": 639
2026-06-07T22:53:32.2838239Z             },
2026-06-07T22:53:32.2838329Z             {
2026-06-07T22:53:32.2838443Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-07T22:53:32.2838530Z               "line": 660
2026-06-07T22:53:32.2838620Z             },
2026-06-07T22:53:32.2838705Z             {
2026-06-07T22:53:32.2838821Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-07T22:53:32.2838911Z               "line": 390
2026-06-07T22:53:32.2838996Z             },
2026-06-07T22:53:32.2839082Z             {
2026-06-07T22:53:32.2839197Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T22:53:32.2839287Z               "line": 92
2026-06-07T22:53:32.2839373Z             },
2026-06-07T22:53:32.2839450Z             {
2026-06-07T22:53:32.2839573Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-07T22:53:32.2839664Z               "line": 223
2026-06-07T22:53:32.2839746Z             },
2026-06-07T22:53:32.2839832Z             {
2026-06-07T22:53:32.2839945Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T22:53:32.2840031Z               "line": 96
2026-06-07T22:53:32.2840119Z             },
2026-06-07T22:53:32.2840245Z             {
2026-06-07T22:53:32.2840354Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-07T22:53:32.2840445Z               "line": 146
2026-06-07T22:53:32.2840530Z             },
2026-06-07T22:53:32.2840614Z             {
2026-06-07T22:53:32.2840724Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.2840816Z               "line": 502
2026-06-07T22:53:32.2840901Z             },
2026-06-07T22:53:32.2840980Z             {
2026-06-07T22:53:32.2841092Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T22:53:32.2841187Z               "line": 118
2026-06-07T22:53:32.2841272Z             },
2026-06-07T22:53:32.2841358Z             {
2026-06-07T22:53:32.2841464Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-07T22:53:32.2841554Z               "line": 148
2026-06-07T22:53:32.2841644Z             },
2026-06-07T22:53:32.2841735Z             {
2026-06-07T22:53:32.2841854Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2841949Z               "line": 602
2026-06-07T22:53:32.2842022Z             }
2026-06-07T22:53:32.2842102Z           ]
2026-06-07T22:53:32.2842183Z         }
2026-06-07T22:53:32.2842269Z       }
2026-06-07T22:53:32.2842356Z     },
2026-06-07T22:53:32.2842441Z     {
2026-06-07T22:53:32.2842532Z       "id": "REQ-REACH-2",
2026-06-07T22:53:32.2842690Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-07T22:53:32.2842788Z       "requiredStages": [],
2026-06-07T22:53:32.2842878Z       "stages": {
2026-06-07T22:53:32.2842964Z         "doc": {
2026-06-07T22:53:32.2843162Z           "complete": false,
2026-06-07T22:53:32.2843257Z           "evidence": []
2026-06-07T22:53:32.2843339Z         },
2026-06-07T22:53:32.2843425Z         "impl": {
2026-06-07T22:53:32.2843514Z           "complete": false,
2026-06-07T22:53:32.2843610Z           "evidence": []
2026-06-07T22:53:32.2843801Z         },
2026-06-07T22:53:32.2843887Z         "int": {
2026-06-07T22:53:32.2843978Z           "complete": false,
2026-06-07T22:53:32.2844068Z           "evidence": []
2026-06-07T22:53:32.2844153Z         },
2026-06-07T22:53:32.2844235Z         "unit": {
2026-06-07T22:53:32.2844331Z           "complete": false,
2026-06-07T22:53:32.2844421Z           "evidence": []
2026-06-07T22:53:32.2844511Z         }
2026-06-07T22:53:32.2844593Z       }
2026-06-07T22:53:32.2844674Z     },
2026-06-07T22:53:32.2844760Z     {
2026-06-07T22:53:32.2844850Z       "id": "REQ-REL-1",
2026-06-07T22:53:32.2845232Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-07T22:53:32.2845332Z       "requiredStages": [
2026-06-07T22:53:32.2845416Z         "doc",
2026-06-07T22:53:32.2845501Z         "impl"
2026-06-07T22:53:32.2845583Z       ],
2026-06-07T22:53:32.2845672Z       "stages": {
2026-06-07T22:53:32.2845757Z         "doc": {
2026-06-07T22:53:32.2845858Z           "complete": true,
2026-06-07T22:53:32.2845944Z           "evidence": [
2026-06-07T22:53:32.2846029Z             {
2026-06-07T22:53:32.2846240Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-07T22:53:32.2846321Z               "line": 3
2026-06-07T22:53:32.2846405Z             }
2026-06-07T22:53:32.2846482Z           ]
2026-06-07T22:53:32.2846559Z         },
2026-06-07T22:53:32.2846668Z         "impl": {
2026-06-07T22:53:32.2846802Z           "complete": true,
2026-06-07T22:53:32.2847039Z           "evidence": [
2026-06-07T22:53:32.2847165Z             {
2026-06-07T22:53:32.2847708Z               "path": ".github/workflows/docs-publish.yml",
2026-06-07T22:53:32.2847861Z               "line": 11
2026-06-07T22:53:32.2847969Z             },
2026-06-07T22:53:32.2848076Z             {
2026-06-07T22:53:32.2848231Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2848345Z               "line": 265
2026-06-07T22:53:32.2848456Z             }
2026-06-07T22:53:32.2848556Z           ]
2026-06-07T22:53:32.2848655Z         },
2026-06-07T22:53:32.2848761Z         "int": {
2026-06-07T22:53:32.2848875Z           "complete": false,
2026-06-07T22:53:32.2848984Z           "evidence": []
2026-06-07T22:53:32.2849086Z         },
2026-06-07T22:53:32.2849209Z         "unit": {
2026-06-07T22:53:32.2849332Z           "complete": false,
2026-06-07T22:53:32.2849447Z           "evidence": []
2026-06-07T22:53:32.2849556Z         }
2026-06-07T22:53:32.2849662Z       }
2026-06-07T22:53:32.2849767Z     },
2026-06-07T22:53:32.2849871Z     {
2026-06-07T22:53:32.2849986Z       "id": "REQ-REL-2",
2026-06-07T22:53:32.2850601Z       "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-07T22:53:32.2850726Z       "requiredStages": [
2026-06-07T22:53:32.2850834Z         "impl",
2026-06-07T22:53:32.2850938Z         "int"
2026-06-07T22:53:32.2851048Z       ],
2026-06-07T22:53:32.2851151Z       "stages": {
2026-06-07T22:53:32.2851260Z         "doc": {
2026-06-07T22:53:32.2851376Z           "complete": true,
2026-06-07T22:53:32.2851484Z           "evidence": [
2026-06-07T22:53:32.2851589Z             {
2026-06-07T22:53:32.2851728Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-07T22:53:32.2851842Z               "line": 6
2026-06-07T22:53:32.2851938Z             }
2026-06-07T22:53:32.2852042Z           ]
2026-06-07T22:53:32.2852142Z         },
2026-06-07T22:53:32.2852243Z         "impl": {
2026-06-07T22:53:32.2852357Z           "complete": true,
2026-06-07T22:53:32.2852462Z           "evidence": [
2026-06-07T22:53:32.2852781Z             {
2026-06-07T22:53:32.2852935Z               "path": ".github/workflows/release.yml",
2026-06-07T22:53:32.2853048Z               "line": 16
2026-06-07T22:53:32.2853158Z             },
2026-06-07T22:53:32.2853259Z             {
2026-06-07T22:53:32.2853396Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2853629Z               "line": 352
2026-06-07T22:53:32.2853732Z             },
2026-06-07T22:53:32.2853836Z             {
2026-06-07T22:53:32.2853966Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2854074Z               "line": 424
2026-06-07T22:53:32.2854175Z             },
2026-06-07T22:53:32.2854276Z             {
2026-06-07T22:53:32.2854403Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2854514Z               "line": 484
2026-06-07T22:53:32.2854619Z             },
2026-06-07T22:53:32.2854718Z             {
2026-06-07T22:53:32.2854853Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2854967Z               "line": 591
2026-06-07T22:53:32.2855066Z             }
2026-06-07T22:53:32.2855168Z           ]
2026-06-07T22:53:32.2855272Z         },
2026-06-07T22:53:32.2855371Z         "int": {
2026-06-07T22:53:32.2855487Z           "complete": true,
2026-06-07T22:53:32.2855596Z           "evidence": [
2026-06-07T22:53:32.2855701Z             {
2026-06-07T22:53:32.2855864Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-07T22:53:32.2855972Z               "line": 13
2026-06-07T22:53:32.2856074Z             }
2026-06-07T22:53:32.2856174Z           ]
2026-06-07T22:53:32.2856281Z         },
2026-06-07T22:53:32.2856386Z         "unit": {
2026-06-07T22:53:32.2856497Z           "complete": false,
2026-06-07T22:53:32.2856610Z           "evidence": []
2026-06-07T22:53:32.2856711Z         }
2026-06-07T22:53:32.2856812Z       }
2026-06-07T22:53:32.2856911Z     },
2026-06-07T22:53:32.2857282Z     {
2026-06-07T22:53:32.2857522Z       "id": "REQ-REL-3",
2026-06-07T22:53:32.2857974Z       "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-07T22:53:32.2858076Z       "requiredStages": [
2026-06-07T22:53:32.2858179Z         "impl",
2026-06-07T22:53:32.2858314Z         "unit"
2026-06-07T22:53:32.2858442Z       ],
2026-06-07T22:53:32.2858580Z       "stages": {
2026-06-07T22:53:32.2858715Z         "doc": {
2026-06-07T22:53:32.2858860Z           "complete": false,
2026-06-07T22:53:32.2859003Z           "evidence": []
2026-06-07T22:53:32.2859130Z         },
2026-06-07T22:53:32.2859268Z         "impl": {
2026-06-07T22:53:32.2859459Z           "complete": true,
2026-06-07T22:53:32.2859607Z           "evidence": [
2026-06-07T22:53:32.2859741Z             {
2026-06-07T22:53:32.2860008Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2860150Z               "line": 224
2026-06-07T22:53:32.2860280Z             },
2026-06-07T22:53:32.2860422Z             {
2026-06-07T22:53:32.2860595Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2860751Z               "line": 276
2026-06-07T22:53:32.2860890Z             },
2026-06-07T22:53:32.2860999Z             {
2026-06-07T22:53:32.2861166Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2861360Z               "line": 329
2026-06-07T22:53:32.2861508Z             },
2026-06-07T22:53:32.2861654Z             {
2026-06-07T22:53:32.2861840Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2861997Z               "line": 353
2026-06-07T22:53:32.2862135Z             },
2026-06-07T22:53:32.2862279Z             {
2026-06-07T22:53:32.2862464Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.2862617Z               "line": 392
2026-06-07T22:53:32.2862754Z             }
2026-06-07T22:53:32.2862889Z           ]
2026-06-07T22:53:32.2863022Z         },
2026-06-07T22:53:32.2863157Z         "int": {
2026-06-07T22:53:32.2863418Z           "complete": false,
2026-06-07T22:53:32.2863528Z           "evidence": []
2026-06-07T22:53:32.2863623Z         },
2026-06-07T22:53:32.2863723Z         "unit": {
2026-06-07T22:53:32.2863824Z           "complete": true,
2026-06-07T22:53:32.2863927Z           "evidence": [
2026-06-07T22:53:32.2864022Z             {
2026-06-07T22:53:32.2864263Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2864358Z               "line": 977
2026-06-07T22:53:32.2864454Z             },
2026-06-07T22:53:32.2864550Z             {
2026-06-07T22:53:32.2864677Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.2864779Z               "line": 1036
2026-06-07T22:53:32.2864874Z             }
2026-06-07T22:53:32.2864968Z           ]
2026-06-07T22:53:32.2865055Z         }
2026-06-07T22:53:32.2865155Z       }
2026-06-07T22:53:32.2865250Z     },
2026-06-07T22:53:32.2865341Z     {
2026-06-07T22:53:32.2865460Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-07T22:53:32.2865680Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-07T22:53:32.2865785Z       "requiredStages": [
2026-06-07T22:53:32.2865880Z         "impl",
2026-06-07T22:53:32.2865980Z         "unit"
2026-06-07T22:53:32.2866076Z       ],
2026-06-07T22:53:32.2866170Z       "stages": {
2026-06-07T22:53:32.2866270Z         "doc": {
2026-06-07T22:53:32.2866372Z           "complete": false,
2026-06-07T22:53:32.2866475Z           "evidence": []
2026-06-07T22:53:32.2866565Z         },
2026-06-07T22:53:32.2866670Z         "impl": {
2026-06-07T22:53:32.2866774Z           "complete": true,
2026-06-07T22:53:32.2866872Z           "evidence": [
2026-06-07T22:53:32.2867055Z             {
2026-06-07T22:53:32.2867187Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2867288Z               "line": 18
2026-06-07T22:53:32.2867388Z             },
2026-06-07T22:53:32.2867483Z             {
2026-06-07T22:53:32.2867617Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2867717Z               "line": 35
2026-06-07T22:53:32.2867812Z             },
2026-06-07T22:53:32.2867907Z             {
2026-06-07T22:53:32.2868032Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2868132Z               "line": 72
2026-06-07T22:53:32.2868222Z             }
2026-06-07T22:53:32.2868323Z           ]
2026-06-07T22:53:32.2868417Z         },
2026-06-07T22:53:32.2868513Z         "int": {
2026-06-07T22:53:32.2868614Z           "complete": false,
2026-06-07T22:53:32.2868713Z           "evidence": []
2026-06-07T22:53:32.2868803Z         },
2026-06-07T22:53:32.2868901Z         "unit": {
2026-06-07T22:53:32.2869009Z           "complete": true,
2026-06-07T22:53:32.2869109Z           "evidence": [
2026-06-07T22:53:32.2869201Z             {
2026-06-07T22:53:32.2869329Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2869432Z               "line": 214
2026-06-07T22:53:32.2869523Z             },
2026-06-07T22:53:32.2869619Z             {
2026-06-07T22:53:32.2869775Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2869871Z               "line": 231
2026-06-07T22:53:32.2869962Z             },
2026-06-07T22:53:32.2870047Z             {
2026-06-07T22:53:32.2870167Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2870258Z               "line": 240
2026-06-07T22:53:32.2870348Z             }
2026-06-07T22:53:32.2870438Z           ]
2026-06-07T22:53:32.2870520Z         }
2026-06-07T22:53:32.2870605Z       }
2026-06-07T22:53:32.2870686Z     },
2026-06-07T22:53:32.2870767Z     {
2026-06-07T22:53:32.2870873Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-07T22:53:32.2871020Z       "title": "Hostable endpoint-types capability declaration",
2026-06-07T22:53:32.2871126Z       "requiredStages": [
2026-06-07T22:53:32.2871217Z         "impl",
2026-06-07T22:53:32.2871306Z         "unit"
2026-06-07T22:53:32.2871392Z       ],
2026-06-07T22:53:32.2871484Z       "stages": {
2026-06-07T22:53:32.2871569Z         "doc": {
2026-06-07T22:53:32.2871765Z           "complete": false,
2026-06-07T22:53:32.2871865Z           "evidence": []
2026-06-07T22:53:32.2871949Z         },
2026-06-07T22:53:32.2872048Z         "impl": {
2026-06-07T22:53:32.2872145Z           "complete": true,
2026-06-07T22:53:32.2872233Z           "evidence": [
2026-06-07T22:53:32.2872409Z             {
2026-06-07T22:53:32.2872539Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2872633Z               "line": 404
2026-06-07T22:53:32.2872720Z             }
2026-06-07T22:53:32.2872805Z           ]
2026-06-07T22:53:32.2872891Z         },
2026-06-07T22:53:32.2872990Z         "int": {
2026-06-07T22:53:32.2873087Z           "complete": false,
2026-06-07T22:53:32.2873186Z           "evidence": []
2026-06-07T22:53:32.2873277Z         },
2026-06-07T22:53:32.2873363Z         "unit": {
2026-06-07T22:53:32.2873458Z           "complete": true,
2026-06-07T22:53:32.2873553Z           "evidence": [
2026-06-07T22:53:32.2873644Z             {
2026-06-07T22:53:32.2873769Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2873864Z               "line": 641
2026-06-07T22:53:32.2873949Z             }
2026-06-07T22:53:32.2874036Z           ]
2026-06-07T22:53:32.2874125Z         }
2026-06-07T22:53:32.2874212Z       }
2026-06-07T22:53:32.2874293Z     },
2026-06-07T22:53:32.2874380Z     {
2026-06-07T22:53:32.2874482Z       "id": "REQ-SEAM-HISTORY",
2026-06-07T22:53:32.2874673Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-07T22:53:32.2874767Z       "requiredStages": [
2026-06-07T22:53:32.2874861Z         "impl",
2026-06-07T22:53:32.2874952Z         "unit",
2026-06-07T22:53:32.2875043Z         "int"
2026-06-07T22:53:32.2875128Z       ],
2026-06-07T22:53:32.2875223Z       "stages": {
2026-06-07T22:53:32.2875315Z         "doc": {
2026-06-07T22:53:32.2875406Z           "complete": false,
2026-06-07T22:53:32.2875505Z           "evidence": []
2026-06-07T22:53:32.2875591Z         },
2026-06-07T22:53:32.2875691Z         "impl": {
2026-06-07T22:53:32.2875786Z           "complete": true,
2026-06-07T22:53:32.2875886Z           "evidence": [
2026-06-07T22:53:32.2875978Z             {
2026-06-07T22:53:32.2876092Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2876186Z               "line": 24
2026-06-07T22:53:32.2876274Z             },
2026-06-07T22:53:32.2876363Z             {
2026-06-07T22:53:32.2876478Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2876569Z               "line": 22
2026-06-07T22:53:32.2876660Z             }
2026-06-07T22:53:32.2876745Z           ]
2026-06-07T22:53:32.2876835Z         },
2026-06-07T22:53:32.2876923Z         "int": {
2026-06-07T22:53:32.2877106Z           "complete": true,
2026-06-07T22:53:32.2877196Z           "evidence": [
2026-06-07T22:53:32.2877287Z             {
2026-06-07T22:53:32.2877409Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.2877504Z               "line": 256
2026-06-07T22:53:32.2877606Z             }
2026-06-07T22:53:32.2877691Z           ]
2026-06-07T22:53:32.2877780Z         },
2026-06-07T22:53:32.2877872Z         "unit": {
2026-06-07T22:53:32.2877967Z           "complete": true,
2026-06-07T22:53:32.2878062Z           "evidence": [
2026-06-07T22:53:32.2878148Z             {
2026-06-07T22:53:32.2878268Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2878363Z               "line": 167
2026-06-07T22:53:32.2878453Z             },
2026-06-07T22:53:32.2878540Z             {
2026-06-07T22:53:32.2878649Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2878744Z               "line": 196
2026-06-07T22:53:32.2878831Z             },
2026-06-07T22:53:32.2878926Z             {
2026-06-07T22:53:32.2879035Z               "path": "crates/spt-live/src/echo.rs",
2026-06-07T22:53:32.2879132Z               "line": 216
2026-06-07T22:53:32.2879212Z             },
2026-06-07T22:53:32.2879306Z             {
2026-06-07T22:53:32.2879532Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2879626Z               "line": 199
2026-06-07T22:53:32.2879712Z             },
2026-06-07T22:53:32.2879804Z             {
2026-06-07T22:53:32.2879926Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2880016Z               "line": 219
2026-06-07T22:53:32.2880193Z             },
2026-06-07T22:53:32.2880283Z             {
2026-06-07T22:53:32.2880403Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2880503Z               "line": 244
2026-06-07T22:53:32.2880593Z             },
2026-06-07T22:53:32.2880684Z             {
2026-06-07T22:53:32.2880804Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2880904Z               "line": 269
2026-06-07T22:53:32.2880989Z             },
2026-06-07T22:53:32.2881071Z             {
2026-06-07T22:53:32.2881184Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2881274Z               "line": 290
2026-06-07T22:53:32.2881371Z             },
2026-06-07T22:53:32.2881457Z             {
2026-06-07T22:53:32.2881575Z               "path": "crates/spt-live/src/history.rs",
2026-06-07T22:53:32.2881671Z               "line": 317
2026-06-07T22:53:32.2881753Z             }
2026-06-07T22:53:32.2881847Z           ]
2026-06-07T22:53:32.2881938Z         }
2026-06-07T22:53:32.2882025Z       }
2026-06-07T22:53:32.2882110Z     },
2026-06-07T22:53:32.2882194Z     {
2026-06-07T22:53:32.2882296Z       "id": "REQ-SEAM-INJECT",
2026-06-07T22:53:32.2882462Z       "title": "inject-input methods configurable per activity-state",
2026-06-07T22:53:32.2882561Z       "requiredStages": [
2026-06-07T22:53:32.2882648Z         "impl",
2026-06-07T22:53:32.2882738Z         "unit"
2026-06-07T22:53:32.2882821Z       ],
2026-06-07T22:53:32.2882916Z       "stages": {
2026-06-07T22:53:32.2883003Z         "doc": {
2026-06-07T22:53:32.2883099Z           "complete": false,
2026-06-07T22:53:32.2883193Z           "evidence": []
2026-06-07T22:53:32.2883275Z         },
2026-06-07T22:53:32.2883375Z         "impl": {
2026-06-07T22:53:32.2883470Z           "complete": true,
2026-06-07T22:53:32.2883565Z           "evidence": [
2026-06-07T22:53:32.2883657Z             {
2026-06-07T22:53:32.2883776Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2883875Z               "line": 19
2026-06-07T22:53:32.2883957Z             },
2026-06-07T22:53:32.2884047Z             {
2026-06-07T22:53:32.2884161Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2884253Z               "line": 111
2026-06-07T22:53:32.2884348Z             }
2026-06-07T22:53:32.2884433Z           ]
2026-06-07T22:53:32.2884519Z         },
2026-06-07T22:53:32.2884606Z         "int": {
2026-06-07T22:53:32.2884704Z           "complete": false,
2026-06-07T22:53:32.2884795Z           "evidence": []
2026-06-07T22:53:32.2884883Z         },
2026-06-07T22:53:32.2884973Z         "unit": {
2026-06-07T22:53:32.2885066Z           "complete": true,
2026-06-07T22:53:32.2885171Z           "evidence": [
2026-06-07T22:53:32.2885257Z             {
2026-06-07T22:53:32.2885369Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2885459Z               "line": 320
2026-06-07T22:53:32.2885550Z             },
2026-06-07T22:53:32.2885637Z             {
2026-06-07T22:53:32.2885755Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2885851Z               "line": 340
2026-06-07T22:53:32.2885937Z             }
2026-06-07T22:53:32.2886022Z           ]
2026-06-07T22:53:32.2886108Z         }
2026-06-07T22:53:32.2886200Z       }
2026-06-07T22:53:32.2886285Z     },
2026-06-07T22:53:32.2886370Z     {
2026-06-07T22:53:32.2886481Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-07T22:53:32.2886614Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-07T22:53:32.2886713Z       "requiredStages": [
2026-06-07T22:53:32.2886800Z         "impl",
2026-06-07T22:53:32.2886891Z         "unit"
2026-06-07T22:53:32.2887071Z       ],
2026-06-07T22:53:32.2887290Z       "stages": {
2026-06-07T22:53:32.2887381Z         "doc": {
2026-06-07T22:53:32.2887478Z           "complete": false,
2026-06-07T22:53:32.2887572Z           "evidence": []
2026-06-07T22:53:32.2887657Z         },
2026-06-07T22:53:32.2887752Z         "impl": {
2026-06-07T22:53:32.2887852Z           "complete": true,
2026-06-07T22:53:32.2888035Z           "evidence": [
2026-06-07T22:53:32.2888122Z             {
2026-06-07T22:53:32.2888241Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2888336Z               "line": 18
2026-06-07T22:53:32.2888417Z             },
2026-06-07T22:53:32.2888509Z             {
2026-06-07T22:53:32.2888627Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2888718Z               "line": 309
2026-06-07T22:53:32.2888804Z             }
2026-06-07T22:53:32.2888890Z           ]
2026-06-07T22:53:32.2888979Z         },
2026-06-07T22:53:32.2889067Z         "int": {
2026-06-07T22:53:32.2889171Z           "complete": false,
2026-06-07T22:53:32.2889271Z           "evidence": []
2026-06-07T22:53:32.2889357Z         },
2026-06-07T22:53:32.2889448Z         "unit": {
2026-06-07T22:53:32.2889542Z           "complete": true,
2026-06-07T22:53:32.2889638Z           "evidence": [
2026-06-07T22:53:32.2889730Z             {
2026-06-07T22:53:32.2889843Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2889943Z               "line": 559
2026-06-07T22:53:32.2890035Z             },
2026-06-07T22:53:32.2890125Z             {
2026-06-07T22:53:32.2890234Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2890326Z               "line": 569
2026-06-07T22:53:32.2890411Z             }
2026-06-07T22:53:32.2890505Z           ]
2026-06-07T22:53:32.2890595Z         }
2026-06-07T22:53:32.2890677Z       }
2026-06-07T22:53:32.2890763Z     },
2026-06-07T22:53:32.2890848Z     {
2026-06-07T22:53:32.2890948Z       "id": "REQ-SEAM-PSYCHE",
2026-06-07T22:53:32.2891092Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-07T22:53:32.2891196Z       "requiredStages": [
2026-06-07T22:53:32.2891287Z         "impl",
2026-06-07T22:53:32.2891373Z         "unit",
2026-06-07T22:53:32.2891464Z         "int"
2026-06-07T22:53:32.2891553Z       ],
2026-06-07T22:53:32.2891645Z       "stages": {
2026-06-07T22:53:32.2891731Z         "doc": {
2026-06-07T22:53:32.2891835Z           "complete": false,
2026-06-07T22:53:32.2891931Z           "evidence": []
2026-06-07T22:53:32.2892017Z         },
2026-06-07T22:53:32.2892107Z         "impl": {
2026-06-07T22:53:32.2892198Z           "complete": true,
2026-06-07T22:53:32.2892294Z           "evidence": [
2026-06-07T22:53:32.2892379Z             {
2026-06-07T22:53:32.2892498Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T22:53:32.2892594Z               "line": 19
2026-06-07T22:53:32.2892680Z             },
2026-06-07T22:53:32.2892769Z             {
2026-06-07T22:53:32.2892881Z               "path": "crates/spt/src/api/live.rs",
2026-06-07T22:53:32.2892976Z               "line": 12
2026-06-07T22:53:32.2893069Z             },
2026-06-07T22:53:32.2893155Z             {
2026-06-07T22:53:32.2893274Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2893368Z               "line": 209
2026-06-07T22:53:32.2893458Z             }
2026-06-07T22:53:32.2893544Z           ]
2026-06-07T22:53:32.2893639Z         },
2026-06-07T22:53:32.2893763Z         "int": {
2026-06-07T22:53:32.2893864Z           "complete": true,
2026-06-07T22:53:32.2893959Z           "evidence": [
2026-06-07T22:53:32.2894044Z             {
2026-06-07T22:53:32.2894169Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.2894260Z               "line": 255
2026-06-07T22:53:32.2894345Z             }
2026-06-07T22:53:32.2894431Z           ]
2026-06-07T22:53:32.2894517Z         },
2026-06-07T22:53:32.2894612Z         "unit": {
2026-06-07T22:53:32.2894702Z           "complete": true,
2026-06-07T22:53:32.2894793Z           "evidence": [
2026-06-07T22:53:32.2894880Z             {
2026-06-07T22:53:32.2895093Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T22:53:32.2895185Z               "line": 161
2026-06-07T22:53:32.2895279Z             },
2026-06-07T22:53:32.2895370Z             {
2026-06-07T22:53:32.2895486Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T22:53:32.2895655Z               "line": 168
2026-06-07T22:53:32.2895740Z             },
2026-06-07T22:53:32.2895836Z             {
2026-06-07T22:53:32.2895948Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-07T22:53:32.2896043Z               "line": 191
2026-06-07T22:53:32.2896130Z             },
2026-06-07T22:53:32.2896221Z             {
2026-06-07T22:53:32.2896339Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T22:53:32.2896430Z               "line": 106
2026-06-07T22:53:32.2896521Z             },
2026-06-07T22:53:32.2896611Z             {
2026-06-07T22:53:32.2896726Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T22:53:32.2896826Z               "line": 137
2026-06-07T22:53:32.2896911Z             },
2026-06-07T22:53:32.2897089Z             {
2026-06-07T22:53:32.2897203Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-07T22:53:32.2897307Z               "line": 161
2026-06-07T22:53:32.2897404Z             }
2026-06-07T22:53:32.2897493Z           ]
2026-06-07T22:53:32.2897584Z         }
2026-06-07T22:53:32.2897665Z       }
2026-06-07T22:53:32.2897757Z     },
2026-06-07T22:53:32.2897841Z     {
2026-06-07T22:53:32.2897942Z       "id": "REQ-SEAM-RESUME",
2026-06-07T22:53:32.2898127Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-07T22:53:32.2898227Z       "requiredStages": [
2026-06-07T22:53:32.2898317Z         "impl",
2026-06-07T22:53:32.2898407Z         "unit"
2026-06-07T22:53:32.2898496Z       ],
2026-06-07T22:53:32.2898586Z       "stages": {
2026-06-07T22:53:32.2898677Z         "doc": {
2026-06-07T22:53:32.2898769Z           "complete": false,
2026-06-07T22:53:32.2898868Z           "evidence": []
2026-06-07T22:53:32.2898963Z         },
2026-06-07T22:53:32.2899049Z         "impl": {
2026-06-07T22:53:32.2899144Z           "complete": true,
2026-06-07T22:53:32.2899234Z           "evidence": [
2026-06-07T22:53:32.2899331Z             {
2026-06-07T22:53:32.2899440Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2899544Z               "line": 19
2026-06-07T22:53:32.2899637Z             }
2026-06-07T22:53:32.2899721Z           ]
2026-06-07T22:53:32.2899807Z         },
2026-06-07T22:53:32.2899893Z         "int": {
2026-06-07T22:53:32.2899994Z           "complete": false,
2026-06-07T22:53:32.2900084Z           "evidence": []
2026-06-07T22:53:32.2900174Z         },
2026-06-07T22:53:32.2900266Z         "unit": {
2026-06-07T22:53:32.2900361Z           "complete": true,
2026-06-07T22:53:32.2900456Z           "evidence": [
2026-06-07T22:53:32.2900542Z             {
2026-06-07T22:53:32.2900713Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2900804Z               "line": 179
2026-06-07T22:53:32.2900891Z             },
2026-06-07T22:53:32.2900971Z             {
2026-06-07T22:53:32.2901080Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2901179Z               "line": 201
2026-06-07T22:53:32.2901266Z             },
2026-06-07T22:53:32.2901356Z             {
2026-06-07T22:53:32.2901455Z               "path": "crates/spt-live/src/resume.rs",
2026-06-07T22:53:32.2901537Z               "line": 222
2026-06-07T22:53:32.2901628Z             }
2026-06-07T22:53:32.2901709Z           ]
2026-06-07T22:53:32.2901799Z         }
2026-06-07T22:53:32.2901886Z       }
2026-06-07T22:53:32.2901971Z     },
2026-06-07T22:53:32.2902057Z     {
2026-06-07T22:53:32.2902162Z       "id": "REQ-SEAM-SPAWN",
2026-06-07T22:53:32.2902262Z       "title": "spawn-session seam",
2026-06-07T22:53:32.2902357Z       "requiredStages": [
2026-06-07T22:53:32.2902453Z         "impl",
2026-06-07T22:53:32.2902534Z         "unit"
2026-06-07T22:53:32.2902625Z       ],
2026-06-07T22:53:32.2902811Z       "stages": {
2026-06-07T22:53:32.2902906Z         "doc": {
2026-06-07T22:53:32.2903006Z           "complete": false,
2026-06-07T22:53:32.2903097Z           "evidence": []
2026-06-07T22:53:32.2903188Z         },
2026-06-07T22:53:32.2903277Z         "impl": {
2026-06-07T22:53:32.2903373Z           "complete": true,
2026-06-07T22:53:32.2903560Z           "evidence": [
2026-06-07T22:53:32.2903648Z             {
2026-06-07T22:53:32.2903782Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2903872Z               "line": 20
2026-06-07T22:53:32.2903965Z             }
2026-06-07T22:53:32.2907325Z           ]
2026-06-07T22:53:32.2907467Z         },
2026-06-07T22:53:32.2907562Z         "int": {
2026-06-07T22:53:32.2907668Z           "complete": false,
2026-06-07T22:53:32.2907768Z           "evidence": []
2026-06-07T22:53:32.2907853Z         },
2026-06-07T22:53:32.2907940Z         "unit": {
2026-06-07T22:53:32.2908039Z           "complete": true,
2026-06-07T22:53:32.2908148Z           "evidence": [
2026-06-07T22:53:32.2908235Z             {
2026-06-07T22:53:32.2908373Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2908468Z               "line": 435
2026-06-07T22:53:32.2908555Z             },
2026-06-07T22:53:32.2908641Z             {
2026-06-07T22:53:32.2908777Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2908872Z               "line": 442
2026-06-07T22:53:32.2908963Z             },
2026-06-07T22:53:32.2909051Z             {
2026-06-07T22:53:32.2909175Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2909267Z               "line": 452
2026-06-07T22:53:32.2909357Z             },
2026-06-07T22:53:32.2909437Z             {
2026-06-07T22:53:32.2909567Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2909658Z               "line": 458
2026-06-07T22:53:32.2909742Z             },
2026-06-07T22:53:32.2909829Z             {
2026-06-07T22:53:32.2909958Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2910052Z               "line": 483
2026-06-07T22:53:32.2910133Z             },
2026-06-07T22:53:32.2910221Z             {
2026-06-07T22:53:32.2910339Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-07T22:53:32.2910434Z               "line": 520
2026-06-07T22:53:32.2910516Z             }
2026-06-07T22:53:32.2910596Z           ]
2026-06-07T22:53:32.2910687Z         }
2026-06-07T22:53:32.2910773Z       }
2026-06-07T22:53:32.2910846Z     },
2026-06-07T22:53:32.2910930Z     {
2026-06-07T22:53:32.2911040Z       "id": "REQ-SEAM-UPDATE",
2026-06-07T22:53:32.2911226Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-07T22:53:32.2911320Z       "requiredStages": [
2026-06-07T22:53:32.2911407Z         "impl",
2026-06-07T22:53:32.2911490Z         "unit"
2026-06-07T22:53:32.2911583Z       ],
2026-06-07T22:53:32.2911673Z       "stages": {
2026-06-07T22:53:32.2911754Z         "doc": {
2026-06-07T22:53:32.2911855Z           "complete": false,
2026-06-07T22:53:32.2911950Z           "evidence": []
2026-06-07T22:53:32.2912034Z         },
2026-06-07T22:53:32.2912122Z         "impl": {
2026-06-07T22:53:32.2912217Z           "complete": true,
2026-06-07T22:53:32.2912312Z           "evidence": [
2026-06-07T22:53:32.2912402Z             {
2026-06-07T22:53:32.2912541Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2912631Z               "line": 28
2026-06-07T22:53:32.2912717Z             },
2026-06-07T22:53:32.2912804Z             {
2026-06-07T22:53:32.2912931Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2913023Z               "line": 83
2026-06-07T22:53:32.2913109Z             }
2026-06-07T22:53:32.2913199Z           ]
2026-06-07T22:53:32.2913280Z         },
2026-06-07T22:53:32.2913371Z         "int": {
2026-06-07T22:53:32.2913466Z           "complete": false,
2026-06-07T22:53:32.2913561Z           "evidence": []
2026-06-07T22:53:32.2913647Z         },
2026-06-07T22:53:32.2913866Z         "unit": {
2026-06-07T22:53:32.2913972Z           "complete": true,
2026-06-07T22:53:32.2914058Z           "evidence": [
2026-06-07T22:53:32.2914147Z             {
2026-06-07T22:53:32.2914270Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2914479Z               "line": 285
2026-06-07T22:53:32.2914568Z             },
2026-06-07T22:53:32.2914655Z             {
2026-06-07T22:53:32.2914784Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.2914873Z               "line": 296
2026-06-07T22:53:32.2914964Z             }
2026-06-07T22:53:32.2915051Z           ]
2026-06-07T22:53:32.2915141Z         }
2026-06-07T22:53:32.2915226Z       }
2026-06-07T22:53:32.2915313Z     },
2026-06-07T22:53:32.2915399Z     {
2026-06-07T22:53:32.2915489Z       "id": "REQ-SEC-1",
2026-06-07T22:53:32.2915890Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-07T22:53:32.2915986Z       "requiredStages": [
2026-06-07T22:53:32.2916071Z         "impl",
2026-06-07T22:53:32.2916161Z         "unit"
2026-06-07T22:53:32.2916243Z       ],
2026-06-07T22:53:32.2916334Z       "stages": {
2026-06-07T22:53:32.2916418Z         "doc": {
2026-06-07T22:53:32.2916524Z           "complete": false,
2026-06-07T22:53:32.2916620Z           "evidence": []
2026-06-07T22:53:32.2916714Z         },
2026-06-07T22:53:32.2916804Z         "impl": {
2026-06-07T22:53:32.2916895Z           "complete": true,
2026-06-07T22:53:32.2917069Z           "evidence": [
2026-06-07T22:53:32.2917149Z             {
2026-06-07T22:53:32.2917265Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2917355Z               "line": 84
2026-06-07T22:53:32.2917445Z             },
2026-06-07T22:53:32.2917555Z             {
2026-06-07T22:53:32.2917670Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2917774Z               "line": 114
2026-06-07T22:53:32.2917856Z             },
2026-06-07T22:53:32.2917942Z             {
2026-06-07T22:53:32.2918060Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2918151Z               "line": 128
2026-06-07T22:53:32.2918238Z             },
2026-06-07T22:53:32.2918328Z             {
2026-06-07T22:53:32.2918442Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2918534Z               "line": 108
2026-06-07T22:53:32.2918623Z             },
2026-06-07T22:53:32.2918704Z             {
2026-06-07T22:53:32.2918820Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2918910Z               "line": 129
2026-06-07T22:53:32.2918995Z             },
2026-06-07T22:53:32.2919081Z             {
2026-06-07T22:53:32.2919196Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2919294Z               "line": 142
2026-06-07T22:53:32.2919380Z             },
2026-06-07T22:53:32.2919466Z             {
2026-06-07T22:53:32.2919584Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2919673Z               "line": 208
2026-06-07T22:53:32.2919759Z             },
2026-06-07T22:53:32.2919841Z             {
2026-06-07T22:53:32.2919954Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2920049Z               "line": 234
2026-06-07T22:53:32.2920137Z             },
2026-06-07T22:53:32.2920223Z             {
2026-06-07T22:53:32.2920331Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2920427Z               "line": 3313
2026-06-07T22:53:32.2920508Z             }
2026-06-07T22:53:32.2920598Z           ]
2026-06-07T22:53:32.2920684Z         },
2026-06-07T22:53:32.2920771Z         "int": {
2026-06-07T22:53:32.2920865Z           "complete": false,
2026-06-07T22:53:32.2920960Z           "evidence": []
2026-06-07T22:53:32.2921043Z         },
2026-06-07T22:53:32.2921128Z         "unit": {
2026-06-07T22:53:32.2921223Z           "complete": true,
2026-06-07T22:53:32.2921434Z           "evidence": [
2026-06-07T22:53:32.2921523Z             {
2026-06-07T22:53:32.2921643Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2921735Z               "line": 140
2026-06-07T22:53:32.2921819Z             },
2026-06-07T22:53:32.2921904Z             {
2026-06-07T22:53:32.2922181Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2922294Z               "line": 192
2026-06-07T22:53:32.2922386Z             },
2026-06-07T22:53:32.2922467Z             {
2026-06-07T22:53:32.2922576Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-07T22:53:32.2922662Z               "line": 233
2026-06-07T22:53:32.2922734Z             },
2026-06-07T22:53:32.2922819Z             {
2026-06-07T22:53:32.2922934Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-07T22:53:32.2923021Z               "line": 137
2026-06-07T22:53:32.2923111Z             },
2026-06-07T22:53:32.2923191Z             {
2026-06-07T22:53:32.2923317Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2923401Z               "line": 246
2026-06-07T22:53:32.2923491Z             },
2026-06-07T22:53:32.2923578Z             {
2026-06-07T22:53:32.2923688Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2923782Z               "line": 276
2026-06-07T22:53:32.2923868Z             },
2026-06-07T22:53:32.2923961Z             {
2026-06-07T22:53:32.2924068Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2924159Z               "line": 309
2026-06-07T22:53:32.2924256Z             },
2026-06-07T22:53:32.2924337Z             {
2026-06-07T22:53:32.2924449Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2924537Z               "line": 328
2026-06-07T22:53:32.2924628Z             },
2026-06-07T22:53:32.2924712Z             {
2026-06-07T22:53:32.2924825Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2924917Z               "line": 361
2026-06-07T22:53:32.2925006Z             },
2026-06-07T22:53:32.2925095Z             {
2026-06-07T22:53:32.2925215Z               "path": "crates/spt-store/src/access.rs",
2026-06-07T22:53:32.2925306Z               "line": 385
2026-06-07T22:53:32.2925391Z             },
2026-06-07T22:53:32.2925476Z             {
2026-06-07T22:53:32.2925601Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2925691Z               "line": 4871
2026-06-07T22:53:32.2925776Z             }
2026-06-07T22:53:32.2925864Z           ]
2026-06-07T22:53:32.2925949Z         }
2026-06-07T22:53:32.2926035Z       }
2026-06-07T22:53:32.2926125Z     },
2026-06-07T22:53:32.2926212Z     {
2026-06-07T22:53:32.2926307Z       "id": "REQ-SHELL-1",
2026-06-07T22:53:32.2927326Z       "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-07T22:53:32.2927421Z       "requiredStages": [
2026-06-07T22:53:32.2927507Z         "impl",
2026-06-07T22:53:32.2927596Z         "unit",
2026-06-07T22:53:32.2927685Z         "int"
2026-06-07T22:53:32.2927767Z       ],
2026-06-07T22:53:32.2927863Z       "stages": {
2026-06-07T22:53:32.2927953Z         "doc": {
2026-06-07T22:53:32.2928048Z           "complete": false,
2026-06-07T22:53:32.2928145Z           "evidence": []
2026-06-07T22:53:32.2928235Z         },
2026-06-07T22:53:32.2928319Z         "impl": {
2026-06-07T22:53:32.2928416Z           "complete": true,
2026-06-07T22:53:32.2928502Z           "evidence": [
2026-06-07T22:53:32.2928592Z             {
2026-06-07T22:53:32.2928716Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2928807Z               "line": 94
2026-06-07T22:53:32.2928898Z             },
2026-06-07T22:53:32.2928978Z             {
2026-06-07T22:53:32.2929206Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2929302Z               "line": 119
2026-06-07T22:53:32.2929389Z             },
2026-06-07T22:53:32.2929475Z             {
2026-06-07T22:53:32.2929602Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2929690Z               "line": 27
2026-06-07T22:53:32.2929869Z             },
2026-06-07T22:53:32.2929964Z             {
2026-06-07T22:53:32.2930083Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2930177Z               "line": 52
2026-06-07T22:53:32.2930262Z             },
2026-06-07T22:53:32.2930348Z             {
2026-06-07T22:53:32.2930468Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2930557Z               "line": 132
2026-06-07T22:53:32.2930644Z             },
2026-06-07T22:53:32.2930730Z             {
2026-06-07T22:53:32.2930848Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2930939Z               "line": 164
2026-06-07T22:53:32.2931035Z             },
2026-06-07T22:53:32.2931126Z             {
2026-06-07T22:53:32.2931244Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2931336Z               "line": 22
2026-06-07T22:53:32.2931421Z             },
2026-06-07T22:53:32.2931511Z             {
2026-06-07T22:53:32.2931636Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2931721Z               "line": 65
2026-06-07T22:53:32.2931812Z             },
2026-06-07T22:53:32.2931893Z             {
2026-06-07T22:53:32.2932013Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2932102Z               "line": 76
2026-06-07T22:53:32.2932189Z             },
2026-06-07T22:53:32.2932285Z             {
2026-06-07T22:53:32.2932398Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2932489Z               "line": 150
2026-06-07T22:53:32.2932576Z             },
2026-06-07T22:53:32.2932662Z             {
2026-06-07T22:53:32.2932783Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2932879Z               "line": 209
2026-06-07T22:53:32.2932965Z             },
2026-06-07T22:53:32.2933051Z             {
2026-06-07T22:53:32.2933169Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2933261Z               "line": 246
2026-06-07T22:53:32.2933352Z             },
2026-06-07T22:53:32.2933437Z             {
2026-06-07T22:53:32.2933557Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2933647Z               "line": 267
2026-06-07T22:53:32.2933737Z             },
2026-06-07T22:53:32.2933823Z             {
2026-06-07T22:53:32.2933938Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2934028Z               "line": 280
2026-06-07T22:53:32.2934114Z             },
2026-06-07T22:53:32.2934201Z             {
2026-06-07T22:53:32.2934323Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2934410Z               "line": 189
2026-06-07T22:53:32.2934501Z             },
2026-06-07T22:53:32.2934586Z             {
2026-06-07T22:53:32.2934705Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2934792Z               "line": 205
2026-06-07T22:53:32.2934883Z             },
2026-06-07T22:53:32.2934967Z             {
2026-06-07T22:53:32.2935097Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2935188Z               "line": 41
2026-06-07T22:53:32.2935272Z             },
2026-06-07T22:53:32.2935362Z             {
2026-06-07T22:53:32.2935477Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2935575Z               "line": 204
2026-06-07T22:53:32.2935660Z             },
2026-06-07T22:53:32.2935746Z             {
2026-06-07T22:53:32.2935861Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-07T22:53:32.2935956Z               "line": 156
2026-06-07T22:53:32.2936041Z             },
2026-06-07T22:53:32.2936128Z             {
2026-06-07T22:53:32.2936318Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.2936414Z               "line": 295
2026-06-07T22:53:32.2936495Z             },
2026-06-07T22:53:32.2936580Z             {
2026-06-07T22:53:32.2936690Z               "path": "crates/spt/src/api/mod.rs",
2026-06-07T22:53:32.2936857Z               "line": 345
2026-06-07T22:53:32.2937039Z             },
2026-06-07T22:53:32.2937125Z             {
2026-06-07T22:53:32.2937248Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2937339Z               "line": 261
2026-06-07T22:53:32.2937421Z             },
2026-06-07T22:53:32.2937505Z             {
2026-06-07T22:53:32.2937611Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2937707Z               "line": 3811
2026-06-07T22:53:32.2937792Z             },
2026-06-07T22:53:32.2937877Z             {
2026-06-07T22:53:32.2937981Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2938076Z               "line": 3961
2026-06-07T22:53:32.2938170Z             },
2026-06-07T22:53:32.2938255Z             {
2026-06-07T22:53:32.2938361Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2938451Z               "line": 3998
2026-06-07T22:53:32.2938537Z             }
2026-06-07T22:53:32.2938623Z           ]
2026-06-07T22:53:32.2938719Z         },
2026-06-07T22:53:32.2938804Z         "int": {
2026-06-07T22:53:32.2938899Z           "complete": true,
2026-06-07T22:53:32.2938991Z           "evidence": [
2026-06-07T22:53:32.2939076Z             {
2026-06-07T22:53:32.2939209Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2939301Z               "line": 695
2026-06-07T22:53:32.2939386Z             },
2026-06-07T22:53:32.2939467Z             {
2026-06-07T22:53:32.2939601Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T22:53:32.2939692Z               "line": 8
2026-06-07T22:53:32.2939776Z             },
2026-06-07T22:53:32.2939862Z             {
2026-06-07T22:53:32.2939987Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-07T22:53:32.2940086Z               "line": 49
2026-06-07T22:53:32.2940172Z             },
2026-06-07T22:53:32.2940265Z             {
2026-06-07T22:53:32.2940387Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2940486Z               "line": 706
2026-06-07T22:53:32.2940577Z             },
2026-06-07T22:53:32.2940657Z             {
2026-06-07T22:53:32.2940788Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2940874Z               "line": 1116
2026-06-07T22:53:32.2940962Z             },
2026-06-07T22:53:32.2941052Z             {
2026-06-07T22:53:32.2941170Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-07T22:53:32.2941262Z               "line": 17
2026-06-07T22:53:32.2941348Z             },
2026-06-07T22:53:32.2941436Z             {
2026-06-07T22:53:32.2941552Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-07T22:53:32.2941643Z               "line": 14
2026-06-07T22:53:32.2941742Z             }
2026-06-07T22:53:32.2941828Z           ]
2026-06-07T22:53:32.2941924Z         },
2026-06-07T22:53:32.2942020Z         "unit": {
2026-06-07T22:53:32.2942119Z           "complete": true,
2026-06-07T22:53:32.2942206Z           "evidence": [
2026-06-07T22:53:32.2942300Z             {
2026-06-07T22:53:32.2942419Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2942511Z               "line": 234
2026-06-07T22:53:32.2942601Z             },
2026-06-07T22:53:32.2942687Z             {
2026-06-07T22:53:32.2942812Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2942912Z               "line": 267
2026-06-07T22:53:32.2943000Z             },
2026-06-07T22:53:32.2943092Z             {
2026-06-07T22:53:32.2943208Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2943301Z               "line": 307
2026-06-07T22:53:32.2943386Z             },
2026-06-07T22:53:32.2943472Z             {
2026-06-07T22:53:32.2943696Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2943787Z               "line": 519
2026-06-07T22:53:32.2943883Z             },
2026-06-07T22:53:32.2943973Z             {
2026-06-07T22:53:32.2944093Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2944297Z               "line": 592
2026-06-07T22:53:32.2944383Z             },
2026-06-07T22:53:32.2944475Z             {
2026-06-07T22:53:32.2944588Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2944683Z               "line": 736
2026-06-07T22:53:32.2944770Z             },
2026-06-07T22:53:32.2944860Z             {
2026-06-07T22:53:32.2944974Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.2945066Z               "line": 567
2026-06-07T22:53:32.2945156Z             },
2026-06-07T22:53:32.2945241Z             {
2026-06-07T22:53:32.2945367Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-07T22:53:32.2945466Z               "line": 352
2026-06-07T22:53:32.2945560Z             },
2026-06-07T22:53:32.2945647Z             {
2026-06-07T22:53:32.2945758Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2945851Z               "line": 5219
2026-06-07T22:53:32.2945936Z             },
2026-06-07T22:53:32.2946037Z             {
2026-06-07T22:53:32.2946140Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2946239Z               "line": 5541
2026-06-07T22:53:32.2946321Z             },
2026-06-07T22:53:32.2946412Z             {
2026-06-07T22:53:32.2946520Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2946616Z               "line": 5907
2026-06-07T22:53:32.2946707Z             }
2026-06-07T22:53:32.2946793Z           ]
2026-06-07T22:53:32.2946883Z         }
2026-06-07T22:53:32.2947055Z       }
2026-06-07T22:53:32.2947140Z     },
2026-06-07T22:53:32.2947226Z     {
2026-06-07T22:53:32.2947323Z       "id": "REQ-SHELL-2",
2026-06-07T22:53:32.2948897Z       "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-07T22:53:32.2949012Z       "requiredStages": [
2026-06-07T22:53:32.2949102Z         "impl",
2026-06-07T22:53:32.2949192Z         "unit",
2026-06-07T22:53:32.2949283Z         "int"
2026-06-07T22:53:32.2949374Z       ],
2026-06-07T22:53:32.2949454Z       "stages": {
2026-06-07T22:53:32.2949551Z         "doc": {
2026-06-07T22:53:32.2949646Z           "complete": false,
2026-06-07T22:53:32.2949736Z           "evidence": []
2026-06-07T22:53:32.2949827Z         },
2026-06-07T22:53:32.2949913Z         "impl": {
2026-06-07T22:53:32.2950056Z           "complete": true,
2026-06-07T22:53:32.2950166Z           "evidence": [
2026-06-07T22:53:32.2950252Z             {
2026-06-07T22:53:32.2950370Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.2950490Z               "line": 235
2026-06-07T22:53:32.2950581Z             },
2026-06-07T22:53:32.2950661Z             {
2026-06-07T22:53:32.2950781Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-07T22:53:32.2950876Z               "line": 389
2026-06-07T22:53:32.2950966Z             },
2026-06-07T22:53:32.2951065Z             {
2026-06-07T22:53:32.2951189Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-07T22:53:32.2951278Z               "line": 250
2026-06-07T22:53:32.2951382Z             },
2026-06-07T22:53:32.2951492Z             {
2026-06-07T22:53:32.2951635Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.2951730Z               "line": 310
2026-06-07T22:53:32.2951822Z             },
2026-06-07T22:53:32.2951903Z             {
2026-06-07T22:53:32.2952127Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2952222Z               "line": 30
2026-06-07T22:53:32.2952335Z             },
2026-06-07T22:53:32.2952437Z             {
2026-06-07T22:53:32.2952560Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2952752Z               "line": 150
2026-06-07T22:53:32.2952842Z             },
2026-06-07T22:53:32.2952928Z             {
2026-06-07T22:53:32.2953048Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2953143Z               "line": 186
2026-06-07T22:53:32.2953227Z             },
2026-06-07T22:53:32.2953314Z             {
2026-06-07T22:53:32.2953439Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2953528Z               "line": 345
2026-06-07T22:53:32.2953614Z             },
2026-06-07T22:53:32.2953701Z             {
2026-06-07T22:53:32.2953819Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2953918Z               "line": 348
2026-06-07T22:53:32.2954004Z             },
2026-06-07T22:53:32.2954095Z             {
2026-06-07T22:53:32.2954213Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-07T22:53:32.2954304Z               "line": 115
2026-06-07T22:53:32.2954391Z             },
2026-06-07T22:53:32.2954486Z             {
2026-06-07T22:53:32.2954605Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2954696Z               "line": 120
2026-06-07T22:53:32.2954782Z             },
2026-06-07T22:53:32.2954862Z             {
2026-06-07T22:53:32.2954977Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2955068Z               "line": 360
2026-06-07T22:53:32.2955158Z             },
2026-06-07T22:53:32.2955248Z             {
2026-06-07T22:53:32.2955373Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2955463Z               "line": 464
2026-06-07T22:53:32.2955549Z             },
2026-06-07T22:53:32.2955641Z             {
2026-06-07T22:53:32.2955758Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2955849Z               "line": 24
2026-06-07T22:53:32.2955946Z             },
2026-06-07T22:53:32.2956031Z             {
2026-06-07T22:53:32.2956154Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2956251Z               "line": 76
2026-06-07T22:53:32.2956341Z             },
2026-06-07T22:53:32.2956425Z             {
2026-06-07T22:53:32.2956549Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2956645Z               "line": 154
2026-06-07T22:53:32.2956728Z             },
2026-06-07T22:53:32.2956828Z             {
2026-06-07T22:53:32.2957043Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2957138Z               "line": 177
2026-06-07T22:53:32.2957224Z             },
2026-06-07T22:53:32.2957310Z             {
2026-06-07T22:53:32.2957438Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2957530Z               "line": 273
2026-06-07T22:53:32.2957625Z             },
2026-06-07T22:53:32.2957710Z             {
2026-06-07T22:53:32.2957830Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2957921Z               "line": 450
2026-06-07T22:53:32.2958021Z             },
2026-06-07T22:53:32.2958106Z             {
2026-06-07T22:53:32.2958227Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2958320Z               "line": 532
2026-06-07T22:53:32.2958402Z             },
2026-06-07T22:53:32.2958498Z             {
2026-06-07T22:53:32.2958625Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T22:53:32.2958716Z               "line": 27
2026-06-07T22:53:32.2958803Z             },
2026-06-07T22:53:32.2958894Z             {
2026-06-07T22:53:32.2959016Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T22:53:32.2959106Z               "line": 43
2026-06-07T22:53:32.2959300Z             },
2026-06-07T22:53:32.2959389Z             {
2026-06-07T22:53:32.2959515Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2959605Z               "line": 323
2026-06-07T22:53:32.2959690Z             },
2026-06-07T22:53:32.2959776Z             {
2026-06-07T22:53:32.2959972Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2960067Z               "line": 1194
2026-06-07T22:53:32.2960154Z             },
2026-06-07T22:53:32.2960244Z             {
2026-06-07T22:53:32.2960358Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2960450Z               "line": 3825
2026-06-07T22:53:32.2960539Z             },
2026-06-07T22:53:32.2960625Z             {
2026-06-07T22:53:32.2960736Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2960826Z               "line": 3886
2026-06-07T22:53:32.2960916Z             },
2026-06-07T22:53:32.2961006Z             {
2026-06-07T22:53:32.2961108Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2961211Z               "line": 3914
2026-06-07T22:53:32.2961297Z             },
2026-06-07T22:53:32.2961385Z             {
2026-06-07T22:53:32.2961493Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2961582Z               "line": 3968
2026-06-07T22:53:32.2961673Z             },
2026-06-07T22:53:32.2961763Z             {
2026-06-07T22:53:32.2961867Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2961956Z               "line": 4084
2026-06-07T22:53:32.2962048Z             },
2026-06-07T22:53:32.2962134Z             {
2026-06-07T22:53:32.2962238Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2962329Z               "line": 4137
2026-06-07T22:53:32.2962420Z             },
2026-06-07T22:53:32.2962505Z             {
2026-06-07T22:53:32.2962620Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2962715Z               "line": 298
2026-06-07T22:53:32.2962801Z             },
2026-06-07T22:53:32.2962886Z             {
2026-06-07T22:53:32.2963002Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.2963092Z               "line": 339
2026-06-07T22:53:32.2963187Z             }
2026-06-07T22:53:32.2963268Z           ]
2026-06-07T22:53:32.2963359Z         },
2026-06-07T22:53:32.2963449Z         "int": {
2026-06-07T22:53:32.2963554Z           "complete": true,
2026-06-07T22:53:32.2963650Z           "evidence": [
2026-06-07T22:53:32.2963740Z             {
2026-06-07T22:53:32.2963869Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.2963961Z               "line": 688
2026-06-07T22:53:32.2964059Z             },
2026-06-07T22:53:32.2964145Z             {
2026-06-07T22:53:32.2964271Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2964361Z               "line": 706
2026-06-07T22:53:32.2964449Z             },
2026-06-07T22:53:32.2964540Z             {
2026-06-07T22:53:32.2964656Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.2964755Z               "line": 1116
2026-06-07T22:53:32.2964845Z             },
2026-06-07T22:53:32.2964927Z             {
2026-06-07T22:53:32.2965060Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-07T22:53:32.2965150Z               "line": 18
2026-06-07T22:53:32.2965242Z             }
2026-06-07T22:53:32.2965332Z           ]
2026-06-07T22:53:32.2965431Z         },
2026-06-07T22:53:32.2965523Z         "unit": {
2026-06-07T22:53:32.2965614Z           "complete": true,
2026-06-07T22:53:32.2965714Z           "evidence": [
2026-06-07T22:53:32.2965799Z             {
2026-06-07T22:53:32.2965924Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-07T22:53:32.2966013Z               "line": 429
2026-06-07T22:53:32.2966104Z             },
2026-06-07T22:53:32.2966191Z             {
2026-06-07T22:53:32.2966314Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-07T22:53:32.2966409Z               "line": 794
2026-06-07T22:53:32.2966501Z             },
2026-06-07T22:53:32.2966671Z             {
2026-06-07T22:53:32.2966797Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2966892Z               "line": 625
2026-06-07T22:53:32.2967066Z             },
2026-06-07T22:53:32.2967152Z             {
2026-06-07T22:53:32.2967270Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2967460Z               "line": 674
2026-06-07T22:53:32.2967546Z             },
2026-06-07T22:53:32.2967631Z             {
2026-06-07T22:53:32.2967751Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-07T22:53:32.2967847Z               "line": 698
2026-06-07T22:53:32.2967928Z             },
2026-06-07T22:53:32.2968017Z             {
2026-06-07T22:53:32.2968133Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2968227Z               "line": 596
2026-06-07T22:53:32.2968322Z             },
2026-06-07T22:53:32.2968405Z             {
2026-06-07T22:53:32.2968537Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2968627Z               "line": 617
2026-06-07T22:53:32.2968719Z             },
2026-06-07T22:53:32.2968806Z             {
2026-06-07T22:53:32.2968928Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2969019Z               "line": 653
2026-06-07T22:53:32.2969111Z             },
2026-06-07T22:53:32.2969195Z             {
2026-06-07T22:53:32.2969315Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2969402Z               "line": 707
2026-06-07T22:53:32.2969486Z             },
2026-06-07T22:53:32.2969571Z             {
2026-06-07T22:53:32.2969681Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2969771Z               "line": 725
2026-06-07T22:53:32.2969864Z             },
2026-06-07T22:53:32.2969950Z             {
2026-06-07T22:53:32.2970080Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2970179Z               "line": 759
2026-06-07T22:53:32.2970274Z             },
2026-06-07T22:53:32.2970361Z             {
2026-06-07T22:53:32.2970485Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-07T22:53:32.2970580Z               "line": 834
2026-06-07T22:53:32.2970666Z             },
2026-06-07T22:53:32.2970747Z             {
2026-06-07T22:53:32.2970875Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-07T22:53:32.2970996Z               "line": 80
2026-06-07T22:53:32.2971085Z             },
2026-06-07T22:53:32.2971171Z             {
2026-06-07T22:53:32.2971281Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2971372Z               "line": 4698
2026-06-07T22:53:32.2971457Z             },
2026-06-07T22:53:32.2971543Z             {
2026-06-07T22:53:32.2971649Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2971743Z               "line": 5296
2026-06-07T22:53:32.2971829Z             },
2026-06-07T22:53:32.2971911Z             {
2026-06-07T22:53:32.2972030Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2972124Z               "line": 5366
2026-06-07T22:53:32.2972209Z             },
2026-06-07T22:53:32.2972300Z             {
2026-06-07T22:53:32.2972407Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.2972497Z               "line": 5404
2026-06-07T22:53:32.2972593Z             }
2026-06-07T22:53:32.2972680Z           ]
2026-06-07T22:53:32.2972770Z         }
2026-06-07T22:53:32.2972855Z       }
2026-06-07T22:53:32.2972952Z     },
2026-06-07T22:53:32.2973037Z     {
2026-06-07T22:53:32.2973132Z       "id": "REQ-START-1",
2026-06-07T22:53:32.2973333Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-07T22:53:32.2973437Z       "requiredStages": [
2026-06-07T22:53:32.2973523Z         "impl",
2026-06-07T22:53:32.2973604Z         "unit"
2026-06-07T22:53:32.2973685Z       ],
2026-06-07T22:53:32.2973771Z       "stages": {
2026-06-07T22:53:32.2973853Z         "doc": {
2026-06-07T22:53:32.2973953Z           "complete": false,
2026-06-07T22:53:32.2974139Z           "evidence": []
2026-06-07T22:53:32.2974234Z         },
2026-06-07T22:53:32.2974343Z         "impl": {
2026-06-07T22:53:32.2974443Z           "complete": true,
2026-06-07T22:53:32.2974535Z           "evidence": [
2026-06-07T22:53:32.2976688Z             {
2026-06-07T22:53:32.2977138Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T22:53:32.2977235Z               "line": 16
2026-06-07T22:53:32.2977328Z             }
2026-06-07T22:53:32.2977419Z           ]
2026-06-07T22:53:32.2977508Z         },
2026-06-07T22:53:32.2977598Z         "int": {
2026-06-07T22:53:32.2977698Z           "complete": false,
2026-06-07T22:53:32.2977798Z           "evidence": []
2026-06-07T22:53:32.2977886Z         },
2026-06-07T22:53:32.2977976Z         "unit": {
2026-06-07T22:53:32.2978069Z           "complete": true,
2026-06-07T22:53:32.2978164Z           "evidence": [
2026-06-07T22:53:32.2978253Z             {
2026-06-07T22:53:32.2978374Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T22:53:32.2978484Z               "line": 43
2026-06-07T22:53:32.2978568Z             },
2026-06-07T22:53:32.2978655Z             {
2026-06-07T22:53:32.2978769Z               "path": "crates/spt-store/src/seed.rs",
2026-06-07T22:53:32.2978859Z               "line": 59
2026-06-07T22:53:32.2978965Z             }
2026-06-07T22:53:32.2979051Z           ]
2026-06-07T22:53:32.2979141Z         }
2026-06-07T22:53:32.2979226Z       }
2026-06-07T22:53:32.2979313Z     },
2026-06-07T22:53:32.2979398Z     {
2026-06-07T22:53:32.2979498Z       "id": "REQ-START-2",
2026-06-07T22:53:32.2979647Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-07T22:53:32.2979746Z       "requiredStages": [
2026-06-07T22:53:32.2979836Z         "impl",
2026-06-07T22:53:32.2979919Z         "unit",
2026-06-07T22:53:32.2980014Z         "int"
2026-06-07T22:53:32.2980098Z       ],
2026-06-07T22:53:32.2980188Z       "stages": {
2026-06-07T22:53:32.2980279Z         "doc": {
2026-06-07T22:53:32.2980373Z           "complete": false,
2026-06-07T22:53:32.2980467Z           "evidence": []
2026-06-07T22:53:32.2980553Z         },
2026-06-07T22:53:32.2980640Z         "impl": {
2026-06-07T22:53:32.2980735Z           "complete": true,
2026-06-07T22:53:32.2980825Z           "evidence": [
2026-06-07T22:53:32.2980911Z             {
2026-06-07T22:53:32.2981036Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2981125Z               "line": 16
2026-06-07T22:53:32.2981207Z             },
2026-06-07T22:53:32.2981297Z             {
2026-06-07T22:53:32.2981406Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2981497Z               "line": 100
2026-06-07T22:53:32.2981584Z             },
2026-06-07T22:53:32.2981669Z             {
2026-06-07T22:53:32.2981788Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2981880Z               "line": 208
2026-06-07T22:53:32.2981969Z             }
2026-06-07T22:53:32.2982050Z           ]
2026-06-07T22:53:32.2982136Z         },
2026-06-07T22:53:32.2982233Z         "int": {
2026-06-07T22:53:32.2982327Z           "complete": true,
2026-06-07T22:53:32.2982418Z           "evidence": [
2026-06-07T22:53:32.2982500Z             {
2026-06-07T22:53:32.2982627Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.2982726Z               "line": 182
2026-06-07T22:53:32.2982812Z             }
2026-06-07T22:53:32.2982902Z           ]
2026-06-07T22:53:32.2982987Z         },
2026-06-07T22:53:32.2983072Z         "unit": {
2026-06-07T22:53:32.2983168Z           "complete": true,
2026-06-07T22:53:32.2983259Z           "evidence": [
2026-06-07T22:53:32.2983339Z             {
2026-06-07T22:53:32.2983458Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2983550Z               "line": 421
2026-06-07T22:53:32.2983635Z             },
2026-06-07T22:53:32.2983720Z             {
2026-06-07T22:53:32.2983831Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2983921Z               "line": 454
2026-06-07T22:53:32.2984108Z             }
2026-06-07T22:53:32.2984202Z           ]
2026-06-07T22:53:32.2984293Z         }
2026-06-07T22:53:32.2984379Z       }
2026-06-07T22:53:32.2984466Z     },
2026-06-07T22:53:32.2984546Z     {
2026-06-07T22:53:32.2984641Z       "id": "REQ-START-3",
2026-06-07T22:53:32.2984908Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-07T22:53:32.2985008Z       "requiredStages": [
2026-06-07T22:53:32.2985096Z         "impl",
2026-06-07T22:53:32.2985179Z         "unit",
2026-06-07T22:53:32.2985270Z         "int"
2026-06-07T22:53:32.2985353Z       ],
2026-06-07T22:53:32.2985443Z       "stages": {
2026-06-07T22:53:32.2985527Z         "doc": {
2026-06-07T22:53:32.2985627Z           "complete": false,
2026-06-07T22:53:32.2985718Z           "evidence": []
2026-06-07T22:53:32.2985804Z         },
2026-06-07T22:53:32.2985894Z         "impl": {
2026-06-07T22:53:32.2985985Z           "complete": true,
2026-06-07T22:53:32.2986076Z           "evidence": [
2026-06-07T22:53:32.2986171Z             {
2026-06-07T22:53:32.2986299Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2986390Z               "line": 23
2026-06-07T22:53:32.2986477Z             },
2026-06-07T22:53:32.2986561Z             {
2026-06-07T22:53:32.2986682Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2986781Z               "line": 205
2026-06-07T22:53:32.2986867Z             },
2026-06-07T22:53:32.2987039Z             {
2026-06-07T22:53:32.2987158Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2987248Z               "line": 221
2026-06-07T22:53:32.2987330Z             },
2026-06-07T22:53:32.2987415Z             {
2026-06-07T22:53:32.2987530Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2987622Z               "line": 17
2026-06-07T22:53:32.2987712Z             },
2026-06-07T22:53:32.2987796Z             {
2026-06-07T22:53:32.2987912Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2988003Z               "line": 43
2026-06-07T22:53:32.2988087Z             },
2026-06-07T22:53:32.2988172Z             {
2026-06-07T22:53:32.2988282Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2988372Z               "line": 101
2026-06-07T22:53:32.2988470Z             }
2026-06-07T22:53:32.2988556Z           ]
2026-06-07T22:53:32.2988643Z         },
2026-06-07T22:53:32.2988729Z         "int": {
2026-06-07T22:53:32.2988822Z           "complete": true,
2026-06-07T22:53:32.2988910Z           "evidence": [
2026-06-07T22:53:32.2988995Z             {
2026-06-07T22:53:32.2989114Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-07T22:53:32.2989200Z               "line": 436
2026-06-07T22:53:32.2989286Z             }
2026-06-07T22:53:32.2989372Z           ]
2026-06-07T22:53:32.2989457Z         },
2026-06-07T22:53:32.2989540Z         "unit": {
2026-06-07T22:53:32.2989635Z           "complete": true,
2026-06-07T22:53:32.2989734Z           "evidence": [
2026-06-07T22:53:32.2989820Z             {
2026-06-07T22:53:32.2989935Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2990025Z               "line": 331
2026-06-07T22:53:32.2990111Z             },
2026-06-07T22:53:32.2990193Z             {
2026-06-07T22:53:32.2990316Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2990406Z               "line": 352
2026-06-07T22:53:32.2990489Z             },
2026-06-07T22:53:32.2990574Z             {
2026-06-07T22:53:32.2990687Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-07T22:53:32.2990781Z               "line": 362
2026-06-07T22:53:32.2990868Z             },
2026-06-07T22:53:32.2990938Z             {
2026-06-07T22:53:32.2991051Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2991133Z               "line": 422
2026-06-07T22:53:32.2991214Z             },
2026-06-07T22:53:32.2991300Z             {
2026-06-07T22:53:32.2991624Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2991777Z               "line": 455
2026-06-07T22:53:32.2991863Z             },
2026-06-07T22:53:32.2991948Z             {
2026-06-07T22:53:32.2992062Z               "path": "crates/spt/src/api/startup.rs",
2026-06-07T22:53:32.2992154Z               "line": 463
2026-06-07T22:53:32.2992324Z             }
2026-06-07T22:53:32.2992407Z           ]
2026-06-07T22:53:32.2992497Z         }
2026-06-07T22:53:32.2992582Z       }
2026-06-07T22:53:32.2992673Z     },
2026-06-07T22:53:32.2992755Z     {
2026-06-07T22:53:32.2992854Z       "id": "REQ-START-4",
2026-06-07T22:53:32.2992992Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-07T22:53:32.2993089Z       "requiredStages": [
2026-06-07T22:53:32.2993178Z         "impl",
2026-06-07T22:53:32.2993263Z         "unit"
2026-06-07T22:53:32.2993353Z       ],
2026-06-07T22:53:32.2993444Z       "stages": {
2026-06-07T22:53:32.2993532Z         "doc": {
2026-06-07T22:53:32.2993627Z           "complete": false,
2026-06-07T22:53:32.2993728Z           "evidence": []
2026-06-07T22:53:32.2993819Z         },
2026-06-07T22:53:32.2993904Z         "impl": {
2026-06-07T22:53:32.2994000Z           "complete": true,
2026-06-07T22:53:32.2994090Z           "evidence": [
2026-06-07T22:53:32.2994181Z             {
2026-06-07T22:53:32.2994315Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2994405Z               "line": 391
2026-06-07T22:53:32.2994491Z             }
2026-06-07T22:53:32.2994576Z           ]
2026-06-07T22:53:32.2994663Z         },
2026-06-07T22:53:32.2994748Z         "int": {
2026-06-07T22:53:32.2994848Z           "complete": false,
2026-06-07T22:53:32.2994939Z           "evidence": []
2026-06-07T22:53:32.2995026Z         },
2026-06-07T22:53:32.2995115Z         "unit": {
2026-06-07T22:53:32.2995206Z           "complete": true,
2026-06-07T22:53:32.2995302Z           "evidence": [
2026-06-07T22:53:32.2995383Z             {
2026-06-07T22:53:32.2995511Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-07T22:53:32.2995603Z               "line": 660
2026-06-07T22:53:32.2995693Z             }
2026-06-07T22:53:32.2995782Z           ]
2026-06-07T22:53:32.2995864Z         }
2026-06-07T22:53:32.2995951Z       }
2026-06-07T22:53:32.2996036Z     },
2026-06-07T22:53:32.2996126Z     {
2026-06-07T22:53:32.2996225Z       "id": "REQ-STORE-1",
2026-06-07T22:53:32.2997150Z       "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-07T22:53:32.2997247Z       "requiredStages": [
2026-06-07T22:53:32.2997332Z         "impl",
2026-06-07T22:53:32.2997422Z         "unit"
2026-06-07T22:53:32.2997504Z       ],
2026-06-07T22:53:32.2997594Z       "stages": {
2026-06-07T22:53:32.2997684Z         "doc": {
2026-06-07T22:53:32.2997780Z           "complete": false,
2026-06-07T22:53:32.2997872Z           "evidence": []
2026-06-07T22:53:32.2997957Z         },
2026-06-07T22:53:32.2998042Z         "impl": {
2026-06-07T22:53:32.2998133Z           "complete": true,
2026-06-07T22:53:32.2998224Z           "evidence": [
2026-06-07T22:53:32.2998323Z             {
2026-06-07T22:53:32.2998453Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2998544Z               "line": 23
2026-06-07T22:53:32.2998633Z             },
2026-06-07T22:53:32.2998718Z             {
2026-06-07T22:53:32.2998843Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2998941Z               "line": 46
2026-06-07T22:53:32.2999026Z             },
2026-06-07T22:53:32.2999111Z             {
2026-06-07T22:53:32.2999232Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2999321Z               "line": 97
2026-06-07T22:53:32.2999412Z             },
2026-06-07T22:53:32.2999494Z             {
2026-06-07T22:53:32.2999722Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.2999828Z               "line": 125
2026-06-07T22:53:32.2999913Z             },
2026-06-07T22:53:32.2999998Z             {
2026-06-07T22:53:32.3000114Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3000299Z               "line": 181
2026-06-07T22:53:32.3000380Z             },
2026-06-07T22:53:32.3000481Z             {
2026-06-07T22:53:32.3000614Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3000709Z               "line": 205
2026-06-07T22:53:32.3000815Z             },
2026-06-07T22:53:32.3000914Z             {
2026-06-07T22:53:32.3001039Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3001125Z               "line": 441
2026-06-07T22:53:32.3001209Z             },
2026-06-07T22:53:32.3001294Z             {
2026-06-07T22:53:32.3001428Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3001545Z               "line": 25
2026-06-07T22:53:32.3001635Z             },
2026-06-07T22:53:32.3001726Z             {
2026-06-07T22:53:32.3001855Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3001940Z               "line": 104
2026-06-07T22:53:32.3002032Z             },
2026-06-07T22:53:32.3002117Z             {
2026-06-07T22:53:32.3002240Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3002327Z               "line": 132
2026-06-07T22:53:32.3002418Z             },
2026-06-07T22:53:32.3002499Z             {
2026-06-07T22:53:32.3002622Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3002709Z               "line": 148
2026-06-07T22:53:32.3002794Z             },
2026-06-07T22:53:32.3002879Z             {
2026-06-07T22:53:32.3003000Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3003095Z               "line": 166
2026-06-07T22:53:32.3003185Z             },
2026-06-07T22:53:32.3003276Z             {
2026-06-07T22:53:32.3003396Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3003486Z               "line": 175
2026-06-07T22:53:32.3003576Z             },
2026-06-07T22:53:32.3003659Z             {
2026-06-07T22:53:32.3003775Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T22:53:32.3003880Z               "line": 16
2026-06-07T22:53:32.3003966Z             },
2026-06-07T22:53:32.3004051Z             {
2026-06-07T22:53:32.3004164Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T22:53:32.3004255Z               "line": 63
2026-06-07T22:53:32.3004331Z             }
2026-06-07T22:53:32.3004417Z           ]
2026-06-07T22:53:32.3004502Z         },
2026-06-07T22:53:32.3004588Z         "int": {
2026-06-07T22:53:32.3004684Z           "complete": false,
2026-06-07T22:53:32.3004774Z           "evidence": []
2026-06-07T22:53:32.3004860Z         },
2026-06-07T22:53:32.3004947Z         "unit": {
2026-06-07T22:53:32.3005051Z           "complete": true,
2026-06-07T22:53:32.3005141Z           "evidence": [
2026-06-07T22:53:32.3005223Z             {
2026-06-07T22:53:32.3005346Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3005437Z               "line": 558
2026-06-07T22:53:32.3005533Z             },
2026-06-07T22:53:32.3005614Z             {
2026-06-07T22:53:32.3005732Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3005829Z               "line": 568
2026-06-07T22:53:32.3005915Z             },
2026-06-07T22:53:32.3006004Z             {
2026-06-07T22:53:32.3006124Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3006216Z               "line": 590
2026-06-07T22:53:32.3006300Z             },
2026-06-07T22:53:32.3006381Z             {
2026-06-07T22:53:32.3006501Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3006592Z               "line": 606
2026-06-07T22:53:32.3006676Z             },
2026-06-07T22:53:32.3006853Z             {
2026-06-07T22:53:32.3007062Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-07T22:53:32.3007158Z               "line": 629
2026-06-07T22:53:32.3007244Z             },
2026-06-07T22:53:32.3007329Z             {
2026-06-07T22:53:32.3007453Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3007643Z               "line": 440
2026-06-07T22:53:32.3007729Z             },
2026-06-07T22:53:32.3007812Z             {
2026-06-07T22:53:32.3007935Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-07T22:53:32.3008025Z               "line": 475
2026-06-07T22:53:32.3008112Z             },
2026-06-07T22:53:32.3008197Z             {
2026-06-07T22:53:32.3008316Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T22:53:32.3008403Z               "line": 120
2026-06-07T22:53:32.3008488Z             },
2026-06-07T22:53:32.3008578Z             {
2026-06-07T22:53:32.3008698Z               "path": "crates/spt-store/src/project.rs",
2026-06-07T22:53:32.3008789Z               "line": 128
2026-06-07T22:53:32.3008869Z             }
2026-06-07T22:53:32.3008955Z           ]
2026-06-07T22:53:32.3009037Z         }
2026-06-07T22:53:32.3009123Z       }
2026-06-07T22:53:32.3009207Z     },
2026-06-07T22:53:32.3009297Z     {
2026-06-07T22:53:32.3009393Z       "id": "REQ-SUBNET-1",
2026-06-07T22:53:32.3009705Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-07T22:53:32.3009806Z       "requiredStages": [
2026-06-07T22:53:32.3009891Z         "impl",
2026-06-07T22:53:32.3009987Z         "unit"
2026-06-07T22:53:32.3010073Z       ],
2026-06-07T22:53:32.3010159Z       "stages": {
2026-06-07T22:53:32.3010244Z         "doc": {
2026-06-07T22:53:32.3010335Z           "complete": false,
2026-06-07T22:53:32.3010430Z           "evidence": []
2026-06-07T22:53:32.3010516Z         },
2026-06-07T22:53:32.3010606Z         "impl": {
2026-06-07T22:53:32.3010707Z           "complete": true,
2026-06-07T22:53:32.3010797Z           "evidence": [
2026-06-07T22:53:32.3010883Z             {
2026-06-07T22:53:32.3011013Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3011107Z               "line": 240
2026-06-07T22:53:32.3011198Z             },
2026-06-07T22:53:32.3011289Z             {
2026-06-07T22:53:32.3011412Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3011503Z               "line": 478
2026-06-07T22:53:32.3011594Z             },
2026-06-07T22:53:32.3011680Z             {
2026-06-07T22:53:32.3011788Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3011873Z               "line": 2043
2026-06-07T22:53:32.3011964Z             },
2026-06-07T22:53:32.3012054Z             {
2026-06-07T22:53:32.3012162Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3012253Z               "line": 2208
2026-06-07T22:53:32.3012340Z             },
2026-06-07T22:53:32.3012429Z             {
2026-06-07T22:53:32.3012529Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3012626Z               "line": 2227
2026-06-07T22:53:32.3012711Z             },
2026-06-07T22:53:32.3012796Z             {
2026-06-07T22:53:32.3012897Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3012993Z               "line": 2288
2026-06-07T22:53:32.3013087Z             },
2026-06-07T22:53:32.3013168Z             {
2026-06-07T22:53:32.3013279Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3013369Z               "line": 2330
2026-06-07T22:53:32.3013459Z             },
2026-06-07T22:53:32.3013546Z             {
2026-06-07T22:53:32.3013645Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3013736Z               "line": 2499
2026-06-07T22:53:32.3013822Z             },
2026-06-07T22:53:32.3013908Z             {
2026-06-07T22:53:32.3014012Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3014204Z               "line": 2556
2026-06-07T22:53:32.3014299Z             },
2026-06-07T22:53:32.3014383Z             {
2026-06-07T22:53:32.3014488Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3014578Z               "line": 2680
2026-06-07T22:53:32.3014662Z             },
2026-06-07T22:53:32.3014753Z             {
2026-06-07T22:53:32.3014935Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.3015024Z               "line": 412
2026-06-07T22:53:32.3015110Z             }
2026-06-07T22:53:32.3015197Z           ]
2026-06-07T22:53:32.3015283Z         },
2026-06-07T22:53:32.3015367Z         "int": {
2026-06-07T22:53:32.3015473Z           "complete": false,
2026-06-07T22:53:32.3015568Z           "evidence": []
2026-06-07T22:53:32.3015654Z         },
2026-06-07T22:53:32.3015739Z         "unit": {
2026-06-07T22:53:32.3015836Z           "complete": true,
2026-06-07T22:53:32.3015936Z           "evidence": [
2026-06-07T22:53:32.3016016Z             {
2026-06-07T22:53:32.3016156Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3016245Z               "line": 1150
2026-06-07T22:53:32.3016336Z             },
2026-06-07T22:53:32.3016418Z             {
2026-06-07T22:53:32.3016527Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3016617Z               "line": 6153
2026-06-07T22:53:32.3016708Z             },
2026-06-07T22:53:32.3016800Z             {
2026-06-07T22:53:32.3016902Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3017071Z               "line": 6298
2026-06-07T22:53:32.3017157Z             },
2026-06-07T22:53:32.3017246Z             {
2026-06-07T22:53:32.3017350Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3017451Z               "line": 6305
2026-06-07T22:53:32.3017541Z             },
2026-06-07T22:53:32.3017627Z             {
2026-06-07T22:53:32.3017738Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3017833Z               "line": 6358
2026-06-07T22:53:32.3017918Z             },
2026-06-07T22:53:32.3018009Z             {
2026-06-07T22:53:32.3018114Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3018203Z               "line": 6375
2026-06-07T22:53:32.3018294Z             },
2026-06-07T22:53:32.3018386Z             {
2026-06-07T22:53:32.3018486Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3018585Z               "line": 6389
2026-06-07T22:53:32.3018672Z             },
2026-06-07T22:53:32.3018752Z             {
2026-06-07T22:53:32.3018857Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3018948Z               "line": 6487
2026-06-07T22:53:32.3019035Z             }
2026-06-07T22:53:32.3019133Z           ]
2026-06-07T22:53:32.3019220Z         }
2026-06-07T22:53:32.3019311Z       }
2026-06-07T22:53:32.3019396Z     },
2026-06-07T22:53:32.3019481Z     {
2026-06-07T22:53:32.3019563Z       "id": "REQ-SUBNET-2",
2026-06-07T22:53:32.3019848Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-07T22:53:32.3019953Z       "requiredStages": [
2026-06-07T22:53:32.3020042Z         "impl",
2026-06-07T22:53:32.3020146Z         "unit",
2026-06-07T22:53:32.3020237Z         "int"
2026-06-07T22:53:32.3020342Z       ],
2026-06-07T22:53:32.3020432Z       "stages": {
2026-06-07T22:53:32.3020522Z         "doc": {
2026-06-07T22:53:32.3020619Z           "complete": true,
2026-06-07T22:53:32.3020714Z           "evidence": [
2026-06-07T22:53:32.3020789Z             {
2026-06-07T22:53:32.3020943Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-07T22:53:32.3021033Z               "line": 60
2026-06-07T22:53:32.3021119Z             }
2026-06-07T22:53:32.3021225Z           ]
2026-06-07T22:53:32.3021329Z         },
2026-06-07T22:53:32.3021424Z         "impl": {
2026-06-07T22:53:32.3021534Z           "complete": true,
2026-06-07T22:53:32.3021624Z           "evidence": [
2026-06-07T22:53:32.3021710Z             {
2026-06-07T22:53:32.3021939Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.3022039Z               "line": 548
2026-06-07T22:53:32.3022120Z             },
2026-06-07T22:53:32.3022212Z             {
2026-06-07T22:53:32.3022334Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-07T22:53:32.3022424Z               "line": 636
2026-06-07T22:53:32.3022609Z             },
2026-06-07T22:53:32.3022689Z             {
2026-06-07T22:53:32.3022813Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.3022905Z               "line": 416
2026-06-07T22:53:32.3022989Z             },
2026-06-07T22:53:32.3023079Z             {
2026-06-07T22:53:32.3023195Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-07T22:53:32.3023285Z               "line": 499
2026-06-07T22:53:32.3023370Z             },
2026-06-07T22:53:32.3023457Z             {
2026-06-07T22:53:32.3023576Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3023666Z               "line": 26
2026-06-07T22:53:32.3023752Z             },
2026-06-07T22:53:32.3023844Z             {
2026-06-07T22:53:32.3023967Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3024043Z               "line": 60
2026-06-07T22:53:32.3024125Z             },
2026-06-07T22:53:32.3024210Z             {
2026-06-07T22:53:32.3024334Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3024431Z               "line": 150
2026-06-07T22:53:32.3024525Z             },
2026-06-07T22:53:32.3024611Z             {
2026-06-07T22:53:32.3024731Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3024821Z               "line": 277
2026-06-07T22:53:32.3024910Z             },
2026-06-07T22:53:32.3024996Z             {
2026-06-07T22:53:32.3025115Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3025199Z               "line": 389
2026-06-07T22:53:32.3025289Z             },
2026-06-07T22:53:32.3025370Z             {
2026-06-07T22:53:32.3025505Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-07T22:53:32.3025598Z               "line": 252
2026-06-07T22:53:32.3025685Z             },
2026-06-07T22:53:32.3025771Z             {
2026-06-07T22:53:32.3025876Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3025971Z               "line": 2254
2026-06-07T22:53:32.3026067Z             },
2026-06-07T22:53:32.3026152Z             {
2026-06-07T22:53:32.3026256Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3026353Z               "line": 2619
2026-06-07T22:53:32.3026439Z             },
2026-06-07T22:53:32.3026524Z             {
2026-06-07T22:53:32.3026629Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3026716Z               "line": 3037
2026-06-07T22:53:32.3026805Z             }
2026-06-07T22:53:32.3026891Z           ]
2026-06-07T22:53:32.3027059Z         },
2026-06-07T22:53:32.3027148Z         "int": {
2026-06-07T22:53:32.3027244Z           "complete": true,
2026-06-07T22:53:32.3027331Z           "evidence": [
2026-06-07T22:53:32.3027430Z             {
2026-06-07T22:53:32.3027559Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-07T22:53:32.3027655Z               "line": 22
2026-06-07T22:53:32.3027740Z             },
2026-06-07T22:53:32.3027824Z             {
2026-06-07T22:53:32.3027953Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.3028049Z               "line": 573
2026-06-07T22:53:32.3028139Z             },
2026-06-07T22:53:32.3028230Z             {
2026-06-07T22:53:32.3028354Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.3028444Z               "line": 790
2026-06-07T22:53:32.3028525Z             }
2026-06-07T22:53:32.3028613Z           ]
2026-06-07T22:53:32.3028698Z         },
2026-06-07T22:53:32.3028783Z         "unit": {
2026-06-07T22:53:32.3028884Z           "complete": true,
2026-06-07T22:53:32.3028975Z           "evidence": [
2026-06-07T22:53:32.3029060Z             {
2026-06-07T22:53:32.3029285Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3029379Z               "line": 475
2026-06-07T22:53:32.3029470Z             },
2026-06-07T22:53:32.3029552Z             {
2026-06-07T22:53:32.3029660Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3029760Z               "line": 6193
2026-06-07T22:53:32.3029933Z             },
2026-06-07T22:53:32.3030022Z             {
2026-06-07T22:53:32.3030123Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3030220Z               "line": 6591
2026-06-07T22:53:32.3030304Z             }
2026-06-07T22:53:32.3030394Z           ]
2026-06-07T22:53:32.3030485Z         }
2026-06-07T22:53:32.3030566Z       }
2026-06-07T22:53:32.3030654Z     },
2026-06-07T22:53:32.3030739Z     {
2026-06-07T22:53:32.3030835Z       "id": "REQ-SUBNET-3",
2026-06-07T22:53:32.3031117Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-07T22:53:32.3031212Z       "requiredStages": [
2026-06-07T22:53:32.3031316Z         "impl",
2026-06-07T22:53:32.3031402Z         "unit"
2026-06-07T22:53:32.3031489Z       ],
2026-06-07T22:53:32.3031584Z       "stages": {
2026-06-07T22:53:32.3031674Z         "doc": {
2026-06-07T22:53:32.3031770Z           "complete": false,
2026-06-07T22:53:32.3031865Z           "evidence": []
2026-06-07T22:53:32.3031965Z         },
2026-06-07T22:53:32.3032051Z         "impl": {
2026-06-07T22:53:32.3032143Z           "complete": true,
2026-06-07T22:53:32.3032232Z           "evidence": [
2026-06-07T22:53:32.3032318Z             {
2026-06-07T22:53:32.3032453Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3032541Z               "line": 146
2026-06-07T22:53:32.3032628Z             },
2026-06-07T22:53:32.3032715Z             {
2026-06-07T22:53:32.3032842Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3032932Z               "line": 342
2026-06-07T22:53:32.3033017Z             },
2026-06-07T22:53:32.3033108Z             {
2026-06-07T22:53:32.3033235Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3033325Z               "line": 125
2026-06-07T22:53:32.3033412Z             },
2026-06-07T22:53:32.3033497Z             {
2026-06-07T22:53:32.3033620Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3033722Z               "line": 500
2026-06-07T22:53:32.3033808Z             },
2026-06-07T22:53:32.3033893Z             {
2026-06-07T22:53:32.3034012Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3034103Z               "line": 559
2026-06-07T22:53:32.3034188Z             },
2026-06-07T22:53:32.3034274Z             {
2026-06-07T22:53:32.3034399Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-07T22:53:32.3034489Z               "line": 9
2026-06-07T22:53:32.3034574Z             },
2026-06-07T22:53:32.3034662Z             {
2026-06-07T22:53:32.3034765Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3034861Z               "line": 2556
2026-06-07T22:53:32.3034947Z             },
2026-06-07T22:53:32.3035043Z             {
2026-06-07T22:53:32.3035161Z               "path": "crates/spt/src/wansend.rs",
2026-06-07T22:53:32.3035252Z               "line": 433
2026-06-07T22:53:32.3035339Z             }
2026-06-07T22:53:32.3035433Z           ]
2026-06-07T22:53:32.3035518Z         },
2026-06-07T22:53:32.3035603Z         "int": {
2026-06-07T22:53:32.3035703Z           "complete": false,
2026-06-07T22:53:32.3035797Z           "evidence": []
2026-06-07T22:53:32.3035882Z         },
2026-06-07T22:53:32.3035973Z         "unit": {
2026-06-07T22:53:32.3036065Z           "complete": true,
2026-06-07T22:53:32.3036158Z           "evidence": [
2026-06-07T22:53:32.3036240Z             {
2026-06-07T22:53:32.3036374Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3036464Z               "line": 1279
2026-06-07T22:53:32.3036550Z             },
2026-06-07T22:53:32.3036636Z             {
2026-06-07T22:53:32.3036846Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3036937Z               "line": 868
2026-06-07T22:53:32.3037113Z             },
2026-06-07T22:53:32.3037199Z             {
2026-06-07T22:53:32.3037323Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3037509Z               "line": 917
2026-06-07T22:53:32.3037600Z             },
2026-06-07T22:53:32.3037685Z             {
2026-06-07T22:53:32.3037809Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-07T22:53:32.3037896Z               "line": 49
2026-06-07T22:53:32.3037985Z             },
2026-06-07T22:53:32.3038071Z             {
2026-06-07T22:53:32.3038173Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3038267Z               "line": 6487
2026-06-07T22:53:32.3038352Z             }
2026-06-07T22:53:32.3038437Z           ]
2026-06-07T22:53:32.3038523Z         }
2026-06-07T22:53:32.3038609Z       }
2026-06-07T22:53:32.3038694Z     },
2026-06-07T22:53:32.3038785Z     {
2026-06-07T22:53:32.3038877Z       "id": "REQ-SUBNET-4",
2026-06-07T22:53:32.3039168Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-07T22:53:32.3039263Z       "requiredStages": [
2026-06-07T22:53:32.3039362Z         "impl",
2026-06-07T22:53:32.3039454Z         "unit"
2026-06-07T22:53:32.3039540Z       ],
2026-06-07T22:53:32.3039625Z       "stages": {
2026-06-07T22:53:32.3039715Z         "doc": {
2026-06-07T22:53:32.3039807Z           "complete": true,
2026-06-07T22:53:32.3039896Z           "evidence": [
2026-06-07T22:53:32.3039982Z             {
2026-06-07T22:53:32.3040141Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-07T22:53:32.3040239Z               "line": 60
2026-06-07T22:53:32.3040320Z             }
2026-06-07T22:53:32.3040408Z           ]
2026-06-07T22:53:32.3040494Z         },
2026-06-07T22:53:32.3040582Z         "impl": {
2026-06-07T22:53:32.3040679Z           "complete": true,
2026-06-07T22:53:32.3040775Z           "evidence": [
2026-06-07T22:53:32.3040883Z             {
2026-06-07T22:53:32.3041001Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3041097Z               "line": 2043
2026-06-07T22:53:32.3041186Z             },
2026-06-07T22:53:32.3041276Z             {
2026-06-07T22:53:32.3041376Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3041476Z               "line": 3004
2026-06-07T22:53:32.3041561Z             },
2026-06-07T22:53:32.3041642Z             {
2026-06-07T22:53:32.3041749Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3041835Z               "line": 3037
2026-06-07T22:53:32.3041924Z             }
2026-06-07T22:53:32.3042006Z           ]
2026-06-07T22:53:32.3044076Z         },
2026-06-07T22:53:32.3044181Z         "int": {
2026-06-07T22:53:32.3044282Z           "complete": false,
2026-06-07T22:53:32.3044377Z           "evidence": []
2026-06-07T22:53:32.3044462Z         },
2026-06-07T22:53:32.3044563Z         "unit": {
2026-06-07T22:53:32.3044658Z           "complete": true,
2026-06-07T22:53:32.3044753Z           "evidence": [
2026-06-07T22:53:32.3044839Z             {
2026-06-07T22:53:32.3044954Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3045049Z               "line": 6284
2026-06-07T22:53:32.3045139Z             },
2026-06-07T22:53:32.3045226Z             {
2026-06-07T22:53:32.3045330Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3045430Z               "line": 6358
2026-06-07T22:53:32.3045517Z             }
2026-06-07T22:53:32.3045598Z           ]
2026-06-07T22:53:32.3045688Z         }
2026-06-07T22:53:32.3045769Z       }
2026-06-07T22:53:32.3045856Z     },
2026-06-07T22:53:32.3045937Z     {
2026-06-07T22:53:32.3046035Z       "id": "REQ-SUBNET-5",
2026-06-07T22:53:32.3047434Z       "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-07T22:53:32.3047540Z       "requiredStages": [
2026-06-07T22:53:32.3047630Z         "impl",
2026-06-07T22:53:32.3047812Z         "unit"
2026-06-07T22:53:32.3047902Z       ],
2026-06-07T22:53:32.3047993Z       "stages": {
2026-06-07T22:53:32.3048074Z         "doc": {
2026-06-07T22:53:32.3048174Z           "complete": false,
2026-06-07T22:53:32.3048264Z           "evidence": []
2026-06-07T22:53:32.3048350Z         },
2026-06-07T22:53:32.3048437Z         "impl": {
2026-06-07T22:53:32.3048536Z           "complete": true,
2026-06-07T22:53:32.3048631Z           "evidence": [
2026-06-07T22:53:32.3048713Z             {
2026-06-07T22:53:32.3048842Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-07T22:53:32.3048940Z               "line": 126
2026-06-07T22:53:32.3049030Z             },
2026-06-07T22:53:32.3049127Z             {
2026-06-07T22:53:32.3049255Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3049345Z               "line": 74
2026-06-07T22:53:32.3049428Z             },
2026-06-07T22:53:32.3049513Z             {
2026-06-07T22:53:32.3049641Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.3049747Z               "line": 316
2026-06-07T22:53:32.3049833Z             },
2026-06-07T22:53:32.3049917Z             {
2026-06-07T22:53:32.3050047Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T22:53:32.3050137Z               "line": 17
2026-06-07T22:53:32.3050223Z             },
2026-06-07T22:53:32.3050309Z             {
2026-06-07T22:53:32.3050419Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3050514Z               "line": 2962
2026-06-07T22:53:32.3050600Z             }
2026-06-07T22:53:32.3050686Z           ]
2026-06-07T22:53:32.3050767Z         },
2026-06-07T22:53:32.3050862Z         "int": {
2026-06-07T22:53:32.3050963Z           "complete": false,
2026-06-07T22:53:32.3051059Z           "evidence": []
2026-06-07T22:53:32.3051142Z         },
2026-06-07T22:53:32.3051229Z         "unit": {
2026-06-07T22:53:32.3051330Z           "complete": true,
2026-06-07T22:53:32.3051420Z           "evidence": [
2026-06-07T22:53:32.3051509Z             {
2026-06-07T22:53:32.3051633Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.3051728Z               "line": 341
2026-06-07T22:53:32.3051812Z             },
2026-06-07T22:53:32.3051897Z             {
2026-06-07T22:53:32.3052022Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T22:53:32.3052113Z               "line": 111
2026-06-07T22:53:32.3052198Z             },
2026-06-07T22:53:32.3052290Z             {
2026-06-07T22:53:32.3052455Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T22:53:32.3052551Z               "line": 138
2026-06-07T22:53:32.3052638Z             },
2026-06-07T22:53:32.3052733Z             {
2026-06-07T22:53:32.3052851Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-07T22:53:32.3052948Z               "line": 148
2026-06-07T22:53:32.3053033Z             },
2026-06-07T22:53:32.3053123Z             {
2026-06-07T22:53:32.3053234Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3053328Z               "line": 6210
2026-06-07T22:53:32.3053414Z             }
2026-06-07T22:53:32.3053500Z           ]
2026-06-07T22:53:32.3053587Z         }
2026-06-07T22:53:32.3053671Z       }
2026-06-07T22:53:32.3053757Z     },
2026-06-07T22:53:32.3053845Z     {
2026-06-07T22:53:32.3053940Z       "id": "REQ-SUBNET-6",
2026-06-07T22:53:32.3054618Z       "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-07T22:53:32.3054789Z       "requiredStages": [
2026-06-07T22:53:32.3054880Z         "impl",
2026-06-07T22:53:32.3054966Z         "unit"
2026-06-07T22:53:32.3055056Z       ],
2026-06-07T22:53:32.3055142Z       "stages": {
2026-06-07T22:53:32.3055228Z         "doc": {
2026-06-07T22:53:32.3055322Z           "complete": false,
2026-06-07T22:53:32.3055481Z           "evidence": []
2026-06-07T22:53:32.3055571Z         },
2026-06-07T22:53:32.3055657Z         "impl": {
2026-06-07T22:53:32.3055753Z           "complete": true,
2026-06-07T22:53:32.3055843Z           "evidence": [
2026-06-07T22:53:32.3055928Z             {
2026-06-07T22:53:32.3056038Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3056125Z               "line": 2791
2026-06-07T22:53:32.3056214Z             },
2026-06-07T22:53:32.3056295Z             {
2026-06-07T22:53:32.3056402Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3056497Z               "line": 2808
2026-06-07T22:53:32.3056586Z             },
2026-06-07T22:53:32.3056676Z             {
2026-06-07T22:53:32.3056781Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3056870Z               "line": 2857
2026-06-07T22:53:32.3057055Z             },
2026-06-07T22:53:32.3057137Z             {
2026-06-07T22:53:32.3057241Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3057346Z               "line": 2879
2026-06-07T22:53:32.3057428Z             }
2026-06-07T22:53:32.3057514Z           ]
2026-06-07T22:53:32.3057598Z         },
2026-06-07T22:53:32.3057685Z         "int": {
2026-06-07T22:53:32.3057785Z           "complete": false,
2026-06-07T22:53:32.3057875Z           "evidence": []
2026-06-07T22:53:32.3057961Z         },
2026-06-07T22:53:32.3058048Z         "unit": {
2026-06-07T22:53:32.3058143Z           "complete": true,
2026-06-07T22:53:32.3058238Z           "evidence": [
2026-06-07T22:53:32.3058324Z             {
2026-06-07T22:53:32.3058424Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3058514Z               "line": 6224
2026-06-07T22:53:32.3058610Z             },
2026-06-07T22:53:32.3058697Z             {
2026-06-07T22:53:32.3058800Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3058896Z               "line": 6243
2026-06-07T22:53:32.3058983Z             },
2026-06-07T22:53:32.3059068Z             {
2026-06-07T22:53:32.3059176Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3059264Z               "line": 6252
2026-06-07T22:53:32.3059350Z             }
2026-06-07T22:53:32.3059434Z           ]
2026-06-07T22:53:32.3059519Z         }
2026-06-07T22:53:32.3059605Z       }
2026-06-07T22:53:32.3059692Z     },
2026-06-07T22:53:32.3059777Z     {
2026-06-07T22:53:32.3059871Z       "id": "REQ-SUBNET-7",
2026-06-07T22:53:32.3061494Z       "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-07T22:53:32.3061590Z       "requiredStages": [
2026-06-07T22:53:32.3061684Z         "impl",
2026-06-07T22:53:32.3061765Z         "unit"
2026-06-07T22:53:32.3061848Z       ],
2026-06-07T22:53:32.3061938Z       "stages": {
2026-06-07T22:53:32.3062018Z         "doc": {
2026-06-07T22:53:32.3062112Z           "complete": false,
2026-06-07T22:53:32.3062208Z           "evidence": []
2026-06-07T22:53:32.3062288Z         },
2026-06-07T22:53:32.3062372Z         "impl": {
2026-06-07T22:53:32.3062462Z           "complete": true,
2026-06-07T22:53:32.3062555Z           "evidence": [
2026-06-07T22:53:32.3062636Z             {
2026-06-07T22:53:32.3062763Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T22:53:32.3062950Z               "line": 17
2026-06-07T22:53:32.3063039Z             },
2026-06-07T22:53:32.3063121Z             {
2026-06-07T22:53:32.3063245Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3063335Z               "line": 104
2026-06-07T22:53:32.3063416Z             },
2026-06-07T22:53:32.3063613Z             {
2026-06-07T22:53:32.3063731Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-07T22:53:32.3063818Z               "line": 291
2026-06-07T22:53:32.3063903Z             },
2026-06-07T22:53:32.3063984Z             {
2026-06-07T22:53:32.3064104Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.3064194Z               "line": 339
2026-06-07T22:53:32.3064280Z             },
2026-06-07T22:53:32.3064366Z             {
2026-06-07T22:53:32.3064495Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3064584Z               "line": 154
2026-06-07T22:53:32.3064669Z             },
2026-06-07T22:53:32.3064755Z             {
2026-06-07T22:53:32.3064873Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3064963Z               "line": 346
2026-06-07T22:53:32.3065049Z             },
2026-06-07T22:53:32.3065135Z             {
2026-06-07T22:53:32.3065244Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3065369Z               "line": 497
2026-06-07T22:53:32.3065473Z             },
2026-06-07T22:53:32.3065559Z             {
2026-06-07T22:53:32.3065678Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3065769Z               "line": 537
2026-06-07T22:53:32.3065846Z             },
2026-06-07T22:53:32.3065945Z             {
2026-06-07T22:53:32.3066065Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3066155Z               "line": 565
2026-06-07T22:53:32.3066269Z             },
2026-06-07T22:53:32.3066366Z             {
2026-06-07T22:53:32.3066493Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.3066594Z               "line": 128
2026-06-07T22:53:32.3066705Z             },
2026-06-07T22:53:32.3066788Z             {
2026-06-07T22:53:32.3066909Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3067151Z               "line": 139
2026-06-07T22:53:32.3067240Z             }
2026-06-07T22:53:32.3067327Z           ]
2026-06-07T22:53:32.3067416Z         },
2026-06-07T22:53:32.3067510Z         "int": {
2026-06-07T22:53:32.3067610Z           "complete": false,
2026-06-07T22:53:32.3067702Z           "evidence": []
2026-06-07T22:53:32.3067787Z         },
2026-06-07T22:53:32.3067872Z         "unit": {
2026-06-07T22:53:32.3067964Z           "complete": true,
2026-06-07T22:53:32.3068055Z           "evidence": [
2026-06-07T22:53:32.3068140Z             {
2026-06-07T22:53:32.3068259Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T22:53:32.3068350Z               "line": 136
2026-06-07T22:53:32.3068435Z             },
2026-06-07T22:53:32.3068526Z             {
2026-06-07T22:53:32.3068650Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-07T22:53:32.3068736Z               "line": 156
2026-06-07T22:53:32.3068826Z             },
2026-06-07T22:53:32.3068909Z             {
2026-06-07T22:53:32.3069036Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3069132Z               "line": 721
2026-06-07T22:53:32.3069218Z             },
2026-06-07T22:53:32.3069304Z             {
2026-06-07T22:53:32.3069427Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-07T22:53:32.3069519Z               "line": 743
2026-06-07T22:53:32.3069604Z             },
2026-06-07T22:53:32.3069689Z             {
2026-06-07T22:53:32.3069819Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-07T22:53:32.3069906Z               "line": 1287
2026-06-07T22:53:32.3069994Z             },
2026-06-07T22:53:32.3070079Z             {
2026-06-07T22:53:32.3070299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-07T22:53:32.3070394Z               "line": 912
2026-06-07T22:53:32.3070480Z             }
2026-06-07T22:53:32.3070567Z           ]
2026-06-07T22:53:32.3070652Z         }
2026-06-07T22:53:32.3070742Z       }
2026-06-07T22:53:32.3070824Z     },
2026-06-07T22:53:32.3071000Z     {
2026-06-07T22:53:32.3071090Z       "id": "REQ-SUBNET-8",
2026-06-07T22:53:32.3072164Z       "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-07T22:53:32.3072263Z       "requiredStages": [
2026-06-07T22:53:32.3072349Z         "impl",
2026-06-07T22:53:32.3072437Z         "unit"
2026-06-07T22:53:32.3072522Z       ],
2026-06-07T22:53:32.3072610Z       "stages": {
2026-06-07T22:53:32.3072705Z         "doc": {
2026-06-07T22:53:32.3072801Z           "complete": false,
2026-06-07T22:53:32.3072895Z           "evidence": []
2026-06-07T22:53:32.3072980Z         },
2026-06-07T22:53:32.3073066Z         "impl": {
2026-06-07T22:53:32.3073157Z           "complete": true,
2026-06-07T22:53:32.3073261Z           "evidence": [
2026-06-07T22:53:32.3073352Z             {
2026-06-07T22:53:32.3073458Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3073548Z               "line": 2331
2026-06-07T22:53:32.3073633Z             },
2026-06-07T22:53:32.3073715Z             {
2026-06-07T22:53:32.3073819Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3073910Z               "line": 2360
2026-06-07T22:53:32.3074006Z             },
2026-06-07T22:53:32.3074087Z             {
2026-06-07T22:53:32.3074191Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3074282Z               "line": 2377
2026-06-07T22:53:32.3074369Z             },
2026-06-07T22:53:32.3074468Z             {
2026-06-07T22:53:32.3074572Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3074665Z               "line": 2681
2026-06-07T22:53:32.3074750Z             }
2026-06-07T22:53:32.3074835Z           ]
2026-06-07T22:53:32.3074916Z         },
2026-06-07T22:53:32.3075003Z         "int": {
2026-06-07T22:53:32.3075107Z           "complete": false,
2026-06-07T22:53:32.3075196Z           "evidence": []
2026-06-07T22:53:32.3075287Z         },
2026-06-07T22:53:32.3075372Z         "unit": {
2026-06-07T22:53:32.3075466Z           "complete": true,
2026-06-07T22:53:32.3075556Z           "evidence": [
2026-06-07T22:53:32.3075642Z             {
2026-06-07T22:53:32.3075743Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3075832Z               "line": 6389
2026-06-07T22:53:32.3075919Z             }
2026-06-07T22:53:32.3076001Z           ]
2026-06-07T22:53:32.3076091Z         }
2026-06-07T22:53:32.3076176Z       }
2026-06-07T22:53:32.3076258Z     },
2026-06-07T22:53:32.3076348Z     {
2026-06-07T22:53:32.3076443Z       "id": "REQ-TERM-1",
2026-06-07T22:53:32.3076616Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-07T22:53:32.3076710Z       "requiredStages": [
2026-06-07T22:53:32.3076800Z         "impl",
2026-06-07T22:53:32.3076888Z         "unit"
2026-06-07T22:53:32.3077068Z       ],
2026-06-07T22:53:32.3077159Z       "stages": {
2026-06-07T22:53:32.3077245Z         "doc": {
2026-06-07T22:53:32.3077344Z           "complete": false,
2026-06-07T22:53:32.3077439Z           "evidence": []
2026-06-07T22:53:32.3077522Z         },
2026-06-07T22:53:32.3077608Z         "impl": {
2026-06-07T22:53:32.3077701Z           "complete": true,
2026-06-07T22:53:32.3077796Z           "evidence": [
2026-06-07T22:53:32.3077882Z             {
2026-06-07T22:53:32.3078000Z               "path": "crates/spt-term/src/pty.rs",
2026-06-07T22:53:32.3078090Z               "line": 59
2026-06-07T22:53:32.3078176Z             },
2026-06-07T22:53:32.3078257Z             {
2026-06-07T22:53:32.3078471Z               "path": "crates/spt-term/src/pty.rs",
2026-06-07T22:53:32.3078562Z               "line": 171
2026-06-07T22:53:32.3078653Z             },
2026-06-07T22:53:32.3078738Z             {
2026-06-07T22:53:32.3078854Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T22:53:32.3079038Z               "line": 100
2026-06-07T22:53:32.3079120Z             }
2026-06-07T22:53:32.3079206Z           ]
2026-06-07T22:53:32.3079292Z         },
2026-06-07T22:53:32.3079377Z         "int": {
2026-06-07T22:53:32.3079473Z           "complete": false,
2026-06-07T22:53:32.3079563Z           "evidence": []
2026-06-07T22:53:32.3079649Z         },
2026-06-07T22:53:32.3079735Z         "unit": {
2026-06-07T22:53:32.3079831Z           "complete": true,
2026-06-07T22:53:32.3079920Z           "evidence": [
2026-06-07T22:53:32.3080011Z             {
2026-06-07T22:53:32.3080137Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-07T22:53:32.3080225Z               "line": 24
2026-06-07T22:53:32.3080321Z             },
2026-06-07T22:53:32.3080403Z             {
2026-06-07T22:53:32.3080522Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-07T22:53:32.3080616Z               "line": 56
2026-06-07T22:53:32.3080696Z             }
2026-06-07T22:53:32.3080779Z           ]
2026-06-07T22:53:32.3080874Z         }
2026-06-07T22:53:32.3080964Z       }
2026-06-07T22:53:32.3081045Z     },
2026-06-07T22:53:32.3081132Z     {
2026-06-07T22:53:32.3081226Z       "id": "REQ-TERM-2",
2026-06-07T22:53:32.3081404Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-07T22:53:32.3081499Z       "requiredStages": [
2026-06-07T22:53:32.3081584Z         "impl",
2026-06-07T22:53:32.3081670Z         "unit"
2026-06-07T22:53:32.3081756Z       ],
2026-06-07T22:53:32.3081851Z       "stages": {
2026-06-07T22:53:32.3081937Z         "doc": {
2026-06-07T22:53:32.3082028Z           "complete": false,
2026-06-07T22:53:32.3082127Z           "evidence": []
2026-06-07T22:53:32.3082218Z         },
2026-06-07T22:53:32.3082314Z         "impl": {
2026-06-07T22:53:32.3082404Z           "complete": true,
2026-06-07T22:53:32.3082494Z           "evidence": [
2026-06-07T22:53:32.3082576Z             {
2026-06-07T22:53:32.3082696Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T22:53:32.3082790Z               "line": 117
2026-06-07T22:53:32.3082876Z             },
2026-06-07T22:53:32.3082963Z             {
2026-06-07T22:53:32.3083072Z               "path": "crates/spt-term/src/surface.rs",
2026-06-07T22:53:32.3083166Z               "line": 127
2026-06-07T22:53:32.3083251Z             }
2026-06-07T22:53:32.3083333Z           ]
2026-06-07T22:53:32.3083417Z         },
2026-06-07T22:53:32.3083497Z         "int": {
2026-06-07T22:53:32.3083592Z           "complete": false,
2026-06-07T22:53:32.3083684Z           "evidence": []
2026-06-07T22:53:32.3083765Z         },
2026-06-07T22:53:32.3083854Z         "unit": {
2026-06-07T22:53:32.3083951Z           "complete": true,
2026-06-07T22:53:32.3084046Z           "evidence": [
2026-06-07T22:53:32.3084131Z             {
2026-06-07T22:53:32.3084256Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-07T22:53:32.3084342Z               "line": 46
2026-06-07T22:53:32.3084432Z             },
2026-06-07T22:53:32.3084513Z             {
2026-06-07T22:53:32.3084633Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-07T22:53:32.3084723Z               "line": 77
2026-06-07T22:53:32.3084808Z             }
2026-06-07T22:53:32.3084895Z           ]
2026-06-07T22:53:32.3084976Z         }
2026-06-07T22:53:32.3085056Z       }
2026-06-07T22:53:32.3085166Z     },
2026-06-07T22:53:32.3085277Z     {
2026-06-07T22:53:32.3085385Z       "id": "REQ-TERM-3",
2026-06-07T22:53:32.3085530Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-07T22:53:32.3085615Z       "requiredStages": [
2026-06-07T22:53:32.3085695Z         "impl",
2026-06-07T22:53:32.3085794Z         "unit"
2026-06-07T22:53:32.3085880Z       ],
2026-06-07T22:53:32.3086040Z       "stages": {
2026-06-07T22:53:32.3086135Z         "doc": {
2026-06-07T22:53:32.3086227Z           "complete": false,
2026-06-07T22:53:32.3086322Z           "evidence": []
2026-06-07T22:53:32.3086397Z         },
2026-06-07T22:53:32.3086489Z         "impl": {
2026-06-07T22:53:32.3086721Z           "complete": true,
2026-06-07T22:53:32.3086842Z           "evidence": [
2026-06-07T22:53:32.3087036Z             {
2026-06-07T22:53:32.3087152Z               "path": "crates/spt-term/src/stream.rs",
2026-06-07T22:53:32.3087242Z               "line": 71
2026-06-07T22:53:32.3087328Z             }
2026-06-07T22:53:32.3087418Z           ]
2026-06-07T22:53:32.3087500Z         },
2026-06-07T22:53:32.3087594Z         "int": {
2026-06-07T22:53:32.3087685Z           "complete": false,
2026-06-07T22:53:32.3087777Z           "evidence": []
2026-06-07T22:53:32.3087863Z         },
2026-06-07T22:53:32.3087947Z         "unit": {
2026-06-07T22:53:32.3088043Z           "complete": true,
2026-06-07T22:53:32.3088140Z           "evidence": [
2026-06-07T22:53:32.3088224Z             {
2026-06-07T22:53:32.3088342Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-07T22:53:32.3088433Z               "line": 37
2026-06-07T22:53:32.3088523Z             },
2026-06-07T22:53:32.3088607Z             {
2026-06-07T22:53:32.3088731Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-07T22:53:32.3088822Z               "line": 67
2026-06-07T22:53:32.3088912Z             }
2026-06-07T22:53:32.3088998Z           ]
2026-06-07T22:53:32.3089079Z         }
2026-06-07T22:53:32.3089165Z       }
2026-06-07T22:53:32.3089255Z     },
2026-06-07T22:53:32.3089341Z     {
2026-06-07T22:53:32.3089437Z       "id": "REQ-TERM-4",
2026-06-07T22:53:32.3089785Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-07T22:53:32.3089885Z       "requiredStages": [
2026-06-07T22:53:32.3089966Z         "impl",
2026-06-07T22:53:32.3090058Z         "unit",
2026-06-07T22:53:32.3090142Z         "int"
2026-06-07T22:53:32.3090228Z       ],
2026-06-07T22:53:32.3090320Z       "stages": {
2026-06-07T22:53:32.3090406Z         "doc": {
2026-06-07T22:53:32.3090499Z           "complete": true,
2026-06-07T22:53:32.3090586Z           "evidence": [
2026-06-07T22:53:32.3090677Z             {
2026-06-07T22:53:32.3090781Z               "path": "docs/MANIFEST.md",
2026-06-07T22:53:32.3090876Z               "line": 115
2026-06-07T22:53:32.3090964Z             }
2026-06-07T22:53:32.3091050Z           ]
2026-06-07T22:53:32.3091138Z         },
2026-06-07T22:53:32.3091223Z         "impl": {
2026-06-07T22:53:32.3091319Z           "complete": true,
2026-06-07T22:53:32.3091410Z           "evidence": [
2026-06-07T22:53:32.3091500Z             {
2026-06-07T22:53:32.3091619Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-07T22:53:32.3091710Z               "line": 507
2026-06-07T22:53:32.3091800Z             },
2026-06-07T22:53:32.3091881Z             {
2026-06-07T22:53:32.3092011Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3092101Z               "line": 41
2026-06-07T22:53:32.3092187Z             },
2026-06-07T22:53:32.3092274Z             {
2026-06-07T22:53:32.3092392Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3092487Z               "line": 91
2026-06-07T22:53:32.3092573Z             },
2026-06-07T22:53:32.3092659Z             {
2026-06-07T22:53:32.3092773Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3092864Z               "line": 152
2026-06-07T22:53:32.3092956Z             },
2026-06-07T22:53:32.3093040Z             {
2026-06-07T22:53:32.3093155Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3093247Z               "line": 221
2026-06-07T22:53:32.3093331Z             },
2026-06-07T22:53:32.3093416Z             {
2026-06-07T22:53:32.3093547Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3093745Z               "line": 20
2026-06-07T22:53:32.3093831Z             },
2026-06-07T22:53:32.3093917Z             {
2026-06-07T22:53:32.3094043Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3094133Z               "line": 222
2026-06-07T22:53:32.3094220Z             },
2026-06-07T22:53:32.3094410Z             {
2026-06-07T22:53:32.3094530Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3094621Z               "line": 242
2026-06-07T22:53:32.3094710Z             },
2026-06-07T22:53:32.3094792Z             {
2026-06-07T22:53:32.3094911Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.3095002Z               "line": 625
2026-06-07T22:53:32.3095092Z             },
2026-06-07T22:53:32.3095179Z             {
2026-06-07T22:53:32.3095293Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3095387Z               "line": 162
2026-06-07T22:53:32.3095470Z             },
2026-06-07T22:53:32.3095559Z             {
2026-06-07T22:53:32.3095679Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3095780Z               "line": 206
2026-06-07T22:53:32.3095865Z             },
2026-06-07T22:53:32.3095950Z             {
2026-06-07T22:53:32.3096066Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3096161Z               "line": 233
2026-06-07T22:53:32.3096245Z             },
2026-06-07T22:53:32.3096330Z             {
2026-06-07T22:53:32.3096446Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3096540Z               "line": 795
2026-06-07T22:53:32.3096624Z             }
2026-06-07T22:53:32.3096710Z           ]
2026-06-07T22:53:32.3096792Z         },
2026-06-07T22:53:32.3096882Z         "int": {
2026-06-07T22:53:32.3097063Z           "complete": true,
2026-06-07T22:53:32.3097154Z           "evidence": [
2026-06-07T22:53:32.3097239Z             {
2026-06-07T22:53:32.3097363Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-07T22:53:32.3097459Z               "line": 18
2026-06-07T22:53:32.3097545Z             }
2026-06-07T22:53:32.3097635Z           ]
2026-06-07T22:53:32.3097722Z         },
2026-06-07T22:53:32.3097812Z         "unit": {
2026-06-07T22:53:32.3097907Z           "complete": true,
2026-06-07T22:53:32.3097998Z           "evidence": [
2026-06-07T22:53:32.3098089Z             {
2026-06-07T22:53:32.3098203Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3098293Z               "line": 259
2026-06-07T22:53:32.3098385Z             },
2026-06-07T22:53:32.3098469Z             {
2026-06-07T22:53:32.3098589Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3098676Z               "line": 277
2026-06-07T22:53:32.3098766Z             },
2026-06-07T22:53:32.3098845Z             {
2026-06-07T22:53:32.3098964Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3099055Z               "line": 289
2026-06-07T22:53:32.3099139Z             },
2026-06-07T22:53:32.3099234Z             {
2026-06-07T22:53:32.3099349Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3099444Z               "line": 304
2026-06-07T22:53:32.3099529Z             },
2026-06-07T22:53:32.3099616Z             {
2026-06-07T22:53:32.3099730Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3099824Z               "line": 320
2026-06-07T22:53:32.3099911Z             },
2026-06-07T22:53:32.3099997Z             {
2026-06-07T22:53:32.3100116Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3100207Z               "line": 346
2026-06-07T22:53:32.3100293Z             },
2026-06-07T22:53:32.3100378Z             {
2026-06-07T22:53:32.3100492Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3100584Z               "line": 361
2026-06-07T22:53:32.3100665Z             },
2026-06-07T22:53:32.3100750Z             {
2026-06-07T22:53:32.3100865Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-07T22:53:32.3101050Z               "line": 391
2026-06-07T22:53:32.3101141Z             },
2026-06-07T22:53:32.3101223Z             {
2026-06-07T22:53:32.3101341Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3101432Z               "line": 365
2026-06-07T22:53:32.3101605Z             },
2026-06-07T22:53:32.3101689Z             {
2026-06-07T22:53:32.3101807Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3101894Z               "line": 382
2026-06-07T22:53:32.3101980Z             },
2026-06-07T22:53:32.3102060Z             {
2026-06-07T22:53:32.3102175Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3102266Z               "line": 411
2026-06-07T22:53:32.3102346Z             },
2026-06-07T22:53:32.3102437Z             {
2026-06-07T22:53:32.3102552Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-07T22:53:32.3102638Z               "line": 428
2026-06-07T22:53:32.3102723Z             },
2026-06-07T22:53:32.3102819Z             {
2026-06-07T22:53:32.3102938Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.3103028Z               "line": 828
2026-06-07T22:53:32.3103114Z             },
2026-06-07T22:53:32.3103201Z             {
2026-06-07T22:53:32.3103314Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.3103409Z               "line": 835
2026-06-07T22:53:32.3103492Z             },
2026-06-07T22:53:32.3103576Z             {
2026-06-07T22:53:32.3103696Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.3103783Z               "line": 850
2026-06-07T22:53:32.3103863Z             },
2026-06-07T22:53:32.3103948Z             {
2026-06-07T22:53:32.3104059Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3104146Z               "line": 420
2026-06-07T22:53:32.3104229Z             },
2026-06-07T22:53:32.3104320Z             {
2026-06-07T22:53:32.3104434Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3104523Z               "line": 458
2026-06-07T22:53:32.3104608Z             },
2026-06-07T22:53:32.3104693Z             {
2026-06-07T22:53:32.3104799Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3104890Z               "line": 471
2026-06-07T22:53:32.3104980Z             },
2026-06-07T22:53:32.3105061Z             {
2026-06-07T22:53:32.3105176Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3105265Z               "line": 497
2026-06-07T22:53:32.3105347Z             },
2026-06-07T22:53:32.3105438Z             {
2026-06-07T22:53:32.3105552Z               "path": "crates/spt-term/src/digest.rs",
2026-06-07T22:53:32.3105647Z               "line": 524
2026-06-07T22:53:32.3105739Z             },
2026-06-07T22:53:32.3105824Z             {
2026-06-07T22:53:32.3105938Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-07T22:53:32.3106030Z               "line": 32
2026-06-07T22:53:32.3106115Z             },
2026-06-07T22:53:32.3106206Z             {
2026-06-07T22:53:32.3106311Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3106402Z               "line": 5982
2026-06-07T22:53:32.3106491Z             }
2026-06-07T22:53:32.3106573Z           ]
2026-06-07T22:53:32.3106664Z         }
2026-06-07T22:53:32.3106754Z       }
2026-06-07T22:53:32.3106839Z     },
2026-06-07T22:53:32.3106924Z     {
2026-06-07T22:53:32.3107095Z       "id": "REQ-UPD-1",
2026-06-07T22:53:32.3107212Z       "title": "Peer-propagated update over P2P",
2026-06-07T22:53:32.3107308Z       "requiredStages": [
2026-06-07T22:53:32.3107400Z         "impl",
2026-06-07T22:53:32.3107485Z         "unit",
2026-06-07T22:53:32.3107570Z         "int"
2026-06-07T22:53:32.3107652Z       ],
2026-06-07T22:53:32.3107738Z       "stages": {
2026-06-07T22:53:32.3107828Z         "doc": {
2026-06-07T22:53:32.3107918Z           "complete": false,
2026-06-07T22:53:32.3108014Z           "evidence": []
2026-06-07T22:53:32.3108095Z         },
2026-06-07T22:53:32.3108282Z         "impl": {
2026-06-07T22:53:32.3108386Z           "complete": true,
2026-06-07T22:53:32.3108472Z           "evidence": [
2026-06-07T22:53:32.3108558Z             {
2026-06-07T22:53:32.3108677Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3108767Z               "line": 28
2026-06-07T22:53:32.3108935Z             },
2026-06-07T22:53:32.3109020Z             {
2026-06-07T22:53:32.3109139Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3109227Z               "line": 103
2026-06-07T22:53:32.3109307Z             },
2026-06-07T22:53:32.3109391Z             {
2026-06-07T22:53:32.3109514Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3109601Z               "line": 341
2026-06-07T22:53:32.3109685Z             },
2026-06-07T22:53:32.3109774Z             {
2026-06-07T22:53:32.3109889Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3109981Z               "line": 22
2026-06-07T22:53:32.3110070Z             },
2026-06-07T22:53:32.3110156Z             {
2026-06-07T22:53:32.3110271Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3110361Z               "line": 117
2026-06-07T22:53:32.3110447Z             },
2026-06-07T22:53:32.3110529Z             {
2026-06-07T22:53:32.3110658Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3110747Z               "line": 150
2026-06-07T22:53:32.3110830Z             },
2026-06-07T22:53:32.3110915Z             {
2026-06-07T22:53:32.3111029Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3111120Z               "line": 207
2026-06-07T22:53:32.3111201Z             },
2026-06-07T22:53:32.3111286Z             {
2026-06-07T22:53:32.3111406Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3111492Z               "line": 37
2026-06-07T22:53:32.3111578Z             }
2026-06-07T22:53:32.3111663Z           ]
2026-06-07T22:53:32.3113728Z         },
2026-06-07T22:53:32.3113845Z         "int": {
2026-06-07T22:53:32.3113951Z           "complete": true,
2026-06-07T22:53:32.3114043Z           "evidence": [
2026-06-07T22:53:32.3114127Z             {
2026-06-07T22:53:32.3114266Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-07T22:53:32.3114372Z               "line": 197
2026-06-07T22:53:32.3114452Z             },
2026-06-07T22:53:32.3114537Z             {
2026-06-07T22:53:32.3114706Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-07T22:53:32.3114794Z               "line": 985
2026-06-07T22:53:32.3114875Z             }
2026-06-07T22:53:32.3114956Z           ]
2026-06-07T22:53:32.3115065Z         },
2026-06-07T22:53:32.3115149Z         "unit": {
2026-06-07T22:53:32.3115234Z           "complete": true,
2026-06-07T22:53:32.3115326Z           "evidence": [
2026-06-07T22:53:32.3115402Z             {
2026-06-07T22:53:32.3115549Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3115670Z               "line": 310
2026-06-07T22:53:32.3115760Z             },
2026-06-07T22:53:32.3115864Z             {
2026-06-07T22:53:32.3115989Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3116094Z               "line": 333
2026-06-07T22:53:32.3116188Z             },
2026-06-07T22:53:32.3116285Z             {
2026-06-07T22:53:32.3116418Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.3116508Z               "line": 266
2026-06-07T22:53:32.3116595Z             },
2026-06-07T22:53:32.3116679Z             {
2026-06-07T22:53:32.3116799Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3116890Z               "line": 124
2026-06-07T22:53:32.3117066Z             },
2026-06-07T22:53:32.3117147Z             {
2026-06-07T22:53:32.3117258Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3117365Z               "line": 200
2026-06-07T22:53:32.3117446Z             }
2026-06-07T22:53:32.3117532Z           ]
2026-06-07T22:53:32.3117744Z         }
2026-06-07T22:53:32.3117840Z       }
2026-06-07T22:53:32.3117926Z     },
2026-06-07T22:53:32.3118016Z     {
2026-06-07T22:53:32.3118111Z       "id": "REQ-UPD-2",
2026-06-07T22:53:32.3118265Z       "title": "All binaries signature-verified before handoff",
2026-06-07T22:53:32.3118455Z       "requiredStages": [
2026-06-07T22:53:32.3118541Z         "impl",
2026-06-07T22:53:32.3118632Z         "unit"
2026-06-07T22:53:32.3118717Z       ],
2026-06-07T22:53:32.3118803Z       "stages": {
2026-06-07T22:53:32.3118889Z         "doc": {
2026-06-07T22:53:32.3118989Z           "complete": false,
2026-06-07T22:53:32.3119079Z           "evidence": []
2026-06-07T22:53:32.3119167Z         },
2026-06-07T22:53:32.3119251Z         "impl": {
2026-06-07T22:53:32.3119351Z           "complete": true,
2026-06-07T22:53:32.3119442Z           "evidence": [
2026-06-07T22:53:32.3119529Z             {
2026-06-07T22:53:32.3119647Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3119757Z               "line": 342
2026-06-07T22:53:32.3119843Z             },
2026-06-07T22:53:32.3119956Z             {
2026-06-07T22:53:32.3120079Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3120170Z               "line": 468
2026-06-07T22:53:32.3120264Z             },
2026-06-07T22:53:32.3120349Z             {
2026-06-07T22:53:32.3120469Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3120555Z               "line": 29
2026-06-07T22:53:32.3120644Z             },
2026-06-07T22:53:32.3120731Z             {
2026-06-07T22:53:32.3120846Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3120936Z               "line": 258
2026-06-07T22:53:32.3121022Z             },
2026-06-07T22:53:32.3121103Z             {
2026-06-07T22:53:32.3121222Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3121317Z               "line": 275
2026-06-07T22:53:32.3121404Z             },
2026-06-07T22:53:32.3121489Z             {
2026-06-07T22:53:32.3121608Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3121695Z               "line": 395
2026-06-07T22:53:32.3121785Z             },
2026-06-07T22:53:32.3121870Z             {
2026-06-07T22:53:32.3121985Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3122076Z               "line": 527
2026-06-07T22:53:32.3122166Z             },
2026-06-07T22:53:32.3122251Z             {
2026-06-07T22:53:32.3122367Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3122461Z               "line": 155
2026-06-07T22:53:32.3122552Z             }
2026-06-07T22:53:32.3122634Z           ]
2026-06-07T22:53:32.3122720Z         },
2026-06-07T22:53:32.3122809Z         "int": {
2026-06-07T22:53:32.3122904Z           "complete": false,
2026-06-07T22:53:32.3122995Z           "evidence": []
2026-06-07T22:53:32.3123085Z         },
2026-06-07T22:53:32.3123171Z         "unit": {
2026-06-07T22:53:32.3123276Z           "complete": true,
2026-06-07T22:53:32.3123372Z           "evidence": [
2026-06-07T22:53:32.3123458Z             {
2026-06-07T22:53:32.3123576Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3123663Z               "line": 682
2026-06-07T22:53:32.3123749Z             },
2026-06-07T22:53:32.3123843Z             {
2026-06-07T22:53:32.3123959Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3124053Z               "line": 743
2026-06-07T22:53:32.3124134Z             },
2026-06-07T22:53:32.3124220Z             {
2026-06-07T22:53:32.3124340Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3124430Z               "line": 757
2026-06-07T22:53:32.3124511Z             },
2026-06-07T22:53:32.3124603Z             {
2026-06-07T22:53:32.3124725Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3124816Z               "line": 773
2026-06-07T22:53:32.3124899Z             },
2026-06-07T22:53:32.3125082Z             {
2026-06-07T22:53:32.3125209Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3125299Z               "line": 864
2026-06-07T22:53:32.3125383Z             },
2026-06-07T22:53:32.3125468Z             {
2026-06-07T22:53:32.3125578Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3125737Z               "line": 412
2026-06-07T22:53:32.3125823Z             },
2026-06-07T22:53:32.3125915Z             {
2026-06-07T22:53:32.3126029Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3126119Z               "line": 425
2026-06-07T22:53:32.3126206Z             },
2026-06-07T22:53:32.3126291Z             {
2026-06-07T22:53:32.3126419Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.3126506Z               "line": 399
2026-06-07T22:53:32.3126596Z             }
2026-06-07T22:53:32.3126677Z           ]
2026-06-07T22:53:32.3126763Z         }
2026-06-07T22:53:32.3126850Z       }
2026-06-07T22:53:32.3126939Z     },
2026-06-07T22:53:32.3127111Z     {
2026-06-07T22:53:32.3127207Z       "id": "REQ-UPD-3",
2026-06-07T22:53:32.3127393Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-07T22:53:32.3127489Z       "requiredStages": [
2026-06-07T22:53:32.3127578Z         "impl",
2026-06-07T22:53:32.3127669Z         "unit",
2026-06-07T22:53:32.3127751Z         "int"
2026-06-07T22:53:32.3127837Z       ],
2026-06-07T22:53:32.3127925Z       "stages": {
2026-06-07T22:53:32.3128011Z         "doc": {
2026-06-07T22:53:32.3128107Z           "complete": false,
2026-06-07T22:53:32.3128201Z           "evidence": []
2026-06-07T22:53:32.3128286Z         },
2026-06-07T22:53:32.3128371Z         "impl": {
2026-06-07T22:53:32.3128467Z           "complete": true,
2026-06-07T22:53:32.3128558Z           "evidence": [
2026-06-07T22:53:32.3128643Z             {
2026-06-07T22:53:32.3128768Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3128858Z               "line": 39
2026-06-07T22:53:32.3128948Z             },
2026-06-07T22:53:32.3129034Z             {
2026-06-07T22:53:32.3129154Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3129243Z               "line": 71
2026-06-07T22:53:32.3129329Z             },
2026-06-07T22:53:32.3129421Z             {
2026-06-07T22:53:32.3129535Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3129625Z               "line": 26
2026-06-07T22:53:32.3129717Z             },
2026-06-07T22:53:32.3129806Z             {
2026-06-07T22:53:32.3129921Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3130012Z               "line": 114
2026-06-07T22:53:32.3130098Z             },
2026-06-07T22:53:32.3130183Z             {
2026-06-07T22:53:32.3130298Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3130389Z               "line": 246
2026-06-07T22:53:32.3130478Z             },
2026-06-07T22:53:32.3130563Z             {
2026-06-07T22:53:32.3130674Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3130767Z               "line": 1546
2026-06-07T22:53:32.3130853Z             }
2026-06-07T22:53:32.3130943Z           ]
2026-06-07T22:53:32.3131024Z         },
2026-06-07T22:53:32.3131110Z         "int": {
2026-06-07T22:53:32.3131214Z           "complete": true,
2026-06-07T22:53:32.3131310Z           "evidence": [
2026-06-07T22:53:32.3131396Z             {
2026-06-07T22:53:32.3131519Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-07T22:53:32.3131615Z               "line": 23
2026-06-07T22:53:32.3131697Z             }
2026-06-07T22:53:32.3131782Z           ]
2026-06-07T22:53:32.3131867Z         },
2026-06-07T22:53:32.3131955Z         "unit": {
2026-06-07T22:53:32.3132049Z           "complete": true,
2026-06-07T22:53:32.3132139Z           "evidence": [
2026-06-07T22:53:32.3132221Z             {
2026-06-07T22:53:32.3132341Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3132536Z               "line": 393
2026-06-07T22:53:32.3132622Z             },
2026-06-07T22:53:32.3132707Z             {
2026-06-07T22:53:32.3132831Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3132923Z               "line": 461
2026-06-07T22:53:32.3133008Z             },
2026-06-07T22:53:32.3133180Z             {
2026-06-07T22:53:32.3133299Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3133388Z               "line": 271
2026-06-07T22:53:32.3133478Z             },
2026-06-07T22:53:32.3133560Z             {
2026-06-07T22:53:32.3133675Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3133764Z               "line": 295
2026-06-07T22:53:32.3133851Z             },
2026-06-07T22:53:32.3133937Z             {
2026-06-07T22:53:32.3134051Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3134141Z               "line": 316
2026-06-07T22:53:32.3134228Z             },
2026-06-07T22:53:32.3134309Z             {
2026-06-07T22:53:32.3134436Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3134523Z               "line": 332
2026-06-07T22:53:32.3134609Z             }
2026-06-07T22:53:32.3134694Z           ]
2026-06-07T22:53:32.3134780Z         }
2026-06-07T22:53:32.3134862Z       }
2026-06-07T22:53:32.3134956Z     },
2026-06-07T22:53:32.3135042Z     {
2026-06-07T22:53:32.3135134Z       "id": "REQ-UPD-4",
2026-06-07T22:53:32.3135314Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-07T22:53:32.3135410Z       "requiredStages": [
2026-06-07T22:53:32.3135501Z         "impl",
2026-06-07T22:53:32.3135586Z         "unit"
2026-06-07T22:53:32.3135672Z       ],
2026-06-07T22:53:32.3135759Z       "stages": {
2026-06-07T22:53:32.3135845Z         "doc": {
2026-06-07T22:53:32.3135938Z           "complete": false,
2026-06-07T22:53:32.3136033Z           "evidence": []
2026-06-07T22:53:32.3136114Z         },
2026-06-07T22:53:32.3136204Z         "impl": {
2026-06-07T22:53:32.3136302Z           "complete": true,
2026-06-07T22:53:32.3136393Z           "evidence": [
2026-06-07T22:53:32.3136476Z             {
2026-06-07T22:53:32.3136603Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3136689Z               "line": 40
2026-06-07T22:53:32.3136790Z             },
2026-06-07T22:53:32.3136876Z             {
2026-06-07T22:53:32.3137081Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3137175Z               "line": 72
2026-06-07T22:53:32.3137256Z             },
2026-06-07T22:53:32.3137342Z             {
2026-06-07T22:53:32.3137462Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3137552Z               "line": 23
2026-06-07T22:53:32.3137643Z             },
2026-06-07T22:53:32.3137725Z             {
2026-06-07T22:53:32.3137842Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3137933Z               "line": 56
2026-06-07T22:53:32.3138020Z             },
2026-06-07T22:53:32.3138111Z             {
2026-06-07T22:53:32.3138224Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3138316Z               "line": 77
2026-06-07T22:53:32.3138398Z             },
2026-06-07T22:53:32.3138481Z             {
2026-06-07T22:53:32.3138599Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-07T22:53:32.3138700Z               "line": 184
2026-06-07T22:53:32.3138789Z             },
2026-06-07T22:53:32.3138869Z             {
2026-06-07T22:53:32.3138988Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-07T22:53:32.3139075Z               "line": 101
2026-06-07T22:53:32.3139174Z             },
2026-06-07T22:53:32.3139255Z             {
2026-06-07T22:53:32.3139370Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.3139461Z               "line": 170
2026-06-07T22:53:32.3139542Z             },
2026-06-07T22:53:32.3139628Z             {
2026-06-07T22:53:32.3139737Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3139938Z               "line": 1545
2026-06-07T22:53:32.3140024Z             }
2026-06-07T22:53:32.3140109Z           ]
2026-06-07T22:53:32.3140200Z         },
2026-06-07T22:53:32.3140282Z         "int": {
2026-06-07T22:53:32.3140381Z           "complete": false,
2026-06-07T22:53:32.3140558Z           "evidence": []
2026-06-07T22:53:32.3140640Z         },
2026-06-07T22:53:32.3140724Z         "unit": {
2026-06-07T22:53:32.3140820Z           "complete": true,
2026-06-07T22:53:32.3140907Z           "evidence": [
2026-06-07T22:53:32.3140987Z             {
2026-06-07T22:53:32.3141110Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3141195Z               "line": 389
2026-06-07T22:53:32.3141281Z             },
2026-06-07T22:53:32.3141360Z             {
2026-06-07T22:53:32.3141478Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3141570Z               "line": 514
2026-06-07T22:53:32.3141652Z             },
2026-06-07T22:53:32.3141746Z             {
2026-06-07T22:53:32.3141865Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-07T22:53:32.3141956Z               "line": 384
2026-06-07T22:53:32.3142037Z             },
2026-06-07T22:53:32.3142122Z             {
2026-06-07T22:53:32.3142238Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3142333Z               "line": 102
2026-06-07T22:53:32.3142418Z             },
2026-06-07T22:53:32.3142500Z             {
2026-06-07T22:53:32.3142614Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3142699Z               "line": 123
2026-06-07T22:53:32.3142781Z             },
2026-06-07T22:53:32.3142863Z             {
2026-06-07T22:53:32.3142976Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-07T22:53:32.3143062Z               "line": 142
2026-06-07T22:53:32.3143144Z             },
2026-06-07T22:53:32.3143230Z             {
2026-06-07T22:53:32.3143339Z               "path": "crates/spt-store/src/info.rs",
2026-06-07T22:53:32.3143435Z               "line": 386
2026-06-07T22:53:32.3143516Z             },
2026-06-07T22:53:32.3143601Z             {
2026-06-07T22:53:32.3143715Z               "path": "crates/spt-store/src/perch.rs",
2026-06-07T22:53:32.3143798Z               "line": 538
2026-06-07T22:53:32.3143883Z             },
2026-06-07T22:53:32.3143972Z             {
2026-06-07T22:53:32.3144072Z               "path": "crates/spt/src/cli.rs",
2026-06-07T22:53:32.3144164Z               "line": 4831
2026-06-07T22:53:32.3144249Z             }
2026-06-07T22:53:32.3144334Z           ]
2026-06-07T22:53:32.3144415Z         }
2026-06-07T22:53:32.3144502Z       }
2026-06-07T22:53:32.3144582Z     },
2026-06-07T22:53:32.3144667Z     {
2026-06-07T22:53:32.3144760Z       "id": "REQ-UPD-5",
2026-06-07T22:53:32.3144897Z       "title": "spt-core ripple-updates registered adapters",
2026-06-07T22:53:32.3144987Z       "requiredStages": [
2026-06-07T22:53:32.3145074Z         "impl",
2026-06-07T22:53:32.3145164Z         "unit"
2026-06-07T22:53:32.3145245Z       ],
2026-06-07T22:53:32.3145331Z       "stages": {
2026-06-07T22:53:32.3145441Z         "doc": {
2026-06-07T22:53:32.3145555Z           "complete": false,
2026-06-07T22:53:32.3145641Z           "evidence": []
2026-06-07T22:53:32.3145718Z         },
2026-06-07T22:53:32.3145803Z         "impl": {
2026-06-07T22:53:32.3145903Z           "complete": true,
2026-06-07T22:53:32.3146009Z           "evidence": [
2026-06-07T22:53:32.3146090Z             {
2026-06-07T22:53:32.3146260Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3146353Z               "line": 27
2026-06-07T22:53:32.3146438Z             },
2026-06-07T22:53:32.3146531Z             {
2026-06-07T22:53:32.3146670Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3146760Z               "line": 82
2026-06-07T22:53:32.3146839Z             },
2026-06-07T22:53:32.3146919Z             {
2026-06-07T22:53:32.3147187Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3147379Z               "line": 134
2026-06-07T22:53:32.3147469Z             },
2026-06-07T22:53:32.3147554Z             {
2026-06-07T22:53:32.3147674Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3147759Z               "line": 479
2026-06-07T22:53:32.3147932Z             },
2026-06-07T22:53:32.3148017Z             {
2026-06-07T22:53:32.3148131Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3148226Z               "line": 515
2026-06-07T22:53:32.3148314Z             }
2026-06-07T22:53:32.3148398Z           ]
2026-06-07T22:53:32.3148484Z         },
2026-06-07T22:53:32.3148571Z         "int": {
2026-06-07T22:53:32.3148671Z           "complete": false,
2026-06-07T22:53:32.3148756Z           "evidence": []
2026-06-07T22:53:32.3148842Z         },
2026-06-07T22:53:32.3148929Z         "unit": {
2026-06-07T22:53:32.3149023Z           "complete": true,
2026-06-07T22:53:32.3149113Z           "evidence": [
2026-06-07T22:53:32.3149203Z             {
2026-06-07T22:53:32.3149331Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3149420Z               "line": 231
2026-06-07T22:53:32.3149505Z             },
2026-06-07T22:53:32.3149588Z             {
2026-06-07T22:53:32.3149729Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3149845Z               "line": 245
2026-06-07T22:53:32.3149926Z             },
2026-06-07T22:53:32.3150007Z             {
2026-06-07T22:53:32.3150125Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3150213Z               "line": 259
2026-06-07T22:53:32.3150312Z             },
2026-06-07T22:53:32.3150397Z             {
2026-06-07T22:53:32.3150537Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3150617Z               "line": 273
2026-06-07T22:53:32.3150707Z             },
2026-06-07T22:53:32.3150799Z             {
2026-06-07T22:53:32.3150922Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-07T22:53:32.3151017Z               "line": 307
2026-06-07T22:53:32.3151123Z             },
2026-06-07T22:53:32.3151228Z             {
2026-06-07T22:53:32.3151365Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-07T22:53:32.3151471Z               "line": 792
2026-06-07T22:53:32.3151561Z             }
2026-06-07T22:53:32.3151646Z           ]
2026-06-07T22:53:32.3151736Z         }
2026-06-07T22:53:32.3151818Z       }
2026-06-07T22:53:32.3151902Z     },
2026-06-07T22:53:32.3151987Z     {
2026-06-07T22:53:32.3152082Z       "id": "REQ-UPD-6",
2026-06-07T22:53:32.3152940Z       "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-07T22:53:32.3153036Z       "requiredStages": [
2026-06-07T22:53:32.3153131Z         "doc",
2026-06-07T22:53:32.3153217Z         "impl",
2026-06-07T22:53:32.3153303Z         "unit",
2026-06-07T22:53:32.3153385Z         "int"
2026-06-07T22:53:32.3153475Z       ],
2026-06-07T22:53:32.3153560Z       "stages": {
2026-06-07T22:53:32.3153656Z         "doc": {
2026-06-07T22:53:32.3153747Z           "complete": true,
2026-06-07T22:53:32.3153841Z           "evidence": [
2026-06-07T22:53:32.3153918Z             {
2026-06-07T22:53:32.3154048Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T22:53:32.3154133Z               "line": 3
2026-06-07T22:53:32.3154218Z             },
2026-06-07T22:53:32.3154300Z             {
2026-06-07T22:53:32.3154428Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-07T22:53:32.3154523Z               "line": 3
2026-06-07T22:53:32.3154617Z             },
2026-06-07T22:53:32.3154699Z             {
2026-06-07T22:53:32.3154851Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-07T22:53:32.3154942Z               "line": 3
2026-06-07T22:53:32.3155124Z             }
2026-06-07T22:53:32.3155213Z           ]
2026-06-07T22:53:32.3155295Z         },
2026-06-07T22:53:32.3155391Z         "impl": {
2026-06-07T22:53:32.3155481Z           "complete": true,
2026-06-07T22:53:32.3155571Z           "evidence": [
2026-06-07T22:53:32.3155724Z             {
2026-06-07T22:53:32.3155848Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3155939Z               "line": 143
2026-06-07T22:53:32.3156025Z             },
2026-06-07T22:53:32.3156110Z             {
2026-06-07T22:53:32.3156235Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.3156330Z               "line": 457
2026-06-07T22:53:32.3156415Z             },
2026-06-07T22:53:32.3156501Z             {
2026-06-07T22:53:32.3156621Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-07T22:53:32.3156711Z               "line": 498
2026-06-07T22:53:32.3156802Z             },
2026-06-07T22:53:32.3156884Z             {
2026-06-07T22:53:32.3157096Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3157182Z               "line": 69
2026-06-07T22:53:32.3157258Z             },
2026-06-07T22:53:32.3157338Z             {
2026-06-07T22:53:32.3157456Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3157562Z               "line": 132
2026-06-07T22:53:32.3157652Z             },
2026-06-07T22:53:32.3157738Z             {
2026-06-07T22:53:32.3157862Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3157953Z               "line": 242
2026-06-07T22:53:32.3158038Z             },
2026-06-07T22:53:32.3158129Z             {
2026-06-07T22:53:32.3158244Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3158339Z               "line": 398
2026-06-07T22:53:32.3158419Z             },
2026-06-07T22:53:32.3158507Z             {
2026-06-07T22:53:32.3158620Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3158724Z               "line": 526
2026-06-07T22:53:32.3158811Z             },
2026-06-07T22:53:32.3158897Z             {
2026-06-07T22:53:32.3159021Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3159106Z               "line": 540
2026-06-07T22:53:32.3159198Z             },
2026-06-07T22:53:32.3159287Z             {
2026-06-07T22:53:32.3159407Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3159494Z               "line": 595
2026-06-07T22:53:32.3159583Z             },
2026-06-07T22:53:32.3159668Z             {
2026-06-07T22:53:32.3159783Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3159873Z               "line": 626
2026-06-07T22:53:32.3159956Z             },
2026-06-07T22:53:32.3160042Z             {
2026-06-07T22:53:32.3160158Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3160243Z               "line": 41
2026-06-07T22:53:32.3160333Z             },
2026-06-07T22:53:32.3160429Z             {
2026-06-07T22:53:32.3160543Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3160633Z               "line": 99
2026-06-07T22:53:32.3160719Z             },
2026-06-07T22:53:32.3160801Z             {
2026-06-07T22:53:32.3160924Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3161019Z               "line": 130
2026-06-07T22:53:32.3161102Z             },
2026-06-07T22:53:32.3161186Z             {
2026-06-07T22:53:32.3161301Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3161397Z               "line": 159
2026-06-07T22:53:32.3161487Z             },
2026-06-07T22:53:32.3161601Z             {
2026-06-07T22:53:32.3161726Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3161811Z               "line": 190
2026-06-07T22:53:32.3161897Z             },
2026-06-07T22:53:32.3161978Z             {
2026-06-07T22:53:32.3162122Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3162310Z               "line": 213
2026-06-07T22:53:32.3162471Z             },
2026-06-07T22:53:32.3162556Z             {
2026-06-07T22:53:32.3162724Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3162833Z               "line": 231
2026-06-07T22:53:32.3163010Z             },
2026-06-07T22:53:32.3163111Z             {
2026-06-07T22:53:32.3163243Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3163330Z               "line": 241
2026-06-07T22:53:32.3163424Z             },
2026-06-07T22:53:32.3163505Z             {
2026-06-07T22:53:32.3163625Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3163715Z               "line": 253
2026-06-07T22:53:32.3163805Z             },
2026-06-07T22:53:32.3163891Z             {
2026-06-07T22:53:32.3164007Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3164096Z               "line": 263
2026-06-07T22:53:32.3164182Z             },
2026-06-07T22:53:32.3164274Z             {
2026-06-07T22:53:32.3164387Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3164487Z               "line": 87
2026-06-07T22:53:32.3164574Z             },
2026-06-07T22:53:32.3164660Z             {
2026-06-07T22:53:32.3164783Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3164875Z               "line": 113
2026-06-07T22:53:32.3164961Z             },
2026-06-07T22:53:32.3165049Z             {
2026-06-07T22:53:32.3165168Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3165260Z               "line": 128
2026-06-07T22:53:32.3165341Z             },
2026-06-07T22:53:32.3165431Z             {
2026-06-07T22:53:32.3165545Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3165636Z               "line": 149
2026-06-07T22:53:32.3165721Z             },
2026-06-07T22:53:32.3165807Z             {
2026-06-07T22:53:32.3165932Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3166017Z               "line": 161
2026-06-07T22:53:32.3166103Z             },
2026-06-07T22:53:32.3166185Z             {
2026-06-07T22:53:32.3166303Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3166394Z               "line": 172
2026-06-07T22:53:32.3166489Z             },
2026-06-07T22:53:32.3166580Z             {
2026-06-07T22:53:32.3166694Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3166785Z               "line": 438
2026-06-07T22:53:32.3166867Z             },
2026-06-07T22:53:32.3167038Z             {
2026-06-07T22:53:32.3167158Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3167252Z               "line": 542
2026-06-07T22:53:32.3167337Z             },
2026-06-07T22:53:32.3167420Z             {
2026-06-07T22:53:32.3167544Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3167633Z               "line": 171
2026-06-07T22:53:32.3167728Z             },
2026-06-07T22:53:32.3167819Z             {
2026-06-07T22:53:32.3167931Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3168021Z               "line": 65
2026-06-07T22:53:32.3168107Z             },
2026-06-07T22:53:32.3168194Z             {
2026-06-07T22:53:32.3168312Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3168403Z               "line": 71
2026-06-07T22:53:32.3168494Z             },
2026-06-07T22:53:32.3168579Z             {
2026-06-07T22:53:32.3168698Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-07T22:53:32.3168790Z               "line": 77
2026-06-07T22:53:32.3168875Z             },
2026-06-07T22:53:32.3168961Z             {
2026-06-07T22:53:32.3169076Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3169166Z               "line": 649
2026-06-07T22:53:32.3169247Z             },
2026-06-07T22:53:32.3169333Z             {
2026-06-07T22:53:32.3169537Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3169633Z               "line": 666
2026-06-07T22:53:32.3169715Z             },
2026-06-07T22:53:32.3169805Z             {
2026-06-07T22:53:32.3169914Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3170001Z               "line": 709
2026-06-07T22:53:32.3170176Z             },
2026-06-07T22:53:32.3170261Z             {
2026-06-07T22:53:32.3170371Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3170456Z               "line": 849
2026-06-07T22:53:32.3170545Z             },
2026-06-07T22:53:32.3170630Z             {
2026-06-07T22:53:32.3170737Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3170831Z               "line": 996
2026-06-07T22:53:32.3170916Z             }
2026-06-07T22:53:32.3171008Z           ]
2026-06-07T22:53:32.3171089Z         },
2026-06-07T22:53:32.3171184Z         "int": {
2026-06-07T22:53:32.3171279Z           "complete": true,
2026-06-07T22:53:32.3171371Z           "evidence": [
2026-06-07T22:53:32.3171466Z             {
2026-06-07T22:53:32.3171594Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.3171690Z               "line": 558
2026-06-07T22:53:32.3171776Z             },
2026-06-07T22:53:32.3171866Z             {
2026-06-07T22:53:32.3171986Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T22:53:32.3172085Z               "line": 135
2026-06-07T22:53:32.3172171Z             }
2026-06-07T22:53:32.3172253Z           ]
2026-06-07T22:53:32.3172344Z         },
2026-06-07T22:53:32.3172428Z         "unit": {
2026-06-07T22:53:32.3172529Z           "complete": true,
2026-06-07T22:53:32.3172625Z           "evidence": [
2026-06-07T22:53:32.3172710Z             {
2026-06-07T22:53:32.3172833Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3172923Z               "line": 434
2026-06-07T22:53:32.3173013Z             },
2026-06-07T22:53:32.3173097Z             {
2026-06-07T22:53:32.3173226Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-07T22:53:32.3173318Z               "line": 483
2026-06-07T22:53:32.3173402Z             },
2026-06-07T22:53:32.3173488Z             {
2026-06-07T22:53:32.3173608Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-07T22:53:32.3173699Z               "line": 688
2026-06-07T22:53:32.3173789Z             },
2026-06-07T22:53:32.3173875Z             {
2026-06-07T22:53:32.3173999Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3174089Z               "line": 355
2026-06-07T22:53:32.3174176Z             },
2026-06-07T22:53:32.3174262Z             {
2026-06-07T22:53:32.3174380Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-07T22:53:32.3174471Z               "line": 392
2026-06-07T22:53:32.3174558Z             },
2026-06-07T22:53:32.3174642Z             {
2026-06-07T22:53:32.3174757Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3174849Z               "line": 879
2026-06-07T22:53:32.3174938Z             },
2026-06-07T22:53:32.3175028Z             {
2026-06-07T22:53:32.3175144Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3175234Z               "line": 901
2026-06-07T22:53:32.3175323Z             },
2026-06-07T22:53:32.3175406Z             {
2026-06-07T22:53:32.3175526Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3175614Z               "line": 918
2026-06-07T22:53:32.3175700Z             },
2026-06-07T22:53:32.3175786Z             {
2026-06-07T22:53:32.3175896Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3175986Z               "line": 933
2026-06-07T22:53:32.3176072Z             },
2026-06-07T22:53:32.3176158Z             {
2026-06-07T22:53:32.3176272Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-07T22:53:32.3176362Z               "line": 959
2026-06-07T22:53:32.3176455Z             },
2026-06-07T22:53:32.3176540Z             {
2026-06-07T22:53:32.3176735Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-07T22:53:32.3176830Z               "line": 455
2026-06-07T22:53:32.3176920Z             },
2026-06-07T22:53:32.3177089Z             {
2026-06-07T22:53:32.3177221Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-07T22:53:32.3177312Z               "line": 327
2026-06-07T22:53:32.3177511Z             },
2026-06-07T22:53:32.3177593Z             {
2026-06-07T22:53:32.3177704Z               "path": "crates/xtask/src/main.rs",
2026-06-07T22:53:32.3177803Z               "line": 1125
2026-06-07T22:53:32.3177888Z             },
2026-06-07T22:53:32.3177975Z             {
2026-06-07T22:53:32.3178094Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-07T22:53:32.3178183Z               "line": 130
2026-06-07T22:53:32.3178268Z             }
2026-06-07T22:53:32.3178350Z           ]
2026-06-07T22:53:32.3178435Z         }
2026-06-07T22:53:32.3178524Z       }
2026-06-07T22:53:32.3178609Z     }
2026-06-07T22:53:32.3178696Z   ],
2026-06-07T22:53:32.3180736Z   "findings": []
2026-06-07T22:53:32.3180840Z }
2026-06-07T22:53:32.3203522Z ##[group]Run ./traceable-reqs lint || true
2026-06-07T22:53:32.3203666Z [36;1m./traceable-reqs lint || true[0m
2026-06-07T22:53:32.3215877Z shell: /usr/bin/bash -e {0}
2026-06-07T22:53:32.3215967Z ##[endgroup]
2026-06-07T22:53:32.3379787Z Requirement quality findings (55); 166 requirements queued for agent review:
2026-06-07T22:53:32.3380449Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3381012Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-07T22:53:32.3381526Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-07T22:53:32.3382033Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-07T22:53:32.3382550Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-07T22:53:32.3383136Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-07T22:53:32.3383931Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3384400Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-07T22:53:32.3384729Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-07T22:53:32.3385197Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3385535Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-07T22:53:32.3385969Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-07T22:53:32.3386399Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-07T22:53:32.3386817Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-07T22:53:32.3387470Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3387884Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-07T22:53:32.3388418Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3388781Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-07T22:53:32.3389288Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3389694Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-07T22:53:32.3390074Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-07T22:53:32.3390475Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-07T22:53:32.3391225Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3391663Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3392005Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-07T22:53:32.3392432Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3392923Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-07T22:53:32.3393261Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-07T22:53:32.3393590Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-07T22:53:32.3393857Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-07T22:53:32.3394129Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-07T22:53:32.3394524Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3394803Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-07T22:53:32.3395179Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3395452Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-07T22:53:32.3395709Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-07T22:53:32.3396096Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3396462Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3396719Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-07T22:53:32.3397415Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3397810Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-07T22:53:32.3398259Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3398560Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-07T22:53:32.3398870Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-07T22:53:32.3399176Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-07T22:53:32.3399462Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-07T22:53:32.3399743Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-07T22:53:32.3400027Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-07T22:53:32.3400425Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3400716Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-07T22:53:32.3401202Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3401742Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-07T22:53:32.3402429Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-07T22:53:32.3402863Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-07T22:53:32.3403182Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-07T22:53:32.3403225Z 
2026-06-07T22:53:32.3403365Z # Requirement quality review
2026-06-07T22:53:32.3403397Z 
2026-06-07T22:53:32.3403636Z You are reviewing 166 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-07T22:53:32.3404055Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-07T22:53:32.3404300Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-07T22:53:32.3404484Z this command's output. Your task is the rubric items below.
2026-06-07T22:53:32.3404532Z 
2026-06-07T22:53:32.3404643Z ## Rubric
2026-06-07T22:53:32.3404680Z 
2026-06-07T22:53:32.3405023Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-07T22:53:32.3405317Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-07T22:53:32.3405588Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-07T22:53:32.3405787Z - **active-voice** — clear subject and active verb.
2026-06-07T22:53:32.3405820Z 
2026-06-07T22:53:32.3406112Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-07T22:53:32.3406223Z clear concerns.
2026-06-07T22:53:32.3406260Z 
2026-06-07T22:53:32.3406566Z ## Requirements
2026-06-07T22:53:32.3406603Z 
2026-06-07T22:53:32.3406722Z ### REQ-ARCH-1
2026-06-07T22:53:32.3406876Z - Title: Many small acyclically-layered crates
2026-06-07T22:53:32.3407080Z - Required stages: impl
2026-06-07T22:53:32.3407114Z 
2026-06-07T22:53:32.3407443Z ### REQ-ARCH-2
2026-06-07T22:53:32.3407680Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-07T22:53:32.3407801Z - Required stages: impl
2026-06-07T22:53:32.3407844Z 
2026-06-07T22:53:32.3407956Z ### REQ-ARCH-3
2026-06-07T22:53:32.3408205Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-07T22:53:32.3408328Z - Required stages: impl, unit
2026-06-07T22:53:32.3408365Z 
2026-06-07T22:53:32.3408476Z ### REQ-ARCH-4
2026-06-07T22:53:32.3408675Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-07T22:53:32.3408805Z - Required stages: impl, unit
2026-06-07T22:53:32.3408843Z 
2026-06-07T22:53:32.3408957Z ### REQ-DAEMON-1
2026-06-07T22:53:32.3409167Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-07T22:53:32.3409301Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3409339Z 
2026-06-07T22:53:32.3409444Z ### REQ-DAEMON-2
2026-06-07T22:53:32.3409616Z - Title: Broker/brain split for seamless self-update
2026-06-07T22:53:32.3409755Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3409792Z 
2026-06-07T22:53:32.3409901Z ### REQ-DAEMON-3
2026-06-07T22:53:32.3410083Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-07T22:53:32.3410201Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3410235Z 
2026-06-07T22:53:32.3410356Z ### REQ-DAEMON-4
2026-06-07T22:53:32.3410502Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-07T22:53:32.3410630Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3410663Z 
2026-06-07T22:53:32.3410781Z ### REQ-STORE-1
2026-06-07T22:53:32.3411596Z - 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-07T22:53:32.3411696Z - Required stages: impl, unit
2026-06-07T22:53:32.3411930Z 
2026-06-07T22:53:32.3412035Z ### REQ-MANIFEST-1
2026-06-07T22:53:32.3412211Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-07T22:53:32.3412349Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3412378Z 
2026-06-07T22:53:32.3412478Z ### REQ-SEAM-SPAWN
2026-06-07T22:53:32.3412598Z - Title: spawn-session seam
2026-06-07T22:53:32.3412721Z - Required stages: impl, unit
2026-06-07T22:53:32.3412749Z 
2026-06-07T22:53:32.3412850Z ### REQ-SEAM-POSTSPAWN
2026-06-07T22:53:32.3412984Z - Title: post-spawn / api bind seam with boot nonce
2026-06-07T22:53:32.3413087Z - Required stages: impl, unit
2026-06-07T22:53:32.3413116Z 
2026-06-07T22:53:32.3413216Z ### REQ-SEAM-PSYCHE
2026-06-07T22:53:32.3413456Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-07T22:53:32.3413562Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3413596Z 
2026-06-07T22:53:32.3413695Z ### REQ-SEAM-HISTORY
2026-06-07T22:53:32.3413867Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-07T22:53:32.3413981Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3414010Z 
2026-06-07T22:53:32.3414114Z ### REQ-SEAM-ACTIVITY
2026-06-07T22:53:32.3414282Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-07T22:53:32.3414391Z - Required stages: impl, unit
2026-06-07T22:53:32.3414424Z 
2026-06-07T22:53:32.3414516Z ### REQ-SEAM-INJECT
2026-06-07T22:53:32.3414678Z - Title: inject-input methods configurable per activity-state
2026-06-07T22:53:32.3414778Z - Required stages: impl, unit
2026-06-07T22:53:32.3414812Z 
2026-06-07T22:53:32.3414907Z ### REQ-SEAM-RESUME
2026-06-07T22:53:32.3415083Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-07T22:53:32.3415193Z - Required stages: impl, unit
2026-06-07T22:53:32.3415227Z 
2026-06-07T22:53:32.3415326Z ### REQ-SEAM-CAPABILITY
2026-06-07T22:53:32.3415466Z - Title: Hostable endpoint-types capability declaration
2026-06-07T22:53:32.3415570Z - Required stages: impl, unit
2026-06-07T22:53:32.3415611Z 
2026-06-07T22:53:32.3415711Z ### REQ-SEAM-UPDATE
2026-06-07T22:53:32.3415868Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-07T22:53:32.3415971Z - Required stages: impl, unit
2026-06-07T22:53:32.3416004Z 
2026-06-07T22:53:32.3416095Z ### REQ-API-1
2026-06-07T22:53:32.3416258Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-07T22:53:32.3416362Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3416395Z 
2026-06-07T22:53:32.3416487Z ### REQ-API-2
2026-06-07T22:53:32.3416681Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-07T22:53:32.3416778Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3416811Z 
2026-06-07T22:53:32.3416915Z ### REQ-API-3
2026-06-07T22:53:32.3417130Z - Title: commune/signoff are file-drops, not commands
2026-06-07T22:53:32.3417267Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3417306Z 
2026-06-07T22:53:32.3417450Z ### REQ-START-1
2026-06-07T22:53:32.3417640Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-07T22:53:32.3417741Z - Required stages: impl, unit
2026-06-07T22:53:32.3417774Z 
2026-06-07T22:53:32.3417868Z ### REQ-START-2
2026-06-07T22:53:32.3417993Z - Title: Harness-hosted startup: api seed then listen
2026-06-07T22:53:32.3418099Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3418131Z 
2026-06-07T22:53:32.3418221Z ### REQ-START-3
2026-06-07T22:53:32.3418380Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-07T22:53:32.3418479Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3418516Z 
2026-06-07T22:53:32.3418611Z ### REQ-START-4
2026-06-07T22:53:32.3418746Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-07T22:53:32.3418850Z - Required stages: impl, unit
2026-06-07T22:53:32.3418883Z 
2026-06-07T22:53:32.3418983Z ### REQ-EP-1
2026-06-07T22:53:32.3419104Z - Title: Day-one endpoint types; open type system
2026-06-07T22:53:32.3419207Z - Required stages: impl, unit
2026-06-07T22:53:32.3419352Z 
2026-06-07T22:53:32.3419447Z ### REQ-EP-2
2026-06-07T22:53:32.3419599Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-07T22:53:32.3419704Z - Required stages: impl, unit
2026-06-07T22:53:32.3419732Z 
2026-06-07T22:53:32.3419822Z ### REQ-EP-3
2026-06-07T22:53:32.3420000Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-07T22:53:32.3420104Z - Required stages: impl, unit
2026-06-07T22:53:32.3420137Z 
2026-06-07T22:53:32.3420223Z ### REQ-EP-4
2026-06-07T22:53:32.3420366Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-07T22:53:32.3420461Z - Required stages: impl, unit
2026-06-07T22:53:32.3420495Z 
2026-06-07T22:53:32.3420587Z ### REQ-EP-5
2026-06-07T22:53:32.3421318Z - 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-07T22:53:32.3421431Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3421459Z 
2026-06-07T22:53:32.3421565Z ### REQ-INST-1
2026-06-07T22:53:32.3421736Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-07T22:53:32.3421837Z - Required stages: 
2026-06-07T22:53:32.3421865Z 
2026-06-07T22:53:32.3421961Z ### REQ-INST-2
2026-06-07T22:53:32.3422084Z - Title: Per-node files, synced Psyche mind
2026-06-07T22:53:32.3422195Z - Required stages: impl, unit
2026-06-07T22:53:32.3422219Z 
2026-06-07T22:53:32.3422309Z ### REQ-INST-3
2026-06-07T22:53:32.3422456Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-07T22:53:32.3422580Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3422628Z 
2026-06-07T22:53:32.3422728Z ### REQ-INST-4
2026-06-07T22:53:32.3422881Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-07T22:53:32.3422981Z - Required stages: impl, unit
2026-06-07T22:53:32.3423014Z 
2026-06-07T22:53:32.3423110Z ### REQ-INST-5
2026-06-07T22:53:32.3423286Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-07T22:53:32.3423377Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3423405Z 
2026-06-07T22:53:32.3423506Z ### REQ-INST-6
2026-06-07T22:53:32.3423676Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-07T22:53:32.3423791Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3423819Z 
2026-06-07T22:53:32.3423912Z ### REQ-INST-7
2026-06-07T22:53:32.3424045Z - Title: Subnet registry + bare-id resolution policy
2026-06-07T22:53:32.3424146Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3424185Z 
2026-06-07T22:53:32.3424284Z ### REQ-INST-8
2026-06-07T22:53:32.3424432Z - Title: Remote-control mode distinct from local operation
2026-06-07T22:53:32.3424537Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3424570Z 
2026-06-07T22:53:32.3424665Z ### REQ-INST-9
2026-06-07T22:53:32.3424838Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-07T22:53:32.3424947Z - Required stages: impl, unit
2026-06-07T22:53:32.3424979Z 
2026-06-07T22:53:32.3425076Z ### REQ-INST-10
2026-06-07T22:53:32.3425271Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-07T22:53:32.3425391Z - Required stages: impl, unit
2026-06-07T22:53:32.3425424Z 
2026-06-07T22:53:32.3425519Z ### REQ-INST-11
2026-06-07T22:53:32.3425720Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-07T22:53:32.3425829Z - Required stages: impl, unit
2026-06-07T22:53:32.3425862Z 
2026-06-07T22:53:32.3425957Z ### REQ-INST-12
2026-06-07T22:53:32.3426233Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-07T22:53:32.3426343Z - Required stages: impl, unit
2026-06-07T22:53:32.3426376Z 
2026-06-07T22:53:32.3426465Z ### REQ-INST-13
2026-06-07T22:53:32.3426635Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-07T22:53:32.3426742Z - Required stages: impl, unit
2026-06-07T22:53:32.3426850Z 
2026-06-07T22:53:32.3426945Z ### REQ-INST-14
2026-06-07T22:53:32.3427399Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-07T22:53:32.3427504Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3427537Z 
2026-06-07T22:53:32.3427633Z ### REQ-INST-15
2026-06-07T22:53:32.3428325Z - 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-07T22:53:32.3428423Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3428553Z 
2026-06-07T22:53:32.3428649Z ### REQ-REACH-1
2026-06-07T22:53:32.3428786Z - Title: Off-node remote-drive detection + file transfer
2026-06-07T22:53:32.3428902Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3428940Z 
2026-06-07T22:53:32.3429034Z ### REQ-REACH-2
2026-06-07T22:53:32.3429176Z - Title: Remote command execution (deferred, consent-gated)
2026-06-07T22:53:32.3429273Z - Required stages: 
2026-06-07T22:53:32.3429306Z 
2026-06-07T22:53:32.3429400Z ### REQ-MSG-1
2026-06-07T22:53:32.3429824Z - 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-07T22:53:32.3429931Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3429963Z 
2026-06-07T22:53:32.3430053Z ### REQ-MSG-2
2026-06-07T22:53:32.3430387Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-07T22:53:32.3430503Z - Required stages: impl, unit
2026-06-07T22:53:32.3430536Z 
2026-06-07T22:53:32.3430626Z ### REQ-MSG-3
2026-06-07T22:53:32.3430998Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-07T22:53:32.3431108Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3431137Z 
2026-06-07T22:53:32.3431237Z ### REQ-MSG-4
2026-06-07T22:53:32.3432038Z - 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-07T22:53:32.3432145Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3432178Z 
2026-06-07T22:53:32.3432277Z ### REQ-NODE-IDENTITY
2026-06-07T22:53:32.3432487Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-07T22:53:32.3432592Z - Required stages: impl, unit
2026-06-07T22:53:32.3432634Z 
2026-06-07T22:53:32.3432726Z ### REQ-NET-1
2026-06-07T22:53:32.3432897Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-07T22:53:32.3433001Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3433045Z 
2026-06-07T22:53:32.3433136Z ### REQ-NET-2
2026-06-07T22:53:32.3433303Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-07T22:53:32.3433404Z - Required stages: impl
2026-06-07T22:53:32.3433432Z 
2026-06-07T22:53:32.3433526Z ### REQ-NET-3
2026-06-07T22:53:32.3433689Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-07T22:53:32.3433794Z - Required stages: impl, unit
2026-06-07T22:53:32.3433826Z 
2026-06-07T22:53:32.3433922Z ### REQ-PAIR-1
2026-06-07T22:53:32.3434028Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-07T22:53:32.3434141Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3434174Z 
2026-06-07T22:53:32.3434269Z ### REQ-PAIR-2
2026-06-07T22:53:32.3434403Z - Title: Local trust store with TOFU + warn-on-change
2026-06-07T22:53:32.3434510Z - Required stages: impl, unit
2026-06-07T22:53:32.3434539Z 
2026-06-07T22:53:32.3434634Z ### REQ-PAIR-3
2026-06-07T22:53:32.3434773Z - Title: Fetch current pairing code from any paired node
2026-06-07T22:53:32.3434987Z - Required stages: impl, unit
2026-06-07T22:53:32.3435021Z 
2026-06-07T22:53:32.3435111Z ### REQ-PAIR-4
2026-06-07T22:53:32.3435225Z - Title: Subnet naming on first pairing
2026-06-07T22:53:32.3435327Z - Required stages: impl, unit
2026-06-07T22:53:32.3435360Z 
2026-06-07T22:53:32.3435455Z ### REQ-PAIR-5
2026-06-07T22:53:32.3435741Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-07T22:53:32.3435850Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3435883Z 
2026-06-07T22:53:32.3435980Z ### REQ-PAIR-6
2026-06-07T22:53:32.3436227Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-07T22:53:32.3436422Z - Required stages: impl, unit
2026-06-07T22:53:32.3436451Z 
2026-06-07T22:53:32.3436547Z ### REQ-PAIR-7
2026-06-07T22:53:32.3436708Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-07T22:53:32.3436807Z - Required stages: 
2026-06-07T22:53:32.3436850Z 
2026-06-07T22:53:32.3436941Z ### REQ-SUBNET-1
2026-06-07T22:53:32.3437631Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-07T22:53:32.3437806Z - Required stages: impl, unit
2026-06-07T22:53:32.3437849Z 
2026-06-07T22:53:32.3437969Z ### REQ-SUBNET-2
2026-06-07T22:53:32.3438265Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-07T22:53:32.3438402Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3438440Z 
2026-06-07T22:53:32.3438561Z ### REQ-SUBNET-3
2026-06-07T22:53:32.3438880Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-07T22:53:32.3439037Z - Required stages: impl, unit
2026-06-07T22:53:32.3439075Z 
2026-06-07T22:53:32.3439195Z ### REQ-SUBNET-4
2026-06-07T22:53:32.3439543Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-07T22:53:32.3439674Z - Required stages: impl, unit
2026-06-07T22:53:32.3439713Z 
2026-06-07T22:53:32.3439823Z ### REQ-DOCS-6
2026-06-07T22:53:32.3440219Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-07T22:53:32.3440351Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3440389Z 
2026-06-07T22:53:32.3440538Z ### REQ-SEC-1
2026-06-07T22:53:32.3441000Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-07T22:53:32.3441130Z - Required stages: impl, unit
2026-06-07T22:53:32.3441177Z 
2026-06-07T22:53:32.3441286Z ### REQ-NOTIF-1
2026-06-07T22:53:32.3441755Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-07T22:53:32.3441881Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3441915Z 
2026-06-07T22:53:32.3442036Z ### REQ-NOTIF-2
2026-06-07T22:53:32.3442348Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-07T22:53:32.3442490Z - Required stages: doc, impl, unit, int
2026-06-07T22:53:32.3442527Z 
2026-06-07T22:53:32.3442637Z ### REQ-UPD-1
2026-06-07T22:53:32.3442776Z - Title: Peer-propagated update over P2P
2026-06-07T22:53:32.3442899Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3442937Z 
2026-06-07T22:53:32.3443043Z ### REQ-UPD-2
2026-06-07T22:53:32.3443213Z - Title: All binaries signature-verified before handoff
2026-06-07T22:53:32.3443344Z - Required stages: impl, unit
2026-06-07T22:53:32.3443377Z 
2026-06-07T22:53:32.3443486Z ### REQ-UPD-3
2026-06-07T22:53:32.3443696Z - Title: No endpoint process terminates/suspends during self-update
2026-06-07T22:53:32.3443819Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3443853Z 
2026-06-07T22:53:32.3443964Z ### REQ-UPD-4
2026-06-07T22:53:32.3444177Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-07T22:53:32.3444497Z - Required stages: impl, unit
2026-06-07T22:53:32.3444530Z 
2026-06-07T22:53:32.3444641Z ### REQ-UPD-5
2026-06-07T22:53:32.3444801Z - Title: spt-core ripple-updates registered adapters
2026-06-07T22:53:32.3444925Z - Required stages: impl, unit
2026-06-07T22:53:32.3444958Z 
2026-06-07T22:53:32.3445070Z ### REQ-UPD-6
2026-06-07T22:53:32.3446038Z - 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-07T22:53:32.3446172Z - Required stages: doc, impl, unit, int
2026-06-07T22:53:32.3446325Z 
2026-06-07T22:53:32.3446438Z ### REQ-TERM-1
2026-06-07T22:53:32.3446644Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-07T22:53:32.3446763Z - Required stages: impl, unit
2026-06-07T22:53:32.3446811Z 
2026-06-07T22:53:32.3446916Z ### REQ-TERM-2
2026-06-07T22:53:32.3447207Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-07T22:53:32.3447334Z - Required stages: impl, unit
2026-06-07T22:53:32.3447372Z 
2026-06-07T22:53:32.3447482Z ### REQ-TERM-3
2026-06-07T22:53:32.3447642Z - Title: Byte-stream remote terminal streaming for v1
2026-06-07T22:53:32.3447761Z - Required stages: impl, unit
2026-06-07T22:53:32.3447799Z 
2026-06-07T22:53:32.3447910Z ### REQ-TERM-4
2026-06-07T22:53:32.3448319Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-07T22:53:32.3448448Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3448481Z 
2026-06-07T22:53:32.3448605Z ### REQ-FRONT-1
2026-06-07T22:53:32.3448796Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-07T22:53:32.3448915Z - Required stages: 
2026-06-07T22:53:32.3448953Z 
2026-06-07T22:53:32.3449059Z ### REQ-INSTALL-1
2026-06-07T22:53:32.3449291Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-07T22:53:32.3449421Z - Required stages: doc, impl, int
2026-06-07T22:53:32.3449454Z 
2026-06-07T22:53:32.3449568Z ### REQ-INSTALL-2
2026-06-07T22:53:32.3449727Z - Title: Marketplace-repackaging-friendly install
2026-06-07T22:53:32.3449845Z - Required stages: doc
2026-06-07T22:53:32.3449877Z 
2026-06-07T22:53:32.3449988Z ### REQ-INSTALL-3
2026-06-07T22:53:32.3450154Z - Title: Idempotent + interactive-optional first run
2026-06-07T22:53:32.3450277Z - Required stages: impl, int
2026-06-07T22:53:32.3450310Z 
2026-06-07T22:53:32.3450426Z ### REQ-INSTALL-4
2026-06-07T22:53:32.3451118Z - 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-07T22:53:32.3451221Z - Required stages: impl, unit
2026-06-07T22:53:32.3451255Z 
2026-06-07T22:53:32.3451351Z ### REQ-MIGRATE-1
2026-06-07T22:53:32.3451508Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-07T22:53:32.3451608Z - Required stages: 
2026-06-07T22:53:32.3451637Z 
2026-06-07T22:53:32.3451728Z ### REQ-INFRA-1
2026-06-07T22:53:32.3451894Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-07T22:53:32.3451995Z - Required stages: 
2026-06-07T22:53:32.3452024Z 
2026-06-07T22:53:32.3452113Z ### REQ-INSTALL-5
2026-06-07T22:53:32.3452563Z - 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-07T22:53:32.3452663Z - Required stages: impl, int
2026-06-07T22:53:32.3452700Z 
2026-06-07T22:53:32.3452794Z ### REQ-REL-1
2026-06-07T22:53:32.3453154Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-07T22:53:32.3453365Z - Required stages: doc, impl
2026-06-07T22:53:32.3453397Z 
2026-06-07T22:53:32.3453488Z ### REQ-REL-2
2026-06-07T22:53:32.3453942Z - 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-07T22:53:32.3454046Z - Required stages: impl, int
2026-06-07T22:53:32.3454079Z 
2026-06-07T22:53:32.3454176Z ### REQ-REL-3
2026-06-07T22:53:32.3454590Z - 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-07T22:53:32.3454699Z - Required stages: impl, unit
2026-06-07T22:53:32.3454732Z 
2026-06-07T22:53:32.3454919Z ### REQ-DOCS-1
2026-06-07T22:53:32.3455110Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-07T22:53:32.3455211Z - Required stages: doc, impl
2026-06-07T22:53:32.3455243Z 
2026-06-07T22:53:32.3455333Z ### REQ-DOCS-2
2026-06-07T22:53:32.3455495Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-07T22:53:32.3455598Z - Required stages: doc, int
2026-06-07T22:53:32.3455630Z 
2026-06-07T22:53:32.3455730Z ### REQ-DOCS-3
2026-06-07T22:53:32.3455969Z - Title: Diátaxis structure; one canonical way to do X
2026-06-07T22:53:32.3456069Z - Required stages: doc
2026-06-07T22:53:32.3456098Z 
2026-06-07T22:53:32.3456198Z ### REQ-DOCS-4
2026-06-07T22:53:32.3456384Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-07T22:53:32.3456498Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3456527Z 
2026-06-07T22:53:32.3456622Z ### REQ-DOCS-5
2026-06-07T22:53:32.3456823Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-07T22:53:32.3456927Z - Required stages: impl, int
2026-06-07T22:53:32.3457013Z 
2026-06-07T22:53:32.3457119Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-07T22:53:32.3457304Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-07T22:53:32.3457420Z - Required stages: impl, unit
2026-06-07T22:53:32.3457453Z 
2026-06-07T22:53:32.3457557Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-07T22:53:32.3457701Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-07T22:53:32.3457800Z - Required stages: impl, unit
2026-06-07T22:53:32.3457833Z 
2026-06-07T22:53:32.3457941Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-07T22:53:32.3458071Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-07T22:53:32.3458173Z - Required stages: impl, unit
2026-06-07T22:53:32.3458207Z 
2026-06-07T22:53:32.3458316Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-07T22:53:32.3458488Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-07T22:53:32.3458597Z - Required stages: impl, unit
2026-06-07T22:53:32.3458631Z 
2026-06-07T22:53:32.3458732Z ### REQ-HAZARD-WORKER-PATH
2026-06-07T22:53:32.3458907Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-07T22:53:32.3459009Z - Required stages: impl, unit
2026-06-07T22:53:32.3459041Z 
2026-06-07T22:53:32.3459156Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-07T22:53:32.3459328Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-07T22:53:32.3459423Z - Required stages: 
2026-06-07T22:53:32.3459451Z 
2026-06-07T22:53:32.3459565Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-07T22:53:32.3459690Z - Title: Stdin session_id precedence over env (2.2)
2026-06-07T22:53:32.3459789Z - Required stages: 
2026-06-07T22:53:32.3459818Z 
2026-06-07T22:53:32.3459929Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-07T22:53:32.3460080Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-07T22:53:32.3460185Z - Required stages: impl, unit
2026-06-07T22:53:32.3460219Z 
2026-06-07T22:53:32.3460334Z ### REQ-HAZARD-GEN-START-NOW
2026-06-07T22:53:32.3460466Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-07T22:53:32.3460573Z - Required stages: impl, int
2026-06-07T22:53:32.3460602Z 
2026-06-07T22:53:32.3460813Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-07T22:53:32.3460968Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-07T22:53:32.3461067Z - Required stages: impl, unit
2026-06-07T22:53:32.3461100Z 
2026-06-07T22:53:32.3461210Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-07T22:53:32.3461368Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-07T22:53:32.3461466Z - Required stages: impl, unit
2026-06-07T22:53:32.3461496Z 
2026-06-07T22:53:32.3461611Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-07T22:53:32.3461805Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-07T22:53:32.3461902Z - Required stages: impl, unit
2026-06-07T22:53:32.3461935Z 
2026-06-07T22:53:32.3462145Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-07T22:53:32.3462292Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-07T22:53:32.3462397Z - Required stages: impl, unit
2026-06-07T22:53:32.3462430Z 
2026-06-07T22:53:32.3462541Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-07T22:53:32.3462717Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-07T22:53:32.3462823Z - Required stages: impl, unit
2026-06-07T22:53:32.3462856Z 
2026-06-07T22:53:32.3462960Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-07T22:53:32.3463161Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-07T22:53:32.3463261Z - Required stages: impl, unit
2026-06-07T22:53:32.3463298Z 
2026-06-07T22:53:32.3463397Z ### REQ-HAZARD-ID-CHARSET
2026-06-07T22:53:32.3463634Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-07T22:53:32.3463733Z - Required stages: impl, unit
2026-06-07T22:53:32.3463762Z 
2026-06-07T22:53:32.3463891Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-07T22:53:32.3464072Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-07T22:53:32.3464173Z - Required stages: impl, unit
2026-06-07T22:53:32.3464206Z 
2026-06-07T22:53:32.3464315Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-07T22:53:32.3464553Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-07T22:53:32.3464658Z - Required stages: impl, unit
2026-06-07T22:53:32.3464687Z 
2026-06-07T22:53:32.3464798Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-07T22:53:32.3465164Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-07T22:53:32.3465269Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3465302Z 
2026-06-07T22:53:32.3465408Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-07T22:53:32.3465850Z - 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-07T22:53:32.3465954Z - Required stages: impl, unit
2026-06-07T22:53:32.3465987Z 
2026-06-07T22:53:32.3466097Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-07T22:53:32.3466224Z - Title: Deferred rows survive poll drain (4.4)
2026-06-07T22:53:32.3466329Z - Required stages: impl, unit
2026-06-07T22:53:32.3466357Z 
2026-06-07T22:53:32.3466468Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-07T22:53:32.3466600Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-07T22:53:32.3466697Z - Required stages: impl, unit
2026-06-07T22:53:32.3466730Z 
2026-06-07T22:53:32.3466843Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-07T22:53:32.3467063Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-07T22:53:32.3467215Z - Required stages: impl, unit
2026-06-07T22:53:32.3467249Z 
2026-06-07T22:53:32.3467374Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-07T22:53:32.3467550Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-07T22:53:32.3467656Z - Required stages: impl, unit
2026-06-07T22:53:32.3467698Z 
2026-06-07T22:53:32.3467802Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-07T22:53:32.3467951Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-07T22:53:32.3468050Z - Required stages: impl, unit
2026-06-07T22:53:32.3468194Z 
2026-06-07T22:53:32.3468309Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-07T22:53:32.3468464Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-07T22:53:32.3468564Z - Required stages: impl, unit
2026-06-07T22:53:32.3468593Z 
2026-06-07T22:53:32.3468710Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-07T22:53:32.3468891Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-07T22:53:32.3469002Z - Required stages: impl, unit
2026-06-07T22:53:32.3469034Z 
2026-06-07T22:53:32.3469143Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-07T22:53:32.3469320Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-07T22:53:32.3469425Z - Required stages: impl, unit
2026-06-07T22:53:32.3469458Z 
2026-06-07T22:53:32.3469692Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-07T22:53:32.3469869Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-07T22:53:32.3469973Z - Required stages: impl, unit
2026-06-07T22:53:32.3470007Z 
2026-06-07T22:53:32.3470125Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-07T22:53:32.3470269Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-07T22:53:32.3470369Z - Required stages: impl, unit
2026-06-07T22:53:32.3470402Z 
2026-06-07T22:53:32.3470518Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-07T22:53:32.3470717Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-07T22:53:32.3470818Z - Required stages: impl, unit
2026-06-07T22:53:32.3470847Z 
2026-06-07T22:53:32.3470969Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-07T22:53:32.3471503Z - 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-07T22:53:32.3471608Z - Required stages: impl, unit
2026-06-07T22:53:32.3471641Z 
2026-06-07T22:53:32.3471755Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-07T22:53:32.3472862Z - 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-07T22:53:32.3472976Z - Required stages: impl, unit
2026-06-07T22:53:32.3473005Z 
2026-06-07T22:53:32.3473111Z ### REQ-HAZARD-CONPTY-DSR
2026-06-07T22:53:32.3473315Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-07T22:53:32.3473416Z - Required stages: impl, unit
2026-06-07T22:53:32.3473449Z 
2026-06-07T22:53:32.3473553Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-07T22:53:32.3473967Z - 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-07T22:53:32.3474067Z - Required stages: impl, unit
2026-06-07T22:53:32.3474100Z 
2026-06-07T22:53:32.3474213Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-07T22:53:32.3474766Z - 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-07T22:53:32.3474870Z - Required stages: impl, unit
2026-06-07T22:53:32.3474908Z 
2026-06-07T22:53:32.3475014Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-07T22:53:32.3475848Z - 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-07T22:53:32.3475950Z - Required stages: impl, unit
2026-06-07T22:53:32.3475978Z 
2026-06-07T22:53:32.3476082Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-07T22:53:32.3476283Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-07T22:53:32.3476457Z - Required stages: impl, unit
2026-06-07T22:53:32.3476491Z 
2026-06-07T22:53:32.3476600Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-07T22:53:32.3476850Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-07T22:53:32.3477033Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3477061Z 
2026-06-07T22:53:32.3477170Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-07T22:53:32.3477413Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-07T22:53:32.3477518Z - Required stages: impl, unit
2026-06-07T22:53:32.3477552Z 
2026-06-07T22:53:32.3477661Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-07T22:53:32.3478163Z - 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-07T22:53:32.3478272Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3478310Z 
2026-06-07T22:53:32.3478419Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-07T22:53:32.3479384Z - 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-07T22:53:32.3479499Z - Required stages: impl, unit
2026-06-07T22:53:32.3479537Z 
2026-06-07T22:53:32.3479651Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-07T22:53:32.3480538Z - 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-07T22:53:32.3480643Z - Required stages: impl, unit
2026-06-07T22:53:32.3480676Z 
2026-06-07T22:53:32.3480787Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-07T22:53:32.3481459Z - 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-07T22:53:32.3481572Z - Required stages: impl, unit
2026-06-07T22:53:32.3481601Z 
2026-06-07T22:53:32.3481717Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-07T22:53:32.3482220Z - 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-07T22:53:32.3482325Z - Required stages: impl, unit
2026-06-07T22:53:32.3482359Z 
2026-06-07T22:53:32.3482464Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-07T22:53:32.3483308Z - 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-07T22:53:32.3483422Z - Required stages: impl, unit
2026-06-07T22:53:32.3483450Z 
2026-06-07T22:53:32.3483555Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-07T22:53:32.3484408Z - 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-07T22:53:32.3484522Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3484551Z 
2026-06-07T22:53:32.3484646Z ### REQ-CONSENT-1
2026-06-07T22:53:32.3485516Z - 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-07T22:53:32.3485622Z - Required stages: impl, unit
2026-06-07T22:53:32.3485778Z 
2026-06-07T22:53:32.3485871Z ### REQ-CONSENT-2
2026-06-07T22:53:32.3486660Z - 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-07T22:53:32.3486766Z - Required stages: impl, unit
2026-06-07T22:53:32.3486795Z 
2026-06-07T22:53:32.3486886Z ### REQ-PRES-1
2026-06-07T22:53:32.3488499Z - 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-07T22:53:32.3495262Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3495304Z 
2026-06-07T22:53:32.3495428Z ### REQ-SHELL-1
2026-06-07T22:53:32.3496320Z - 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-07T22:53:32.3496431Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3496464Z 
2026-06-07T22:53:32.3496563Z ### REQ-SHELL-2
2026-06-07T22:53:32.3498682Z - 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-07T22:53:32.3498872Z - Required stages: impl, unit, int
2026-06-07T22:53:32.3498910Z 
2026-06-07T22:53:32.3499050Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-07T22:53:32.3500701Z - 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-07T22:53:32.3500866Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3500924Z 
2026-06-07T22:53:32.3501054Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-07T22:53:32.3502640Z - 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-07T22:53:32.3502774Z - Required stages: doc, impl, unit
2026-06-07T22:53:32.3502814Z 
2026-06-07T22:53:32.3502950Z ### REQ-CLI-1
2026-06-07T22:53:32.3504213Z - 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-07T22:53:32.3504346Z - Required stages: impl, unit
2026-06-07T22:53:32.3504385Z 
2026-06-07T22:53:32.3504704Z ### REQ-CLI-2
2026-06-07T22:53:32.3505543Z - 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-07T22:53:32.3505666Z - Required stages: impl, unit
2026-06-07T22:53:32.3505714Z 
2026-06-07T22:53:32.3505822Z ### REQ-CLI-3
2026-06-07T22:53:32.3506681Z - 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-07T22:53:32.3506918Z - Required stages: impl, unit
2026-06-07T22:53:32.3507052Z 
2026-06-07T22:53:32.3507161Z ### REQ-SUBNET-5
2026-06-07T22:53:32.3508555Z - 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-07T22:53:32.3508689Z - Required stages: impl, unit
2026-06-07T22:53:32.3508722Z 
2026-06-07T22:53:32.3508831Z ### REQ-SUBNET-6
2026-06-07T22:53:32.3509647Z - 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-07T22:53:32.3509780Z - Required stages: impl, unit
2026-06-07T22:53:32.3509814Z 
2026-06-07T22:53:32.3509929Z ### REQ-SUBNET-7
2026-06-07T22:53:32.3511842Z - 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-07T22:53:32.3511952Z - Required stages: impl, unit
2026-06-07T22:53:32.3511985Z 
2026-06-07T22:53:32.3512080Z ### REQ-SUBNET-8
2026-06-07T22:53:32.3513201Z - 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-07T22:53:32.3513306Z - Required stages: impl, unit
2026-06-07T22:53:32.3513339Z 
2026-06-07T22:53:32.3513436Z ### REQ-INSTALL-6
2026-06-07T22:53:32.3514625Z - 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-07T22:53:32.3514727Z - Required stages: impl, unit
2026-06-07T22:53:32.3514759Z 
2026-06-07T22:53:32.3514849Z ### REQ-INSTALL-7
2026-06-07T22:53:32.3515976Z - 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-07T22:53:32.3516183Z - Required stages: impl
2026-06-07T22:53:32.3516216Z 
2026-06-07T22:53:32.3516313Z ### REQ-INSTALL-8
2026-06-07T22:53:32.3517402Z - 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-07T22:53:32.3517502Z - Required stages: impl
2026-06-07T22:53:32.3517536Z 
2026-06-07T22:53:32.3517626Z ### REQ-CONV-1
2026-06-07T22:53:32.3519144Z - 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-07T22:53:32.3519259Z - Required stages: impl, unit
2026-06-07T22:53:32.3519287Z 
2026-06-07T22:53:32.3519377Z ### REQ-CONV-2
2026-06-07T22:53:32.3520479Z - 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-07T22:53:32.3520584Z - Required stages: impl, unit
2026-06-07T22:53:32.3520627Z 
2026-06-07T22:53:32.3520718Z ### REQ-PAIR-8
2026-06-07T22:53:32.3521972Z - 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-07T22:53:32.3522079Z - Required stages: impl, unit
2026-06-07T22:53:32.3522112Z 
2026-06-07T22:53:32.3522202Z ### REQ-DAEMON-5
2026-06-07T22:53:32.3523479Z - 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-07T22:53:32.3523585Z - Required stages: impl, unit
2026-06-07T22:53:32.3523614Z 
2026-06-07T22:53:32.3523719Z ### REQ-HAZARD-EPOCH-RESET
2026-06-07T22:53:32.3525029Z - 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-07T22:53:32.3525128Z - Required stages: 
2026-06-07T22:53:32.3525161Z 
2026-06-07T22:53:32.3525258Z ## How to report back
2026-06-07T22:53:32.3525292Z 
2026-06-07T22:53:32.3525462Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-07T22:53:32.3525491Z 
2026-06-07T22:53:32.3525577Z     {
2026-06-07T22:53:32.3525695Z       "code": "requirement_quality",
2026-06-07T22:53:32.3525796Z       "requirementId": "REQ-...",
2026-06-07T22:53:32.3525973Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-07T22:53:32.3526072Z       "message": "<short reason>",
2026-06-07T22:53:32.3526297Z       "suggestedRevision": "<optional rewrite>"
2026-06-07T22:53:32.3526387Z     }
2026-06-07T22:53:32.3526416Z 
2026-06-07T22:53:32.3526598Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-07T22:53:32.3526734Z deterministic findings above don't need to be repeated.
2026-06-07T22:53:32.3598187Z Post job cleanup.
2026-06-07T22:53:32.4272390Z [command]/usr/bin/git version
2026-06-07T22:53:32.4302914Z git version 2.43.0
2026-06-07T22:53:32.4331990Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/89ecd865-a848-4127-a8ce-242eb8b001e1' before making global git config changes
2026-06-07T22:53:32.4332230Z Adding repository directory to the temporary git global config as a safe directory
2026-06-07T22:53:32.4335031Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-07T22:53:32.4362981Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-07T22:53:32.4387395Z [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-07T22:53:32.4576711Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-07T22:53:32.4596046Z http.https://github.com/.extraheader
2026-06-07T22:53:32.4602586Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-07T22:53:32.4626211Z [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-07T22:53:32.4812697Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-07T22:53:32.4836395Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-07T22:53:32.5133236Z Cleaning up orphan processes
