﻿2026-06-08T23:22:35.5186558Z Current runner version: '2.334.0'
2026-06-08T23:22:35.5191341Z Runner name: 'kitsubito'
2026-06-08T23:22:35.5191856Z Runner group name: 'Default'
2026-06-08T23:22:35.5192496Z Machine name: 'KITSUBITO'
2026-06-08T23:22:35.5194363Z ##[group]GITHUB_TOKEN Permissions
2026-06-08T23:22:35.5196048Z Contents: read
2026-06-08T23:22:35.5196472Z Metadata: read
2026-06-08T23:22:35.5196852Z Packages: read
2026-06-08T23:22:35.5197412Z ##[endgroup]
2026-06-08T23:22:35.5199006Z Secret source: Actions
2026-06-08T23:22:35.5199513Z Prepare workflow directory
2026-06-08T23:22:35.5576032Z Prepare all required actions
2026-06-08T23:22:35.5603747Z Getting action download info
2026-06-08T23:22:36.0172226Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-08T23:22:36.4651571Z Complete job name: traceability
2026-06-08T23:22:36.5575148Z ##[group]Run actions/checkout@v5
2026-06-08T23:22:36.5575943Z with:
2026-06-08T23:22:36.5576354Z   repository: SaberMage/spt-core
2026-06-08T23:22:36.5580093Z   token: ***
2026-06-08T23:22:36.5580490Z   ssh-strict: true
2026-06-08T23:22:36.5580897Z   ssh-user: git
2026-06-08T23:22:36.5581307Z   persist-credentials: true
2026-06-08T23:22:36.5581740Z   clean: true
2026-06-08T23:22:36.5582136Z   sparse-checkout-cone-mode: true
2026-06-08T23:22:36.5582585Z   fetch-depth: 1
2026-06-08T23:22:36.5582967Z   fetch-tags: false
2026-06-08T23:22:36.5583367Z   show-progress: true
2026-06-08T23:22:36.5583754Z   lfs: false
2026-06-08T23:22:36.5584136Z   submodules: false
2026-06-08T23:22:36.5584549Z   set-safe-directory: true
2026-06-08T23:22:36.5585193Z ##[endgroup]
2026-06-08T23:22:36.6346294Z Syncing repository: SaberMage/spt-core
2026-06-08T23:22:36.6348289Z ##[group]Getting Git version info
2026-06-08T23:22:36.6349161Z Working directory is '/home/reavus/actions-runner/_work/spt-core/spt-core'
2026-06-08T23:22:36.6350249Z [command]/usr/bin/git version
2026-06-08T23:22:36.6350749Z git version 2.43.0
2026-06-08T23:22:36.6352096Z ##[endgroup]
2026-06-08T23:22:36.6360580Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/f12927c6-b549-4ef3-b439-d38822ba56df' before making global git config changes
2026-06-08T23:22:36.6361840Z Adding repository directory to the temporary git global config as a safe directory
2026-06-08T23:22:36.6363605Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-08T23:22:36.6393275Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-08T23:22:36.6409660Z https://github.com/SaberMage/spt-core
2026-06-08T23:22:36.6419283Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-08T23:22:36.6421503Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-08T23:22:36.6438724Z HEAD
2026-06-08T23:22:36.6492054Z ##[endgroup]
2026-06-08T23:22:36.6493529Z [command]/usr/bin/git submodule status
2026-06-08T23:22:36.6673260Z ##[group]Cleaning the repository
2026-06-08T23:22:36.6675378Z [command]/usr/bin/git clean -ffdx
2026-06-08T23:22:36.6798399Z Removing dist/
2026-06-08T23:22:36.6806035Z [command]/usr/bin/git reset --hard HEAD
2026-06-08T23:22:36.6844991Z HEAD is now at 78c4a78 ci(release): stage Windows asset under pwsh, not Windows PowerShell 5.1
2026-06-08T23:22:36.6849789Z ##[endgroup]
2026-06-08T23:22:36.6883816Z ##[group]Disabling automatic garbage collection
2026-06-08T23:22:36.6886754Z [command]/usr/bin/git config --local gc.auto 0
2026-06-08T23:22:36.6911299Z ##[endgroup]
2026-06-08T23:22:36.6912057Z ##[group]Setting up auth
2026-06-08T23:22:36.6915864Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-08T23:22:36.6937288Z [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-08T23:22:36.7119144Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-08T23:22:36.7145020Z [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-08T23:22:36.7326491Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-08T23:22:36.7350234Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-08T23:22:36.7526757Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-08T23:22:36.7553003Z ##[endgroup]
2026-06-08T23:22:36.7553806Z ##[group]Fetching the repository
2026-06-08T23:22:36.7560512Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +6843a8f4e0335fa947b6eb0b5bed3d6ff39f5796:refs/remotes/origin/dev-freeform
2026-06-08T23:22:37.2970440Z From https://github.com/SaberMage/spt-core
2026-06-08T23:22:37.2972346Z  + 78c4a78...6843a8f 6843a8f4e0335fa947b6eb0b5bed3d6ff39f5796 -> origin/dev-freeform  (forced update)
2026-06-08T23:22:37.2986855Z ##[endgroup]
2026-06-08T23:22:37.2988288Z ##[group]Determining the checkout info
2026-06-08T23:22:37.2989476Z ##[endgroup]
2026-06-08T23:22:37.2992161Z [command]/usr/bin/git sparse-checkout disable
2026-06-08T23:22:37.3027516Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-08T23:22:37.3049462Z ##[group]Checking out the ref
2026-06-08T23:22:37.3050855Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-08T23:22:37.3194481Z Previous HEAD position was 78c4a78 ci(release): stage Windows asset under pwsh, not Windows PowerShell 5.1
2026-06-08T23:22:37.3200256Z Switched to a new branch 'dev-freeform'
2026-06-08T23:22:37.3201380Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-08T23:22:37.3205718Z ##[endgroup]
2026-06-08T23:22:37.3235885Z [command]/usr/bin/git log -1 --format=%H
2026-06-08T23:22:37.3255489Z 6843a8f4e0335fa947b6eb0b5bed3d6ff39f5796
2026-06-08T23:22:37.3469036Z ##[group]Run WANT=0.1.2
2026-06-08T23:22:37.3469990Z [36;1mWANT=0.1.2[0m
2026-06-08T23:22:37.3470925Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-08T23:22:37.3472309Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-08T23:22:37.3473671Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-08T23:22:37.3474777Z [36;1melse[0m
2026-06-08T23:22:37.3475907Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-08T23:22:37.3477553Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-08T23:22:37.3478841Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-08T23:22:37.3479838Z [36;1m  rm -rf "$SRC"[0m
2026-06-08T23:22:37.3480827Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-08T23:22:37.3482531Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-08T23:22:37.3484532Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-08T23:22:37.3485957Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-08T23:22:37.3487339Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-08T23:22:37.3488629Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-08T23:22:37.3489634Z [36;1mfi[0m
2026-06-08T23:22:37.3490423Z [36;1m./traceable-reqs --version[0m
2026-06-08T23:22:37.3507034Z shell: /usr/bin/bash -e {0}
2026-06-08T23:22:37.3507955Z env:
2026-06-08T23:22:37.3509717Z   GH_TOKEN: ***
2026-06-08T23:22:37.3510508Z ##[endgroup]
2026-06-08T23:22:37.3615774Z traceable-reqs 0.1.2
2026-06-08T23:22:37.3714439Z ##[group]Run ./traceable-reqs check --json
2026-06-08T23:22:37.3715584Z [36;1m./traceable-reqs check --json[0m
2026-06-08T23:22:37.3730789Z shell: /usr/bin/bash -e {0}
2026-06-08T23:22:37.3731871Z ##[endgroup]
2026-06-08T23:22:37.4217512Z {
2026-06-08T23:22:37.4218934Z   "schemaVersion": 1,
2026-06-08T23:22:37.4220525Z   "summary": {
2026-06-08T23:22:37.4222511Z     "requirementCount": 172,
2026-06-08T23:22:37.4224236Z     "completeCount": 172,
2026-06-08T23:22:37.4225892Z     "incompleteCount": 0,
2026-06-08T23:22:37.4227680Z     "findingCount": 0
2026-06-08T23:22:37.4229170Z   },
2026-06-08T23:22:37.4230519Z   "requirements": [
2026-06-08T23:22:37.4231975Z     {
2026-06-08T23:22:37.4233314Z       "id": "REQ-API-1",
2026-06-08T23:22:37.4235498Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-08T23:22:37.4238217Z       "requiredStages": [
2026-06-08T23:22:37.4239437Z         "impl",
2026-06-08T23:22:37.4240468Z         "unit",
2026-06-08T23:22:37.4241929Z         "int"
2026-06-08T23:22:37.4243303Z       ],
2026-06-08T23:22:37.4244628Z       "stages": {
2026-06-08T23:22:37.4246072Z         "doc": {
2026-06-08T23:22:37.4247668Z           "complete": false,
2026-06-08T23:22:37.4249363Z           "evidence": []
2026-06-08T23:22:37.4250867Z         },
2026-06-08T23:22:37.4252221Z         "impl": {
2026-06-08T23:22:37.4253929Z           "complete": true,
2026-06-08T23:22:37.4255139Z           "evidence": [
2026-06-08T23:22:37.4256227Z             {
2026-06-08T23:22:37.4257467Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.4258951Z               "line": 15
2026-06-08T23:22:37.4260329Z             }
2026-06-08T23:22:37.4261622Z           ]
2026-06-08T23:22:37.4262624Z         },
2026-06-08T23:22:37.4263502Z         "int": {
2026-06-08T23:22:37.4264484Z           "complete": true,
2026-06-08T23:22:37.4265611Z           "evidence": [
2026-06-08T23:22:37.4266616Z             {
2026-06-08T23:22:37.4267941Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.4269325Z               "line": 13
2026-06-08T23:22:37.4270293Z             }
2026-06-08T23:22:37.4271117Z           ]
2026-06-08T23:22:37.4272182Z         },
2026-06-08T23:22:37.4273303Z         "unit": {
2026-06-08T23:22:37.4274216Z           "complete": true,
2026-06-08T23:22:37.4275198Z           "evidence": [
2026-06-08T23:22:37.4276138Z             {
2026-06-08T23:22:37.4277429Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.4279111Z               "line": 442
2026-06-08T23:22:37.4280315Z             },
2026-06-08T23:22:37.4281373Z             {
2026-06-08T23:22:37.4282553Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.4284002Z               "line": 448
2026-06-08T23:22:37.4284880Z             },
2026-06-08T23:22:37.4285749Z             {
2026-06-08T23:22:37.4286869Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.4288136Z               "line": 515
2026-06-08T23:22:37.4289013Z             }
2026-06-08T23:22:37.4289765Z           ]
2026-06-08T23:22:37.4290436Z         }
2026-06-08T23:22:37.4291094Z       }
2026-06-08T23:22:37.4291748Z     },
2026-06-08T23:22:37.4292400Z     {
2026-06-08T23:22:37.4293065Z       "id": "REQ-API-2",
2026-06-08T23:22:37.4294325Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-08T23:22:37.4295765Z       "requiredStages": [
2026-06-08T23:22:37.4296567Z         "impl",
2026-06-08T23:22:37.4297385Z         "unit",
2026-06-08T23:22:37.4298090Z         "int"
2026-06-08T23:22:37.4298778Z       ],
2026-06-08T23:22:37.4299727Z       "stages": {
2026-06-08T23:22:37.4300474Z         "doc": {
2026-06-08T23:22:37.4301211Z           "complete": false,
2026-06-08T23:22:37.4302051Z           "evidence": []
2026-06-08T23:22:37.4302822Z         },
2026-06-08T23:22:37.4303491Z         "impl": {
2026-06-08T23:22:37.4304236Z           "complete": true,
2026-06-08T23:22:37.4305050Z           "evidence": [
2026-06-08T23:22:37.4306048Z             {
2026-06-08T23:22:37.4306893Z               "path": "crates/spt-store/src/history.rs",
2026-06-08T23:22:37.4308033Z               "line": 15
2026-06-08T23:22:37.4308795Z             },
2026-06-08T23:22:37.4309485Z             {
2026-06-08T23:22:37.4310282Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.4311314Z               "line": 20
2026-06-08T23:22:37.4312220Z             },
2026-06-08T23:22:37.4312907Z             {
2026-06-08T23:22:37.4313718Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.4314757Z               "line": 139
2026-06-08T23:22:37.4315544Z             },
2026-06-08T23:22:37.4316237Z             {
2026-06-08T23:22:37.4317186Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4318244Z               "line": 21
2026-06-08T23:22:37.4319017Z             },
2026-06-08T23:22:37.4319707Z             {
2026-06-08T23:22:37.4320542Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4321664Z               "line": 38
2026-06-08T23:22:37.4322460Z             },
2026-06-08T23:22:37.4323162Z             {
2026-06-08T23:22:37.4323985Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4325090Z               "line": 190
2026-06-08T23:22:37.4325885Z             },
2026-06-08T23:22:37.4326599Z             {
2026-06-08T23:22:37.4327507Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4328605Z               "line": 232
2026-06-08T23:22:37.4329404Z             },
2026-06-08T23:22:37.4330105Z             {
2026-06-08T23:22:37.4330921Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4332021Z               "line": 262
2026-06-08T23:22:37.4332801Z             },
2026-06-08T23:22:37.4333497Z             {
2026-06-08T23:22:37.4334289Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4335311Z               "line": 17
2026-06-08T23:22:37.4336074Z             },
2026-06-08T23:22:37.4336760Z             {
2026-06-08T23:22:37.4337695Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4338697Z               "line": 30
2026-06-08T23:22:37.4339466Z             },
2026-06-08T23:22:37.4340156Z             {
2026-06-08T23:22:37.4340947Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4341953Z               "line": 63
2026-06-08T23:22:37.4342724Z             },
2026-06-08T23:22:37.4343414Z             {
2026-06-08T23:22:37.4344234Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4345243Z               "line": 76
2026-06-08T23:22:37.4346009Z             }
2026-06-08T23:22:37.4346695Z           ]
2026-06-08T23:22:37.4347426Z         },
2026-06-08T23:22:37.4348096Z         "int": {
2026-06-08T23:22:37.4348845Z           "complete": true,
2026-06-08T23:22:37.4349666Z           "evidence": [
2026-06-08T23:22:37.4350437Z             {
2026-06-08T23:22:37.4351278Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.4352389Z               "line": 14
2026-06-08T23:22:37.4353170Z             },
2026-06-08T23:22:37.4353874Z             {
2026-06-08T23:22:37.4354698Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.4355803Z               "line": 183
2026-06-08T23:22:37.4356588Z             }
2026-06-08T23:22:37.4357418Z           ]
2026-06-08T23:22:37.4358109Z         },
2026-06-08T23:22:37.4358793Z         "unit": {
2026-06-08T23:22:37.4359536Z           "complete": true,
2026-06-08T23:22:37.4360366Z           "evidence": [
2026-06-08T23:22:37.4361137Z             {
2026-06-08T23:22:37.4361963Z               "path": "crates/spt-store/src/history.rs",
2026-06-08T23:22:37.4363064Z               "line": 42
2026-06-08T23:22:37.4363858Z             },
2026-06-08T23:22:37.4364586Z             {
2026-06-08T23:22:37.4365412Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.4366509Z               "line": 254
2026-06-08T23:22:37.4367373Z             },
2026-06-08T23:22:37.4368202Z             {
2026-06-08T23:22:37.4369052Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4370159Z               "line": 438
2026-06-08T23:22:37.4370945Z             },
2026-06-08T23:22:37.4371649Z             {
2026-06-08T23:22:37.4372475Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4373629Z               "line": 449
2026-06-08T23:22:37.4374414Z             },
2026-06-08T23:22:37.4375090Z             {
2026-06-08T23:22:37.4375915Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4377093Z               "line": 581
2026-06-08T23:22:37.4377872Z             },
2026-06-08T23:22:37.4378557Z             {
2026-06-08T23:22:37.4379380Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4380429Z               "line": 593
2026-06-08T23:22:37.4381205Z             },
2026-06-08T23:22:37.4381911Z             {
2026-06-08T23:22:37.4382716Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4383826Z               "line": 141
2026-06-08T23:22:37.4384610Z             },
2026-06-08T23:22:37.4385301Z             {
2026-06-08T23:22:37.4386102Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.4387573Z               "line": 185
2026-06-08T23:22:37.4388722Z             }
2026-06-08T23:22:37.4389589Z           ]
2026-06-08T23:22:37.4390445Z         }
2026-06-08T23:22:37.4391265Z       }
2026-06-08T23:22:37.4392084Z     },
2026-06-08T23:22:37.4392889Z     {
2026-06-08T23:22:37.4393728Z       "id": "REQ-API-3",
2026-06-08T23:22:37.4395045Z       "title": "commune/signoff are file-drops, not commands",
2026-06-08T23:22:37.4396515Z       "requiredStages": [
2026-06-08T23:22:37.4397616Z         "impl",
2026-06-08T23:22:37.4398500Z         "unit",
2026-06-08T23:22:37.4399373Z         "int"
2026-06-08T23:22:37.4400227Z       ],
2026-06-08T23:22:37.4400929Z       "stages": {
2026-06-08T23:22:37.4401648Z         "doc": {
2026-06-08T23:22:37.4416450Z           "complete": false,
2026-06-08T23:22:37.4417453Z           "evidence": []
2026-06-08T23:22:37.4418250Z         },
2026-06-08T23:22:37.4418931Z         "impl": {
2026-06-08T23:22:37.4419686Z           "complete": true,
2026-06-08T23:22:37.4420517Z           "evidence": [
2026-06-08T23:22:37.4421284Z             {
2026-06-08T23:22:37.4422088Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.4423192Z               "line": 27
2026-06-08T23:22:37.4423966Z             },
2026-06-08T23:22:37.4424651Z             {
2026-06-08T23:22:37.4425471Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4426578Z               "line": 372
2026-06-08T23:22:37.4427413Z             }
2026-06-08T23:22:37.4428081Z           ]
2026-06-08T23:22:37.4428735Z         },
2026-06-08T23:22:37.4429379Z         "int": {
2026-06-08T23:22:37.4430109Z           "complete": true,
2026-06-08T23:22:37.4430919Z           "evidence": [
2026-06-08T23:22:37.4431659Z             {
2026-06-08T23:22:37.4432479Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.4433582Z               "line": 257
2026-06-08T23:22:37.4434363Z             }
2026-06-08T23:22:37.4435034Z           ]
2026-06-08T23:22:37.4435817Z         },
2026-06-08T23:22:37.4436594Z         "unit": {
2026-06-08T23:22:37.4437542Z           "complete": true,
2026-06-08T23:22:37.4438526Z           "evidence": [
2026-06-08T23:22:37.4439366Z             {
2026-06-08T23:22:37.4440285Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.4441431Z               "line": 242
2026-06-08T23:22:37.4442285Z             },
2026-06-08T23:22:37.4443107Z             {
2026-06-08T23:22:37.4443994Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.4445223Z               "line": 622
2026-06-08T23:22:37.4446096Z             }
2026-06-08T23:22:37.4446858Z           ]
2026-06-08T23:22:37.4447703Z         }
2026-06-08T23:22:37.4471704Z       }
2026-06-08T23:22:37.4472345Z     },
2026-06-08T23:22:37.4472975Z     {
2026-06-08T23:22:37.4473956Z       "id": "REQ-ARCH-1",
2026-06-08T23:22:37.4475025Z       "title": "Many small acyclically-layered crates",
2026-06-08T23:22:37.4476138Z       "requiredStages": [
2026-06-08T23:22:37.4476903Z         "impl"
2026-06-08T23:22:37.4477647Z       ],
2026-06-08T23:22:37.4478277Z       "stages": {
2026-06-08T23:22:37.4478960Z         "doc": {
2026-06-08T23:22:37.4479792Z           "complete": false,
2026-06-08T23:22:37.4480597Z           "evidence": []
2026-06-08T23:22:37.4481330Z         },
2026-06-08T23:22:37.4481978Z         "impl": {
2026-06-08T23:22:37.4482695Z           "complete": true,
2026-06-08T23:22:37.4483497Z           "evidence": [
2026-06-08T23:22:37.4484235Z             {
2026-06-08T23:22:37.4485006Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-08T23:22:37.4485996Z               "line": 16
2026-06-08T23:22:37.4486750Z             },
2026-06-08T23:22:37.4487508Z             {
2026-06-08T23:22:37.4488280Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-08T23:22:37.4489281Z               "line": 12
2026-06-08T23:22:37.4490033Z             },
2026-06-08T23:22:37.4490698Z             {
2026-06-08T23:22:37.4491452Z               "path": "crates/spt-store/src/lib.rs",
2026-06-08T23:22:37.4492416Z               "line": 12
2026-06-08T23:22:37.4493147Z             }
2026-06-08T23:22:37.4493794Z           ]
2026-06-08T23:22:37.4494438Z         },
2026-06-08T23:22:37.4495072Z         "int": {
2026-06-08T23:22:37.4495770Z           "complete": false,
2026-06-08T23:22:37.4496581Z           "evidence": []
2026-06-08T23:22:37.4497405Z         },
2026-06-08T23:22:37.4498034Z         "unit": {
2026-06-08T23:22:37.4498733Z           "complete": false,
2026-06-08T23:22:37.4499536Z           "evidence": []
2026-06-08T23:22:37.4500270Z         }
2026-06-08T23:22:37.4500889Z       }
2026-06-08T23:22:37.4501507Z     },
2026-06-08T23:22:37.4502117Z     {
2026-06-08T23:22:37.4502770Z       "id": "REQ-ARCH-2",
2026-06-08T23:22:37.4503877Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-08T23:22:37.4505070Z       "requiredStages": [
2026-06-08T23:22:37.4505829Z         "impl"
2026-06-08T23:22:37.4506482Z       ],
2026-06-08T23:22:37.4507203Z       "stages": {
2026-06-08T23:22:37.4507879Z         "doc": {
2026-06-08T23:22:37.4508589Z           "complete": false,
2026-06-08T23:22:37.4509396Z           "evidence": []
2026-06-08T23:22:37.4510134Z         },
2026-06-08T23:22:37.4510772Z         "impl": {
2026-06-08T23:22:37.4511473Z           "complete": true,
2026-06-08T23:22:37.4512258Z           "evidence": [
2026-06-08T23:22:37.4512968Z             {
2026-06-08T23:22:37.4513731Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-08T23:22:37.4514709Z               "line": 18
2026-06-08T23:22:37.4515435Z             }
2026-06-08T23:22:37.4516079Z           ]
2026-06-08T23:22:37.4516691Z         },
2026-06-08T23:22:37.4517391Z         "int": {
2026-06-08T23:22:37.4518078Z           "complete": false,
2026-06-08T23:22:37.4518873Z           "evidence": []
2026-06-08T23:22:37.4519598Z         },
2026-06-08T23:22:37.4520227Z         "unit": {
2026-06-08T23:22:37.4520934Z           "complete": false,
2026-06-08T23:22:37.4521733Z           "evidence": []
2026-06-08T23:22:37.4522474Z         }
2026-06-08T23:22:37.4523099Z       }
2026-06-08T23:22:37.4523704Z     },
2026-06-08T23:22:37.4524315Z     {
2026-06-08T23:22:37.4524959Z       "id": "REQ-ARCH-3",
2026-06-08T23:22:37.4526204Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-08T23:22:37.4527651Z       "requiredStages": [
2026-06-08T23:22:37.4528409Z         "impl",
2026-06-08T23:22:37.4529072Z         "unit"
2026-06-08T23:22:37.4529748Z       ],
2026-06-08T23:22:37.4530376Z       "stages": {
2026-06-08T23:22:37.4531049Z         "doc": {
2026-06-08T23:22:37.4531746Z           "complete": false,
2026-06-08T23:22:37.4532546Z           "evidence": []
2026-06-08T23:22:37.4533286Z         },
2026-06-08T23:22:37.4533916Z         "impl": {
2026-06-08T23:22:37.4534737Z           "complete": true,
2026-06-08T23:22:37.4535533Z           "evidence": [
2026-06-08T23:22:37.4536255Z             {
2026-06-08T23:22:37.4537141Z               "path": "crates/spt-proto/src/version.rs",
2026-06-08T23:22:37.4538143Z               "line": 34
2026-06-08T23:22:37.4538888Z             },
2026-06-08T23:22:37.4539546Z             {
2026-06-08T23:22:37.4540453Z               "path": "crates/spt-proto/src/version.rs",
2026-06-08T23:22:37.4541453Z               "line": 41
2026-06-08T23:22:37.4542191Z             }
2026-06-08T23:22:37.4542849Z           ]
2026-06-08T23:22:37.4543489Z         },
2026-06-08T23:22:37.4544119Z         "int": {
2026-06-08T23:22:37.4544825Z           "complete": false,
2026-06-08T23:22:37.4545640Z           "evidence": []
2026-06-08T23:22:37.4546375Z         },
2026-06-08T23:22:37.4547120Z         "unit": {
2026-06-08T23:22:37.4547831Z           "complete": true,
2026-06-08T23:22:37.4548613Z           "evidence": [
2026-06-08T23:22:37.4549339Z             {
2026-06-08T23:22:37.4550149Z               "path": "crates/spt-proto/src/version.rs",
2026-06-08T23:22:37.4551159Z               "line": 51
2026-06-08T23:22:37.4551907Z             },
2026-06-08T23:22:37.4552571Z             {
2026-06-08T23:22:37.4553366Z               "path": "crates/spt-proto/src/version.rs",
2026-06-08T23:22:37.4554369Z               "line": 71
2026-06-08T23:22:37.4555129Z             },
2026-06-08T23:22:37.4555786Z             {
2026-06-08T23:22:37.4556583Z               "path": "crates/spt-proto/src/version.rs",
2026-06-08T23:22:37.4557681Z               "line": 83
2026-06-08T23:22:37.4558419Z             }
2026-06-08T23:22:37.4559075Z           ]
2026-06-08T23:22:37.4559713Z         }
2026-06-08T23:22:37.4560332Z       }
2026-06-08T23:22:37.4560944Z     },
2026-06-08T23:22:37.4561550Z     {
2026-06-08T23:22:37.4562206Z       "id": "REQ-ARCH-4",
2026-06-08T23:22:37.4563335Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-08T23:22:37.4564615Z       "requiredStages": [
2026-06-08T23:22:37.4565388Z         "impl",
2026-06-08T23:22:37.4566056Z         "unit"
2026-06-08T23:22:37.4566728Z       ],
2026-06-08T23:22:37.4567439Z       "stages": {
2026-06-08T23:22:37.4568121Z         "doc": {
2026-06-08T23:22:37.4568831Z           "complete": false,
2026-06-08T23:22:37.4569635Z           "evidence": []
2026-06-08T23:22:37.4570386Z         },
2026-06-08T23:22:37.4571021Z         "impl": {
2026-06-08T23:22:37.4571747Z           "complete": true,
2026-06-08T23:22:37.4572537Z           "evidence": [
2026-06-08T23:22:37.4573266Z             {
2026-06-08T23:22:37.4574045Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4575025Z               "line": 82
2026-06-08T23:22:37.4575771Z             },
2026-06-08T23:22:37.4576434Z             {
2026-06-08T23:22:37.4577288Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4578272Z               "line": 96
2026-06-08T23:22:37.4579019Z             },
2026-06-08T23:22:37.4579696Z             {
2026-06-08T23:22:37.4580472Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4581449Z               "line": 116
2026-06-08T23:22:37.4582211Z             },
2026-06-08T23:22:37.4582877Z             {
2026-06-08T23:22:37.4583655Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4584638Z               "line": 131
2026-06-08T23:22:37.4585404Z             },
2026-06-08T23:22:37.4586064Z             {
2026-06-08T23:22:37.4586842Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4587908Z               "line": 181
2026-06-08T23:22:37.4588659Z             }
2026-06-08T23:22:37.4589327Z           ]
2026-06-08T23:22:37.4589961Z         },
2026-06-08T23:22:37.4590604Z         "int": {
2026-06-08T23:22:37.4591317Z           "complete": false,
2026-06-08T23:22:37.4592137Z           "evidence": []
2026-06-08T23:22:37.4592887Z         },
2026-06-08T23:22:37.4593552Z         "unit": {
2026-06-08T23:22:37.4594372Z           "complete": true,
2026-06-08T23:22:37.4595198Z           "evidence": [
2026-06-08T23:22:37.4595931Z             {
2026-06-08T23:22:37.4596725Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4597793Z               "line": 242
2026-06-08T23:22:37.4598559Z             },
2026-06-08T23:22:37.4599238Z             {
2026-06-08T23:22:37.4600025Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4601197Z               "line": 252
2026-06-08T23:22:37.4601968Z             },
2026-06-08T23:22:37.4602635Z             {
2026-06-08T23:22:37.4603413Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4604394Z               "line": 263
2026-06-08T23:22:37.4605147Z             },
2026-06-08T23:22:37.4605819Z             {
2026-06-08T23:22:37.4606600Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4607667Z               "line": 274
2026-06-08T23:22:37.4608410Z             },
2026-06-08T23:22:37.4609072Z             {
2026-06-08T23:22:37.4609856Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4610844Z               "line": 286
2026-06-08T23:22:37.4611582Z             },
2026-06-08T23:22:37.4612256Z             {
2026-06-08T23:22:37.4613029Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4614007Z               "line": 299
2026-06-08T23:22:37.4614759Z             },
2026-06-08T23:22:37.4615426Z             {
2026-06-08T23:22:37.4616203Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4617275Z               "line": 310
2026-06-08T23:22:37.4618026Z             },
2026-06-08T23:22:37.4618684Z             {
2026-06-08T23:22:37.4619453Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4620426Z               "line": 327
2026-06-08T23:22:37.4621184Z             },
2026-06-08T23:22:37.4621856Z             {
2026-06-08T23:22:37.4622635Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.4623613Z               "line": 358
2026-06-08T23:22:37.4624366Z             }
2026-06-08T23:22:37.4625028Z           ]
2026-06-08T23:22:37.4625662Z         }
2026-06-08T23:22:37.4626301Z       }
2026-06-08T23:22:37.4626925Z     },
2026-06-08T23:22:37.4627773Z     {
2026-06-08T23:22:37.4628439Z       "id": "REQ-CLI-1",
2026-06-08T23:22:37.4632949Z       "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-08T23:22:37.4637610Z       "requiredStages": [
2026-06-08T23:22:37.4638376Z         "impl",
2026-06-08T23:22:37.4639051Z         "unit"
2026-06-08T23:22:37.4639723Z       ],
2026-06-08T23:22:37.4640362Z       "stages": {
2026-06-08T23:22:37.4641055Z         "doc": {
2026-06-08T23:22:37.4641784Z           "complete": false,
2026-06-08T23:22:37.4642595Z           "evidence": []
2026-06-08T23:22:37.4643347Z         },
2026-06-08T23:22:37.4643998Z         "impl": {
2026-06-08T23:22:37.4644704Z           "complete": true,
2026-06-08T23:22:37.4645496Z           "evidence": [
2026-06-08T23:22:37.4646219Z             {
2026-06-08T23:22:37.4647045Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4647985Z               "line": 193
2026-06-08T23:22:37.4648746Z             },
2026-06-08T23:22:37.4649406Z             {
2026-06-08T23:22:37.4650141Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4651066Z               "line": 741
2026-06-08T23:22:37.4651812Z             },
2026-06-08T23:22:37.4652469Z             {
2026-06-08T23:22:37.4653208Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4654153Z               "line": 1041
2026-06-08T23:22:37.4654901Z             },
2026-06-08T23:22:37.4655565Z             {
2026-06-08T23:22:37.4656418Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4657456Z               "line": 1817
2026-06-08T23:22:37.4658225Z             }
2026-06-08T23:22:37.4658879Z           ]
2026-06-08T23:22:37.4659516Z         },
2026-06-08T23:22:37.4660163Z         "int": {
2026-06-08T23:22:37.4660868Z           "complete": false,
2026-06-08T23:22:37.4661670Z           "evidence": []
2026-06-08T23:22:37.4662509Z         },
2026-06-08T23:22:37.4663148Z         "unit": {
2026-06-08T23:22:37.4663864Z           "complete": true,
2026-06-08T23:22:37.4664653Z           "evidence": [
2026-06-08T23:22:37.4665376Z             {
2026-06-08T23:22:37.4666115Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4667123Z               "line": 4706
2026-06-08T23:22:37.4667880Z             }
2026-06-08T23:22:37.4668537Z           ]
2026-06-08T23:22:37.4669161Z         }
2026-06-08T23:22:37.4669791Z       }
2026-06-08T23:22:37.4670418Z     },
2026-06-08T23:22:37.4671032Z     {
2026-06-08T23:22:37.4671686Z       "id": "REQ-CLI-2",
2026-06-08T23:22:37.4674868Z       "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-08T23:22:37.4678177Z       "requiredStages": [
2026-06-08T23:22:37.4678950Z         "impl",
2026-06-08T23:22:37.4679623Z         "unit"
2026-06-08T23:22:37.4680286Z       ],
2026-06-08T23:22:37.4680916Z       "stages": {
2026-06-08T23:22:37.4681597Z         "doc": {
2026-06-08T23:22:37.4682307Z           "complete": false,
2026-06-08T23:22:37.4683122Z           "evidence": []
2026-06-08T23:22:37.4683859Z         },
2026-06-08T23:22:37.4684498Z         "impl": {
2026-06-08T23:22:37.4685203Z           "complete": true,
2026-06-08T23:22:37.4685981Z           "evidence": [
2026-06-08T23:22:37.4686707Z             {
2026-06-08T23:22:37.4687590Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.4688561Z               "line": 271
2026-06-08T23:22:37.4689319Z             },
2026-06-08T23:22:37.4689981Z             {
2026-06-08T23:22:37.4690803Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-08T23:22:37.4691801Z               "line": 65
2026-06-08T23:22:37.4692544Z             },
2026-06-08T23:22:37.4693216Z             {
2026-06-08T23:22:37.4694009Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.4695110Z               "line": 239
2026-06-08T23:22:37.4695858Z             },
2026-06-08T23:22:37.4696523Z             {
2026-06-08T23:22:37.4697343Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4698278Z               "line": 337
2026-06-08T23:22:37.4699030Z             },
2026-06-08T23:22:37.4699692Z             {
2026-06-08T23:22:37.4700423Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4701334Z               "line": 783
2026-06-08T23:22:37.4702074Z             },
2026-06-08T23:22:37.4702737Z             {
2026-06-08T23:22:37.4703480Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4704407Z               "line": 1225
2026-06-08T23:22:37.4705160Z             },
2026-06-08T23:22:37.4705824Z             {
2026-06-08T23:22:37.4706558Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4707594Z               "line": 1240
2026-06-08T23:22:37.4708351Z             },
2026-06-08T23:22:37.4709029Z             {
2026-06-08T23:22:37.4709768Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4710707Z               "line": 1262
2026-06-08T23:22:37.4711464Z             }
2026-06-08T23:22:37.4712116Z           ]
2026-06-08T23:22:37.4712753Z         },
2026-06-08T23:22:37.4713397Z         "int": {
2026-06-08T23:22:37.4714107Z           "complete": false,
2026-06-08T23:22:37.4714907Z           "evidence": []
2026-06-08T23:22:37.4715648Z         },
2026-06-08T23:22:37.4716287Z         "unit": {
2026-06-08T23:22:37.4717056Z           "complete": true,
2026-06-08T23:22:37.4717957Z           "evidence": [
2026-06-08T23:22:37.4718674Z             {
2026-06-08T23:22:37.4719455Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.4720451Z               "line": 309
2026-06-08T23:22:37.4721195Z             },
2026-06-08T23:22:37.4721859Z             {
2026-06-08T23:22:37.4722592Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4723699Z               "line": 4844
2026-06-08T23:22:37.4724444Z             }
2026-06-08T23:22:37.4725093Z           ]
2026-06-08T23:22:37.4725723Z         }
2026-06-08T23:22:37.4726348Z       }
2026-06-08T23:22:37.4727054Z     },
2026-06-08T23:22:37.4727669Z     {
2026-06-08T23:22:37.4728314Z       "id": "REQ-CLI-3",
2026-06-08T23:22:37.4731560Z       "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-08T23:22:37.4734837Z       "requiredStages": [
2026-06-08T23:22:37.4735586Z         "impl",
2026-06-08T23:22:37.4736259Z         "unit"
2026-06-08T23:22:37.4736913Z       ],
2026-06-08T23:22:37.4737623Z       "stages": {
2026-06-08T23:22:37.4738300Z         "doc": {
2026-06-08T23:22:37.4745449Z           "complete": false,
2026-06-08T23:22:37.4746269Z           "evidence": []
2026-06-08T23:22:37.4747101Z         },
2026-06-08T23:22:37.4747735Z         "impl": {
2026-06-08T23:22:37.4748428Z           "complete": true,
2026-06-08T23:22:37.4749195Z           "evidence": [
2026-06-08T23:22:37.4749896Z             {
2026-06-08T23:22:37.4750607Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4751522Z               "line": 735
2026-06-08T23:22:37.4752237Z             }
2026-06-08T23:22:37.4752876Z           ]
2026-06-08T23:22:37.4753490Z         },
2026-06-08T23:22:37.4754111Z         "int": {
2026-06-08T23:22:37.4754794Z           "complete": false,
2026-06-08T23:22:37.4755590Z           "evidence": []
2026-06-08T23:22:37.4756300Z         },
2026-06-08T23:22:37.4756915Z         "unit": {
2026-06-08T23:22:37.4757675Z           "complete": true,
2026-06-08T23:22:37.4758433Z           "evidence": [
2026-06-08T23:22:37.4759143Z             {
2026-06-08T23:22:37.4759855Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4760785Z               "line": 4671
2026-06-08T23:22:37.4761521Z             }
2026-06-08T23:22:37.4762160Z           ]
2026-06-08T23:22:37.4762777Z         }
2026-06-08T23:22:37.4763382Z       }
2026-06-08T23:22:37.4763993Z     },
2026-06-08T23:22:37.4764593Z     {
2026-06-08T23:22:37.4765234Z       "id": "REQ-CONSENT-1",
2026-06-08T23:22:37.4769276Z       "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-08T23:22:37.4773134Z       "requiredStages": [
2026-06-08T23:22:37.4773871Z         "impl",
2026-06-08T23:22:37.4774535Z         "unit"
2026-06-08T23:22:37.4775173Z       ],
2026-06-08T23:22:37.4775795Z       "stages": {
2026-06-08T23:22:37.4776448Z         "doc": {
2026-06-08T23:22:37.4777240Z           "complete": false,
2026-06-08T23:22:37.4778025Z           "evidence": []
2026-06-08T23:22:37.4778757Z         },
2026-06-08T23:22:37.4779377Z         "impl": {
2026-06-08T23:22:37.4780064Z           "complete": true,
2026-06-08T23:22:37.4780839Z           "evidence": [
2026-06-08T23:22:37.4781538Z             {
2026-06-08T23:22:37.4782302Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4783261Z               "line": 27
2026-06-08T23:22:37.4783956Z             },
2026-06-08T23:22:37.4784586Z             {
2026-06-08T23:22:37.4785342Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4786440Z               "line": 75
2026-06-08T23:22:37.4787261Z             },
2026-06-08T23:22:37.4787914Z             {
2026-06-08T23:22:37.4788676Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4789632Z               "line": 98
2026-06-08T23:22:37.4790353Z             },
2026-06-08T23:22:37.4790987Z             {
2026-06-08T23:22:37.4791860Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4792804Z               "line": 82
2026-06-08T23:22:37.4793521Z             },
2026-06-08T23:22:37.4794167Z             {
2026-06-08T23:22:37.4794921Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4795865Z               "line": 109
2026-06-08T23:22:37.4796584Z             },
2026-06-08T23:22:37.4797315Z             {
2026-06-08T23:22:37.4798070Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4799019Z               "line": 127
2026-06-08T23:22:37.4799735Z             },
2026-06-08T23:22:37.4800388Z             {
2026-06-08T23:22:37.4801146Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4802086Z               "line": 142
2026-06-08T23:22:37.4802812Z             },
2026-06-08T23:22:37.4803452Z             {
2026-06-08T23:22:37.4804162Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4805066Z               "line": 4407
2026-06-08T23:22:37.4805805Z             }
2026-06-08T23:22:37.4806430Z           ]
2026-06-08T23:22:37.4807097Z         },
2026-06-08T23:22:37.4807709Z         "int": {
2026-06-08T23:22:37.4808391Z           "complete": false,
2026-06-08T23:22:37.4809168Z           "evidence": []
2026-06-08T23:22:37.4809887Z         },
2026-06-08T23:22:37.4810500Z         "unit": {
2026-06-08T23:22:37.4811178Z           "complete": true,
2026-06-08T23:22:37.4811930Z           "evidence": [
2026-06-08T23:22:37.4812637Z             {
2026-06-08T23:22:37.4813401Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4814364Z               "line": 334
2026-06-08T23:22:37.4815083Z             },
2026-06-08T23:22:37.4815717Z             {
2026-06-08T23:22:37.4816474Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4817511Z               "line": 380
2026-06-08T23:22:37.4818232Z             },
2026-06-08T23:22:37.4818871Z             {
2026-06-08T23:22:37.4819624Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4820578Z               "line": 391
2026-06-08T23:22:37.4821298Z             },
2026-06-08T23:22:37.4821933Z             {
2026-06-08T23:22:37.4822678Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4823617Z               "line": 165
2026-06-08T23:22:37.4824337Z             },
2026-06-08T23:22:37.4824977Z             {
2026-06-08T23:22:37.4825729Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4826701Z               "line": 184
2026-06-08T23:22:37.4827498Z             },
2026-06-08T23:22:37.4828142Z             {
2026-06-08T23:22:37.4828901Z               "path": "crates/spt-store/src/grants.rs",
2026-06-08T23:22:37.4829841Z               "line": 204
2026-06-08T23:22:37.4830560Z             },
2026-06-08T23:22:37.4831195Z             {
2026-06-08T23:22:37.4831911Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4832807Z               "line": 5004
2026-06-08T23:22:37.4833531Z             }
2026-06-08T23:22:37.4834168Z           ]
2026-06-08T23:22:37.4834778Z         }
2026-06-08T23:22:37.4835379Z       }
2026-06-08T23:22:37.4835979Z     },
2026-06-08T23:22:37.4836580Z     {
2026-06-08T23:22:37.4837313Z       "id": "REQ-CONSENT-2",
2026-06-08T23:22:37.4840854Z       "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-08T23:22:37.4844520Z       "requiredStages": [
2026-06-08T23:22:37.4845266Z         "impl",
2026-06-08T23:22:37.4845920Z         "unit"
2026-06-08T23:22:37.4846573Z       ],
2026-06-08T23:22:37.4847283Z       "stages": {
2026-06-08T23:22:37.4847947Z         "doc": {
2026-06-08T23:22:37.4848656Z           "complete": false,
2026-06-08T23:22:37.4849428Z           "evidence": []
2026-06-08T23:22:37.4850265Z         },
2026-06-08T23:22:37.4850889Z         "impl": {
2026-06-08T23:22:37.4851570Z           "complete": true,
2026-06-08T23:22:37.4852335Z           "evidence": [
2026-06-08T23:22:37.4853046Z             {
2026-06-08T23:22:37.4853814Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4854760Z               "line": 140
2026-06-08T23:22:37.4855502Z             },
2026-06-08T23:22:37.4856132Z             {
2026-06-08T23:22:37.4856896Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4857929Z               "line": 165
2026-06-08T23:22:37.4858640Z             },
2026-06-08T23:22:37.4859292Z             {
2026-06-08T23:22:37.4860044Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4860986Z               "line": 199
2026-06-08T23:22:37.4861708Z             },
2026-06-08T23:22:37.4862347Z             {
2026-06-08T23:22:37.4863101Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4864069Z               "line": 241
2026-06-08T23:22:37.4864784Z             },
2026-06-08T23:22:37.4865419Z             {
2026-06-08T23:22:37.4866211Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4867260Z               "line": 269
2026-06-08T23:22:37.4868002Z             },
2026-06-08T23:22:37.4868645Z             {
2026-06-08T23:22:37.4869410Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4870364Z               "line": 300
2026-06-08T23:22:37.4871095Z             },
2026-06-08T23:22:37.4871728Z             {
2026-06-08T23:22:37.4872429Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4873337Z               "line": 4272
2026-06-08T23:22:37.4874070Z             },
2026-06-08T23:22:37.4874714Z             {
2026-06-08T23:22:37.4875445Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4876351Z               "line": 4330
2026-06-08T23:22:37.4877334Z             }
2026-06-08T23:22:37.4877978Z           ]
2026-06-08T23:22:37.4878759Z         },
2026-06-08T23:22:37.4879450Z         "int": {
2026-06-08T23:22:37.4880146Z           "complete": false,
2026-06-08T23:22:37.4880934Z           "evidence": []
2026-06-08T23:22:37.4881655Z         },
2026-06-08T23:22:37.4882288Z         "unit": {
2026-06-08T23:22:37.4882990Z           "complete": true,
2026-06-08T23:22:37.4883771Z           "evidence": [
2026-06-08T23:22:37.4884541Z             {
2026-06-08T23:22:37.4885447Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4886418Z               "line": 419
2026-06-08T23:22:37.4887235Z             },
2026-06-08T23:22:37.4887904Z             {
2026-06-08T23:22:37.4888681Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4889648Z               "line": 436
2026-06-08T23:22:37.4890372Z             },
2026-06-08T23:22:37.4891021Z             {
2026-06-08T23:22:37.4891793Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4892749Z               "line": 472
2026-06-08T23:22:37.4893483Z             },
2026-06-08T23:22:37.4894136Z             {
2026-06-08T23:22:37.4894900Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.4895868Z               "line": 516
2026-06-08T23:22:37.4896599Z             },
2026-06-08T23:22:37.4897344Z             {
2026-06-08T23:22:37.4898062Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4898973Z               "line": 5899
2026-06-08T23:22:37.4899706Z             },
2026-06-08T23:22:37.4900355Z             {
2026-06-08T23:22:37.4901077Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.4901988Z               "line": 5981
2026-06-08T23:22:37.4902932Z             }
2026-06-08T23:22:37.4903576Z           ]
2026-06-08T23:22:37.4904205Z         }
2026-06-08T23:22:37.4904823Z       }
2026-06-08T23:22:37.4905427Z     },
2026-06-08T23:22:37.4906032Z     {
2026-06-08T23:22:37.4906676Z       "id": "REQ-CONV-1",
2026-06-08T23:22:37.4911980Z       "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-08T23:22:37.4917381Z       "requiredStages": [
2026-06-08T23:22:37.4918163Z         "impl",
2026-06-08T23:22:37.4918835Z         "unit"
2026-06-08T23:22:37.4919503Z       ],
2026-06-08T23:22:37.4920142Z       "stages": {
2026-06-08T23:22:37.4920808Z         "doc": {
2026-06-08T23:22:37.4921495Z           "complete": false,
2026-06-08T23:22:37.4922273Z           "evidence": []
2026-06-08T23:22:37.4922982Z         },
2026-06-08T23:22:37.4923614Z         "impl": {
2026-06-08T23:22:37.4924314Z           "complete": true,
2026-06-08T23:22:37.4925098Z           "evidence": [
2026-06-08T23:22:37.4925830Z             {
2026-06-08T23:22:37.4926614Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.4927636Z               "line": 696
2026-06-08T23:22:37.4928350Z             },
2026-06-08T23:22:37.4928987Z             {
2026-06-08T23:22:37.4929767Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.4930726Z               "line": 94
2026-06-08T23:22:37.4931440Z             },
2026-06-08T23:22:37.4932079Z             {
2026-06-08T23:22:37.4932847Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.4933819Z               "line": 345
2026-06-08T23:22:37.4934550Z             },
2026-06-08T23:22:37.4935213Z             {
2026-06-08T23:22:37.4935982Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.4937032Z               "line": 387
2026-06-08T23:22:37.4937756Z             },
2026-06-08T23:22:37.4938400Z             {
2026-06-08T23:22:37.4939176Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.4940143Z               "line": 472
2026-06-08T23:22:37.4940857Z             },
2026-06-08T23:22:37.4941500Z             {
2026-06-08T23:22:37.4942276Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.4943240Z               "line": 581
2026-06-08T23:22:37.4943962Z             },
2026-06-08T23:22:37.4944603Z             {
2026-06-08T23:22:37.4945378Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.4946336Z               "line": 607
2026-06-08T23:22:37.4947132Z             },
2026-06-08T23:22:37.4947787Z             {
2026-06-08T23:22:37.4948570Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.4949522Z               "line": 369
2026-06-08T23:22:37.4950239Z             },
2026-06-08T23:22:37.4950873Z             {
2026-06-08T23:22:37.4951647Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-08T23:22:37.4952609Z               "line": 19
2026-06-08T23:22:37.4953334Z             }
2026-06-08T23:22:37.4953972Z           ]
2026-06-08T23:22:37.4954587Z         },
2026-06-08T23:22:37.4955205Z         "int": {
2026-06-08T23:22:37.4955900Z           "complete": false,
2026-06-08T23:22:37.4956677Z           "evidence": []
2026-06-08T23:22:37.4957511Z         },
2026-06-08T23:22:37.4958133Z         "unit": {
2026-06-08T23:22:37.4958815Z           "complete": true,
2026-06-08T23:22:37.4959573Z           "evidence": [
2026-06-08T23:22:37.4960273Z             {
2026-06-08T23:22:37.4961043Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.4962020Z               "line": 905
2026-06-08T23:22:37.4962861Z             },
2026-06-08T23:22:37.4963517Z             {
2026-06-08T23:22:37.4964293Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-08T23:22:37.4965252Z               "line": 108
2026-06-08T23:22:37.4965973Z             },
2026-06-08T23:22:37.4966632Z             {
2026-06-08T23:22:37.4967499Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-08T23:22:37.4968646Z               "line": 134
2026-06-08T23:22:37.4969370Z             },
2026-06-08T23:22:37.4970148Z             {
2026-06-08T23:22:37.4970922Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-08T23:22:37.4971880Z               "line": 144
2026-06-08T23:22:37.4972590Z             }
2026-06-08T23:22:37.4973214Z           ]
2026-06-08T23:22:37.4973820Z         }
2026-06-08T23:22:37.4974411Z       }
2026-06-08T23:22:37.4975012Z     },
2026-06-08T23:22:37.4975604Z     {
2026-06-08T23:22:37.4976226Z       "id": "REQ-CONV-2",
2026-06-08T23:22:37.4980349Z       "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-08T23:22:37.4984284Z       "requiredStages": [
2026-06-08T23:22:37.4985047Z         "impl",
2026-06-08T23:22:37.4985705Z         "unit"
2026-06-08T23:22:37.4986352Z       ],
2026-06-08T23:22:37.4987041Z       "stages": {
2026-06-08T23:22:37.4987709Z         "doc": {
2026-06-08T23:22:37.4988386Z           "complete": false,
2026-06-08T23:22:37.4989164Z           "evidence": []
2026-06-08T23:22:37.4989870Z         },
2026-06-08T23:22:37.4990477Z         "impl": {
2026-06-08T23:22:37.4991158Z           "complete": true,
2026-06-08T23:22:37.4991900Z           "evidence": [
2026-06-08T23:22:37.4992605Z             {
2026-06-08T23:22:37.4993381Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.4994353Z               "line": 316
2026-06-08T23:22:37.4995067Z             },
2026-06-08T23:22:37.4995697Z             {
2026-06-08T23:22:37.4996480Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.4997554Z               "line": 290
2026-06-08T23:22:37.4998264Z             },
2026-06-08T23:22:37.4998923Z             {
2026-06-08T23:22:37.4999719Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.5000713Z               "line": 761
2026-06-08T23:22:37.5001427Z             },
2026-06-08T23:22:37.5002075Z             {
2026-06-08T23:22:37.5002870Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.5003856Z               "line": 772
2026-06-08T23:22:37.5004570Z             },
2026-06-08T23:22:37.5005214Z             {
2026-06-08T23:22:37.5005976Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.5006920Z               "line": 334
2026-06-08T23:22:37.5007708Z             },
2026-06-08T23:22:37.5008348Z             {
2026-06-08T23:22:37.5009044Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5009950Z               "line": 1772
2026-06-08T23:22:37.5010690Z             },
2026-06-08T23:22:37.5011339Z             {
2026-06-08T23:22:37.5012045Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5012954Z               "line": 1788
2026-06-08T23:22:37.5063997Z             },
2026-06-08T23:22:37.5064727Z             {
2026-06-08T23:22:37.5065461Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5066372Z               "line": 1845
2026-06-08T23:22:37.5067203Z             }
2026-06-08T23:22:37.5067833Z           ]
2026-06-08T23:22:37.5068453Z         },
2026-06-08T23:22:37.5069076Z         "int": {
2026-06-08T23:22:37.5069749Z           "complete": false,
2026-06-08T23:22:37.5070529Z           "evidence": []
2026-06-08T23:22:37.5071243Z         },
2026-06-08T23:22:37.5071856Z         "unit": {
2026-06-08T23:22:37.5072815Z           "complete": true,
2026-06-08T23:22:37.5073589Z           "evidence": [
2026-06-08T23:22:37.5074276Z             {
2026-06-08T23:22:37.5075048Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5076021Z               "line": 986
2026-06-08T23:22:37.5076723Z             }
2026-06-08T23:22:37.5077458Z           ]
2026-06-08T23:22:37.5078192Z         }
2026-06-08T23:22:37.5078793Z       }
2026-06-08T23:22:37.5079388Z     },
2026-06-08T23:22:37.5079984Z     {
2026-06-08T23:22:37.5080614Z       "id": "REQ-DAEMON-1",
2026-06-08T23:22:37.5081625Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-08T23:22:37.5082799Z       "requiredStages": [
2026-06-08T23:22:37.5083529Z         "impl",
2026-06-08T23:22:37.5084173Z         "unit",
2026-06-08T23:22:37.5084808Z         "int"
2026-06-08T23:22:37.5085437Z       ],
2026-06-08T23:22:37.5086044Z       "stages": {
2026-06-08T23:22:37.5086692Z         "doc": {
2026-06-08T23:22:37.5087460Z           "complete": false,
2026-06-08T23:22:37.5088223Z           "evidence": []
2026-06-08T23:22:37.5088925Z         },
2026-06-08T23:22:37.5089540Z         "impl": {
2026-06-08T23:22:37.5090216Z           "complete": true,
2026-06-08T23:22:37.5090949Z           "evidence": [
2026-06-08T23:22:37.5091631Z             {
2026-06-08T23:22:37.5092373Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5093306Z               "line": 12
2026-06-08T23:22:37.5094008Z             },
2026-06-08T23:22:37.5094633Z             {
2026-06-08T23:22:37.5095387Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5096331Z               "line": 16
2026-06-08T23:22:37.5097103Z             },
2026-06-08T23:22:37.5097731Z             {
2026-06-08T23:22:37.5098461Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-08T23:22:37.5099386Z               "line": 15
2026-06-08T23:22:37.5100093Z             },
2026-06-08T23:22:37.5100732Z             {
2026-06-08T23:22:37.5101448Z               "path": "crates/spt/src/api/live.rs",
2026-06-08T23:22:37.5102355Z               "line": 13
2026-06-08T23:22:37.5103067Z             }
2026-06-08T23:22:37.5103705Z           ]
2026-06-08T23:22:37.5104315Z         },
2026-06-08T23:22:37.5104926Z         "int": {
2026-06-08T23:22:37.5105610Z           "complete": true,
2026-06-08T23:22:37.5106366Z           "evidence": [
2026-06-08T23:22:37.5107144Z             {
2026-06-08T23:22:37.5107925Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-08T23:22:37.5108900Z               "line": 32
2026-06-08T23:22:37.5109600Z             }
2026-06-08T23:22:37.5110225Z           ]
2026-06-08T23:22:37.5110830Z         },
2026-06-08T23:22:37.5111436Z         "unit": {
2026-06-08T23:22:37.5112103Z           "complete": true,
2026-06-08T23:22:37.5112847Z           "evidence": [
2026-06-08T23:22:37.5113532Z             {
2026-06-08T23:22:37.5114284Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5115223Z               "line": 285
2026-06-08T23:22:37.5115938Z             },
2026-06-08T23:22:37.5116602Z             {
2026-06-08T23:22:37.5117461Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5118391Z               "line": 293
2026-06-08T23:22:37.5119094Z             },
2026-06-08T23:22:37.5119722Z             {
2026-06-08T23:22:37.5120480Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5121423Z               "line": 309
2026-06-08T23:22:37.5122129Z             },
2026-06-08T23:22:37.5122758Z             {
2026-06-08T23:22:37.5123499Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5124429Z               "line": 317
2026-06-08T23:22:37.5125135Z             },
2026-06-08T23:22:37.5125792Z             {
2026-06-08T23:22:37.5126563Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5127988Z               "line": 565
2026-06-08T23:22:37.5128698Z             },
2026-06-08T23:22:37.5129325Z             {
2026-06-08T23:22:37.5130197Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5131156Z               "line": 635
2026-06-08T23:22:37.5131866Z             },
2026-06-08T23:22:37.5132508Z             {
2026-06-08T23:22:37.5133242Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-08T23:22:37.5134162Z               "line": 104
2026-06-08T23:22:37.5134979Z             },
2026-06-08T23:22:37.5135624Z             {
2026-06-08T23:22:37.5136362Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-08T23:22:37.5137375Z               "line": 129
2026-06-08T23:22:37.5138075Z             }
2026-06-08T23:22:37.5138700Z           ]
2026-06-08T23:22:37.5139301Z         }
2026-06-08T23:22:37.5139913Z       }
2026-06-08T23:22:37.5140514Z     },
2026-06-08T23:22:37.5141105Z     {
2026-06-08T23:22:37.5141730Z       "id": "REQ-DAEMON-2",
2026-06-08T23:22:37.5142639Z       "title": "Broker/brain split for seamless self-update",
2026-06-08T23:22:37.5143656Z       "requiredStages": [
2026-06-08T23:22:37.5144384Z         "impl",
2026-06-08T23:22:37.5145028Z         "unit",
2026-06-08T23:22:37.5145670Z         "int"
2026-06-08T23:22:37.5146293Z       ],
2026-06-08T23:22:37.5146899Z       "stages": {
2026-06-08T23:22:37.5147651Z         "doc": {
2026-06-08T23:22:37.5148326Z           "complete": false,
2026-06-08T23:22:37.5149095Z           "evidence": []
2026-06-08T23:22:37.5149799Z         },
2026-06-08T23:22:37.5150413Z         "impl": {
2026-06-08T23:22:37.5151094Z           "complete": true,
2026-06-08T23:22:37.5151836Z           "evidence": [
2026-06-08T23:22:37.5152518Z             {
2026-06-08T23:22:37.5153257Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5154188Z               "line": 23
2026-06-08T23:22:37.5154893Z             },
2026-06-08T23:22:37.5155527Z             {
2026-06-08T23:22:37.5156267Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5157277Z               "line": 531
2026-06-08T23:22:37.5157999Z             },
2026-06-08T23:22:37.5158638Z             {
2026-06-08T23:22:37.5159368Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5160289Z               "line": 684
2026-06-08T23:22:37.5160992Z             },
2026-06-08T23:22:37.5161629Z             {
2026-06-08T23:22:37.5162372Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5163307Z               "line": 32
2026-06-08T23:22:37.5164021Z             },
2026-06-08T23:22:37.5164646Z             {
2026-06-08T23:22:37.5165377Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5166319Z               "line": 191
2026-06-08T23:22:37.5167208Z             },
2026-06-08T23:22:37.5167847Z             {
2026-06-08T23:22:37.5168597Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5169537Z               "line": 546
2026-06-08T23:22:37.5170253Z             },
2026-06-08T23:22:37.5170887Z             {
2026-06-08T23:22:37.5171646Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5172590Z               "line": 788
2026-06-08T23:22:37.5173295Z             },
2026-06-08T23:22:37.5173591Z             {
2026-06-08T23:22:37.5173983Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-08T23:22:37.5174300Z               "line": 11
2026-06-08T23:22:37.5174596Z             },
2026-06-08T23:22:37.5174891Z             {
2026-06-08T23:22:37.5175298Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5175603Z               "line": 146
2026-06-08T23:22:37.5175898Z             },
2026-06-08T23:22:37.5176180Z             {
2026-06-08T23:22:37.5176562Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5176879Z               "line": 13
2026-06-08T23:22:37.5177259Z             },
2026-06-08T23:22:37.5177560Z             {
2026-06-08T23:22:37.5177974Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5178284Z               "line": 27
2026-06-08T23:22:37.5178570Z             },
2026-06-08T23:22:37.5178970Z             {
2026-06-08T23:22:37.5179388Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5179691Z               "line": 109
2026-06-08T23:22:37.5179987Z             },
2026-06-08T23:22:37.5180278Z             {
2026-06-08T23:22:37.5180688Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5181094Z               "line": 447
2026-06-08T23:22:37.5181386Z             },
2026-06-08T23:22:37.5181671Z             {
2026-06-08T23:22:37.5182084Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5182398Z               "line": 614
2026-06-08T23:22:37.5182688Z             },
2026-06-08T23:22:37.5182984Z             {
2026-06-08T23:22:37.5183398Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5183709Z               "line": 715
2026-06-08T23:22:37.5183995Z             },
2026-06-08T23:22:37.5184286Z             {
2026-06-08T23:22:37.5184709Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5185019Z               "line": 764
2026-06-08T23:22:37.5185324Z             },
2026-06-08T23:22:37.5185629Z             {
2026-06-08T23:22:37.5186043Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5186358Z               "line": 812
2026-06-08T23:22:37.5186658Z             },
2026-06-08T23:22:37.5187059Z             {
2026-06-08T23:22:37.5187487Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-08T23:22:37.5187805Z               "line": 10
2026-06-08T23:22:37.5188100Z             }
2026-06-08T23:22:37.5188396Z           ]
2026-06-08T23:22:37.5188686Z         },
2026-06-08T23:22:37.5188987Z         "int": {
2026-06-08T23:22:37.5189311Z           "complete": true,
2026-06-08T23:22:37.5189621Z           "evidence": [
2026-06-08T23:22:37.5189925Z             {
2026-06-08T23:22:37.5190342Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-08T23:22:37.5190657Z               "line": 17
2026-06-08T23:22:37.5190962Z             },
2026-06-08T23:22:37.5191258Z             {
2026-06-08T23:22:37.5191702Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-08T23:22:37.5192017Z               "line": 33
2026-06-08T23:22:37.5192402Z             },
2026-06-08T23:22:37.5192723Z             {
2026-06-08T23:22:37.5193200Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-08T23:22:37.5193544Z               "line": 19
2026-06-08T23:22:37.5193978Z             },
2026-06-08T23:22:37.5194311Z             {
2026-06-08T23:22:37.5194803Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-08T23:22:37.5195137Z               "line": 71
2026-06-08T23:22:37.5195493Z             },
2026-06-08T23:22:37.5195908Z             {
2026-06-08T23:22:37.5196394Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-08T23:22:37.5196757Z               "line": 91
2026-06-08T23:22:37.5197171Z             },
2026-06-08T23:22:37.5197533Z             {
2026-06-08T23:22:37.5198104Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-08T23:22:37.5198441Z               "line": 167
2026-06-08T23:22:37.5198795Z             },
2026-06-08T23:22:37.5199108Z             {
2026-06-08T23:22:37.5199605Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-08T23:22:37.5200006Z               "line": 209
2026-06-08T23:22:37.5200467Z             },
2026-06-08T23:22:37.5200821Z             {
2026-06-08T23:22:37.5201284Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-08T23:22:37.5201637Z               "line": 128
2026-06-08T23:22:37.5202000Z             }
2026-06-08T23:22:37.5202376Z           ]
2026-06-08T23:22:37.5202724Z         },
2026-06-08T23:22:37.5203052Z         "unit": {
2026-06-08T23:22:37.5203417Z           "complete": true,
2026-06-08T23:22:37.5203804Z           "evidence": [
2026-06-08T23:22:37.5204166Z             {
2026-06-08T23:22:37.5204595Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-08T23:22:37.5205083Z               "line": 62
2026-06-08T23:22:37.5205439Z             },
2026-06-08T23:22:37.5205792Z             {
2026-06-08T23:22:37.5206266Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-08T23:22:37.5206601Z               "line": 76
2026-06-08T23:22:37.5207055Z             },
2026-06-08T23:22:37.5207398Z             {
2026-06-08T23:22:37.5208004Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-08T23:22:37.5208379Z               "line": 88
2026-06-08T23:22:37.5208697Z             },
2026-06-08T23:22:37.5209063Z             {
2026-06-08T23:22:37.5209501Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.5209893Z               "line": 294
2026-06-08T23:22:37.5210265Z             },
2026-06-08T23:22:37.5210575Z             {
2026-06-08T23:22:37.5211036Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5211362Z               "line": 583
2026-06-08T23:22:37.5211739Z             },
2026-06-08T23:22:37.5212068Z             {
2026-06-08T23:22:37.5212540Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5212913Z               "line": 591
2026-06-08T23:22:37.5213227Z             },
2026-06-08T23:22:37.5213598Z             {
2026-06-08T23:22:37.5214029Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5214416Z               "line": 608
2026-06-08T23:22:37.5214740Z             },
2026-06-08T23:22:37.5215088Z             {
2026-06-08T23:22:37.5215560Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5215909Z               "line": 662
2026-06-08T23:22:37.5216272Z             },
2026-06-08T23:22:37.5216589Z             {
2026-06-08T23:22:37.5217161Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5217601Z               "line": 883
2026-06-08T23:22:37.5217930Z             },
2026-06-08T23:22:37.5218287Z             {
2026-06-08T23:22:37.5218726Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5219129Z               "line": 895
2026-06-08T23:22:37.5219432Z             },
2026-06-08T23:22:37.5219843Z             {
2026-06-08T23:22:37.5220333Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-08T23:22:37.5220667Z               "line": 110
2026-06-08T23:22:37.5221016Z             }
2026-06-08T23:22:37.5221316Z           ]
2026-06-08T23:22:37.5221725Z         }
2026-06-08T23:22:37.5222052Z       }
2026-06-08T23:22:37.5222400Z     },
2026-06-08T23:22:37.5222753Z     {
2026-06-08T23:22:37.5223091Z       "id": "REQ-DAEMON-3",
2026-06-08T23:22:37.5223740Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-08T23:22:37.5224087Z       "requiredStages": [
2026-06-08T23:22:37.5224442Z         "impl",
2026-06-08T23:22:37.5224794Z         "unit",
2026-06-08T23:22:37.5225099Z         "int"
2026-06-08T23:22:37.5225510Z       ],
2026-06-08T23:22:37.5225835Z       "stages": {
2026-06-08T23:22:37.5226183Z         "doc": {
2026-06-08T23:22:37.5226536Z           "complete": false,
2026-06-08T23:22:37.5226903Z           "evidence": []
2026-06-08T23:22:37.5227464Z         },
2026-06-08T23:22:37.5227850Z         "impl": {
2026-06-08T23:22:37.5228227Z           "complete": true,
2026-06-08T23:22:37.5228570Z           "evidence": [
2026-06-08T23:22:37.5228918Z             {
2026-06-08T23:22:37.5229397Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5229784Z               "line": 14
2026-06-08T23:22:37.5230141Z             },
2026-06-08T23:22:37.5230456Z             {
2026-06-08T23:22:37.5230932Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-08T23:22:37.5231300Z               "line": 11
2026-06-08T23:22:37.5231667Z             },
2026-06-08T23:22:37.5232010Z             {
2026-06-08T23:22:37.5232417Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.5232779Z               "line": 247
2026-06-08T23:22:37.5233126Z             },
2026-06-08T23:22:37.5233484Z             {
2026-06-08T23:22:37.5233966Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5234400Z               "line": 1224
2026-06-08T23:22:37.5234732Z             },
2026-06-08T23:22:37.5235097Z             {
2026-06-08T23:22:37.5235646Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5235989Z               "line": 2663
2026-06-08T23:22:37.5236347Z             },
2026-06-08T23:22:37.5236666Z             {
2026-06-08T23:22:37.5237344Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5237815Z               "line": 2684
2026-06-08T23:22:37.5238130Z             }
2026-06-08T23:22:37.5238478Z           ]
2026-06-08T23:22:37.5238792Z         },
2026-06-08T23:22:37.5239168Z         "int": {
2026-06-08T23:22:37.5239579Z           "complete": true,
2026-06-08T23:22:37.5239914Z           "evidence": [
2026-06-08T23:22:37.5240259Z             {
2026-06-08T23:22:37.5240702Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.5241082Z               "line": 46
2026-06-08T23:22:37.5241425Z             },
2026-06-08T23:22:37.5241792Z             {
2026-06-08T23:22:37.5242269Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.5242608Z               "line": 435
2026-06-08T23:22:37.5242986Z             }
2026-06-08T23:22:37.5243334Z           ]
2026-06-08T23:22:37.5243687Z         },
2026-06-08T23:22:37.5244011Z         "unit": {
2026-06-08T23:22:37.5244408Z           "complete": true,
2026-06-08T23:22:37.5244804Z           "evidence": [
2026-06-08T23:22:37.5245137Z             {
2026-06-08T23:22:37.5245629Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5245962Z               "line": 573
2026-06-08T23:22:37.5246335Z             },
2026-06-08T23:22:37.5246721Z             {
2026-06-08T23:22:37.5247207Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5247614Z               "line": 6794
2026-06-08T23:22:37.5247929Z             }
2026-06-08T23:22:37.5248279Z           ]
2026-06-08T23:22:37.5248580Z         }
2026-06-08T23:22:37.5248990Z       }
2026-06-08T23:22:37.5249381Z     },
2026-06-08T23:22:37.5249715Z     {
2026-06-08T23:22:37.5250329Z       "id": "REQ-DAEMON-4",
2026-06-08T23:22:37.5250767Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-08T23:22:37.5251209Z       "requiredStages": [
2026-06-08T23:22:37.5251533Z         "impl",
2026-06-08T23:22:37.5251885Z         "unit",
2026-06-08T23:22:37.5252258Z         "int"
2026-06-08T23:22:37.5252552Z       ],
2026-06-08T23:22:37.5252973Z       "stages": {
2026-06-08T23:22:37.5253291Z         "doc": {
2026-06-08T23:22:37.5253675Z           "complete": false,
2026-06-08T23:22:37.5254009Z           "evidence": []
2026-06-08T23:22:37.5254358Z         },
2026-06-08T23:22:37.5254767Z         "impl": {
2026-06-08T23:22:37.5255110Z           "complete": true,
2026-06-08T23:22:37.5255477Z           "evidence": [
2026-06-08T23:22:37.5255806Z             {
2026-06-08T23:22:37.5256280Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5256700Z               "line": 371
2026-06-08T23:22:37.5257095Z             },
2026-06-08T23:22:37.5257443Z             {
2026-06-08T23:22:37.5257907Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5258254Z               "line": 436
2026-06-08T23:22:37.5258593Z             },
2026-06-08T23:22:37.5258959Z             {
2026-06-08T23:22:37.5259460Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5259799Z               "line": 458
2026-06-08T23:22:37.5260132Z             }
2026-06-08T23:22:37.5260485Z           ]
2026-06-08T23:22:37.5260847Z         },
2026-06-08T23:22:37.5261167Z         "int": {
2026-06-08T23:22:37.5261563Z           "complete": true,
2026-06-08T23:22:37.5261916Z           "evidence": [
2026-06-08T23:22:37.5262269Z             {
2026-06-08T23:22:37.5262784Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-08T23:22:37.5263132Z               "line": 34
2026-06-08T23:22:37.5263481Z             }
2026-06-08T23:22:37.5263799Z           ]
2026-06-08T23:22:37.5264283Z         },
2026-06-08T23:22:37.5264674Z         "unit": {
2026-06-08T23:22:37.5265022Z           "complete": true,
2026-06-08T23:22:37.5265385Z           "evidence": [
2026-06-08T23:22:37.5265718Z             {
2026-06-08T23:22:37.5266225Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.5266635Z               "line": 428
2026-06-08T23:22:37.5267131Z             },
2026-06-08T23:22:37.5267485Z             {
2026-06-08T23:22:37.5267942Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5268361Z               "line": 784
2026-06-08T23:22:37.5268690Z             },
2026-06-08T23:22:37.5269035Z             {
2026-06-08T23:22:37.5269510Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5269843Z               "line": 854
2026-06-08T23:22:37.5270224Z             },
2026-06-08T23:22:37.5270549Z             {
2026-06-08T23:22:37.5271022Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5271398Z               "line": 884
2026-06-08T23:22:37.5271722Z             },
2026-06-08T23:22:37.5272110Z             {
2026-06-08T23:22:37.5272577Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5272940Z               "line": 917
2026-06-08T23:22:37.5273259Z             }
2026-06-08T23:22:37.5273617Z           ]
2026-06-08T23:22:37.5273998Z         }
2026-06-08T23:22:37.5274326Z       }
2026-06-08T23:22:37.5274672Z     },
2026-06-08T23:22:37.5274986Z     {
2026-06-08T23:22:37.5275372Z       "id": "REQ-DAEMON-5",
2026-06-08T23:22:37.5279793Z       "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-08T23:22:37.5280193Z       "requiredStages": [
2026-06-08T23:22:37.5280546Z         "impl",
2026-06-08T23:22:37.5280861Z         "unit"
2026-06-08T23:22:37.5281234Z       ],
2026-06-08T23:22:37.5281610Z       "stages": {
2026-06-08T23:22:37.5281944Z         "doc": {
2026-06-08T23:22:37.5282310Z           "complete": false,
2026-06-08T23:22:37.5282660Z           "evidence": []
2026-06-08T23:22:37.5283013Z         },
2026-06-08T23:22:37.5283318Z         "impl": {
2026-06-08T23:22:37.5283743Z           "complete": true,
2026-06-08T23:22:37.5284567Z           "evidence": [
2026-06-08T23:22:37.5284896Z             {
2026-06-08T23:22:37.5285384Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5285704Z               "line": 280
2026-06-08T23:22:37.5286114Z             },
2026-06-08T23:22:37.5286424Z             {
2026-06-08T23:22:37.5286924Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5287406Z               "line": 676
2026-06-08T23:22:37.5287719Z             },
2026-06-08T23:22:37.5288123Z             {
2026-06-08T23:22:37.5288571Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5288958Z               "line": 689
2026-06-08T23:22:37.5289311Z             },
2026-06-08T23:22:37.5289611Z             {
2026-06-08T23:22:37.5290145Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5290492Z               "line": 707
2026-06-08T23:22:37.5290855Z             },
2026-06-08T23:22:37.5291170Z             {
2026-06-08T23:22:37.5291640Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5292055Z               "line": 748
2026-06-08T23:22:37.5292395Z             }
2026-06-08T23:22:37.5292748Z           ]
2026-06-08T23:22:37.5293065Z         },
2026-06-08T23:22:37.5293402Z         "int": {
2026-06-08T23:22:37.5293793Z           "complete": false,
2026-06-08T23:22:37.5294193Z           "evidence": []
2026-06-08T23:22:37.5294541Z         },
2026-06-08T23:22:37.5294976Z         "unit": {
2026-06-08T23:22:37.5295348Z           "complete": true,
2026-06-08T23:22:37.5295717Z           "evidence": [
2026-06-08T23:22:37.5296101Z             {
2026-06-08T23:22:37.5296584Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5296923Z               "line": 831
2026-06-08T23:22:37.5297360Z             },
2026-06-08T23:22:37.5297843Z             {
2026-06-08T23:22:37.5298345Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5298678Z               "line": 855
2026-06-08T23:22:37.5299026Z             },
2026-06-08T23:22:37.5299373Z             {
2026-06-08T23:22:37.5299861Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.5300242Z               "line": 881
2026-06-08T23:22:37.5300561Z             }
2026-06-08T23:22:37.5300904Z           ]
2026-06-08T23:22:37.5301233Z         }
2026-06-08T23:22:37.5301604Z       }
2026-06-08T23:22:37.5301967Z     },
2026-06-08T23:22:37.5302282Z     {
2026-06-08T23:22:37.5302683Z       "id": "REQ-DOCS-1",
2026-06-08T23:22:37.5303380Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-08T23:22:37.5303790Z       "requiredStages": [
2026-06-08T23:22:37.5304157Z         "doc",
2026-06-08T23:22:37.5304481Z         "impl"
2026-06-08T23:22:37.5304844Z       ],
2026-06-08T23:22:37.5305163Z       "stages": {
2026-06-08T23:22:37.5305546Z         "doc": {
2026-06-08T23:22:37.5305904Z           "complete": true,
2026-06-08T23:22:37.5306263Z           "evidence": [
2026-06-08T23:22:37.5306620Z             {
2026-06-08T23:22:37.5307091Z               "path": "docs-site/src/index.md",
2026-06-08T23:22:37.5307493Z               "line": 50
2026-06-08T23:22:37.5307822Z             }
2026-06-08T23:22:37.5308169Z           ]
2026-06-08T23:22:37.5308498Z         },
2026-06-08T23:22:37.5308853Z         "impl": {
2026-06-08T23:22:37.5309262Z           "complete": true,
2026-06-08T23:22:37.5309610Z           "evidence": [
2026-06-08T23:22:37.5309972Z             {
2026-06-08T23:22:37.5310435Z               "path": ".github/workflows/docs-publish.yml",
2026-06-08T23:22:37.5310797Z               "line": 12
2026-06-08T23:22:37.5316277Z             },
2026-06-08T23:22:37.5316605Z             {
2026-06-08T23:22:37.5317132Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.5317480Z               "line": 14
2026-06-08T23:22:37.5317785Z             }
2026-06-08T23:22:37.5318067Z           ]
2026-06-08T23:22:37.5318343Z         },
2026-06-08T23:22:37.5318634Z         "int": {
2026-06-08T23:22:37.5318959Z           "complete": false,
2026-06-08T23:22:37.5319261Z           "evidence": []
2026-06-08T23:22:37.5319559Z         },
2026-06-08T23:22:37.5319851Z         "unit": {
2026-06-08T23:22:37.5320165Z           "complete": false,
2026-06-08T23:22:37.5320466Z           "evidence": []
2026-06-08T23:22:37.5320752Z         }
2026-06-08T23:22:37.5321047Z       }
2026-06-08T23:22:37.5321329Z     },
2026-06-08T23:22:37.5321616Z     {
2026-06-08T23:22:37.5321935Z       "id": "REQ-DOCS-2",
2026-06-08T23:22:37.5322491Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-08T23:22:37.5322816Z       "requiredStages": [
2026-06-08T23:22:37.5323116Z         "doc",
2026-06-08T23:22:37.5323407Z         "int"
2026-06-08T23:22:37.5323693Z       ],
2026-06-08T23:22:37.5323994Z       "stages": {
2026-06-08T23:22:37.5324293Z         "doc": {
2026-06-08T23:22:37.5324612Z           "complete": true,
2026-06-08T23:22:37.5324916Z           "evidence": [
2026-06-08T23:22:37.5325202Z             {
2026-06-08T23:22:37.5325645Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-08T23:22:37.5325940Z               "line": 3
2026-06-08T23:22:37.5326226Z             },
2026-06-08T23:22:37.5326518Z             {
2026-06-08T23:22:37.5327052Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-08T23:22:37.5327351Z               "line": 3
2026-06-08T23:22:37.5327639Z             }
2026-06-08T23:22:37.5327930Z           ]
2026-06-08T23:22:37.5328355Z         },
2026-06-08T23:22:37.5328656Z         "impl": {
2026-06-08T23:22:37.5328971Z           "complete": false,
2026-06-08T23:22:37.5329286Z           "evidence": []
2026-06-08T23:22:37.5329562Z         },
2026-06-08T23:22:37.5329846Z         "int": {
2026-06-08T23:22:37.5330153Z           "complete": true,
2026-06-08T23:22:37.5330448Z           "evidence": [
2026-06-08T23:22:37.5330831Z             {
2026-06-08T23:22:37.5331250Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-08T23:22:37.5331542Z               "line": 14
2026-06-08T23:22:37.5331875Z             }
2026-06-08T23:22:37.5332162Z           ]
2026-06-08T23:22:37.5332449Z         },
2026-06-08T23:22:37.5332737Z         "unit": {
2026-06-08T23:22:37.5333056Z           "complete": false,
2026-06-08T23:22:37.5333367Z           "evidence": []
2026-06-08T23:22:37.5333657Z         }
2026-06-08T23:22:37.5333934Z       }
2026-06-08T23:22:37.5334215Z     },
2026-06-08T23:22:37.5334496Z     {
2026-06-08T23:22:37.5334811Z       "id": "REQ-DOCS-3",
2026-06-08T23:22:37.5335372Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-08T23:22:37.5335700Z       "requiredStages": [
2026-06-08T23:22:37.5335981Z         "doc"
2026-06-08T23:22:37.5336263Z       ],
2026-06-08T23:22:37.5336553Z       "stages": {
2026-06-08T23:22:37.5336849Z         "doc": {
2026-06-08T23:22:37.5337260Z           "complete": true,
2026-06-08T23:22:37.5337556Z           "evidence": [
2026-06-08T23:22:37.5337839Z             {
2026-06-08T23:22:37.5338209Z               "path": "docs-site/src/index.md",
2026-06-08T23:22:37.5338500Z               "line": 42
2026-06-08T23:22:37.5338781Z             }
2026-06-08T23:22:37.5339077Z           ]
2026-06-08T23:22:37.5339362Z         },
2026-06-08T23:22:37.5339664Z         "impl": {
2026-06-08T23:22:37.5339978Z           "complete": false,
2026-06-08T23:22:37.5340296Z           "evidence": []
2026-06-08T23:22:37.5340581Z         },
2026-06-08T23:22:37.5340877Z         "int": {
2026-06-08T23:22:37.5341224Z           "complete": false,
2026-06-08T23:22:37.5341530Z           "evidence": []
2026-06-08T23:22:37.5341820Z         },
2026-06-08T23:22:37.5342112Z         "unit": {
2026-06-08T23:22:37.5342431Z           "complete": false,
2026-06-08T23:22:37.5342741Z           "evidence": []
2026-06-08T23:22:37.5343033Z         }
2026-06-08T23:22:37.5343331Z       }
2026-06-08T23:22:37.5343636Z     },
2026-06-08T23:22:37.5343936Z     {
2026-06-08T23:22:37.5344256Z       "id": "REQ-DOCS-4",
2026-06-08T23:22:37.5344920Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-08T23:22:37.5345249Z       "requiredStages": [
2026-06-08T23:22:37.5345544Z         "doc",
2026-06-08T23:22:37.5345833Z         "impl",
2026-06-08T23:22:37.5346130Z         "unit"
2026-06-08T23:22:37.5346421Z       ],
2026-06-08T23:22:37.5346717Z       "stages": {
2026-06-08T23:22:37.5347089Z         "doc": {
2026-06-08T23:22:37.5347419Z           "complete": true,
2026-06-08T23:22:37.5347753Z           "evidence": [
2026-06-08T23:22:37.5348043Z             {
2026-06-08T23:22:37.5348409Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-08T23:22:37.5348717Z               "line": 35
2026-06-08T23:22:37.5349002Z             }
2026-06-08T23:22:37.5349289Z           ]
2026-06-08T23:22:37.5349570Z         },
2026-06-08T23:22:37.5349861Z         "impl": {
2026-06-08T23:22:37.5350176Z           "complete": true,
2026-06-08T23:22:37.5350481Z           "evidence": [
2026-06-08T23:22:37.5350767Z             {
2026-06-08T23:22:37.5351174Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.5351484Z               "line": 522
2026-06-08T23:22:37.5351780Z             },
2026-06-08T23:22:37.5352070Z             {
2026-06-08T23:22:37.5352442Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.5352752Z               "line": 15
2026-06-08T23:22:37.5353038Z             }
2026-06-08T23:22:37.5353325Z           ]
2026-06-08T23:22:37.5353611Z         },
2026-06-08T23:22:37.5354010Z         "int": {
2026-06-08T23:22:37.5354339Z           "complete": false,
2026-06-08T23:22:37.5354640Z           "evidence": []
2026-06-08T23:22:37.5354935Z         },
2026-06-08T23:22:37.5355227Z         "unit": {
2026-06-08T23:22:37.5355537Z           "complete": true,
2026-06-08T23:22:37.5355837Z           "evidence": [
2026-06-08T23:22:37.5356124Z             {
2026-06-08T23:22:37.5356672Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.5357140Z               "line": 978
2026-06-08T23:22:37.5357441Z             }
2026-06-08T23:22:37.5357727Z           ]
2026-06-08T23:22:37.5358013Z         }
2026-06-08T23:22:37.5358293Z       }
2026-06-08T23:22:37.5358570Z     },
2026-06-08T23:22:37.5358855Z     {
2026-06-08T23:22:37.5359153Z       "id": "REQ-DOCS-5",
2026-06-08T23:22:37.5359829Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-08T23:22:37.5360154Z       "requiredStages": [
2026-06-08T23:22:37.5360445Z         "impl",
2026-06-08T23:22:37.5360741Z         "int"
2026-06-08T23:22:37.5361022Z       ],
2026-06-08T23:22:37.5361318Z       "stages": {
2026-06-08T23:22:37.5361607Z         "doc": {
2026-06-08T23:22:37.5361921Z           "complete": false,
2026-06-08T23:22:37.5362221Z           "evidence": []
2026-06-08T23:22:37.5362507Z         },
2026-06-08T23:22:37.5362802Z         "impl": {
2026-06-08T23:22:37.5363132Z           "complete": true,
2026-06-08T23:22:37.5363432Z           "evidence": [
2026-06-08T23:22:37.5363717Z             {
2026-06-08T23:22:37.5364148Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.5364456Z               "line": 523
2026-06-08T23:22:37.5364737Z             },
2026-06-08T23:22:37.5365023Z             {
2026-06-08T23:22:37.5365387Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.5365696Z               "line": 113
2026-06-08T23:22:37.5365982Z             }
2026-06-08T23:22:37.5366272Z           ]
2026-06-08T23:22:37.5366568Z         },
2026-06-08T23:22:37.5366863Z         "int": {
2026-06-08T23:22:37.5367260Z           "complete": true,
2026-06-08T23:22:37.5367561Z           "evidence": [
2026-06-08T23:22:37.5367852Z             {
2026-06-08T23:22:37.5368214Z               "path": ".github/workflows/ci.yml",
2026-06-08T23:22:37.5368525Z               "line": 86
2026-06-08T23:22:37.5368815Z             },
2026-06-08T23:22:37.5369106Z             {
2026-06-08T23:22:37.5369539Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.5369842Z               "line": 1015
2026-06-08T23:22:37.5370132Z             }
2026-06-08T23:22:37.5370423Z           ]
2026-06-08T23:22:37.5370709Z         },
2026-06-08T23:22:37.5371010Z         "unit": {
2026-06-08T23:22:37.5371325Z           "complete": false,
2026-06-08T23:22:37.5371640Z           "evidence": []
2026-06-08T23:22:37.5371929Z         }
2026-06-08T23:22:37.5372214Z       }
2026-06-08T23:22:37.5372495Z     },
2026-06-08T23:22:37.5372791Z     {
2026-06-08T23:22:37.5373115Z       "id": "REQ-DOCS-6",
2026-06-08T23:22:37.5374235Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-08T23:22:37.5374564Z       "requiredStages": [
2026-06-08T23:22:37.5374859Z         "impl",
2026-06-08T23:22:37.5375150Z         "unit",
2026-06-08T23:22:37.5375427Z         "int"
2026-06-08T23:22:37.5375703Z       ],
2026-06-08T23:22:37.5375994Z       "stages": {
2026-06-08T23:22:37.5376276Z         "doc": {
2026-06-08T23:22:37.5376596Z           "complete": true,
2026-06-08T23:22:37.5376896Z           "evidence": [
2026-06-08T23:22:37.5377258Z             {
2026-06-08T23:22:37.5377702Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-08T23:22:37.5377998Z               "line": 4
2026-06-08T23:22:37.5378293Z             }
2026-06-08T23:22:37.5378585Z           ]
2026-06-08T23:22:37.5378866Z         },
2026-06-08T23:22:37.5379157Z         "impl": {
2026-06-08T23:22:37.5379477Z           "complete": true,
2026-06-08T23:22:37.5379895Z           "evidence": [
2026-06-08T23:22:37.5380194Z             {
2026-06-08T23:22:37.5380569Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5380884Z               "line": 3358
2026-06-08T23:22:37.5381174Z             }
2026-06-08T23:22:37.5381466Z           ]
2026-06-08T23:22:37.5381752Z         },
2026-06-08T23:22:37.5382142Z         "int": {
2026-06-08T23:22:37.5382457Z           "complete": true,
2026-06-08T23:22:37.5382765Z           "evidence": [
2026-06-08T23:22:37.5383041Z             {
2026-06-08T23:22:37.5383483Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-08T23:22:37.5383780Z               "line": 34
2026-06-08T23:22:37.5384061Z             }
2026-06-08T23:22:37.5384347Z           ]
2026-06-08T23:22:37.5384630Z         },
2026-06-08T23:22:37.5384954Z         "unit": {
2026-06-08T23:22:37.5385273Z           "complete": true,
2026-06-08T23:22:37.5385572Z           "evidence": [
2026-06-08T23:22:37.5385852Z             {
2026-06-08T23:22:37.5386225Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5386536Z               "line": 6821
2026-06-08T23:22:37.5386821Z             }
2026-06-08T23:22:37.5387189Z           ]
2026-06-08T23:22:37.5387480Z         }
2026-06-08T23:22:37.5387756Z       }
2026-06-08T23:22:37.5388035Z     },
2026-06-08T23:22:37.5388310Z     {
2026-06-08T23:22:37.5388629Z       "id": "REQ-EP-1",
2026-06-08T23:22:37.5389064Z       "title": "Day-one endpoint types; open type system",
2026-06-08T23:22:37.5389384Z       "requiredStages": [
2026-06-08T23:22:37.5389674Z         "impl",
2026-06-08T23:22:37.5389964Z         "unit"
2026-06-08T23:22:37.5390241Z       ],
2026-06-08T23:22:37.5390540Z       "stages": {
2026-06-08T23:22:37.5390834Z         "doc": {
2026-06-08T23:22:37.5391148Z           "complete": false,
2026-06-08T23:22:37.5391468Z           "evidence": []
2026-06-08T23:22:37.5391749Z         },
2026-06-08T23:22:37.5392045Z         "impl": {
2026-06-08T23:22:37.5392355Z           "complete": true,
2026-06-08T23:22:37.5392675Z           "evidence": [
2026-06-08T23:22:37.5392956Z             {
2026-06-08T23:22:37.5393377Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5393678Z               "line": 77
2026-06-08T23:22:37.5393968Z             },
2026-06-08T23:22:37.5394255Z             {
2026-06-08T23:22:37.5394669Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5394978Z               "line": 94
2026-06-08T23:22:37.5395260Z             }
2026-06-08T23:22:37.5395547Z           ]
2026-06-08T23:22:37.5395838Z         },
2026-06-08T23:22:37.5396122Z         "int": {
2026-06-08T23:22:37.5396442Z           "complete": false,
2026-06-08T23:22:37.5396742Z           "evidence": []
2026-06-08T23:22:37.5397110Z         },
2026-06-08T23:22:37.5397401Z         "unit": {
2026-06-08T23:22:37.5397716Z           "complete": true,
2026-06-08T23:22:37.5398026Z           "evidence": [
2026-06-08T23:22:37.5398312Z             {
2026-06-08T23:22:37.5398734Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5399033Z               "line": 161
2026-06-08T23:22:37.5399333Z             },
2026-06-08T23:22:37.5399624Z             {
2026-06-08T23:22:37.5400029Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5400320Z               "line": 178
2026-06-08T23:22:37.5400597Z             }
2026-06-08T23:22:37.5400888Z           ]
2026-06-08T23:22:37.5401176Z         }
2026-06-08T23:22:37.5401460Z       }
2026-06-08T23:22:37.5401742Z     },
2026-06-08T23:22:37.5402018Z     {
2026-06-08T23:22:37.5402329Z       "id": "REQ-EP-2",
2026-06-08T23:22:37.5402882Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-08T23:22:37.5403202Z       "requiredStages": [
2026-06-08T23:22:37.5403498Z         "impl",
2026-06-08T23:22:37.5403787Z         "unit"
2026-06-08T23:22:37.5404070Z       ],
2026-06-08T23:22:37.5404375Z       "stages": {
2026-06-08T23:22:37.5404661Z         "doc": {
2026-06-08T23:22:37.5405091Z           "complete": false,
2026-06-08T23:22:37.5405401Z           "evidence": []
2026-06-08T23:22:37.5405683Z         },
2026-06-08T23:22:37.5405983Z         "impl": {
2026-06-08T23:22:37.5406297Z           "complete": true,
2026-06-08T23:22:37.5406606Z           "evidence": [
2026-06-08T23:22:37.5406892Z             {
2026-06-08T23:22:37.5407388Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5407789Z               "line": 114
2026-06-08T23:22:37.5408069Z             },
2026-06-08T23:22:37.5408352Z             {
2026-06-08T23:22:37.5408760Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5409060Z               "line": 131
2026-06-08T23:22:37.5409345Z             },
2026-06-08T23:22:37.5409621Z             {
2026-06-08T23:22:37.5410031Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5410336Z               "line": 138
2026-06-08T23:22:37.5410617Z             }
2026-06-08T23:22:37.5410904Z           ]
2026-06-08T23:22:37.5411196Z         },
2026-06-08T23:22:37.5411487Z         "int": {
2026-06-08T23:22:37.5411799Z           "complete": false,
2026-06-08T23:22:37.5412116Z           "evidence": []
2026-06-08T23:22:37.5412402Z         },
2026-06-08T23:22:37.5412688Z         "unit": {
2026-06-08T23:22:37.5413002Z           "complete": true,
2026-06-08T23:22:37.5413303Z           "evidence": [
2026-06-08T23:22:37.5413604Z             {
2026-06-08T23:22:37.5414010Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5414318Z               "line": 190
2026-06-08T23:22:37.5414606Z             },
2026-06-08T23:22:37.5414892Z             {
2026-06-08T23:22:37.5415308Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5415613Z               "line": 208
2026-06-08T23:22:37.5415899Z             },
2026-06-08T23:22:37.5416180Z             {
2026-06-08T23:22:37.5416601Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-08T23:22:37.5416897Z               "line": 221
2026-06-08T23:22:37.5417277Z             }
2026-06-08T23:22:37.5417562Z           ]
2026-06-08T23:22:37.5417843Z         }
2026-06-08T23:22:37.5418129Z       }
2026-06-08T23:22:37.5418405Z     },
2026-06-08T23:22:37.5418692Z     {
2026-06-08T23:22:37.5418997Z       "id": "REQ-EP-3",
2026-06-08T23:22:37.5419635Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-08T23:22:37.5419966Z       "requiredStages": [
2026-06-08T23:22:37.5420253Z         "impl",
2026-06-08T23:22:37.5420549Z         "unit"
2026-06-08T23:22:37.5420830Z       ],
2026-06-08T23:22:37.5421126Z       "stages": {
2026-06-08T23:22:37.5421417Z         "doc": {
2026-06-08T23:22:37.5421737Z           "complete": false,
2026-06-08T23:22:37.5422042Z           "evidence": []
2026-06-08T23:22:37.5422316Z         },
2026-06-08T23:22:37.5422604Z         "impl": {
2026-06-08T23:22:37.5422914Z           "complete": true,
2026-06-08T23:22:37.5423215Z           "evidence": [
2026-06-08T23:22:37.5423491Z             {
2026-06-08T23:22:37.5423897Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5424193Z               "line": 31
2026-06-08T23:22:37.5424478Z             },
2026-06-08T23:22:37.5424764Z             {
2026-06-08T23:22:37.5425176Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5425485Z               "line": 49
2026-06-08T23:22:37.5425777Z             }
2026-06-08T23:22:37.5426063Z           ]
2026-06-08T23:22:37.5426345Z         },
2026-06-08T23:22:37.5426631Z         "int": {
2026-06-08T23:22:37.5427021Z           "complete": false,
2026-06-08T23:22:37.5427321Z           "evidence": []
2026-06-08T23:22:37.5427617Z         },
2026-06-08T23:22:37.5427903Z         "unit": {
2026-06-08T23:22:37.5428228Z           "complete": true,
2026-06-08T23:22:37.5428528Z           "evidence": [
2026-06-08T23:22:37.5428809Z             {
2026-06-08T23:22:37.5429218Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5429519Z               "line": 156
2026-06-08T23:22:37.5429915Z             },
2026-06-08T23:22:37.5430205Z             {
2026-06-08T23:22:37.5430622Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5430927Z               "line": 164
2026-06-08T23:22:37.5431208Z             },
2026-06-08T23:22:37.5431490Z             {
2026-06-08T23:22:37.5431895Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5432306Z               "line": 177
2026-06-08T23:22:37.5432593Z             },
2026-06-08T23:22:37.5432881Z             {
2026-06-08T23:22:37.5433299Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5433614Z               "line": 200
2026-06-08T23:22:37.5433905Z             },
2026-06-08T23:22:37.5434191Z             {
2026-06-08T23:22:37.5434600Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5434902Z               "line": 216
2026-06-08T23:22:37.5435193Z             },
2026-06-08T23:22:37.5435481Z             {
2026-06-08T23:22:37.5435881Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-08T23:22:37.5436190Z               "line": 233
2026-06-08T23:22:37.5436476Z             }
2026-06-08T23:22:37.5436763Z           ]
2026-06-08T23:22:37.5437548Z         }
2026-06-08T23:22:37.5437862Z       }
2026-06-08T23:22:37.5438144Z     },
2026-06-08T23:22:37.5438426Z     {
2026-06-08T23:22:37.5438764Z       "id": "REQ-EP-4",
2026-06-08T23:22:37.5439264Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-08T23:22:37.5439584Z       "requiredStages": [
2026-06-08T23:22:37.5439869Z         "impl",
2026-06-08T23:22:37.5440160Z         "unit"
2026-06-08T23:22:37.5440446Z       ],
2026-06-08T23:22:37.5440732Z       "stages": {
2026-06-08T23:22:37.5441016Z         "doc": {
2026-06-08T23:22:37.5441326Z           "complete": false,
2026-06-08T23:22:37.5441631Z           "evidence": []
2026-06-08T23:22:37.5441908Z         },
2026-06-08T23:22:37.5442199Z         "impl": {
2026-06-08T23:22:37.5442509Z           "complete": true,
2026-06-08T23:22:37.5442819Z           "evidence": [
2026-06-08T23:22:37.5443105Z             {
2026-06-08T23:22:37.5443494Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5443797Z               "line": 461
2026-06-08T23:22:37.5444073Z             },
2026-06-08T23:22:37.5444364Z             {
2026-06-08T23:22:37.5444756Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5445075Z               "line": 706
2026-06-08T23:22:37.5445361Z             },
2026-06-08T23:22:37.5445637Z             {
2026-06-08T23:22:37.5446046Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5446349Z               "line": 805
2026-06-08T23:22:37.5446640Z             },
2026-06-08T23:22:37.5446926Z             {
2026-06-08T23:22:37.5447426Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5447732Z               "line": 83
2026-06-08T23:22:37.5448009Z             },
2026-06-08T23:22:37.5448291Z             {
2026-06-08T23:22:37.5448677Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5448986Z               "line": 460
2026-06-08T23:22:37.5449277Z             },
2026-06-08T23:22:37.5449553Z             {
2026-06-08T23:22:37.5449930Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5450231Z               "line": 546
2026-06-08T23:22:37.5450522Z             },
2026-06-08T23:22:37.5450793Z             {
2026-06-08T23:22:37.5451199Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5451502Z               "line": 196
2026-06-08T23:22:37.5451785Z             },
2026-06-08T23:22:37.5452052Z             {
2026-06-08T23:22:37.5452454Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5452754Z               "line": 337
2026-06-08T23:22:37.5453030Z             },
2026-06-08T23:22:37.5453302Z             {
2026-06-08T23:22:37.5453708Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.5453996Z               "line": 847
2026-06-08T23:22:37.5454425Z             }
2026-06-08T23:22:37.5454706Z           ]
2026-06-08T23:22:37.5454977Z         },
2026-06-08T23:22:37.5455258Z         "int": {
2026-06-08T23:22:37.5455568Z           "complete": false,
2026-06-08T23:22:37.5455858Z           "evidence": []
2026-06-08T23:22:37.5456135Z         },
2026-06-08T23:22:37.5456421Z         "unit": {
2026-06-08T23:22:37.5456823Z           "complete": true,
2026-06-08T23:22:37.5457229Z           "evidence": [
2026-06-08T23:22:37.5457515Z             {
2026-06-08T23:22:37.5457897Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-08T23:22:37.5458207Z               "line": 637
2026-06-08T23:22:37.5458484Z             },
2026-06-08T23:22:37.5458764Z             {
2026-06-08T23:22:37.5459190Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-08T23:22:37.5459483Z               "line": 76
2026-06-08T23:22:37.5459770Z             },
2026-06-08T23:22:37.5460046Z             {
2026-06-08T23:22:37.5460481Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-08T23:22:37.5460781Z               "line": 147
2026-06-08T23:22:37.5461062Z             }
2026-06-08T23:22:37.5461333Z           ]
2026-06-08T23:22:37.5461619Z         }
2026-06-08T23:22:37.5461900Z       }
2026-06-08T23:22:37.5462179Z     },
2026-06-08T23:22:37.5462456Z     {
2026-06-08T23:22:37.5462751Z       "id": "REQ-EP-5",
2026-06-08T23:22:37.5465074Z       "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-08T23:22:37.5465389Z       "requiredStages": [
2026-06-08T23:22:37.5465676Z         "impl",
2026-06-08T23:22:37.5465961Z         "unit",
2026-06-08T23:22:37.5466243Z         "int"
2026-06-08T23:22:37.5466516Z       ],
2026-06-08T23:22:37.5466806Z       "stages": {
2026-06-08T23:22:37.5467190Z         "doc": {
2026-06-08T23:22:37.5467532Z           "complete": false,
2026-06-08T23:22:37.5467837Z           "evidence": []
2026-06-08T23:22:37.5468119Z         },
2026-06-08T23:22:37.5468404Z         "impl": {
2026-06-08T23:22:37.5468714Z           "complete": true,
2026-06-08T23:22:37.5469005Z           "evidence": [
2026-06-08T23:22:37.5469291Z             {
2026-06-08T23:22:37.5469726Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.5470034Z               "line": 351
2026-06-08T23:22:37.5470320Z             },
2026-06-08T23:22:37.5470601Z             {
2026-06-08T23:22:37.5471012Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5471303Z               "line": 18
2026-06-08T23:22:37.5471588Z             },
2026-06-08T23:22:37.5471870Z             {
2026-06-08T23:22:37.5472286Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5472593Z               "line": 63
2026-06-08T23:22:37.5472872Z             },
2026-06-08T23:22:37.5473158Z             {
2026-06-08T23:22:37.5473574Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5473874Z               "line": 92
2026-06-08T23:22:37.5474160Z             },
2026-06-08T23:22:37.5474441Z             {
2026-06-08T23:22:37.5474853Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5475150Z               "line": 167
2026-06-08T23:22:37.5475444Z             },
2026-06-08T23:22:37.5475720Z             {
2026-06-08T23:22:37.5476127Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5476427Z               "line": 179
2026-06-08T23:22:37.5476718Z             },
2026-06-08T23:22:37.5477100Z             {
2026-06-08T23:22:37.5477551Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.5477858Z               "line": 114
2026-06-08T23:22:37.5478135Z             },
2026-06-08T23:22:37.5478421Z             {
2026-06-08T23:22:37.5478826Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5479226Z               "line": 22
2026-06-08T23:22:37.5479517Z             },
2026-06-08T23:22:37.5479794Z             {
2026-06-08T23:22:37.5480199Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5480484Z               "line": 129
2026-06-08T23:22:37.5480770Z             },
2026-06-08T23:22:37.5481043Z             {
2026-06-08T23:22:37.5481544Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5481838Z               "line": 156
2026-06-08T23:22:37.5482125Z             },
2026-06-08T23:22:37.5482411Z             {
2026-06-08T23:22:37.5482813Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5483115Z               "line": 178
2026-06-08T23:22:37.5483403Z             },
2026-06-08T23:22:37.5483685Z             {
2026-06-08T23:22:37.5484086Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5484386Z               "line": 203
2026-06-08T23:22:37.5484677Z             },
2026-06-08T23:22:37.5484967Z             {
2026-06-08T23:22:37.5485375Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5485677Z               "line": 229
2026-06-08T23:22:37.5485961Z             },
2026-06-08T23:22:37.5486242Z             {
2026-06-08T23:22:37.5486643Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5487040Z               "line": 252
2026-06-08T23:22:37.5487336Z             },
2026-06-08T23:22:37.5487612Z             {
2026-06-08T23:22:37.5488017Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.5488306Z               "line": 81
2026-06-08T23:22:37.5488590Z             },
2026-06-08T23:22:37.5488881Z             {
2026-06-08T23:22:37.5489234Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5489530Z               "line": 3663
2026-06-08T23:22:37.5489815Z             },
2026-06-08T23:22:37.5490101Z             {
2026-06-08T23:22:37.5490449Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5490759Z               "line": 3786
2026-06-08T23:22:37.5491040Z             },
2026-06-08T23:22:37.5491326Z             {
2026-06-08T23:22:37.5491674Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5491979Z               "line": 3947
2026-06-08T23:22:37.5492270Z             },
2026-06-08T23:22:37.5492542Z             {
2026-06-08T23:22:37.5492885Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5493195Z               "line": 4329
2026-06-08T23:22:37.5493468Z             }
2026-06-08T23:22:37.5493742Z           ]
2026-06-08T23:22:37.5494017Z         },
2026-06-08T23:22:37.5494303Z         "int": {
2026-06-08T23:22:37.5494617Z           "complete": true,
2026-06-08T23:22:37.5494917Z           "evidence": [
2026-06-08T23:22:37.5495199Z             {
2026-06-08T23:22:37.5495630Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-08T23:22:37.5495935Z               "line": 16
2026-06-08T23:22:37.5496218Z             },
2026-06-08T23:22:37.5496507Z             {
2026-06-08T23:22:37.5496893Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-08T23:22:37.5497280Z               "line": 15
2026-06-08T23:22:37.5497557Z             }
2026-06-08T23:22:37.5497843Z           ]
2026-06-08T23:22:37.5498128Z         },
2026-06-08T23:22:37.5498419Z         "unit": {
2026-06-08T23:22:37.5498733Z           "complete": true,
2026-06-08T23:22:37.5499040Z           "evidence": [
2026-06-08T23:22:37.5499321Z             {
2026-06-08T23:22:37.5499736Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5500042Z               "line": 246
2026-06-08T23:22:37.5500332Z             },
2026-06-08T23:22:37.5500614Z             {
2026-06-08T23:22:37.5501034Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5501329Z               "line": 306
2026-06-08T23:22:37.5501619Z             },
2026-06-08T23:22:37.5501895Z             {
2026-06-08T23:22:37.5502310Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-08T23:22:37.5502730Z               "line": 362
2026-06-08T23:22:37.5503012Z             },
2026-06-08T23:22:37.5503303Z             {
2026-06-08T23:22:37.5503717Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5504028Z               "line": 268
2026-06-08T23:22:37.5504308Z             },
2026-06-08T23:22:37.5504591Z             {
2026-06-08T23:22:37.5505096Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.5505397Z               "line": 291
2026-06-08T23:22:37.5505683Z             },
2026-06-08T23:22:37.5505969Z             {
2026-06-08T23:22:37.5506375Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.5506660Z               "line": 491
2026-06-08T23:22:37.5506935Z             },
2026-06-08T23:22:37.5507310Z             {
2026-06-08T23:22:37.5507691Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5507997Z               "line": 5118
2026-06-08T23:22:37.5508278Z             },
2026-06-08T23:22:37.5508578Z             {
2026-06-08T23:22:37.5508927Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5509241Z               "line": 5242
2026-06-08T23:22:37.5509520Z             },
2026-06-08T23:22:37.5509802Z             {
2026-06-08T23:22:37.5510159Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5510459Z               "line": 5829
2026-06-08T23:22:37.5510755Z             },
2026-06-08T23:22:37.5511037Z             {
2026-06-08T23:22:37.5511394Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5511695Z               "line": 5894
2026-06-08T23:22:37.5511981Z             }
2026-06-08T23:22:37.5512265Z           ]
2026-06-08T23:22:37.5512541Z         }
2026-06-08T23:22:37.5512827Z       }
2026-06-08T23:22:37.5513094Z     },
2026-06-08T23:22:37.5513372Z     {
2026-06-08T23:22:37.5513681Z       "id": "REQ-FRONT-1",
2026-06-08T23:22:37.5514268Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-08T23:22:37.5514583Z       "requiredStages": [],
2026-06-08T23:22:37.5514887Z       "stages": {
2026-06-08T23:22:37.5515176Z         "doc": {
2026-06-08T23:22:37.5515486Z           "complete": false,
2026-06-08T23:22:37.5515796Z           "evidence": []
2026-06-08T23:22:37.5516077Z         },
2026-06-08T23:22:37.5516362Z         "impl": {
2026-06-08T23:22:37.5516677Z           "complete": false,
2026-06-08T23:22:37.5517074Z           "evidence": []
2026-06-08T23:22:37.5517367Z         },
2026-06-08T23:22:37.5517651Z         "int": {
2026-06-08T23:22:37.5517970Z           "complete": false,
2026-06-08T23:22:37.5518275Z           "evidence": []
2026-06-08T23:22:37.5518552Z         },
2026-06-08T23:22:37.5518843Z         "unit": {
2026-06-08T23:22:37.5519153Z           "complete": false,
2026-06-08T23:22:37.5519458Z           "evidence": []
2026-06-08T23:22:37.5519744Z         }
2026-06-08T23:22:37.5520029Z       }
2026-06-08T23:22:37.5520309Z     },
2026-06-08T23:22:37.5520585Z     {
2026-06-08T23:22:37.5520953Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-08T23:22:37.5521540Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-08T23:22:37.5521855Z       "requiredStages": [
2026-06-08T23:22:37.5522145Z         "impl",
2026-06-08T23:22:37.5522430Z         "unit"
2026-06-08T23:22:37.5522710Z       ],
2026-06-08T23:22:37.5523002Z       "stages": {
2026-06-08T23:22:37.5523298Z         "doc": {
2026-06-08T23:22:37.5523603Z           "complete": false,
2026-06-08T23:22:37.5523907Z           "evidence": []
2026-06-08T23:22:37.5524185Z         },
2026-06-08T23:22:37.5524476Z         "impl": {
2026-06-08T23:22:37.5524786Z           "complete": true,
2026-06-08T23:22:37.5525082Z           "evidence": [
2026-06-08T23:22:37.5525371Z             {
2026-06-08T23:22:37.5528669Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.5529003Z               "line": 149
2026-06-08T23:22:37.5529285Z             },
2026-06-08T23:22:37.5529567Z             {
2026-06-08T23:22:37.5530128Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.5530432Z               "line": 18
2026-06-08T23:22:37.5530716Z             },
2026-06-08T23:22:37.5530997Z             {
2026-06-08T23:22:37.5531388Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.5531684Z               "line": 98
2026-06-08T23:22:37.5531965Z             }
2026-06-08T23:22:37.5532351Z           ]
2026-06-08T23:22:37.5532628Z         },
2026-06-08T23:22:37.5532914Z         "int": {
2026-06-08T23:22:37.5533228Z           "complete": false,
2026-06-08T23:22:37.5533533Z           "evidence": []
2026-06-08T23:22:37.5533810Z         },
2026-06-08T23:22:37.5534096Z         "unit": {
2026-06-08T23:22:37.5534407Z           "complete": true,
2026-06-08T23:22:37.5534702Z           "evidence": [
2026-06-08T23:22:37.5534979Z             {
2026-06-08T23:22:37.5535389Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.5535694Z               "line": 565
2026-06-08T23:22:37.5535969Z             },
2026-06-08T23:22:37.5536262Z             {
2026-06-08T23:22:37.5536649Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.5537044Z               "line": 159
2026-06-08T23:22:37.5537330Z             },
2026-06-08T23:22:37.5537612Z             {
2026-06-08T23:22:37.5537993Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.5538298Z               "line": 231
2026-06-08T23:22:37.5538583Z             }
2026-06-08T23:22:37.5538863Z           ]
2026-06-08T23:22:37.5539134Z         }
2026-06-08T23:22:37.5539401Z       }
2026-06-08T23:22:37.5539663Z     },
2026-06-08T23:22:37.5539945Z     {
2026-06-08T23:22:37.5540316Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-08T23:22:37.5541768Z       "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-08T23:22:37.5542092Z       "requiredStages": [
2026-06-08T23:22:37.5542374Z         "impl",
2026-06-08T23:22:37.5542665Z         "unit"
2026-06-08T23:22:37.5542941Z       ],
2026-06-08T23:22:37.5543231Z       "stages": {
2026-06-08T23:22:37.5543512Z         "doc": {
2026-06-08T23:22:37.5543822Z           "complete": true,
2026-06-08T23:22:37.5544117Z           "evidence": [
2026-06-08T23:22:37.5544408Z             {
2026-06-08T23:22:37.5544780Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.5545094Z               "line": 218
2026-06-08T23:22:37.5545395Z             }
2026-06-08T23:22:37.5545681Z           ]
2026-06-08T23:22:37.5545963Z         },
2026-06-08T23:22:37.5546259Z         "impl": {
2026-06-08T23:22:37.5546572Z           "complete": true,
2026-06-08T23:22:37.5546876Z           "evidence": [
2026-06-08T23:22:37.5547238Z             {
2026-06-08T23:22:37.5547661Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.5547962Z               "line": 302
2026-06-08T23:22:37.5548248Z             },
2026-06-08T23:22:37.5548534Z             {
2026-06-08T23:22:37.5548948Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.5549251Z               "line": 257
2026-06-08T23:22:37.5549537Z             },
2026-06-08T23:22:37.5549823Z             {
2026-06-08T23:22:37.5550233Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.5550529Z               "line": 405
2026-06-08T23:22:37.5550824Z             },
2026-06-08T23:22:37.5551106Z             {
2026-06-08T23:22:37.5551496Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.5551793Z               "line": 77
2026-06-08T23:22:37.5552081Z             }
2026-06-08T23:22:37.5552361Z           ]
2026-06-08T23:22:37.5552643Z         },
2026-06-08T23:22:37.5552920Z         "int": {
2026-06-08T23:22:37.5553225Z           "complete": false,
2026-06-08T23:22:37.5553535Z           "evidence": []
2026-06-08T23:22:37.5553811Z         },
2026-06-08T23:22:37.5554102Z         "unit": {
2026-06-08T23:22:37.5554415Z           "complete": true,
2026-06-08T23:22:37.5554816Z           "evidence": [
2026-06-08T23:22:37.5555111Z             {
2026-06-08T23:22:37.5555522Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.5555809Z               "line": 478
2026-06-08T23:22:37.5556080Z             },
2026-06-08T23:22:37.5556360Z             {
2026-06-08T23:22:37.5556763Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.5557254Z               "line": 516
2026-06-08T23:22:37.5557554Z             },
2026-06-08T23:22:37.5557822Z             {
2026-06-08T23:22:37.5558212Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.5558503Z               "line": 166
2026-06-08T23:22:37.5558794Z             }
2026-06-08T23:22:37.5559089Z           ]
2026-06-08T23:22:37.5559367Z         }
2026-06-08T23:22:37.5559647Z       }
2026-06-08T23:22:37.5559920Z     },
2026-06-08T23:22:37.5560201Z     {
2026-06-08T23:22:37.5560594Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-08T23:22:37.5562593Z       "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-08T23:22:37.5562936Z       "requiredStages": [
2026-06-08T23:22:37.5563222Z         "impl",
2026-06-08T23:22:37.5563509Z         "unit"
2026-06-08T23:22:37.5563804Z       ],
2026-06-08T23:22:37.5564100Z       "stages": {
2026-06-08T23:22:37.5564381Z         "doc": {
2026-06-08T23:22:37.5564715Z           "complete": false,
2026-06-08T23:22:37.5565013Z           "evidence": []
2026-06-08T23:22:37.5565295Z         },
2026-06-08T23:22:37.5565590Z         "impl": {
2026-06-08T23:22:37.5565900Z           "complete": true,
2026-06-08T23:22:37.5566205Z           "evidence": [
2026-06-08T23:22:37.5566482Z             {
2026-06-08T23:22:37.5566897Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-08T23:22:37.5567280Z               "line": 22
2026-06-08T23:22:37.5567563Z             },
2026-06-08T23:22:37.5567852Z             {
2026-06-08T23:22:37.5568243Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.5568538Z               "line": 479
2026-06-08T23:22:37.5568810Z             },
2026-06-08T23:22:37.5569077Z             {
2026-06-08T23:22:37.5569497Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-08T23:22:37.5569793Z               "line": 17
2026-06-08T23:22:37.5570068Z             },
2026-06-08T23:22:37.5570338Z             {
2026-06-08T23:22:37.5570738Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-08T23:22:37.5571033Z               "line": 140
2026-06-08T23:22:37.5571306Z             },
2026-06-08T23:22:37.5571592Z             {
2026-06-08T23:22:37.5572012Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.5572312Z               "line": 194
2026-06-08T23:22:37.5572593Z             },
2026-06-08T23:22:37.5572872Z             {
2026-06-08T23:22:37.5573300Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.5573596Z               "line": 219
2026-06-08T23:22:37.5573863Z             },
2026-06-08T23:22:37.5574135Z             {
2026-06-08T23:22:37.5574564Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.5574860Z               "line": 245
2026-06-08T23:22:37.5575145Z             },
2026-06-08T23:22:37.5575427Z             {
2026-06-08T23:22:37.5575831Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.5576127Z               "line": 124
2026-06-08T23:22:37.5576414Z             },
2026-06-08T23:22:37.5576694Z             {
2026-06-08T23:22:37.5577167Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.5577467Z               "line": 224
2026-06-08T23:22:37.5577753Z             }
2026-06-08T23:22:37.5578028Z           ]
2026-06-08T23:22:37.5578309Z         },
2026-06-08T23:22:37.5578594Z         "int": {
2026-06-08T23:22:37.5578904Z           "complete": false,
2026-06-08T23:22:37.5579314Z           "evidence": []
2026-06-08T23:22:37.5579600Z         },
2026-06-08T23:22:37.5579881Z         "unit": {
2026-06-08T23:22:37.5580196Z           "complete": true,
2026-06-08T23:22:37.5580497Z           "evidence": [
2026-06-08T23:22:37.5580772Z             {
2026-06-08T23:22:37.5581190Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-08T23:22:37.5581579Z               "line": 62
2026-06-08T23:22:37.5581861Z             },
2026-06-08T23:22:37.5582152Z             {
2026-06-08T23:22:37.5582557Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-08T23:22:37.5582853Z               "line": 72
2026-06-08T23:22:37.5583133Z             },
2026-06-08T23:22:37.5583413Z             {
2026-06-08T23:22:37.5583822Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-08T23:22:37.5584113Z               "line": 84
2026-06-08T23:22:37.5584395Z             },
2026-06-08T23:22:37.5584681Z             {
2026-06-08T23:22:37.5585105Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.5585405Z               "line": 346
2026-06-08T23:22:37.5585686Z             },
2026-06-08T23:22:37.5585954Z             {
2026-06-08T23:22:37.5586354Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-08T23:22:37.5586654Z               "line": 274
2026-06-08T23:22:37.5586931Z             },
2026-06-08T23:22:37.5587288Z             {
2026-06-08T23:22:37.5587693Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-08T23:22:37.5587989Z               "line": 315
2026-06-08T23:22:37.5588265Z             },
2026-06-08T23:22:37.5588551Z             {
2026-06-08T23:22:37.5588953Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-08T23:22:37.5589249Z               "line": 353
2026-06-08T23:22:37.5589531Z             },
2026-06-08T23:22:37.5589812Z             {
2026-06-08T23:22:37.5590245Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.5590555Z               "line": 656
2026-06-08T23:22:37.5590842Z             },
2026-06-08T23:22:37.5591123Z             {
2026-06-08T23:22:37.5591525Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.5591825Z               "line": 397
2026-06-08T23:22:37.5592111Z             },
2026-06-08T23:22:37.5592393Z             {
2026-06-08T23:22:37.5592807Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.5593117Z               "line": 440
2026-06-08T23:22:37.5593399Z             }
2026-06-08T23:22:37.5593679Z           ]
2026-06-08T23:22:37.5593960Z         }
2026-06-08T23:22:37.5594235Z       }
2026-06-08T23:22:37.5594511Z     },
2026-06-08T23:22:37.5594788Z     {
2026-06-08T23:22:37.5595117Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-08T23:22:37.5595847Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-08T23:22:37.5596157Z       "requiredStages": [
2026-06-08T23:22:37.5596444Z         "impl",
2026-06-08T23:22:37.5596727Z         "unit"
2026-06-08T23:22:37.5597091Z       ],
2026-06-08T23:22:37.5597391Z       "stages": {
2026-06-08T23:22:37.5597677Z         "doc": {
2026-06-08T23:22:37.5597987Z           "complete": false,
2026-06-08T23:22:37.5598282Z           "evidence": []
2026-06-08T23:22:37.5598563Z         },
2026-06-08T23:22:37.5598849Z         "impl": {
2026-06-08T23:22:37.5599159Z           "complete": true,
2026-06-08T23:22:37.5599466Z           "evidence": [
2026-06-08T23:22:37.5599743Z             {
2026-06-08T23:22:37.5600133Z               "path": "crates/spt-term/src/reader.rs",
2026-06-08T23:22:37.5600429Z               "line": 169
2026-06-08T23:22:37.5600715Z             }
2026-06-08T23:22:37.5601001Z           ]
2026-06-08T23:22:37.5601284Z         },
2026-06-08T23:22:37.5601575Z         "int": {
2026-06-08T23:22:37.5601882Z           "complete": true,
2026-06-08T23:22:37.5602186Z           "evidence": [
2026-06-08T23:22:37.5602466Z             {
2026-06-08T23:22:37.5602854Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-08T23:22:37.5603249Z               "line": 44
2026-06-08T23:22:37.5603540Z             },
2026-06-08T23:22:37.5603817Z             {
2026-06-08T23:22:37.5604203Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-08T23:22:37.5604501Z               "line": 66
2026-06-08T23:22:37.5604776Z             }
2026-06-08T23:22:37.5605048Z           ]
2026-06-08T23:22:37.5605425Z         },
2026-06-08T23:22:37.5605711Z         "unit": {
2026-06-08T23:22:37.5606021Z           "complete": true,
2026-06-08T23:22:37.5606312Z           "evidence": [
2026-06-08T23:22:37.5606598Z             {
2026-06-08T23:22:37.5607061Z               "path": "crates/spt-term/src/reader.rs",
2026-06-08T23:22:37.5607365Z               "line": 186
2026-06-08T23:22:37.5607641Z             },
2026-06-08T23:22:37.5607922Z             {
2026-06-08T23:22:37.5608300Z               "path": "crates/spt-term/src/reader.rs",
2026-06-08T23:22:37.5608590Z               "line": 238
2026-06-08T23:22:37.5608876Z             },
2026-06-08T23:22:37.5609152Z             {
2026-06-08T23:22:37.5609525Z               "path": "crates/spt-term/src/reader.rs",
2026-06-08T23:22:37.5609818Z               "line": 266
2026-06-08T23:22:37.5610106Z             }
2026-06-08T23:22:37.5610379Z           ]
2026-06-08T23:22:37.5610651Z         }
2026-06-08T23:22:37.5610927Z       }
2026-06-08T23:22:37.5611200Z     },
2026-06-08T23:22:37.5611487Z     {
2026-06-08T23:22:37.5611872Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-08T23:22:37.5613365Z       "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-08T23:22:37.5613685Z       "requiredStages": [
2026-06-08T23:22:37.5613971Z         "impl",
2026-06-08T23:22:37.5614256Z         "unit",
2026-06-08T23:22:37.5614534Z         "int"
2026-06-08T23:22:37.5614814Z       ],
2026-06-08T23:22:37.5615094Z       "stages": {
2026-06-08T23:22:37.5615380Z         "doc": {
2026-06-08T23:22:37.5615694Z           "complete": false,
2026-06-08T23:22:37.5615999Z           "evidence": []
2026-06-08T23:22:37.5616281Z         },
2026-06-08T23:22:37.5616567Z         "impl": {
2026-06-08T23:22:37.5616892Z           "complete": true,
2026-06-08T23:22:37.5617263Z           "evidence": [
2026-06-08T23:22:37.5617545Z             {
2026-06-08T23:22:37.5617967Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5618268Z               "line": 150
2026-06-08T23:22:37.5618550Z             },
2026-06-08T23:22:37.5618826Z             {
2026-06-08T23:22:37.5619240Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5619537Z               "line": 174
2026-06-08T23:22:37.5619823Z             },
2026-06-08T23:22:37.5620104Z             {
2026-06-08T23:22:37.5620479Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.5620783Z               "line": 79
2026-06-08T23:22:37.5621063Z             },
2026-06-08T23:22:37.5621339Z             {
2026-06-08T23:22:37.5621693Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5621988Z               "line": 51
2026-06-08T23:22:37.5622270Z             },
2026-06-08T23:22:37.5622537Z             {
2026-06-08T23:22:37.5622916Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.5623205Z               "line": 154
2026-06-08T23:22:37.5623487Z             },
2026-06-08T23:22:37.5623782Z             {
2026-06-08T23:22:37.5624182Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5624483Z               "line": 27
2026-06-08T23:22:37.5624765Z             },
2026-06-08T23:22:37.5625046Z             {
2026-06-08T23:22:37.5625441Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5625739Z               "line": 79
2026-06-08T23:22:37.5626025Z             },
2026-06-08T23:22:37.5626302Z             {
2026-06-08T23:22:37.5626707Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5627083Z               "line": 102
2026-06-08T23:22:37.5627485Z             },
2026-06-08T23:22:37.5627771Z             {
2026-06-08T23:22:37.5628176Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.5628471Z               "line": 116
2026-06-08T23:22:37.5628752Z             }
2026-06-08T23:22:37.5629032Z           ]
2026-06-08T23:22:37.5629309Z         },
2026-06-08T23:22:37.5629696Z         "int": {
2026-06-08T23:22:37.5630001Z           "complete": true,
2026-06-08T23:22:37.5630301Z           "evidence": [
2026-06-08T23:22:37.5630582Z             {
2026-06-08T23:22:37.5631010Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-08T23:22:37.5631304Z               "line": 35
2026-06-08T23:22:37.5631585Z             }
2026-06-08T23:22:37.5631861Z           ]
2026-06-08T23:22:37.5632138Z         },
2026-06-08T23:22:37.5632425Z         "unit": {
2026-06-08T23:22:37.5632744Z           "complete": true,
2026-06-08T23:22:37.5633044Z           "evidence": [
2026-06-08T23:22:37.5633326Z             {
2026-06-08T23:22:37.5633742Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5634037Z               "line": 584
2026-06-08T23:22:37.5634319Z             },
2026-06-08T23:22:37.5634605Z             {
2026-06-08T23:22:37.5634982Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.5635286Z               "line": 351
2026-06-08T23:22:37.5635582Z             },
2026-06-08T23:22:37.5635860Z             {
2026-06-08T23:22:37.5636271Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5636571Z               "line": 124
2026-06-08T23:22:37.5636858Z             },
2026-06-08T23:22:37.5637224Z             {
2026-06-08T23:22:37.5637629Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5637934Z               "line": 143
2026-06-08T23:22:37.5638216Z             },
2026-06-08T23:22:37.5638501Z             {
2026-06-08T23:22:37.5638901Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5639220Z               "line": 160
2026-06-08T23:22:37.5639512Z             },
2026-06-08T23:22:37.5639793Z             {
2026-06-08T23:22:37.5640198Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5640498Z               "line": 187
2026-06-08T23:22:37.5640785Z             },
2026-06-08T23:22:37.5641066Z             {
2026-06-08T23:22:37.5641466Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-08T23:22:37.5641787Z               "line": 206
2026-06-08T23:22:37.5642068Z             },
2026-06-08T23:22:37.5642360Z             {
2026-06-08T23:22:37.5642760Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.5643065Z               "line": 229
2026-06-08T23:22:37.5643351Z             }
2026-06-08T23:22:37.5643633Z           ]
2026-06-08T23:22:37.5643919Z         }
2026-06-08T23:22:37.5644199Z       }
2026-06-08T23:22:37.5644479Z     },
2026-06-08T23:22:37.5644755Z     {
2026-06-08T23:22:37.5645156Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-08T23:22:37.5647493Z       "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-08T23:22:37.5647808Z       "requiredStages": [
2026-06-08T23:22:37.5648099Z         "impl",
2026-06-08T23:22:37.5648390Z         "unit"
2026-06-08T23:22:37.5648672Z       ],
2026-06-08T23:22:37.5648963Z       "stages": {
2026-06-08T23:22:37.5649250Z         "doc": {
2026-06-08T23:22:37.5649562Z           "complete": false,
2026-06-08T23:22:37.5649892Z           "evidence": []
2026-06-08T23:22:37.5650167Z         },
2026-06-08T23:22:37.5650478Z         "impl": {
2026-06-08T23:22:37.5650831Z           "complete": true,
2026-06-08T23:22:37.5651141Z           "evidence": [
2026-06-08T23:22:37.5651427Z             {
2026-06-08T23:22:37.5651842Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5652277Z               "line": 222
2026-06-08T23:22:37.5652568Z             },
2026-06-08T23:22:37.5652854Z             {
2026-06-08T23:22:37.5653263Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.5653564Z               "line": 389
2026-06-08T23:22:37.5653859Z             }
2026-06-08T23:22:37.5654141Z           ]
2026-06-08T23:22:37.5654423Z         },
2026-06-08T23:22:37.5654825Z         "int": {
2026-06-08T23:22:37.5655172Z           "complete": false,
2026-06-08T23:22:37.5655492Z           "evidence": []
2026-06-08T23:22:37.5655792Z         },
2026-06-08T23:22:37.5656093Z         "unit": {
2026-06-08T23:22:37.5656411Z           "complete": true,
2026-06-08T23:22:37.5656740Z           "evidence": [
2026-06-08T23:22:37.5657192Z             {
2026-06-08T23:22:37.5657650Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-08T23:22:37.5657958Z               "line": 161
2026-06-08T23:22:37.5658240Z             }
2026-06-08T23:22:37.5658531Z           ]
2026-06-08T23:22:37.5658822Z         }
2026-06-08T23:22:37.5659113Z       }
2026-06-08T23:22:37.5659394Z     },
2026-06-08T23:22:37.5659674Z     {
2026-06-08T23:22:37.5660021Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-08T23:22:37.5660632Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-08T23:22:37.5660956Z       "requiredStages": [
2026-06-08T23:22:37.5661252Z         "impl",
2026-06-08T23:22:37.5661552Z         "unit"
2026-06-08T23:22:37.5661838Z       ],
2026-06-08T23:22:37.5662139Z       "stages": {
2026-06-08T23:22:37.5662431Z         "doc": {
2026-06-08T23:22:37.5662748Z           "complete": false,
2026-06-08T23:22:37.5663062Z           "evidence": []
2026-06-08T23:22:37.5663343Z         },
2026-06-08T23:22:37.5663634Z         "impl": {
2026-06-08T23:22:37.5663949Z           "complete": true,
2026-06-08T23:22:37.5664253Z           "evidence": [
2026-06-08T23:22:37.5664544Z             {
2026-06-08T23:22:37.5664936Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5665239Z               "line": 40
2026-06-08T23:22:37.5665527Z             },
2026-06-08T23:22:37.5665818Z             {
2026-06-08T23:22:37.5666229Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5666539Z               "line": 100
2026-06-08T23:22:37.5666835Z             },
2026-06-08T23:22:37.5667188Z             {
2026-06-08T23:22:37.5667597Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5667904Z               "line": 215
2026-06-08T23:22:37.5668185Z             },
2026-06-08T23:22:37.5668481Z             {
2026-06-08T23:22:37.5668876Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5669172Z               "line": 314
2026-06-08T23:22:37.5669464Z             }
2026-06-08T23:22:37.5669740Z           ]
2026-06-08T23:22:37.5670026Z         },
2026-06-08T23:22:37.5670317Z         "int": {
2026-06-08T23:22:37.5670634Z           "complete": false,
2026-06-08T23:22:37.5670939Z           "evidence": []
2026-06-08T23:22:37.5671230Z         },
2026-06-08T23:22:37.5671521Z         "unit": {
2026-06-08T23:22:37.5671836Z           "complete": true,
2026-06-08T23:22:37.5672136Z           "evidence": [
2026-06-08T23:22:37.5672417Z             {
2026-06-08T23:22:37.5672809Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5673104Z               "line": 352
2026-06-08T23:22:37.5673397Z             },
2026-06-08T23:22:37.5673674Z             {
2026-06-08T23:22:37.5674064Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5674365Z               "line": 409
2026-06-08T23:22:37.5674656Z             },
2026-06-08T23:22:37.5674942Z             {
2026-06-08T23:22:37.5675318Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5675632Z               "line": 458
2026-06-08T23:22:37.5675907Z             },
2026-06-08T23:22:37.5676198Z             {
2026-06-08T23:22:37.5676583Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5677071Z               "line": 479
2026-06-08T23:22:37.5677371Z             }
2026-06-08T23:22:37.5677661Z           ]
2026-06-08T23:22:37.5677947Z         }
2026-06-08T23:22:37.5678218Z       }
2026-06-08T23:22:37.5678497Z     },
2026-06-08T23:22:37.5678775Z     {
2026-06-08T23:22:37.5679174Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-08T23:22:37.5679608Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-08T23:22:37.5680028Z       "requiredStages": [
2026-06-08T23:22:37.5680319Z         "impl",
2026-06-08T23:22:37.5680605Z         "unit"
2026-06-08T23:22:37.5680892Z       ],
2026-06-08T23:22:37.5681184Z       "stages": {
2026-06-08T23:22:37.5681475Z         "doc": {
2026-06-08T23:22:37.5681800Z           "complete": false,
2026-06-08T23:22:37.5682105Z           "evidence": []
2026-06-08T23:22:37.5682396Z         },
2026-06-08T23:22:37.5682687Z         "impl": {
2026-06-08T23:22:37.5683012Z           "complete": true,
2026-06-08T23:22:37.5683311Z           "evidence": [
2026-06-08T23:22:37.5683607Z             {
2026-06-08T23:22:37.5684000Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5684309Z               "line": 113
2026-06-08T23:22:37.5684596Z             },
2026-06-08T23:22:37.5684877Z             {
2026-06-08T23:22:37.5685277Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5685578Z               "line": 208
2026-06-08T23:22:37.5685879Z             }
2026-06-08T23:22:37.5686178Z           ]
2026-06-08T23:22:37.5686458Z         },
2026-06-08T23:22:37.5686749Z         "int": {
2026-06-08T23:22:37.5687148Z           "complete": false,
2026-06-08T23:22:37.5687458Z           "evidence": []
2026-06-08T23:22:37.5687744Z         },
2026-06-08T23:22:37.5688035Z         "unit": {
2026-06-08T23:22:37.5688355Z           "complete": true,
2026-06-08T23:22:37.5688656Z           "evidence": [
2026-06-08T23:22:37.5688940Z             {
2026-06-08T23:22:37.5689330Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5689639Z               "line": 373
2026-06-08T23:22:37.5689920Z             },
2026-06-08T23:22:37.5690217Z             {
2026-06-08T23:22:37.5690607Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.5690903Z               "line": 436
2026-06-08T23:22:37.5691180Z             }
2026-06-08T23:22:37.5691457Z           ]
2026-06-08T23:22:37.5691745Z         }
2026-06-08T23:22:37.5692050Z       }
2026-06-08T23:22:37.5692331Z     },
2026-06-08T23:22:37.5692608Z     {
2026-06-08T23:22:37.5693004Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-08T23:22:37.5696539Z       "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-08T23:22:37.5696861Z       "requiredStages": [
2026-06-08T23:22:37.5697236Z         "impl",
2026-06-08T23:22:37.5697533Z         "unit"
2026-06-08T23:22:37.5697823Z       ],
2026-06-08T23:22:37.5698119Z       "stages": {
2026-06-08T23:22:37.5698404Z         "doc": {
2026-06-08T23:22:37.5698714Z           "complete": true,
2026-06-08T23:22:37.5699015Z           "evidence": [
2026-06-08T23:22:37.5699300Z             {
2026-06-08T23:22:37.5699689Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.5699994Z               "line": 204
2026-06-08T23:22:37.5700327Z             }
2026-06-08T23:22:37.5700613Z           ]
2026-06-08T23:22:37.5700895Z         },
2026-06-08T23:22:37.5701191Z         "impl": {
2026-06-08T23:22:37.5701505Z           "complete": true,
2026-06-08T23:22:37.5701806Z           "evidence": [
2026-06-08T23:22:37.5702093Z             {
2026-06-08T23:22:37.5702501Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5702802Z               "line": 410
2026-06-08T23:22:37.5703088Z             },
2026-06-08T23:22:37.5703474Z             {
2026-06-08T23:22:37.5703874Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5704184Z               "line": 502
2026-06-08T23:22:37.5704460Z             },
2026-06-08T23:22:37.5704742Z             {
2026-06-08T23:22:37.5705148Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.5705467Z               "line": 183
2026-06-08T23:22:37.5705870Z             }
2026-06-08T23:22:37.5706160Z           ]
2026-06-08T23:22:37.5706460Z         },
2026-06-08T23:22:37.5706751Z         "int": {
2026-06-08T23:22:37.5707148Z           "complete": false,
2026-06-08T23:22:37.5707475Z           "evidence": []
2026-06-08T23:22:37.5707758Z         },
2026-06-08T23:22:37.5708049Z         "unit": {
2026-06-08T23:22:37.5708364Z           "complete": true,
2026-06-08T23:22:37.5708674Z           "evidence": [
2026-06-08T23:22:37.5708959Z             {
2026-06-08T23:22:37.5709366Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5709686Z               "line": 540
2026-06-08T23:22:37.5709974Z             },
2026-06-08T23:22:37.5710258Z             {
2026-06-08T23:22:37.5710683Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-08T23:22:37.5710983Z               "line": 44
2026-06-08T23:22:37.5711274Z             },
2026-06-08T23:22:37.5711560Z             {
2026-06-08T23:22:37.5711947Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-08T23:22:37.5712248Z               "line": 54
2026-06-08T23:22:37.5712533Z             },
2026-06-08T23:22:37.5712818Z             {
2026-06-08T23:22:37.5713262Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-08T23:22:37.5713568Z               "line": 51
2026-06-08T23:22:37.5713863Z             }
2026-06-08T23:22:37.5714139Z           ]
2026-06-08T23:22:37.5714425Z         }
2026-06-08T23:22:37.5714706Z       }
2026-06-08T23:22:37.5714992Z     },
2026-06-08T23:22:37.5715273Z     {
2026-06-08T23:22:37.5715676Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-08T23:22:37.5716420Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-08T23:22:37.5716735Z       "requiredStages": [
2026-06-08T23:22:37.5717102Z         "impl",
2026-06-08T23:22:37.5717384Z         "unit"
2026-06-08T23:22:37.5717660Z       ],
2026-06-08T23:22:37.5717949Z       "stages": {
2026-06-08T23:22:37.5718271Z         "doc": {
2026-06-08T23:22:37.5718594Z           "complete": false,
2026-06-08T23:22:37.5718895Z           "evidence": []
2026-06-08T23:22:37.5719187Z         },
2026-06-08T23:22:37.5719473Z         "impl": {
2026-06-08T23:22:37.5719782Z           "complete": true,
2026-06-08T23:22:37.5720087Z           "evidence": [
2026-06-08T23:22:37.5720374Z             {
2026-06-08T23:22:37.5720771Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5721072Z               "line": 26
2026-06-08T23:22:37.5721363Z             },
2026-06-08T23:22:37.5721639Z             {
2026-06-08T23:22:37.5722049Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5722359Z               "line": 135
2026-06-08T23:22:37.5722644Z             },
2026-06-08T23:22:37.5722927Z             {
2026-06-08T23:22:37.5723349Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5723650Z               "line": 26
2026-06-08T23:22:37.5723941Z             },
2026-06-08T23:22:37.5724233Z             {
2026-06-08T23:22:37.5724661Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5724961Z               "line": 237
2026-06-08T23:22:37.5725247Z             }
2026-06-08T23:22:37.5725533Z           ]
2026-06-08T23:22:37.5725820Z         },
2026-06-08T23:22:37.5726109Z         "int": {
2026-06-08T23:22:37.5726437Z           "complete": false,
2026-06-08T23:22:37.5726746Z           "evidence": []
2026-06-08T23:22:37.5727109Z         },
2026-06-08T23:22:37.5727404Z         "unit": {
2026-06-08T23:22:37.5727719Z           "complete": true,
2026-06-08T23:22:37.5728134Z           "evidence": [
2026-06-08T23:22:37.5728419Z             {
2026-06-08T23:22:37.5728812Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5729113Z               "line": 161
2026-06-08T23:22:37.5729394Z             },
2026-06-08T23:22:37.5729671Z             {
2026-06-08T23:22:37.5730066Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5730467Z               "line": 170
2026-06-08T23:22:37.5730757Z             },
2026-06-08T23:22:37.5731047Z             {
2026-06-08T23:22:37.5731435Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5731741Z               "line": 179
2026-06-08T23:22:37.5732032Z             },
2026-06-08T23:22:37.5732318Z             {
2026-06-08T23:22:37.5732705Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5733005Z               "line": 190
2026-06-08T23:22:37.5733286Z             },
2026-06-08T23:22:37.5733576Z             {
2026-06-08T23:22:37.5733967Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5734272Z               "line": 199
2026-06-08T23:22:37.5734558Z             },
2026-06-08T23:22:37.5734845Z             {
2026-06-08T23:22:37.5735235Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5735531Z               "line": 216
2026-06-08T23:22:37.5735808Z             },
2026-06-08T23:22:37.5736098Z             {
2026-06-08T23:22:37.5736498Z               "path": "crates/spt-live/src/context.rs",
2026-06-08T23:22:37.5736801Z               "line": 242
2026-06-08T23:22:37.5737163Z             },
2026-06-08T23:22:37.5737454Z             {
2026-06-08T23:22:37.5737841Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.5738150Z               "line": 257
2026-06-08T23:22:37.5738432Z             },
2026-06-08T23:22:37.5738727Z             {
2026-06-08T23:22:37.5739112Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5739424Z               "line": 244
2026-06-08T23:22:37.5739720Z             },
2026-06-08T23:22:37.5739996Z             {
2026-06-08T23:22:37.5740412Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5740718Z               "line": 265
2026-06-08T23:22:37.5741003Z             },
2026-06-08T23:22:37.5746759Z             {
2026-06-08T23:22:37.5747341Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5747742Z               "line": 293
2026-06-08T23:22:37.5748033Z             },
2026-06-08T23:22:37.5748324Z             {
2026-06-08T23:22:37.5748759Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5749064Z               "line": 317
2026-06-08T23:22:37.5749350Z             },
2026-06-08T23:22:37.5749634Z             {
2026-06-08T23:22:37.5750072Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-08T23:22:37.5750367Z               "line": 327
2026-06-08T23:22:37.5750658Z             },
2026-06-08T23:22:37.5750938Z             {
2026-06-08T23:22:37.5751364Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.5751679Z               "line": 540
2026-06-08T23:22:37.5751965Z             }
2026-06-08T23:22:37.5752249Z           ]
2026-06-08T23:22:37.5752513Z         }
2026-06-08T23:22:37.5752785Z       }
2026-06-08T23:22:37.5753053Z     },
2026-06-08T23:22:37.5753334Z     {
2026-06-08T23:22:37.5753720Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-08T23:22:37.5754222Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-08T23:22:37.5754537Z       "requiredStages": [
2026-06-08T23:22:37.5754818Z         "impl",
2026-06-08T23:22:37.5755101Z         "unit"
2026-06-08T23:22:37.5755378Z       ],
2026-06-08T23:22:37.5755660Z       "stages": {
2026-06-08T23:22:37.5755946Z         "doc": {
2026-06-08T23:22:37.5756270Z           "complete": false,
2026-06-08T23:22:37.5756575Z           "evidence": []
2026-06-08T23:22:37.5756857Z         },
2026-06-08T23:22:37.5757233Z         "impl": {
2026-06-08T23:22:37.5757543Z           "complete": true,
2026-06-08T23:22:37.5757992Z           "evidence": [
2026-06-08T23:22:37.5758278Z             {
2026-06-08T23:22:37.5758666Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.5758956Z               "line": 25
2026-06-08T23:22:37.5759257Z             },
2026-06-08T23:22:37.5759542Z             {
2026-06-08T23:22:37.5759925Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.5760319Z               "line": 26
2026-06-08T23:22:37.5760602Z             },
2026-06-08T23:22:37.5760884Z             {
2026-06-08T23:22:37.5761276Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.5761571Z               "line": 159
2026-06-08T23:22:37.5761858Z             }
2026-06-08T23:22:37.5762133Z           ]
2026-06-08T23:22:37.5762414Z         },
2026-06-08T23:22:37.5762704Z         "int": {
2026-06-08T23:22:37.5763017Z           "complete": false,
2026-06-08T23:22:37.5763321Z           "evidence": []
2026-06-08T23:22:37.5763599Z         },
2026-06-08T23:22:37.5763903Z         "unit": {
2026-06-08T23:22:37.5764218Z           "complete": true,
2026-06-08T23:22:37.5764523Z           "evidence": [
2026-06-08T23:22:37.5764806Z             {
2026-06-08T23:22:37.5765172Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.5765477Z               "line": 184
2026-06-08T23:22:37.5765763Z             },
2026-06-08T23:22:37.5766059Z             {
2026-06-08T23:22:37.5766440Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.5766745Z               "line": 236
2026-06-08T23:22:37.5767130Z             },
2026-06-08T23:22:37.5767421Z             {
2026-06-08T23:22:37.5767812Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.5768112Z               "line": 186
2026-06-08T23:22:37.5768401Z             }
2026-06-08T23:22:37.5768682Z           ]
2026-06-08T23:22:37.5768963Z         }
2026-06-08T23:22:37.5769245Z       }
2026-06-08T23:22:37.5769516Z     },
2026-06-08T23:22:37.5769797Z     {
2026-06-08T23:22:37.5770155Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-08T23:22:37.5770707Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-08T23:22:37.5771024Z       "requiredStages": [
2026-06-08T23:22:37.5771315Z         "impl",
2026-06-08T23:22:37.5771602Z         "unit"
2026-06-08T23:22:37.5771879Z       ],
2026-06-08T23:22:37.5772174Z       "stages": {
2026-06-08T23:22:37.5772479Z         "doc": {
2026-06-08T23:22:37.5772799Z           "complete": false,
2026-06-08T23:22:37.5773100Z           "evidence": []
2026-06-08T23:22:37.5773393Z         },
2026-06-08T23:22:37.5773691Z         "impl": {
2026-06-08T23:22:37.5773996Z           "complete": true,
2026-06-08T23:22:37.5774301Z           "evidence": [
2026-06-08T23:22:37.5774587Z             {
2026-06-08T23:22:37.5774994Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5775290Z               "line": 48
2026-06-08T23:22:37.5775584Z             },
2026-06-08T23:22:37.5775885Z             {
2026-06-08T23:22:37.5776279Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5776585Z               "line": 55
2026-06-08T23:22:37.5776861Z             },
2026-06-08T23:22:37.5777224Z             {
2026-06-08T23:22:37.5777610Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5777912Z               "line": 74
2026-06-08T23:22:37.5778202Z             },
2026-06-08T23:22:37.5778488Z             {
2026-06-08T23:22:37.5778873Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5779171Z               "line": 91
2026-06-08T23:22:37.5779452Z             }
2026-06-08T23:22:37.5779742Z           ]
2026-06-08T23:22:37.5780024Z         },
2026-06-08T23:22:37.5780310Z         "int": {
2026-06-08T23:22:37.5780639Z           "complete": false,
2026-06-08T23:22:37.5780949Z           "evidence": []
2026-06-08T23:22:37.5781230Z         },
2026-06-08T23:22:37.5781523Z         "unit": {
2026-06-08T23:22:37.5781833Z           "complete": true,
2026-06-08T23:22:37.5782247Z           "evidence": [
2026-06-08T23:22:37.5782538Z             {
2026-06-08T23:22:37.5782934Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5783239Z               "line": 149
2026-06-08T23:22:37.5783525Z             },
2026-06-08T23:22:37.5783810Z             {
2026-06-08T23:22:37.5784199Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5784605Z               "line": 166
2026-06-08T23:22:37.5784890Z             },
2026-06-08T23:22:37.5785181Z             {
2026-06-08T23:22:37.5785578Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5785878Z               "line": 176
2026-06-08T23:22:37.5786179Z             },
2026-06-08T23:22:37.5786464Z             {
2026-06-08T23:22:37.5786869Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5787260Z               "line": 194
2026-06-08T23:22:37.5787560Z             },
2026-06-08T23:22:37.5787842Z             {
2026-06-08T23:22:37.5788241Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.5788546Z               "line": 207
2026-06-08T23:22:37.5788829Z             }
2026-06-08T23:22:37.5789130Z           ]
2026-06-08T23:22:37.5789418Z         }
2026-06-08T23:22:37.5789697Z       }
2026-06-08T23:22:37.5789993Z     },
2026-06-08T23:22:37.5790269Z     {
2026-06-08T23:22:37.5790651Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-08T23:22:37.5791281Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-08T23:22:37.5791601Z       "requiredStages": [
2026-06-08T23:22:37.5791894Z         "impl",
2026-06-08T23:22:37.5792178Z         "unit"
2026-06-08T23:22:37.5792454Z       ],
2026-06-08T23:22:37.5792745Z       "stages": {
2026-06-08T23:22:37.5793042Z         "doc": {
2026-06-08T23:22:37.5793356Z           "complete": false,
2026-06-08T23:22:37.5793656Z           "evidence": []
2026-06-08T23:22:37.5793948Z         },
2026-06-08T23:22:37.5794234Z         "impl": {
2026-06-08T23:22:37.5794549Z           "complete": true,
2026-06-08T23:22:37.5794848Z           "evidence": [
2026-06-08T23:22:37.5795128Z             {
2026-06-08T23:22:37.5795539Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5795845Z               "line": 373
2026-06-08T23:22:37.5796126Z             },
2026-06-08T23:22:37.5796407Z             {
2026-06-08T23:22:37.5796808Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5797170Z               "line": 26
2026-06-08T23:22:37.5797459Z             }
2026-06-08T23:22:37.5797744Z           ]
2026-06-08T23:22:37.5798035Z         },
2026-06-08T23:22:37.5798330Z         "int": {
2026-06-08T23:22:37.5798644Z           "complete": false,
2026-06-08T23:22:37.5798949Z           "evidence": []
2026-06-08T23:22:37.5799240Z         },
2026-06-08T23:22:37.5799560Z         "unit": {
2026-06-08T23:22:37.5799878Z           "complete": true,
2026-06-08T23:22:37.5800181Z           "evidence": [
2026-06-08T23:22:37.5800471Z             {
2026-06-08T23:22:37.5800872Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5801177Z               "line": 150
2026-06-08T23:22:37.5801464Z             },
2026-06-08T23:22:37.5801759Z             {
2026-06-08T23:22:37.5802146Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5802459Z               "line": 208
2026-06-08T23:22:37.5802752Z             }
2026-06-08T23:22:37.5803034Z           ]
2026-06-08T23:22:37.5803329Z         }
2026-06-08T23:22:37.5803611Z       }
2026-06-08T23:22:37.5803897Z     },
2026-06-08T23:22:37.5804174Z     {
2026-06-08T23:22:37.5804569Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-08T23:22:37.5808905Z       "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-08T23:22:37.5809244Z       "requiredStages": [
2026-06-08T23:22:37.5809539Z         "doc",
2026-06-08T23:22:37.5809839Z         "impl",
2026-06-08T23:22:37.5810125Z         "unit"
2026-06-08T23:22:37.5810414Z       ],
2026-06-08T23:22:37.5810707Z       "stages": {
2026-06-08T23:22:37.5811137Z         "doc": {
2026-06-08T23:22:37.5811447Z           "complete": true,
2026-06-08T23:22:37.5811757Z           "evidence": [
2026-06-08T23:22:37.5812048Z             {
2026-06-08T23:22:37.5812416Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.5812721Z               "line": 212
2026-06-08T23:22:37.5813009Z             }
2026-06-08T23:22:37.5813293Z           ]
2026-06-08T23:22:37.5813579Z         },
2026-06-08T23:22:37.5813880Z         "impl": {
2026-06-08T23:22:37.5814195Z           "complete": true,
2026-06-08T23:22:37.5814496Z           "evidence": [
2026-06-08T23:22:37.5814786Z             {
2026-06-08T23:22:37.5815235Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5815538Z               "line": 54
2026-06-08T23:22:37.5815832Z             },
2026-06-08T23:22:37.5816117Z             {
2026-06-08T23:22:37.5816532Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.5816842Z               "line": 328
2026-06-08T23:22:37.5817230Z             },
2026-06-08T23:22:37.5817511Z             {
2026-06-08T23:22:37.5817940Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5818241Z               "line": 36
2026-06-08T23:22:37.5818540Z             },
2026-06-08T23:22:37.5818840Z             {
2026-06-08T23:22:37.5819255Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5819564Z               "line": 59
2026-06-08T23:22:37.5819851Z             },
2026-06-08T23:22:37.5820138Z             {
2026-06-08T23:22:37.5820556Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5820862Z               "line": 83
2026-06-08T23:22:37.5821155Z             },
2026-06-08T23:22:37.5821436Z             {
2026-06-08T23:22:37.5821846Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5822155Z               "line": 140
2026-06-08T23:22:37.5822446Z             },
2026-06-08T23:22:37.5822728Z             {
2026-06-08T23:22:37.5823156Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5823456Z               "line": 159
2026-06-08T23:22:37.5823741Z             },
2026-06-08T23:22:37.5824031Z             {
2026-06-08T23:22:37.5824445Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5824746Z               "line": 384
2026-06-08T23:22:37.5825046Z             },
2026-06-08T23:22:37.5825332Z             {
2026-06-08T23:22:37.5825756Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5826061Z               "line": 526
2026-06-08T23:22:37.5826354Z             },
2026-06-08T23:22:37.5826683Z             {
2026-06-08T23:22:37.5827180Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5827494Z               "line": 572
2026-06-08T23:22:37.5827785Z             },
2026-06-08T23:22:37.5828071Z             {
2026-06-08T23:22:37.5828448Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.5828763Z               "line": 145
2026-06-08T23:22:37.5829042Z             },
2026-06-08T23:22:37.5829332Z             {
2026-06-08T23:22:37.5829686Z               "path": "crates/spt/src/main.rs",
2026-06-08T23:22:37.5829991Z               "line": 39
2026-06-08T23:22:37.5830282Z             }
2026-06-08T23:22:37.5830563Z           ]
2026-06-08T23:22:37.5830854Z         },
2026-06-08T23:22:37.5831135Z         "int": {
2026-06-08T23:22:37.5831454Z           "complete": false,
2026-06-08T23:22:37.5831757Z           "evidence": []
2026-06-08T23:22:37.5832048Z         },
2026-06-08T23:22:37.5832334Z         "unit": {
2026-06-08T23:22:37.5832753Z           "complete": true,
2026-06-08T23:22:37.5833073Z           "evidence": [
2026-06-08T23:22:37.5833363Z             {
2026-06-08T23:22:37.5833783Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5834096Z               "line": 760
2026-06-08T23:22:37.5834381Z             },
2026-06-08T23:22:37.5834671Z             {
2026-06-08T23:22:37.5835187Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5835488Z               "line": 801
2026-06-08T23:22:37.5835769Z             },
2026-06-08T23:22:37.5836088Z             {
2026-06-08T23:22:37.5836532Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.5836849Z               "line": 875
2026-06-08T23:22:37.5837215Z             }
2026-06-08T23:22:37.5837496Z           ]
2026-06-08T23:22:37.5837787Z         }
2026-06-08T23:22:37.5838064Z       }
2026-06-08T23:22:37.5838346Z     },
2026-06-08T23:22:37.5838626Z     {
2026-06-08T23:22:37.5839013Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-08T23:22:37.5839564Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-08T23:22:37.5839883Z       "requiredStages": [
2026-06-08T23:22:37.5840169Z         "impl",
2026-06-08T23:22:37.5840460Z         "unit"
2026-06-08T23:22:37.5840747Z       ],
2026-06-08T23:22:37.5841047Z       "stages": {
2026-06-08T23:22:37.5841333Z         "doc": {
2026-06-08T23:22:37.5841667Z           "complete": false,
2026-06-08T23:22:37.5841972Z           "evidence": []
2026-06-08T23:22:37.5842253Z         },
2026-06-08T23:22:37.5842547Z         "impl": {
2026-06-08T23:22:37.5842866Z           "complete": true,
2026-06-08T23:22:37.5843172Z           "evidence": [
2026-06-08T23:22:37.5843457Z             {
2026-06-08T23:22:37.5843881Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5844187Z               "line": 36
2026-06-08T23:22:37.5844469Z             },
2026-06-08T23:22:37.5844748Z             {
2026-06-08T23:22:37.5845170Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5845475Z               "line": 68
2026-06-08T23:22:37.5845762Z             }
2026-06-08T23:22:37.5846053Z           ]
2026-06-08T23:22:37.5846339Z         },
2026-06-08T23:22:37.5846634Z         "int": {
2026-06-08T23:22:37.5847035Z           "complete": false,
2026-06-08T23:22:37.5847343Z           "evidence": []
2026-06-08T23:22:37.5847646Z         },
2026-06-08T23:22:37.5847942Z         "unit": {
2026-06-08T23:22:37.5848251Z           "complete": true,
2026-06-08T23:22:37.5848561Z           "evidence": [
2026-06-08T23:22:37.5848876Z             {
2026-06-08T23:22:37.5849282Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5849583Z               "line": 143
2026-06-08T23:22:37.5849874Z             },
2026-06-08T23:22:37.5850157Z             {
2026-06-08T23:22:37.5850564Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5850864Z               "line": 160
2026-06-08T23:22:37.5851151Z             },
2026-06-08T23:22:37.5851450Z             {
2026-06-08T23:22:37.5851861Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5852181Z               "line": 168
2026-06-08T23:22:37.5852462Z             }
2026-06-08T23:22:37.5852755Z           ]
2026-06-08T23:22:37.5853034Z         }
2026-06-08T23:22:37.5853325Z       }
2026-06-08T23:22:37.5853606Z     },
2026-06-08T23:22:37.5853902Z     {
2026-06-08T23:22:37.5854303Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-08T23:22:37.5854894Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-08T23:22:37.5855217Z       "requiredStages": [
2026-06-08T23:22:37.5855506Z         "impl",
2026-06-08T23:22:37.5855796Z         "unit"
2026-06-08T23:22:37.5856083Z       ],
2026-06-08T23:22:37.5856378Z       "stages": {
2026-06-08T23:22:37.5856679Z         "doc": {
2026-06-08T23:22:37.5857065Z           "complete": false,
2026-06-08T23:22:37.5857379Z           "evidence": []
2026-06-08T23:22:37.5857666Z         },
2026-06-08T23:22:37.5858073Z         "impl": {
2026-06-08T23:22:37.5858387Z           "complete": true,
2026-06-08T23:22:37.5858687Z           "evidence": [
2026-06-08T23:22:37.5858984Z             {
2026-06-08T23:22:37.5859384Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5859694Z               "line": 107
2026-06-08T23:22:37.5859980Z             }
2026-06-08T23:22:37.5860361Z           ]
2026-06-08T23:22:37.5860646Z         },
2026-06-08T23:22:37.5860928Z         "int": {
2026-06-08T23:22:37.5861252Z           "complete": false,
2026-06-08T23:22:37.5861553Z           "evidence": []
2026-06-08T23:22:37.5861839Z         },
2026-06-08T23:22:37.5862125Z         "unit": {
2026-06-08T23:22:37.5862440Z           "complete": true,
2026-06-08T23:22:37.5862741Z           "evidence": [
2026-06-08T23:22:37.5863027Z             {
2026-06-08T23:22:37.5863438Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5863738Z               "line": 184
2026-06-08T23:22:37.5864034Z             },
2026-06-08T23:22:37.5864320Z             {
2026-06-08T23:22:37.5864730Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5865030Z               "line": 193
2026-06-08T23:22:37.5865321Z             },
2026-06-08T23:22:37.5865613Z             {
2026-06-08T23:22:37.5866019Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5866338Z               "line": 201
2026-06-08T23:22:37.5866619Z             },
2026-06-08T23:22:37.5866910Z             {
2026-06-08T23:22:37.5867420Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5867754Z               "line": 211
2026-06-08T23:22:37.5868050Z             },
2026-06-08T23:22:37.5868330Z             {
2026-06-08T23:22:37.5868738Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-08T23:22:37.5869033Z               "line": 221
2026-06-08T23:22:37.5869328Z             }
2026-06-08T23:22:37.5869610Z           ]
2026-06-08T23:22:37.5869901Z         }
2026-06-08T23:22:37.5870187Z       }
2026-06-08T23:22:37.5870464Z     },
2026-06-08T23:22:37.5870736Z     {
2026-06-08T23:22:37.5871098Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-08T23:22:37.5871631Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-08T23:22:37.5871946Z       "requiredStages": [
2026-06-08T23:22:37.5872237Z         "impl",
2026-06-08T23:22:37.5872532Z         "unit"
2026-06-08T23:22:37.5872814Z       ],
2026-06-08T23:22:37.5873114Z       "stages": {
2026-06-08T23:22:37.5873400Z         "doc": {
2026-06-08T23:22:37.5873719Z           "complete": false,
2026-06-08T23:22:37.5874022Z           "evidence": []
2026-06-08T23:22:37.5874308Z         },
2026-06-08T23:22:37.5874604Z         "impl": {
2026-06-08T23:22:37.5874918Z           "complete": true,
2026-06-08T23:22:37.5875223Z           "evidence": [
2026-06-08T23:22:37.5875505Z             {
2026-06-08T23:22:37.5875877Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5876173Z               "line": 14
2026-06-08T23:22:37.5876471Z             },
2026-06-08T23:22:37.5876760Z             {
2026-06-08T23:22:37.5877218Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5877547Z               "line": 62
2026-06-08T23:22:37.5877828Z             }
2026-06-08T23:22:37.5878119Z           ]
2026-06-08T23:22:37.5878406Z         },
2026-06-08T23:22:37.5878702Z         "int": {
2026-06-08T23:22:37.5879019Z           "complete": false,
2026-06-08T23:22:37.5879326Z           "evidence": []
2026-06-08T23:22:37.5879632Z         },
2026-06-08T23:22:37.5879913Z         "unit": {
2026-06-08T23:22:37.5880222Z           "complete": true,
2026-06-08T23:22:37.5880528Z           "evidence": [
2026-06-08T23:22:37.5880814Z             {
2026-06-08T23:22:37.5881196Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5881491Z               "line": 160
2026-06-08T23:22:37.5881776Z             },
2026-06-08T23:22:37.5882062Z             {
2026-06-08T23:22:37.5882541Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5882846Z               "line": 197
2026-06-08T23:22:37.5883140Z             },
2026-06-08T23:22:37.5883421Z             {
2026-06-08T23:22:37.5883780Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.5884071Z               "line": 219
2026-06-08T23:22:37.5884359Z             }
2026-06-08T23:22:37.5884748Z           ]
2026-06-08T23:22:37.5885025Z         }
2026-06-08T23:22:37.5885310Z       }
2026-06-08T23:22:37.5885583Z     },
2026-06-08T23:22:37.5885860Z     {
2026-06-08T23:22:37.5886198Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-08T23:22:37.5890359Z       "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-08T23:22:37.5890697Z       "requiredStages": [],
2026-06-08T23:22:37.5890994Z       "stages": {
2026-06-08T23:22:37.5891279Z         "doc": {
2026-06-08T23:22:37.5891603Z           "complete": true,
2026-06-08T23:22:37.5891908Z           "evidence": [
2026-06-08T23:22:37.5892195Z             {
2026-06-08T23:22:37.5892566Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.5892877Z               "line": 163
2026-06-08T23:22:37.5893162Z             }
2026-06-08T23:22:37.5893444Z           ]
2026-06-08T23:22:37.5893725Z         },
2026-06-08T23:22:37.5894011Z         "impl": {
2026-06-08T23:22:37.5894326Z           "complete": false,
2026-06-08T23:22:37.5894631Z           "evidence": []
2026-06-08T23:22:37.5894919Z         },
2026-06-08T23:22:37.5895208Z         "int": {
2026-06-08T23:22:37.5895518Z           "complete": false,
2026-06-08T23:22:37.5895828Z           "evidence": []
2026-06-08T23:22:37.5896110Z         },
2026-06-08T23:22:37.5896411Z         "unit": {
2026-06-08T23:22:37.5896720Z           "complete": false,
2026-06-08T23:22:37.5897092Z           "evidence": []
2026-06-08T23:22:37.5897377Z         }
2026-06-08T23:22:37.5897653Z       }
2026-06-08T23:22:37.5897933Z     },
2026-06-08T23:22:37.5898200Z     {
2026-06-08T23:22:37.5898581Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-08T23:22:37.5899315Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-08T23:22:37.5899634Z       "requiredStages": [
2026-06-08T23:22:37.5899930Z         "impl",
2026-06-08T23:22:37.5900219Z         "unit"
2026-06-08T23:22:37.5900500Z       ],
2026-06-08T23:22:37.5900791Z       "stages": {
2026-06-08T23:22:37.5901077Z         "doc": {
2026-06-08T23:22:37.5901392Z           "complete": false,
2026-06-08T23:22:37.5901692Z           "evidence": []
2026-06-08T23:22:37.5901978Z         },
2026-06-08T23:22:37.5902268Z         "impl": {
2026-06-08T23:22:37.5902578Z           "complete": true,
2026-06-08T23:22:37.5902882Z           "evidence": [
2026-06-08T23:22:37.5903173Z             {
2026-06-08T23:22:37.5903564Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5903869Z               "line": 76
2026-06-08T23:22:37.5904160Z             },
2026-06-08T23:22:37.5904437Z             {
2026-06-08T23:22:37.5904828Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5905138Z               "line": 167
2026-06-08T23:22:37.5905423Z             },
2026-06-08T23:22:37.5905707Z             {
2026-06-08T23:22:37.5906107Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5906407Z               "line": 233
2026-06-08T23:22:37.5906693Z             },
2026-06-08T23:22:37.5907056Z             {
2026-06-08T23:22:37.5907467Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5907791Z               "line": 272
2026-06-08T23:22:37.5908080Z             }
2026-06-08T23:22:37.5908368Z           ]
2026-06-08T23:22:37.5908655Z         },
2026-06-08T23:22:37.5909085Z         "int": {
2026-06-08T23:22:37.5909414Z           "complete": false,
2026-06-08T23:22:37.5909724Z           "evidence": []
2026-06-08T23:22:37.5910000Z         },
2026-06-08T23:22:37.5910290Z         "unit": {
2026-06-08T23:22:37.5910599Z           "complete": true,
2026-06-08T23:22:37.5910897Z           "evidence": [
2026-06-08T23:22:37.5911284Z             {
2026-06-08T23:22:37.5911670Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5911976Z               "line": 321
2026-06-08T23:22:37.5912257Z             },
2026-06-08T23:22:37.5912528Z             {
2026-06-08T23:22:37.5912911Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5913216Z               "line": 329
2026-06-08T23:22:37.5913500Z             },
2026-06-08T23:22:37.5913790Z             {
2026-06-08T23:22:37.5914172Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5914468Z               "line": 356
2026-06-08T23:22:37.5914753Z             },
2026-06-08T23:22:37.5915040Z             {
2026-06-08T23:22:37.5915427Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5915722Z               "line": 395
2026-06-08T23:22:37.5915997Z             },
2026-06-08T23:22:37.5916272Z             {
2026-06-08T23:22:37.5916676Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5917107Z               "line": 406
2026-06-08T23:22:37.5917398Z             },
2026-06-08T23:22:37.5917683Z             {
2026-06-08T23:22:37.5918080Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5918390Z               "line": 418
2026-06-08T23:22:37.5918678Z             },
2026-06-08T23:22:37.5918972Z             {
2026-06-08T23:22:37.5919355Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-08T23:22:37.5919650Z               "line": 442
2026-06-08T23:22:37.5919945Z             }
2026-06-08T23:22:37.5920236Z           ]
2026-06-08T23:22:37.5920522Z         }
2026-06-08T23:22:37.5920812Z       }
2026-06-08T23:22:37.5921098Z     },
2026-06-08T23:22:37.5921376Z     {
2026-06-08T23:22:37.5921724Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-08T23:22:37.5922217Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-08T23:22:37.5922536Z       "requiredStages": [
2026-06-08T23:22:37.5922841Z         "impl",
2026-06-08T23:22:37.5923127Z         "int"
2026-06-08T23:22:37.5923412Z       ],
2026-06-08T23:22:37.5923709Z       "stages": {
2026-06-08T23:22:37.5923993Z         "doc": {
2026-06-08T23:22:37.5924298Z           "complete": false,
2026-06-08T23:22:37.5924599Z           "evidence": []
2026-06-08T23:22:37.5924886Z         },
2026-06-08T23:22:37.5925176Z         "impl": {
2026-06-08T23:22:37.5925491Z           "complete": true,
2026-06-08T23:22:37.5925796Z           "evidence": [
2026-06-08T23:22:37.5926083Z             {
2026-06-08T23:22:37.5926482Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.5926776Z               "line": 22
2026-06-08T23:22:37.5927147Z             }
2026-06-08T23:22:37.5927428Z           ]
2026-06-08T23:22:37.5927719Z         },
2026-06-08T23:22:37.5928001Z         "int": {
2026-06-08T23:22:37.5928306Z           "complete": true,
2026-06-08T23:22:37.5928602Z           "evidence": [
2026-06-08T23:22:37.5928878Z             {
2026-06-08T23:22:37.5929282Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-08T23:22:37.5929566Z               "line": 18
2026-06-08T23:22:37.5929871Z             }
2026-06-08T23:22:37.5930156Z           ]
2026-06-08T23:22:37.5930443Z         },
2026-06-08T23:22:37.5930733Z         "unit": {
2026-06-08T23:22:37.5931048Z           "complete": false,
2026-06-08T23:22:37.5931372Z           "evidence": []
2026-06-08T23:22:37.5931658Z         }
2026-06-08T23:22:37.5931946Z       }
2026-06-08T23:22:37.5932234Z     },
2026-06-08T23:22:37.5932509Z     {
2026-06-08T23:22:37.5932896Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-08T23:22:37.5933639Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-08T23:22:37.5933968Z       "requiredStages": [
2026-06-08T23:22:37.5934259Z         "impl",
2026-06-08T23:22:37.5934553Z         "unit"
2026-06-08T23:22:37.5934849Z       ],
2026-06-08T23:22:37.5935140Z       "stages": {
2026-06-08T23:22:37.5935436Z         "doc": {
2026-06-08T23:22:37.5935750Z           "complete": false,
2026-06-08T23:22:37.5936156Z           "evidence": []
2026-06-08T23:22:37.5936442Z         },
2026-06-08T23:22:37.5936737Z         "impl": {
2026-06-08T23:22:37.5937127Z           "complete": true,
2026-06-08T23:22:37.5937430Z           "evidence": [
2026-06-08T23:22:37.5937712Z             {
2026-06-08T23:22:37.5938131Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5938436Z               "line": 372
2026-06-08T23:22:37.5938722Z             },
2026-06-08T23:22:37.5939009Z             {
2026-06-08T23:22:37.5939394Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5939698Z               "line": 27
2026-06-08T23:22:37.5939992Z             }
2026-06-08T23:22:37.5940259Z           ]
2026-06-08T23:22:37.5940541Z         },
2026-06-08T23:22:37.5940822Z         "int": {
2026-06-08T23:22:37.5941137Z           "complete": false,
2026-06-08T23:22:37.5941438Z           "evidence": []
2026-06-08T23:22:37.5941715Z         },
2026-06-08T23:22:37.5942005Z         "unit": {
2026-06-08T23:22:37.5942308Z           "complete": true,
2026-06-08T23:22:37.5942611Z           "evidence": [
2026-06-08T23:22:37.5942897Z             {
2026-06-08T23:22:37.5943313Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.5943608Z               "line": 817
2026-06-08T23:22:37.5943884Z             },
2026-06-08T23:22:37.5944175Z             {
2026-06-08T23:22:37.5944577Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.5944882Z               "line": 181
2026-06-08T23:22:37.5945166Z             }
2026-06-08T23:22:37.5945452Z           ]
2026-06-08T23:22:37.5945747Z         }
2026-06-08T23:22:37.5946030Z       }
2026-06-08T23:22:37.5946310Z     },
2026-06-08T23:22:37.5946588Z     {
2026-06-08T23:22:37.5947040Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-08T23:22:37.5947607Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-08T23:22:37.5947929Z       "requiredStages": [
2026-06-08T23:22:37.5948225Z         "impl",
2026-06-08T23:22:37.5948510Z         "unit"
2026-06-08T23:22:37.5948792Z       ],
2026-06-08T23:22:37.5949083Z       "stages": {
2026-06-08T23:22:37.5949378Z         "doc": {
2026-06-08T23:22:37.5949693Z           "complete": false,
2026-06-08T23:22:37.5950004Z           "evidence": []
2026-06-08T23:22:37.5950287Z         },
2026-06-08T23:22:37.5950571Z         "impl": {
2026-06-08T23:22:37.5950891Z           "complete": true,
2026-06-08T23:22:37.5951191Z           "evidence": [
2026-06-08T23:22:37.5951482Z             {
2026-06-08T23:22:37.5951868Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5952183Z               "line": 20
2026-06-08T23:22:37.5952469Z             },
2026-06-08T23:22:37.5952750Z             {
2026-06-08T23:22:37.5953142Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5953443Z               "line": 100
2026-06-08T23:22:37.5953729Z             },
2026-06-08T23:22:37.5954021Z             {
2026-06-08T23:22:37.5954454Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-08T23:22:37.5954754Z               "line": 68
2026-06-08T23:22:37.5955027Z             },
2026-06-08T23:22:37.5955312Z             {
2026-06-08T23:22:37.5955731Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-08T23:22:37.5956036Z               "line": 80
2026-06-08T23:22:37.5956322Z             }
2026-06-08T23:22:37.5956609Z           ]
2026-06-08T23:22:37.5956900Z         },
2026-06-08T23:22:37.5957262Z         "int": {
2026-06-08T23:22:37.5957572Z           "complete": false,
2026-06-08T23:22:37.5957876Z           "evidence": []
2026-06-08T23:22:37.5963794Z         },
2026-06-08T23:22:37.5964195Z         "unit": {
2026-06-08T23:22:37.5964519Z           "complete": true,
2026-06-08T23:22:37.5964824Z           "evidence": [
2026-06-08T23:22:37.5965111Z             {
2026-06-08T23:22:37.5965515Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5965821Z               "line": 152
2026-06-08T23:22:37.5966215Z             },
2026-06-08T23:22:37.5966497Z             {
2026-06-08T23:22:37.5966891Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5967303Z               "line": 175
2026-06-08T23:22:37.5967598Z             },
2026-06-08T23:22:37.5967879Z             {
2026-06-08T23:22:37.5968272Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5968591Z               "line": 186
2026-06-08T23:22:37.5968869Z             },
2026-06-08T23:22:37.5969167Z             {
2026-06-08T23:22:37.5969559Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5969870Z               "line": 202
2026-06-08T23:22:37.5970155Z             },
2026-06-08T23:22:37.5970484Z             {
2026-06-08T23:22:37.5970876Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-08T23:22:37.5971177Z               "line": 216
2026-06-08T23:22:37.5971465Z             },
2026-06-08T23:22:37.5971753Z             {
2026-06-08T23:22:37.5972174Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-08T23:22:37.5972480Z               "line": 137
2026-06-08T23:22:37.5972766Z             }
2026-06-08T23:22:37.5973052Z           ]
2026-06-08T23:22:37.5973327Z         }
2026-06-08T23:22:37.5973613Z       }
2026-06-08T23:22:37.5973894Z     },
2026-06-08T23:22:37.5974168Z     {
2026-06-08T23:22:37.5974511Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-08T23:22:37.5975351Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-08T23:22:37.5975676Z       "requiredStages": [
2026-06-08T23:22:37.5975972Z         "impl",
2026-06-08T23:22:37.5976267Z         "unit"
2026-06-08T23:22:37.5976538Z       ],
2026-06-08T23:22:37.5976822Z       "stages": {
2026-06-08T23:22:37.5977209Z         "doc": {
2026-06-08T23:22:37.5977524Z           "complete": true,
2026-06-08T23:22:37.5977824Z           "evidence": [
2026-06-08T23:22:37.5978096Z             {
2026-06-08T23:22:37.5978463Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.5978768Z               "line": 131
2026-06-08T23:22:37.5979055Z             }
2026-06-08T23:22:37.5979335Z           ]
2026-06-08T23:22:37.5979614Z         },
2026-06-08T23:22:37.5979900Z         "impl": {
2026-06-08T23:22:37.5980224Z           "complete": true,
2026-06-08T23:22:37.5980534Z           "evidence": [
2026-06-08T23:22:37.5980821Z             {
2026-06-08T23:22:37.5981192Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.5981493Z               "line": 65
2026-06-08T23:22:37.5981775Z             },
2026-06-08T23:22:37.5982063Z             {
2026-06-08T23:22:37.5982438Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5982739Z               "line": 17
2026-06-08T23:22:37.5983030Z             },
2026-06-08T23:22:37.5983321Z             {
2026-06-08T23:22:37.5983712Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.5984013Z               "line": 217
2026-06-08T23:22:37.5984304Z             },
2026-06-08T23:22:37.5984587Z             {
2026-06-08T23:22:37.5984972Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.5985278Z               "line": 317
2026-06-08T23:22:37.5985558Z             },
2026-06-08T23:22:37.5985849Z             {
2026-06-08T23:22:37.5986236Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.5986532Z               "line": 32
2026-06-08T23:22:37.5986827Z             },
2026-06-08T23:22:37.5987185Z             {
2026-06-08T23:22:37.5987565Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5987865Z               "line": 3754
2026-06-08T23:22:37.5988251Z             },
2026-06-08T23:22:37.5988532Z             {
2026-06-08T23:22:37.5988880Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.5989190Z               "line": 4022
2026-06-08T23:22:37.5989468Z             }
2026-06-08T23:22:37.5989759Z           ]
2026-06-08T23:22:37.5990043Z         },
2026-06-08T23:22:37.5990331Z         "int": {
2026-06-08T23:22:37.5990742Z           "complete": false,
2026-06-08T23:22:37.5991052Z           "evidence": []
2026-06-08T23:22:37.5991343Z         },
2026-06-08T23:22:37.5991639Z         "unit": {
2026-06-08T23:22:37.5991949Z           "complete": true,
2026-06-08T23:22:37.5992244Z           "evidence": [
2026-06-08T23:22:37.5992519Z             {
2026-06-08T23:22:37.5992893Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5993193Z               "line": 94
2026-06-08T23:22:37.5993484Z             },
2026-06-08T23:22:37.5993765Z             {
2026-06-08T23:22:37.5994143Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5994448Z               "line": 111
2026-06-08T23:22:37.5994738Z             },
2026-06-08T23:22:37.5995019Z             {
2026-06-08T23:22:37.5995393Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5995698Z               "line": 124
2026-06-08T23:22:37.5995984Z             },
2026-06-08T23:22:37.5996271Z             {
2026-06-08T23:22:37.5996642Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5997034Z               "line": 134
2026-06-08T23:22:37.5997325Z             },
2026-06-08T23:22:37.5997610Z             {
2026-06-08T23:22:37.5997981Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5998281Z               "line": 144
2026-06-08T23:22:37.5998568Z             },
2026-06-08T23:22:37.5998849Z             {
2026-06-08T23:22:37.5999216Z               "path": "crates/spt-proto/src/id.rs",
2026-06-08T23:22:37.5999517Z               "line": 156
2026-06-08T23:22:37.5999803Z             },
2026-06-08T23:22:37.6000088Z             {
2026-06-08T23:22:37.6000526Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6000829Z               "line": 714
2026-06-08T23:22:37.6001106Z             }
2026-06-08T23:22:37.6001397Z           ]
2026-06-08T23:22:37.6001678Z         }
2026-06-08T23:22:37.6001950Z       }
2026-06-08T23:22:37.6002237Z     },
2026-06-08T23:22:37.6002514Z     {
2026-06-08T23:22:37.6002858Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-08T23:22:37.6003287Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-08T23:22:37.6003606Z       "requiredStages": [
2026-06-08T23:22:37.6003883Z         "impl",
2026-06-08T23:22:37.6004165Z         "unit"
2026-06-08T23:22:37.6004447Z       ],
2026-06-08T23:22:37.6004737Z       "stages": {
2026-06-08T23:22:37.6005027Z         "doc": {
2026-06-08T23:22:37.6005327Z           "complete": false,
2026-06-08T23:22:37.6005631Z           "evidence": []
2026-06-08T23:22:37.6005910Z         },
2026-06-08T23:22:37.6006197Z         "impl": {
2026-06-08T23:22:37.6006502Z           "complete": true,
2026-06-08T23:22:37.6006807Z           "evidence": [
2026-06-08T23:22:37.6007198Z             {
2026-06-08T23:22:37.6007609Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.6007918Z               "line": 128
2026-06-08T23:22:37.6008199Z             }
2026-06-08T23:22:37.6008484Z           ]
2026-06-08T23:22:37.6008780Z         },
2026-06-08T23:22:37.6009067Z         "int": {
2026-06-08T23:22:37.6009382Z           "complete": false,
2026-06-08T23:22:37.6009681Z           "evidence": []
2026-06-08T23:22:37.6009972Z         },
2026-06-08T23:22:37.6010264Z         "unit": {
2026-06-08T23:22:37.6010560Z           "complete": true,
2026-06-08T23:22:37.6010870Z           "evidence": [
2026-06-08T23:22:37.6011149Z             {
2026-06-08T23:22:37.6011543Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.6011839Z               "line": 205
2026-06-08T23:22:37.6012125Z             }
2026-06-08T23:22:37.6012406Z           ]
2026-06-08T23:22:37.6012821Z         }
2026-06-08T23:22:37.6013112Z       }
2026-06-08T23:22:37.6013389Z     },
2026-06-08T23:22:37.6013677Z     {
2026-06-08T23:22:37.6014052Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-08T23:22:37.6014566Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-08T23:22:37.6014881Z       "requiredStages": [
2026-06-08T23:22:37.6015268Z         "impl",
2026-06-08T23:22:37.6015558Z         "unit"
2026-06-08T23:22:37.6015835Z       ],
2026-06-08T23:22:37.6016125Z       "stages": {
2026-06-08T23:22:37.6016409Z         "doc": {
2026-06-08T23:22:37.6016724Z           "complete": false,
2026-06-08T23:22:37.6017090Z           "evidence": []
2026-06-08T23:22:37.6017372Z         },
2026-06-08T23:22:37.6017658Z         "impl": {
2026-06-08T23:22:37.6017959Z           "complete": true,
2026-06-08T23:22:37.6018269Z           "evidence": [
2026-06-08T23:22:37.6018546Z             {
2026-06-08T23:22:37.6018932Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6019231Z               "line": 246
2026-06-08T23:22:37.6019518Z             },
2026-06-08T23:22:37.6019789Z             {
2026-06-08T23:22:37.6020161Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6020481Z               "line": 257
2026-06-08T23:22:37.6020772Z             },
2026-06-08T23:22:37.6021068Z             {
2026-06-08T23:22:37.6021454Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6021766Z               "line": 275
2026-06-08T23:22:37.6022055Z             }
2026-06-08T23:22:37.6022341Z           ]
2026-06-08T23:22:37.6022622Z         },
2026-06-08T23:22:37.6022908Z         "int": {
2026-06-08T23:22:37.6023218Z           "complete": false,
2026-06-08T23:22:37.6023518Z           "evidence": []
2026-06-08T23:22:37.6023805Z         },
2026-06-08T23:22:37.6024099Z         "unit": {
2026-06-08T23:22:37.6024403Z           "complete": true,
2026-06-08T23:22:37.6024703Z           "evidence": [
2026-06-08T23:22:37.6024994Z             {
2026-06-08T23:22:37.6025371Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6025670Z               "line": 299
2026-06-08T23:22:37.6025957Z             },
2026-06-08T23:22:37.6026244Z             {
2026-06-08T23:22:37.6026629Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6026937Z               "line": 320
2026-06-08T23:22:37.6027307Z             },
2026-06-08T23:22:37.6027599Z             {
2026-06-08T23:22:37.6027975Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6028276Z               "line": 547
2026-06-08T23:22:37.6028566Z             },
2026-06-08T23:22:37.6028848Z             {
2026-06-08T23:22:37.6029233Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6029533Z               "line": 558
2026-06-08T23:22:37.6029815Z             },
2026-06-08T23:22:37.6030097Z             {
2026-06-08T23:22:37.6030478Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6030783Z               "line": 571
2026-06-08T23:22:37.6031060Z             }
2026-06-08T23:22:37.6031346Z           ]
2026-06-08T23:22:37.6031623Z         }
2026-06-08T23:22:37.6031899Z       }
2026-06-08T23:22:37.6032164Z     },
2026-06-08T23:22:37.6032434Z     {
2026-06-08T23:22:37.6032787Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-08T23:22:37.6036832Z       "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-08T23:22:37.6037269Z       "requiredStages": [
2026-06-08T23:22:37.6037558Z         "impl",
2026-06-08T23:22:37.6037854Z         "unit"
2026-06-08T23:22:37.6038169Z       ],
2026-06-08T23:22:37.6038454Z       "stages": {
2026-06-08T23:22:37.6038750Z         "doc": {
2026-06-08T23:22:37.6039060Z           "complete": false,
2026-06-08T23:22:37.6039366Z           "evidence": []
2026-06-08T23:22:37.6039643Z         },
2026-06-08T23:22:37.6040079Z         "impl": {
2026-06-08T23:22:37.6040394Z           "complete": true,
2026-06-08T23:22:37.6040695Z           "evidence": [
2026-06-08T23:22:37.6040985Z             {
2026-06-08T23:22:37.6041405Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.6041705Z               "line": 666
2026-06-08T23:22:37.6042082Z             }
2026-06-08T23:22:37.6042367Z           ]
2026-06-08T23:22:37.6042648Z         },
2026-06-08T23:22:37.6042929Z         "int": {
2026-06-08T23:22:37.6043238Z           "complete": false,
2026-06-08T23:22:37.6043543Z           "evidence": []
2026-06-08T23:22:37.6043829Z         },
2026-06-08T23:22:37.6044111Z         "unit": {
2026-06-08T23:22:37.6044425Z           "complete": true,
2026-06-08T23:22:37.6044721Z           "evidence": [
2026-06-08T23:22:37.6045001Z             {
2026-06-08T23:22:37.6045415Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.6045714Z               "line": 780
2026-06-08T23:22:37.6046014Z             }
2026-06-08T23:22:37.6046290Z           ]
2026-06-08T23:22:37.6046571Z         }
2026-06-08T23:22:37.6046858Z       }
2026-06-08T23:22:37.6047229Z     },
2026-06-08T23:22:37.6047520Z     {
2026-06-08T23:22:37.6047863Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-08T23:22:37.6048576Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-08T23:22:37.6048891Z       "requiredStages": [
2026-06-08T23:22:37.6049176Z         "impl",
2026-06-08T23:22:37.6049467Z         "unit"
2026-06-08T23:22:37.6049739Z       ],
2026-06-08T23:22:37.6050034Z       "stages": {
2026-06-08T23:22:37.6050311Z         "doc": {
2026-06-08T23:22:37.6050640Z           "complete": false,
2026-06-08T23:22:37.6050940Z           "evidence": []
2026-06-08T23:22:37.6051222Z         },
2026-06-08T23:22:37.6051513Z         "impl": {
2026-06-08T23:22:37.6051818Z           "complete": true,
2026-06-08T23:22:37.6052123Z           "evidence": [
2026-06-08T23:22:37.6052404Z             {
2026-06-08T23:22:37.6052791Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6053092Z               "line": 14
2026-06-08T23:22:37.6053389Z             },
2026-06-08T23:22:37.6053702Z             {
2026-06-08T23:22:37.6054093Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.6054394Z               "line": 411
2026-06-08T23:22:37.6054681Z             }
2026-06-08T23:22:37.6054966Z           ]
2026-06-08T23:22:37.6055247Z         },
2026-06-08T23:22:37.6055528Z         "int": {
2026-06-08T23:22:37.6055884Z           "complete": false,
2026-06-08T23:22:37.6056182Z           "evidence": []
2026-06-08T23:22:37.6056464Z         },
2026-06-08T23:22:37.6056750Z         "unit": {
2026-06-08T23:22:37.6057132Z           "complete": true,
2026-06-08T23:22:37.6057437Z           "evidence": [
2026-06-08T23:22:37.6057718Z             {
2026-06-08T23:22:37.6058090Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6058389Z               "line": 130
2026-06-08T23:22:37.6058679Z             },
2026-06-08T23:22:37.6058960Z             {
2026-06-08T23:22:37.6059327Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6059660Z               "line": 138
2026-06-08T23:22:37.6059961Z             },
2026-06-08T23:22:37.6060247Z             {
2026-06-08T23:22:37.6060609Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6060895Z               "line": 146
2026-06-08T23:22:37.6061177Z             },
2026-06-08T23:22:37.6061462Z             {
2026-06-08T23:22:37.6061825Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6062120Z               "line": 154
2026-06-08T23:22:37.6062412Z             },
2026-06-08T23:22:37.6062688Z             {
2026-06-08T23:22:37.6063055Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6063351Z               "line": 162
2026-06-08T23:22:37.6063628Z             },
2026-06-08T23:22:37.6063901Z             {
2026-06-08T23:22:37.6064382Z               "path": "crates/spt/src/api/auth.rs",
2026-06-08T23:22:37.6064682Z               "line": 170
2026-06-08T23:22:37.6064964Z             }
2026-06-08T23:22:37.6065241Z           ]
2026-06-08T23:22:37.6065516Z         }
2026-06-08T23:22:37.6065798Z       }
2026-06-08T23:22:37.6066074Z     },
2026-06-08T23:22:37.6066355Z     {
2026-06-08T23:22:37.6066710Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-08T23:22:37.6069740Z       "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-08T23:22:37.6070064Z       "requiredStages": [
2026-06-08T23:22:37.6070350Z         "impl",
2026-06-08T23:22:37.6070640Z         "unit"
2026-06-08T23:22:37.6070921Z       ],
2026-06-08T23:22:37.6071208Z       "stages": {
2026-06-08T23:22:37.6071497Z         "doc": {
2026-06-08T23:22:37.6071840Z           "complete": false,
2026-06-08T23:22:37.6072146Z           "evidence": []
2026-06-08T23:22:37.6072423Z         },
2026-06-08T23:22:37.6072724Z         "impl": {
2026-06-08T23:22:37.6073037Z           "complete": true,
2026-06-08T23:22:37.6073334Z           "evidence": [
2026-06-08T23:22:37.6073620Z             {
2026-06-08T23:22:37.6074096Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6074429Z               "line": 34
2026-06-08T23:22:37.6074712Z             }
2026-06-08T23:22:37.6074999Z           ]
2026-06-08T23:22:37.6075281Z         },
2026-06-08T23:22:37.6075562Z         "int": {
2026-06-08T23:22:37.6075877Z           "complete": false,
2026-06-08T23:22:37.6076178Z           "evidence": []
2026-06-08T23:22:37.6076464Z         },
2026-06-08T23:22:37.6076759Z         "unit": {
2026-06-08T23:22:37.6077171Z           "complete": true,
2026-06-08T23:22:37.6077476Z           "evidence": [
2026-06-08T23:22:37.6077753Z             {
2026-06-08T23:22:37.6078252Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6078552Z               "line": 188
2026-06-08T23:22:37.6078843Z             },
2026-06-08T23:22:37.6079119Z             {
2026-06-08T23:22:37.6079595Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6079903Z               "line": 200
2026-06-08T23:22:37.6080198Z             },
2026-06-08T23:22:37.6080485Z             {
2026-06-08T23:22:37.6080953Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6081254Z               "line": 211
2026-06-08T23:22:37.6081540Z             },
2026-06-08T23:22:37.6081825Z             {
2026-06-08T23:22:37.6082293Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6082588Z               "line": 253
2026-06-08T23:22:37.6082874Z             },
2026-06-08T23:22:37.6083155Z             {
2026-06-08T23:22:37.6083622Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6083927Z               "line": 277
2026-06-08T23:22:37.6084209Z             },
2026-06-08T23:22:37.6084486Z             {
2026-06-08T23:22:37.6084937Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6085249Z               "line": 300
2026-06-08T23:22:37.6085522Z             },
2026-06-08T23:22:37.6085812Z             {
2026-06-08T23:22:37.6086284Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-08T23:22:37.6086579Z               "line": 316
2026-06-08T23:22:37.6086857Z             }
2026-06-08T23:22:37.6087218Z           ]
2026-06-08T23:22:37.6087508Z         }
2026-06-08T23:22:37.6087788Z       }
2026-06-08T23:22:37.6088069Z     },
2026-06-08T23:22:37.6088350Z     {
2026-06-08T23:22:37.6088727Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-08T23:22:37.6090650Z       "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-08T23:22:37.6090970Z       "requiredStages": [
2026-06-08T23:22:37.6091260Z         "impl",
2026-06-08T23:22:37.6091546Z         "unit"
2026-06-08T23:22:37.6091829Z       ],
2026-06-08T23:22:37.6092124Z       "stages": {
2026-06-08T23:22:37.6092405Z         "doc": {
2026-06-08T23:22:37.6092839Z           "complete": false,
2026-06-08T23:22:37.6093138Z           "evidence": []
2026-06-08T23:22:37.6093420Z         },
2026-06-08T23:22:37.6093705Z         "impl": {
2026-06-08T23:22:37.6094015Z           "complete": true,
2026-06-08T23:22:37.6094316Z           "evidence": [
2026-06-08T23:22:37.6094587Z             {
2026-06-08T23:22:37.6095013Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6095308Z               "line": 29
2026-06-08T23:22:37.6095592Z             },
2026-06-08T23:22:37.6095871Z             {
2026-06-08T23:22:37.6096267Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6096577Z               "line": 154
2026-06-08T23:22:37.6096868Z             },
2026-06-08T23:22:37.6097255Z             {
2026-06-08T23:22:37.6097641Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6097951Z               "line": 173
2026-06-08T23:22:37.6098254Z             },
2026-06-08T23:22:37.6098533Z             {
2026-06-08T23:22:37.6098934Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6099235Z               "line": 200
2026-06-08T23:22:37.6099526Z             }
2026-06-08T23:22:37.6099807Z           ]
2026-06-08T23:22:37.6100093Z         },
2026-06-08T23:22:37.6100384Z         "int": {
2026-06-08T23:22:37.6100697Z           "complete": false,
2026-06-08T23:22:37.6101009Z           "evidence": []
2026-06-08T23:22:37.6101290Z         },
2026-06-08T23:22:37.6101581Z         "unit": {
2026-06-08T23:22:37.6101901Z           "complete": true,
2026-06-08T23:22:37.6102202Z           "evidence": [
2026-06-08T23:22:37.6102487Z             {
2026-06-08T23:22:37.6102878Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6103183Z               "line": 276
2026-06-08T23:22:37.6103469Z             },
2026-06-08T23:22:37.6103756Z             {
2026-06-08T23:22:37.6104136Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6104437Z               "line": 291
2026-06-08T23:22:37.6104738Z             },
2026-06-08T23:22:37.6105018Z             {
2026-06-08T23:22:37.6105409Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6105710Z               "line": 310
2026-06-08T23:22:37.6106000Z             },
2026-06-08T23:22:37.6106290Z             {
2026-06-08T23:22:37.6106675Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6107061Z               "line": 326
2026-06-08T23:22:37.6107347Z             },
2026-06-08T23:22:37.6107647Z             {
2026-06-08T23:22:37.6108043Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6108353Z               "line": 385
2026-06-08T23:22:37.6108638Z             },
2026-06-08T23:22:37.6108922Z             {
2026-06-08T23:22:37.6109298Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6109627Z               "line": 399
2026-06-08T23:22:37.6109914Z             },
2026-06-08T23:22:37.6110195Z             {
2026-06-08T23:22:37.6110590Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6110901Z               "line": 410
2026-06-08T23:22:37.6111190Z             },
2026-06-08T23:22:37.6111480Z             {
2026-06-08T23:22:37.6111865Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6112174Z               "line": 421
2026-06-08T23:22:37.6112457Z             }
2026-06-08T23:22:37.6112748Z           ]
2026-06-08T23:22:37.6113034Z         }
2026-06-08T23:22:37.6113325Z       }
2026-06-08T23:22:37.6113607Z     },
2026-06-08T23:22:37.6113883Z     {
2026-06-08T23:22:37.6114278Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-08T23:22:37.6116438Z       "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-08T23:22:37.6116770Z       "requiredStages": [
2026-06-08T23:22:37.6117140Z         "impl",
2026-06-08T23:22:37.6117427Z         "unit"
2026-06-08T23:22:37.6117836Z       ],
2026-06-08T23:22:37.6118131Z       "stages": {
2026-06-08T23:22:37.6118423Z         "doc": {
2026-06-08T23:22:37.6118747Z           "complete": false,
2026-06-08T23:22:37.6119057Z           "evidence": []
2026-06-08T23:22:37.6119346Z         },
2026-06-08T23:22:37.6119639Z         "impl": {
2026-06-08T23:22:37.6119954Z           "complete": true,
2026-06-08T23:22:37.6120255Z           "evidence": [
2026-06-08T23:22:37.6120540Z             {
2026-06-08T23:22:37.6120975Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6121276Z               "line": 27
2026-06-08T23:22:37.6121600Z             },
2026-06-08T23:22:37.6121885Z             {
2026-06-08T23:22:37.6122326Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6122626Z               "line": 110
2026-06-08T23:22:37.6122917Z             },
2026-06-08T23:22:37.6123199Z             {
2026-06-08T23:22:37.6123641Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6123951Z               "line": 153
2026-06-08T23:22:37.6124237Z             },
2026-06-08T23:22:37.6124533Z             {
2026-06-08T23:22:37.6124970Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6125271Z               "line": 182
2026-06-08T23:22:37.6125548Z             },
2026-06-08T23:22:37.6125843Z             {
2026-06-08T23:22:37.6126335Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6126630Z               "line": 31
2026-06-08T23:22:37.6126911Z             },
2026-06-08T23:22:37.6127282Z             {
2026-06-08T23:22:37.6127781Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6128087Z               "line": 113
2026-06-08T23:22:37.6128381Z             },
2026-06-08T23:22:37.6128673Z             {
2026-06-08T23:22:37.6129154Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6129464Z               "line": 138
2026-06-08T23:22:37.6129759Z             }
2026-06-08T23:22:37.6130057Z           ]
2026-06-08T23:22:37.6130347Z         },
2026-06-08T23:22:37.6130639Z         "int": {
2026-06-08T23:22:37.6130958Z           "complete": false,
2026-06-08T23:22:37.6131272Z           "evidence": []
2026-06-08T23:22:37.6131568Z         },
2026-06-08T23:22:37.6131860Z         "unit": {
2026-06-08T23:22:37.6132184Z           "complete": true,
2026-06-08T23:22:37.6132487Z           "evidence": [
2026-06-08T23:22:37.6132781Z             {
2026-06-08T23:22:37.6133234Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6133544Z               "line": 261
2026-06-08T23:22:37.6133835Z             },
2026-06-08T23:22:37.6134116Z             {
2026-06-08T23:22:37.6134564Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6134868Z               "line": 276
2026-06-08T23:22:37.6135159Z             },
2026-06-08T23:22:37.6135446Z             {
2026-06-08T23:22:37.6135893Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6136203Z               "line": 293
2026-06-08T23:22:37.6136489Z             },
2026-06-08T23:22:37.6136785Z             {
2026-06-08T23:22:37.6137315Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6137620Z               "line": 310
2026-06-08T23:22:37.6137914Z             },
2026-06-08T23:22:37.6138189Z             {
2026-06-08T23:22:37.6138627Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6138942Z               "line": 327
2026-06-08T23:22:37.6139815Z             },
2026-06-08T23:22:37.6140556Z             {
2026-06-08T23:22:37.6141365Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.6142344Z               "line": 366
2026-06-08T23:22:37.6143057Z             },
2026-06-08T23:22:37.6143689Z             {
2026-06-08T23:22:37.6144523Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6145695Z               "line": 179
2026-06-08T23:22:37.6146425Z             },
2026-06-08T23:22:37.6147131Z             {
2026-06-08T23:22:37.6147993Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6149020Z               "line": 194
2026-06-08T23:22:37.6149736Z             },
2026-06-08T23:22:37.6150366Z             {
2026-06-08T23:22:37.6151191Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6152231Z               "line": 204
2026-06-08T23:22:37.6152957Z             },
2026-06-08T23:22:37.6153655Z             {
2026-06-08T23:22:37.6154593Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6155622Z               "line": 259
2026-06-08T23:22:37.6156327Z             },
2026-06-08T23:22:37.6157047Z             {
2026-06-08T23:22:37.6157881Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6158905Z               "line": 269
2026-06-08T23:22:37.6159618Z             },
2026-06-08T23:22:37.6160248Z             {
2026-06-08T23:22:37.6161077Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.6162094Z               "line": 283
2026-06-08T23:22:37.6162796Z             }
2026-06-08T23:22:37.6163420Z           ]
2026-06-08T23:22:37.6164029Z         }
2026-06-08T23:22:37.6164623Z       }
2026-06-08T23:22:37.6165220Z     },
2026-06-08T23:22:37.6165811Z     {
2026-06-08T23:22:37.6166492Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-08T23:22:37.6167798Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-08T23:22:37.6169047Z       "requiredStages": [],
2026-06-08T23:22:37.6169788Z       "stages": {
2026-06-08T23:22:37.6170431Z         "doc": {
2026-06-08T23:22:37.6171109Z           "complete": false,
2026-06-08T23:22:37.6171863Z           "evidence": []
2026-06-08T23:22:37.6172579Z         },
2026-06-08T23:22:37.6173199Z         "impl": {
2026-06-08T23:22:37.6173880Z           "complete": false,
2026-06-08T23:22:37.6174646Z           "evidence": []
2026-06-08T23:22:37.6175351Z         },
2026-06-08T23:22:37.6175971Z         "int": {
2026-06-08T23:22:37.6176648Z           "complete": false,
2026-06-08T23:22:37.6177500Z           "evidence": []
2026-06-08T23:22:37.6178192Z         },
2026-06-08T23:22:37.6178806Z         "unit": {
2026-06-08T23:22:37.6179494Z           "complete": false,
2026-06-08T23:22:37.6180253Z           "evidence": []
2026-06-08T23:22:37.6180957Z         }
2026-06-08T23:22:37.6181541Z       }
2026-06-08T23:22:37.6182141Z     },
2026-06-08T23:22:37.6187580Z     {
2026-06-08T23:22:37.6188341Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-08T23:22:37.6191495Z       "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-08T23:22:37.6194385Z       "requiredStages": [
2026-06-08T23:22:37.6195101Z         "impl",
2026-06-08T23:22:37.6195729Z         "unit"
2026-06-08T23:22:37.6196351Z       ],
2026-06-08T23:22:37.6197033Z       "stages": {
2026-06-08T23:22:37.6197692Z         "doc": {
2026-06-08T23:22:37.6198351Z           "complete": false,
2026-06-08T23:22:37.6199098Z           "evidence": []
2026-06-08T23:22:37.6199798Z         },
2026-06-08T23:22:37.6200408Z         "impl": {
2026-06-08T23:22:37.6201080Z           "complete": true,
2026-06-08T23:22:37.6201821Z           "evidence": [
2026-06-08T23:22:37.6202528Z             {
2026-06-08T23:22:37.6203438Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6204392Z               "line": 26
2026-06-08T23:22:37.6205090Z             },
2026-06-08T23:22:37.6205710Z             {
2026-06-08T23:22:37.6206451Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6207470Z               "line": 95
2026-06-08T23:22:37.6208175Z             },
2026-06-08T23:22:37.6208906Z             {
2026-06-08T23:22:37.6209658Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6210588Z               "line": 166
2026-06-08T23:22:37.6211283Z             },
2026-06-08T23:22:37.6211901Z             {
2026-06-08T23:22:37.6212634Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6213545Z               "line": 19
2026-06-08T23:22:37.6214235Z             },
2026-06-08T23:22:37.6214858Z             {
2026-06-08T23:22:37.6215587Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6216479Z               "line": 50
2026-06-08T23:22:37.6217311Z             },
2026-06-08T23:22:37.6217930Z             {
2026-06-08T23:22:37.6218626Z               "path": "crates/spt-live/src/turn.rs",
2026-06-08T23:22:37.6219514Z               "line": 18
2026-06-08T23:22:37.6220199Z             },
2026-06-08T23:22:37.6220824Z             {
2026-06-08T23:22:37.6221528Z               "path": "crates/spt-live/src/turn.rs",
2026-06-08T23:22:37.6222419Z               "line": 71
2026-06-08T23:22:37.6223104Z             },
2026-06-08T23:22:37.6223733Z             {
2026-06-08T23:22:37.6224439Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.6225337Z               "line": 70
2026-06-08T23:22:37.6226019Z             }
2026-06-08T23:22:37.6226639Z           ]
2026-06-08T23:22:37.6227320Z         },
2026-06-08T23:22:37.6227933Z         "int": {
2026-06-08T23:22:37.6228591Z           "complete": false,
2026-06-08T23:22:37.6229334Z           "evidence": []
2026-06-08T23:22:37.6230017Z         },
2026-06-08T23:22:37.6230620Z         "unit": {
2026-06-08T23:22:37.6231288Z           "complete": true,
2026-06-08T23:22:37.6232018Z           "evidence": [
2026-06-08T23:22:37.6232695Z             {
2026-06-08T23:22:37.6233439Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6234365Z               "line": 289
2026-06-08T23:22:37.6235066Z             },
2026-06-08T23:22:37.6235697Z             {
2026-06-08T23:22:37.6236431Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6237434Z               "line": 308
2026-06-08T23:22:37.6238117Z             },
2026-06-08T23:22:37.6238741Z             {
2026-06-08T23:22:37.6239475Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6240409Z               "line": 336
2026-06-08T23:22:37.6241104Z             },
2026-06-08T23:22:37.6241724Z             {
2026-06-08T23:22:37.6242454Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6243359Z               "line": 399
2026-06-08T23:22:37.6244052Z             },
2026-06-08T23:22:37.6244667Z             {
2026-06-08T23:22:37.6245408Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6246323Z               "line": 410
2026-06-08T23:22:37.6247082Z             },
2026-06-08T23:22:37.6247730Z             {
2026-06-08T23:22:37.6248464Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6249405Z               "line": 441
2026-06-08T23:22:37.6250096Z             },
2026-06-08T23:22:37.6250721Z             {
2026-06-08T23:22:37.6251464Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.6252399Z               "line": 452
2026-06-08T23:22:37.6253106Z             },
2026-06-08T23:22:37.6253740Z             {
2026-06-08T23:22:37.6254475Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6255395Z               "line": 77
2026-06-08T23:22:37.6256086Z             },
2026-06-08T23:22:37.6256718Z             {
2026-06-08T23:22:37.6257642Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6258573Z               "line": 97
2026-06-08T23:22:37.6259247Z             },
2026-06-08T23:22:37.6259856Z             {
2026-06-08T23:22:37.6260581Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6261492Z               "line": 112
2026-06-08T23:22:37.6262191Z             },
2026-06-08T23:22:37.6262939Z             {
2026-06-08T23:22:37.6263675Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6264593Z               "line": 123
2026-06-08T23:22:37.6265288Z             },
2026-06-08T23:22:37.6265908Z             {
2026-06-08T23:22:37.6266627Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6267607Z               "line": 130
2026-06-08T23:22:37.6268297Z             },
2026-06-08T23:22:37.6268927Z             {
2026-06-08T23:22:37.6269655Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-08T23:22:37.6270563Z               "line": 145
2026-06-08T23:22:37.6271260Z             },
2026-06-08T23:22:37.6271943Z             {
2026-06-08T23:22:37.6272643Z               "path": "crates/spt-live/src/turn.rs",
2026-06-08T23:22:37.6273534Z               "line": 115
2026-06-08T23:22:37.6274236Z             },
2026-06-08T23:22:37.6274856Z             {
2026-06-08T23:22:37.6275557Z               "path": "crates/spt-live/src/turn.rs",
2026-06-08T23:22:37.6276454Z               "line": 130
2026-06-08T23:22:37.6277379Z             },
2026-06-08T23:22:37.6278057Z             {
2026-06-08T23:22:37.6278777Z               "path": "crates/spt-proto/src/event.rs",
2026-06-08T23:22:37.6279688Z               "line": 336
2026-06-08T23:22:37.6280381Z             }
2026-06-08T23:22:37.6281010Z           ]
2026-06-08T23:22:37.6281625Z         }
2026-06-08T23:22:37.6282222Z       }
2026-06-08T23:22:37.6282818Z     },
2026-06-08T23:22:37.6283421Z     {
2026-06-08T23:22:37.6284099Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-08T23:22:37.6285576Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-08T23:22:37.6287113Z       "requiredStages": [
2026-06-08T23:22:37.6287838Z         "impl",
2026-06-08T23:22:37.6288474Z         "unit"
2026-06-08T23:22:37.6289098Z       ],
2026-06-08T23:22:37.6289695Z       "stages": {
2026-06-08T23:22:37.6290328Z         "doc": {
2026-06-08T23:22:37.6291007Z           "complete": true,
2026-06-08T23:22:37.6291741Z           "evidence": [
2026-06-08T23:22:37.6292419Z             {
2026-06-08T23:22:37.6293116Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.6293976Z               "line": 137
2026-06-08T23:22:37.6294679Z             }
2026-06-08T23:22:37.6295298Z           ]
2026-06-08T23:22:37.6295894Z         },
2026-06-08T23:22:37.6296505Z         "impl": {
2026-06-08T23:22:37.6297240Z           "complete": true,
2026-06-08T23:22:37.6297988Z           "evidence": [
2026-06-08T23:22:37.6298665Z             {
2026-06-08T23:22:37.6299363Z               "path": "crates/spt-store/src/db.rs",
2026-06-08T23:22:37.6300250Z               "line": 29
2026-06-08T23:22:37.6300941Z             },
2026-06-08T23:22:37.6301567Z             {
2026-06-08T23:22:37.6302277Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.6303188Z               "line": 101
2026-06-08T23:22:37.6303889Z             },
2026-06-08T23:22:37.6304512Z             {
2026-06-08T23:22:37.6305253Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6306173Z               "line": 30
2026-06-08T23:22:37.6306868Z             },
2026-06-08T23:22:37.6307562Z             {
2026-06-08T23:22:37.6308291Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.6309192Z               "line": 48
2026-06-08T23:22:37.6309885Z             }
2026-06-08T23:22:37.6310510Z           ]
2026-06-08T23:22:37.6311110Z         },
2026-06-08T23:22:37.6311712Z         "int": {
2026-06-08T23:22:37.6312367Z           "complete": false,
2026-06-08T23:22:37.6313109Z           "evidence": []
2026-06-08T23:22:37.6313922Z         },
2026-06-08T23:22:37.6314537Z         "unit": {
2026-06-08T23:22:37.6315212Z           "complete": true,
2026-06-08T23:22:37.6315956Z           "evidence": [
2026-06-08T23:22:37.6316632Z             {
2026-06-08T23:22:37.6317451Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6318371Z               "line": 162
2026-06-08T23:22:37.6319171Z             }
2026-06-08T23:22:37.6319800Z           ]
2026-06-08T23:22:37.6320412Z         }
2026-06-08T23:22:37.6321018Z       }
2026-06-08T23:22:37.6321609Z     },
2026-06-08T23:22:37.6322197Z     {
2026-06-08T23:22:37.6322884Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-08T23:22:37.6324628Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-08T23:22:37.6326219Z       "requiredStages": [
2026-06-08T23:22:37.6327027Z         "doc",
2026-06-08T23:22:37.6327666Z         "impl",
2026-06-08T23:22:37.6328311Z         "unit"
2026-06-08T23:22:37.6328955Z       ],
2026-06-08T23:22:37.6329565Z       "stages": {
2026-06-08T23:22:37.6330204Z         "doc": {
2026-06-08T23:22:37.6330868Z           "complete": true,
2026-06-08T23:22:37.6331606Z           "evidence": [
2026-06-08T23:22:37.6332298Z             {
2026-06-08T23:22:37.6332997Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.6333896Z               "line": 149
2026-06-08T23:22:37.6334597Z             }
2026-06-08T23:22:37.6335212Z           ]
2026-06-08T23:22:37.6335822Z         },
2026-06-08T23:22:37.6336433Z         "impl": {
2026-06-08T23:22:37.6337166Z           "complete": true,
2026-06-08T23:22:37.6337959Z           "evidence": [
2026-06-08T23:22:37.6338637Z             {
2026-06-08T23:22:37.6339380Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6340319Z               "line": 22
2026-06-08T23:22:37.6341019Z             }
2026-06-08T23:22:37.6341637Z           ]
2026-06-08T23:22:37.6342242Z         },
2026-06-08T23:22:37.6342867Z         "int": {
2026-06-08T23:22:37.6343534Z           "complete": false,
2026-06-08T23:22:37.6344290Z           "evidence": []
2026-06-08T23:22:37.6344986Z         },
2026-06-08T23:22:37.6345607Z         "unit": {
2026-06-08T23:22:37.6346288Z           "complete": true,
2026-06-08T23:22:37.6347130Z           "evidence": [
2026-06-08T23:22:37.6347837Z             {
2026-06-08T23:22:37.6348584Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6349502Z               "line": 298
2026-06-08T23:22:37.6350194Z             }
2026-06-08T23:22:37.6350817Z           ]
2026-06-08T23:22:37.6351424Z         }
2026-06-08T23:22:37.6352017Z       }
2026-06-08T23:22:37.6352618Z     },
2026-06-08T23:22:37.6353223Z     {
2026-06-08T23:22:37.6353916Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-08T23:22:37.6355852Z       "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-08T23:22:37.6357777Z       "requiredStages": [
2026-06-08T23:22:37.6358501Z         "impl",
2026-06-08T23:22:37.6359140Z         "unit"
2026-06-08T23:22:37.6359772Z       ],
2026-06-08T23:22:37.6360391Z       "stages": {
2026-06-08T23:22:37.6361044Z         "doc": {
2026-06-08T23:22:37.6361706Z           "complete": true,
2026-06-08T23:22:37.6362447Z           "evidence": [
2026-06-08T23:22:37.6363149Z             {
2026-06-08T23:22:37.6363841Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.6364696Z               "line": 143
2026-06-08T23:22:37.6365386Z             }
2026-06-08T23:22:37.6366016Z           ]
2026-06-08T23:22:37.6366626Z         },
2026-06-08T23:22:37.6367328Z         "impl": {
2026-06-08T23:22:37.6368013Z           "complete": true,
2026-06-08T23:22:37.6368752Z           "evidence": [
2026-06-08T23:22:37.6369438Z             {
2026-06-08T23:22:37.6370186Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.6371123Z               "line": 492
2026-06-08T23:22:37.6371947Z             },
2026-06-08T23:22:37.6372596Z             {
2026-06-08T23:22:37.6373360Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6374324Z               "line": 184
2026-06-08T23:22:37.6375026Z             },
2026-06-08T23:22:37.6375655Z             {
2026-06-08T23:22:37.6376399Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6377564Z               "line": 282
2026-06-08T23:22:37.6378278Z             },
2026-06-08T23:22:37.6378902Z             {
2026-06-08T23:22:37.6379612Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-08T23:22:37.6380519Z               "line": 15
2026-06-08T23:22:37.6381221Z             }
2026-06-08T23:22:37.6381841Z           ]
2026-06-08T23:22:37.6382451Z         },
2026-06-08T23:22:37.6383057Z         "int": {
2026-06-08T23:22:37.6383740Z           "complete": false,
2026-06-08T23:22:37.6384488Z           "evidence": []
2026-06-08T23:22:37.6385199Z         },
2026-06-08T23:22:37.6385822Z         "unit": {
2026-06-08T23:22:37.6386497Z           "complete": true,
2026-06-08T23:22:37.6387318Z           "evidence": [
2026-06-08T23:22:37.6388008Z             {
2026-06-08T23:22:37.6388775Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6389735Z               "line": 856
2026-06-08T23:22:37.6390436Z             },
2026-06-08T23:22:37.6391079Z             {
2026-06-08T23:22:37.6391847Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-08T23:22:37.6392796Z               "line": 88
2026-06-08T23:22:37.6393483Z             },
2026-06-08T23:22:37.6394109Z             {
2026-06-08T23:22:37.6394859Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6395769Z               "line": 802
2026-06-08T23:22:37.6396478Z             },
2026-06-08T23:22:37.6397206Z             {
2026-06-08T23:22:37.6397972Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6398898Z               "line": 821
2026-06-08T23:22:37.6399612Z             },
2026-06-08T23:22:37.6400232Z             {
2026-06-08T23:22:37.6400986Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.6401919Z               "line": 278
2026-06-08T23:22:37.6402627Z             },
2026-06-08T23:22:37.6403257Z             {
2026-06-08T23:22:37.6403986Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-08T23:22:37.6404899Z               "line": 77
2026-06-08T23:22:37.6405589Z             },
2026-06-08T23:22:37.6406219Z             {
2026-06-08T23:22:37.6407034Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-08T23:22:37.6407971Z               "line": 94
2026-06-08T23:22:37.6408672Z             },
2026-06-08T23:22:37.6409301Z             {
2026-06-08T23:22:37.6410025Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-08T23:22:37.6410935Z               "line": 114
2026-06-08T23:22:37.6411636Z             }
2026-06-08T23:22:37.6412260Z           ]
2026-06-08T23:22:37.6412868Z         }
2026-06-08T23:22:37.6413474Z       }
2026-06-08T23:22:37.6414070Z     },
2026-06-08T23:22:37.6414657Z     {
2026-06-08T23:22:37.6415349Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-08T23:22:37.6419989Z       "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-08T23:22:37.6424401Z       "requiredStages": [
2026-06-08T23:22:37.6425126Z         "doc",
2026-06-08T23:22:37.6425756Z         "impl",
2026-06-08T23:22:37.6426400Z         "unit"
2026-06-08T23:22:37.6427091Z       ],
2026-06-08T23:22:37.6427706Z       "stages": {
2026-06-08T23:22:37.6428356Z         "doc": {
2026-06-08T23:22:37.6429139Z           "complete": true,
2026-06-08T23:22:37.6429882Z           "evidence": [
2026-06-08T23:22:37.6430564Z             {
2026-06-08T23:22:37.6431254Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.6432122Z               "line": 155
2026-06-08T23:22:37.6432814Z             }
2026-06-08T23:22:37.6433428Z           ]
2026-06-08T23:22:37.6434045Z         },
2026-06-08T23:22:37.6434784Z         "impl": {
2026-06-08T23:22:37.6435453Z           "complete": true,
2026-06-08T23:22:37.6436194Z           "evidence": [
2026-06-08T23:22:37.6436879Z             {
2026-06-08T23:22:37.6437734Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.6438661Z               "line": 351
2026-06-08T23:22:37.6439366Z             },
2026-06-08T23:22:37.6440000Z             {
2026-06-08T23:22:37.6440771Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6445117Z               "line": 484
2026-06-08T23:22:37.6445845Z             },
2026-06-08T23:22:37.6446498Z             {
2026-06-08T23:22:37.6447378Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6448355Z               "line": 491
2026-06-08T23:22:37.6449060Z             },
2026-06-08T23:22:37.6449673Z             {
2026-06-08T23:22:37.6450420Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6451351Z               "line": 211
2026-06-08T23:22:37.6452065Z             }
2026-06-08T23:22:37.6452684Z           ]
2026-06-08T23:22:37.6453281Z         },
2026-06-08T23:22:37.6453881Z         "int": {
2026-06-08T23:22:37.6454548Z           "complete": false,
2026-06-08T23:22:37.6455304Z           "evidence": []
2026-06-08T23:22:37.6455992Z         },
2026-06-08T23:22:37.6456597Z         "unit": {
2026-06-08T23:22:37.6457315Z           "complete": true,
2026-06-08T23:22:37.6458051Z           "evidence": [
2026-06-08T23:22:37.6458738Z             {
2026-06-08T23:22:37.6459513Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6460472Z               "line": 1484
2026-06-08T23:22:37.6461167Z             },
2026-06-08T23:22:37.6461792Z             {
2026-06-08T23:22:37.6462554Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6463507Z               "line": 1542
2026-06-08T23:22:37.6464203Z             },
2026-06-08T23:22:37.6464823Z             {
2026-06-08T23:22:37.6465559Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6466474Z               "line": 834
2026-06-08T23:22:37.6467262Z             }
2026-06-08T23:22:37.6467889Z           ]
2026-06-08T23:22:37.6468485Z         }
2026-06-08T23:22:37.6469056Z       }
2026-06-08T23:22:37.6469628Z     },
2026-06-08T23:22:37.6470199Z     {
2026-06-08T23:22:37.6470902Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-08T23:22:37.6472142Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-08T23:22:37.6473348Z       "requiredStages": [
2026-06-08T23:22:37.6474053Z         "impl",
2026-06-08T23:22:37.6474692Z         "unit"
2026-06-08T23:22:37.6475321Z       ],
2026-06-08T23:22:37.6475925Z       "stages": {
2026-06-08T23:22:37.6476558Z         "doc": {
2026-06-08T23:22:37.6477306Z           "complete": false,
2026-06-08T23:22:37.6478038Z           "evidence": []
2026-06-08T23:22:37.6478720Z         },
2026-06-08T23:22:37.6479321Z         "impl": {
2026-06-08T23:22:37.6479984Z           "complete": true,
2026-06-08T23:22:37.6480708Z           "evidence": [
2026-06-08T23:22:37.6481377Z             {
2026-06-08T23:22:37.6482072Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6482955Z               "line": 15
2026-06-08T23:22:37.6483641Z             },
2026-06-08T23:22:37.6484247Z             {
2026-06-08T23:22:37.6484975Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6485877Z               "line": 55
2026-06-08T23:22:37.6486555Z             },
2026-06-08T23:22:37.6487261Z             {
2026-06-08T23:22:37.6488153Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6489136Z               "line": 66
2026-06-08T23:22:37.6489828Z             },
2026-06-08T23:22:37.6490443Z             {
2026-06-08T23:22:37.6491169Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6492084Z               "line": 115
2026-06-08T23:22:37.6492777Z             },
2026-06-08T23:22:37.6493506Z             {
2026-06-08T23:22:37.6494234Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6495146Z               "line": 138
2026-06-08T23:22:37.6495860Z             }
2026-06-08T23:22:37.6496470Z           ]
2026-06-08T23:22:37.6497144Z         },
2026-06-08T23:22:37.6497763Z         "int": {
2026-06-08T23:22:37.6498422Z           "complete": false,
2026-06-08T23:22:37.6499153Z           "evidence": []
2026-06-08T23:22:37.6499845Z         },
2026-06-08T23:22:37.6500446Z         "unit": {
2026-06-08T23:22:37.6501114Z           "complete": true,
2026-06-08T23:22:37.6501842Z           "evidence": [
2026-06-08T23:22:37.6502521Z             {
2026-06-08T23:22:37.6503231Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6504122Z               "line": 149
2026-06-08T23:22:37.6504813Z             },
2026-06-08T23:22:37.6505442Z             {
2026-06-08T23:22:37.6506144Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6507122Z               "line": 155
2026-06-08T23:22:37.6507814Z             },
2026-06-08T23:22:37.6508430Z             {
2026-06-08T23:22:37.6509132Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6510011Z               "line": 169
2026-06-08T23:22:37.6510701Z             },
2026-06-08T23:22:37.6511316Z             {
2026-06-08T23:22:37.6512013Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6512904Z               "line": 178
2026-06-08T23:22:37.6513583Z             },
2026-06-08T23:22:37.6514193Z             {
2026-06-08T23:22:37.6514922Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6515832Z               "line": 195
2026-06-08T23:22:37.6516519Z             },
2026-06-08T23:22:37.6517219Z             {
2026-06-08T23:22:37.6517971Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6518893Z               "line": 208
2026-06-08T23:22:37.6519576Z             },
2026-06-08T23:22:37.6520205Z             {
2026-06-08T23:22:37.6520922Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6521823Z               "line": 271
2026-06-08T23:22:37.6522506Z             },
2026-06-08T23:22:37.6523119Z             {
2026-06-08T23:22:37.6523842Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6524763Z               "line": 290
2026-06-08T23:22:37.6525450Z             },
2026-06-08T23:22:37.6526068Z             {
2026-06-08T23:22:37.6526793Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.6527793Z               "line": 319
2026-06-08T23:22:37.6528474Z             }
2026-06-08T23:22:37.6529092Z           ]
2026-06-08T23:22:37.6529702Z         }
2026-06-08T23:22:37.6530294Z       }
2026-06-08T23:22:37.6530571Z     },
2026-06-08T23:22:37.6530857Z     {
2026-06-08T23:22:37.6531227Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-08T23:22:37.6532107Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-08T23:22:37.6532427Z       "requiredStages": [
2026-06-08T23:22:37.6532717Z         "impl",
2026-06-08T23:22:37.6533013Z         "unit",
2026-06-08T23:22:37.6533294Z         "int"
2026-06-08T23:22:37.6533574Z       ],
2026-06-08T23:22:37.6533863Z       "stages": {
2026-06-08T23:22:37.6534151Z         "doc": {
2026-06-08T23:22:37.6534464Z           "complete": false,
2026-06-08T23:22:37.6534774Z           "evidence": []
2026-06-08T23:22:37.6535061Z         },
2026-06-08T23:22:37.6535352Z         "impl": {
2026-06-08T23:22:37.6535662Z           "complete": true,
2026-06-08T23:22:37.6535957Z           "evidence": [
2026-06-08T23:22:37.6536353Z             {
2026-06-08T23:22:37.6536742Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.6537133Z               "line": 269
2026-06-08T23:22:37.6537438Z             },
2026-06-08T23:22:37.6537724Z             {
2026-06-08T23:22:37.6538120Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.6538517Z               "line": 578
2026-06-08T23:22:37.6538808Z             },
2026-06-08T23:22:37.6539086Z             {
2026-06-08T23:22:37.6539471Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.6539762Z               "line": 601
2026-06-08T23:22:37.6540047Z             },
2026-06-08T23:22:37.6540324Z             {
2026-06-08T23:22:37.6540706Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.6541006Z               "line": 625
2026-06-08T23:22:37.6541283Z             },
2026-06-08T23:22:37.6541611Z             {
2026-06-08T23:22:37.6542018Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.6542323Z               "line": 492
2026-06-08T23:22:37.6542609Z             },
2026-06-08T23:22:37.6542896Z             {
2026-06-08T23:22:37.6543297Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.6543606Z               "line": 580
2026-06-08T23:22:37.6543883Z             },
2026-06-08T23:22:37.6544178Z             {
2026-06-08T23:22:37.6544575Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.6544876Z               "line": 690
2026-06-08T23:22:37.6545162Z             },
2026-06-08T23:22:37.6545448Z             {
2026-06-08T23:22:37.6545844Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.6546149Z               "line": 738
2026-06-08T23:22:37.6546440Z             },
2026-06-08T23:22:37.6546721Z             {
2026-06-08T23:22:37.6547198Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.6547523Z               "line": 46
2026-06-08T23:22:37.6547808Z             },
2026-06-08T23:22:37.6548099Z             {
2026-06-08T23:22:37.6548500Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.6548801Z               "line": 167
2026-06-08T23:22:37.6549082Z             },
2026-06-08T23:22:37.6549363Z             {
2026-06-08T23:22:37.6549738Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-08T23:22:37.6550040Z               "line": 71
2026-06-08T23:22:37.6550327Z             },
2026-06-08T23:22:37.6550608Z             {
2026-06-08T23:22:37.6550995Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.6551295Z               "line": 134
2026-06-08T23:22:37.6551585Z             },
2026-06-08T23:22:37.6551867Z             {
2026-06-08T23:22:37.6552242Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.6552540Z               "line": 180
2026-06-08T23:22:37.6552817Z             }
2026-06-08T23:22:37.6553093Z           ]
2026-06-08T23:22:37.6553366Z         },
2026-06-08T23:22:37.6553656Z         "int": {
2026-06-08T23:22:37.6553967Z           "complete": true,
2026-06-08T23:22:37.6554268Z           "evidence": [
2026-06-08T23:22:37.6554549Z             {
2026-06-08T23:22:37.6554970Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-08T23:22:37.6555271Z               "line": 27
2026-06-08T23:22:37.6555566Z             },
2026-06-08T23:22:37.6555876Z             {
2026-06-08T23:22:37.6556295Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-08T23:22:37.6556599Z               "line": 129
2026-06-08T23:22:37.6556881Z             },
2026-06-08T23:22:37.6557257Z             {
2026-06-08T23:22:37.6557685Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-08T23:22:37.6557981Z               "line": 200
2026-06-08T23:22:37.6558267Z             }
2026-06-08T23:22:37.6558549Z           ]
2026-06-08T23:22:37.6558836Z         },
2026-06-08T23:22:37.6559126Z         "unit": {
2026-06-08T23:22:37.6559436Z           "complete": true,
2026-06-08T23:22:37.6559850Z           "evidence": [
2026-06-08T23:22:37.6560145Z             {
2026-06-08T23:22:37.6560552Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.6560858Z               "line": 313
2026-06-08T23:22:37.6561144Z             },
2026-06-08T23:22:37.6561435Z             {
2026-06-08T23:22:37.6561836Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.6562252Z               "line": 345
2026-06-08T23:22:37.6562548Z             },
2026-06-08T23:22:37.6562836Z             {
2026-06-08T23:22:37.6563230Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-08T23:22:37.6563535Z               "line": 366
2026-06-08T23:22:37.6563827Z             },
2026-06-08T23:22:37.6564107Z             {
2026-06-08T23:22:37.6564517Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-08T23:22:37.6564823Z               "line": 254
2026-06-08T23:22:37.6565110Z             },
2026-06-08T23:22:37.6565393Z             {
2026-06-08T23:22:37.6565807Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-08T23:22:37.6566116Z               "line": 239
2026-06-08T23:22:37.6566398Z             },
2026-06-08T23:22:37.6566679Z             {
2026-06-08T23:22:37.6567132Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-08T23:22:37.6567455Z               "line": 230
2026-06-08T23:22:37.6567770Z             },
2026-06-08T23:22:37.6568057Z             {
2026-06-08T23:22:37.6568437Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.6568747Z               "line": 488
2026-06-08T23:22:37.6569033Z             },
2026-06-08T23:22:37.6569320Z             {
2026-06-08T23:22:37.6569700Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.6570015Z               "line": 518
2026-06-08T23:22:37.6570297Z             }
2026-06-08T23:22:37.6570584Z           ]
2026-06-08T23:22:37.6570867Z         }
2026-06-08T23:22:37.6571152Z       }
2026-06-08T23:22:37.6571432Z     },
2026-06-08T23:22:37.6571718Z     {
2026-06-08T23:22:37.6572101Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-08T23:22:37.6572720Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-08T23:22:37.6573040Z       "requiredStages": [
2026-06-08T23:22:37.6573329Z         "impl",
2026-06-08T23:22:37.6573618Z         "unit"
2026-06-08T23:22:37.6573899Z       ],
2026-06-08T23:22:37.6574205Z       "stages": {
2026-06-08T23:22:37.6574496Z         "doc": {
2026-06-08T23:22:37.6574810Z           "complete": false,
2026-06-08T23:22:37.6575125Z           "evidence": []
2026-06-08T23:22:37.6575407Z         },
2026-06-08T23:22:37.6575698Z         "impl": {
2026-06-08T23:22:37.6576006Z           "complete": true,
2026-06-08T23:22:37.6576314Z           "evidence": [
2026-06-08T23:22:37.6576604Z             {
2026-06-08T23:22:37.6577100Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6577406Z               "line": 56
2026-06-08T23:22:37.6577692Z             },
2026-06-08T23:22:37.6577969Z             {
2026-06-08T23:22:37.6578392Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6578687Z               "line": 65
2026-06-08T23:22:37.6578969Z             },
2026-06-08T23:22:37.6579255Z             {
2026-06-08T23:22:37.6579688Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6579998Z               "line": 72
2026-06-08T23:22:37.6580284Z             },
2026-06-08T23:22:37.6580575Z             {
2026-06-08T23:22:37.6580961Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6581266Z               "line": 33
2026-06-08T23:22:37.6581550Z             },
2026-06-08T23:22:37.6581841Z             {
2026-06-08T23:22:37.6582222Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6582527Z               "line": 65
2026-06-08T23:22:37.6582818Z             },
2026-06-08T23:22:37.6583104Z             {
2026-06-08T23:22:37.6583495Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6583894Z               "line": 74
2026-06-08T23:22:37.6584187Z             },
2026-06-08T23:22:37.6584469Z             {
2026-06-08T23:22:37.6584855Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6585155Z               "line": 83
2026-06-08T23:22:37.6585441Z             },
2026-06-08T23:22:37.6585728Z             {
2026-06-08T23:22:37.6586215Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6586514Z               "line": 92
2026-06-08T23:22:37.6586802Z             },
2026-06-08T23:22:37.6587184Z             {
2026-06-08T23:22:37.6587565Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6587875Z               "line": 101
2026-06-08T23:22:37.6588158Z             },
2026-06-08T23:22:37.6588448Z             {
2026-06-08T23:22:37.6588830Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6589131Z               "line": 112
2026-06-08T23:22:37.6589419Z             },
2026-06-08T23:22:37.6589710Z             {
2026-06-08T23:22:37.6590087Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6590388Z               "line": 120
2026-06-08T23:22:37.6590673Z             },
2026-06-08T23:22:37.6590954Z             {
2026-06-08T23:22:37.6591323Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6591628Z               "line": 129
2026-06-08T23:22:37.6591921Z             },
2026-06-08T23:22:37.6592204Z             {
2026-06-08T23:22:37.6592591Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6592887Z               "line": 138
2026-06-08T23:22:37.6593177Z             },
2026-06-08T23:22:37.6593459Z             {
2026-06-08T23:22:37.6593841Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6594146Z               "line": 149
2026-06-08T23:22:37.6594435Z             },
2026-06-08T23:22:37.6594719Z             {
2026-06-08T23:22:37.6595100Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6595410Z               "line": 157
2026-06-08T23:22:37.6595692Z             },
2026-06-08T23:22:37.6595969Z             {
2026-06-08T23:22:37.6596354Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6596651Z               "line": 166
2026-06-08T23:22:37.6596935Z             },
2026-06-08T23:22:37.6597295Z             {
2026-06-08T23:22:37.6597686Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6597991Z               "line": 175
2026-06-08T23:22:37.6598287Z             },
2026-06-08T23:22:37.6598573Z             {
2026-06-08T23:22:37.6598955Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6599265Z               "line": 184
2026-06-08T23:22:37.6599546Z             },
2026-06-08T23:22:37.6599836Z             {
2026-06-08T23:22:37.6600212Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6600517Z               "line": 196
2026-06-08T23:22:37.6600823Z             },
2026-06-08T23:22:37.6601123Z             {
2026-06-08T23:22:37.6601509Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6601815Z               "line": 203
2026-06-08T23:22:37.6602106Z             },
2026-06-08T23:22:37.6602386Z             {
2026-06-08T23:22:37.6602774Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6603075Z               "line": 212
2026-06-08T23:22:37.6603351Z             },
2026-06-08T23:22:37.6603638Z             {
2026-06-08T23:22:37.6604014Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6604310Z               "line": 219
2026-06-08T23:22:37.6604596Z             },
2026-06-08T23:22:37.6604882Z             {
2026-06-08T23:22:37.6605256Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6605551Z               "line": 286
2026-06-08T23:22:37.6605842Z             },
2026-06-08T23:22:37.6606124Z             {
2026-06-08T23:22:37.6606505Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6606934Z               "line": 298
2026-06-08T23:22:37.6607292Z             },
2026-06-08T23:22:37.6607619Z             {
2026-06-08T23:22:37.6608004Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6608314Z               "line": 385
2026-06-08T23:22:37.6608595Z             }
2026-06-08T23:22:37.6608881Z           ]
2026-06-08T23:22:37.6609167Z         },
2026-06-08T23:22:37.6609559Z         "int": {
2026-06-08T23:22:37.6609879Z           "complete": false,
2026-06-08T23:22:37.6610213Z           "evidence": []
2026-06-08T23:22:37.6610501Z         },
2026-06-08T23:22:37.6610792Z         "unit": {
2026-06-08T23:22:37.6611107Z           "complete": true,
2026-06-08T23:22:37.6611416Z           "evidence": [
2026-06-08T23:22:37.6611697Z             {
2026-06-08T23:22:37.6612089Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6612394Z               "line": 467
2026-06-08T23:22:37.6612676Z             },
2026-06-08T23:22:37.6612961Z             {
2026-06-08T23:22:37.6613353Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6613659Z               "line": 508
2026-06-08T23:22:37.6613950Z             },
2026-06-08T23:22:37.6614236Z             {
2026-06-08T23:22:37.6614622Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6614928Z               "line": 521
2026-06-08T23:22:37.6615213Z             },
2026-06-08T23:22:37.6615509Z             {
2026-06-08T23:22:37.6615896Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6616197Z               "line": 607
2026-06-08T23:22:37.6616488Z             }
2026-06-08T23:22:37.6616769Z           ]
2026-06-08T23:22:37.6617136Z         }
2026-06-08T23:22:37.6617432Z       }
2026-06-08T23:22:37.6617713Z     },
2026-06-08T23:22:37.6617995Z     {
2026-06-08T23:22:37.6618349Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-08T23:22:37.6619003Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-08T23:22:37.6619318Z       "requiredStages": [
2026-06-08T23:22:37.6619622Z         "impl",
2026-06-08T23:22:37.6619909Z         "unit"
2026-06-08T23:22:37.6620195Z       ],
2026-06-08T23:22:37.6620491Z       "stages": {
2026-06-08T23:22:37.6620778Z         "doc": {
2026-06-08T23:22:37.6621086Z           "complete": false,
2026-06-08T23:22:37.6621391Z           "evidence": []
2026-06-08T23:22:37.6621676Z         },
2026-06-08T23:22:37.6621976Z         "impl": {
2026-06-08T23:22:37.6622296Z           "complete": true,
2026-06-08T23:22:37.6622596Z           "evidence": [
2026-06-08T23:22:37.6622883Z             {
2026-06-08T23:22:37.6623260Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.6623559Z               "line": 143
2026-06-08T23:22:37.6623847Z             },
2026-06-08T23:22:37.6624129Z             {
2026-06-08T23:22:37.6624529Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.6624834Z               "line": 148
2026-06-08T23:22:37.6625120Z             }
2026-06-08T23:22:37.6625417Z           ]
2026-06-08T23:22:37.6625702Z         },
2026-06-08T23:22:37.6625989Z         "int": {
2026-06-08T23:22:37.6626297Z           "complete": false,
2026-06-08T23:22:37.6626601Z           "evidence": []
2026-06-08T23:22:37.6626887Z         },
2026-06-08T23:22:37.6627272Z         "unit": {
2026-06-08T23:22:37.6627582Z           "complete": true,
2026-06-08T23:22:37.6627892Z           "evidence": [
2026-06-08T23:22:37.6628175Z             {
2026-06-08T23:22:37.6628541Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.6628849Z               "line": 264
2026-06-08T23:22:37.6629129Z             },
2026-06-08T23:22:37.6629420Z             {
2026-06-08T23:22:37.6629821Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.6630116Z               "line": 544
2026-06-08T23:22:37.6630403Z             },
2026-06-08T23:22:37.6630684Z             {
2026-06-08T23:22:37.6631079Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.6631385Z               "line": 557
2026-06-08T23:22:37.6631770Z             }
2026-06-08T23:22:37.6632056Z           ]
2026-06-08T23:22:37.6632337Z         }
2026-06-08T23:22:37.6632619Z       }
2026-06-08T23:22:37.6632890Z     },
2026-06-08T23:22:37.6633161Z     {
2026-06-08T23:22:37.6633520Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-08T23:22:37.6633954Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-08T23:22:37.6634360Z       "requiredStages": [
2026-06-08T23:22:37.6634642Z         "impl",
2026-06-08T23:22:37.6634923Z         "unit"
2026-06-08T23:22:37.6635195Z       ],
2026-06-08T23:22:37.6635486Z       "stages": {
2026-06-08T23:22:37.6635776Z         "doc": {
2026-06-08T23:22:37.6636082Z           "complete": false,
2026-06-08T23:22:37.6636382Z           "evidence": []
2026-06-08T23:22:37.6636657Z         },
2026-06-08T23:22:37.6637036Z         "impl": {
2026-06-08T23:22:37.6637346Z           "complete": true,
2026-06-08T23:22:37.6637637Z           "evidence": [
2026-06-08T23:22:37.6637918Z             {
2026-06-08T23:22:37.6638329Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.6638634Z               "line": 114
2026-06-08T23:22:37.6638920Z             },
2026-06-08T23:22:37.6639215Z             {
2026-06-08T23:22:37.6639632Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.6639932Z               "line": 481
2026-06-08T23:22:37.6640222Z             }
2026-06-08T23:22:37.6640509Z           ]
2026-06-08T23:22:37.6640799Z         },
2026-06-08T23:22:37.6641081Z         "int": {
2026-06-08T23:22:37.6641400Z           "complete": false,
2026-06-08T23:22:37.6641701Z           "evidence": []
2026-06-08T23:22:37.6641983Z         },
2026-06-08T23:22:37.6642278Z         "unit": {
2026-06-08T23:22:37.6642588Z           "complete": true,
2026-06-08T23:22:37.6642888Z           "evidence": [
2026-06-08T23:22:37.6643170Z             {
2026-06-08T23:22:37.6643588Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.6643894Z               "line": 515
2026-06-08T23:22:37.6644176Z             }
2026-06-08T23:22:37.6644468Z           ]
2026-06-08T23:22:37.6644751Z         }
2026-06-08T23:22:37.6645039Z       }
2026-06-08T23:22:37.6645315Z     },
2026-06-08T23:22:37.6645602Z     {
2026-06-08T23:22:37.6645988Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-08T23:22:37.6646537Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-08T23:22:37.6646856Z       "requiredStages": [
2026-06-08T23:22:37.6647241Z         "impl",
2026-06-08T23:22:37.6647563Z         "unit"
2026-06-08T23:22:37.6647840Z       ],
2026-06-08T23:22:37.6648135Z       "stages": {
2026-06-08T23:22:37.6648422Z         "doc": {
2026-06-08T23:22:37.6648731Z           "complete": false,
2026-06-08T23:22:37.6649037Z           "evidence": []
2026-06-08T23:22:37.6649319Z         },
2026-06-08T23:22:37.6649634Z         "impl": {
2026-06-08T23:22:37.6649932Z           "complete": true,
2026-06-08T23:22:37.6650235Z           "evidence": [
2026-06-08T23:22:37.6650540Z             {
2026-06-08T23:22:37.6650955Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.6651256Z               "line": 459
2026-06-08T23:22:37.6651542Z             },
2026-06-08T23:22:37.6651824Z             {
2026-06-08T23:22:37.6652210Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.6652515Z               "line": 28
2026-06-08T23:22:37.6652800Z             }
2026-06-08T23:22:37.6653085Z           ]
2026-06-08T23:22:37.6653371Z         },
2026-06-08T23:22:37.6653657Z         "int": {
2026-06-08T23:22:37.6653972Z           "complete": false,
2026-06-08T23:22:37.6654277Z           "evidence": []
2026-06-08T23:22:37.6654563Z         },
2026-06-08T23:22:37.6654854Z         "unit": {
2026-06-08T23:22:37.6655163Z           "complete": true,
2026-06-08T23:22:37.6655471Z           "evidence": [
2026-06-08T23:22:37.6655748Z             {
2026-06-08T23:22:37.6656143Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.6656548Z               "line": 229
2026-06-08T23:22:37.6656839Z             }
2026-06-08T23:22:37.6657192Z           ]
2026-06-08T23:22:37.6657478Z         }
2026-06-08T23:22:37.6657759Z       }
2026-06-08T23:22:37.6658043Z     },
2026-06-08T23:22:37.6658324Z     {
2026-06-08T23:22:37.6658681Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-08T23:22:37.6659258Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-08T23:22:37.6659573Z       "requiredStages": [],
2026-06-08T23:22:37.6659870Z       "stages": {
2026-06-08T23:22:37.6660161Z         "doc": {
2026-06-08T23:22:37.6660478Z           "complete": false,
2026-06-08T23:22:37.6660781Z           "evidence": []
2026-06-08T23:22:37.6661062Z         },
2026-06-08T23:22:37.6661362Z         "impl": {
2026-06-08T23:22:37.6661672Z           "complete": false,
2026-06-08T23:22:37.6661977Z           "evidence": []
2026-06-08T23:22:37.6662263Z         },
2026-06-08T23:22:37.6662550Z         "int": {
2026-06-08T23:22:37.6662878Z           "complete": false,
2026-06-08T23:22:37.6663188Z           "evidence": []
2026-06-08T23:22:37.6666474Z         },
2026-06-08T23:22:37.6666793Z         "unit": {
2026-06-08T23:22:37.6667219Z           "complete": false,
2026-06-08T23:22:37.6667548Z           "evidence": []
2026-06-08T23:22:37.6667835Z         }
2026-06-08T23:22:37.6668116Z       }
2026-06-08T23:22:37.6668404Z     },
2026-06-08T23:22:37.6668688Z     {
2026-06-08T23:22:37.6669056Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-08T23:22:37.6669556Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-08T23:22:37.6669876Z       "requiredStages": [
2026-06-08T23:22:37.6670162Z         "impl",
2026-06-08T23:22:37.6670448Z         "unit"
2026-06-08T23:22:37.6670726Z       ],
2026-06-08T23:22:37.6671019Z       "stages": {
2026-06-08T23:22:37.6671307Z         "doc": {
2026-06-08T23:22:37.6671617Z           "complete": false,
2026-06-08T23:22:37.6671918Z           "evidence": []
2026-06-08T23:22:37.6672194Z         },
2026-06-08T23:22:37.6672490Z         "impl": {
2026-06-08T23:22:37.6672795Z           "complete": true,
2026-06-08T23:22:37.6673090Z           "evidence": [
2026-06-08T23:22:37.6673362Z             {
2026-06-08T23:22:37.6673739Z               "path": "crates/spt-live/src/turn.rs",
2026-06-08T23:22:37.6674025Z               "line": 19
2026-06-08T23:22:37.6674306Z             },
2026-06-08T23:22:37.6674593Z             {
2026-06-08T23:22:37.6674988Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.6675283Z               "line": 347
2026-06-08T23:22:37.6675570Z             },
2026-06-08T23:22:37.6675852Z             {
2026-06-08T23:22:37.6676265Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.6676559Z               "line": 383
2026-06-08T23:22:37.6676849Z             },
2026-06-08T23:22:37.6677212Z             {
2026-06-08T23:22:37.6677602Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.6677903Z               "line": 15
2026-06-08T23:22:37.6678188Z             },
2026-06-08T23:22:37.6678479Z             {
2026-06-08T23:22:37.6678860Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.6679153Z               "line": 48
2026-06-08T23:22:37.6679440Z             },
2026-06-08T23:22:37.6679726Z             {
2026-06-08T23:22:37.6680107Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.6680412Z               "line": 119
2026-06-08T23:22:37.6680698Z             },
2026-06-08T23:22:37.6680980Z             {
2026-06-08T23:22:37.6681333Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6681631Z               "line": 2429
2026-06-08T23:22:37.6681911Z             }
2026-06-08T23:22:37.6682192Z           ]
2026-06-08T23:22:37.6682478Z         },
2026-06-08T23:22:37.6682759Z         "int": {
2026-06-08T23:22:37.6683069Z           "complete": false,
2026-06-08T23:22:37.6683375Z           "evidence": []
2026-06-08T23:22:37.6683655Z         },
2026-06-08T23:22:37.6683942Z         "unit": {
2026-06-08T23:22:37.6684374Z           "complete": true,
2026-06-08T23:22:37.6684684Z           "evidence": [
2026-06-08T23:22:37.6684966Z             {
2026-06-08T23:22:37.6685376Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.6685677Z               "line": 496
2026-06-08T23:22:37.6685962Z             },
2026-06-08T23:22:37.6686360Z             {
2026-06-08T23:22:37.6686741Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.6687138Z               "line": 165
2026-06-08T23:22:37.6687423Z             },
2026-06-08T23:22:37.6687700Z             {
2026-06-08T23:22:37.6688090Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-08T23:22:37.6688401Z               "line": 175
2026-06-08T23:22:37.6688687Z             }
2026-06-08T23:22:37.6688969Z           ]
2026-06-08T23:22:37.6689255Z         }
2026-06-08T23:22:37.6689539Z       }
2026-06-08T23:22:37.6689818Z     },
2026-06-08T23:22:37.6690094Z     {
2026-06-08T23:22:37.6690457Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-08T23:22:37.6693086Z       "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-08T23:22:37.6693426Z       "requiredStages": [
2026-06-08T23:22:37.6693711Z         "impl",
2026-06-08T23:22:37.6693997Z         "unit"
2026-06-08T23:22:37.6694278Z       ],
2026-06-08T23:22:37.6694568Z       "stages": {
2026-06-08T23:22:37.6694864Z         "doc": {
2026-06-08T23:22:37.6695188Z           "complete": false,
2026-06-08T23:22:37.6695493Z           "evidence": []
2026-06-08T23:22:37.6695775Z         },
2026-06-08T23:22:37.6696065Z         "impl": {
2026-06-08T23:22:37.6696375Z           "complete": true,
2026-06-08T23:22:37.6696676Z           "evidence": [
2026-06-08T23:22:37.6697081Z             {
2026-06-08T23:22:37.6697465Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6697773Z               "line": 2187
2026-06-08T23:22:37.6698055Z             },
2026-06-08T23:22:37.6698342Z             {
2026-06-08T23:22:37.6698708Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6699009Z               "line": 103
2026-06-08T23:22:37.6699281Z             },
2026-06-08T23:22:37.6699576Z             {
2026-06-08T23:22:37.6699952Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6700250Z               "line": 135
2026-06-08T23:22:37.6700532Z             }
2026-06-08T23:22:37.6700818Z           ]
2026-06-08T23:22:37.6701128Z         },
2026-06-08T23:22:37.6701409Z         "int": {
2026-06-08T23:22:37.6701720Z           "complete": false,
2026-06-08T23:22:37.6702029Z           "evidence": []
2026-06-08T23:22:37.6702310Z         },
2026-06-08T23:22:37.6702604Z         "unit": {
2026-06-08T23:22:37.6702916Z           "complete": true,
2026-06-08T23:22:37.6703221Z           "evidence": [
2026-06-08T23:22:37.6703512Z             {
2026-06-08T23:22:37.6703884Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6704189Z               "line": 258
2026-06-08T23:22:37.6704471Z             },
2026-06-08T23:22:37.6704757Z             {
2026-06-08T23:22:37.6705124Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6705433Z               "line": 283
2026-06-08T23:22:37.6705719Z             },
2026-06-08T23:22:37.6706006Z             {
2026-06-08T23:22:37.6706386Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6706687Z               "line": 296
2026-06-08T23:22:37.6707050Z             },
2026-06-08T23:22:37.6707340Z             {
2026-06-08T23:22:37.6707722Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.6708021Z               "line": 308
2026-06-08T23:22:37.6708305Z             }
2026-06-08T23:22:37.6708596Z           ]
2026-06-08T23:22:37.6708878Z         }
2026-06-08T23:22:37.6709159Z       }
2026-06-08T23:22:37.6709559Z     },
2026-06-08T23:22:37.6709845Z     {
2026-06-08T23:22:37.6710198Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-08T23:22:37.6710708Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-08T23:22:37.6711030Z       "requiredStages": [
2026-06-08T23:22:37.6711330Z         "impl",
2026-06-08T23:22:37.6711616Z         "unit"
2026-06-08T23:22:37.6712003Z       ],
2026-06-08T23:22:37.6712299Z       "stages": {
2026-06-08T23:22:37.6712584Z         "doc": {
2026-06-08T23:22:37.6712904Z           "complete": false,
2026-06-08T23:22:37.6713211Z           "evidence": []
2026-06-08T23:22:37.6713491Z         },
2026-06-08T23:22:37.6713786Z         "impl": {
2026-06-08T23:22:37.6714096Z           "complete": true,
2026-06-08T23:22:37.6714397Z           "evidence": [
2026-06-08T23:22:37.6714684Z             {
2026-06-08T23:22:37.6715074Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.6715379Z               "line": 35
2026-06-08T23:22:37.6715669Z             }
2026-06-08T23:22:37.6715951Z           ]
2026-06-08T23:22:37.6716232Z         },
2026-06-08T23:22:37.6716518Z         "int": {
2026-06-08T23:22:37.6716829Z           "complete": false,
2026-06-08T23:22:37.6717219Z           "evidence": []
2026-06-08T23:22:37.6717505Z         },
2026-06-08T23:22:37.6717797Z         "unit": {
2026-06-08T23:22:37.6718112Z           "complete": true,
2026-06-08T23:22:37.6718417Z           "evidence": [
2026-06-08T23:22:37.6718701Z             {
2026-06-08T23:22:37.6719085Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-08T23:22:37.6719386Z               "line": 220
2026-06-08T23:22:37.6719672Z             }
2026-06-08T23:22:37.6719958Z           ]
2026-06-08T23:22:37.6720234Z         }
2026-06-08T23:22:37.6720515Z       }
2026-06-08T23:22:37.6720782Z     },
2026-06-08T23:22:37.6721058Z     {
2026-06-08T23:22:37.6721413Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-08T23:22:37.6722267Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-08T23:22:37.6722582Z       "requiredStages": [
2026-06-08T23:22:37.6722869Z         "impl",
2026-06-08T23:22:37.6723154Z         "unit"
2026-06-08T23:22:37.6723430Z       ],
2026-06-08T23:22:37.6723719Z       "stages": {
2026-06-08T23:22:37.6724008Z         "doc": {
2026-06-08T23:22:37.6724318Z           "complete": false,
2026-06-08T23:22:37.6724614Z           "evidence": []
2026-06-08T23:22:37.6724900Z         },
2026-06-08T23:22:37.6725182Z         "impl": {
2026-06-08T23:22:37.6725492Z           "complete": true,
2026-06-08T23:22:37.6725783Z           "evidence": [
2026-06-08T23:22:37.6726069Z             {
2026-06-08T23:22:37.6726483Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.6726783Z               "line": 398
2026-06-08T23:22:37.6727146Z             },
2026-06-08T23:22:37.6727422Z             {
2026-06-08T23:22:37.6727818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.6728112Z               "line": 396
2026-06-08T23:22:37.6728408Z             },
2026-06-08T23:22:37.6728682Z             {
2026-06-08T23:22:37.6729080Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.6729388Z               "line": 156
2026-06-08T23:22:37.6729669Z             }
2026-06-08T23:22:37.6729955Z           ]
2026-06-08T23:22:37.6730237Z         },
2026-06-08T23:22:37.6730537Z         "int": {
2026-06-08T23:22:37.6730857Z           "complete": false,
2026-06-08T23:22:37.6731157Z           "evidence": []
2026-06-08T23:22:37.6731443Z         },
2026-06-08T23:22:37.6731727Z         "unit": {
2026-06-08T23:22:37.6732035Z           "complete": true,
2026-06-08T23:22:37.6732335Z           "evidence": [
2026-06-08T23:22:37.6732621Z             {
2026-06-08T23:22:37.6733022Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.6733318Z               "line": 797
2026-06-08T23:22:37.6733609Z             },
2026-06-08T23:22:37.6733895Z             {
2026-06-08T23:22:37.6734400Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.6734707Z               "line": 811
2026-06-08T23:22:37.6734988Z             },
2026-06-08T23:22:37.6735279Z             {
2026-06-08T23:22:37.6735680Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.6735986Z               "line": 830
2026-06-08T23:22:37.6736362Z             },
2026-06-08T23:22:37.6736648Z             {
2026-06-08T23:22:37.6737119Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.6737424Z               "line": 847
2026-06-08T23:22:37.6737720Z             },
2026-06-08T23:22:37.6738001Z             {
2026-06-08T23:22:37.6738425Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.6738731Z               "line": 439
2026-06-08T23:22:37.6739016Z             }
2026-06-08T23:22:37.6739293Z           ]
2026-06-08T23:22:37.6739561Z         }
2026-06-08T23:22:37.6739845Z       }
2026-06-08T23:22:37.6740124Z     },
2026-06-08T23:22:37.6740410Z     {
2026-06-08T23:22:37.6740759Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-08T23:22:37.6743191Z       "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-08T23:22:37.6743534Z       "requiredStages": [
2026-06-08T23:22:37.6743821Z         "doc",
2026-06-08T23:22:37.6744106Z         "impl",
2026-06-08T23:22:37.6744393Z         "unit"
2026-06-08T23:22:37.6744680Z       ],
2026-06-08T23:22:37.6744969Z       "stages": {
2026-06-08T23:22:37.6745257Z         "doc": {
2026-06-08T23:22:37.6745572Z           "complete": true,
2026-06-08T23:22:37.6745873Z           "evidence": [
2026-06-08T23:22:37.6746158Z             {
2026-06-08T23:22:37.6746512Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-08T23:22:37.6746813Z               "line": 312
2026-06-08T23:22:37.6747195Z             }
2026-06-08T23:22:37.6747476Z           ]
2026-06-08T23:22:37.6747759Z         },
2026-06-08T23:22:37.6748050Z         "impl": {
2026-06-08T23:22:37.6748365Z           "complete": true,
2026-06-08T23:22:37.6748661Z           "evidence": [
2026-06-08T23:22:37.6748947Z             {
2026-06-08T23:22:37.6749343Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.6749648Z               "line": 85
2026-06-08T23:22:37.6749939Z             },
2026-06-08T23:22:37.6750220Z             {
2026-06-08T23:22:37.6750612Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.6750908Z               "line": 99
2026-06-08T23:22:37.6751194Z             },
2026-06-08T23:22:37.6751471Z             {
2026-06-08T23:22:37.6751876Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.6752172Z               "line": 55
2026-06-08T23:22:37.6752448Z             },
2026-06-08T23:22:37.6752716Z             {
2026-06-08T23:22:37.6753103Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.6753394Z               "line": 31
2026-06-08T23:22:37.6753680Z             },
2026-06-08T23:22:37.6753957Z             {
2026-06-08T23:22:37.6754358Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.6754657Z               "line": 187
2026-06-08T23:22:37.6754954Z             },
2026-06-08T23:22:37.6755241Z             {
2026-06-08T23:22:37.6755641Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.6755938Z               "line": 95
2026-06-08T23:22:37.6756209Z             },
2026-06-08T23:22:37.6756496Z             {
2026-06-08T23:22:37.6756900Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.6757258Z               "line": 29
2026-06-08T23:22:37.6757538Z             },
2026-06-08T23:22:37.6757821Z             {
2026-06-08T23:22:37.6758230Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.6758530Z               "line": 104
2026-06-08T23:22:37.6758920Z             },
2026-06-08T23:22:37.6759207Z             {
2026-06-08T23:22:37.6759636Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6759932Z               "line": 192
2026-06-08T23:22:37.6760218Z             },
2026-06-08T23:22:37.6760509Z             {
2026-06-08T23:22:37.6760908Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-08T23:22:37.6761298Z               "line": 28
2026-06-08T23:22:37.6761584Z             },
2026-06-08T23:22:37.6761869Z             {
2026-06-08T23:22:37.6762265Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-08T23:22:37.6762561Z               "line": 74
2026-06-08T23:22:37.6762848Z             },
2026-06-08T23:22:37.6763129Z             {
2026-06-08T23:22:37.6763546Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.6763840Z               "line": 32
2026-06-08T23:22:37.6764126Z             },
2026-06-08T23:22:37.6764407Z             {
2026-06-08T23:22:37.6764794Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.6765095Z               "line": 40
2026-06-08T23:22:37.6765380Z             },
2026-06-08T23:22:37.6765671Z             {
2026-06-08T23:22:37.6766056Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.6766354Z               "line": 184
2026-06-08T23:22:37.6766644Z             },
2026-06-08T23:22:37.6766935Z             {
2026-06-08T23:22:37.6767394Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-08T23:22:37.6767690Z               "line": 70
2026-06-08T23:22:37.6767976Z             },
2026-06-08T23:22:37.6768257Z             {
2026-06-08T23:22:37.6768639Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.6768937Z               "line": 223
2026-06-08T23:22:37.6769219Z             },
2026-06-08T23:22:37.6769509Z             {
2026-06-08T23:22:37.6769887Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-08T23:22:37.6770187Z               "line": 37
2026-06-08T23:22:37.6770482Z             },
2026-06-08T23:22:37.6770774Z             {
2026-06-08T23:22:37.6771170Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.6771468Z               "line": 38
2026-06-08T23:22:37.6771756Z             },
2026-06-08T23:22:37.6772029Z             {
2026-06-08T23:22:37.6772444Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.6772798Z               "line": 36
2026-06-08T23:22:37.6773083Z             },
2026-06-08T23:22:37.6773369Z             {
2026-06-08T23:22:37.6773766Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-08T23:22:37.6774069Z               "line": 40
2026-06-08T23:22:37.6774352Z             }
2026-06-08T23:22:37.6774638Z           ]
2026-06-08T23:22:37.6774919Z         },
2026-06-08T23:22:37.6775206Z         "int": {
2026-06-08T23:22:37.6775521Z           "complete": false,
2026-06-08T23:22:37.6775883Z           "evidence": []
2026-06-08T23:22:37.6776169Z         },
2026-06-08T23:22:37.6776459Z         "unit": {
2026-06-08T23:22:37.6776772Z           "complete": true,
2026-06-08T23:22:37.6777138Z           "evidence": [
2026-06-08T23:22:37.6777429Z             {
2026-06-08T23:22:37.6777854Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.6778154Z               "line": 212
2026-06-08T23:22:37.6778440Z             },
2026-06-08T23:22:37.6778726Z             {
2026-06-08T23:22:37.6779132Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-08T23:22:37.6779431Z               "line": 136
2026-06-08T23:22:37.6779707Z             },
2026-06-08T23:22:37.6779998Z             {
2026-06-08T23:22:37.6780428Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.6780733Z               "line": 683
2026-06-08T23:22:37.6781014Z             },
2026-06-08T23:22:37.6781304Z             {
2026-06-08T23:22:37.6781692Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.6781999Z               "line": 224
2026-06-08T23:22:37.6782389Z             },
2026-06-08T23:22:37.6782670Z             {
2026-06-08T23:22:37.6783076Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-08T23:22:37.6783372Z               "line": 157
2026-06-08T23:22:37.6783658Z             },
2026-06-08T23:22:37.6783939Z             {
2026-06-08T23:22:37.6784331Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.6784746Z               "line": 112
2026-06-08T23:22:37.6785027Z             },
2026-06-08T23:22:37.6785313Z             {
2026-06-08T23:22:37.6785690Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-08T23:22:37.6785995Z               "line": 157
2026-06-08T23:22:37.6786281Z             },
2026-06-08T23:22:37.6786564Z             {
2026-06-08T23:22:37.6787048Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.6787360Z               "line": 215
2026-06-08T23:22:37.6787646Z             },
2026-06-08T23:22:37.6787933Z             {
2026-06-08T23:22:37.6788342Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.6788647Z               "line": 140
2026-06-08T23:22:37.6788938Z             },
2026-06-08T23:22:37.6789224Z             {
2026-06-08T23:22:37.6789600Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-08T23:22:37.6789910Z               "line": 162
2026-06-08T23:22:37.6790192Z             }
2026-06-08T23:22:37.6790483Z           ]
2026-06-08T23:22:37.6790769Z         }
2026-06-08T23:22:37.6791065Z       }
2026-06-08T23:22:37.6791332Z     },
2026-06-08T23:22:37.6791603Z     {
2026-06-08T23:22:37.6791976Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-08T23:22:37.6792493Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-08T23:22:37.6792810Z       "requiredStages": [
2026-06-08T23:22:37.6793092Z         "impl",
2026-06-08T23:22:37.6793384Z         "unit"
2026-06-08T23:22:37.6793669Z       ],
2026-06-08T23:22:37.6793960Z       "stages": {
2026-06-08T23:22:37.6794308Z         "doc": {
2026-06-08T23:22:37.6794623Z           "complete": false,
2026-06-08T23:22:37.6794919Z           "evidence": []
2026-06-08T23:22:37.6795198Z         },
2026-06-08T23:22:37.6795478Z         "impl": {
2026-06-08T23:22:37.6795797Z           "complete": true,
2026-06-08T23:22:37.6796092Z           "evidence": [
2026-06-08T23:22:37.6796383Z             {
2026-06-08T23:22:37.6796766Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.6797133Z               "line": 95
2026-06-08T23:22:37.6797434Z             },
2026-06-08T23:22:37.6797717Z             {
2026-06-08T23:22:37.6798102Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.6798407Z               "line": 102
2026-06-08T23:22:37.6798693Z             }
2026-06-08T23:22:37.6798979Z           ]
2026-06-08T23:22:37.6799264Z         },
2026-06-08T23:22:37.6799551Z         "int": {
2026-06-08T23:22:37.6799870Z           "complete": false,
2026-06-08T23:22:37.6800175Z           "evidence": []
2026-06-08T23:22:37.6800456Z         },
2026-06-08T23:22:37.6800761Z         "unit": {
2026-06-08T23:22:37.6801071Z           "complete": true,
2026-06-08T23:22:37.6801377Z           "evidence": [
2026-06-08T23:22:37.6801658Z             {
2026-06-08T23:22:37.6802039Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.6802349Z               "line": 250
2026-06-08T23:22:37.6802649Z             },
2026-06-08T23:22:37.6802941Z             {
2026-06-08T23:22:37.6803319Z               "path": "crates/spt-store/src/proc.rs",
2026-06-08T23:22:37.6803624Z               "line": 198
2026-06-08T23:22:37.6803910Z             },
2026-06-08T23:22:37.6804201Z             {
2026-06-08T23:22:37.6804582Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.6804892Z               "line": 442
2026-06-08T23:22:37.6805183Z             },
2026-06-08T23:22:37.6805470Z             {
2026-06-08T23:22:37.6805848Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.6806147Z               "line": 475
2026-06-08T23:22:37.6806534Z             }
2026-06-08T23:22:37.6806820Z           ]
2026-06-08T23:22:37.6807178Z         }
2026-06-08T23:22:37.6807482Z       }
2026-06-08T23:22:37.6807768Z     },
2026-06-08T23:22:37.6808060Z     {
2026-06-08T23:22:37.6808410Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-08T23:22:37.6809010Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-08T23:22:37.6809424Z       "requiredStages": [
2026-06-08T23:22:37.6809711Z         "impl",
2026-06-08T23:22:37.6809996Z         "unit"
2026-06-08T23:22:37.6810283Z       ],
2026-06-08T23:22:37.6810570Z       "stages": {
2026-06-08T23:22:37.6810851Z         "doc": {
2026-06-08T23:22:37.6811164Z           "complete": false,
2026-06-08T23:22:37.6811465Z           "evidence": []
2026-06-08T23:22:37.6811745Z         },
2026-06-08T23:22:37.6812041Z         "impl": {
2026-06-08T23:22:37.6812346Z           "complete": true,
2026-06-08T23:22:37.6812642Z           "evidence": [
2026-06-08T23:22:37.6812923Z             {
2026-06-08T23:22:37.6813320Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6813614Z               "line": 242
2026-06-08T23:22:37.6813903Z             },
2026-06-08T23:22:37.6814194Z             {
2026-06-08T23:22:37.6814579Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6814880Z               "line": 287
2026-06-08T23:22:37.6815180Z             },
2026-06-08T23:22:37.6815461Z             {
2026-06-08T23:22:37.6815843Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6816138Z               "line": 299
2026-06-08T23:22:37.6816422Z             }
2026-06-08T23:22:37.6816703Z           ]
2026-06-08T23:22:37.6817056Z         },
2026-06-08T23:22:37.6817328Z         "int": {
2026-06-08T23:22:37.6817666Z           "complete": false,
2026-06-08T23:22:37.6817962Z           "evidence": []
2026-06-08T23:22:37.6818239Z         },
2026-06-08T23:22:37.6818535Z         "unit": {
2026-06-08T23:22:37.6818838Z           "complete": true,
2026-06-08T23:22:37.6819140Z           "evidence": [
2026-06-08T23:22:37.6819427Z             {
2026-06-08T23:22:37.6819804Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6820104Z               "line": 435
2026-06-08T23:22:37.6820385Z             },
2026-06-08T23:22:37.6820666Z             {
2026-06-08T23:22:37.6821034Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.6821344Z               "line": 479
2026-06-08T23:22:37.6821629Z             }
2026-06-08T23:22:37.6821905Z           ]
2026-06-08T23:22:37.6822192Z         }
2026-06-08T23:22:37.6822473Z       }
2026-06-08T23:22:37.6822750Z     },
2026-06-08T23:22:37.6823027Z     {
2026-06-08T23:22:37.6823337Z       "id": "REQ-INFRA-1",
2026-06-08T23:22:37.6823918Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-08T23:22:37.6824235Z       "requiredStages": [],
2026-06-08T23:22:37.6824529Z       "stages": {
2026-06-08T23:22:37.6824806Z         "doc": {
2026-06-08T23:22:37.6825120Z           "complete": false,
2026-06-08T23:22:37.6825416Z           "evidence": []
2026-06-08T23:22:37.6825698Z         },
2026-06-08T23:22:37.6825988Z         "impl": {
2026-06-08T23:22:37.6826294Z           "complete": false,
2026-06-08T23:22:37.6826590Z           "evidence": []
2026-06-08T23:22:37.6826870Z         },
2026-06-08T23:22:37.6827259Z         "int": {
2026-06-08T23:22:37.6827616Z           "complete": false,
2026-06-08T23:22:37.6827907Z           "evidence": []
2026-06-08T23:22:37.6828174Z         },
2026-06-08T23:22:37.6828456Z         "unit": {
2026-06-08T23:22:37.6828761Z           "complete": false,
2026-06-08T23:22:37.6829052Z           "evidence": []
2026-06-08T23:22:37.6829326Z         }
2026-06-08T23:22:37.6829596Z       }
2026-06-08T23:22:37.6829878Z     },
2026-06-08T23:22:37.6830150Z     {
2026-06-08T23:22:37.6830455Z       "id": "REQ-INST-1",
2026-06-08T23:22:37.6830969Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-08T23:22:37.6831390Z       "requiredStages": [],
2026-06-08T23:22:37.6831690Z       "stages": {
2026-06-08T23:22:37.6831977Z         "doc": {
2026-06-08T23:22:37.6832289Z           "complete": false,
2026-06-08T23:22:37.6832590Z           "evidence": []
2026-06-08T23:22:37.6832871Z         },
2026-06-08T23:22:37.6833176Z         "impl": {
2026-06-08T23:22:37.6833476Z           "complete": false,
2026-06-08T23:22:37.6833873Z           "evidence": []
2026-06-08T23:22:37.6834154Z         },
2026-06-08T23:22:37.6834435Z         "int": {
2026-06-08T23:22:37.6834748Z           "complete": false,
2026-06-08T23:22:37.6835046Z           "evidence": []
2026-06-08T23:22:37.6835328Z         },
2026-06-08T23:22:37.6835615Z         "unit": {
2026-06-08T23:22:37.6835929Z           "complete": false,
2026-06-08T23:22:37.6836234Z           "evidence": []
2026-06-08T23:22:37.6836521Z         }
2026-06-08T23:22:37.6836793Z       }
2026-06-08T23:22:37.6837146Z     },
2026-06-08T23:22:37.6837439Z     {
2026-06-08T23:22:37.6837742Z       "id": "REQ-INST-10",
2026-06-08T23:22:37.6838438Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-08T23:22:37.6838749Z       "requiredStages": [
2026-06-08T23:22:37.6839036Z         "impl",
2026-06-08T23:22:37.6839316Z         "unit"
2026-06-08T23:22:37.6839602Z       ],
2026-06-08T23:22:37.6839901Z       "stages": {
2026-06-08T23:22:37.6840180Z         "doc": {
2026-06-08T23:22:37.6840490Z           "complete": false,
2026-06-08T23:22:37.6840781Z           "evidence": []
2026-06-08T23:22:37.6841062Z         },
2026-06-08T23:22:37.6841334Z         "impl": {
2026-06-08T23:22:37.6841645Z           "complete": true,
2026-06-08T23:22:37.6841940Z           "evidence": [
2026-06-08T23:22:37.6842213Z             {
2026-06-08T23:22:37.6842627Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6842926Z               "line": 600
2026-06-08T23:22:37.6843217Z             },
2026-06-08T23:22:37.6843494Z             {
2026-06-08T23:22:37.6843903Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6844209Z               "line": 677
2026-06-08T23:22:37.6844476Z             },
2026-06-08T23:22:37.6844758Z             {
2026-06-08T23:22:37.6845130Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6845428Z               "line": 13
2026-06-08T23:22:37.6845707Z             },
2026-06-08T23:22:37.6845993Z             {
2026-06-08T23:22:37.6846370Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6846666Z               "line": 67
2026-06-08T23:22:37.6847034Z             },
2026-06-08T23:22:37.6847329Z             {
2026-06-08T23:22:37.6847706Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.6848004Z               "line": 18
2026-06-08T23:22:37.6848288Z             },
2026-06-08T23:22:37.6848569Z             {
2026-06-08T23:22:37.6848927Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.6849223Z               "line": 444
2026-06-08T23:22:37.6849504Z             }
2026-06-08T23:22:37.6849785Z           ]
2026-06-08T23:22:37.6850071Z         },
2026-06-08T23:22:37.6850356Z         "int": {
2026-06-08T23:22:37.6850669Z           "complete": false,
2026-06-08T23:22:37.6850965Z           "evidence": []
2026-06-08T23:22:37.6851246Z         },
2026-06-08T23:22:37.6851532Z         "unit": {
2026-06-08T23:22:37.6851847Z           "complete": true,
2026-06-08T23:22:37.6852143Z           "evidence": [
2026-06-08T23:22:37.6852424Z             {
2026-06-08T23:22:37.6852829Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6853126Z               "line": 883
2026-06-08T23:22:37.6853414Z             },
2026-06-08T23:22:37.6853696Z             {
2026-06-08T23:22:37.6854096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6854397Z               "line": 1212
2026-06-08T23:22:37.6854683Z             },
2026-06-08T23:22:37.6854964Z             {
2026-06-08T23:22:37.6855469Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6855779Z               "line": 1223
2026-06-08T23:22:37.6856059Z             },
2026-06-08T23:22:37.6856344Z             {
2026-06-08T23:22:37.6856750Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6857111Z               "line": 1239
2026-06-08T23:22:37.6857416Z             },
2026-06-08T23:22:37.6857880Z             {
2026-06-08T23:22:37.6858280Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6858569Z               "line": 1255
2026-06-08T23:22:37.6858853Z             },
2026-06-08T23:22:37.6859134Z             {
2026-06-08T23:22:37.6859536Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6859841Z               "line": 1277
2026-06-08T23:22:37.6860122Z             },
2026-06-08T23:22:37.6860407Z             {
2026-06-08T23:22:37.6860809Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6861117Z               "line": 1582
2026-06-08T23:22:37.6861401Z             },
2026-06-08T23:22:37.6861681Z             {
2026-06-08T23:22:37.6862054Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6862350Z               "line": 130
2026-06-08T23:22:37.6862640Z             },
2026-06-08T23:22:37.6862922Z             {
2026-06-08T23:22:37.6863294Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6863599Z               "line": 167
2026-06-08T23:22:37.6863883Z             },
2026-06-08T23:22:37.6864165Z             {
2026-06-08T23:22:37.6864532Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6864833Z               "line": 175
2026-06-08T23:22:37.6865114Z             },
2026-06-08T23:22:37.6865395Z             {
2026-06-08T23:22:37.6865767Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-08T23:22:37.6866067Z               "line": 183
2026-06-08T23:22:37.6866353Z             },
2026-06-08T23:22:37.6866633Z             {
2026-06-08T23:22:37.6867070Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.6867404Z               "line": 895
2026-06-08T23:22:37.6867700Z             }
2026-06-08T23:22:37.6867981Z           ]
2026-06-08T23:22:37.6868262Z         }
2026-06-08T23:22:37.6868544Z       }
2026-06-08T23:22:37.6868822Z     },
2026-06-08T23:22:37.6869101Z     {
2026-06-08T23:22:37.6869404Z       "id": "REQ-INST-11",
2026-06-08T23:22:37.6870096Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-08T23:22:37.6870406Z       "requiredStages": [
2026-06-08T23:22:37.6870692Z         "impl",
2026-06-08T23:22:37.6870968Z         "unit"
2026-06-08T23:22:37.6871239Z       ],
2026-06-08T23:22:37.6871520Z       "stages": {
2026-06-08T23:22:37.6871804Z         "doc": {
2026-06-08T23:22:37.6872114Z           "complete": false,
2026-06-08T23:22:37.6872420Z           "evidence": []
2026-06-08T23:22:37.6872695Z         },
2026-06-08T23:22:37.6872982Z         "impl": {
2026-06-08T23:22:37.6873283Z           "complete": true,
2026-06-08T23:22:37.6873578Z           "evidence": [
2026-06-08T23:22:37.6873864Z             {
2026-06-08T23:22:37.6874261Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6874564Z               "line": 466
2026-06-08T23:22:37.6874845Z             },
2026-06-08T23:22:37.6875130Z             {
2026-06-08T23:22:37.6875551Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6878971Z               "line": 265
2026-06-08T23:22:37.6879271Z             },
2026-06-08T23:22:37.6879546Z             {
2026-06-08T23:22:37.6879954Z               "path": "crates/spt-store/src/rename.rs",
2026-06-08T23:22:37.6880245Z               "line": 59
2026-06-08T23:22:37.6880526Z             },
2026-06-08T23:22:37.6880803Z             {
2026-06-08T23:22:37.6881156Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6881461Z               "line": 3397
2026-06-08T23:22:37.6881732Z             },
2026-06-08T23:22:37.6882009Z             {
2026-06-08T23:22:37.6882506Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6882816Z               "line": 4496
2026-06-08T23:22:37.6883093Z             }
2026-06-08T23:22:37.6883370Z           ]
2026-06-08T23:22:37.6883647Z         },
2026-06-08T23:22:37.6883923Z         "int": {
2026-06-08T23:22:37.6884233Z           "complete": false,
2026-06-08T23:22:37.6884623Z           "evidence": []
2026-06-08T23:22:37.6884900Z         },
2026-06-08T23:22:37.6885172Z         "unit": {
2026-06-08T23:22:37.6885463Z           "complete": true,
2026-06-08T23:22:37.6885759Z           "evidence": [
2026-06-08T23:22:37.6886044Z             {
2026-06-08T23:22:37.6886445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6886746Z               "line": 1382
2026-06-08T23:22:37.6887112Z             },
2026-06-08T23:22:37.6887404Z             {
2026-06-08T23:22:37.6887814Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6888120Z               "line": 1415
2026-06-08T23:22:37.6888411Z             },
2026-06-08T23:22:37.6888692Z             {
2026-06-08T23:22:37.6889111Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6889407Z               "line": 495
2026-06-08T23:22:37.6889692Z             },
2026-06-08T23:22:37.6889965Z             {
2026-06-08T23:22:37.6890347Z               "path": "crates/spt-store/src/rename.rs",
2026-06-08T23:22:37.6890653Z               "line": 160
2026-06-08T23:22:37.6890939Z             },
2026-06-08T23:22:37.6891216Z             {
2026-06-08T23:22:37.6891606Z               "path": "crates/spt-store/src/rename.rs",
2026-06-08T23:22:37.6891897Z               "line": 190
2026-06-08T23:22:37.6892179Z             },
2026-06-08T23:22:37.6892456Z             {
2026-06-08T23:22:37.6892835Z               "path": "crates/spt-store/src/rename.rs",
2026-06-08T23:22:37.6893134Z               "line": 225
2026-06-08T23:22:37.6893415Z             },
2026-06-08T23:22:37.6893696Z             {
2026-06-08T23:22:37.6894045Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6894345Z               "line": 4736
2026-06-08T23:22:37.6894631Z             }
2026-06-08T23:22:37.6894912Z           ]
2026-06-08T23:22:37.6895192Z         }
2026-06-08T23:22:37.6895465Z       }
2026-06-08T23:22:37.6895746Z     },
2026-06-08T23:22:37.6896018Z     {
2026-06-08T23:22:37.6896323Z       "id": "REQ-INST-12",
2026-06-08T23:22:37.6897353Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-08T23:22:37.6897659Z       "requiredStages": [
2026-06-08T23:22:37.6897936Z         "impl",
2026-06-08T23:22:37.6898210Z         "unit"
2026-06-08T23:22:37.6898479Z       ],
2026-06-08T23:22:37.6898765Z       "stages": {
2026-06-08T23:22:37.6899060Z         "doc": {
2026-06-08T23:22:37.6899370Z           "complete": false,
2026-06-08T23:22:37.6899699Z           "evidence": []
2026-06-08T23:22:37.6899982Z         },
2026-06-08T23:22:37.6900262Z         "impl": {
2026-06-08T23:22:37.6900563Z           "complete": true,
2026-06-08T23:22:37.6900853Z           "evidence": [
2026-06-08T23:22:37.6901137Z             {
2026-06-08T23:22:37.6901552Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6901842Z               "line": 518
2026-06-08T23:22:37.6902115Z             },
2026-06-08T23:22:37.6902392Z             {
2026-06-08T23:22:37.6902810Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6903101Z               "line": 611
2026-06-08T23:22:37.6903382Z             },
2026-06-08T23:22:37.6903660Z             {
2026-06-08T23:22:37.6904052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6904386Z               "line": 691
2026-06-08T23:22:37.6904667Z             },
2026-06-08T23:22:37.6904949Z             {
2026-06-08T23:22:37.6905330Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6905621Z               "line": 87
2026-06-08T23:22:37.6905903Z             },
2026-06-08T23:22:37.6906283Z             {
2026-06-08T23:22:37.6906664Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6907026Z               "line": 216
2026-06-08T23:22:37.6907336Z             },
2026-06-08T23:22:37.6907617Z             {
2026-06-08T23:22:37.6908013Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6908409Z               "line": 135
2026-06-08T23:22:37.6908693Z             }
2026-06-08T23:22:37.6908972Z           ]
2026-06-08T23:22:37.6909245Z         },
2026-06-08T23:22:37.6909526Z         "int": {
2026-06-08T23:22:37.6909827Z           "complete": false,
2026-06-08T23:22:37.6910118Z           "evidence": []
2026-06-08T23:22:37.6910390Z         },
2026-06-08T23:22:37.6910671Z         "unit": {
2026-06-08T23:22:37.6910976Z           "complete": true,
2026-06-08T23:22:37.6911265Z           "evidence": [
2026-06-08T23:22:37.6911539Z             {
2026-06-08T23:22:37.6911935Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6912231Z               "line": 1457
2026-06-08T23:22:37.6912512Z             },
2026-06-08T23:22:37.6912784Z             {
2026-06-08T23:22:37.6913185Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6913470Z               "line": 1480
2026-06-08T23:22:37.6913775Z             },
2026-06-08T23:22:37.6914058Z             {
2026-06-08T23:22:37.6914463Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6914769Z               "line": 1517
2026-06-08T23:22:37.6915045Z             },
2026-06-08T23:22:37.6915336Z             {
2026-06-08T23:22:37.6915718Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.6916013Z               "line": 350
2026-06-08T23:22:37.6916294Z             },
2026-06-08T23:22:37.6916566Z             {
2026-06-08T23:22:37.6917066Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6917444Z               "line": 172
2026-06-08T23:22:37.6917730Z             },
2026-06-08T23:22:37.6918016Z             {
2026-06-08T23:22:37.6918421Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6918718Z               "line": 193
2026-06-08T23:22:37.6918994Z             },
2026-06-08T23:22:37.6919292Z             {
2026-06-08T23:22:37.6919681Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6919987Z               "line": 219
2026-06-08T23:22:37.6920267Z             }
2026-06-08T23:22:37.6920548Z           ]
2026-06-08T23:22:37.6920830Z         }
2026-06-08T23:22:37.6921102Z       }
2026-06-08T23:22:37.6921378Z     },
2026-06-08T23:22:37.6921646Z     {
2026-06-08T23:22:37.6921954Z       "id": "REQ-INST-13",
2026-06-08T23:22:37.6922544Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-08T23:22:37.6922858Z       "requiredStages": [
2026-06-08T23:22:37.6923139Z         "impl",
2026-06-08T23:22:37.6923425Z         "unit"
2026-06-08T23:22:37.6923701Z       ],
2026-06-08T23:22:37.6923988Z       "stages": {
2026-06-08T23:22:37.6924283Z         "doc": {
2026-06-08T23:22:37.6924591Z           "complete": false,
2026-06-08T23:22:37.6924892Z           "evidence": []
2026-06-08T23:22:37.6925167Z         },
2026-06-08T23:22:37.6925449Z         "impl": {
2026-06-08T23:22:37.6925754Z           "complete": true,
2026-06-08T23:22:37.6926045Z           "evidence": [
2026-06-08T23:22:37.6926331Z             {
2026-06-08T23:22:37.6926713Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.6927090Z               "line": 100
2026-06-08T23:22:37.6927375Z             },
2026-06-08T23:22:37.6927650Z             {
2026-06-08T23:22:37.6928061Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6928357Z               "line": 158
2026-06-08T23:22:37.6928638Z             }
2026-06-08T23:22:37.6928919Z           ]
2026-06-08T23:22:37.6929200Z         },
2026-06-08T23:22:37.6929482Z         "int": {
2026-06-08T23:22:37.6929795Z           "complete": false,
2026-06-08T23:22:37.6930222Z           "evidence": []
2026-06-08T23:22:37.6930503Z         },
2026-06-08T23:22:37.6930789Z         "unit": {
2026-06-08T23:22:37.6931094Z           "complete": true,
2026-06-08T23:22:37.6931395Z           "evidence": [
2026-06-08T23:22:37.6931676Z             {
2026-06-08T23:22:37.6932082Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6932472Z               "line": 248
2026-06-08T23:22:37.6932750Z             },
2026-06-08T23:22:37.6933031Z             {
2026-06-08T23:22:37.6933438Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-08T23:22:37.6933739Z               "line": 266
2026-06-08T23:22:37.6934014Z             }
2026-06-08T23:22:37.6934295Z           ]
2026-06-08T23:22:37.6934567Z         }
2026-06-08T23:22:37.6934838Z       }
2026-06-08T23:22:37.6935113Z     },
2026-06-08T23:22:37.6935385Z     {
2026-06-08T23:22:37.6935685Z       "id": "REQ-INST-14",
2026-06-08T23:22:37.6936925Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-08T23:22:37.6937349Z       "requiredStages": [
2026-06-08T23:22:37.6937640Z         "doc",
2026-06-08T23:22:37.6937915Z         "impl",
2026-06-08T23:22:37.6938197Z         "unit"
2026-06-08T23:22:37.6938468Z       ],
2026-06-08T23:22:37.6938754Z       "stages": {
2026-06-08T23:22:37.6939045Z         "doc": {
2026-06-08T23:22:37.6939350Z           "complete": true,
2026-06-08T23:22:37.6939640Z           "evidence": [
2026-06-08T23:22:37.6939918Z             {
2026-06-08T23:22:37.6940233Z               "path": "CONTEXT.md",
2026-06-08T23:22:37.6940527Z               "line": 425
2026-06-08T23:22:37.6940812Z             },
2026-06-08T23:22:37.6941092Z             {
2026-06-08T23:22:37.6941422Z               "path": "docs/STORAGE.md",
2026-06-08T23:22:37.6941717Z               "line": 49
2026-06-08T23:22:37.6941988Z             }
2026-06-08T23:22:37.6942270Z           ]
2026-06-08T23:22:37.6942551Z         },
2026-06-08T23:22:37.6942846Z         "impl": {
2026-06-08T23:22:37.6943153Z           "complete": true,
2026-06-08T23:22:37.6943454Z           "evidence": [
2026-06-08T23:22:37.6943731Z             {
2026-06-08T23:22:37.6944154Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6944450Z               "line": 388
2026-06-08T23:22:37.6944727Z             },
2026-06-08T23:22:37.6945009Z             {
2026-06-08T23:22:37.6945413Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6945711Z               "line": 330
2026-06-08T23:22:37.6945998Z             },
2026-06-08T23:22:37.6946274Z             {
2026-06-08T23:22:37.6946645Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6947022Z               "line": 211
2026-06-08T23:22:37.6947298Z             },
2026-06-08T23:22:37.6947585Z             {
2026-06-08T23:22:37.6947927Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6948224Z               "line": 974
2026-06-08T23:22:37.6948500Z             }
2026-06-08T23:22:37.6948781Z           ]
2026-06-08T23:22:37.6949081Z         },
2026-06-08T23:22:37.6949367Z         "int": {
2026-06-08T23:22:37.6949682Z           "complete": false,
2026-06-08T23:22:37.6949982Z           "evidence": []
2026-06-08T23:22:37.6950263Z         },
2026-06-08T23:22:37.6950548Z         "unit": {
2026-06-08T23:22:37.6950863Z           "complete": true,
2026-06-08T23:22:37.6951152Z           "evidence": [
2026-06-08T23:22:37.6951433Z             {
2026-06-08T23:22:37.6951866Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6952162Z               "line": 1081
2026-06-08T23:22:37.6952444Z             },
2026-06-08T23:22:37.6952715Z             {
2026-06-08T23:22:37.6953125Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6953430Z               "line": 895
2026-06-08T23:22:37.6953718Z             },
2026-06-08T23:22:37.6954005Z             {
2026-06-08T23:22:37.6954520Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.6954830Z               "line": 1153
2026-06-08T23:22:37.6955110Z             },
2026-06-08T23:22:37.6955397Z             {
2026-06-08T23:22:37.6955774Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.6956072Z               "line": 463
2026-06-08T23:22:37.6956361Z             },
2026-06-08T23:22:37.6956747Z             {
2026-06-08T23:22:37.6957191Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6957496Z               "line": 4812
2026-06-08T23:22:37.6957783Z             }
2026-06-08T23:22:37.6958060Z           ]
2026-06-08T23:22:37.6958336Z         }
2026-06-08T23:22:37.6958621Z       }
2026-06-08T23:22:37.6958901Z     },
2026-06-08T23:22:37.6959183Z     {
2026-06-08T23:22:37.6959479Z       "id": "REQ-INST-15",
2026-06-08T23:22:37.6961825Z       "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-08T23:22:37.6962135Z       "requiredStages": [
2026-06-08T23:22:37.6962417Z         "doc",
2026-06-08T23:22:37.6962704Z         "impl",
2026-06-08T23:22:37.6962980Z         "unit"
2026-06-08T23:22:37.6963262Z       ],
2026-06-08T23:22:37.6963558Z       "stages": {
2026-06-08T23:22:37.6963844Z         "doc": {
2026-06-08T23:22:37.6964147Z           "complete": true,
2026-06-08T23:22:37.6964446Z           "evidence": [
2026-06-08T23:22:37.6964717Z             {
2026-06-08T23:22:37.6965275Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-08T23:22:37.6965571Z               "line": 3
2026-06-08T23:22:37.6965866Z             }
2026-06-08T23:22:37.6966152Z           ]
2026-06-08T23:22:37.6966440Z         },
2026-06-08T23:22:37.6966728Z         "impl": {
2026-06-08T23:22:37.6967114Z           "complete": true,
2026-06-08T23:22:37.6967422Z           "evidence": [
2026-06-08T23:22:37.6967718Z             {
2026-06-08T23:22:37.6968151Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.6968452Z               "line": 337
2026-06-08T23:22:37.6968733Z             },
2026-06-08T23:22:37.6969015Z             {
2026-06-08T23:22:37.6969386Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.6969687Z               "line": 60
2026-06-08T23:22:37.6969973Z             },
2026-06-08T23:22:37.6970259Z             {
2026-06-08T23:22:37.6970678Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6970974Z               "line": 336
2026-06-08T23:22:37.6971246Z             },
2026-06-08T23:22:37.6971537Z             {
2026-06-08T23:22:37.6971950Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6972249Z               "line": 385
2026-06-08T23:22:37.6972540Z             },
2026-06-08T23:22:37.6972821Z             {
2026-06-08T23:22:37.6973202Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6973493Z               "line": 19
2026-06-08T23:22:37.6973780Z             },
2026-06-08T23:22:37.6974057Z             {
2026-06-08T23:22:37.6974433Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6974731Z               "line": 70
2026-06-08T23:22:37.6975025Z             },
2026-06-08T23:22:37.6975316Z             {
2026-06-08T23:22:37.6975688Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6975993Z               "line": 96
2026-06-08T23:22:37.6976275Z             },
2026-06-08T23:22:37.6976546Z             {
2026-06-08T23:22:37.6976914Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6977279Z               "line": 121
2026-06-08T23:22:37.6977577Z             },
2026-06-08T23:22:37.6977848Z             {
2026-06-08T23:22:37.6978221Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6978512Z               "line": 172
2026-06-08T23:22:37.6978802Z             },
2026-06-08T23:22:37.6979190Z             {
2026-06-08T23:22:37.6979617Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.6979928Z               "line": 143
2026-06-08T23:22:37.6980209Z             },
2026-06-08T23:22:37.6980495Z             {
2026-06-08T23:22:37.6980842Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6981238Z               "line": 866
2026-06-08T23:22:37.6981524Z             }
2026-06-08T23:22:37.6981801Z           ]
2026-06-08T23:22:37.6982088Z         },
2026-06-08T23:22:37.6982374Z         "int": {
2026-06-08T23:22:37.6982686Z           "complete": false,
2026-06-08T23:22:37.6982999Z           "evidence": []
2026-06-08T23:22:37.6983290Z         },
2026-06-08T23:22:37.6983580Z         "unit": {
2026-06-08T23:22:37.6983890Z           "complete": true,
2026-06-08T23:22:37.6984196Z           "evidence": [
2026-06-08T23:22:37.6984482Z             {
2026-06-08T23:22:37.6984912Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6985220Z               "line": 545
2026-06-08T23:22:37.6985513Z             },
2026-06-08T23:22:37.6985799Z             {
2026-06-08T23:22:37.6986215Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.6986525Z               "line": 606
2026-06-08T23:22:37.6986806Z             },
2026-06-08T23:22:37.6987188Z             {
2026-06-08T23:22:37.6987597Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6987900Z               "line": 213
2026-06-08T23:22:37.6988181Z             },
2026-06-08T23:22:37.6988471Z             {
2026-06-08T23:22:37.6988853Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6989153Z               "line": 249
2026-06-08T23:22:37.6989445Z             },
2026-06-08T23:22:37.6989731Z             {
2026-06-08T23:22:37.6990094Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6990394Z               "line": 262
2026-06-08T23:22:37.6990673Z             },
2026-06-08T23:22:37.6990958Z             {
2026-06-08T23:22:37.6991322Z               "path": "crates/spt-store/src/home.rs",
2026-06-08T23:22:37.6991627Z               "line": 338
2026-06-08T23:22:37.6991913Z             },
2026-06-08T23:22:37.6992179Z             {
2026-06-08T23:22:37.6992547Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.6992843Z               "line": 496
2026-06-08T23:22:37.6993133Z             },
2026-06-08T23:22:37.6993421Z             {
2026-06-08T23:22:37.6993778Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6994083Z               "line": 4749
2026-06-08T23:22:37.6994370Z             },
2026-06-08T23:22:37.6994656Z             {
2026-06-08T23:22:37.6995004Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.6995309Z               "line": 6122
2026-06-08T23:22:37.6995590Z             }
2026-06-08T23:22:37.6995875Z           ]
2026-06-08T23:22:37.6996160Z         }
2026-06-08T23:22:37.6996436Z       }
2026-06-08T23:22:37.6996717Z     },
2026-06-08T23:22:37.6997090Z     {
2026-06-08T23:22:37.6997405Z       "id": "REQ-INST-2",
2026-06-08T23:22:37.6997791Z       "title": "Per-node files, synced Psyche mind",
2026-06-08T23:22:37.6998105Z       "requiredStages": [
2026-06-08T23:22:37.6998399Z         "impl",
2026-06-08T23:22:37.6998683Z         "unit"
2026-06-08T23:22:37.6998974Z       ],
2026-06-08T23:22:37.6999274Z       "stages": {
2026-06-08T23:22:37.6999560Z         "doc": {
2026-06-08T23:22:37.6999870Z           "complete": false,
2026-06-08T23:22:37.7000171Z           "evidence": []
2026-06-08T23:22:37.7000456Z         },
2026-06-08T23:22:37.7000743Z         "impl": {
2026-06-08T23:22:37.7001053Z           "complete": true,
2026-06-08T23:22:37.7001352Z           "evidence": [
2026-06-08T23:22:37.7001630Z             {
2026-06-08T23:22:37.7002040Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7002339Z               "line": 86
2026-06-08T23:22:37.7002626Z             },
2026-06-08T23:22:37.7002912Z             {
2026-06-08T23:22:37.7003398Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.7003702Z               "line": 28
2026-06-08T23:22:37.7003986Z             },
2026-06-08T23:22:37.7004268Z             {
2026-06-08T23:22:37.7004652Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.7004949Z               "line": 74
2026-06-08T23:22:37.7005326Z             },
2026-06-08T23:22:37.7005607Z             {
2026-06-08T23:22:37.7006003Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.7006316Z               "line": 96
2026-06-08T23:22:37.7006605Z             },
2026-06-08T23:22:37.7006886Z             {
2026-06-08T23:22:37.7007364Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.7007660Z               "line": 81
2026-06-08T23:22:37.7007955Z             },
2026-06-08T23:22:37.7008235Z             {
2026-06-08T23:22:37.7008618Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-08T23:22:37.7008926Z               "line": 118
2026-06-08T23:22:37.7009210Z             }
2026-06-08T23:22:37.7009500Z           ]
2026-06-08T23:22:37.7009782Z         },
2026-06-08T23:22:37.7010073Z         "int": {
2026-06-08T23:22:37.7010383Z           "complete": false,
2026-06-08T23:22:37.7010683Z           "evidence": []
2026-06-08T23:22:37.7010965Z         },
2026-06-08T23:22:37.7011256Z         "unit": {
2026-06-08T23:22:37.7011575Z           "complete": true,
2026-06-08T23:22:37.7011875Z           "evidence": [
2026-06-08T23:22:37.7012156Z             {
2026-06-08T23:22:37.7012538Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-08T23:22:37.7012838Z               "line": 212
2026-06-08T23:22:37.7013124Z             },
2026-06-08T23:22:37.7013411Z             {
2026-06-08T23:22:37.7013787Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.7014088Z               "line": 258
2026-06-08T23:22:37.7014372Z             }
2026-06-08T23:22:37.7014650Z           ]
2026-06-08T23:22:37.7014936Z         }
2026-06-08T23:22:37.7015222Z       }
2026-06-08T23:22:37.7015500Z     },
2026-06-08T23:22:37.7015781Z     {
2026-06-08T23:22:37.7016082Z       "id": "REQ-INST-3",
2026-06-08T23:22:37.7016559Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-08T23:22:37.7016876Z       "requiredStages": [
2026-06-08T23:22:37.7017260Z         "doc",
2026-06-08T23:22:37.7017557Z         "impl",
2026-06-08T23:22:37.7017842Z         "unit"
2026-06-08T23:22:37.7018118Z       ],
2026-06-08T23:22:37.7018400Z       "stages": {
2026-06-08T23:22:37.7018681Z         "doc": {
2026-06-08T23:22:37.7018991Z           "complete": true,
2026-06-08T23:22:37.7019296Z           "evidence": [
2026-06-08T23:22:37.7019581Z             {
2026-06-08T23:22:37.7019947Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-08T23:22:37.7020243Z               "line": 3
2026-06-08T23:22:37.7020528Z             }
2026-06-08T23:22:37.7020811Z           ]
2026-06-08T23:22:37.7021092Z         },
2026-06-08T23:22:37.7021383Z         "impl": {
2026-06-08T23:22:37.7021697Z           "complete": true,
2026-06-08T23:22:37.7022002Z           "evidence": [
2026-06-08T23:22:37.7022300Z             {
2026-06-08T23:22:37.7022692Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.7022992Z               "line": 70
2026-06-08T23:22:37.7023278Z             },
2026-06-08T23:22:37.7023574Z             {
2026-06-08T23:22:37.7023976Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7024281Z               "line": 480
2026-06-08T23:22:37.7024572Z             },
2026-06-08T23:22:37.7024855Z             {
2026-06-08T23:22:37.7025259Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7025559Z               "line": 202
2026-06-08T23:22:37.7025845Z             },
2026-06-08T23:22:37.7026126Z             {
2026-06-08T23:22:37.7026538Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7026838Z               "line": 291
2026-06-08T23:22:37.7027328Z             },
2026-06-08T23:22:37.7027630Z             {
2026-06-08T23:22:37.7028035Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7028340Z               "line": 325
2026-06-08T23:22:37.7028622Z             },
2026-06-08T23:22:37.7028908Z             {
2026-06-08T23:22:37.7029313Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7029705Z               "line": 298
2026-06-08T23:22:37.7029989Z             },
2026-06-08T23:22:37.7030258Z             {
2026-06-08T23:22:37.7030679Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7030979Z               "line": 218
2026-06-08T23:22:37.7031274Z             },
2026-06-08T23:22:37.7031565Z             {
2026-06-08T23:22:37.7031986Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7032296Z               "line": 374
2026-06-08T23:22:37.7032587Z             },
2026-06-08T23:22:37.7032880Z             {
2026-06-08T23:22:37.7033291Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7033592Z               "line": 45
2026-06-08T23:22:37.7033882Z             },
2026-06-08T23:22:37.7034158Z             {
2026-06-08T23:22:37.7034560Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7034856Z               "line": 114
2026-06-08T23:22:37.7035146Z             },
2026-06-08T23:22:37.7035439Z             {
2026-06-08T23:22:37.7035843Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7036144Z               "line": 152
2026-06-08T23:22:37.7036434Z             },
2026-06-08T23:22:37.7036725Z             {
2026-06-08T23:22:37.7037202Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7037507Z               "line": 168
2026-06-08T23:22:37.7037794Z             },
2026-06-08T23:22:37.7038083Z             {
2026-06-08T23:22:37.7038477Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7038773Z               "line": 178
2026-06-08T23:22:37.7039064Z             },
2026-06-08T23:22:37.7039350Z             {
2026-06-08T23:22:37.7039745Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7040046Z               "line": 210
2026-06-08T23:22:37.7040337Z             },
2026-06-08T23:22:37.7040621Z             {
2026-06-08T23:22:37.7041010Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7041320Z               "line": 287
2026-06-08T23:22:37.7041607Z             },
2026-06-08T23:22:37.7041888Z             {
2026-06-08T23:22:37.7042289Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7042584Z               "line": 311
2026-06-08T23:22:37.7042865Z             },
2026-06-08T23:22:37.7043152Z             {
2026-06-08T23:22:37.7043546Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7043842Z               "line": 387
2026-06-08T23:22:37.7044132Z             },
2026-06-08T23:22:37.7044418Z             {
2026-06-08T23:22:37.7044815Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7045115Z               "line": 436
2026-06-08T23:22:37.7045401Z             },
2026-06-08T23:22:37.7045682Z             {
2026-06-08T23:22:37.7046076Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-08T23:22:37.7046379Z               "line": 37
2026-06-08T23:22:37.7046670Z             },
2026-06-08T23:22:37.7047038Z             {
2026-06-08T23:22:37.7047442Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7047733Z               "line": 62
2026-06-08T23:22:37.7048021Z             },
2026-06-08T23:22:37.7048302Z             {
2026-06-08T23:22:37.7048667Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.7048965Z               "line": 190
2026-06-08T23:22:37.7049251Z             },
2026-06-08T23:22:37.7049537Z             {
2026-06-08T23:22:37.7049886Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7050186Z               "line": 1122
2026-06-08T23:22:37.7050587Z             }
2026-06-08T23:22:37.7050869Z           ]
2026-06-08T23:22:37.7051157Z         },
2026-06-08T23:22:37.7051441Z         "int": {
2026-06-08T23:22:37.7051746Z           "complete": false,
2026-06-08T23:22:37.7052032Z           "evidence": []
2026-06-08T23:22:37.7052314Z         },
2026-06-08T23:22:37.7052590Z         "unit": {
2026-06-08T23:22:37.7053000Z           "complete": true,
2026-06-08T23:22:37.7053301Z           "evidence": [
2026-06-08T23:22:37.7053572Z             {
2026-06-08T23:22:37.7053962Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.7054258Z               "line": 360
2026-06-08T23:22:37.7054535Z             },
2026-06-08T23:22:37.7054812Z             {
2026-06-08T23:22:37.7055212Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7055508Z               "line": 664
2026-06-08T23:22:37.7055793Z             },
2026-06-08T23:22:37.7056089Z             {
2026-06-08T23:22:37.7056498Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7056796Z               "line": 721
2026-06-08T23:22:37.7057163Z             },
2026-06-08T23:22:37.7057444Z             {
2026-06-08T23:22:37.7057875Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7058174Z               "line": 1182
2026-06-08T23:22:37.7058465Z             },
2026-06-08T23:22:37.7058751Z             {
2026-06-08T23:22:37.7059184Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7059496Z               "line": 1322
2026-06-08T23:22:37.7059778Z             },
2026-06-08T23:22:37.7060059Z             {
2026-06-08T23:22:37.7060451Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7060756Z               "line": 447
2026-06-08T23:22:37.7061036Z             },
2026-06-08T23:22:37.7061323Z             {
2026-06-08T23:22:37.7061727Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7062025Z               "line": 483
2026-06-08T23:22:37.7062320Z             },
2026-06-08T23:22:37.7062611Z             {
2026-06-08T23:22:37.7063008Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7063308Z               "line": 538
2026-06-08T23:22:37.7063599Z             },
2026-06-08T23:22:37.7063880Z             {
2026-06-08T23:22:37.7064267Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7064579Z               "line": 695
2026-06-08T23:22:37.7064865Z             },
2026-06-08T23:22:37.7065152Z             {
2026-06-08T23:22:37.7065543Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7065853Z               "line": 929
2026-06-08T23:22:37.7066149Z             },
2026-06-08T23:22:37.7066435Z             {
2026-06-08T23:22:37.7066827Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7067206Z               "line": 943
2026-06-08T23:22:37.7067486Z             },
2026-06-08T23:22:37.7067762Z             {
2026-06-08T23:22:37.7068154Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7068454Z               "line": 1193
2026-06-08T23:22:37.7068734Z             },
2026-06-08T23:22:37.7069016Z             {
2026-06-08T23:22:37.7069384Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.7069701Z               "line": 413
2026-06-08T23:22:37.7069989Z             },
2026-06-08T23:22:37.7070271Z             {
2026-06-08T23:22:37.7070629Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7070924Z               "line": 4773
2026-06-08T23:22:37.7071210Z             }
2026-06-08T23:22:37.7071492Z           ]
2026-06-08T23:22:37.7071782Z         }
2026-06-08T23:22:37.7072069Z       }
2026-06-08T23:22:37.7072349Z     },
2026-06-08T23:22:37.7072638Z     {
2026-06-08T23:22:37.7072943Z       "id": "REQ-INST-4",
2026-06-08T23:22:37.7073510Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-08T23:22:37.7073825Z       "requiredStages": [
2026-06-08T23:22:37.7074222Z         "impl",
2026-06-08T23:22:37.7074517Z         "unit"
2026-06-08T23:22:37.7074798Z       ],
2026-06-08T23:22:37.7075092Z       "stages": {
2026-06-08T23:22:37.7075383Z         "doc": {
2026-06-08T23:22:37.7075693Z           "complete": false,
2026-06-08T23:22:37.7075998Z           "evidence": []
2026-06-08T23:22:37.7076285Z         },
2026-06-08T23:22:37.7076671Z         "impl": {
2026-06-08T23:22:37.7077058Z           "complete": true,
2026-06-08T23:22:37.7077373Z           "evidence": [
2026-06-08T23:22:37.7077661Z             {
2026-06-08T23:22:37.7078074Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7078380Z               "line": 292
2026-06-08T23:22:37.7078665Z             },
2026-06-08T23:22:37.7078961Z             {
2026-06-08T23:22:37.7079358Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7079663Z               "line": 202
2026-06-08T23:22:37.7079944Z             },
2026-06-08T23:22:37.7080233Z             {
2026-06-08T23:22:37.7080622Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7080913Z               "line": 234
2026-06-08T23:22:37.7081199Z             },
2026-06-08T23:22:37.7081484Z             {
2026-06-08T23:22:37.7081886Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7082176Z               "line": 274
2026-06-08T23:22:37.7082462Z             }
2026-06-08T23:22:37.7082748Z           ]
2026-06-08T23:22:37.7083021Z         },
2026-06-08T23:22:37.7083304Z         "int": {
2026-06-08T23:22:37.7083614Z           "complete": false,
2026-06-08T23:22:37.7083918Z           "evidence": []
2026-06-08T23:22:37.7084195Z         },
2026-06-08T23:22:37.7084472Z         "unit": {
2026-06-08T23:22:37.7084787Z           "complete": true,
2026-06-08T23:22:37.7085082Z           "evidence": [
2026-06-08T23:22:37.7085358Z             {
2026-06-08T23:22:37.7085763Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.7086068Z               "line": 716
2026-06-08T23:22:37.7089182Z             },
2026-06-08T23:22:37.7089497Z             {
2026-06-08T23:22:37.7089913Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7090219Z               "line": 559
2026-06-08T23:22:37.7090504Z             },
2026-06-08T23:22:37.7090783Z             {
2026-06-08T23:22:37.7091192Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7091502Z               "line": 666
2026-06-08T23:22:37.7091792Z             },
2026-06-08T23:22:37.7092073Z             {
2026-06-08T23:22:37.7092470Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7092776Z               "line": 748
2026-06-08T23:22:37.7093061Z             }
2026-06-08T23:22:37.7093346Z           ]
2026-06-08T23:22:37.7093624Z         }
2026-06-08T23:22:37.7093906Z       }
2026-06-08T23:22:37.7094184Z     },
2026-06-08T23:22:37.7094464Z     {
2026-06-08T23:22:37.7094770Z       "id": "REQ-INST-5",
2026-06-08T23:22:37.7095357Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-08T23:22:37.7095671Z       "requiredStages": [
2026-06-08T23:22:37.7095958Z         "impl",
2026-06-08T23:22:37.7096241Z         "unit",
2026-06-08T23:22:37.7096527Z         "int"
2026-06-08T23:22:37.7096804Z       ],
2026-06-08T23:22:37.7097166Z       "stages": {
2026-06-08T23:22:37.7097457Z         "doc": {
2026-06-08T23:22:37.7097767Z           "complete": false,
2026-06-08T23:22:37.7098058Z           "evidence": []
2026-06-08T23:22:37.7098330Z         },
2026-06-08T23:22:37.7098621Z         "impl": {
2026-06-08T23:22:37.7098929Z           "complete": true,
2026-06-08T23:22:37.7099214Z           "evidence": [
2026-06-08T23:22:37.7099495Z             {
2026-06-08T23:22:37.7099910Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7100205Z               "line": 41
2026-06-08T23:22:37.7100493Z             },
2026-06-08T23:22:37.7100779Z             {
2026-06-08T23:22:37.7101296Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7101599Z               "line": 68
2026-06-08T23:22:37.7101885Z             },
2026-06-08T23:22:37.7102162Z             {
2026-06-08T23:22:37.7102548Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7102853Z               "line": 99
2026-06-08T23:22:37.7103135Z             },
2026-06-08T23:22:37.7103516Z             {
2026-06-08T23:22:37.7103896Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7104194Z               "line": 183
2026-06-08T23:22:37.7104481Z             },
2026-06-08T23:22:37.7104762Z             {
2026-06-08T23:22:37.7105143Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7105448Z               "line": 314
2026-06-08T23:22:37.7105729Z             }
2026-06-08T23:22:37.7106007Z           ]
2026-06-08T23:22:37.7106284Z         },
2026-06-08T23:22:37.7106570Z         "int": {
2026-06-08T23:22:37.7106883Z           "complete": true,
2026-06-08T23:22:37.7107284Z           "evidence": [
2026-06-08T23:22:37.7107575Z             {
2026-06-08T23:22:37.7107989Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.7108289Z               "line": 156
2026-06-08T23:22:37.7108575Z             },
2026-06-08T23:22:37.7108858Z             {
2026-06-08T23:22:37.7109275Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-08T23:22:37.7109588Z               "line": 102
2026-06-08T23:22:37.7109870Z             },
2026-06-08T23:22:37.7110146Z             {
2026-06-08T23:22:37.7110555Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7110870Z               "line": 635
2026-06-08T23:22:37.7111166Z             },
2026-06-08T23:22:37.7111447Z             {
2026-06-08T23:22:37.7111857Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7112164Z               "line": 972
2026-06-08T23:22:37.7112445Z             }
2026-06-08T23:22:37.7112727Z           ]
2026-06-08T23:22:37.7113008Z         },
2026-06-08T23:22:37.7113314Z         "unit": {
2026-06-08T23:22:37.7113629Z           "complete": true,
2026-06-08T23:22:37.7113930Z           "evidence": [
2026-06-08T23:22:37.7114211Z             {
2026-06-08T23:22:37.7114585Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7114884Z               "line": 531
2026-06-08T23:22:37.7115165Z             },
2026-06-08T23:22:37.7115456Z             {
2026-06-08T23:22:37.7115829Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7116134Z               "line": 574
2026-06-08T23:22:37.7116415Z             },
2026-06-08T23:22:37.7116700Z             {
2026-06-08T23:22:37.7117168Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.7117463Z               "line": 219
2026-06-08T23:22:37.7117749Z             }
2026-06-08T23:22:37.7118024Z           ]
2026-06-08T23:22:37.7118301Z         }
2026-06-08T23:22:37.7118582Z       }
2026-06-08T23:22:37.7118859Z     },
2026-06-08T23:22:37.7119145Z     {
2026-06-08T23:22:37.7119455Z       "id": "REQ-INST-6",
2026-06-08T23:22:37.7120069Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-08T23:22:37.7120373Z       "requiredStages": [
2026-06-08T23:22:37.7120659Z         "impl",
2026-06-08T23:22:37.7120945Z         "unit",
2026-06-08T23:22:37.7121221Z         "int"
2026-06-08T23:22:37.7121512Z       ],
2026-06-08T23:22:37.7121797Z       "stages": {
2026-06-08T23:22:37.7122084Z         "doc": {
2026-06-08T23:22:37.7122388Z           "complete": true,
2026-06-08T23:22:37.7122686Z           "evidence": [
2026-06-08T23:22:37.7122973Z             {
2026-06-08T23:22:37.7123302Z               "path": "docs/DEFERRED.md",
2026-06-08T23:22:37.7123597Z               "line": 13
2026-06-08T23:22:37.7123865Z             }
2026-06-08T23:22:37.7124141Z           ]
2026-06-08T23:22:37.7124417Z         },
2026-06-08T23:22:37.7124689Z         "impl": {
2026-06-08T23:22:37.7124988Z           "complete": true,
2026-06-08T23:22:37.7125386Z           "evidence": [
2026-06-08T23:22:37.7125667Z             {
2026-06-08T23:22:37.7126069Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7126374Z               "line": 391
2026-06-08T23:22:37.7126665Z             },
2026-06-08T23:22:37.7127033Z             {
2026-06-08T23:22:37.7127437Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-08T23:22:37.7127841Z               "line": 27
2026-06-08T23:22:37.7128132Z             },
2026-06-08T23:22:37.7128414Z             {
2026-06-08T23:22:37.7128814Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-08T23:22:37.7129109Z               "line": 73
2026-06-08T23:22:37.7129395Z             },
2026-06-08T23:22:37.7129672Z             {
2026-06-08T23:22:37.7130067Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-08T23:22:37.7130368Z               "line": 182
2026-06-08T23:22:37.7130647Z             },
2026-06-08T23:22:37.7130929Z             {
2026-06-08T23:22:37.7131328Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7131628Z               "line": 424
2026-06-08T23:22:37.7131924Z             },
2026-06-08T23:22:37.7132201Z             {
2026-06-08T23:22:37.7132577Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-08T23:22:37.7132869Z               "line": 31
2026-06-08T23:22:37.7133153Z             },
2026-06-08T23:22:37.7133437Z             {
2026-06-08T23:22:37.7133819Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.7134115Z               "line": 182
2026-06-08T23:22:37.7134396Z             },
2026-06-08T23:22:37.7134678Z             {
2026-06-08T23:22:37.7135050Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.7135355Z               "line": 81
2026-06-08T23:22:37.7135634Z             },
2026-06-08T23:22:37.7135922Z             {
2026-06-08T23:22:37.7136271Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7136571Z               "line": 1123
2026-06-08T23:22:37.7136852Z             },
2026-06-08T23:22:37.7137210Z             {
2026-06-08T23:22:37.7137564Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7137864Z               "line": 179
2026-06-08T23:22:37.7138140Z             },
2026-06-08T23:22:37.7138420Z             {
2026-06-08T23:22:37.7138782Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7139097Z               "line": 215
2026-06-08T23:22:37.7139402Z             }
2026-06-08T23:22:37.7139683Z           ]
2026-06-08T23:22:37.7139965Z         },
2026-06-08T23:22:37.7140251Z         "int": {
2026-06-08T23:22:37.7140561Z           "complete": true,
2026-06-08T23:22:37.7140862Z           "evidence": [
2026-06-08T23:22:37.7141151Z             {
2026-06-08T23:22:37.7141560Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7141860Z               "line": 649
2026-06-08T23:22:37.7142141Z             },
2026-06-08T23:22:37.7142423Z             {
2026-06-08T23:22:37.7142842Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7143142Z               "line": 1017
2026-06-08T23:22:37.7143424Z             },
2026-06-08T23:22:37.7143704Z             {
2026-06-08T23:22:37.7144065Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7144370Z               "line": 725
2026-06-08T23:22:37.7144646Z             }
2026-06-08T23:22:37.7144933Z           ]
2026-06-08T23:22:37.7145213Z         },
2026-06-08T23:22:37.7145509Z         "unit": {
2026-06-08T23:22:37.7145814Z           "complete": true,
2026-06-08T23:22:37.7146113Z           "evidence": [
2026-06-08T23:22:37.7146397Z             {
2026-06-08T23:22:37.7146802Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7147175Z               "line": 660
2026-06-08T23:22:37.7147450Z             },
2026-06-08T23:22:37.7147732Z             {
2026-06-08T23:22:37.7148129Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.7148424Z               "line": 897
2026-06-08T23:22:37.7148821Z             },
2026-06-08T23:22:37.7149114Z             {
2026-06-08T23:22:37.7149539Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-08T23:22:37.7149839Z               "line": 66
2026-06-08T23:22:37.7150125Z             },
2026-06-08T23:22:37.7150407Z             {
2026-06-08T23:22:37.7150788Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.7151202Z               "line": 272
2026-06-08T23:22:37.7151488Z             },
2026-06-08T23:22:37.7151772Z             {
2026-06-08T23:22:37.7152134Z               "path": "crates/spt/src/api/worker.rs",
2026-06-08T23:22:37.7152430Z               "line": 201
2026-06-08T23:22:37.7152711Z             }
2026-06-08T23:22:37.7152992Z           ]
2026-06-08T23:22:37.7153275Z         }
2026-06-08T23:22:37.7153560Z       }
2026-06-08T23:22:37.7153836Z     },
2026-06-08T23:22:37.7154116Z     {
2026-06-08T23:22:37.7154428Z       "id": "REQ-INST-7",
2026-06-08T23:22:37.7154878Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-08T23:22:37.7155202Z       "requiredStages": [
2026-06-08T23:22:37.7155498Z         "impl",
2026-06-08T23:22:37.7155783Z         "unit",
2026-06-08T23:22:37.7156064Z         "int"
2026-06-08T23:22:37.7156346Z       ],
2026-06-08T23:22:37.7156635Z       "stages": {
2026-06-08T23:22:37.7156919Z         "doc": {
2026-06-08T23:22:37.7157309Z           "complete": false,
2026-06-08T23:22:37.7157615Z           "evidence": []
2026-06-08T23:22:37.7157897Z         },
2026-06-08T23:22:37.7158182Z         "impl": {
2026-06-08T23:22:37.7158488Z           "complete": true,
2026-06-08T23:22:37.7158775Z           "evidence": [
2026-06-08T23:22:37.7159057Z             {
2026-06-08T23:22:37.7159479Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7159780Z               "line": 436
2026-06-08T23:22:37.7160056Z             },
2026-06-08T23:22:37.7160342Z             {
2026-06-08T23:22:37.7160742Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7161047Z               "line": 42
2026-06-08T23:22:37.7161325Z             },
2026-06-08T23:22:37.7161606Z             {
2026-06-08T23:22:37.7162043Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7162346Z               "line": 27
2026-06-08T23:22:37.7162627Z             },
2026-06-08T23:22:37.7162909Z             {
2026-06-08T23:22:37.7163342Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7163639Z               "line": 191
2026-06-08T23:22:37.7163924Z             },
2026-06-08T23:22:37.7164215Z             {
2026-06-08T23:22:37.7164643Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7164951Z               "line": 328
2026-06-08T23:22:37.7165232Z             },
2026-06-08T23:22:37.7165509Z             {
2026-06-08T23:22:37.7165899Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-08T23:22:37.7166200Z               "line": 59
2026-06-08T23:22:37.7166491Z             },
2026-06-08T23:22:37.7166777Z             {
2026-06-08T23:22:37.7167267Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7167569Z               "line": 41
2026-06-08T23:22:37.7167861Z             },
2026-06-08T23:22:37.7168147Z             {
2026-06-08T23:22:37.7168561Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7168866Z               "line": 27
2026-06-08T23:22:37.7169162Z             },
2026-06-08T23:22:37.7169449Z             {
2026-06-08T23:22:37.7169859Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7170158Z               "line": 119
2026-06-08T23:22:37.7170429Z             },
2026-06-08T23:22:37.7170706Z             {
2026-06-08T23:22:37.7171111Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7171411Z               "line": 134
2026-06-08T23:22:37.7171698Z             },
2026-06-08T23:22:37.7171984Z             {
2026-06-08T23:22:37.7172380Z               "path": "crates/spt-store/src/registry.rs",
2026-06-08T23:22:37.7172784Z               "line": 139
2026-06-08T23:22:37.7173078Z             }
2026-06-08T23:22:37.7173354Z           ]
2026-06-08T23:22:37.7173644Z         },
2026-06-08T23:22:37.7173926Z         "int": {
2026-06-08T23:22:37.7174236Z           "complete": true,
2026-06-08T23:22:37.7174537Z           "evidence": [
2026-06-08T23:22:37.7174908Z             {
2026-06-08T23:22:37.7175327Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-08T23:22:37.7175625Z               "line": 102
2026-06-08T23:22:37.7175901Z             },
2026-06-08T23:22:37.7176173Z             {
2026-06-08T23:22:37.7176569Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7176870Z               "line": 593
2026-06-08T23:22:37.7177233Z             },
2026-06-08T23:22:37.7177518Z             {
2026-06-08T23:22:37.7177932Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7178235Z               "line": 867
2026-06-08T23:22:37.7178526Z             }
2026-06-08T23:22:37.7178807Z           ]
2026-06-08T23:22:37.7179093Z         },
2026-06-08T23:22:37.7179379Z         "unit": {
2026-06-08T23:22:37.7179689Z           "complete": true,
2026-06-08T23:22:37.7179989Z           "evidence": [
2026-06-08T23:22:37.7180275Z             {
2026-06-08T23:22:37.7180703Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7181013Z               "line": 1052
2026-06-08T23:22:37.7181300Z             },
2026-06-08T23:22:37.7181586Z             {
2026-06-08T23:22:37.7182011Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7182311Z               "line": 1383
2026-06-08T23:22:37.7182597Z             },
2026-06-08T23:22:37.7182882Z             {
2026-06-08T23:22:37.7183301Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-08T23:22:37.7183614Z               "line": 84
2026-06-08T23:22:37.7183899Z             },
2026-06-08T23:22:37.7184181Z             {
2026-06-08T23:22:37.7184597Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7184897Z               "line": 763
2026-06-08T23:22:37.7185188Z             },
2026-06-08T23:22:37.7185473Z             {
2026-06-08T23:22:37.7185873Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7186175Z               "line": 774
2026-06-08T23:22:37.7186466Z             },
2026-06-08T23:22:37.7186752Z             {
2026-06-08T23:22:37.7187226Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7187522Z               "line": 789
2026-06-08T23:22:37.7187803Z             },
2026-06-08T23:22:37.7188083Z             {
2026-06-08T23:22:37.7188492Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7188785Z               "line": 165
2026-06-08T23:22:37.7189052Z             },
2026-06-08T23:22:37.7189353Z             {
2026-06-08T23:22:37.7189759Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7190069Z               "line": 180
2026-06-08T23:22:37.7190351Z             },
2026-06-08T23:22:37.7190640Z             {
2026-06-08T23:22:37.7191047Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.7191350Z               "line": 213
2026-06-08T23:22:37.7191631Z             }
2026-06-08T23:22:37.7191922Z           ]
2026-06-08T23:22:37.7192203Z         }
2026-06-08T23:22:37.7192489Z       }
2026-06-08T23:22:37.7192771Z     },
2026-06-08T23:22:37.7193052Z     {
2026-06-08T23:22:37.7193362Z       "id": "REQ-INST-8",
2026-06-08T23:22:37.7193847Z       "title": "Remote-control mode distinct from local operation",
2026-06-08T23:22:37.7194159Z       "requiredStages": [
2026-06-08T23:22:37.7194450Z         "impl",
2026-06-08T23:22:37.7194751Z         "unit",
2026-06-08T23:22:37.7195037Z         "int"
2026-06-08T23:22:37.7195319Z       ],
2026-06-08T23:22:37.7195614Z       "stages": {
2026-06-08T23:22:37.7195901Z         "doc": {
2026-06-08T23:22:37.7196216Z           "complete": false,
2026-06-08T23:22:37.7196622Z           "evidence": []
2026-06-08T23:22:37.7196913Z         },
2026-06-08T23:22:37.7197294Z         "impl": {
2026-06-08T23:22:37.7197604Z           "complete": true,
2026-06-08T23:22:37.7197909Z           "evidence": [
2026-06-08T23:22:37.7198190Z             {
2026-06-08T23:22:37.7198586Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.7199000Z               "line": 98
2026-06-08T23:22:37.7199332Z             },
2026-06-08T23:22:37.7199617Z             {
2026-06-08T23:22:37.7200024Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.7200319Z               "line": 209
2026-06-08T23:22:37.7200601Z             },
2026-06-08T23:22:37.7200891Z             {
2026-06-08T23:22:37.7201288Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.7201578Z               "line": 230
2026-06-08T23:22:37.7201877Z             },
2026-06-08T23:22:37.7202157Z             {
2026-06-08T23:22:37.7202560Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-08T23:22:37.7202850Z               "line": 35
2026-06-08T23:22:37.7203136Z             }
2026-06-08T23:22:37.7203440Z           ]
2026-06-08T23:22:37.7203732Z         },
2026-06-08T23:22:37.7204022Z         "int": {
2026-06-08T23:22:37.7204332Z           "complete": true,
2026-06-08T23:22:37.7204634Z           "evidence": [
2026-06-08T23:22:37.7204925Z             {
2026-06-08T23:22:37.7205349Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.7205654Z               "line": 414
2026-06-08T23:22:37.7205940Z             },
2026-06-08T23:22:37.7206227Z             {
2026-06-08T23:22:37.7206642Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7207027Z               "line": 931
2026-06-08T23:22:37.7207315Z             }
2026-06-08T23:22:37.7207601Z           ]
2026-06-08T23:22:37.7207892Z         },
2026-06-08T23:22:37.7208183Z         "unit": {
2026-06-08T23:22:37.7208498Z           "complete": true,
2026-06-08T23:22:37.7208808Z           "evidence": [
2026-06-08T23:22:37.7209093Z             {
2026-06-08T23:22:37.7209493Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-08T23:22:37.7209796Z               "line": 181
2026-06-08T23:22:37.7210087Z             },
2026-06-08T23:22:37.7210374Z             {
2026-06-08T23:22:37.7210783Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-08T23:22:37.7211093Z               "line": 259
2026-06-08T23:22:37.7211379Z             },
2026-06-08T23:22:37.7211670Z             {
2026-06-08T23:22:37.7212066Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-08T23:22:37.7212365Z               "line": 70
2026-06-08T23:22:37.7212651Z             },
2026-06-08T23:22:37.7212938Z             {
2026-06-08T23:22:37.7213328Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-08T23:22:37.7213633Z               "line": 110
2026-06-08T23:22:37.7213915Z             }
2026-06-08T23:22:37.7214205Z           ]
2026-06-08T23:22:37.7214492Z         }
2026-06-08T23:22:37.7214784Z       }
2026-06-08T23:22:37.7215068Z     },
2026-06-08T23:22:37.7215347Z     {
2026-06-08T23:22:37.7215662Z       "id": "REQ-INST-9",
2026-06-08T23:22:37.7216268Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-08T23:22:37.7216582Z       "requiredStages": [
2026-06-08T23:22:37.7216868Z         "impl",
2026-06-08T23:22:37.7217246Z         "unit"
2026-06-08T23:22:37.7217534Z       ],
2026-06-08T23:22:37.7217822Z       "stages": {
2026-06-08T23:22:37.7218114Z         "doc": {
2026-06-08T23:22:37.7218428Z           "complete": false,
2026-06-08T23:22:37.7218738Z           "evidence": []
2026-06-08T23:22:37.7219020Z         },
2026-06-08T23:22:37.7219306Z         "impl": {
2026-06-08T23:22:37.7219620Z           "complete": true,
2026-06-08T23:22:37.7219921Z           "evidence": [
2026-06-08T23:22:37.7220201Z             {
2026-06-08T23:22:37.7220614Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7221019Z               "line": 401
2026-06-08T23:22:37.7221310Z             }
2026-06-08T23:22:37.7221596Z           ]
2026-06-08T23:22:37.7221882Z         },
2026-06-08T23:22:37.7222169Z         "int": {
2026-06-08T23:22:37.7222484Z           "complete": false,
2026-06-08T23:22:37.7222789Z           "evidence": []
2026-06-08T23:22:37.7223075Z         },
2026-06-08T23:22:37.7223470Z         "unit": {
2026-06-08T23:22:37.7223785Z           "complete": true,
2026-06-08T23:22:37.7224085Z           "evidence": [
2026-06-08T23:22:37.7224367Z             {
2026-06-08T23:22:37.7224780Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7225085Z               "line": 1300
2026-06-08T23:22:37.7225376Z             },
2026-06-08T23:22:37.7225666Z             {
2026-06-08T23:22:37.7226069Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7226380Z               "line": 1309
2026-06-08T23:22:37.7226665Z             },
2026-06-08T23:22:37.7227028Z             {
2026-06-08T23:22:37.7227452Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7227762Z               "line": 1325
2026-06-08T23:22:37.7228052Z             },
2026-06-08T23:22:37.7228335Z             {
2026-06-08T23:22:37.7228736Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7229027Z               "line": 1337
2026-06-08T23:22:37.7229322Z             },
2026-06-08T23:22:37.7229604Z             {
2026-06-08T23:22:37.7230004Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.7230310Z               "line": 1357
2026-06-08T23:22:37.7230590Z             }
2026-06-08T23:22:37.7230879Z           ]
2026-06-08T23:22:37.7231160Z         }
2026-06-08T23:22:37.7231447Z       }
2026-06-08T23:22:37.7231723Z     },
2026-06-08T23:22:37.7232010Z     {
2026-06-08T23:22:37.7232329Z       "id": "REQ-INSTALL-1",
2026-06-08T23:22:37.7232954Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-08T23:22:37.7233283Z       "requiredStages": [
2026-06-08T23:22:37.7233567Z         "doc",
2026-06-08T23:22:37.7233862Z         "impl",
2026-06-08T23:22:37.7234148Z         "int"
2026-06-08T23:22:37.7234434Z       ],
2026-06-08T23:22:37.7234735Z       "stages": {
2026-06-08T23:22:37.7235021Z         "doc": {
2026-06-08T23:22:37.7235331Z           "complete": true,
2026-06-08T23:22:37.7235636Z           "evidence": [
2026-06-08T23:22:37.7235923Z             {
2026-06-08T23:22:37.7236240Z               "path": "CONTEXT.md",
2026-06-08T23:22:37.7236540Z               "line": 576
2026-06-08T23:22:37.7236826Z             }
2026-06-08T23:22:37.7237188Z           ]
2026-06-08T23:22:37.7237479Z         },
2026-06-08T23:22:37.7237770Z         "impl": {
2026-06-08T23:22:37.7238080Z           "complete": true,
2026-06-08T23:22:37.7238381Z           "evidence": [
2026-06-08T23:22:37.7238674Z             {
2026-06-08T23:22:37.7239034Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7239335Z               "line": 57
2026-06-08T23:22:37.7239635Z             },
2026-06-08T23:22:37.7239916Z             {
2026-06-08T23:22:37.7240265Z               "path": "installer/install.sh",
2026-06-08T23:22:37.7240560Z               "line": 52
2026-06-08T23:22:37.7240846Z             }
2026-06-08T23:22:37.7241131Z           ]
2026-06-08T23:22:37.7241405Z         },
2026-06-08T23:22:37.7241693Z         "int": {
2026-06-08T23:22:37.7242002Z           "complete": true,
2026-06-08T23:22:37.7242302Z           "evidence": [
2026-06-08T23:22:37.7242580Z             {
2026-06-08T23:22:37.7242979Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-08T23:22:37.7243284Z               "line": 21
2026-06-08T23:22:37.7243557Z             }
2026-06-08T23:22:37.7243839Z           ]
2026-06-08T23:22:37.7244122Z         },
2026-06-08T23:22:37.7244408Z         "unit": {
2026-06-08T23:22:37.7244718Z           "complete": false,
2026-06-08T23:22:37.7245023Z           "evidence": []
2026-06-08T23:22:37.7245314Z         }
2026-06-08T23:22:37.7245715Z       }
2026-06-08T23:22:37.7246006Z     },
2026-06-08T23:22:37.7246292Z     {
2026-06-08T23:22:37.7246605Z       "id": "REQ-INSTALL-2",
2026-06-08T23:22:37.7247133Z       "title": "Marketplace-repackaging-friendly install",
2026-06-08T23:22:37.7247452Z       "requiredStages": [
2026-06-08T23:22:37.7247743Z         "doc"
2026-06-08T23:22:37.7248020Z       ],
2026-06-08T23:22:37.7248415Z       "stages": {
2026-06-08T23:22:37.7248697Z         "doc": {
2026-06-08T23:22:37.7249012Z           "complete": true,
2026-06-08T23:22:37.7249315Z           "evidence": [
2026-06-08T23:22:37.7249599Z             {
2026-06-08T23:22:37.7249919Z               "path": "CONTEXT.md",
2026-06-08T23:22:37.7250220Z               "line": 577
2026-06-08T23:22:37.7250510Z             }
2026-06-08T23:22:37.7250796Z           ]
2026-06-08T23:22:37.7251086Z         },
2026-06-08T23:22:37.7251378Z         "impl": {
2026-06-08T23:22:37.7251701Z           "complete": false,
2026-06-08T23:22:37.7252013Z           "evidence": []
2026-06-08T23:22:37.7252304Z         },
2026-06-08T23:22:37.7252596Z         "int": {
2026-06-08T23:22:37.7252915Z           "complete": false,
2026-06-08T23:22:37.7253224Z           "evidence": []
2026-06-08T23:22:37.7253506Z         },
2026-06-08T23:22:37.7253798Z         "unit": {
2026-06-08T23:22:37.7254108Z           "complete": false,
2026-06-08T23:22:37.7254418Z           "evidence": []
2026-06-08T23:22:37.7254711Z         }
2026-06-08T23:22:37.7254998Z       }
2026-06-08T23:22:37.7255278Z     },
2026-06-08T23:22:37.7255560Z     {
2026-06-08T23:22:37.7255879Z       "id": "REQ-INSTALL-3",
2026-06-08T23:22:37.7256343Z       "title": "Idempotent + interactive-optional first run",
2026-06-08T23:22:37.7256663Z       "requiredStages": [
2026-06-08T23:22:37.7257043Z         "impl",
2026-06-08T23:22:37.7257332Z         "int"
2026-06-08T23:22:37.7257617Z       ],
2026-06-08T23:22:37.7257908Z       "stages": {
2026-06-08T23:22:37.7258203Z         "doc": {
2026-06-08T23:22:37.7258528Z           "complete": false,
2026-06-08T23:22:37.7258837Z           "evidence": []
2026-06-08T23:22:37.7259123Z         },
2026-06-08T23:22:37.7259414Z         "impl": {
2026-06-08T23:22:37.7259722Z           "complete": true,
2026-06-08T23:22:37.7260021Z           "evidence": [
2026-06-08T23:22:37.7260312Z             {
2026-06-08T23:22:37.7260679Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7260984Z               "line": 100
2026-06-08T23:22:37.7261275Z             },
2026-06-08T23:22:37.7261561Z             {
2026-06-08T23:22:37.7261919Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7262223Z               "line": 111
2026-06-08T23:22:37.7262512Z             },
2026-06-08T23:22:37.7262804Z             {
2026-06-08T23:22:37.7263151Z               "path": "installer/install.sh",
2026-06-08T23:22:37.7263455Z               "line": 79
2026-06-08T23:22:37.7263742Z             }
2026-06-08T23:22:37.7264033Z           ]
2026-06-08T23:22:37.7264320Z         },
2026-06-08T23:22:37.7264606Z         "int": {
2026-06-08T23:22:37.7264931Z           "complete": true,
2026-06-08T23:22:37.7265223Z           "evidence": [
2026-06-08T23:22:37.7265509Z             {
2026-06-08T23:22:37.7265911Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-08T23:22:37.7266216Z               "line": 167
2026-06-08T23:22:37.7266502Z             }
2026-06-08T23:22:37.7266788Z           ]
2026-06-08T23:22:37.7267165Z         },
2026-06-08T23:22:37.7267456Z         "unit": {
2026-06-08T23:22:37.7267768Z           "complete": false,
2026-06-08T23:22:37.7268066Z           "evidence": []
2026-06-08T23:22:37.7268348Z         }
2026-06-08T23:22:37.7268625Z       }
2026-06-08T23:22:37.7268911Z     },
2026-06-08T23:22:37.7269192Z     {
2026-06-08T23:22:37.7269507Z       "id": "REQ-INSTALL-4",
2026-06-08T23:22:37.7271707Z       "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-08T23:22:37.7272027Z       "requiredStages": [
2026-06-08T23:22:37.7272318Z         "impl",
2026-06-08T23:22:37.7272609Z         "unit"
2026-06-08T23:22:37.7272893Z       ],
2026-06-08T23:22:37.7273190Z       "stages": {
2026-06-08T23:22:37.7273486Z         "doc": {
2026-06-08T23:22:37.7273801Z           "complete": false,
2026-06-08T23:22:37.7274197Z           "evidence": []
2026-06-08T23:22:37.7274478Z         },
2026-06-08T23:22:37.7274764Z         "impl": {
2026-06-08T23:22:37.7275079Z           "complete": true,
2026-06-08T23:22:37.7275379Z           "evidence": [
2026-06-08T23:22:37.7275660Z             {
2026-06-08T23:22:37.7276103Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.7276404Z               "line": 154
2026-06-08T23:22:37.7276689Z             },
2026-06-08T23:22:37.7277052Z             {
2026-06-08T23:22:37.7277468Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7277764Z               "line": 29
2026-06-08T23:22:37.7278046Z             },
2026-06-08T23:22:37.7278324Z             {
2026-06-08T23:22:37.7278733Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7279038Z               "line": 117
2026-06-08T23:22:37.7279329Z             },
2026-06-08T23:22:37.7279614Z             {
2026-06-08T23:22:37.7280026Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7280335Z               "line": 161
2026-06-08T23:22:37.7280626Z             },
2026-06-08T23:22:37.7280910Z             {
2026-06-08T23:22:37.7281318Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7281619Z               "line": 191
2026-06-08T23:22:37.7281900Z             },
2026-06-08T23:22:37.7282186Z             {
2026-06-08T23:22:37.7282596Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7282902Z               "line": 223
2026-06-08T23:22:37.7283183Z             },
2026-06-08T23:22:37.7283467Z             {
2026-06-08T23:22:37.7283823Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7284128Z               "line": 3502
2026-06-08T23:22:37.7284414Z             }
2026-06-08T23:22:37.7284699Z           ]
2026-06-08T23:22:37.7284991Z         },
2026-06-08T23:22:37.7285272Z         "int": {
2026-06-08T23:22:37.7285586Z           "complete": false,
2026-06-08T23:22:37.7285891Z           "evidence": []
2026-06-08T23:22:37.7286178Z         },
2026-06-08T23:22:37.7286473Z         "unit": {
2026-06-08T23:22:37.7286783Z           "complete": true,
2026-06-08T23:22:37.7287160Z           "evidence": [
2026-06-08T23:22:37.7287446Z             {
2026-06-08T23:22:37.7287888Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.7288194Z               "line": 334
2026-06-08T23:22:37.7288484Z             },
2026-06-08T23:22:37.7288771Z             {
2026-06-08T23:22:37.7289177Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7289468Z               "line": 269
2026-06-08T23:22:37.7289746Z             },
2026-06-08T23:22:37.7290031Z             {
2026-06-08T23:22:37.7290436Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7290737Z               "line": 310
2026-06-08T23:22:37.7291028Z             },
2026-06-08T23:22:37.7291309Z             {
2026-06-08T23:22:37.7291711Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-08T23:22:37.7292016Z               "line": 330
2026-06-08T23:22:37.7292307Z             },
2026-06-08T23:22:37.7292589Z             {
2026-06-08T23:22:37.7292937Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7293236Z               "line": 5072
2026-06-08T23:22:37.7293518Z             }
2026-06-08T23:22:37.7293806Z           ]
2026-06-08T23:22:37.7294075Z         }
2026-06-08T23:22:37.7294359Z       }
2026-06-08T23:22:37.7294644Z     },
2026-06-08T23:22:37.7294921Z     {
2026-06-08T23:22:37.7295236Z       "id": "REQ-INSTALL-5",
2026-06-08T23:22:37.7297052Z       "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-08T23:22:37.7300033Z       "requiredStages": [
2026-06-08T23:22:37.7300338Z         "impl",
2026-06-08T23:22:37.7300630Z         "int"
2026-06-08T23:22:37.7300916Z       ],
2026-06-08T23:22:37.7301354Z       "stages": {
2026-06-08T23:22:37.7301645Z         "doc": {
2026-06-08T23:22:37.7301959Z           "complete": false,
2026-06-08T23:22:37.7302261Z           "evidence": []
2026-06-08T23:22:37.7302548Z         },
2026-06-08T23:22:37.7302835Z         "impl": {
2026-06-08T23:22:37.7303144Z           "complete": true,
2026-06-08T23:22:37.7303444Z           "evidence": [
2026-06-08T23:22:37.7303727Z             {
2026-06-08T23:22:37.7304093Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7304385Z               "line": 5
2026-06-08T23:22:37.7304664Z             },
2026-06-08T23:22:37.7304948Z             {
2026-06-08T23:22:37.7305306Z               "path": "installer/install.sh",
2026-06-08T23:22:37.7305602Z               "line": 6
2026-06-08T23:22:37.7305883Z             }
2026-06-08T23:22:37.7306149Z           ]
2026-06-08T23:22:37.7306426Z         },
2026-06-08T23:22:37.7306697Z         "int": {
2026-06-08T23:22:37.7307084Z           "complete": true,
2026-06-08T23:22:37.7307393Z           "evidence": [
2026-06-08T23:22:37.7307665Z             {
2026-06-08T23:22:37.7308074Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-08T23:22:37.7308361Z               "line": 22
2026-06-08T23:22:37.7308646Z             }
2026-06-08T23:22:37.7308928Z           ]
2026-06-08T23:22:37.7309209Z         },
2026-06-08T23:22:37.7309496Z         "unit": {
2026-06-08T23:22:37.7309806Z           "complete": false,
2026-06-08T23:22:37.7310110Z           "evidence": []
2026-06-08T23:22:37.7310389Z         }
2026-06-08T23:22:37.7310670Z       }
2026-06-08T23:22:37.7310946Z     },
2026-06-08T23:22:37.7311233Z     {
2026-06-08T23:22:37.7311552Z       "id": "REQ-INSTALL-6",
2026-06-08T23:22:37.7315191Z       "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-08T23:22:37.7315522Z       "requiredStages": [
2026-06-08T23:22:37.7315813Z         "impl",
2026-06-08T23:22:37.7316099Z         "unit"
2026-06-08T23:22:37.7316380Z       ],
2026-06-08T23:22:37.7316671Z       "stages": {
2026-06-08T23:22:37.7317039Z         "doc": {
2026-06-08T23:22:37.7317358Z           "complete": false,
2026-06-08T23:22:37.7317683Z           "evidence": []
2026-06-08T23:22:37.7317958Z         },
2026-06-08T23:22:37.7318253Z         "impl": {
2026-06-08T23:22:37.7318563Z           "complete": true,
2026-06-08T23:22:37.7318887Z           "evidence": [
2026-06-08T23:22:37.7319174Z             {
2026-06-08T23:22:37.7319579Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.7319879Z               "line": 59
2026-06-08T23:22:37.7320155Z             },
2026-06-08T23:22:37.7320432Z             {
2026-06-08T23:22:37.7320820Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.7321149Z               "line": 376
2026-06-08T23:22:37.7321440Z             },
2026-06-08T23:22:37.7321712Z             {
2026-06-08T23:22:37.7322127Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.7322432Z               "line": 191
2026-06-08T23:22:37.7322718Z             },
2026-06-08T23:22:37.7322998Z             {
2026-06-08T23:22:37.7323405Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.7323702Z               "line": 276
2026-06-08T23:22:37.7323992Z             },
2026-06-08T23:22:37.7324279Z             {
2026-06-08T23:22:37.7324737Z               "path": "crates/spt/src/main.rs",
2026-06-08T23:22:37.7325041Z               "line": 40
2026-06-08T23:22:37.7325328Z             },
2026-06-08T23:22:37.7325608Z             {
2026-06-08T23:22:37.7325953Z               "path": "installer/install.sh",
2026-06-08T23:22:37.7326259Z               "line": 104
2026-06-08T23:22:37.7326540Z             }
2026-06-08T23:22:37.7326916Z           ]
2026-06-08T23:22:37.7327299Z         },
2026-06-08T23:22:37.7327584Z         "int": {
2026-06-08T23:22:37.7327894Z           "complete": false,
2026-06-08T23:22:37.7328209Z           "evidence": []
2026-06-08T23:22:37.7328484Z         },
2026-06-08T23:22:37.7328776Z         "unit": {
2026-06-08T23:22:37.7329081Z           "complete": true,
2026-06-08T23:22:37.7329387Z           "evidence": [
2026-06-08T23:22:37.7329668Z             {
2026-06-08T23:22:37.7330073Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-08T23:22:37.7330377Z               "line": 841
2026-06-08T23:22:37.7330664Z             }
2026-06-08T23:22:37.7330951Z           ]
2026-06-08T23:22:37.7331225Z         }
2026-06-08T23:22:37.7331504Z       }
2026-06-08T23:22:37.7331786Z     },
2026-06-08T23:22:37.7332062Z     {
2026-06-08T23:22:37.7332382Z       "id": "REQ-INSTALL-7",
2026-06-08T23:22:37.7335684Z       "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-08T23:22:37.7336004Z       "requiredStages": [
2026-06-08T23:22:37.7336292Z         "impl"
2026-06-08T23:22:37.7336571Z       ],
2026-06-08T23:22:37.7336856Z       "stages": {
2026-06-08T23:22:37.7337220Z         "doc": {
2026-06-08T23:22:37.7337529Z           "complete": false,
2026-06-08T23:22:37.7337825Z           "evidence": []
2026-06-08T23:22:37.7338130Z         },
2026-06-08T23:22:37.7338416Z         "impl": {
2026-06-08T23:22:37.7338721Z           "complete": true,
2026-06-08T23:22:37.7339021Z           "evidence": [
2026-06-08T23:22:37.7339294Z             {
2026-06-08T23:22:37.7339646Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7339937Z               "line": 2401
2026-06-08T23:22:37.7340247Z             },
2026-06-08T23:22:37.7340543Z             {
2026-06-08T23:22:37.7340895Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7341196Z               "line": 157
2026-06-08T23:22:37.7341473Z             }
2026-06-08T23:22:37.7341762Z           ]
2026-06-08T23:22:37.7342041Z         },
2026-06-08T23:22:37.7342322Z         "int": {
2026-06-08T23:22:37.7342627Z           "complete": false,
2026-06-08T23:22:37.7342922Z           "evidence": []
2026-06-08T23:22:37.7343204Z         },
2026-06-08T23:22:37.7343485Z         "unit": {
2026-06-08T23:22:37.7343800Z           "complete": false,
2026-06-08T23:22:37.7344096Z           "evidence": []
2026-06-08T23:22:37.7344376Z         }
2026-06-08T23:22:37.7344656Z       }
2026-06-08T23:22:37.7344927Z     },
2026-06-08T23:22:37.7345198Z     {
2026-06-08T23:22:37.7345509Z       "id": "REQ-INSTALL-8",
2026-06-08T23:22:37.7349024Z       "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-08T23:22:37.7349349Z       "requiredStages": [
2026-06-08T23:22:37.7349629Z         "impl"
2026-06-08T23:22:37.7349910Z       ],
2026-06-08T23:22:37.7350192Z       "stages": {
2026-06-08T23:22:37.7350473Z         "doc": {
2026-06-08T23:22:37.7350774Z           "complete": false,
2026-06-08T23:22:37.7351074Z           "evidence": []
2026-06-08T23:22:37.7351474Z         },
2026-06-08T23:22:37.7351756Z         "impl": {
2026-06-08T23:22:37.7352062Z           "complete": true,
2026-06-08T23:22:37.7352350Z           "evidence": [
2026-06-08T23:22:37.7352630Z             {
2026-06-08T23:22:37.7352983Z               "path": "installer/install.ps1",
2026-06-08T23:22:37.7353279Z               "line": 184
2026-06-08T23:22:37.7353655Z             },
2026-06-08T23:22:37.7353932Z             {
2026-06-08T23:22:37.7354271Z               "path": "installer/install.sh",
2026-06-08T23:22:37.7354562Z               "line": 121
2026-06-08T23:22:37.7354846Z             }
2026-06-08T23:22:37.7355120Z           ]
2026-06-08T23:22:37.7355406Z         },
2026-06-08T23:22:37.7355687Z         "int": {
2026-06-08T23:22:37.7355993Z           "complete": false,
2026-06-08T23:22:37.7356289Z           "evidence": []
2026-06-08T23:22:37.7356565Z         },
2026-06-08T23:22:37.7356857Z         "unit": {
2026-06-08T23:22:37.7357246Z           "complete": false,
2026-06-08T23:22:37.7357554Z           "evidence": []
2026-06-08T23:22:37.7357836Z         }
2026-06-08T23:22:37.7358112Z       }
2026-06-08T23:22:37.7358398Z     },
2026-06-08T23:22:37.7358679Z     {
2026-06-08T23:22:37.7358989Z       "id": "REQ-MANIFEST-1",
2026-06-08T23:22:37.7359590Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-08T23:22:37.7359904Z       "requiredStages": [
2026-06-08T23:22:37.7360184Z         "doc",
2026-06-08T23:22:37.7360466Z         "impl",
2026-06-08T23:22:37.7360734Z         "unit"
2026-06-08T23:22:37.7361005Z       ],
2026-06-08T23:22:37.7361277Z       "stages": {
2026-06-08T23:22:37.7361558Z         "doc": {
2026-06-08T23:22:37.7361868Z           "complete": true,
2026-06-08T23:22:37.7362173Z           "evidence": [
2026-06-08T23:22:37.7362454Z             {
2026-06-08T23:22:37.7362786Z               "path": "docs/MANIFEST.md",
2026-06-08T23:22:37.7363080Z               "line": 19
2026-06-08T23:22:37.7363356Z             }
2026-06-08T23:22:37.7363647Z           ]
2026-06-08T23:22:37.7363929Z         },
2026-06-08T23:22:37.7364215Z         "impl": {
2026-06-08T23:22:37.7364521Z           "complete": true,
2026-06-08T23:22:37.7364817Z           "evidence": [
2026-06-08T23:22:37.7365094Z             {
2026-06-08T23:22:37.7365506Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7365810Z               "line": 18
2026-06-08T23:22:37.7366091Z             }
2026-06-08T23:22:37.7366372Z           ]
2026-06-08T23:22:37.7366643Z         },
2026-06-08T23:22:37.7366929Z         "int": {
2026-06-08T23:22:37.7367331Z           "complete": false,
2026-06-08T23:22:37.7367631Z           "evidence": []
2026-06-08T23:22:37.7367911Z         },
2026-06-08T23:22:37.7368204Z         "unit": {
2026-06-08T23:22:37.7368518Z           "complete": true,
2026-06-08T23:22:37.7368809Z           "evidence": [
2026-06-08T23:22:37.7369096Z             {
2026-06-08T23:22:37.7369506Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7369811Z               "line": 746
2026-06-08T23:22:37.7370097Z             },
2026-06-08T23:22:37.7370377Z             {
2026-06-08T23:22:37.7370782Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7371078Z               "line": 860
2026-06-08T23:22:37.7371359Z             },
2026-06-08T23:22:37.7371637Z             {
2026-06-08T23:22:37.7372046Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7372337Z               "line": 872
2026-06-08T23:22:37.7372618Z             },
2026-06-08T23:22:37.7372904Z             {
2026-06-08T23:22:37.7373309Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7373621Z               "line": 883
2026-06-08T23:22:37.7373902Z             },
2026-06-08T23:22:37.7374185Z             {
2026-06-08T23:22:37.7374584Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7374880Z               "line": 900
2026-06-08T23:22:37.7375166Z             },
2026-06-08T23:22:37.7375543Z             {
2026-06-08T23:22:37.7375952Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7376254Z               "line": 914
2026-06-08T23:22:37.7376540Z             },
2026-06-08T23:22:37.7376822Z             {
2026-06-08T23:22:37.7377309Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7377709Z               "line": 929
2026-06-08T23:22:37.7377991Z             },
2026-06-08T23:22:37.7378268Z             {
2026-06-08T23:22:37.7378674Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7378970Z               "line": 944
2026-06-08T23:22:37.7379251Z             },
2026-06-08T23:22:37.7379533Z             {
2026-06-08T23:22:37.7379933Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7380229Z               "line": 959
2026-06-08T23:22:37.7380515Z             },
2026-06-08T23:22:37.7380797Z             {
2026-06-08T23:22:37.7381202Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7381505Z               "line": 970
2026-06-08T23:22:37.7381787Z             }
2026-06-08T23:22:37.7382063Z           ]
2026-06-08T23:22:37.7382339Z         }
2026-06-08T23:22:37.7382611Z       }
2026-06-08T23:22:37.7382879Z     },
2026-06-08T23:22:37.7383154Z     {
2026-06-08T23:22:37.7383455Z       "id": "REQ-MESH-1",
2026-06-08T23:22:37.7389878Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-08T23:22:37.7390202Z       "requiredStages": [
2026-06-08T23:22:37.7390493Z         "impl",
2026-06-08T23:22:37.7390779Z         "unit",
2026-06-08T23:22:37.7391061Z         "int"
2026-06-08T23:22:37.7391333Z       ],
2026-06-08T23:22:37.7391623Z       "stages": {
2026-06-08T23:22:37.7391936Z         "doc": {
2026-06-08T23:22:37.7392241Z           "complete": false,
2026-06-08T23:22:37.7392541Z           "evidence": []
2026-06-08T23:22:37.7392819Z         },
2026-06-08T23:22:37.7393110Z         "impl": {
2026-06-08T23:22:37.7393414Z           "complete": true,
2026-06-08T23:22:37.7393719Z           "evidence": [
2026-06-08T23:22:37.7393997Z             {
2026-06-08T23:22:37.7394400Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.7394704Z               "line": 680
2026-06-08T23:22:37.7394986Z             },
2026-06-08T23:22:37.7395266Z             {
2026-06-08T23:22:37.7395676Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7395972Z               "line": 38
2026-06-08T23:22:37.7396244Z             },
2026-06-08T23:22:37.7396517Z             {
2026-06-08T23:22:37.7396920Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7397265Z               "line": 77
2026-06-08T23:22:37.7397548Z             },
2026-06-08T23:22:37.7397819Z             {
2026-06-08T23:22:37.7398238Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7398539Z               "line": 119
2026-06-08T23:22:37.7398820Z             },
2026-06-08T23:22:37.7399102Z             {
2026-06-08T23:22:37.7399496Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7399799Z               "line": 57
2026-06-08T23:22:37.7400077Z             },
2026-06-08T23:22:37.7400366Z             {
2026-06-08T23:22:37.7400800Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7401101Z               "line": 24
2026-06-08T23:22:37.7401482Z             },
2026-06-08T23:22:37.7401763Z             {
2026-06-08T23:22:37.7402198Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7402496Z               "line": 142
2026-06-08T23:22:37.7402782Z             },
2026-06-08T23:22:37.7403064Z             {
2026-06-08T23:22:37.7403489Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7403885Z               "line": 162
2026-06-08T23:22:37.7404171Z             }
2026-06-08T23:22:37.7404448Z           ]
2026-06-08T23:22:37.7404729Z         },
2026-06-08T23:22:37.7405013Z         "int": {
2026-06-08T23:22:37.7405325Z           "complete": true,
2026-06-08T23:22:37.7405616Z           "evidence": [
2026-06-08T23:22:37.7405903Z             {
2026-06-08T23:22:37.7406327Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-08T23:22:37.7406622Z               "line": 66
2026-06-08T23:22:37.7406899Z             },
2026-06-08T23:22:37.7407300Z             {
2026-06-08T23:22:37.7407727Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-08T23:22:37.7408027Z               "line": 92
2026-06-08T23:22:37.7408312Z             },
2026-06-08T23:22:37.7408593Z             {
2026-06-08T23:22:37.7409018Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-08T23:22:37.7409305Z               "line": 116
2026-06-08T23:22:37.7409591Z             },
2026-06-08T23:22:37.7409872Z             {
2026-06-08T23:22:37.7410294Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-08T23:22:37.7410589Z               "line": 133
2026-06-08T23:22:37.7410864Z             }
2026-06-08T23:22:37.7411136Z           ]
2026-06-08T23:22:37.7411417Z         },
2026-06-08T23:22:37.7411703Z         "unit": {
2026-06-08T23:22:37.7411994Z           "complete": true,
2026-06-08T23:22:37.7412285Z           "evidence": [
2026-06-08T23:22:37.7412567Z             {
2026-06-08T23:22:37.7412971Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7413271Z               "line": 427
2026-06-08T23:22:37.7413553Z             },
2026-06-08T23:22:37.7413839Z             {
2026-06-08T23:22:37.7414272Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7414568Z               "line": 318
2026-06-08T23:22:37.7414849Z             },
2026-06-08T23:22:37.7415131Z             {
2026-06-08T23:22:37.7415568Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7415862Z               "line": 354
2026-06-08T23:22:37.7416153Z             },
2026-06-08T23:22:37.7416435Z             {
2026-06-08T23:22:37.7416868Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7417235Z               "line": 369
2026-06-08T23:22:37.7417526Z             },
2026-06-08T23:22:37.7417807Z             {
2026-06-08T23:22:37.7418236Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7418534Z               "line": 380
2026-06-08T23:22:37.7418834Z             },
2026-06-08T23:22:37.7419120Z             {
2026-06-08T23:22:37.7419550Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7419846Z               "line": 391
2026-06-08T23:22:37.7420132Z             },
2026-06-08T23:22:37.7420413Z             {
2026-06-08T23:22:37.7420836Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7421159Z               "line": 402
2026-06-08T23:22:37.7421459Z             },
2026-06-08T23:22:37.7421744Z             {
2026-06-08T23:22:37.7422168Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7422479Z               "line": 438
2026-06-08T23:22:37.7422761Z             },
2026-06-08T23:22:37.7423042Z             {
2026-06-08T23:22:37.7423470Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7423760Z               "line": 461
2026-06-08T23:22:37.7424042Z             },
2026-06-08T23:22:37.7424319Z             {
2026-06-08T23:22:37.7424900Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-08T23:22:37.7425195Z               "line": 488
2026-06-08T23:22:37.7425472Z             }
2026-06-08T23:22:37.7425748Z           ]
2026-06-08T23:22:37.7426020Z         }
2026-06-08T23:22:37.7426300Z       }
2026-06-08T23:22:37.7426594Z     },
2026-06-08T23:22:37.7427075Z     {
2026-06-08T23:22:37.7427390Z       "id": "REQ-MESH-2",
2026-06-08T23:22:37.7434984Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-08T23:22:37.7435317Z       "requiredStages": [
2026-06-08T23:22:37.7435626Z         "impl",
2026-06-08T23:22:37.7435913Z         "unit",
2026-06-08T23:22:37.7436195Z         "int"
2026-06-08T23:22:37.7436472Z       ],
2026-06-08T23:22:37.7436766Z       "stages": {
2026-06-08T23:22:37.7437141Z         "doc": {
2026-06-08T23:22:37.7437460Z           "complete": false,
2026-06-08T23:22:37.7437765Z           "evidence": []
2026-06-08T23:22:37.7438042Z         },
2026-06-08T23:22:37.7438332Z         "impl": {
2026-06-08T23:22:37.7438641Z           "complete": true,
2026-06-08T23:22:37.7438947Z           "evidence": [
2026-06-08T23:22:37.7439237Z             {
2026-06-08T23:22:37.7439663Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.7439969Z               "line": 569
2026-06-08T23:22:37.7440255Z             },
2026-06-08T23:22:37.7440545Z             {
2026-06-08T23:22:37.7440942Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7441242Z               "line": 118
2026-06-08T23:22:37.7441533Z             },
2026-06-08T23:22:37.7441822Z             {
2026-06-08T23:22:37.7442226Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7442526Z               "line": 347
2026-06-08T23:22:37.7442812Z             },
2026-06-08T23:22:37.7443097Z             {
2026-06-08T23:22:37.7443500Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7443810Z               "line": 389
2026-06-08T23:22:37.7444095Z             },
2026-06-08T23:22:37.7444380Z             {
2026-06-08T23:22:37.7444781Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7445090Z               "line": 403
2026-06-08T23:22:37.7445376Z             },
2026-06-08T23:22:37.7445657Z             {
2026-06-08T23:22:37.7446064Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7446359Z               "line": 492
2026-06-08T23:22:37.7446645Z             },
2026-06-08T23:22:37.7446926Z             {
2026-06-08T23:22:37.7447402Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7447711Z               "line": 507
2026-06-08T23:22:37.7448001Z             },
2026-06-08T23:22:37.7448287Z             {
2026-06-08T23:22:37.7448683Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7448979Z               "line": 534
2026-06-08T23:22:37.7449260Z             },
2026-06-08T23:22:37.7449551Z             {
2026-06-08T23:22:37.7449959Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7450258Z               "line": 120
2026-06-08T23:22:37.7450548Z             },
2026-06-08T23:22:37.7450829Z             {
2026-06-08T23:22:37.7451349Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7451644Z               "line": 425
2026-06-08T23:22:37.7451921Z             },
2026-06-08T23:22:37.7452199Z             {
2026-06-08T23:22:37.7452600Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7452901Z               "line": 486
2026-06-08T23:22:37.7453276Z             },
2026-06-08T23:22:37.7453549Z             {
2026-06-08T23:22:37.7453958Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7454264Z               "line": 539
2026-06-08T23:22:37.7454550Z             },
2026-06-08T23:22:37.7454816Z             {
2026-06-08T23:22:37.7455235Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7455531Z               "line": 561
2026-06-08T23:22:37.7455817Z             },
2026-06-08T23:22:37.7456094Z             {
2026-06-08T23:22:37.7456475Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.7456785Z               "line": 112
2026-06-08T23:22:37.7457143Z             },
2026-06-08T23:22:37.7457428Z             {
2026-06-08T23:22:37.7457814Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7458112Z               "line": 44
2026-06-08T23:22:37.7458394Z             },
2026-06-08T23:22:37.7458681Z             {
2026-06-08T23:22:37.7459066Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7459362Z               "line": 184
2026-06-08T23:22:37.7459647Z             },
2026-06-08T23:22:37.7459929Z             {
2026-06-08T23:22:37.7460309Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7460603Z               "line": 211
2026-06-08T23:22:37.7460894Z             },
2026-06-08T23:22:37.7461180Z             {
2026-06-08T23:22:37.7461562Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7461866Z               "line": 251
2026-06-08T23:22:37.7462148Z             },
2026-06-08T23:22:37.7462445Z             {
2026-06-08T23:22:37.7462824Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7463123Z               "line": 275
2026-06-08T23:22:37.7463408Z             },
2026-06-08T23:22:37.7463690Z             {
2026-06-08T23:22:37.7464076Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7464371Z               "line": 289
2026-06-08T23:22:37.7464663Z             },
2026-06-08T23:22:37.7464944Z             {
2026-06-08T23:22:37.7465326Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7465617Z               "line": 300
2026-06-08T23:22:37.7465891Z             },
2026-06-08T23:22:37.7466167Z             {
2026-06-08T23:22:37.7466545Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7466840Z               "line": 313
2026-06-08T23:22:37.7467179Z             }
2026-06-08T23:22:37.7467460Z           ]
2026-06-08T23:22:37.7467732Z         },
2026-06-08T23:22:37.7468012Z         "int": {
2026-06-08T23:22:37.7468341Z           "complete": true,
2026-06-08T23:22:37.7468639Z           "evidence": [
2026-06-08T23:22:37.7468926Z             {
2026-06-08T23:22:37.7469349Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-08T23:22:37.7469654Z               "line": 100
2026-06-08T23:22:37.7469945Z             },
2026-06-08T23:22:37.7470227Z             {
2026-06-08T23:22:37.7470662Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-08T23:22:37.7470965Z               "line": 165
2026-06-08T23:22:37.7471253Z             }
2026-06-08T23:22:37.7471539Z           ]
2026-06-08T23:22:37.7471821Z         },
2026-06-08T23:22:37.7472112Z         "unit": {
2026-06-08T23:22:37.7472422Z           "complete": true,
2026-06-08T23:22:37.7472732Z           "evidence": [
2026-06-08T23:22:37.7473019Z             {
2026-06-08T23:22:37.7473436Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7473735Z               "line": 643
2026-06-08T23:22:37.7474022Z             },
2026-06-08T23:22:37.7474411Z             {
2026-06-08T23:22:37.7474831Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7475136Z               "line": 660
2026-06-08T23:22:37.7475427Z             },
2026-06-08T23:22:37.7475708Z             {
2026-06-08T23:22:37.7476129Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7476528Z               "line": 668
2026-06-08T23:22:37.7476815Z             },
2026-06-08T23:22:37.7477186Z             {
2026-06-08T23:22:37.7477614Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-08T23:22:37.7477924Z               "line": 692
2026-06-08T23:22:37.7478210Z             },
2026-06-08T23:22:37.7478501Z             {
2026-06-08T23:22:37.7478929Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7479242Z               "line": 1498
2026-06-08T23:22:37.7479523Z             },
2026-06-08T23:22:37.7479805Z             {
2026-06-08T23:22:37.7480191Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7480501Z               "line": 347
2026-06-08T23:22:37.7480782Z             },
2026-06-08T23:22:37.7481068Z             {
2026-06-08T23:22:37.7481444Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7481747Z               "line": 370
2026-06-08T23:22:37.7482033Z             },
2026-06-08T23:22:37.7482320Z             {
2026-06-08T23:22:37.7482696Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7482992Z               "line": 407
2026-06-08T23:22:37.7483282Z             },
2026-06-08T23:22:37.7483565Z             {
2026-06-08T23:22:37.7483940Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7484248Z               "line": 431
2026-06-08T23:22:37.7484534Z             },
2026-06-08T23:22:37.7484820Z             {
2026-06-08T23:22:37.7485196Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7485492Z               "line": 483
2026-06-08T23:22:37.7485788Z             },
2026-06-08T23:22:37.7486074Z             {
2026-06-08T23:22:37.7486455Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7486752Z               "line": 499
2026-06-08T23:22:37.7487121Z             },
2026-06-08T23:22:37.7487413Z             {
2026-06-08T23:22:37.7487790Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7488094Z               "line": 514
2026-06-08T23:22:37.7488381Z             },
2026-06-08T23:22:37.7488663Z             {
2026-06-08T23:22:37.7489034Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7489325Z               "line": 531
2026-06-08T23:22:37.7489609Z             }
2026-06-08T23:22:37.7489884Z           ]
2026-06-08T23:22:37.7490169Z         }
2026-06-08T23:22:37.7490451Z       }
2026-06-08T23:22:37.7490727Z     },
2026-06-08T23:22:37.7491005Z     {
2026-06-08T23:22:37.7491309Z       "id": "REQ-MESH-3",
2026-06-08T23:22:37.7496228Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-08T23:22:37.7496567Z       "requiredStages": [
2026-06-08T23:22:37.7496852Z         "impl",
2026-06-08T23:22:37.7497216Z         "unit",
2026-06-08T23:22:37.7497495Z         "int"
2026-06-08T23:22:37.7497776Z       ],
2026-06-08T23:22:37.7498072Z       "stages": {
2026-06-08T23:22:37.7498359Z         "doc": {
2026-06-08T23:22:37.7498668Z           "complete": false,
2026-06-08T23:22:37.7498969Z           "evidence": []
2026-06-08T23:22:37.7499261Z         },
2026-06-08T23:22:37.7499669Z         "impl": {
2026-06-08T23:22:37.7499979Z           "complete": true,
2026-06-08T23:22:37.7500268Z           "evidence": [
2026-06-08T23:22:37.7500553Z             {
2026-06-08T23:22:37.7500959Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7501255Z               "line": 362
2026-06-08T23:22:37.7501540Z             },
2026-06-08T23:22:37.7501940Z             {
2026-06-08T23:22:37.7502357Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7502654Z               "line": 555
2026-06-08T23:22:37.7502939Z             }
2026-06-08T23:22:37.7503215Z           ]
2026-06-08T23:22:37.7503501Z         },
2026-06-08T23:22:37.7503798Z         "int": {
2026-06-08T23:22:37.7504097Z           "complete": true,
2026-06-08T23:22:37.7504398Z           "evidence": [
2026-06-08T23:22:37.7504676Z             {
2026-06-08T23:22:37.7505065Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-08T23:22:37.7505373Z               "line": 371
2026-06-08T23:22:37.7505669Z             },
2026-06-08T23:22:37.7505950Z             {
2026-06-08T23:22:37.7506340Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-08T23:22:37.7506640Z               "line": 434
2026-06-08T23:22:37.7506927Z             }
2026-06-08T23:22:37.7507294Z           ]
2026-06-08T23:22:37.7507575Z         },
2026-06-08T23:22:37.7507867Z         "unit": {
2026-06-08T23:22:37.7508185Z           "complete": true,
2026-06-08T23:22:37.7508485Z           "evidence": [
2026-06-08T23:22:37.7508776Z             {
2026-06-08T23:22:37.7509181Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7509487Z               "line": 796
2026-06-08T23:22:37.7509773Z             }
2026-06-08T23:22:37.7510055Z           ]
2026-06-08T23:22:37.7510340Z         }
2026-06-08T23:22:37.7510624Z       }
2026-06-08T23:22:37.7510908Z     },
2026-06-08T23:22:37.7511190Z     {
2026-06-08T23:22:37.7511505Z       "id": "REQ-MESH-4",
2026-06-08T23:22:37.7518031Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-08T23:22:37.7518370Z       "requiredStages": [],
2026-06-08T23:22:37.7518663Z       "stages": {
2026-06-08T23:22:37.7518949Z         "doc": {
2026-06-08T23:22:37.7519259Z           "complete": false,
2026-06-08T23:22:37.7519569Z           "evidence": []
2026-06-08T23:22:37.7519855Z         },
2026-06-08T23:22:37.7520170Z         "impl": {
2026-06-08T23:22:37.7520480Z           "complete": false,
2026-06-08T23:22:37.7520785Z           "evidence": []
2026-06-08T23:22:37.7521071Z         },
2026-06-08T23:22:37.7521356Z         "int": {
2026-06-08T23:22:37.7521674Z           "complete": false,
2026-06-08T23:22:37.7521979Z           "evidence": []
2026-06-08T23:22:37.7522289Z         },
2026-06-08T23:22:37.7522580Z         "unit": {
2026-06-08T23:22:37.7522895Z           "complete": false,
2026-06-08T23:22:37.7523205Z           "evidence": []
2026-06-08T23:22:37.7523487Z         }
2026-06-08T23:22:37.7523766Z       }
2026-06-08T23:22:37.7524044Z     },
2026-06-08T23:22:37.7524326Z     {
2026-06-08T23:22:37.7524627Z       "id": "REQ-MESH-5",
2026-06-08T23:22:37.7528954Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-08T23:22:37.7529291Z       "requiredStages": [
2026-06-08T23:22:37.7529576Z         "impl",
2026-06-08T23:22:37.7529982Z         "unit"
2026-06-08T23:22:37.7530269Z       ],
2026-06-08T23:22:37.7530565Z       "stages": {
2026-06-08T23:22:37.7530850Z         "doc": {
2026-06-08T23:22:37.7531161Z           "complete": false,
2026-06-08T23:22:37.7531466Z           "evidence": []
2026-06-08T23:22:37.7531749Z         },
2026-06-08T23:22:37.7532043Z         "impl": {
2026-06-08T23:22:37.7532348Z           "complete": true,
2026-06-08T23:22:37.7532653Z           "evidence": [
2026-06-08T23:22:37.7532944Z             {
2026-06-08T23:22:37.7533364Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7533664Z               "line": 61
2026-06-08T23:22:37.7533984Z             },
2026-06-08T23:22:37.7534269Z             {
2026-06-08T23:22:37.7534676Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7534986Z               "line": 109
2026-06-08T23:22:37.7535277Z             },
2026-06-08T23:22:37.7535559Z             {
2026-06-08T23:22:37.7535965Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.7536269Z               "line": 104
2026-06-08T23:22:37.7536560Z             },
2026-06-08T23:22:37.7536845Z             {
2026-06-08T23:22:37.7537349Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.7537649Z               "line": 105
2026-06-08T23:22:37.7537931Z             },
2026-06-08T23:22:37.7538217Z             {
2026-06-08T23:22:37.7538641Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7538947Z               "line": 85
2026-06-08T23:22:37.7539223Z             },
2026-06-08T23:22:37.7539509Z             {
2026-06-08T23:22:37.7539928Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7540223Z               "line": 234
2026-06-08T23:22:37.7543377Z             },
2026-06-08T23:22:37.7543677Z             {
2026-06-08T23:22:37.7544114Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7544415Z               "line": 298
2026-06-08T23:22:37.7544711Z             },
2026-06-08T23:22:37.7544996Z             {
2026-06-08T23:22:37.7545422Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7545728Z               "line": 687
2026-06-08T23:22:37.7546000Z             },
2026-06-08T23:22:37.7546286Z             {
2026-06-08T23:22:37.7546667Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7547044Z               "line": 101
2026-06-08T23:22:37.7547329Z             },
2026-06-08T23:22:37.7547618Z             {
2026-06-08T23:22:37.7548004Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7548304Z               "line": 193
2026-06-08T23:22:37.7548590Z             }
2026-06-08T23:22:37.7548881Z           ]
2026-06-08T23:22:37.7549158Z         },
2026-06-08T23:22:37.7549440Z         "int": {
2026-06-08T23:22:37.7549751Z           "complete": false,
2026-06-08T23:22:37.7550051Z           "evidence": []
2026-06-08T23:22:37.7550330Z         },
2026-06-08T23:22:37.7550620Z         "unit": {
2026-06-08T23:22:37.7550925Z           "complete": true,
2026-06-08T23:22:37.7551226Z           "evidence": [
2026-06-08T23:22:37.7551508Z             {
2026-06-08T23:22:37.7551937Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.7552237Z               "line": 927
2026-06-08T23:22:37.7552518Z             },
2026-06-08T23:22:37.7552799Z             {
2026-06-08T23:22:37.7553182Z               "path": "crates/spt-store/src/roster.rs",
2026-06-08T23:22:37.7553483Z               "line": 462
2026-06-08T23:22:37.7553769Z             }
2026-06-08T23:22:37.7554046Z           ]
2026-06-08T23:22:37.7554460Z         }
2026-06-08T23:22:37.7554741Z       }
2026-06-08T23:22:37.7555023Z     },
2026-06-08T23:22:37.7555304Z     {
2026-06-08T23:22:37.7555612Z       "id": "REQ-MESH-6",
2026-06-08T23:22:37.7559337Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-08T23:22:37.7559766Z       "requiredStages": [],
2026-06-08T23:22:37.7560062Z       "stages": {
2026-06-08T23:22:37.7560348Z         "doc": {
2026-06-08T23:22:37.7560654Z           "complete": false,
2026-06-08T23:22:37.7560962Z           "evidence": []
2026-06-08T23:22:37.7561238Z         },
2026-06-08T23:22:37.7561529Z         "impl": {
2026-06-08T23:22:37.7561858Z           "complete": false,
2026-06-08T23:22:37.7562158Z           "evidence": []
2026-06-08T23:22:37.7562444Z         },
2026-06-08T23:22:37.7562726Z         "int": {
2026-06-08T23:22:37.7563030Z           "complete": false,
2026-06-08T23:22:37.7563326Z           "evidence": []
2026-06-08T23:22:37.7563611Z         },
2026-06-08T23:22:37.7563896Z         "unit": {
2026-06-08T23:22:37.7564234Z           "complete": false,
2026-06-08T23:22:37.7564545Z           "evidence": []
2026-06-08T23:22:37.7564821Z         }
2026-06-08T23:22:37.7565103Z       }
2026-06-08T23:22:37.7565383Z     },
2026-06-08T23:22:37.7565664Z     {
2026-06-08T23:22:37.7565973Z       "id": "REQ-MIGRATE-1",
2026-06-08T23:22:37.7566525Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-08T23:22:37.7566844Z       "requiredStages": [],
2026-06-08T23:22:37.7567206Z       "stages": {
2026-06-08T23:22:37.7567488Z         "doc": {
2026-06-08T23:22:37.7567792Z           "complete": false,
2026-06-08T23:22:37.7568102Z           "evidence": []
2026-06-08T23:22:37.7568375Z         },
2026-06-08T23:22:37.7568664Z         "impl": {
2026-06-08T23:22:37.7568972Z           "complete": false,
2026-06-08T23:22:37.7569262Z           "evidence": []
2026-06-08T23:22:37.7569539Z         },
2026-06-08T23:22:37.7569820Z         "int": {
2026-06-08T23:22:37.7570116Z           "complete": false,
2026-06-08T23:22:37.7570416Z           "evidence": []
2026-06-08T23:22:37.7570702Z         },
2026-06-08T23:22:37.7571002Z         "unit": {
2026-06-08T23:22:37.7571298Z           "complete": false,
2026-06-08T23:22:37.7571590Z           "evidence": []
2026-06-08T23:22:37.7571861Z         }
2026-06-08T23:22:37.7572137Z       }
2026-06-08T23:22:37.7572408Z     },
2026-06-08T23:22:37.7572690Z     {
2026-06-08T23:22:37.7572981Z       "id": "REQ-MSG-1",
2026-06-08T23:22:37.7574447Z       "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-08T23:22:37.7574766Z       "requiredStages": [
2026-06-08T23:22:37.7575047Z         "impl",
2026-06-08T23:22:37.7575339Z         "unit",
2026-06-08T23:22:37.7575619Z         "int"
2026-06-08T23:22:37.7575895Z       ],
2026-06-08T23:22:37.7576182Z       "stages": {
2026-06-08T23:22:37.7576458Z         "doc": {
2026-06-08T23:22:37.7576775Z           "complete": false,
2026-06-08T23:22:37.7577146Z           "evidence": []
2026-06-08T23:22:37.7577428Z         },
2026-06-08T23:22:37.7577709Z         "impl": {
2026-06-08T23:22:37.7578019Z           "complete": true,
2026-06-08T23:22:37.7578310Z           "evidence": [
2026-06-08T23:22:37.7578587Z             {
2026-06-08T23:22:37.7578973Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7579262Z               "line": 28
2026-06-08T23:22:37.7579542Z             },
2026-06-08T23:22:37.7579823Z             {
2026-06-08T23:22:37.7580200Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7580496Z               "line": 94
2026-06-08T23:22:37.7580881Z             },
2026-06-08T23:22:37.7581168Z             {
2026-06-08T23:22:37.7581539Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7581835Z               "line": 127
2026-06-08T23:22:37.7582121Z             },
2026-06-08T23:22:37.7582402Z             {
2026-06-08T23:22:37.7582764Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7583150Z               "line": 149
2026-06-08T23:22:37.7583431Z             },
2026-06-08T23:22:37.7583704Z             {
2026-06-08T23:22:37.7584080Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7584367Z               "line": 174
2026-06-08T23:22:37.7584642Z             },
2026-06-08T23:22:37.7584920Z             {
2026-06-08T23:22:37.7585302Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7585603Z               "line": 18
2026-06-08T23:22:37.7585874Z             },
2026-06-08T23:22:37.7586160Z             {
2026-06-08T23:22:37.7586518Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.7586819Z               "line": 13
2026-06-08T23:22:37.7587189Z             },
2026-06-08T23:22:37.7587482Z             {
2026-06-08T23:22:37.7587845Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.7588136Z               "line": 61
2026-06-08T23:22:37.7588422Z             },
2026-06-08T23:22:37.7588707Z             {
2026-06-08T23:22:37.7589066Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-08T23:22:37.7589361Z               "line": 10
2026-06-08T23:22:37.7589641Z             }
2026-06-08T23:22:37.7589925Z           ]
2026-06-08T23:22:37.7590198Z         },
2026-06-08T23:22:37.7590483Z         "int": {
2026-06-08T23:22:37.7590793Z           "complete": true,
2026-06-08T23:22:37.7591089Z           "evidence": [
2026-06-08T23:22:37.7591366Z             {
2026-06-08T23:22:37.7591808Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-08T23:22:37.7592099Z               "line": 9
2026-06-08T23:22:37.7592386Z             },
2026-06-08T23:22:37.7592662Z             {
2026-06-08T23:22:37.7593095Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-08T23:22:37.7593397Z               "line": 70
2026-06-08T23:22:37.7593681Z             },
2026-06-08T23:22:37.7593964Z             {
2026-06-08T23:22:37.7594402Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-08T23:22:37.7594701Z               "line": 129
2026-06-08T23:22:37.7594983Z             }
2026-06-08T23:22:37.7595268Z           ]
2026-06-08T23:22:37.7595539Z         },
2026-06-08T23:22:37.7595814Z         "unit": {
2026-06-08T23:22:37.7596125Z           "complete": true,
2026-06-08T23:22:37.7596420Z           "evidence": [
2026-06-08T23:22:37.7596697Z             {
2026-06-08T23:22:37.7597137Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7597437Z               "line": 203
2026-06-08T23:22:37.7597716Z             },
2026-06-08T23:22:37.7597994Z             {
2026-06-08T23:22:37.7598381Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7598677Z               "line": 232
2026-06-08T23:22:37.7598962Z             },
2026-06-08T23:22:37.7599249Z             {
2026-06-08T23:22:37.7599631Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7599936Z               "line": 277
2026-06-08T23:22:37.7600225Z             },
2026-06-08T23:22:37.7600509Z             {
2026-06-08T23:22:37.7600885Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7601181Z               "line": 300
2026-06-08T23:22:37.7601458Z             },
2026-06-08T23:22:37.7601740Z             {
2026-06-08T23:22:37.7602116Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-08T23:22:37.7602412Z               "line": 324
2026-06-08T23:22:37.7602693Z             },
2026-06-08T23:22:37.7602974Z             {
2026-06-08T23:22:37.7603369Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7603770Z               "line": 203
2026-06-08T23:22:37.7604060Z             },
2026-06-08T23:22:37.7604342Z             {
2026-06-08T23:22:37.7604728Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7605024Z               "line": 236
2026-06-08T23:22:37.7605305Z             },
2026-06-08T23:22:37.7605581Z             {
2026-06-08T23:22:37.7606055Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7606361Z               "line": 250
2026-06-08T23:22:37.7606641Z             },
2026-06-08T23:22:37.7606918Z             {
2026-06-08T23:22:37.7607377Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7607673Z               "line": 262
2026-06-08T23:22:37.7607949Z             },
2026-06-08T23:22:37.7608228Z             {
2026-06-08T23:22:37.7608583Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.7608874Z               "line": 158
2026-06-08T23:22:37.7609160Z             },
2026-06-08T23:22:37.7609441Z             {
2026-06-08T23:22:37.7609804Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-08T23:22:37.7610105Z               "line": 241
2026-06-08T23:22:37.7610386Z             },
2026-06-08T23:22:37.7610667Z             {
2026-06-08T23:22:37.7611022Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-08T23:22:37.7611313Z               "line": 68
2026-06-08T23:22:37.7611604Z             },
2026-06-08T23:22:37.7611895Z             {
2026-06-08T23:22:37.7612252Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-08T23:22:37.7612543Z               "line": 77
2026-06-08T23:22:37.7612830Z             },
2026-06-08T23:22:37.7613112Z             {
2026-06-08T23:22:37.7613464Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-08T23:22:37.7613753Z               "line": 83
2026-06-08T23:22:37.7614034Z             },
2026-06-08T23:22:37.7614315Z             {
2026-06-08T23:22:37.7614673Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-08T23:22:37.7614974Z               "line": 102
2026-06-08T23:22:37.7615254Z             }
2026-06-08T23:22:37.7615532Z           ]
2026-06-08T23:22:37.7615808Z         }
2026-06-08T23:22:37.7616081Z       }
2026-06-08T23:22:37.7616355Z     },
2026-06-08T23:22:37.7616630Z     {
2026-06-08T23:22:37.7616935Z       "id": "REQ-MSG-2",
2026-06-08T23:22:37.7617864Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-08T23:22:37.7618184Z       "requiredStages": [
2026-06-08T23:22:37.7618470Z         "impl",
2026-06-08T23:22:37.7618751Z         "unit"
2026-06-08T23:22:37.7619029Z       ],
2026-06-08T23:22:37.7619326Z       "stages": {
2026-06-08T23:22:37.7619602Z         "doc": {
2026-06-08T23:22:37.7619916Z           "complete": false,
2026-06-08T23:22:37.7620227Z           "evidence": []
2026-06-08T23:22:37.7620504Z         },
2026-06-08T23:22:37.7620795Z         "impl": {
2026-06-08T23:22:37.7621095Z           "complete": true,
2026-06-08T23:22:37.7621393Z           "evidence": [
2026-06-08T23:22:37.7621681Z             {
2026-06-08T23:22:37.7622030Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7622325Z               "line": 11
2026-06-08T23:22:37.7622607Z             },
2026-06-08T23:22:37.7622893Z             {
2026-06-08T23:22:37.7623246Z               "path": "crates/spt/src/main.rs",
2026-06-08T23:22:37.7623541Z               "line": 8
2026-06-08T23:22:37.7623832Z             }
2026-06-08T23:22:37.7624118Z           ]
2026-06-08T23:22:37.7624400Z         },
2026-06-08T23:22:37.7624686Z         "int": {
2026-06-08T23:22:37.7624995Z           "complete": false,
2026-06-08T23:22:37.7625296Z           "evidence": []
2026-06-08T23:22:37.7625577Z         },
2026-06-08T23:22:37.7625863Z         "unit": {
2026-06-08T23:22:37.7626168Z           "complete": true,
2026-06-08T23:22:37.7626468Z           "evidence": [
2026-06-08T23:22:37.7626748Z             {
2026-06-08T23:22:37.7627180Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7627476Z               "line": 4583
2026-06-08T23:22:37.7627882Z             },
2026-06-08T23:22:37.7628163Z             {
2026-06-08T23:22:37.7628502Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7628802Z               "line": 4632
2026-06-08T23:22:37.7629079Z             },
2026-06-08T23:22:37.7629353Z             {
2026-06-08T23:22:37.7629694Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7630086Z               "line": 4655
2026-06-08T23:22:37.7630372Z             },
2026-06-08T23:22:37.7630648Z             {
2026-06-08T23:22:37.7630987Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7631278Z               "line": 6092
2026-06-08T23:22:37.7631563Z             },
2026-06-08T23:22:37.7631839Z             {
2026-06-08T23:22:37.7632180Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7632476Z               "line": 6101
2026-06-08T23:22:37.7632749Z             },
2026-06-08T23:22:37.7633024Z             {
2026-06-08T23:22:37.7633367Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7633664Z               "line": 6115
2026-06-08T23:22:37.7633941Z             }
2026-06-08T23:22:37.7634222Z           ]
2026-06-08T23:22:37.7634493Z         }
2026-06-08T23:22:37.7634754Z       }
2026-06-08T23:22:37.7635031Z     },
2026-06-08T23:22:37.7635303Z     {
2026-06-08T23:22:37.7635598Z       "id": "REQ-MSG-3",
2026-06-08T23:22:37.7636825Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-08T23:22:37.7637223Z       "requiredStages": [
2026-06-08T23:22:37.7637518Z         "impl",
2026-06-08T23:22:37.7637818Z         "unit",
2026-06-08T23:22:37.7638103Z         "int"
2026-06-08T23:22:37.7638380Z       ],
2026-06-08T23:22:37.7638671Z       "stages": {
2026-06-08T23:22:37.7638961Z         "doc": {
2026-06-08T23:22:37.7639266Z           "complete": false,
2026-06-08T23:22:37.7639567Z           "evidence": []
2026-06-08T23:22:37.7639842Z         },
2026-06-08T23:22:37.7640136Z         "impl": {
2026-06-08T23:22:37.7640464Z           "complete": true,
2026-06-08T23:22:37.7640779Z           "evidence": [
2026-06-08T23:22:37.7641065Z             {
2026-06-08T23:22:37.7641452Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-08T23:22:37.7641757Z               "line": 19
2026-06-08T23:22:37.7642033Z             },
2026-06-08T23:22:37.7642320Z             {
2026-06-08T23:22:37.7642688Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7642989Z               "line": 21
2026-06-08T23:22:37.7643270Z             },
2026-06-08T23:22:37.7643547Z             {
2026-06-08T23:22:37.7643919Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7644210Z               "line": 48
2026-06-08T23:22:37.7644491Z             },
2026-06-08T23:22:37.7644773Z             {
2026-06-08T23:22:37.7645140Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7645433Z               "line": 142
2026-06-08T23:22:37.7645720Z             }
2026-06-08T23:22:37.7646005Z           ]
2026-06-08T23:22:37.7646282Z         },
2026-06-08T23:22:37.7646563Z         "int": {
2026-06-08T23:22:37.7646864Z           "complete": true,
2026-06-08T23:22:37.7647260Z           "evidence": [
2026-06-08T23:22:37.7647555Z             {
2026-06-08T23:22:37.7648012Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-08T23:22:37.7648315Z               "line": 10
2026-06-08T23:22:37.7648601Z             },
2026-06-08T23:22:37.7648887Z             {
2026-06-08T23:22:37.7649326Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-08T23:22:37.7649637Z               "line": 70
2026-06-08T23:22:37.7649923Z             }
2026-06-08T23:22:37.7650209Z           ]
2026-06-08T23:22:37.7650497Z         },
2026-06-08T23:22:37.7650786Z         "unit": {
2026-06-08T23:22:37.7651082Z           "complete": true,
2026-06-08T23:22:37.7651368Z           "evidence": [
2026-06-08T23:22:37.7651650Z             {
2026-06-08T23:22:37.7652108Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7652407Z               "line": 196
2026-06-08T23:22:37.7652703Z             },
2026-06-08T23:22:37.7652988Z             {
2026-06-08T23:22:37.7653362Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7653658Z               "line": 215
2026-06-08T23:22:37.7654044Z             },
2026-06-08T23:22:37.7654330Z             {
2026-06-08T23:22:37.7654694Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-08T23:22:37.7654994Z               "line": 237
2026-06-08T23:22:37.7655270Z             }
2026-06-08T23:22:37.7655556Z           ]
2026-06-08T23:22:37.7655827Z         }
2026-06-08T23:22:37.7656109Z       }
2026-06-08T23:22:37.7656390Z     },
2026-06-08T23:22:37.7656667Z     {
2026-06-08T23:22:37.7657048Z       "id": "REQ-MSG-4",
2026-06-08T23:22:37.7659456Z       "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-08T23:22:37.7659786Z       "requiredStages": [
2026-06-08T23:22:37.7660081Z         "impl",
2026-06-08T23:22:37.7660367Z         "unit",
2026-06-08T23:22:37.7660658Z         "int"
2026-06-08T23:22:37.7660948Z       ],
2026-06-08T23:22:37.7661261Z       "stages": {
2026-06-08T23:22:37.7661552Z         "doc": {
2026-06-08T23:22:37.7661867Z           "complete": false,
2026-06-08T23:22:37.7662167Z           "evidence": []
2026-06-08T23:22:37.7662453Z         },
2026-06-08T23:22:37.7662745Z         "impl": {
2026-06-08T23:22:37.7663055Z           "complete": true,
2026-06-08T23:22:37.7663360Z           "evidence": [
2026-06-08T23:22:37.7663643Z             {
2026-06-08T23:22:37.7664018Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7664324Z               "line": 16
2026-06-08T23:22:37.7664604Z             },
2026-06-08T23:22:37.7664890Z             {
2026-06-08T23:22:37.7665283Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7665588Z               "line": 25
2026-06-08T23:22:37.7665874Z             },
2026-06-08T23:22:37.7666159Z             {
2026-06-08T23:22:37.7666525Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7666825Z               "line": 47
2026-06-08T23:22:37.7667213Z             },
2026-06-08T23:22:37.7667499Z             {
2026-06-08T23:22:37.7667880Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.7668181Z               "line": 363
2026-06-08T23:22:37.7668467Z             },
2026-06-08T23:22:37.7668748Z             {
2026-06-08T23:22:37.7669090Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7669378Z               "line": 1807
2026-06-08T23:22:37.7669659Z             }
2026-06-08T23:22:37.7669950Z           ]
2026-06-08T23:22:37.7670237Z         },
2026-06-08T23:22:37.7670542Z         "int": {
2026-06-08T23:22:37.7670861Z           "complete": true,
2026-06-08T23:22:37.7671161Z           "evidence": [
2026-06-08T23:22:37.7671453Z             {
2026-06-08T23:22:37.7671854Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-08T23:22:37.7672150Z               "line": 93
2026-06-08T23:22:37.7672432Z             },
2026-06-08T23:22:37.7672717Z             {
2026-06-08T23:22:37.7673127Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-08T23:22:37.7673433Z               "line": 123
2026-06-08T23:22:37.7673718Z             }
2026-06-08T23:22:37.7674000Z           ]
2026-06-08T23:22:37.7674290Z         },
2026-06-08T23:22:37.7674584Z         "unit": {
2026-06-08T23:22:37.7674894Z           "complete": true,
2026-06-08T23:22:37.7675199Z           "evidence": [
2026-06-08T23:22:37.7675480Z             {
2026-06-08T23:22:37.7675848Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7676148Z               "line": 62
2026-06-08T23:22:37.7676439Z             },
2026-06-08T23:22:37.7676724Z             {
2026-06-08T23:22:37.7677248Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7677586Z               "line": 73
2026-06-08T23:22:37.7677873Z             },
2026-06-08T23:22:37.7678154Z             {
2026-06-08T23:22:37.7678507Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7678807Z               "line": 84
2026-06-08T23:22:37.7679179Z             },
2026-06-08T23:22:37.7679464Z             {
2026-06-08T23:22:37.7679824Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7680125Z               "line": 96
2026-06-08T23:22:37.7680411Z             },
2026-06-08T23:22:37.7680692Z             {
2026-06-08T23:22:37.7681059Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7681350Z               "line": 105
2026-06-08T23:22:37.7681637Z             },
2026-06-08T23:22:37.7681914Z             {
2026-06-08T23:22:37.7682269Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-08T23:22:37.7682567Z               "line": 120
2026-06-08T23:22:37.7682853Z             }
2026-06-08T23:22:37.7683139Z           ]
2026-06-08T23:22:37.7683420Z         }
2026-06-08T23:22:37.7683702Z       }
2026-06-08T23:22:37.7683988Z     },
2026-06-08T23:22:37.7684264Z     {
2026-06-08T23:22:37.7684575Z       "id": "REQ-NET-1",
2026-06-08T23:22:37.7685168Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-08T23:22:37.7685492Z       "requiredStages": [
2026-06-08T23:22:37.7685779Z         "impl",
2026-06-08T23:22:37.7686064Z         "unit",
2026-06-08T23:22:37.7686350Z         "int"
2026-06-08T23:22:37.7686626Z       ],
2026-06-08T23:22:37.7686922Z       "stages": {
2026-06-08T23:22:37.7687299Z         "doc": {
2026-06-08T23:22:37.7687631Z           "complete": false,
2026-06-08T23:22:37.7687931Z           "evidence": []
2026-06-08T23:22:37.7688217Z         },
2026-06-08T23:22:37.7688508Z         "impl": {
2026-06-08T23:22:37.7688813Z           "complete": true,
2026-06-08T23:22:37.7689114Z           "evidence": [
2026-06-08T23:22:37.7689405Z             {
2026-06-08T23:22:37.7689811Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7690100Z               "line": 54
2026-06-08T23:22:37.7690384Z             },
2026-06-08T23:22:37.7690671Z             {
2026-06-08T23:22:37.7691070Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7691380Z               "line": 594
2026-06-08T23:22:37.7691662Z             },
2026-06-08T23:22:37.7691948Z             {
2026-06-08T23:22:37.7692320Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-08T23:22:37.7692620Z               "line": 69
2026-06-08T23:22:37.7692904Z             },
2026-06-08T23:22:37.7693190Z             {
2026-06-08T23:22:37.7693599Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7693905Z               "line": 97
2026-06-08T23:22:37.7694195Z             },
2026-06-08T23:22:37.7694468Z             {
2026-06-08T23:22:37.7694867Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7695177Z               "line": 159
2026-06-08T23:22:37.7695455Z             },
2026-06-08T23:22:37.7695749Z             {
2026-06-08T23:22:37.7696149Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7696455Z               "line": 175
2026-06-08T23:22:37.7696750Z             },
2026-06-08T23:22:37.7697108Z             {
2026-06-08T23:22:37.7697518Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7697828Z               "line": 190
2026-06-08T23:22:37.7698146Z             },
2026-06-08T23:22:37.7698430Z             {
2026-06-08T23:22:37.7698820Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7699121Z               "line": 271
2026-06-08T23:22:37.7699417Z             },
2026-06-08T23:22:37.7699698Z             {
2026-06-08T23:22:37.7700104Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7700414Z               "line": 306
2026-06-08T23:22:37.7700799Z             },
2026-06-08T23:22:37.7701087Z             {
2026-06-08T23:22:37.7701483Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7701784Z               "line": 312
2026-06-08T23:22:37.7702075Z             },
2026-06-08T23:22:37.7702366Z             {
2026-06-08T23:22:37.7702766Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7703156Z               "line": 318
2026-06-08T23:22:37.7703446Z             },
2026-06-08T23:22:37.7703736Z             {
2026-06-08T23:22:37.7704136Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7704446Z               "line": 334
2026-06-08T23:22:37.7704732Z             },
2026-06-08T23:22:37.7705023Z             {
2026-06-08T23:22:37.7705432Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7705737Z               "line": 354
2026-06-08T23:22:37.7706026Z             },
2026-06-08T23:22:37.7706303Z             {
2026-06-08T23:22:37.7706698Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.7707060Z               "line": 35
2026-06-08T23:22:37.7707356Z             },
2026-06-08T23:22:37.7707637Z             {
2026-06-08T23:22:37.7708037Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.7708332Z               "line": 85
2026-06-08T23:22:37.7708619Z             },
2026-06-08T23:22:37.7708915Z             {
2026-06-08T23:22:37.7709290Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.7709591Z               "line": 135
2026-06-08T23:22:37.7709877Z             },
2026-06-08T23:22:37.7710163Z             {
2026-06-08T23:22:37.7710511Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7710812Z               "line": 1655
2026-06-08T23:22:37.7711099Z             },
2026-06-08T23:22:37.7711378Z             {
2026-06-08T23:22:37.7711739Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7712044Z               "line": 17
2026-06-08T23:22:37.7712330Z             }
2026-06-08T23:22:37.7712616Z           ]
2026-06-08T23:22:37.7712902Z         },
2026-06-08T23:22:37.7713193Z         "int": {
2026-06-08T23:22:37.7713498Z           "complete": true,
2026-06-08T23:22:37.7713802Z           "evidence": [
2026-06-08T23:22:37.7714090Z             {
2026-06-08T23:22:37.7714510Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.7714820Z               "line": 340
2026-06-08T23:22:37.7715101Z             },
2026-06-08T23:22:37.7715392Z             {
2026-06-08T23:22:37.7715798Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7716103Z               "line": 603
2026-06-08T23:22:37.7716387Z             },
2026-06-08T23:22:37.7716671Z             {
2026-06-08T23:22:37.7717158Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7717454Z               "line": 876
2026-06-08T23:22:37.7717735Z             }
2026-06-08T23:22:37.7718011Z           ]
2026-06-08T23:22:37.7718288Z         },
2026-06-08T23:22:37.7718559Z         "unit": {
2026-06-08T23:22:37.7718859Z           "complete": true,
2026-06-08T23:22:37.7719160Z           "evidence": [
2026-06-08T23:22:37.7719441Z             {
2026-06-08T23:22:37.7719836Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7720137Z               "line": 650
2026-06-08T23:22:37.7720428Z             },
2026-06-08T23:22:37.7720714Z             {
2026-06-08T23:22:37.7721114Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7721423Z               "line": 685
2026-06-08T23:22:37.7721705Z             },
2026-06-08T23:22:37.7721990Z             {
2026-06-08T23:22:37.7722403Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.7722699Z               "line": 931
2026-06-08T23:22:37.7722989Z             },
2026-06-08T23:22:37.7723272Z             {
2026-06-08T23:22:37.7723672Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-08T23:22:37.7724096Z               "line": 152
2026-06-08T23:22:37.7724390Z             },
2026-06-08T23:22:37.7724674Z             {
2026-06-08T23:22:37.7725080Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7725375Z               "line": 442
2026-06-08T23:22:37.7725661Z             },
2026-06-08T23:22:37.7725947Z             {
2026-06-08T23:22:37.7726343Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7726750Z               "line": 456
2026-06-08T23:22:37.7727114Z             },
2026-06-08T23:22:37.7727399Z             {
2026-06-08T23:22:37.7727809Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7728109Z               "line": 475
2026-06-08T23:22:37.7728390Z             },
2026-06-08T23:22:37.7728672Z             {
2026-06-08T23:22:37.7729067Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.7729368Z               "line": 119
2026-06-08T23:22:37.7729659Z             },
2026-06-08T23:22:37.7729949Z             {
2026-06-08T23:22:37.7730350Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-08T23:22:37.7730650Z               "line": 162
2026-06-08T23:22:37.7730931Z             },
2026-06-08T23:22:37.7731217Z             {
2026-06-08T23:22:37.7731594Z               "path": "crates/spt-store/src/spool.rs",
2026-06-08T23:22:37.7731895Z               "line": 492
2026-06-08T23:22:37.7732191Z             },
2026-06-08T23:22:37.7732475Z             {
2026-06-08T23:22:37.7732840Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7733136Z               "line": 615
2026-06-08T23:22:37.7733432Z             },
2026-06-08T23:22:37.7733727Z             {
2026-06-08T23:22:37.7734085Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.7734390Z               "line": 1004
2026-06-08T23:22:37.7734676Z             }
2026-06-08T23:22:37.7734960Z           ]
2026-06-08T23:22:37.7735244Z         }
2026-06-08T23:22:37.7735525Z       }
2026-06-08T23:22:37.7735803Z     },
2026-06-08T23:22:37.7736093Z     {
2026-06-08T23:22:37.7736403Z       "id": "REQ-NET-2",
2026-06-08T23:22:37.7737070Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-08T23:22:37.7737385Z       "requiredStages": [
2026-06-08T23:22:37.7737674Z         "impl"
2026-06-08T23:22:37.7737959Z       ],
2026-06-08T23:22:37.7738250Z       "stages": {
2026-06-08T23:22:37.7738540Z         "doc": {
2026-06-08T23:22:37.7738855Z           "complete": false,
2026-06-08T23:22:37.7739151Z           "evidence": []
2026-06-08T23:22:37.7739437Z         },
2026-06-08T23:22:37.7739727Z         "impl": {
2026-06-08T23:22:37.7740037Z           "complete": true,
2026-06-08T23:22:37.7740337Z           "evidence": [
2026-06-08T23:22:37.7740613Z             {
2026-06-08T23:22:37.7741014Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.7741309Z               "line": 57
2026-06-08T23:22:37.7741591Z             },
2026-06-08T23:22:37.7741863Z             {
2026-06-08T23:22:37.7742263Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7742563Z               "line": 71
2026-06-08T23:22:37.7742844Z             },
2026-06-08T23:22:37.7743124Z             {
2026-06-08T23:22:37.7743514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7743810Z               "line": 81
2026-06-08T23:22:37.7744091Z             },
2026-06-08T23:22:37.7744377Z             {
2026-06-08T23:22:37.7744773Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7745068Z               "line": 159
2026-06-08T23:22:37.7745346Z             },
2026-06-08T23:22:37.7745630Z             {
2026-06-08T23:22:37.7746034Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7746324Z               "line": 175
2026-06-08T23:22:37.7746611Z             },
2026-06-08T23:22:37.7746892Z             {
2026-06-08T23:22:37.7747392Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-08T23:22:37.7747803Z               "line": 190
2026-06-08T23:22:37.7748091Z             }
2026-06-08T23:22:37.7748390Z           ]
2026-06-08T23:22:37.7748671Z         },
2026-06-08T23:22:37.7748967Z         "int": {
2026-06-08T23:22:37.7749291Z           "complete": false,
2026-06-08T23:22:37.7749597Z           "evidence": []
2026-06-08T23:22:37.7749882Z         },
2026-06-08T23:22:37.7750169Z         "unit": {
2026-06-08T23:22:37.7750573Z           "complete": true,
2026-06-08T23:22:37.7750868Z           "evidence": [
2026-06-08T23:22:37.7751160Z             {
2026-06-08T23:22:37.7751560Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.7751855Z               "line": 402
2026-06-08T23:22:37.7752147Z             }
2026-06-08T23:22:37.7752432Z           ]
2026-06-08T23:22:37.7752719Z         }
2026-06-08T23:22:37.7753006Z       }
2026-06-08T23:22:37.7753292Z     },
2026-06-08T23:22:37.7753580Z     {
2026-06-08T23:22:37.7753884Z       "id": "REQ-NET-3",
2026-06-08T23:22:37.7757237Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-08T23:22:37.7757581Z       "requiredStages": [
2026-06-08T23:22:37.7757867Z         "impl",
2026-06-08T23:22:37.7758153Z         "unit"
2026-06-08T23:22:37.7758439Z       ],
2026-06-08T23:22:37.7758728Z       "stages": {
2026-06-08T23:22:37.7759017Z         "doc": {
2026-06-08T23:22:37.7759337Z           "complete": false,
2026-06-08T23:22:37.7759646Z           "evidence": []
2026-06-08T23:22:37.7759932Z         },
2026-06-08T23:22:37.7760223Z         "impl": {
2026-06-08T23:22:37.7760533Z           "complete": true,
2026-06-08T23:22:37.7760838Z           "evidence": [
2026-06-08T23:22:37.7761123Z             {
2026-06-08T23:22:37.7761510Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7761810Z               "line": 39
2026-06-08T23:22:37.7762096Z             },
2026-06-08T23:22:37.7762378Z             {
2026-06-08T23:22:37.7762763Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7763064Z               "line": 182
2026-06-08T23:22:37.7763360Z             },
2026-06-08T23:22:37.7763645Z             {
2026-06-08T23:22:37.7764027Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-08T23:22:37.7764324Z               "line": 333
2026-06-08T23:22:37.7764611Z             },
2026-06-08T23:22:37.7764892Z             {
2026-06-08T23:22:37.7765278Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-08T23:22:37.7765584Z               "line": 36
2026-06-08T23:22:37.7765874Z             },
2026-06-08T23:22:37.7766156Z             {
2026-06-08T23:22:37.7766574Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7766867Z               "line": 158
2026-06-08T23:22:37.7767239Z             },
2026-06-08T23:22:37.7767525Z             {
2026-06-08T23:22:37.7767940Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7768235Z               "line": 212
2026-06-08T23:22:37.7768517Z             },
2026-06-08T23:22:37.7768789Z             {
2026-06-08T23:22:37.7769207Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7769510Z               "line": 233
2026-06-08T23:22:37.7769801Z             },
2026-06-08T23:22:37.7770082Z             {
2026-06-08T23:22:37.7770497Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7770797Z               "line": 291
2026-06-08T23:22:37.7771093Z             },
2026-06-08T23:22:37.7771375Z             {
2026-06-08T23:22:37.7771790Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7772079Z               "line": 310
2026-06-08T23:22:37.7772360Z             },
2026-06-08T23:22:37.7772652Z             {
2026-06-08T23:22:37.7773042Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7773333Z               "line": 348
2026-06-08T23:22:37.7773606Z             },
2026-06-08T23:22:37.7773877Z             {
2026-06-08T23:22:37.7774282Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7774706Z               "line": 393
2026-06-08T23:22:37.7774989Z             },
2026-06-08T23:22:37.7775265Z             {
2026-06-08T23:22:37.7775682Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.7775987Z               "line": 406
2026-06-08T23:22:37.7776267Z             },
2026-06-08T23:22:37.7776554Z             {
2026-06-08T23:22:37.7777130Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7777432Z               "line": 29
2026-06-08T23:22:37.7777719Z             },
2026-06-08T23:22:37.7778010Z             {
2026-06-08T23:22:37.7778414Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7778706Z               "line": 72
2026-06-08T23:22:37.7778996Z             },
2026-06-08T23:22:37.7779278Z             {
2026-06-08T23:22:37.7779687Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7779990Z               "line": 123
2026-06-08T23:22:37.7780271Z             }
2026-06-08T23:22:37.7780567Z           ]
2026-06-08T23:22:37.7780848Z         },
2026-06-08T23:22:37.7781144Z         "int": {
2026-06-08T23:22:37.7781450Z           "complete": false,
2026-06-08T23:22:37.7781750Z           "evidence": []
2026-06-08T23:22:37.7782036Z         },
2026-06-08T23:22:37.7782331Z         "unit": {
2026-06-08T23:22:37.7782654Z           "complete": true,
2026-06-08T23:22:37.7782958Z           "evidence": [
2026-06-08T23:22:37.7783245Z             {
2026-06-08T23:22:37.7783636Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.7783947Z               "line": 223
2026-06-08T23:22:37.7784232Z             },
2026-06-08T23:22:37.7784514Z             {
2026-06-08T23:22:37.7784905Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.7785204Z               "line": 351
2026-06-08T23:22:37.7785487Z             },
2026-06-08T23:22:37.7785774Z             {
2026-06-08T23:22:37.7786165Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-08T23:22:37.7786450Z               "line": 502
2026-06-08T23:22:37.7786733Z             },
2026-06-08T23:22:37.7787104Z             {
2026-06-08T23:22:37.7787482Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-08T23:22:37.7787775Z               "line": 93
2026-06-08T23:22:37.7788054Z             },
2026-06-08T23:22:37.7788335Z             {
2026-06-08T23:22:37.7788712Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-08T23:22:37.7789017Z               "line": 142
2026-06-08T23:22:37.7789303Z             },
2026-06-08T23:22:37.7789585Z             {
2026-06-08T23:22:37.7789981Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7790281Z               "line": 315
2026-06-08T23:22:37.7790564Z             },
2026-06-08T23:22:37.7790841Z             {
2026-06-08T23:22:37.7791240Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7791541Z               "line": 355
2026-06-08T23:22:37.7791828Z             },
2026-06-08T23:22:37.7792118Z             {
2026-06-08T23:22:37.7792528Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-08T23:22:37.7792828Z               "line": 494
2026-06-08T23:22:37.7793109Z             }
2026-06-08T23:22:37.7793396Z           ]
2026-06-08T23:22:37.7793682Z         }
2026-06-08T23:22:37.7793963Z       }
2026-06-08T23:22:37.7794245Z     },
2026-06-08T23:22:37.7794530Z     {
2026-06-08T23:22:37.7794850Z       "id": "REQ-NODE-IDENTITY",
2026-06-08T23:22:37.7795594Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-08T23:22:37.7795911Z       "requiredStages": [
2026-06-08T23:22:37.7796206Z         "impl",
2026-06-08T23:22:37.7796492Z         "unit"
2026-06-08T23:22:37.7796768Z       ],
2026-06-08T23:22:37.7797127Z       "stages": {
2026-06-08T23:22:37.7797417Z         "doc": {
2026-06-08T23:22:37.7797727Z           "complete": false,
2026-06-08T23:22:37.7798032Z           "evidence": []
2026-06-08T23:22:37.7798321Z         },
2026-06-08T23:22:37.7798720Z         "impl": {
2026-06-08T23:22:37.7799035Z           "complete": true,
2026-06-08T23:22:37.7799325Z           "evidence": [
2026-06-08T23:22:37.7799606Z             {
2026-06-08T23:22:37.7800013Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7800318Z               "line": 60
2026-06-08T23:22:37.7800599Z             },
2026-06-08T23:22:37.7800993Z             {
2026-06-08T23:22:37.7801392Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7801687Z               "line": 68
2026-06-08T23:22:37.7801978Z             },
2026-06-08T23:22:37.7802260Z             {
2026-06-08T23:22:37.7802664Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7802960Z               "line": 86
2026-06-08T23:22:37.7803243Z             },
2026-06-08T23:22:37.7803529Z             {
2026-06-08T23:22:37.7803923Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7804223Z               "line": 120
2026-06-08T23:22:37.7804519Z             },
2026-06-08T23:22:37.7804796Z             {
2026-06-08T23:22:37.7805209Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7805510Z               "line": 127
2026-06-08T23:22:37.7805797Z             },
2026-06-08T23:22:37.7806079Z             {
2026-06-08T23:22:37.7806485Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7806799Z               "line": 143
2026-06-08T23:22:37.7807171Z             },
2026-06-08T23:22:37.7807452Z             {
2026-06-08T23:22:37.7807833Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-08T23:22:37.7808134Z               "line": 16
2026-06-08T23:22:37.7808415Z             }
2026-06-08T23:22:37.7808707Z           ]
2026-06-08T23:22:37.7808996Z         },
2026-06-08T23:22:37.7809280Z         "int": {
2026-06-08T23:22:37.7809600Z           "complete": false,
2026-06-08T23:22:37.7809900Z           "evidence": []
2026-06-08T23:22:37.7810181Z         },
2026-06-08T23:22:37.7810457Z         "unit": {
2026-06-08T23:22:37.7810781Z           "complete": true,
2026-06-08T23:22:37.7811082Z           "evidence": [
2026-06-08T23:22:37.7811358Z             {
2026-06-08T23:22:37.7811756Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7812041Z               "line": 199
2026-06-08T23:22:37.7812323Z             },
2026-06-08T23:22:37.7812600Z             {
2026-06-08T23:22:37.7812995Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7813296Z               "line": 218
2026-06-08T23:22:37.7813577Z             },
2026-06-08T23:22:37.7813868Z             {
2026-06-08T23:22:37.7814258Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7814559Z               "line": 234
2026-06-08T23:22:37.7814841Z             },
2026-06-08T23:22:37.7815121Z             {
2026-06-08T23:22:37.7815517Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-08T23:22:37.7815812Z               "line": 256
2026-06-08T23:22:37.7816099Z             },
2026-06-08T23:22:37.7816390Z             {
2026-06-08T23:22:37.7816770Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-08T23:22:37.7817154Z               "line": 124
2026-06-08T23:22:37.7817440Z             },
2026-06-08T23:22:37.7817717Z             {
2026-06-08T23:22:37.7818102Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-08T23:22:37.7818417Z               "line": 140
2026-06-08T23:22:37.7818704Z             },
2026-06-08T23:22:37.7818989Z             {
2026-06-08T23:22:37.7819375Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-08T23:22:37.7819673Z               "line": 155
2026-06-08T23:22:37.7819959Z             }
2026-06-08T23:22:37.7820246Z           ]
2026-06-08T23:22:37.7820527Z         }
2026-06-08T23:22:37.7820804Z       }
2026-06-08T23:22:37.7821080Z     },
2026-06-08T23:22:37.7821356Z     {
2026-06-08T23:22:37.7821671Z       "id": "REQ-NOTIF-1",
2026-06-08T23:22:37.7822989Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-08T23:22:37.7823313Z       "requiredStages": [
2026-06-08T23:22:37.7823603Z         "impl",
2026-06-08T23:22:37.7823885Z         "unit",
2026-06-08T23:22:37.7824171Z         "int"
2026-06-08T23:22:37.7824443Z       ],
2026-06-08T23:22:37.7824738Z       "stages": {
2026-06-08T23:22:37.7825128Z         "doc": {
2026-06-08T23:22:37.7825434Z           "complete": false,
2026-06-08T23:22:37.7825739Z           "evidence": []
2026-06-08T23:22:37.7826020Z         },
2026-06-08T23:22:37.7826316Z         "impl": {
2026-06-08T23:22:37.7826622Z           "complete": true,
2026-06-08T23:22:37.7826927Z           "evidence": [
2026-06-08T23:22:37.7827298Z             {
2026-06-08T23:22:37.7827699Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.7827996Z               "line": 514
2026-06-08T23:22:37.7828283Z             },
2026-06-08T23:22:37.7828568Z             {
2026-06-08T23:22:37.7828964Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7829259Z               "line": 30
2026-06-08T23:22:37.7829545Z             },
2026-06-08T23:22:37.7829841Z             {
2026-06-08T23:22:37.7830228Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7830520Z               "line": 62
2026-06-08T23:22:37.7830801Z             },
2026-06-08T23:22:37.7831097Z             {
2026-06-08T23:22:37.7831483Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7831778Z               "line": 86
2026-06-08T23:22:37.7832065Z             },
2026-06-08T23:22:37.7832347Z             {
2026-06-08T23:22:37.7832729Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7833030Z               "line": 100
2026-06-08T23:22:37.7833320Z             },
2026-06-08T23:22:37.7833602Z             {
2026-06-08T23:22:37.7833983Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7834279Z               "line": 135
2026-06-08T23:22:37.7834570Z             },
2026-06-08T23:22:37.7834851Z             {
2026-06-08T23:22:37.7835224Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7835532Z               "line": 180
2026-06-08T23:22:37.7835813Z             },
2026-06-08T23:22:37.7836094Z             {
2026-06-08T23:22:37.7836472Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7836781Z               "line": 251
2026-06-08T23:22:37.7837149Z             },
2026-06-08T23:22:37.7837426Z             {
2026-06-08T23:22:37.7837811Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7838105Z               "line": 361
2026-06-08T23:22:37.7838394Z             },
2026-06-08T23:22:37.7838675Z             {
2026-06-08T23:22:37.7839072Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7839377Z               "line": 421
2026-06-08T23:22:37.7839668Z             },
2026-06-08T23:22:37.7839953Z             {
2026-06-08T23:22:37.7840364Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7840667Z               "line": 24
2026-06-08T23:22:37.7840951Z             },
2026-06-08T23:22:37.7841237Z             {
2026-06-08T23:22:37.7841639Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7841939Z               "line": 34
2026-06-08T23:22:37.7842220Z             },
2026-06-08T23:22:37.7842515Z             {
2026-06-08T23:22:37.7842917Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7843210Z               "line": 60
2026-06-08T23:22:37.7843494Z             },
2026-06-08T23:22:37.7843784Z             {
2026-06-08T23:22:37.7844186Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7844487Z               "line": 82
2026-06-08T23:22:37.7844768Z             },
2026-06-08T23:22:37.7845053Z             {
2026-06-08T23:22:37.7845455Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7845750Z               "line": 94
2026-06-08T23:22:37.7846135Z             },
2026-06-08T23:22:37.7846416Z             {
2026-06-08T23:22:37.7846822Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.7847193Z               "line": 43
2026-06-08T23:22:37.7847474Z             },
2026-06-08T23:22:37.7847751Z             {
2026-06-08T23:22:37.7848151Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.7848541Z               "line": 96
2026-06-08T23:22:37.7848811Z             },
2026-06-08T23:22:37.7849097Z             {
2026-06-08T23:22:37.7849483Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.7849779Z               "line": 20
2026-06-08T23:22:37.7850060Z             },
2026-06-08T23:22:37.7850346Z             {
2026-06-08T23:22:37.7850733Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.7851027Z               "line": 30
2026-06-08T23:22:37.7851311Z             },
2026-06-08T23:22:37.7851593Z             {
2026-06-08T23:22:37.7851983Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.7852279Z               "line": 50
2026-06-08T23:22:37.7852570Z             },
2026-06-08T23:22:37.7852857Z             {
2026-06-08T23:22:37.7853232Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7853533Z               "line": 28
2026-06-08T23:22:37.7853808Z             },
2026-06-08T23:22:37.7854102Z             {
2026-06-08T23:22:37.7854474Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7854770Z               "line": 126
2026-06-08T23:22:37.7855056Z             },
2026-06-08T23:22:37.7855333Z             {
2026-06-08T23:22:37.7855705Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7856000Z               "line": 161
2026-06-08T23:22:37.7856292Z             },
2026-06-08T23:22:37.7856570Z             {
2026-06-08T23:22:37.7857029Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7857343Z               "line": 202
2026-06-08T23:22:37.7857630Z             },
2026-06-08T23:22:37.7857916Z             {
2026-06-08T23:22:37.7858293Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7858598Z               "line": 213
2026-06-08T23:22:37.7858880Z             },
2026-06-08T23:22:37.7859168Z             {
2026-06-08T23:22:37.7859548Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7859844Z               "line": 238
2026-06-08T23:22:37.7860129Z             },
2026-06-08T23:22:37.7860415Z             {
2026-06-08T23:22:37.7860778Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7861079Z               "line": 261
2026-06-08T23:22:37.7861364Z             },
2026-06-08T23:22:37.7861653Z             {
2026-06-08T23:22:37.7862042Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.7862338Z               "line": 63
2026-06-08T23:22:37.7862619Z             }
2026-06-08T23:22:37.7862906Z           ]
2026-06-08T23:22:37.7863178Z         },
2026-06-08T23:22:37.7863469Z         "int": {
2026-06-08T23:22:37.7863783Z           "complete": true,
2026-06-08T23:22:37.7864079Z           "evidence": [
2026-06-08T23:22:37.7864359Z             {
2026-06-08T23:22:37.7864753Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.7865058Z               "line": 284
2026-06-08T23:22:37.7865340Z             },
2026-06-08T23:22:37.7865635Z             {
2026-06-08T23:22:37.7866044Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-08T23:22:37.7866345Z               "line": 102
2026-06-08T23:22:37.7866632Z             },
2026-06-08T23:22:37.7866914Z             {
2026-06-08T23:22:37.7867402Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7867702Z               "line": 612
2026-06-08T23:22:37.7867989Z             },
2026-06-08T23:22:37.7868275Z             {
2026-06-08T23:22:37.7868675Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7868976Z               "line": 1005
2026-06-08T23:22:37.7869372Z             }
2026-06-08T23:22:37.7869661Z           ]
2026-06-08T23:22:37.7869945Z         },
2026-06-08T23:22:37.7870236Z         "unit": {
2026-06-08T23:22:37.7870546Z           "complete": true,
2026-06-08T23:22:37.7870842Z           "evidence": [
2026-06-08T23:22:37.7871123Z             {
2026-06-08T23:22:37.7871505Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7871910Z               "line": 514
2026-06-08T23:22:37.7872200Z             },
2026-06-08T23:22:37.7872484Z             {
2026-06-08T23:22:37.7872874Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7873170Z               "line": 563
2026-06-08T23:22:37.7873451Z             },
2026-06-08T23:22:37.7873733Z             {
2026-06-08T23:22:37.7874114Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7874415Z               "line": 666
2026-06-08T23:22:37.7874695Z             },
2026-06-08T23:22:37.7874984Z             {
2026-06-08T23:22:37.7875370Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7875670Z               "line": 698
2026-06-08T23:22:37.7875956Z             },
2026-06-08T23:22:37.7876243Z             {
2026-06-08T23:22:37.7876623Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7876919Z               "line": 766
2026-06-08T23:22:37.7877285Z             },
2026-06-08T23:22:37.7877572Z             {
2026-06-08T23:22:37.7877953Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7878249Z               "line": 824
2026-06-08T23:22:37.7878531Z             },
2026-06-08T23:22:37.7878807Z             {
2026-06-08T23:22:37.7879193Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7879493Z               "line": 1045
2026-06-08T23:22:37.7879770Z             },
2026-06-08T23:22:37.7880057Z             {
2026-06-08T23:22:37.7880458Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7880759Z               "line": 157
2026-06-08T23:22:37.7881054Z             },
2026-06-08T23:22:37.7881341Z             {
2026-06-08T23:22:37.7881746Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7882045Z               "line": 250
2026-06-08T23:22:37.7882332Z             },
2026-06-08T23:22:37.7882614Z             {
2026-06-08T23:22:37.7883020Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-08T23:22:37.7883330Z               "line": 273
2026-06-08T23:22:37.7883616Z             },
2026-06-08T23:22:37.7883902Z             {
2026-06-08T23:22:37.7884307Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.7884612Z               "line": 341
2026-06-08T23:22:37.7884894Z             },
2026-06-08T23:22:37.7885176Z             {
2026-06-08T23:22:37.7885577Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-08T23:22:37.7885878Z               "line": 373
2026-06-08T23:22:37.7886169Z             },
2026-06-08T23:22:37.7886450Z             {
2026-06-08T23:22:37.7886874Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-08T23:22:37.7887256Z               "line": 131
2026-06-08T23:22:37.7887542Z             },
2026-06-08T23:22:37.7887832Z             {
2026-06-08T23:22:37.7888217Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.7888518Z               "line": 72
2026-06-08T23:22:37.7888804Z             },
2026-06-08T23:22:37.7889096Z             {
2026-06-08T23:22:37.7889486Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-08T23:22:37.7889782Z               "line": 97
2026-06-08T23:22:37.7890062Z             },
2026-06-08T23:22:37.7890335Z             {
2026-06-08T23:22:37.7890711Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7891005Z               "line": 379
2026-06-08T23:22:37.7891276Z             },
2026-06-08T23:22:37.7891567Z             {
2026-06-08T23:22:37.7891929Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7892325Z               "line": 417
2026-06-08T23:22:37.7892615Z             },
2026-06-08T23:22:37.7892897Z             {
2026-06-08T23:22:37.7893263Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7893557Z               "line": 433
2026-06-08T23:22:37.7893843Z             },
2026-06-08T23:22:37.7894115Z             {
2026-06-08T23:22:37.7894481Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7894896Z               "line": 472
2026-06-08T23:22:37.7895187Z             },
2026-06-08T23:22:37.7895468Z             {
2026-06-08T23:22:37.7895849Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7896147Z               "line": 489
2026-06-08T23:22:37.7896429Z             },
2026-06-08T23:22:37.7896715Z             {
2026-06-08T23:22:37.7897157Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7897467Z               "line": 517
2026-06-08T23:22:37.7897754Z             },
2026-06-08T23:22:37.7898044Z             {
2026-06-08T23:22:37.7898425Z               "path": "crates/spt-store/src/notif.rs",
2026-06-08T23:22:37.7898721Z               "line": 548
2026-06-08T23:22:37.7899007Z             },
2026-06-08T23:22:37.7899289Z             {
2026-06-08T23:22:37.7899688Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.7899989Z               "line": 455
2026-06-08T23:22:37.7900289Z             }
2026-06-08T23:22:37.7900580Z           ]
2026-06-08T23:22:37.7900858Z         }
2026-06-08T23:22:37.7901140Z       }
2026-06-08T23:22:37.7901423Z     },
2026-06-08T23:22:37.7901707Z     {
2026-06-08T23:22:37.7902012Z       "id": "REQ-NOTIF-2",
2026-06-08T23:22:37.7902866Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-08T23:22:37.7903190Z       "requiredStages": [
2026-06-08T23:22:37.7903471Z         "doc",
2026-06-08T23:22:37.7903767Z         "impl",
2026-06-08T23:22:37.7904052Z         "unit",
2026-06-08T23:22:37.7904341Z         "int"
2026-06-08T23:22:37.7904622Z       ],
2026-06-08T23:22:37.7904917Z       "stages": {
2026-06-08T23:22:37.7905208Z         "doc": {
2026-06-08T23:22:37.7905504Z           "complete": true,
2026-06-08T23:22:37.7905804Z           "evidence": [
2026-06-08T23:22:37.7906086Z             {
2026-06-08T23:22:37.7906404Z               "path": "CONTEXT.md",
2026-06-08T23:22:37.7906698Z               "line": 346
2026-06-08T23:22:37.7907059Z             },
2026-06-08T23:22:37.7907342Z             {
2026-06-08T23:22:37.7907675Z               "path": "docs/MANIFEST.md",
2026-06-08T23:22:37.7907976Z               "line": 62
2026-06-08T23:22:37.7908256Z             }
2026-06-08T23:22:37.7908544Z           ]
2026-06-08T23:22:37.7908825Z         },
2026-06-08T23:22:37.7909116Z         "impl": {
2026-06-08T23:22:37.7909438Z           "complete": true,
2026-06-08T23:22:37.7909734Z           "evidence": [
2026-06-08T23:22:37.7910024Z             {
2026-06-08T23:22:37.7910403Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7910717Z               "line": 280
2026-06-08T23:22:37.7910998Z             },
2026-06-08T23:22:37.7911283Z             {
2026-06-08T23:22:37.7911671Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7911969Z               "line": 294
2026-06-08T23:22:37.7912267Z             },
2026-06-08T23:22:37.7912552Z             {
2026-06-08T23:22:37.7912950Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7913245Z               "line": 319
2026-06-08T23:22:37.7913536Z             },
2026-06-08T23:22:37.7913822Z             {
2026-06-08T23:22:37.7914224Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.7914526Z               "line": 126
2026-06-08T23:22:37.7914810Z             },
2026-06-08T23:22:37.7915096Z             {
2026-06-08T23:22:37.7915492Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.7915788Z               "line": 72
2026-06-08T23:22:37.7916083Z             },
2026-06-08T23:22:37.7916451Z             {
2026-06-08T23:22:37.7916795Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7917174Z               "line": 1353
2026-06-08T23:22:37.7917468Z             },
2026-06-08T23:22:37.7917754Z             {
2026-06-08T23:22:37.7918093Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7918379Z               "line": 1402
2026-06-08T23:22:37.7918765Z             },
2026-06-08T23:22:37.7919052Z             {
2026-06-08T23:22:37.7919400Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7919700Z               "line": 1481
2026-06-08T23:22:37.7919984Z             },
2026-06-08T23:22:37.7920260Z             {
2026-06-08T23:22:37.7920609Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7920904Z               "line": 1520
2026-06-08T23:22:37.7921190Z             }
2026-06-08T23:22:37.7921467Z           ]
2026-06-08T23:22:37.7921763Z         },
2026-06-08T23:22:37.7922048Z         "int": {
2026-06-08T23:22:37.7922358Z           "complete": true,
2026-06-08T23:22:37.7922662Z           "evidence": [
2026-06-08T23:22:37.7922943Z             {
2026-06-08T23:22:37.7923347Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7923648Z               "line": 738
2026-06-08T23:22:37.7923934Z             },
2026-06-08T23:22:37.7924220Z             {
2026-06-08T23:22:37.7924625Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7924929Z               "line": 1158
2026-06-08T23:22:37.7925210Z             }
2026-06-08T23:22:37.7925500Z           ]
2026-06-08T23:22:37.7925781Z         },
2026-06-08T23:22:37.7926072Z         "unit": {
2026-06-08T23:22:37.7926377Z           "complete": true,
2026-06-08T23:22:37.7926677Z           "evidence": [
2026-06-08T23:22:37.7927046Z             {
2026-06-08T23:22:37.7927440Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7927739Z               "line": 894
2026-06-08T23:22:37.7928023Z             },
2026-06-08T23:22:37.7928309Z             {
2026-06-08T23:22:37.7928691Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.7928992Z               "line": 962
2026-06-08T23:22:37.7929273Z             },
2026-06-08T23:22:37.7929549Z             {
2026-06-08T23:22:37.7929888Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7930188Z               "line": 4880
2026-06-08T23:22:37.7930515Z             },
2026-06-08T23:22:37.7930806Z             {
2026-06-08T23:22:37.7931145Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7931445Z               "line": 4935
2026-06-08T23:22:37.7931731Z             }
2026-06-08T23:22:37.7932013Z           ]
2026-06-08T23:22:37.7932294Z         }
2026-06-08T23:22:37.7932576Z       }
2026-06-08T23:22:37.7932863Z     },
2026-06-08T23:22:37.7933147Z     {
2026-06-08T23:22:37.7933465Z       "id": "REQ-PAIR-1",
2026-06-08T23:22:37.7933813Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-08T23:22:37.7934123Z       "requiredStages": [
2026-06-08T23:22:37.7934414Z         "impl",
2026-06-08T23:22:37.7934709Z         "unit",
2026-06-08T23:22:37.7935000Z         "int"
2026-06-08T23:22:37.7935281Z       ],
2026-06-08T23:22:37.7935575Z       "stages": {
2026-06-08T23:22:37.7935859Z         "doc": {
2026-06-08T23:22:37.7936173Z           "complete": false,
2026-06-08T23:22:37.7936474Z           "evidence": []
2026-06-08T23:22:37.7936770Z         },
2026-06-08T23:22:37.7937127Z         "impl": {
2026-06-08T23:22:37.7937432Z           "complete": true,
2026-06-08T23:22:37.7937737Z           "evidence": [
2026-06-08T23:22:37.7938019Z             {
2026-06-08T23:22:37.7938454Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7938750Z               "line": 27
2026-06-08T23:22:37.7939041Z             },
2026-06-08T23:22:37.7939327Z             {
2026-06-08T23:22:37.7939751Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7940052Z               "line": 88
2026-06-08T23:22:37.7940343Z             },
2026-06-08T23:22:37.7940734Z             {
2026-06-08T23:22:37.7941153Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7941453Z               "line": 110
2026-06-08T23:22:37.7941734Z             },
2026-06-08T23:22:37.7942015Z             {
2026-06-08T23:22:37.7942431Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7942826Z               "line": 153
2026-06-08T23:22:37.7943118Z             },
2026-06-08T23:22:37.7943399Z             {
2026-06-08T23:22:37.7943820Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7944130Z               "line": 182
2026-06-08T23:22:37.7944415Z             },
2026-06-08T23:22:37.7944707Z             {
2026-06-08T23:22:37.7945135Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7945441Z               "line": 29
2026-06-08T23:22:37.7945726Z             },
2026-06-08T23:22:37.7946013Z             {
2026-06-08T23:22:37.7946485Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-08T23:22:37.7946786Z               "line": 31
2026-06-08T23:22:37.7947149Z             },
2026-06-08T23:22:37.7947435Z             {
2026-06-08T23:22:37.7947856Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7948161Z               "line": 44
2026-06-08T23:22:37.7948452Z             },
2026-06-08T23:22:37.7948735Z             {
2026-06-08T23:22:37.7949153Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7949454Z               "line": 171
2026-06-08T23:22:37.7949739Z             },
2026-06-08T23:22:37.7950030Z             {
2026-06-08T23:22:37.7950455Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7950751Z               "line": 376
2026-06-08T23:22:37.7951038Z             }
2026-06-08T23:22:37.7951319Z           ]
2026-06-08T23:22:37.7951602Z         },
2026-06-08T23:22:37.7951889Z         "int": {
2026-06-08T23:22:37.7952208Z           "complete": true,
2026-06-08T23:22:37.7952518Z           "evidence": [
2026-06-08T23:22:37.7952795Z             {
2026-06-08T23:22:37.7953195Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7953482Z               "line": 573
2026-06-08T23:22:37.7953767Z             },
2026-06-08T23:22:37.7954048Z             {
2026-06-08T23:22:37.7954460Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.7954760Z               "line": 790
2026-06-08T23:22:37.7955042Z             }
2026-06-08T23:22:37.7955328Z           ]
2026-06-08T23:22:37.7955605Z         },
2026-06-08T23:22:37.7955896Z         "unit": {
2026-06-08T23:22:37.7956202Z           "complete": true,
2026-06-08T23:22:37.7956507Z           "evidence": [
2026-06-08T23:22:37.7956791Z             {
2026-06-08T23:22:37.7957299Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7957604Z               "line": 236
2026-06-08T23:22:37.7957891Z             },
2026-06-08T23:22:37.7958186Z             {
2026-06-08T23:22:37.7958615Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-08T23:22:37.7958920Z               "line": 349
2026-06-08T23:22:37.7959210Z             },
2026-06-08T23:22:37.7959494Z             {
2026-06-08T23:22:37.7959913Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7960213Z               "line": 194
2026-06-08T23:22:37.7960504Z             },
2026-06-08T23:22:37.7960786Z             {
2026-06-08T23:22:37.7961215Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7961520Z               "line": 216
2026-06-08T23:22:37.7961801Z             },
2026-06-08T23:22:37.7962082Z             {
2026-06-08T23:22:37.7962506Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7962816Z               "line": 230
2026-06-08T23:22:37.7963102Z             },
2026-06-08T23:22:37.7963388Z             {
2026-06-08T23:22:37.7963904Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7966757Z               "line": 242
2026-06-08T23:22:37.7967166Z             },
2026-06-08T23:22:37.7967460Z             {
2026-06-08T23:22:37.7967892Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7968179Z               "line": 256
2026-06-08T23:22:37.7968460Z             },
2026-06-08T23:22:37.7968884Z             {
2026-06-08T23:22:37.7969314Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7969677Z               "line": 270
2026-06-08T23:22:37.7969961Z             },
2026-06-08T23:22:37.7970245Z             {
2026-06-08T23:22:37.7970675Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7970974Z               "line": 277
2026-06-08T23:22:37.7971261Z             },
2026-06-08T23:22:37.7971538Z             {
2026-06-08T23:22:37.7971965Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-08T23:22:37.7972262Z               "line": 295
2026-06-08T23:22:37.7972563Z             },
2026-06-08T23:22:37.7972852Z             {
2026-06-08T23:22:37.7973267Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7973568Z               "line": 967
2026-06-08T23:22:37.7973848Z             },
2026-06-08T23:22:37.7974140Z             {
2026-06-08T23:22:37.7974564Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7974868Z               "line": 1050
2026-06-08T23:22:37.7975159Z             },
2026-06-08T23:22:37.7975435Z             {
2026-06-08T23:22:37.7975852Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7976162Z               "line": 1120
2026-06-08T23:22:37.7976444Z             },
2026-06-08T23:22:37.7976725Z             {
2026-06-08T23:22:37.7977241Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7977551Z               "line": 1181
2026-06-08T23:22:37.7977830Z             },
2026-06-08T23:22:37.7978123Z             {
2026-06-08T23:22:37.7978543Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7978844Z               "line": 1237
2026-06-08T23:22:37.7979139Z             },
2026-06-08T23:22:37.7979420Z             {
2026-06-08T23:22:37.7979832Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.7980132Z               "line": 1456
2026-06-08T23:22:37.7980406Z             }
2026-06-08T23:22:37.7980680Z           ]
2026-06-08T23:22:37.7980953Z         }
2026-06-08T23:22:37.7981230Z       }
2026-06-08T23:22:37.7981502Z     },
2026-06-08T23:22:37.7981778Z     {
2026-06-08T23:22:37.7982088Z       "id": "REQ-PAIR-2",
2026-06-08T23:22:37.7982544Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-08T23:22:37.7982859Z       "requiredStages": [],
2026-06-08T23:22:37.7983151Z       "stages": {
2026-06-08T23:22:37.7983432Z         "doc": {
2026-06-08T23:22:37.7983742Z           "complete": false,
2026-06-08T23:22:37.7984061Z           "evidence": []
2026-06-08T23:22:37.7984343Z         },
2026-06-08T23:22:37.7984633Z         "impl": {
2026-06-08T23:22:37.7984944Z           "complete": false,
2026-06-08T23:22:37.7985244Z           "evidence": []
2026-06-08T23:22:37.7985530Z         },
2026-06-08T23:22:37.7985814Z         "int": {
2026-06-08T23:22:37.7986136Z           "complete": false,
2026-06-08T23:22:37.7986446Z           "evidence": []
2026-06-08T23:22:37.7986732Z         },
2026-06-08T23:22:37.7987099Z         "unit": {
2026-06-08T23:22:37.7987424Z           "complete": false,
2026-06-08T23:22:37.7987724Z           "evidence": []
2026-06-08T23:22:37.7988005Z         }
2026-06-08T23:22:37.7988286Z       }
2026-06-08T23:22:37.7988566Z     },
2026-06-08T23:22:37.7988842Z     {
2026-06-08T23:22:37.7989152Z       "id": "REQ-PAIR-3",
2026-06-08T23:22:37.7989628Z       "title": "Fetch current pairing code from any paired node",
2026-06-08T23:22:37.7989938Z       "requiredStages": [
2026-06-08T23:22:37.7990219Z         "impl",
2026-06-08T23:22:37.7990629Z         "unit"
2026-06-08T23:22:37.7990919Z       ],
2026-06-08T23:22:37.7991208Z       "stages": {
2026-06-08T23:22:37.7991489Z         "doc": {
2026-06-08T23:22:37.7991804Z           "complete": false,
2026-06-08T23:22:37.7992100Z           "evidence": []
2026-06-08T23:22:37.7992381Z         },
2026-06-08T23:22:37.7992668Z         "impl": {
2026-06-08T23:22:37.7993067Z           "complete": true,
2026-06-08T23:22:37.7993373Z           "evidence": [
2026-06-08T23:22:37.7993645Z             {
2026-06-08T23:22:37.7993992Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7994298Z               "line": 1904
2026-06-08T23:22:37.7994574Z             },
2026-06-08T23:22:37.7994850Z             {
2026-06-08T23:22:37.7995199Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7995499Z               "line": 1973
2026-06-08T23:22:37.7995765Z             },
2026-06-08T23:22:37.7996032Z             {
2026-06-08T23:22:37.7996369Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.7996658Z               "line": 2209
2026-06-08T23:22:37.7996931Z             }
2026-06-08T23:22:37.7997283Z           ]
2026-06-08T23:22:37.7997564Z         },
2026-06-08T23:22:37.7997869Z         "int": {
2026-06-08T23:22:37.7998202Z           "complete": false,
2026-06-08T23:22:37.7998494Z           "evidence": []
2026-06-08T23:22:37.7998777Z         },
2026-06-08T23:22:37.7999070Z         "unit": {
2026-06-08T23:22:37.7999378Z           "complete": true,
2026-06-08T23:22:37.7999673Z           "evidence": [
2026-06-08T23:22:37.7999954Z             {
2026-06-08T23:22:37.8000308Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8000599Z               "line": 6248
2026-06-08T23:22:37.8000889Z             },
2026-06-08T23:22:37.8001175Z             {
2026-06-08T23:22:37.8001517Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8001815Z               "line": 6449
2026-06-08T23:22:37.8002097Z             },
2026-06-08T23:22:37.8002378Z             {
2026-06-08T23:22:37.8002721Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8003017Z               "line": 6877
2026-06-08T23:22:37.8003298Z             },
2026-06-08T23:22:37.8003580Z             {
2026-06-08T23:22:37.8003924Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8004219Z               "line": 6896
2026-06-08T23:22:37.8004509Z             },
2026-06-08T23:22:37.8004810Z             {
2026-06-08T23:22:37.8005201Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8005510Z               "line": 6920
2026-06-08T23:22:37.8005792Z             },
2026-06-08T23:22:37.8006064Z             {
2026-06-08T23:22:37.8006398Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8006689Z               "line": 6939
2026-06-08T23:22:37.8007054Z             },
2026-06-08T23:22:37.8007347Z             {
2026-06-08T23:22:37.8007706Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8008011Z               "line": 6952
2026-06-08T23:22:37.8008302Z             },
2026-06-08T23:22:37.8008582Z             {
2026-06-08T23:22:37.8008936Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8009236Z               "line": 6961
2026-06-08T23:22:37.8009534Z             }
2026-06-08T23:22:37.8009828Z           ]
2026-06-08T23:22:37.8010109Z         }
2026-06-08T23:22:37.8010391Z       }
2026-06-08T23:22:37.8010682Z     },
2026-06-08T23:22:37.8010963Z     {
2026-06-08T23:22:37.8011269Z       "id": "REQ-PAIR-4",
2026-06-08T23:22:37.8011644Z       "title": "Subnet naming on first pairing",
2026-06-08T23:22:37.8011959Z       "requiredStages": [
2026-06-08T23:22:37.8012244Z         "impl",
2026-06-08T23:22:37.8012529Z         "unit"
2026-06-08T23:22:37.8012810Z       ],
2026-06-08T23:22:37.8013105Z       "stages": {
2026-06-08T23:22:37.8013391Z         "doc": {
2026-06-08T23:22:37.8013706Z           "complete": false,
2026-06-08T23:22:37.8014011Z           "evidence": []
2026-06-08T23:22:37.8014288Z         },
2026-06-08T23:22:37.8014578Z         "impl": {
2026-06-08T23:22:37.8014987Z           "complete": true,
2026-06-08T23:22:37.8015292Z           "evidence": [
2026-06-08T23:22:37.8015574Z             {
2026-06-08T23:22:37.8015966Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-08T23:22:37.8016261Z               "line": 154
2026-06-08T23:22:37.8016552Z             }
2026-06-08T23:22:37.8017128Z           ]
2026-06-08T23:22:37.8017409Z         },
2026-06-08T23:22:37.8017699Z         "int": {
2026-06-08T23:22:37.8018003Z           "complete": false,
2026-06-08T23:22:37.8018304Z           "evidence": []
2026-06-08T23:22:37.8018585Z         },
2026-06-08T23:22:37.8018872Z         "unit": {
2026-06-08T23:22:37.8019176Z           "complete": true,
2026-06-08T23:22:37.8019472Z           "evidence": [
2026-06-08T23:22:37.8019762Z             {
2026-06-08T23:22:37.8020185Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.8020489Z               "line": 1293
2026-06-08T23:22:37.8020775Z             }
2026-06-08T23:22:37.8021061Z           ]
2026-06-08T23:22:37.8021346Z         }
2026-06-08T23:22:37.8021628Z       }
2026-06-08T23:22:37.8021909Z     },
2026-06-08T23:22:37.8022191Z     {
2026-06-08T23:22:37.8022496Z       "id": "REQ-PAIR-5",
2026-06-08T23:22:37.8023481Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-08T23:22:37.8023799Z       "requiredStages": [
2026-06-08T23:22:37.8024090Z         "impl",
2026-06-08T23:22:37.8024377Z         "unit",
2026-06-08T23:22:37.8024663Z         "int"
2026-06-08T23:22:37.8024945Z       ],
2026-06-08T23:22:37.8025235Z       "stages": {
2026-06-08T23:22:37.8025524Z         "doc": {
2026-06-08T23:22:37.8025834Z           "complete": false,
2026-06-08T23:22:37.8026134Z           "evidence": []
2026-06-08T23:22:37.8026415Z         },
2026-06-08T23:22:37.8026702Z         "impl": {
2026-06-08T23:22:37.8027069Z           "complete": true,
2026-06-08T23:22:37.8027369Z           "evidence": [
2026-06-08T23:22:37.8027674Z             {
2026-06-08T23:22:37.8028097Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8028395Z               "line": 44
2026-06-08T23:22:37.8028682Z             },
2026-06-08T23:22:37.8028968Z             {
2026-06-08T23:22:37.8029388Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8029683Z               "line": 96
2026-06-08T23:22:37.8029955Z             },
2026-06-08T23:22:37.8030227Z             {
2026-06-08T23:22:37.8030645Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8030938Z               "line": 107
2026-06-08T23:22:37.8031215Z             },
2026-06-08T23:22:37.8031492Z             {
2026-06-08T23:22:37.8031897Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8032198Z               "line": 124
2026-06-08T23:22:37.8032489Z             },
2026-06-08T23:22:37.8032770Z             {
2026-06-08T23:22:37.8033198Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8033496Z               "line": 155
2026-06-08T23:22:37.8033773Z             },
2026-06-08T23:22:37.8034055Z             {
2026-06-08T23:22:37.8034463Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8034759Z               "line": 195
2026-06-08T23:22:37.8035046Z             },
2026-06-08T23:22:37.8035331Z             {
2026-06-08T23:22:37.8035751Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8036051Z               "line": 251
2026-06-08T23:22:37.8036341Z             },
2026-06-08T23:22:37.8036628Z             {
2026-06-08T23:22:37.8037153Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8037468Z               "line": 33
2026-06-08T23:22:37.8037754Z             },
2026-06-08T23:22:37.8038045Z             {
2026-06-08T23:22:37.8038511Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8038908Z               "line": 45
2026-06-08T23:22:37.8039204Z             },
2026-06-08T23:22:37.8039486Z             {
2026-06-08T23:22:37.8039953Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8040248Z               "line": 59
2026-06-08T23:22:37.8040534Z             },
2026-06-08T23:22:37.8040825Z             {
2026-06-08T23:22:37.8041339Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.8041638Z               "line": 376
2026-06-08T23:22:37.8041924Z             }
2026-06-08T23:22:37.8042214Z           ]
2026-06-08T23:22:37.8042495Z         },
2026-06-08T23:22:37.8042772Z         "int": {
2026-06-08T23:22:37.8043092Z           "complete": true,
2026-06-08T23:22:37.8043378Z           "evidence": [
2026-06-08T23:22:37.8043658Z             {
2026-06-08T23:22:37.8044056Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8044357Z               "line": 790
2026-06-08T23:22:37.8044638Z             },
2026-06-08T23:22:37.8044929Z             {
2026-06-08T23:22:37.8045353Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8045654Z               "line": 342
2026-06-08T23:22:37.8045940Z             }
2026-06-08T23:22:37.8046216Z           ]
2026-06-08T23:22:37.8046498Z         },
2026-06-08T23:22:37.8046784Z         "unit": {
2026-06-08T23:22:37.8047188Z           "complete": true,
2026-06-08T23:22:37.8047489Z           "evidence": [
2026-06-08T23:22:37.8047770Z             {
2026-06-08T23:22:37.8048194Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8048495Z               "line": 293
2026-06-08T23:22:37.8048785Z             },
2026-06-08T23:22:37.8049067Z             {
2026-06-08T23:22:37.8049478Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8049783Z               "line": 304
2026-06-08T23:22:37.8050070Z             },
2026-06-08T23:22:37.8050355Z             {
2026-06-08T23:22:37.8050780Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8051080Z               "line": 406
2026-06-08T23:22:37.8051372Z             },
2026-06-08T23:22:37.8051647Z             {
2026-06-08T23:22:37.8052111Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8052402Z               "line": 72
2026-06-08T23:22:37.8052693Z             },
2026-06-08T23:22:37.8052979Z             {
2026-06-08T23:22:37.8053438Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8053734Z               "line": 82
2026-06-08T23:22:37.8054014Z             },
2026-06-08T23:22:37.8054299Z             {
2026-06-08T23:22:37.8054760Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8055061Z               "line": 100
2026-06-08T23:22:37.8055341Z             },
2026-06-08T23:22:37.8055627Z             {
2026-06-08T23:22:37.8056095Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8056400Z               "line": 110
2026-06-08T23:22:37.8056682Z             },
2026-06-08T23:22:37.8057049Z             {
2026-06-08T23:22:37.8057518Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-08T23:22:37.8057815Z               "line": 125
2026-06-08T23:22:37.8058101Z             },
2026-06-08T23:22:37.8058392Z             {
2026-06-08T23:22:37.8058812Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.8059112Z               "line": 1043
2026-06-08T23:22:37.8059398Z             },
2026-06-08T23:22:37.8059683Z             {
2026-06-08T23:22:37.8060105Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.8060410Z               "line": 1109
2026-06-08T23:22:37.8060696Z             },
2026-06-08T23:22:37.8060978Z             {
2026-06-08T23:22:37.8061397Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.8061708Z               "line": 1356
2026-06-08T23:22:37.8062008Z             }
2026-06-08T23:22:37.8062417Z           ]
2026-06-08T23:22:37.8062701Z         }
2026-06-08T23:22:37.8063006Z       }
2026-06-08T23:22:37.8063282Z     },
2026-06-08T23:22:37.8063568Z     {
2026-06-08T23:22:37.8063878Z       "id": "REQ-PAIR-6",
2026-06-08T23:22:37.8064718Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-08T23:22:37.8065115Z       "requiredStages": [
2026-06-08T23:22:37.8065397Z         "impl",
2026-06-08T23:22:37.8065692Z         "unit"
2026-06-08T23:22:37.8065969Z       ],
2026-06-08T23:22:37.8066255Z       "stages": {
2026-06-08T23:22:37.8066536Z         "doc": {
2026-06-08T23:22:37.8066837Z           "complete": false,
2026-06-08T23:22:37.8067204Z           "evidence": []
2026-06-08T23:22:37.8067486Z         },
2026-06-08T23:22:37.8067793Z         "impl": {
2026-06-08T23:22:37.8068088Z           "complete": true,
2026-06-08T23:22:37.8068384Z           "evidence": [
2026-06-08T23:22:37.8068651Z             {
2026-06-08T23:22:37.8068990Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8069286Z               "line": 1973
2026-06-08T23:22:37.8069562Z             },
2026-06-08T23:22:37.8069844Z             {
2026-06-08T23:22:37.8070187Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8070481Z               "line": 2209
2026-06-08T23:22:37.8070762Z             },
2026-06-08T23:22:37.8071043Z             {
2026-06-08T23:22:37.8071410Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.8071701Z               "line": 18
2026-06-08T23:22:37.8072025Z             },
2026-06-08T23:22:37.8072302Z             {
2026-06-08T23:22:37.8072660Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.8072977Z               "line": 49
2026-06-08T23:22:37.8073275Z             },
2026-06-08T23:22:37.8073556Z             {
2026-06-08T23:22:37.8073915Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.8074210Z               "line": 163
2026-06-08T23:22:37.8074496Z             }
2026-06-08T23:22:37.8074777Z           ]
2026-06-08T23:22:37.8075054Z         },
2026-06-08T23:22:37.8075339Z         "int": {
2026-06-08T23:22:37.8075647Z           "complete": false,
2026-06-08T23:22:37.8075943Z           "evidence": []
2026-06-08T23:22:37.8076224Z         },
2026-06-08T23:22:37.8076501Z         "unit": {
2026-06-08T23:22:37.8076811Z           "complete": true,
2026-06-08T23:22:37.8077183Z           "evidence": [
2026-06-08T23:22:37.8077469Z             {
2026-06-08T23:22:37.8077817Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8078113Z               "line": 6974
2026-06-08T23:22:37.8078401Z             },
2026-06-08T23:22:37.8078678Z             {
2026-06-08T23:22:37.8079026Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8079317Z               "line": 6991
2026-06-08T23:22:37.8079598Z             },
2026-06-08T23:22:37.8079875Z             {
2026-06-08T23:22:37.8080247Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.8080557Z               "line": 228
2026-06-08T23:22:37.8080828Z             },
2026-06-08T23:22:37.8081102Z             {
2026-06-08T23:22:37.8081464Z               "path": "crates/spt/src/elevation.rs",
2026-06-08T23:22:37.8081760Z               "line": 237
2026-06-08T23:22:37.8082041Z             }
2026-06-08T23:22:37.8082313Z           ]
2026-06-08T23:22:37.8082604Z         }
2026-06-08T23:22:37.8082882Z       }
2026-06-08T23:22:37.8083148Z     },
2026-06-08T23:22:37.8083422Z     {
2026-06-08T23:22:37.8083716Z       "id": "REQ-PAIR-7",
2026-06-08T23:22:37.8084227Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-08T23:22:37.8084523Z       "requiredStages": [],
2026-06-08T23:22:37.8084814Z       "stages": {
2026-06-08T23:22:37.8085095Z         "doc": {
2026-06-08T23:22:37.8085404Z           "complete": false,
2026-06-08T23:22:37.8085705Z           "evidence": []
2026-06-08T23:22:37.8085989Z         },
2026-06-08T23:22:37.8086277Z         "impl": {
2026-06-08T23:22:37.8086707Z           "complete": false,
2026-06-08T23:22:37.8087094Z           "evidence": []
2026-06-08T23:22:37.8087385Z         },
2026-06-08T23:22:37.8087667Z         "int": {
2026-06-08T23:22:37.8087977Z           "complete": false,
2026-06-08T23:22:37.8088276Z           "evidence": []
2026-06-08T23:22:37.8088567Z         },
2026-06-08T23:22:37.8088852Z         "unit": {
2026-06-08T23:22:37.8089272Z           "complete": false,
2026-06-08T23:22:37.8089611Z           "evidence": []
2026-06-08T23:22:37.8089892Z         }
2026-06-08T23:22:37.8090168Z       }
2026-06-08T23:22:37.8090459Z     },
2026-06-08T23:22:37.8090726Z     {
2026-06-08T23:22:37.8091044Z       "id": "REQ-PAIR-8",
2026-06-08T23:22:37.8094910Z       "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-08T23:22:37.8095230Z       "requiredStages": [
2026-06-08T23:22:37.8095521Z         "impl",
2026-06-08T23:22:37.8095807Z         "unit"
2026-06-08T23:22:37.8096084Z       ],
2026-06-08T23:22:37.8096375Z       "stages": {
2026-06-08T23:22:37.8096697Z         "doc": {
2026-06-08T23:22:37.8097096Z           "complete": false,
2026-06-08T23:22:37.8097448Z           "evidence": []
2026-06-08T23:22:37.8097730Z         },
2026-06-08T23:22:37.8098031Z         "impl": {
2026-06-08T23:22:37.8098331Z           "complete": true,
2026-06-08T23:22:37.8098632Z           "evidence": [
2026-06-08T23:22:37.8098913Z             {
2026-06-08T23:22:37.8099322Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8099622Z               "line": 577
2026-06-08T23:22:37.8099913Z             },
2026-06-08T23:22:37.8100195Z             {
2026-06-08T23:22:37.8100643Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8100937Z               "line": 22
2026-06-08T23:22:37.8101220Z             },
2026-06-08T23:22:37.8101507Z             {
2026-06-08T23:22:37.8101919Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8102222Z               "line": 76
2026-06-08T23:22:37.8102514Z             },
2026-06-08T23:22:37.8102795Z             {
2026-06-08T23:22:37.8103214Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8103510Z               "line": 127
2026-06-08T23:22:37.8103795Z             }
2026-06-08T23:22:37.8104073Z           ]
2026-06-08T23:22:37.8104360Z         },
2026-06-08T23:22:37.8104653Z         "int": {
2026-06-08T23:22:37.8104960Z           "complete": false,
2026-06-08T23:22:37.8105261Z           "evidence": []
2026-06-08T23:22:37.8105537Z         },
2026-06-08T23:22:37.8105828Z         "unit": {
2026-06-08T23:22:37.8106123Z           "complete": true,
2026-06-08T23:22:37.8106424Z           "evidence": [
2026-06-08T23:22:37.8106700Z             {
2026-06-08T23:22:37.8107191Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8107498Z               "line": 183
2026-06-08T23:22:37.8107779Z             },
2026-06-08T23:22:37.8108056Z             {
2026-06-08T23:22:37.8108457Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8108763Z               "line": 195
2026-06-08T23:22:37.8109048Z             },
2026-06-08T23:22:37.8109320Z             {
2026-06-08T23:22:37.8109726Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8110010Z               "line": 211
2026-06-08T23:22:37.8110291Z             },
2026-06-08T23:22:37.8110559Z             {
2026-06-08T23:22:37.8110968Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-08T23:22:37.8111255Z               "line": 227
2026-06-08T23:22:37.8111527Z             }
2026-06-08T23:22:37.8111813Z           ]
2026-06-08T23:22:37.8112184Z         }
2026-06-08T23:22:37.8112466Z       }
2026-06-08T23:22:37.8112741Z     },
2026-06-08T23:22:37.8113026Z     {
2026-06-08T23:22:37.8113331Z       "id": "REQ-PRES-1",
2026-06-08T23:22:37.8117410Z       "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-08T23:22:37.8117855Z       "requiredStages": [
2026-06-08T23:22:37.8118160Z         "impl",
2026-06-08T23:22:37.8118459Z         "unit",
2026-06-08T23:22:37.8118817Z         "int"
2026-06-08T23:22:37.8119146Z       ],
2026-06-08T23:22:37.8119456Z       "stages": {
2026-06-08T23:22:37.8119747Z         "doc": {
2026-06-08T23:22:37.8120161Z           "complete": true,
2026-06-08T23:22:37.8120490Z           "evidence": [
2026-06-08T23:22:37.8120780Z             {
2026-06-08T23:22:37.8121143Z               "path": "docs/DEFERRED.md",
2026-06-08T23:22:37.8121533Z               "line": 11
2026-06-08T23:22:37.8121834Z             }
2026-06-08T23:22:37.8122120Z           ]
2026-06-08T23:22:37.8122401Z         },
2026-06-08T23:22:37.8122716Z         "impl": {
2026-06-08T23:22:37.8123021Z           "complete": true,
2026-06-08T23:22:37.8123319Z           "evidence": [
2026-06-08T23:22:37.8123610Z             {
2026-06-08T23:22:37.8124038Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.8124344Z               "line": 515
2026-06-08T23:22:37.8124639Z             },
2026-06-08T23:22:37.8124988Z             {
2026-06-08T23:22:37.8125398Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.8125706Z               "line": 567
2026-06-08T23:22:37.8125985Z             },
2026-06-08T23:22:37.8126276Z             {
2026-06-08T23:22:37.8126711Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.8127097Z               "line": 181
2026-06-08T23:22:37.8127393Z             },
2026-06-08T23:22:37.8127675Z             {
2026-06-08T23:22:37.8128075Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.8128378Z               "line": 207
2026-06-08T23:22:37.8128720Z             },
2026-06-08T23:22:37.8129015Z             {
2026-06-08T23:22:37.8129421Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8129730Z               "line": 28
2026-06-08T23:22:37.8130021Z             },
2026-06-08T23:22:37.8130308Z             {
2026-06-08T23:22:37.8130711Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8131021Z               "line": 105
2026-06-08T23:22:37.8131317Z             },
2026-06-08T23:22:37.8131598Z             {
2026-06-08T23:22:37.8132003Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8132304Z               "line": 161
2026-06-08T23:22:37.8132590Z             },
2026-06-08T23:22:37.8132933Z             {
2026-06-08T23:22:37.8133353Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8133666Z               "line": 180
2026-06-08T23:22:37.8133950Z             },
2026-06-08T23:22:37.8134246Z             {
2026-06-08T23:22:37.8134680Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8134980Z               "line": 399
2026-06-08T23:22:37.8135262Z             },
2026-06-08T23:22:37.8135552Z             {
2026-06-08T23:22:37.8135954Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8136242Z               "line": 289
2026-06-08T23:22:37.8136531Z             },
2026-06-08T23:22:37.8136813Z             {
2026-06-08T23:22:37.8137304Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8137624Z               "line": 336
2026-06-08T23:22:37.8137915Z             },
2026-06-08T23:22:37.8138301Z             {
2026-06-08T23:22:37.8138715Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8139017Z               "line": 362
2026-06-08T23:22:37.8139300Z             },
2026-06-08T23:22:37.8139585Z             {
2026-06-08T23:22:37.8139986Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8140385Z               "line": 100
2026-06-08T23:22:37.8140672Z             }
2026-06-08T23:22:37.8140952Z           ]
2026-06-08T23:22:37.8141244Z         },
2026-06-08T23:22:37.8141526Z         "int": {
2026-06-08T23:22:37.8141844Z           "complete": true,
2026-06-08T23:22:37.8142149Z           "evidence": [
2026-06-08T23:22:37.8142431Z             {
2026-06-08T23:22:37.8142850Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8143150Z               "line": 556
2026-06-08T23:22:37.8143446Z             },
2026-06-08T23:22:37.8143728Z             {
2026-06-08T23:22:37.8144146Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8144449Z               "line": 675
2026-06-08T23:22:37.8144735Z             },
2026-06-08T23:22:37.8145021Z             {
2026-06-08T23:22:37.8145426Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8145732Z               "line": 1068
2026-06-08T23:22:37.8146017Z             }
2026-06-08T23:22:37.8146309Z           ]
2026-06-08T23:22:37.8146591Z         },
2026-06-08T23:22:37.8146879Z         "unit": {
2026-06-08T23:22:37.8147297Z           "complete": true,
2026-06-08T23:22:37.8147597Z           "evidence": [
2026-06-08T23:22:37.8147888Z             {
2026-06-08T23:22:37.8148269Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.8148579Z               "line": 601
2026-06-08T23:22:37.8148861Z             },
2026-06-08T23:22:37.8149143Z             {
2026-06-08T23:22:37.8149554Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8149855Z               "line": 237
2026-06-08T23:22:37.8150178Z             },
2026-06-08T23:22:37.8150450Z             {
2026-06-08T23:22:37.8150870Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8151184Z               "line": 268
2026-06-08T23:22:37.8151475Z             },
2026-06-08T23:22:37.8151757Z             {
2026-06-08T23:22:37.8152161Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8152508Z               "line": 304
2026-06-08T23:22:37.8152809Z             },
2026-06-08T23:22:37.8153101Z             {
2026-06-08T23:22:37.8153514Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-08T23:22:37.8153810Z               "line": 335
2026-06-08T23:22:37.8154097Z             },
2026-06-08T23:22:37.8154382Z             {
2026-06-08T23:22:37.8154810Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8155118Z               "line": 1135
2026-06-08T23:22:37.8155404Z             },
2026-06-08T23:22:37.8155695Z             {
2026-06-08T23:22:37.8156096Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8156396Z               "line": 1112
2026-06-08T23:22:37.8156672Z             }
2026-06-08T23:22:37.8157026Z           ]
2026-06-08T23:22:37.8157316Z         }
2026-06-08T23:22:37.8157599Z       }
2026-06-08T23:22:37.8157886Z     },
2026-06-08T23:22:37.8158215Z     {
2026-06-08T23:22:37.8158530Z       "id": "REQ-REACH-1",
2026-06-08T23:22:37.8159031Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-08T23:22:37.8159345Z       "requiredStages": [
2026-06-08T23:22:37.8159636Z         "impl",
2026-06-08T23:22:37.8159929Z         "unit",
2026-06-08T23:22:37.8160223Z         "int"
2026-06-08T23:22:37.8160495Z       ],
2026-06-08T23:22:37.8160786Z       "stages": {
2026-06-08T23:22:37.8161063Z         "doc": {
2026-06-08T23:22:37.8161377Z           "complete": false,
2026-06-08T23:22:37.8161673Z           "evidence": []
2026-06-08T23:22:37.8161955Z         },
2026-06-08T23:22:37.8162251Z         "impl": {
2026-06-08T23:22:37.8162664Z           "complete": true,
2026-06-08T23:22:37.8162979Z           "evidence": [
2026-06-08T23:22:37.8163256Z             {
2026-06-08T23:22:37.8163656Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-08T23:22:37.8163961Z               "line": 140
2026-06-08T23:22:37.8164252Z             },
2026-06-08T23:22:37.8164533Z             {
2026-06-08T23:22:37.8165024Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8165332Z               "line": 76
2026-06-08T23:22:37.8165621Z             },
2026-06-08T23:22:37.8165908Z             {
2026-06-08T23:22:37.8166279Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8166580Z               "line": 222
2026-06-08T23:22:37.8166871Z             },
2026-06-08T23:22:37.8167256Z             {
2026-06-08T23:22:37.8167634Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8167932Z               "line": 422
2026-06-08T23:22:37.8168221Z             },
2026-06-08T23:22:37.8168512Z             {
2026-06-08T23:22:37.8168889Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8169194Z               "line": 529
2026-06-08T23:22:37.8169475Z             },
2026-06-08T23:22:37.8169767Z             {
2026-06-08T23:22:37.8170143Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-08T23:22:37.8170443Z               "line": 39
2026-06-08T23:22:37.8170745Z             },
2026-06-08T23:22:37.8171022Z             {
2026-06-08T23:22:37.8171403Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.8171698Z               "line": 229
2026-06-08T23:22:37.8171990Z             },
2026-06-08T23:22:37.8172281Z             {
2026-06-08T23:22:37.8172648Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-08T23:22:37.8172952Z               "line": 88
2026-06-08T23:22:37.8173238Z             },
2026-06-08T23:22:37.8173525Z             {
2026-06-08T23:22:37.8173896Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-08T23:22:37.8174197Z               "line": 98
2026-06-08T23:22:37.8174483Z             },
2026-06-08T23:22:37.8174764Z             {
2026-06-08T23:22:37.8175159Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8175456Z               "line": 210
2026-06-08T23:22:37.8175737Z             }
2026-06-08T23:22:37.8176017Z           ]
2026-06-08T23:22:37.8176306Z         },
2026-06-08T23:22:37.8176592Z         "int": {
2026-06-08T23:22:37.8176901Z           "complete": true,
2026-06-08T23:22:37.8177312Z           "evidence": [
2026-06-08T23:22:37.8181405Z             {
2026-06-08T23:22:37.8181859Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8182159Z               "line": 414
2026-06-08T23:22:37.8182446Z             },
2026-06-08T23:22:37.8182727Z             {
2026-06-08T23:22:37.8183136Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8183433Z               "line": 513
2026-06-08T23:22:37.8183715Z             },
2026-06-08T23:22:37.8184003Z             {
2026-06-08T23:22:37.8184414Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8184714Z               "line": 901
2026-06-08T23:22:37.8184996Z             },
2026-06-08T23:22:37.8185258Z             {
2026-06-08T23:22:37.8185654Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8185950Z               "line": 1196
2026-06-08T23:22:37.8186222Z             }
2026-06-08T23:22:37.8186500Z           ]
2026-06-08T23:22:37.8186770Z         },
2026-06-08T23:22:37.8187142Z         "unit": {
2026-06-08T23:22:37.8187452Z           "complete": true,
2026-06-08T23:22:37.8187743Z           "evidence": [
2026-06-08T23:22:37.8188020Z             {
2026-06-08T23:22:37.8188391Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8188692Z               "line": 639
2026-06-08T23:22:37.8188973Z             },
2026-06-08T23:22:37.8189261Z             {
2026-06-08T23:22:37.8189767Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-08T23:22:37.8190067Z               "line": 660
2026-06-08T23:22:37.8190338Z             },
2026-06-08T23:22:37.8190629Z             {
2026-06-08T23:22:37.8191026Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-08T23:22:37.8191365Z               "line": 391
2026-06-08T23:22:37.8191653Z             },
2026-06-08T23:22:37.8192204Z             {
2026-06-08T23:22:37.8192629Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-08T23:22:37.8192919Z               "line": 93
2026-06-08T23:22:37.8193210Z             },
2026-06-08T23:22:37.8193496Z             {
2026-06-08T23:22:37.8193888Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-08T23:22:37.8194183Z               "line": 224
2026-06-08T23:22:37.8194468Z             },
2026-06-08T23:22:37.8194749Z             {
2026-06-08T23:22:37.8195126Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-08T23:22:37.8195421Z               "line": 96
2026-06-08T23:22:37.8195707Z             },
2026-06-08T23:22:37.8195994Z             {
2026-06-08T23:22:37.8196380Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-08T23:22:37.8196685Z               "line": 146
2026-06-08T23:22:37.8197065Z             },
2026-06-08T23:22:37.8197349Z             {
2026-06-08T23:22:37.8197717Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.8198041Z               "line": 502
2026-06-08T23:22:37.8198322Z             },
2026-06-08T23:22:37.8198603Z             {
2026-06-08T23:22:37.8198970Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-08T23:22:37.8199262Z               "line": 118
2026-06-08T23:22:37.8199533Z             },
2026-06-08T23:22:37.8199797Z             {
2026-06-08T23:22:37.8200178Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-08T23:22:37.8200469Z               "line": 148
2026-06-08T23:22:37.8200741Z             },
2026-06-08T23:22:37.8201028Z             {
2026-06-08T23:22:37.8201413Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8201704Z               "line": 602
2026-06-08T23:22:37.8201982Z             }
2026-06-08T23:22:37.8202266Z           ]
2026-06-08T23:22:37.8202535Z         }
2026-06-08T23:22:37.8202821Z       }
2026-06-08T23:22:37.8203097Z     },
2026-06-08T23:22:37.8203375Z     {
2026-06-08T23:22:37.8203680Z       "id": "REQ-REACH-2",
2026-06-08T23:22:37.8204177Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-08T23:22:37.8204501Z       "requiredStages": [],
2026-06-08T23:22:37.8204778Z       "stages": {
2026-06-08T23:22:37.8205075Z         "doc": {
2026-06-08T23:22:37.8205390Z           "complete": false,
2026-06-08T23:22:37.8205696Z           "evidence": []
2026-06-08T23:22:37.8205981Z         },
2026-06-08T23:22:37.8206263Z         "impl": {
2026-06-08T23:22:37.8206574Z           "complete": false,
2026-06-08T23:22:37.8206863Z           "evidence": []
2026-06-08T23:22:37.8207221Z         },
2026-06-08T23:22:37.8207550Z         "int": {
2026-06-08T23:22:37.8207866Z           "complete": false,
2026-06-08T23:22:37.8208167Z           "evidence": []
2026-06-08T23:22:37.8208450Z         },
2026-06-08T23:22:37.8208739Z         "unit": {
2026-06-08T23:22:37.8209040Z           "complete": false,
2026-06-08T23:22:37.8209346Z           "evidence": []
2026-06-08T23:22:37.8209628Z         }
2026-06-08T23:22:37.8209904Z       }
2026-06-08T23:22:37.8210183Z     },
2026-06-08T23:22:37.8210462Z     {
2026-06-08T23:22:37.8210762Z       "id": "REQ-REL-1",
2026-06-08T23:22:37.8212036Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-08T23:22:37.8212350Z       "requiredStages": [
2026-06-08T23:22:37.8212636Z         "doc",
2026-06-08T23:22:37.8212920Z         "impl"
2026-06-08T23:22:37.8213197Z       ],
2026-06-08T23:22:37.8213492Z       "stages": {
2026-06-08T23:22:37.8213783Z         "doc": {
2026-06-08T23:22:37.8214089Z           "complete": true,
2026-06-08T23:22:37.8214498Z           "evidence": [
2026-06-08T23:22:37.8214789Z             {
2026-06-08T23:22:37.8215484Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-08T23:22:37.8215784Z               "line": 3
2026-06-08T23:22:37.8216062Z             }
2026-06-08T23:22:37.8216352Z           ]
2026-06-08T23:22:37.8216634Z         },
2026-06-08T23:22:37.8217124Z         "impl": {
2026-06-08T23:22:37.8217443Z           "complete": true,
2026-06-08T23:22:37.8217739Z           "evidence": [
2026-06-08T23:22:37.8218021Z             {
2026-06-08T23:22:37.8218427Z               "path": ".github/workflows/docs-publish.yml",
2026-06-08T23:22:37.8218723Z               "line": 11
2026-06-08T23:22:37.8219005Z             },
2026-06-08T23:22:37.8219290Z             {
2026-06-08T23:22:37.8219648Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8219939Z               "line": 265
2026-06-08T23:22:37.8220221Z             }
2026-06-08T23:22:37.8220498Z           ]
2026-06-08T23:22:37.8220782Z         },
2026-06-08T23:22:37.8221064Z         "int": {
2026-06-08T23:22:37.8221370Z           "complete": false,
2026-06-08T23:22:37.8221666Z           "evidence": []
2026-06-08T23:22:37.8221937Z         },
2026-06-08T23:22:37.8222229Z         "unit": {
2026-06-08T23:22:37.8222533Z           "complete": false,
2026-06-08T23:22:37.8222829Z           "evidence": []
2026-06-08T23:22:37.8223112Z         }
2026-06-08T23:22:37.8223382Z       }
2026-06-08T23:22:37.8223661Z     },
2026-06-08T23:22:37.8223932Z     {
2026-06-08T23:22:37.8224228Z       "id": "REQ-REL-2",
2026-06-08T23:22:37.8225787Z       "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-08T23:22:37.8226087Z       "requiredStages": [
2026-06-08T23:22:37.8226373Z         "impl",
2026-06-08T23:22:37.8226650Z         "int"
2026-06-08T23:22:37.8226936Z       ],
2026-06-08T23:22:37.8227312Z       "stages": {
2026-06-08T23:22:37.8227599Z         "doc": {
2026-06-08T23:22:37.8227904Z           "complete": true,
2026-06-08T23:22:37.8228200Z           "evidence": [
2026-06-08T23:22:37.8228477Z             {
2026-06-08T23:22:37.8228837Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-08T23:22:37.8229135Z               "line": 6
2026-06-08T23:22:37.8229416Z             }
2026-06-08T23:22:37.8229698Z           ]
2026-06-08T23:22:37.8229988Z         },
2026-06-08T23:22:37.8230279Z         "impl": {
2026-06-08T23:22:37.8230585Z           "complete": true,
2026-06-08T23:22:37.8230880Z           "evidence": [
2026-06-08T23:22:37.8231161Z             {
2026-06-08T23:22:37.8231530Z               "path": ".github/workflows/release.yml",
2026-06-08T23:22:37.8231826Z               "line": 16
2026-06-08T23:22:37.8232107Z             },
2026-06-08T23:22:37.8232384Z             {
2026-06-08T23:22:37.8232751Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8233052Z               "line": 352
2026-06-08T23:22:37.8233339Z             },
2026-06-08T23:22:37.8233620Z             {
2026-06-08T23:22:37.8233971Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8234269Z               "line": 424
2026-06-08T23:22:37.8234559Z             },
2026-06-08T23:22:37.8234841Z             {
2026-06-08T23:22:37.8235189Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8235495Z               "line": 484
2026-06-08T23:22:37.8235771Z             },
2026-06-08T23:22:37.8236056Z             {
2026-06-08T23:22:37.8236395Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8236699Z               "line": 591
2026-06-08T23:22:37.8237056Z             }
2026-06-08T23:22:37.8237338Z           ]
2026-06-08T23:22:37.8237614Z         },
2026-06-08T23:22:37.8237901Z         "int": {
2026-06-08T23:22:37.8238211Z           "complete": true,
2026-06-08T23:22:37.8238506Z           "evidence": [
2026-06-08T23:22:37.8238789Z             {
2026-06-08T23:22:37.8239316Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-08T23:22:37.8239613Z               "line": 13
2026-06-08T23:22:37.8239900Z             }
2026-06-08T23:22:37.8240167Z           ]
2026-06-08T23:22:37.8240449Z         },
2026-06-08T23:22:37.8240721Z         "unit": {
2026-06-08T23:22:37.8241021Z           "complete": false,
2026-06-08T23:22:37.8241322Z           "evidence": []
2026-06-08T23:22:37.8241712Z         }
2026-06-08T23:22:37.8241987Z       }
2026-06-08T23:22:37.8242257Z     },
2026-06-08T23:22:37.8242539Z     {
2026-06-08T23:22:37.8242834Z       "id": "REQ-REL-3",
2026-06-08T23:22:37.8244293Z       "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-08T23:22:37.8244605Z       "requiredStages": [
2026-06-08T23:22:37.8244892Z         "impl",
2026-06-08T23:22:37.8245182Z         "unit"
2026-06-08T23:22:37.8245459Z       ],
2026-06-08T23:22:37.8245750Z       "stages": {
2026-06-08T23:22:37.8246040Z         "doc": {
2026-06-08T23:22:37.8246350Z           "complete": false,
2026-06-08T23:22:37.8246655Z           "evidence": []
2026-06-08T23:22:37.8246941Z         },
2026-06-08T23:22:37.8247336Z         "impl": {
2026-06-08T23:22:37.8247651Z           "complete": true,
2026-06-08T23:22:37.8247946Z           "evidence": [
2026-06-08T23:22:37.8248232Z             {
2026-06-08T23:22:37.8248633Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.8248929Z               "line": 224
2026-06-08T23:22:37.8249210Z             },
2026-06-08T23:22:37.8249496Z             {
2026-06-08T23:22:37.8249929Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.8250227Z               "line": 276
2026-06-08T23:22:37.8250498Z             },
2026-06-08T23:22:37.8250789Z             {
2026-06-08T23:22:37.8251147Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8251442Z               "line": 329
2026-06-08T23:22:37.8251724Z             },
2026-06-08T23:22:37.8252001Z             {
2026-06-08T23:22:37.8252348Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8252646Z               "line": 353
2026-06-08T23:22:37.8252913Z             },
2026-06-08T23:22:37.8253199Z             {
2026-06-08T23:22:37.8253533Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.8253829Z               "line": 392
2026-06-08T23:22:37.8254101Z             }
2026-06-08T23:22:37.8254387Z           ]
2026-06-08T23:22:37.8254653Z         },
2026-06-08T23:22:37.8254947Z         "int": {
2026-06-08T23:22:37.8255255Z           "complete": false,
2026-06-08T23:22:37.8255551Z           "evidence": []
2026-06-08T23:22:37.8255833Z         },
2026-06-08T23:22:37.8256114Z         "unit": {
2026-06-08T23:22:37.8256429Z           "complete": true,
2026-06-08T23:22:37.8256729Z           "evidence": [
2026-06-08T23:22:37.8257077Z             {
2026-06-08T23:22:37.8257472Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.8257777Z               "line": 977
2026-06-08T23:22:37.8258063Z             },
2026-06-08T23:22:37.8258340Z             {
2026-06-08T23:22:37.8258731Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.8259032Z               "line": 1036
2026-06-08T23:22:37.8259312Z             }
2026-06-08T23:22:37.8259595Z           ]
2026-06-08T23:22:37.8259876Z         }
2026-06-08T23:22:37.8260153Z       }
2026-06-08T23:22:37.8260431Z     },
2026-06-08T23:22:37.8260715Z     {
2026-06-08T23:22:37.8261039Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-08T23:22:37.8261635Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-08T23:22:37.8261945Z       "requiredStages": [
2026-06-08T23:22:37.8262232Z         "impl",
2026-06-08T23:22:37.8262513Z         "unit"
2026-06-08T23:22:37.8262790Z       ],
2026-06-08T23:22:37.8263085Z       "stages": {
2026-06-08T23:22:37.8263368Z         "doc": {
2026-06-08T23:22:37.8263688Z           "complete": false,
2026-06-08T23:22:37.8264093Z           "evidence": []
2026-06-08T23:22:37.8264379Z         },
2026-06-08T23:22:37.8264666Z         "impl": {
2026-06-08T23:22:37.8264967Z           "complete": true,
2026-06-08T23:22:37.8265257Z           "evidence": [
2026-06-08T23:22:37.8265536Z             {
2026-06-08T23:22:37.8265911Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8266322Z               "line": 18
2026-06-08T23:22:37.8266593Z             },
2026-06-08T23:22:37.8266865Z             {
2026-06-08T23:22:37.8267346Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8267637Z               "line": 35
2026-06-08T23:22:37.8267909Z             },
2026-06-08T23:22:37.8268187Z             {
2026-06-08T23:22:37.8268562Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8268858Z               "line": 72
2026-06-08T23:22:37.8269139Z             }
2026-06-08T23:22:37.8269425Z           ]
2026-06-08T23:22:37.8269710Z         },
2026-06-08T23:22:37.8270001Z         "int": {
2026-06-08T23:22:37.8270311Z           "complete": false,
2026-06-08T23:22:37.8270616Z           "evidence": []
2026-06-08T23:22:37.8270892Z         },
2026-06-08T23:22:37.8271181Z         "unit": {
2026-06-08T23:22:37.8271482Z           "complete": true,
2026-06-08T23:22:37.8271776Z           "evidence": [
2026-06-08T23:22:37.8272063Z             {
2026-06-08T23:22:37.8272459Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8272763Z               "line": 214
2026-06-08T23:22:37.8273045Z             },
2026-06-08T23:22:37.8273328Z             {
2026-06-08T23:22:37.8273701Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8274000Z               "line": 231
2026-06-08T23:22:37.8274278Z             },
2026-06-08T23:22:37.8274558Z             {
2026-06-08T23:22:37.8274940Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8275231Z               "line": 240
2026-06-08T23:22:37.8275512Z             }
2026-06-08T23:22:37.8275793Z           ]
2026-06-08T23:22:37.8276077Z         }
2026-06-08T23:22:37.8276352Z       }
2026-06-08T23:22:37.8276628Z     },
2026-06-08T23:22:37.8276906Z     {
2026-06-08T23:22:37.8277324Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-08T23:22:37.8277812Z       "title": "Hostable endpoint-types capability declaration",
2026-06-08T23:22:37.8278127Z       "requiredStages": [
2026-06-08T23:22:37.8278418Z         "impl",
2026-06-08T23:22:37.8278699Z         "unit"
2026-06-08T23:22:37.8278973Z       ],
2026-06-08T23:22:37.8279268Z       "stages": {
2026-06-08T23:22:37.8279550Z         "doc": {
2026-06-08T23:22:37.8279860Z           "complete": false,
2026-06-08T23:22:37.8280142Z           "evidence": []
2026-06-08T23:22:37.8280428Z         },
2026-06-08T23:22:37.8280715Z         "impl": {
2026-06-08T23:22:37.8281020Z           "complete": true,
2026-06-08T23:22:37.8281316Z           "evidence": [
2026-06-08T23:22:37.8281595Z             {
2026-06-08T23:22:37.8281990Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8282289Z               "line": 404
2026-06-08T23:22:37.8282566Z             }
2026-06-08T23:22:37.8282852Z           ]
2026-06-08T23:22:37.8283128Z         },
2026-06-08T23:22:37.8283414Z         "int": {
2026-06-08T23:22:37.8283724Z           "complete": false,
2026-06-08T23:22:37.8284028Z           "evidence": []
2026-06-08T23:22:37.8284317Z         },
2026-06-08T23:22:37.8284608Z         "unit": {
2026-06-08T23:22:37.8284913Z           "complete": true,
2026-06-08T23:22:37.8285209Z           "evidence": [
2026-06-08T23:22:37.8285505Z             {
2026-06-08T23:22:37.8285899Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8286200Z               "line": 641
2026-06-08T23:22:37.8286482Z             }
2026-06-08T23:22:37.8286767Z           ]
2026-06-08T23:22:37.8287123Z         }
2026-06-08T23:22:37.8287409Z       }
2026-06-08T23:22:37.8287695Z     },
2026-06-08T23:22:37.8287971Z     {
2026-06-08T23:22:37.8288296Z       "id": "REQ-SEAM-HISTORY",
2026-06-08T23:22:37.8288992Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-08T23:22:37.8289312Z       "requiredStages": [
2026-06-08T23:22:37.8289600Z         "impl",
2026-06-08T23:22:37.8289877Z         "unit",
2026-06-08T23:22:37.8290148Z         "int"
2026-06-08T23:22:37.8290425Z       ],
2026-06-08T23:22:37.8290802Z       "stages": {
2026-06-08T23:22:37.8291083Z         "doc": {
2026-06-08T23:22:37.8291393Z           "complete": false,
2026-06-08T23:22:37.8291684Z           "evidence": []
2026-06-08T23:22:37.8291965Z         },
2026-06-08T23:22:37.8292254Z         "impl": {
2026-06-08T23:22:37.8292559Z           "complete": true,
2026-06-08T23:22:37.8292859Z           "evidence": [
2026-06-08T23:22:37.8293141Z             {
2026-06-08T23:22:37.8293512Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.8293804Z               "line": 24
2026-06-08T23:22:37.8294090Z             },
2026-06-08T23:22:37.8294376Z             {
2026-06-08T23:22:37.8294755Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8295063Z               "line": 22
2026-06-08T23:22:37.8295340Z             }
2026-06-08T23:22:37.8295626Z           ]
2026-06-08T23:22:37.8295901Z         },
2026-06-08T23:22:37.8296193Z         "int": {
2026-06-08T23:22:37.8296498Z           "complete": true,
2026-06-08T23:22:37.8296803Z           "evidence": [
2026-06-08T23:22:37.8297170Z             {
2026-06-08T23:22:37.8297582Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.8297882Z               "line": 256
2026-06-08T23:22:37.8298173Z             }
2026-06-08T23:22:37.8298454Z           ]
2026-06-08T23:22:37.8298741Z         },
2026-06-08T23:22:37.8299031Z         "unit": {
2026-06-08T23:22:37.8299341Z           "complete": true,
2026-06-08T23:22:37.8299637Z           "evidence": [
2026-06-08T23:22:37.8299919Z             {
2026-06-08T23:22:37.8300281Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.8300591Z               "line": 167
2026-06-08T23:22:37.8300881Z             },
2026-06-08T23:22:37.8301163Z             {
2026-06-08T23:22:37.8301529Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.8301816Z               "line": 196
2026-06-08T23:22:37.8302098Z             },
2026-06-08T23:22:37.8302384Z             {
2026-06-08T23:22:37.8302759Z               "path": "crates/spt-live/src/echo.rs",
2026-06-08T23:22:37.8303047Z               "line": 216
2026-06-08T23:22:37.8303333Z             },
2026-06-08T23:22:37.8303614Z             {
2026-06-08T23:22:37.8303982Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8304292Z               "line": 199
2026-06-08T23:22:37.8304572Z             },
2026-06-08T23:22:37.8304844Z             {
2026-06-08T23:22:37.8305225Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8305518Z               "line": 219
2026-06-08T23:22:37.8305804Z             },
2026-06-08T23:22:37.8306085Z             {
2026-06-08T23:22:37.8306457Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8306763Z               "line": 244
2026-06-08T23:22:37.8307097Z             },
2026-06-08T23:22:37.8307373Z             {
2026-06-08T23:22:37.8307748Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8308056Z               "line": 269
2026-06-08T23:22:37.8308347Z             },
2026-06-08T23:22:37.8308624Z             {
2026-06-08T23:22:37.8309005Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8309301Z               "line": 290
2026-06-08T23:22:37.8309582Z             },
2026-06-08T23:22:37.8309864Z             {
2026-06-08T23:22:37.8310244Z               "path": "crates/spt-live/src/history.rs",
2026-06-08T23:22:37.8310545Z               "line": 317
2026-06-08T23:22:37.8310826Z             }
2026-06-08T23:22:37.8311112Z           ]
2026-06-08T23:22:37.8311399Z         }
2026-06-08T23:22:37.8311675Z       }
2026-06-08T23:22:37.8311956Z     },
2026-06-08T23:22:37.8312343Z     {
2026-06-08T23:22:37.8312658Z       "id": "REQ-SEAM-INJECT",
2026-06-08T23:22:37.8313180Z       "title": "inject-input methods configurable per activity-state",
2026-06-08T23:22:37.8313502Z       "requiredStages": [
2026-06-08T23:22:37.8313783Z         "impl",
2026-06-08T23:22:37.8314065Z         "unit"
2026-06-08T23:22:37.8314341Z       ],
2026-06-08T23:22:37.8314737Z       "stages": {
2026-06-08T23:22:37.8315023Z         "doc": {
2026-06-08T23:22:37.8315333Z           "complete": false,
2026-06-08T23:22:37.8315638Z           "evidence": []
2026-06-08T23:22:37.8315918Z         },
2026-06-08T23:22:37.8316208Z         "impl": {
2026-06-08T23:22:37.8316508Z           "complete": true,
2026-06-08T23:22:37.8316809Z           "evidence": [
2026-06-08T23:22:37.8317162Z             {
2026-06-08T23:22:37.8317566Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8317871Z               "line": 19
2026-06-08T23:22:37.8318149Z             },
2026-06-08T23:22:37.8318442Z             {
2026-06-08T23:22:37.8318818Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8319123Z               "line": 111
2026-06-08T23:22:37.8319404Z             }
2026-06-08T23:22:37.8319691Z           ]
2026-06-08T23:22:37.8319976Z         },
2026-06-08T23:22:37.8320257Z         "int": {
2026-06-08T23:22:37.8320567Z           "complete": false,
2026-06-08T23:22:37.8320876Z           "evidence": []
2026-06-08T23:22:37.8321157Z         },
2026-06-08T23:22:37.8321444Z         "unit": {
2026-06-08T23:22:37.8321753Z           "complete": true,
2026-06-08T23:22:37.8322054Z           "evidence": [
2026-06-08T23:22:37.8322335Z             {
2026-06-08T23:22:37.8322716Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8323012Z               "line": 320
2026-06-08T23:22:37.8323294Z             },
2026-06-08T23:22:37.8323580Z             {
2026-06-08T23:22:37.8323959Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8324273Z               "line": 340
2026-06-08T23:22:37.8324554Z             }
2026-06-08T23:22:37.8324845Z           ]
2026-06-08T23:22:37.8325122Z         }
2026-06-08T23:22:37.8325402Z       }
2026-06-08T23:22:37.8325684Z     },
2026-06-08T23:22:37.8325969Z     {
2026-06-08T23:22:37.8326302Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-08T23:22:37.8326734Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-08T23:22:37.8327135Z       "requiredStages": [
2026-06-08T23:22:37.8327430Z         "impl",
2026-06-08T23:22:37.8327717Z         "unit"
2026-06-08T23:22:37.8327994Z       ],
2026-06-08T23:22:37.8328284Z       "stages": {
2026-06-08T23:22:37.8328570Z         "doc": {
2026-06-08T23:22:37.8328878Z           "complete": false,
2026-06-08T23:22:37.8329177Z           "evidence": []
2026-06-08T23:22:37.8329458Z         },
2026-06-08T23:22:37.8329744Z         "impl": {
2026-06-08T23:22:37.8330040Z           "complete": true,
2026-06-08T23:22:37.8330340Z           "evidence": [
2026-06-08T23:22:37.8330627Z             {
2026-06-08T23:22:37.8331007Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8331308Z               "line": 18
2026-06-08T23:22:37.8331590Z             },
2026-06-08T23:22:37.8331870Z             {
2026-06-08T23:22:37.8332242Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8332547Z               "line": 309
2026-06-08T23:22:37.8332838Z             }
2026-06-08T23:22:37.8333120Z           ]
2026-06-08T23:22:37.8333406Z         },
2026-06-08T23:22:37.8333691Z         "int": {
2026-06-08T23:22:37.8334006Z           "complete": false,
2026-06-08T23:22:37.8334300Z           "evidence": []
2026-06-08T23:22:37.8334584Z         },
2026-06-08T23:22:37.8334880Z         "unit": {
2026-06-08T23:22:37.8335185Z           "complete": true,
2026-06-08T23:22:37.8335481Z           "evidence": [
2026-06-08T23:22:37.8335763Z             {
2026-06-08T23:22:37.8336143Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8336434Z               "line": 559
2026-06-08T23:22:37.8336824Z             },
2026-06-08T23:22:37.8337194Z             {
2026-06-08T23:22:37.8337590Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8337895Z               "line": 569
2026-06-08T23:22:37.8338176Z             }
2026-06-08T23:22:37.8338462Z           ]
2026-06-08T23:22:37.8338739Z         }
2026-06-08T23:22:37.8339116Z       }
2026-06-08T23:22:37.8339387Z     },
2026-06-08T23:22:37.8339652Z     {
2026-06-08T23:22:37.8339971Z       "id": "REQ-SEAM-PSYCHE",
2026-06-08T23:22:37.8340423Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-08T23:22:37.8340728Z       "requiredStages": [
2026-06-08T23:22:37.8341010Z         "impl",
2026-06-08T23:22:37.8341296Z         "unit",
2026-06-08T23:22:37.8341591Z         "int"
2026-06-08T23:22:37.8341864Z       ],
2026-06-08T23:22:37.8342150Z       "stages": {
2026-06-08T23:22:37.8342431Z         "doc": {
2026-06-08T23:22:37.8342736Z           "complete": false,
2026-06-08T23:22:37.8343036Z           "evidence": []
2026-06-08T23:22:37.8343322Z         },
2026-06-08T23:22:37.8343607Z         "impl": {
2026-06-08T23:22:37.8343894Z           "complete": true,
2026-06-08T23:22:37.8344185Z           "evidence": [
2026-06-08T23:22:37.8344451Z             {
2026-06-08T23:22:37.8344823Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-08T23:22:37.8345116Z               "line": 19
2026-06-08T23:22:37.8345398Z             },
2026-06-08T23:22:37.8345679Z             {
2026-06-08T23:22:37.8346032Z               "path": "crates/spt/src/api/live.rs",
2026-06-08T23:22:37.8346328Z               "line": 12
2026-06-08T23:22:37.8346605Z             },
2026-06-08T23:22:37.8346887Z             {
2026-06-08T23:22:37.8347323Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8347627Z               "line": 209
2026-06-08T23:22:37.8347912Z             }
2026-06-08T23:22:37.8348194Z           ]
2026-06-08T23:22:37.8348480Z         },
2026-06-08T23:22:37.8348760Z         "int": {
2026-06-08T23:22:37.8349080Z           "complete": true,
2026-06-08T23:22:37.8349376Z           "evidence": [
2026-06-08T23:22:37.8349661Z             {
2026-06-08T23:22:37.8350061Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.8350354Z               "line": 255
2026-06-08T23:22:37.8350645Z             }
2026-06-08T23:22:37.8350926Z           ]
2026-06-08T23:22:37.8351222Z         },
2026-06-08T23:22:37.8351509Z         "unit": {
2026-06-08T23:22:37.8351818Z           "complete": true,
2026-06-08T23:22:37.8352118Z           "evidence": [
2026-06-08T23:22:37.8352401Z             {
2026-06-08T23:22:37.8352785Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-08T23:22:37.8353082Z               "line": 161
2026-06-08T23:22:37.8353367Z             },
2026-06-08T23:22:37.8353649Z             {
2026-06-08T23:22:37.8354034Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-08T23:22:37.8354339Z               "line": 168
2026-06-08T23:22:37.8354622Z             },
2026-06-08T23:22:37.8354913Z             {
2026-06-08T23:22:37.8355284Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-08T23:22:37.8355583Z               "line": 191
2026-06-08T23:22:37.8355868Z             },
2026-06-08T23:22:37.8356153Z             {
2026-06-08T23:22:37.8356530Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-08T23:22:37.8356831Z               "line": 106
2026-06-08T23:22:37.8357197Z             },
2026-06-08T23:22:37.8357480Z             {
2026-06-08T23:22:37.8357855Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-08T23:22:37.8358149Z               "line": 137
2026-06-08T23:22:37.8358439Z             },
2026-06-08T23:22:37.8358730Z             {
2026-06-08T23:22:37.8359102Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-08T23:22:37.8359397Z               "line": 161
2026-06-08T23:22:37.8359684Z             }
2026-06-08T23:22:37.8359969Z           ]
2026-06-08T23:22:37.8360245Z         }
2026-06-08T23:22:37.8360526Z       }
2026-06-08T23:22:37.8360933Z     },
2026-06-08T23:22:37.8361215Z     {
2026-06-08T23:22:37.8361539Z       "id": "REQ-SEAM-RESUME",
2026-06-08T23:22:37.8362125Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-08T23:22:37.8362440Z       "requiredStages": [
2026-06-08T23:22:37.8362726Z         "impl",
2026-06-08T23:22:37.8363026Z         "unit"
2026-06-08T23:22:37.8363412Z       ],
2026-06-08T23:22:37.8363698Z       "stages": {
2026-06-08T23:22:37.8363994Z         "doc": {
2026-06-08T23:22:37.8364300Z           "complete": false,
2026-06-08T23:22:37.8364599Z           "evidence": []
2026-06-08T23:22:37.8364877Z         },
2026-06-08T23:22:37.8365173Z         "impl": {
2026-06-08T23:22:37.8365483Z           "complete": true,
2026-06-08T23:22:37.8365788Z           "evidence": [
2026-06-08T23:22:37.8366076Z             {
2026-06-08T23:22:37.8366452Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.8366757Z               "line": 19
2026-06-08T23:22:37.8367128Z             }
2026-06-08T23:22:37.8367420Z           ]
2026-06-08T23:22:37.8367702Z         },
2026-06-08T23:22:37.8367982Z         "int": {
2026-06-08T23:22:37.8368297Z           "complete": false,
2026-06-08T23:22:37.8368581Z           "evidence": []
2026-06-08T23:22:37.8368851Z         },
2026-06-08T23:22:37.8369141Z         "unit": {
2026-06-08T23:22:37.8369451Z           "complete": true,
2026-06-08T23:22:37.8369747Z           "evidence": [
2026-06-08T23:22:37.8370024Z             {
2026-06-08T23:22:37.8370391Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.8370681Z               "line": 179
2026-06-08T23:22:37.8370973Z             },
2026-06-08T23:22:37.8371253Z             {
2026-06-08T23:22:37.8371638Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.8371943Z               "line": 201
2026-06-08T23:22:37.8372224Z             },
2026-06-08T23:22:37.8372515Z             {
2026-06-08T23:22:37.8372896Z               "path": "crates/spt-live/src/resume.rs",
2026-06-08T23:22:37.8373197Z               "line": 222
2026-06-08T23:22:37.8373483Z             }
2026-06-08T23:22:37.8373770Z           ]
2026-06-08T23:22:37.8374053Z         }
2026-06-08T23:22:37.8374339Z       }
2026-06-08T23:22:37.8374625Z     },
2026-06-08T23:22:37.8374902Z     {
2026-06-08T23:22:37.8375222Z       "id": "REQ-SEAM-SPAWN",
2026-06-08T23:22:37.8375551Z       "title": "spawn-session seam",
2026-06-08T23:22:37.8375866Z       "requiredStages": [
2026-06-08T23:22:37.8376155Z         "impl",
2026-06-08T23:22:37.8376442Z         "unit"
2026-06-08T23:22:37.8376727Z       ],
2026-06-08T23:22:37.8377079Z       "stages": {
2026-06-08T23:22:37.8377383Z         "doc": {
2026-06-08T23:22:37.8377693Z           "complete": false,
2026-06-08T23:22:37.8377999Z           "evidence": []
2026-06-08T23:22:37.8378281Z         },
2026-06-08T23:22:37.8378571Z         "impl": {
2026-06-08T23:22:37.8378881Z           "complete": true,
2026-06-08T23:22:37.8379180Z           "evidence": [
2026-06-08T23:22:37.8379472Z             {
2026-06-08T23:22:37.8379865Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8380165Z               "line": 20
2026-06-08T23:22:37.8380451Z             }
2026-06-08T23:22:37.8380732Z           ]
2026-06-08T23:22:37.8381018Z         },
2026-06-08T23:22:37.8381294Z         "int": {
2026-06-08T23:22:37.8381594Z           "complete": false,
2026-06-08T23:22:37.8381887Z           "evidence": []
2026-06-08T23:22:37.8382170Z         },
2026-06-08T23:22:37.8382460Z         "unit": {
2026-06-08T23:22:37.8382760Z           "complete": true,
2026-06-08T23:22:37.8383061Z           "evidence": [
2026-06-08T23:22:37.8383337Z             {
2026-06-08T23:22:37.8383728Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8384029Z               "line": 435
2026-06-08T23:22:37.8384315Z             },
2026-06-08T23:22:37.8384608Z             {
2026-06-08T23:22:37.8385005Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8385415Z               "line": 442
2026-06-08T23:22:37.8385701Z             },
2026-06-08T23:22:37.8388911Z             {
2026-06-08T23:22:37.8389350Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8389659Z               "line": 452
2026-06-08T23:22:37.8389942Z             },
2026-06-08T23:22:37.8390224Z             {
2026-06-08T23:22:37.8390778Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8391078Z               "line": 458
2026-06-08T23:22:37.8391364Z             },
2026-06-08T23:22:37.8391650Z             {
2026-06-08T23:22:37.8392056Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8392354Z               "line": 483
2026-06-08T23:22:37.8392633Z             },
2026-06-08T23:22:37.8392914Z             {
2026-06-08T23:22:37.8393316Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-08T23:22:37.8393617Z               "line": 520
2026-06-08T23:22:37.8393898Z             }
2026-06-08T23:22:37.8394173Z           ]
2026-06-08T23:22:37.8394459Z         }
2026-06-08T23:22:37.8394721Z       }
2026-06-08T23:22:37.8395002Z     },
2026-06-08T23:22:37.8395275Z     {
2026-06-08T23:22:37.8395589Z       "id": "REQ-SEAM-UPDATE",
2026-06-08T23:22:37.8396113Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-08T23:22:37.8396423Z       "requiredStages": [
2026-06-08T23:22:37.8396714Z         "impl",
2026-06-08T23:22:37.8397087Z         "unit"
2026-06-08T23:22:37.8397372Z       ],
2026-06-08T23:22:37.8397656Z       "stages": {
2026-06-08T23:22:37.8397946Z         "doc": {
2026-06-08T23:22:37.8398255Z           "complete": false,
2026-06-08T23:22:37.8398556Z           "evidence": []
2026-06-08T23:22:37.8398842Z         },
2026-06-08T23:22:37.8399124Z         "impl": {
2026-06-08T23:22:37.8399429Z           "complete": true,
2026-06-08T23:22:37.8399725Z           "evidence": [
2026-06-08T23:22:37.8400002Z             {
2026-06-08T23:22:37.8400437Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.8400737Z               "line": 28
2026-06-08T23:22:37.8401018Z             },
2026-06-08T23:22:37.8401295Z             {
2026-06-08T23:22:37.8401728Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.8402019Z               "line": 83
2026-06-08T23:22:37.8402297Z             }
2026-06-08T23:22:37.8402578Z           ]
2026-06-08T23:22:37.8402857Z         },
2026-06-08T23:22:37.8403140Z         "int": {
2026-06-08T23:22:37.8403451Z           "complete": false,
2026-06-08T23:22:37.8403751Z           "evidence": []
2026-06-08T23:22:37.8404027Z         },
2026-06-08T23:22:37.8404315Z         "unit": {
2026-06-08T23:22:37.8404614Z           "complete": true,
2026-06-08T23:22:37.8404914Z           "evidence": [
2026-06-08T23:22:37.8405202Z             {
2026-06-08T23:22:37.8405624Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.8405920Z               "line": 285
2026-06-08T23:22:37.8406207Z             },
2026-06-08T23:22:37.8406497Z             {
2026-06-08T23:22:37.8406926Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.8407302Z               "line": 296
2026-06-08T23:22:37.8407589Z             }
2026-06-08T23:22:37.8407870Z           ]
2026-06-08T23:22:37.8408151Z         }
2026-06-08T23:22:37.8408435Z       }
2026-06-08T23:22:37.8408726Z     },
2026-06-08T23:22:37.8409002Z     {
2026-06-08T23:22:37.8409308Z       "id": "REQ-SEC-1",
2026-06-08T23:22:37.8410619Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-08T23:22:37.8410931Z       "requiredStages": [
2026-06-08T23:22:37.8411221Z         "impl",
2026-06-08T23:22:37.8411506Z         "unit"
2026-06-08T23:22:37.8411788Z       ],
2026-06-08T23:22:37.8412073Z       "stages": {
2026-06-08T23:22:37.8412360Z         "doc": {
2026-06-08T23:22:37.8412670Z           "complete": false,
2026-06-08T23:22:37.8413071Z           "evidence": []
2026-06-08T23:22:37.8413355Z         },
2026-06-08T23:22:37.8413643Z         "impl": {
2026-06-08T23:22:37.8413954Z           "complete": true,
2026-06-08T23:22:37.8414254Z           "evidence": [
2026-06-08T23:22:37.8414531Z             {
2026-06-08T23:22:37.8414926Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8415318Z               "line": 84
2026-06-08T23:22:37.8415599Z             },
2026-06-08T23:22:37.8415880Z             {
2026-06-08T23:22:37.8416274Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8416575Z               "line": 114
2026-06-08T23:22:37.8416861Z             },
2026-06-08T23:22:37.8417228Z             {
2026-06-08T23:22:37.8417616Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8417907Z               "line": 128
2026-06-08T23:22:37.8418182Z             },
2026-06-08T23:22:37.8418464Z             {
2026-06-08T23:22:37.8418834Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8419127Z               "line": 108
2026-06-08T23:22:37.8419404Z             },
2026-06-08T23:22:37.8419676Z             {
2026-06-08T23:22:37.8420053Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8420344Z               "line": 129
2026-06-08T23:22:37.8420625Z             },
2026-06-08T23:22:37.8420897Z             {
2026-06-08T23:22:37.8421268Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8421575Z               "line": 142
2026-06-08T23:22:37.8421853Z             },
2026-06-08T23:22:37.8422129Z             {
2026-06-08T23:22:37.8422501Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8422796Z               "line": 208
2026-06-08T23:22:37.8423078Z             },
2026-06-08T23:22:37.8423360Z             {
2026-06-08T23:22:37.8423731Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8424026Z               "line": 234
2026-06-08T23:22:37.8424309Z             },
2026-06-08T23:22:37.8424585Z             {
2026-06-08T23:22:37.8424938Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8425234Z               "line": 3401
2026-06-08T23:22:37.8425515Z             }
2026-06-08T23:22:37.8425797Z           ]
2026-06-08T23:22:37.8426077Z         },
2026-06-08T23:22:37.8426359Z         "int": {
2026-06-08T23:22:37.8426665Z           "complete": false,
2026-06-08T23:22:37.8427064Z           "evidence": []
2026-06-08T23:22:37.8427346Z         },
2026-06-08T23:22:37.8427632Z         "unit": {
2026-06-08T23:22:37.8427937Z           "complete": true,
2026-06-08T23:22:37.8428229Z           "evidence": [
2026-06-08T23:22:37.8428510Z             {
2026-06-08T23:22:37.8428901Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8429206Z               "line": 140
2026-06-08T23:22:37.8429490Z             },
2026-06-08T23:22:37.8429774Z             {
2026-06-08T23:22:37.8430165Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8430466Z               "line": 192
2026-06-08T23:22:37.8430752Z             },
2026-06-08T23:22:37.8431029Z             {
2026-06-08T23:22:37.8431416Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-08T23:22:37.8431711Z               "line": 233
2026-06-08T23:22:37.8431990Z             },
2026-06-08T23:22:37.8432273Z             {
2026-06-08T23:22:37.8432676Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-08T23:22:37.8432971Z               "line": 138
2026-06-08T23:22:37.8433252Z             },
2026-06-08T23:22:37.8433532Z             {
2026-06-08T23:22:37.8433910Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8434206Z               "line": 246
2026-06-08T23:22:37.8434494Z             },
2026-06-08T23:22:37.8434774Z             {
2026-06-08T23:22:37.8435150Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8435455Z               "line": 276
2026-06-08T23:22:37.8435737Z             },
2026-06-08T23:22:37.8436023Z             {
2026-06-08T23:22:37.8436511Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8436816Z               "line": 309
2026-06-08T23:22:37.8437183Z             },
2026-06-08T23:22:37.8437467Z             {
2026-06-08T23:22:37.8437844Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8438145Z               "line": 328
2026-06-08T23:22:37.8438530Z             },
2026-06-08T23:22:37.8438812Z             {
2026-06-08T23:22:37.8439188Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8439484Z               "line": 361
2026-06-08T23:22:37.8439771Z             },
2026-06-08T23:22:37.8440060Z             {
2026-06-08T23:22:37.8440435Z               "path": "crates/spt-store/src/access.rs",
2026-06-08T23:22:37.8440740Z               "line": 385
2026-06-08T23:22:37.8441021Z             },
2026-06-08T23:22:37.8441303Z             {
2026-06-08T23:22:37.8441647Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8441966Z               "line": 4966
2026-06-08T23:22:37.8442243Z             }
2026-06-08T23:22:37.8442516Z           ]
2026-06-08T23:22:37.8442801Z         }
2026-06-08T23:22:37.8443082Z       }
2026-06-08T23:22:37.8443364Z     },
2026-06-08T23:22:37.8443640Z     {
2026-06-08T23:22:37.8443940Z       "id": "REQ-SHELL-1",
2026-06-08T23:22:37.8446817Z       "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-08T23:22:37.8447222Z       "requiredStages": [
2026-06-08T23:22:37.8447508Z         "impl",
2026-06-08T23:22:37.8447794Z         "unit",
2026-06-08T23:22:37.8448076Z         "int"
2026-06-08T23:22:37.8448357Z       ],
2026-06-08T23:22:37.8448643Z       "stages": {
2026-06-08T23:22:37.8448929Z         "doc": {
2026-06-08T23:22:37.8449244Z           "complete": false,
2026-06-08T23:22:37.8449543Z           "evidence": []
2026-06-08T23:22:37.8449820Z         },
2026-06-08T23:22:37.8450105Z         "impl": {
2026-06-08T23:22:37.8450416Z           "complete": true,
2026-06-08T23:22:37.8450709Z           "evidence": [
2026-06-08T23:22:37.8450990Z             {
2026-06-08T23:22:37.8451385Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8451691Z               "line": 94
2026-06-08T23:22:37.8451967Z             },
2026-06-08T23:22:37.8452253Z             {
2026-06-08T23:22:37.8452649Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8452944Z               "line": 119
2026-06-08T23:22:37.8453234Z             },
2026-06-08T23:22:37.8453514Z             {
2026-06-08T23:22:37.8453919Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8454210Z               "line": 27
2026-06-08T23:22:37.8454496Z             },
2026-06-08T23:22:37.8454778Z             {
2026-06-08T23:22:37.8455177Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8455478Z               "line": 52
2026-06-08T23:22:37.8455758Z             },
2026-06-08T23:22:37.8456043Z             {
2026-06-08T23:22:37.8456439Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8456734Z               "line": 132
2026-06-08T23:22:37.8457096Z             },
2026-06-08T23:22:37.8457382Z             {
2026-06-08T23:22:37.8457783Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8458072Z               "line": 164
2026-06-08T23:22:37.8458359Z             },
2026-06-08T23:22:37.8458626Z             {
2026-06-08T23:22:37.8459022Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8459313Z               "line": 22
2026-06-08T23:22:37.8459589Z             },
2026-06-08T23:22:37.8459876Z             {
2026-06-08T23:22:37.8460266Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8460675Z               "line": 65
2026-06-08T23:22:37.8460966Z             },
2026-06-08T23:22:37.8461241Z             {
2026-06-08T23:22:37.8461645Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8461931Z               "line": 76
2026-06-08T23:22:37.8462213Z             },
2026-06-08T23:22:37.8462480Z             {
2026-06-08T23:22:37.8462975Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8463276Z               "line": 150
2026-06-08T23:22:37.8463547Z             },
2026-06-08T23:22:37.8463836Z             {
2026-06-08T23:22:37.8464226Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8464526Z               "line": 209
2026-06-08T23:22:37.8464803Z             },
2026-06-08T23:22:37.8465089Z             {
2026-06-08T23:22:37.8465495Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8465795Z               "line": 246
2026-06-08T23:22:37.8466076Z             },
2026-06-08T23:22:37.8466355Z             {
2026-06-08T23:22:37.8466750Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8467122Z               "line": 267
2026-06-08T23:22:37.8467427Z             },
2026-06-08T23:22:37.8467709Z             {
2026-06-08T23:22:37.8468105Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8468410Z               "line": 280
2026-06-08T23:22:37.8468686Z             },
2026-06-08T23:22:37.8468971Z             {
2026-06-08T23:22:37.8469348Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.8469653Z               "line": 197
2026-06-08T23:22:37.8469939Z             },
2026-06-08T23:22:37.8470221Z             {
2026-06-08T23:22:37.8470592Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.8470893Z               "line": 213
2026-06-08T23:22:37.8471178Z             },
2026-06-08T23:22:37.8471460Z             {
2026-06-08T23:22:37.8471862Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.8472167Z               "line": 41
2026-06-08T23:22:37.8472454Z             },
2026-06-08T23:22:37.8472730Z             {
2026-06-08T23:22:37.8473121Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.8473416Z               "line": 204
2026-06-08T23:22:37.8473698Z             },
2026-06-08T23:22:37.8473980Z             {
2026-06-08T23:22:37.8474349Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-08T23:22:37.8474640Z               "line": 156
2026-06-08T23:22:37.8474925Z             },
2026-06-08T23:22:37.8475197Z             {
2026-06-08T23:22:37.8475546Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.8475827Z               "line": 295
2026-06-08T23:22:37.8476107Z             },
2026-06-08T23:22:37.8476389Z             {
2026-06-08T23:22:37.8476745Z               "path": "crates/spt/src/api/mod.rs",
2026-06-08T23:22:37.8477120Z               "line": 345
2026-06-08T23:22:37.8477405Z             },
2026-06-08T23:22:37.8477696Z             {
2026-06-08T23:22:37.8478079Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8478379Z               "line": 261
2026-06-08T23:22:37.8478665Z             },
2026-06-08T23:22:37.8478950Z             {
2026-06-08T23:22:37.8479289Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8479588Z               "line": 3899
2026-06-08T23:22:37.8479912Z             },
2026-06-08T23:22:37.8480194Z             {
2026-06-08T23:22:37.8480537Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8480842Z               "line": 4049
2026-06-08T23:22:37.8481124Z             },
2026-06-08T23:22:37.8481410Z             {
2026-06-08T23:22:37.8481753Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8482058Z               "line": 4086
2026-06-08T23:22:37.8482334Z             }
2026-06-08T23:22:37.8482614Z           ]
2026-06-08T23:22:37.8482895Z         },
2026-06-08T23:22:37.8483176Z         "int": {
2026-06-08T23:22:37.8483587Z           "complete": true,
2026-06-08T23:22:37.8483883Z           "evidence": [
2026-06-08T23:22:37.8484169Z             {
2026-06-08T23:22:37.8484578Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8484877Z               "line": 705
2026-06-08T23:22:37.8485157Z             },
2026-06-08T23:22:37.8485437Z             {
2026-06-08T23:22:37.8485942Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-08T23:22:37.8486238Z               "line": 8
2026-06-08T23:22:37.8486524Z             },
2026-06-08T23:22:37.8486811Z             {
2026-06-08T23:22:37.8487305Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-08T23:22:37.8487617Z               "line": 49
2026-06-08T23:22:37.8487899Z             },
2026-06-08T23:22:37.8488185Z             {
2026-06-08T23:22:37.8488581Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8488886Z               "line": 706
2026-06-08T23:22:37.8489177Z             },
2026-06-08T23:22:37.8489463Z             {
2026-06-08T23:22:37.8489854Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8490148Z               "line": 1116
2026-06-08T23:22:37.8490435Z             },
2026-06-08T23:22:37.8490716Z             {
2026-06-08T23:22:37.8491121Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-08T23:22:37.8491421Z               "line": 17
2026-06-08T23:22:37.8491703Z             },
2026-06-08T23:22:37.8491989Z             {
2026-06-08T23:22:37.8492361Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-08T23:22:37.8492656Z               "line": 14
2026-06-08T23:22:37.8492936Z             }
2026-06-08T23:22:37.8493216Z           ]
2026-06-08T23:22:37.8493503Z         },
2026-06-08T23:22:37.8493789Z         "unit": {
2026-06-08T23:22:37.8494099Z           "complete": true,
2026-06-08T23:22:37.8494395Z           "evidence": [
2026-06-08T23:22:37.8494675Z             {
2026-06-08T23:22:37.8495077Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8495385Z               "line": 234
2026-06-08T23:22:37.8495669Z             },
2026-06-08T23:22:37.8495954Z             {
2026-06-08T23:22:37.8496351Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8496642Z               "line": 267
2026-06-08T23:22:37.8496928Z             },
2026-06-08T23:22:37.8497286Z             {
2026-06-08T23:22:37.8497691Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8497994Z               "line": 307
2026-06-08T23:22:37.8498269Z             },
2026-06-08T23:22:37.8498541Z             {
2026-06-08T23:22:37.8498927Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8499223Z               "line": 519
2026-06-08T23:22:37.8499499Z             },
2026-06-08T23:22:37.8499770Z             {
2026-06-08T23:22:37.8500163Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8500454Z               "line": 592
2026-06-08T23:22:37.8500732Z             },
2026-06-08T23:22:37.8501023Z             {
2026-06-08T23:22:37.8501419Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8501725Z               "line": 736
2026-06-08T23:22:37.8502001Z             },
2026-06-08T23:22:37.8502287Z             {
2026-06-08T23:22:37.8502654Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.8502955Z               "line": 575
2026-06-08T23:22:37.8503230Z             },
2026-06-08T23:22:37.8503524Z             {
2026-06-08T23:22:37.8503918Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-08T23:22:37.8504219Z               "line": 352
2026-06-08T23:22:37.8504506Z             },
2026-06-08T23:22:37.8504778Z             {
2026-06-08T23:22:37.8505126Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8505426Z               "line": 5314
2026-06-08T23:22:37.8505712Z             },
2026-06-08T23:22:37.8505997Z             {
2026-06-08T23:22:37.8506338Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8506744Z               "line": 5636
2026-06-08T23:22:37.8507096Z             },
2026-06-08T23:22:37.8507373Z             {
2026-06-08T23:22:37.8507712Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8508012Z               "line": 6002
2026-06-08T23:22:37.8508302Z             }
2026-06-08T23:22:37.8508582Z           ]
2026-06-08T23:22:37.8508958Z         }
2026-06-08T23:22:37.8509235Z       }
2026-06-08T23:22:37.8509516Z     },
2026-06-08T23:22:37.8509793Z     {
2026-06-08T23:22:37.8510103Z       "id": "REQ-SHELL-2",
2026-06-08T23:22:37.8514493Z       "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-08T23:22:37.8514813Z       "requiredStages": [
2026-06-08T23:22:37.8515104Z         "impl",
2026-06-08T23:22:37.8515386Z         "unit",
2026-06-08T23:22:37.8515671Z         "int"
2026-06-08T23:22:37.8515957Z       ],
2026-06-08T23:22:37.8516244Z       "stages": {
2026-06-08T23:22:37.8516533Z         "doc": {
2026-06-08T23:22:37.8516861Z           "complete": false,
2026-06-08T23:22:37.8517242Z           "evidence": []
2026-06-08T23:22:37.8517524Z         },
2026-06-08T23:22:37.8517815Z         "impl": {
2026-06-08T23:22:37.8518120Z           "complete": true,
2026-06-08T23:22:37.8518416Z           "evidence": [
2026-06-08T23:22:37.8518697Z             {
2026-06-08T23:22:37.8519086Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.8519384Z               "line": 246
2026-06-08T23:22:37.8519666Z             },
2026-06-08T23:22:37.8519947Z             {
2026-06-08T23:22:37.8520353Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.8520648Z               "line": 403
2026-06-08T23:22:37.8520935Z             },
2026-06-08T23:22:37.8521211Z             {
2026-06-08T23:22:37.8521603Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-08T23:22:37.8521906Z               "line": 250
2026-06-08T23:22:37.8522196Z             },
2026-06-08T23:22:37.8522482Z             {
2026-06-08T23:22:37.8522894Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.8523198Z               "line": 310
2026-06-08T23:22:37.8523479Z             },
2026-06-08T23:22:37.8523770Z             {
2026-06-08T23:22:37.8524167Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8524460Z               "line": 30
2026-06-08T23:22:37.8524729Z             },
2026-06-08T23:22:37.8525001Z             {
2026-06-08T23:22:37.8525392Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8525688Z               "line": 150
2026-06-08T23:22:37.8525969Z             },
2026-06-08T23:22:37.8526246Z             {
2026-06-08T23:22:37.8526628Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8526927Z               "line": 186
2026-06-08T23:22:37.8527291Z             },
2026-06-08T23:22:37.8527573Z             {
2026-06-08T23:22:37.8527964Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8528264Z               "line": 345
2026-06-08T23:22:37.8528550Z             },
2026-06-08T23:22:37.8528827Z             {
2026-06-08T23:22:37.8529218Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.8529541Z               "line": 348
2026-06-08T23:22:37.8529820Z             },
2026-06-08T23:22:37.8530097Z             {
2026-06-08T23:22:37.8530497Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-08T23:22:37.8530802Z               "line": 115
2026-06-08T23:22:37.8531074Z             },
2026-06-08T23:22:37.8531355Z             {
2026-06-08T23:22:37.8531858Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8532158Z               "line": 120
2026-06-08T23:22:37.8532441Z             },
2026-06-08T23:22:37.8532723Z             {
2026-06-08T23:22:37.8533120Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8533415Z               "line": 360
2026-06-08T23:22:37.8533701Z             },
2026-06-08T23:22:37.8534088Z             {
2026-06-08T23:22:37.8534488Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8534789Z               "line": 464
2026-06-08T23:22:37.8535073Z             },
2026-06-08T23:22:37.8535357Z             {
2026-06-08T23:22:37.8535753Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8536049Z               "line": 24
2026-06-08T23:22:37.8536326Z             },
2026-06-08T23:22:37.8536606Z             {
2026-06-08T23:22:37.8537087Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8537393Z               "line": 76
2026-06-08T23:22:37.8537682Z             },
2026-06-08T23:22:37.8537962Z             {
2026-06-08T23:22:37.8538363Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8538663Z               "line": 154
2026-06-08T23:22:37.8538949Z             },
2026-06-08T23:22:37.8539241Z             {
2026-06-08T23:22:37.8539640Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8539931Z               "line": 177
2026-06-08T23:22:37.8540202Z             },
2026-06-08T23:22:37.8540471Z             {
2026-06-08T23:22:37.8540872Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8541177Z               "line": 273
2026-06-08T23:22:37.8541459Z             },
2026-06-08T23:22:37.8541735Z             {
2026-06-08T23:22:37.8542141Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8542437Z               "line": 450
2026-06-08T23:22:37.8542718Z             },
2026-06-08T23:22:37.8542997Z             {
2026-06-08T23:22:37.8543399Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8543694Z               "line": 532
2026-06-08T23:22:37.8543975Z             },
2026-06-08T23:22:37.8544261Z             {
2026-06-08T23:22:37.8544662Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-08T23:22:37.8544963Z               "line": 27
2026-06-08T23:22:37.8545249Z             },
2026-06-08T23:22:37.8545533Z             {
2026-06-08T23:22:37.8545946Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-08T23:22:37.8546237Z               "line": 43
2026-06-08T23:22:37.8546517Z             },
2026-06-08T23:22:37.8546794Z             {
2026-06-08T23:22:37.8547272Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8547578Z               "line": 323
2026-06-08T23:22:37.8547859Z             },
2026-06-08T23:22:37.8548152Z             {
2026-06-08T23:22:37.8548493Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8548803Z               "line": 1195
2026-06-08T23:22:37.8549084Z             },
2026-06-08T23:22:37.8549366Z             {
2026-06-08T23:22:37.8549704Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8550005Z               "line": 3913
2026-06-08T23:22:37.8550291Z             },
2026-06-08T23:22:37.8550571Z             {
2026-06-08T23:22:37.8550917Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8551222Z               "line": 3974
2026-06-08T23:22:37.8551508Z             },
2026-06-08T23:22:37.8551790Z             {
2026-06-08T23:22:37.8552138Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8552438Z               "line": 4002
2026-06-08T23:22:37.8552715Z             },
2026-06-08T23:22:37.8553002Z             {
2026-06-08T23:22:37.8553345Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8553644Z               "line": 4056
2026-06-08T23:22:37.8553920Z             },
2026-06-08T23:22:37.8554206Z             {
2026-06-08T23:22:37.8554654Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8554955Z               "line": 4172
2026-06-08T23:22:37.8555242Z             },
2026-06-08T23:22:37.8555514Z             {
2026-06-08T23:22:37.8555857Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8556150Z               "line": 4225
2026-06-08T23:22:37.8556434Z             },
2026-06-08T23:22:37.8556812Z             {
2026-06-08T23:22:37.8557259Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.8557555Z               "line": 298
2026-06-08T23:22:37.8557837Z             },
2026-06-08T23:22:37.8558118Z             {
2026-06-08T23:22:37.8558481Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.8558774Z               "line": 339
2026-06-08T23:22:37.8559058Z             }
2026-06-08T23:22:37.8559335Z           ]
2026-06-08T23:22:37.8559621Z         },
2026-06-08T23:22:37.8559897Z         "int": {
2026-06-08T23:22:37.8560202Z           "complete": true,
2026-06-08T23:22:37.8560503Z           "evidence": [
2026-06-08T23:22:37.8560788Z             {
2026-06-08T23:22:37.8561203Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8561496Z               "line": 698
2026-06-08T23:22:37.8561768Z             },
2026-06-08T23:22:37.8562046Z             {
2026-06-08T23:22:37.8562440Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8562731Z               "line": 706
2026-06-08T23:22:37.8563008Z             },
2026-06-08T23:22:37.8563280Z             {
2026-06-08T23:22:37.8563679Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8563975Z               "line": 1116
2026-06-08T23:22:37.8564238Z             },
2026-06-08T23:22:37.8564519Z             {
2026-06-08T23:22:37.8564934Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-08T23:22:37.8565224Z               "line": 18
2026-06-08T23:22:37.8565501Z             }
2026-06-08T23:22:37.8565774Z           ]
2026-06-08T23:22:37.8566050Z         },
2026-06-08T23:22:37.8566325Z         "unit": {
2026-06-08T23:22:37.8566629Z           "complete": true,
2026-06-08T23:22:37.8566918Z           "evidence": [
2026-06-08T23:22:37.8567280Z             {
2026-06-08T23:22:37.8567697Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-08T23:22:37.8567987Z               "line": 429
2026-06-08T23:22:37.8568263Z             },
2026-06-08T23:22:37.8568544Z             {
2026-06-08T23:22:37.8568922Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-08T23:22:37.8569210Z               "line": 794
2026-06-08T23:22:37.8569489Z             },
2026-06-08T23:22:37.8569790Z             {
2026-06-08T23:22:37.8570186Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8570481Z               "line": 625
2026-06-08T23:22:37.8570763Z             },
2026-06-08T23:22:37.8571044Z             {
2026-06-08T23:22:37.8571440Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8571739Z               "line": 674
2026-06-08T23:22:37.8572028Z             },
2026-06-08T23:22:37.8572305Z             {
2026-06-08T23:22:37.8572704Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-08T23:22:37.8573000Z               "line": 698
2026-06-08T23:22:37.8573287Z             },
2026-06-08T23:22:37.8573572Z             {
2026-06-08T23:22:37.8573963Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8574268Z               "line": 596
2026-06-08T23:22:37.8574545Z             },
2026-06-08T23:22:37.8574826Z             {
2026-06-08T23:22:37.8575221Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8575531Z               "line": 617
2026-06-08T23:22:37.8575813Z             },
2026-06-08T23:22:37.8576089Z             {
2026-06-08T23:22:37.8576485Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8576780Z               "line": 653
2026-06-08T23:22:37.8577128Z             },
2026-06-08T23:22:37.8577407Z             {
2026-06-08T23:22:37.8577912Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8578213Z               "line": 707
2026-06-08T23:22:37.8578493Z             },
2026-06-08T23:22:37.8578780Z             {
2026-06-08T23:22:37.8579172Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8579477Z               "line": 725
2026-06-08T23:22:37.8579852Z             },
2026-06-08T23:22:37.8580131Z             {
2026-06-08T23:22:37.8580527Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8580819Z               "line": 759
2026-06-08T23:22:37.8581090Z             },
2026-06-08T23:22:37.8581370Z             {
2026-06-08T23:22:37.8581773Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-08T23:22:37.8582068Z               "line": 834
2026-06-08T23:22:37.8582352Z             },
2026-06-08T23:22:37.8582630Z             {
2026-06-08T23:22:37.8583027Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-08T23:22:37.8583332Z               "line": 80
2026-06-08T23:22:37.8583613Z             },
2026-06-08T23:22:37.8583894Z             {
2026-06-08T23:22:37.8584237Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8584533Z               "line": 4786
2026-06-08T23:22:37.8584814Z             },
2026-06-08T23:22:37.8585096Z             {
2026-06-08T23:22:37.8585439Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8585744Z               "line": 5391
2026-06-08T23:22:37.8586025Z             },
2026-06-08T23:22:37.8586312Z             {
2026-06-08T23:22:37.8586655Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8587045Z               "line": 5461
2026-06-08T23:22:37.8587326Z             },
2026-06-08T23:22:37.8587623Z             {
2026-06-08T23:22:37.8587963Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8588258Z               "line": 5499
2026-06-08T23:22:37.8588549Z             }
2026-06-08T23:22:37.8588836Z           ]
2026-06-08T23:22:37.8589112Z         }
2026-06-08T23:22:37.8589417Z       }
2026-06-08T23:22:37.8589717Z     },
2026-06-08T23:22:37.8589994Z     {
2026-06-08T23:22:37.8590298Z       "id": "REQ-START-1",
2026-06-08T23:22:37.8590925Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-08T23:22:37.8591230Z       "requiredStages": [
2026-06-08T23:22:37.8591516Z         "impl",
2026-06-08T23:22:37.8591807Z         "unit"
2026-06-08T23:22:37.8592088Z       ],
2026-06-08T23:22:37.8592375Z       "stages": {
2026-06-08T23:22:37.8592647Z         "doc": {
2026-06-08T23:22:37.8592960Z           "complete": false,
2026-06-08T23:22:37.8593248Z           "evidence": []
2026-06-08T23:22:37.8593519Z         },
2026-06-08T23:22:37.8593787Z         "impl": {
2026-06-08T23:22:37.8594102Z           "complete": true,
2026-06-08T23:22:37.8594388Z           "evidence": [
2026-06-08T23:22:37.8594674Z             {
2026-06-08T23:22:37.8595045Z               "path": "crates/spt-store/src/seed.rs",
2026-06-08T23:22:37.8595351Z               "line": 16
2026-06-08T23:22:37.8595632Z             }
2026-06-08T23:22:37.8595909Z           ]
2026-06-08T23:22:37.8596190Z         },
2026-06-08T23:22:37.8596481Z         "int": {
2026-06-08T23:22:37.8596791Z           "complete": false,
2026-06-08T23:22:37.8597168Z           "evidence": []
2026-06-08T23:22:37.8597449Z         },
2026-06-08T23:22:37.8597740Z         "unit": {
2026-06-08T23:22:37.8598045Z           "complete": true,
2026-06-08T23:22:37.8598343Z           "evidence": [
2026-06-08T23:22:37.8598622Z             {
2026-06-08T23:22:37.8598989Z               "path": "crates/spt-store/src/seed.rs",
2026-06-08T23:22:37.8599290Z               "line": 43
2026-06-08T23:22:37.8599566Z             },
2026-06-08T23:22:37.8602505Z             {
2026-06-08T23:22:37.8602912Z               "path": "crates/spt-store/src/seed.rs",
2026-06-08T23:22:37.8603207Z               "line": 59
2026-06-08T23:22:37.8603491Z             }
2026-06-08T23:22:37.8603765Z           ]
2026-06-08T23:22:37.8604047Z         }
2026-06-08T23:22:37.8604457Z       }
2026-06-08T23:22:37.8604738Z     },
2026-06-08T23:22:37.8605019Z     {
2026-06-08T23:22:37.8605325Z       "id": "REQ-START-2",
2026-06-08T23:22:37.8605789Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-08T23:22:37.8606099Z       "requiredStages": [
2026-06-08T23:22:37.8606387Z         "impl",
2026-06-08T23:22:37.8606769Z         "unit",
2026-06-08T23:22:37.8607132Z         "int"
2026-06-08T23:22:37.8607427Z       ],
2026-06-08T23:22:37.8607709Z       "stages": {
2026-06-08T23:22:37.8607990Z         "doc": {
2026-06-08T23:22:37.8608295Z           "complete": false,
2026-06-08T23:22:37.8608596Z           "evidence": []
2026-06-08T23:22:37.8608870Z         },
2026-06-08T23:22:37.8609154Z         "impl": {
2026-06-08T23:22:37.8609459Z           "complete": true,
2026-06-08T23:22:37.8609755Z           "evidence": [
2026-06-08T23:22:37.8610027Z             {
2026-06-08T23:22:37.8610408Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8610708Z               "line": 16
2026-06-08T23:22:37.8610985Z             },
2026-06-08T23:22:37.8611263Z             {
2026-06-08T23:22:37.8611641Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8611931Z               "line": 100
2026-06-08T23:22:37.8612208Z             },
2026-06-08T23:22:37.8612489Z             {
2026-06-08T23:22:37.8612871Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8613167Z               "line": 208
2026-06-08T23:22:37.8613448Z             }
2026-06-08T23:22:37.8613719Z           ]
2026-06-08T23:22:37.8614004Z         },
2026-06-08T23:22:37.8614283Z         "int": {
2026-06-08T23:22:37.8614583Z           "complete": true,
2026-06-08T23:22:37.8614874Z           "evidence": [
2026-06-08T23:22:37.8615151Z             {
2026-06-08T23:22:37.8615541Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.8615832Z               "line": 182
2026-06-08T23:22:37.8616109Z             }
2026-06-08T23:22:37.8616391Z           ]
2026-06-08T23:22:37.8616664Z         },
2026-06-08T23:22:37.8617049Z         "unit": {
2026-06-08T23:22:37.8617363Z           "complete": true,
2026-06-08T23:22:37.8617668Z           "evidence": [
2026-06-08T23:22:37.8617940Z             {
2026-06-08T23:22:37.8618321Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8618608Z               "line": 421
2026-06-08T23:22:37.8618894Z             },
2026-06-08T23:22:37.8619180Z             {
2026-06-08T23:22:37.8619559Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8619863Z               "line": 454
2026-06-08T23:22:37.8620143Z             }
2026-06-08T23:22:37.8620425Z           ]
2026-06-08T23:22:37.8620706Z         }
2026-06-08T23:22:37.8620983Z       }
2026-06-08T23:22:37.8621259Z     },
2026-06-08T23:22:37.8621536Z     {
2026-06-08T23:22:37.8621837Z       "id": "REQ-START-3",
2026-06-08T23:22:37.8622386Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-08T23:22:37.8622701Z       "requiredStages": [
2026-06-08T23:22:37.8622977Z         "impl",
2026-06-08T23:22:37.8623258Z         "unit",
2026-06-08T23:22:37.8623545Z         "int"
2026-06-08T23:22:37.8623825Z       ],
2026-06-08T23:22:37.8624112Z       "stages": {
2026-06-08T23:22:37.8624395Z         "doc": {
2026-06-08T23:22:37.8624702Z           "complete": false,
2026-06-08T23:22:37.8625006Z           "evidence": []
2026-06-08T23:22:37.8625287Z         },
2026-06-08T23:22:37.8625573Z         "impl": {
2026-06-08T23:22:37.8625877Z           "complete": true,
2026-06-08T23:22:37.8626173Z           "evidence": [
2026-06-08T23:22:37.8626445Z             {
2026-06-08T23:22:37.8626841Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8627209Z               "line": 23
2026-06-08T23:22:37.8627493Z             },
2026-06-08T23:22:37.8627774Z             {
2026-06-08T23:22:37.8628171Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8628575Z               "line": 205
2026-06-08T23:22:37.8628858Z             },
2026-06-08T23:22:37.8629135Z             {
2026-06-08T23:22:37.8629525Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8629807Z               "line": 221
2026-06-08T23:22:37.8630091Z             },
2026-06-08T23:22:37.8630360Z             {
2026-06-08T23:22:37.8630738Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8631138Z               "line": 17
2026-06-08T23:22:37.8631419Z             },
2026-06-08T23:22:37.8631702Z             {
2026-06-08T23:22:37.8632082Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8632378Z               "line": 43
2026-06-08T23:22:37.8632653Z             },
2026-06-08T23:22:37.8632936Z             {
2026-06-08T23:22:37.8633309Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8633610Z               "line": 101
2026-06-08T23:22:37.8633890Z             }
2026-06-08T23:22:37.8634166Z           ]
2026-06-08T23:22:37.8634453Z         },
2026-06-08T23:22:37.8634734Z         "int": {
2026-06-08T23:22:37.8635039Z           "complete": true,
2026-06-08T23:22:37.8635332Z           "evidence": [
2026-06-08T23:22:37.8635609Z             {
2026-06-08T23:22:37.8635990Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-08T23:22:37.8636285Z               "line": 436
2026-06-08T23:22:37.8636572Z             }
2026-06-08T23:22:37.8636849Z           ]
2026-06-08T23:22:37.8637216Z         },
2026-06-08T23:22:37.8637512Z         "unit": {
2026-06-08T23:22:37.8637817Z           "complete": true,
2026-06-08T23:22:37.8638111Z           "evidence": [
2026-06-08T23:22:37.8638378Z             {
2026-06-08T23:22:37.8638765Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8639060Z               "line": 331
2026-06-08T23:22:37.8639351Z             },
2026-06-08T23:22:37.8639627Z             {
2026-06-08T23:22:37.8640024Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8640324Z               "line": 352
2026-06-08T23:22:37.8640608Z             },
2026-06-08T23:22:37.8640891Z             {
2026-06-08T23:22:37.8641283Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-08T23:22:37.8641584Z               "line": 362
2026-06-08T23:22:37.8641860Z             },
2026-06-08T23:22:37.8642131Z             {
2026-06-08T23:22:37.8642508Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8642800Z               "line": 422
2026-06-08T23:22:37.8643089Z             },
2026-06-08T23:22:37.8643363Z             {
2026-06-08T23:22:37.8643735Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8644031Z               "line": 455
2026-06-08T23:22:37.8644308Z             },
2026-06-08T23:22:37.8644584Z             {
2026-06-08T23:22:37.8644956Z               "path": "crates/spt/src/api/startup.rs",
2026-06-08T23:22:37.8645256Z               "line": 463
2026-06-08T23:22:37.8645533Z             }
2026-06-08T23:22:37.8645804Z           ]
2026-06-08T23:22:37.8646073Z         }
2026-06-08T23:22:37.8646344Z       }
2026-06-08T23:22:37.8646621Z     },
2026-06-08T23:22:37.8646893Z     {
2026-06-08T23:22:37.8647284Z       "id": "REQ-START-4",
2026-06-08T23:22:37.8647733Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-08T23:22:37.8648043Z       "requiredStages": [
2026-06-08T23:22:37.8648330Z         "impl",
2026-06-08T23:22:37.8648613Z         "unit"
2026-06-08T23:22:37.8648889Z       ],
2026-06-08T23:22:37.8649176Z       "stages": {
2026-06-08T23:22:37.8649462Z         "doc": {
2026-06-08T23:22:37.8649763Z           "complete": false,
2026-06-08T23:22:37.8650058Z           "evidence": []
2026-06-08T23:22:37.8650336Z         },
2026-06-08T23:22:37.8650627Z         "impl": {
2026-06-08T23:22:37.8650937Z           "complete": true,
2026-06-08T23:22:37.8651235Z           "evidence": [
2026-06-08T23:22:37.8651515Z             {
2026-06-08T23:22:37.8651901Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8652306Z               "line": 391
2026-06-08T23:22:37.8652592Z             }
2026-06-08T23:22:37.8652874Z           ]
2026-06-08T23:22:37.8653151Z         },
2026-06-08T23:22:37.8653432Z         "int": {
2026-06-08T23:22:37.8653740Z           "complete": false,
2026-06-08T23:22:37.8654037Z           "evidence": []
2026-06-08T23:22:37.8654314Z         },
2026-06-08T23:22:37.8654696Z         "unit": {
2026-06-08T23:22:37.8655001Z           "complete": true,
2026-06-08T23:22:37.8655297Z           "evidence": [
2026-06-08T23:22:37.8655583Z             {
2026-06-08T23:22:37.8655975Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-08T23:22:37.8656268Z               "line": 660
2026-06-08T23:22:37.8656552Z             }
2026-06-08T23:22:37.8656829Z           ]
2026-06-08T23:22:37.8657186Z         }
2026-06-08T23:22:37.8657463Z       }
2026-06-08T23:22:37.8657754Z     },
2026-06-08T23:22:37.8658035Z     {
2026-06-08T23:22:37.8658726Z       "id": "REQ-STORE-1",
2026-06-08T23:22:37.8661894Z       "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-08T23:22:37.8665203Z       "requiredStages": [
2026-06-08T23:22:37.8665910Z         "impl",
2026-06-08T23:22:37.8666535Z         "unit"
2026-06-08T23:22:37.8667232Z       ],
2026-06-08T23:22:37.8667862Z       "stages": {
2026-06-08T23:22:37.8668477Z         "doc": {
2026-06-08T23:22:37.8669121Z           "complete": false,
2026-06-08T23:22:37.8669859Z           "evidence": []
2026-06-08T23:22:37.8670536Z         },
2026-06-08T23:22:37.8671141Z         "impl": {
2026-06-08T23:22:37.8671913Z           "complete": true,
2026-06-08T23:22:37.8672678Z           "evidence": [
2026-06-08T23:22:37.8673360Z             {
2026-06-08T23:22:37.8674108Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8675016Z               "line": 23
2026-06-08T23:22:37.8675692Z             },
2026-06-08T23:22:37.8676308Z             {
2026-06-08T23:22:37.8677120Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8678030Z               "line": 46
2026-06-08T23:22:37.8678703Z             },
2026-06-08T23:22:37.8679318Z             {
2026-06-08T23:22:37.8680049Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8680959Z               "line": 97
2026-06-08T23:22:37.8681633Z             },
2026-06-08T23:22:37.8682238Z             {
2026-06-08T23:22:37.8682965Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8683870Z               "line": 125
2026-06-08T23:22:37.8684542Z             },
2026-06-08T23:22:37.8685149Z             {
2026-06-08T23:22:37.8685884Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8686780Z               "line": 181
2026-06-08T23:22:37.8687538Z             },
2026-06-08T23:22:37.8688157Z             {
2026-06-08T23:22:37.8688890Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8689797Z               "line": 205
2026-06-08T23:22:37.8690479Z             },
2026-06-08T23:22:37.8691088Z             {
2026-06-08T23:22:37.8691818Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8692729Z               "line": 441
2026-06-08T23:22:37.8693404Z             },
2026-06-08T23:22:37.8694012Z             {
2026-06-08T23:22:37.8694767Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8695682Z               "line": 25
2026-06-08T23:22:37.8696360Z             },
2026-06-08T23:22:37.8697047Z             {
2026-06-08T23:22:37.8697785Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8698698Z               "line": 104
2026-06-08T23:22:37.8699375Z             },
2026-06-08T23:22:37.8699980Z             {
2026-06-08T23:22:37.8700835Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8701787Z               "line": 132
2026-06-08T23:22:37.8702474Z             },
2026-06-08T23:22:37.8703094Z             {
2026-06-08T23:22:37.8703831Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8704749Z               "line": 148
2026-06-08T23:22:37.8705531Z             },
2026-06-08T23:22:37.8706136Z             {
2026-06-08T23:22:37.8706877Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8707884Z               "line": 166
2026-06-08T23:22:37.8708565Z             },
2026-06-08T23:22:37.8709174Z             {
2026-06-08T23:22:37.8709911Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8710831Z               "line": 175
2026-06-08T23:22:37.8711508Z             },
2026-06-08T23:22:37.8712128Z             {
2026-06-08T23:22:37.8712852Z               "path": "crates/spt-store/src/project.rs",
2026-06-08T23:22:37.8713753Z               "line": 16
2026-06-08T23:22:37.8714434Z             },
2026-06-08T23:22:37.8715052Z             {
2026-06-08T23:22:37.8715767Z               "path": "crates/spt-store/src/project.rs",
2026-06-08T23:22:37.8716649Z               "line": 63
2026-06-08T23:22:37.8717394Z             }
2026-06-08T23:22:37.8718004Z           ]
2026-06-08T23:22:37.8718596Z         },
2026-06-08T23:22:37.8719191Z         "int": {
2026-06-08T23:22:37.8719847Z           "complete": false,
2026-06-08T23:22:37.8720576Z           "evidence": []
2026-06-08T23:22:37.8721254Z         },
2026-06-08T23:22:37.8721849Z         "unit": {
2026-06-08T23:22:37.8722496Z           "complete": true,
2026-06-08T23:22:37.8723208Z           "evidence": [
2026-06-08T23:22:37.8723871Z             {
2026-06-08T23:22:37.8724595Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8725513Z               "line": 558
2026-06-08T23:22:37.8726199Z             },
2026-06-08T23:22:37.8726800Z             {
2026-06-08T23:22:37.8727618Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8728526Z               "line": 568
2026-06-08T23:22:37.8729208Z             },
2026-06-08T23:22:37.8729823Z             {
2026-06-08T23:22:37.8730555Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8731479Z               "line": 590
2026-06-08T23:22:37.8732211Z             },
2026-06-08T23:22:37.8732835Z             {
2026-06-08T23:22:37.8733559Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8734455Z               "line": 606
2026-06-08T23:22:37.8735132Z             },
2026-06-08T23:22:37.8735750Z             {
2026-06-08T23:22:37.8736477Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-08T23:22:37.8737445Z               "line": 629
2026-06-08T23:22:37.8738126Z             },
2026-06-08T23:22:37.8738739Z             {
2026-06-08T23:22:37.8739473Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8740393Z               "line": 440
2026-06-08T23:22:37.8741076Z             },
2026-06-08T23:22:37.8741701Z             {
2026-06-08T23:22:37.8742432Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-08T23:22:37.8743348Z               "line": 475
2026-06-08T23:22:37.8744023Z             },
2026-06-08T23:22:37.8744629Z             {
2026-06-08T23:22:37.8745349Z               "path": "crates/spt-store/src/project.rs",
2026-06-08T23:22:37.8746243Z               "line": 120
2026-06-08T23:22:37.8746924Z             },
2026-06-08T23:22:37.8747643Z             {
2026-06-08T23:22:37.8748368Z               "path": "crates/spt-store/src/project.rs",
2026-06-08T23:22:37.8749256Z               "line": 128
2026-06-08T23:22:37.8749933Z             }
2026-06-08T23:22:37.8750534Z           ]
2026-06-08T23:22:37.8751121Z         }
2026-06-08T23:22:37.8751704Z       }
2026-06-08T23:22:37.8752281Z     },
2026-06-08T23:22:37.8752853Z     {
2026-06-08T23:22:37.8753492Z       "id": "REQ-SUBNET-1",
2026-06-08T23:22:37.8755102Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-08T23:22:37.8756718Z       "requiredStages": [
2026-06-08T23:22:37.8757489Z         "impl",
2026-06-08T23:22:37.8758109Z         "unit"
2026-06-08T23:22:37.8758710Z       ],
2026-06-08T23:22:37.8759293Z       "stages": {
2026-06-08T23:22:37.8760032Z         "doc": {
2026-06-08T23:22:37.8760671Z           "complete": false,
2026-06-08T23:22:37.8761394Z           "evidence": []
2026-06-08T23:22:37.8762088Z         },
2026-06-08T23:22:37.8762675Z         "impl": {
2026-06-08T23:22:37.8763327Z           "complete": true,
2026-06-08T23:22:37.8764047Z           "evidence": [
2026-06-08T23:22:37.8764718Z             {
2026-06-08T23:22:37.8765511Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8766436Z               "line": 265
2026-06-08T23:22:37.8767221Z             },
2026-06-08T23:22:37.8767862Z             {
2026-06-08T23:22:37.8768611Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8769536Z               "line": 571
2026-06-08T23:22:37.8770214Z             },
2026-06-08T23:22:37.8770839Z             {
2026-06-08T23:22:37.8771508Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8772359Z               "line": 2044
2026-06-08T23:22:37.8773062Z             },
2026-06-08T23:22:37.8773701Z             {
2026-06-08T23:22:37.8774394Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8775212Z               "line": 2209
2026-06-08T23:22:37.8775903Z             },
2026-06-08T23:22:37.8776509Z             {
2026-06-08T23:22:37.8777244Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8778113Z               "line": 2228
2026-06-08T23:22:37.8778808Z             },
2026-06-08T23:22:37.8779419Z             {
2026-06-08T23:22:37.8780091Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8780928Z               "line": 2289
2026-06-08T23:22:37.8781637Z             },
2026-06-08T23:22:37.8782258Z             {
2026-06-08T23:22:37.8782915Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8783761Z               "line": 2331
2026-06-08T23:22:37.8784447Z             },
2026-06-08T23:22:37.8785067Z             {
2026-06-08T23:22:37.8785753Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8786603Z               "line": 2504
2026-06-08T23:22:37.8787398Z             },
2026-06-08T23:22:37.8788013Z             {
2026-06-08T23:22:37.8788673Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8789503Z               "line": 2574
2026-06-08T23:22:37.8790189Z             },
2026-06-08T23:22:37.8790800Z             {
2026-06-08T23:22:37.8791473Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8792308Z               "line": 2649
2026-06-08T23:22:37.8792995Z             },
2026-06-08T23:22:37.8793609Z             {
2026-06-08T23:22:37.8794284Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8795132Z               "line": 2745
2026-06-08T23:22:37.8795819Z             },
2026-06-08T23:22:37.8796432Z             {
2026-06-08T23:22:37.8797219Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.8798093Z               "line": 418
2026-06-08T23:22:37.8798780Z             }
2026-06-08T23:22:37.8799386Z           ]
2026-06-08T23:22:37.8799982Z         },
2026-06-08T23:22:37.8800577Z         "int": {
2026-06-08T23:22:37.8801216Z           "complete": false,
2026-06-08T23:22:37.8801933Z           "evidence": []
2026-06-08T23:22:37.8802597Z         },
2026-06-08T23:22:37.8803193Z         "unit": {
2026-06-08T23:22:37.8803837Z           "complete": true,
2026-06-08T23:22:37.8804558Z           "evidence": [
2026-06-08T23:22:37.8805216Z             {
2026-06-08T23:22:37.8805964Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8806888Z               "line": 1446
2026-06-08T23:22:37.8807650Z             },
2026-06-08T23:22:37.8808261Z             {
2026-06-08T23:22:37.8809081Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8809946Z               "line": 6248
2026-06-08T23:22:37.8810638Z             },
2026-06-08T23:22:37.8811254Z             {
2026-06-08T23:22:37.8811916Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8812760Z               "line": 6404
2026-06-08T23:22:37.8813557Z             },
2026-06-08T23:22:37.8814167Z             {
2026-06-08T23:22:37.8814837Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8815685Z               "line": 6411
2026-06-08T23:22:37.8816377Z             },
2026-06-08T23:22:37.8817044Z             {
2026-06-08T23:22:37.8817720Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8818555Z               "line": 6464
2026-06-08T23:22:37.8819237Z             },
2026-06-08T23:22:37.8819853Z             {
2026-06-08T23:22:37.8820521Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8821374Z               "line": 6481
2026-06-08T23:22:37.8822076Z             },
2026-06-08T23:22:37.8822688Z             {
2026-06-08T23:22:37.8823354Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8824202Z               "line": 6495
2026-06-08T23:22:37.8824894Z             },
2026-06-08T23:22:37.8825510Z             {
2026-06-08T23:22:37.8826177Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8827113Z               "line": 6593
2026-06-08T23:22:37.8832530Z             },
2026-06-08T23:22:37.8833153Z             {
2026-06-08T23:22:37.8833833Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8834677Z               "line": 6743
2026-06-08T23:22:37.8835358Z             }
2026-06-08T23:22:37.8835971Z           ]
2026-06-08T23:22:37.8836562Z         }
2026-06-08T23:22:37.8837258Z       }
2026-06-08T23:22:37.8837859Z     },
2026-06-08T23:22:37.8838442Z     {
2026-06-08T23:22:37.8839040Z       "id": "REQ-SUBNET-2",
2026-06-08T23:22:37.8840218Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-08T23:22:37.8841497Z       "requiredStages": [
2026-06-08T23:22:37.8842189Z         "impl",
2026-06-08T23:22:37.8842813Z         "unit",
2026-06-08T23:22:37.8843419Z         "int"
2026-06-08T23:22:37.8844017Z       ],
2026-06-08T23:22:37.8844608Z       "stages": {
2026-06-08T23:22:37.8845233Z         "doc": {
2026-06-08T23:22:37.8845867Z           "complete": true,
2026-06-08T23:22:37.8846588Z           "evidence": [
2026-06-08T23:22:37.8847356Z             {
2026-06-08T23:22:37.8848171Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-08T23:22:37.8849181Z               "line": 60
2026-06-08T23:22:37.8849853Z             }
2026-06-08T23:22:37.8850458Z           ]
2026-06-08T23:22:37.8851040Z         },
2026-06-08T23:22:37.8851632Z         "impl": {
2026-06-08T23:22:37.8852283Z           "complete": true,
2026-06-08T23:22:37.8853001Z           "evidence": [
2026-06-08T23:22:37.8853660Z             {
2026-06-08T23:22:37.8854369Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.8855249Z               "line": 548
2026-06-08T23:22:37.8855921Z             },
2026-06-08T23:22:37.8856537Z             {
2026-06-08T23:22:37.8857335Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-08T23:22:37.8858226Z               "line": 636
2026-06-08T23:22:37.8858899Z             },
2026-06-08T23:22:37.8859515Z             {
2026-06-08T23:22:37.8860224Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.8861105Z               "line": 448
2026-06-08T23:22:37.8861783Z             },
2026-06-08T23:22:37.8862396Z             {
2026-06-08T23:22:37.8863114Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-08T23:22:37.8864011Z               "line": 578
2026-06-08T23:22:37.8864679Z             },
2026-06-08T23:22:37.8865280Z             {
2026-06-08T23:22:37.8866010Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8866893Z               "line": 26
2026-06-08T23:22:37.8867847Z             },
2026-06-08T23:22:37.8868466Z             {
2026-06-08T23:22:37.8869164Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8870055Z               "line": 60
2026-06-08T23:22:37.8870726Z             },
2026-06-08T23:22:37.8871331Z             {
2026-06-08T23:22:37.8872043Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8873037Z               "line": 168
2026-06-08T23:22:37.8873717Z             },
2026-06-08T23:22:37.8874333Z             {
2026-06-08T23:22:37.8875057Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8875960Z               "line": 295
2026-06-08T23:22:37.8876632Z             },
2026-06-08T23:22:37.8877342Z             {
2026-06-08T23:22:37.8878070Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8878974Z               "line": 417
2026-06-08T23:22:37.8879652Z             },
2026-06-08T23:22:37.8880257Z             {
2026-06-08T23:22:37.8880981Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-08T23:22:37.8881896Z               "line": 252
2026-06-08T23:22:37.8882575Z             },
2026-06-08T23:22:37.8883180Z             {
2026-06-08T23:22:37.8883853Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8884692Z               "line": 2255
2026-06-08T23:22:37.8885383Z             },
2026-06-08T23:22:37.8885988Z             {
2026-06-08T23:22:37.8886662Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8887626Z               "line": 2684
2026-06-08T23:22:37.8888309Z             },
2026-06-08T23:22:37.8888919Z             {
2026-06-08T23:22:37.8889587Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8890431Z               "line": 3125
2026-06-08T23:22:37.8891123Z             }
2026-06-08T23:22:37.8891791Z           ]
2026-06-08T23:22:37.8892406Z         },
2026-06-08T23:22:37.8893017Z         "int": {
2026-06-08T23:22:37.8893723Z           "complete": true,
2026-06-08T23:22:37.8894502Z           "evidence": [
2026-06-08T23:22:37.8895297Z             {
2026-06-08T23:22:37.8896066Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-08T23:22:37.8897130Z               "line": 22
2026-06-08T23:22:37.8897897Z             },
2026-06-08T23:22:37.8898508Z             {
2026-06-08T23:22:37.8899234Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8900152Z               "line": 573
2026-06-08T23:22:37.8900840Z             },
2026-06-08T23:22:37.8901455Z             {
2026-06-08T23:22:37.8902183Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.8903094Z               "line": 790
2026-06-08T23:22:37.8903780Z             }
2026-06-08T23:22:37.8904391Z           ]
2026-06-08T23:22:37.8904988Z         },
2026-06-08T23:22:37.8905598Z         "unit": {
2026-06-08T23:22:37.8906252Z           "complete": true,
2026-06-08T23:22:37.8907051Z           "evidence": [
2026-06-08T23:22:37.8907721Z             {
2026-06-08T23:22:37.8908436Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.8909338Z               "line": 586
2026-06-08T23:22:37.8910016Z             },
2026-06-08T23:22:37.8910630Z             {
2026-06-08T23:22:37.8911303Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8912142Z               "line": 6288
2026-06-08T23:22:37.8912847Z             },
2026-06-08T23:22:37.8913467Z             {
2026-06-08T23:22:37.8914134Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8914975Z               "line": 6794
2026-06-08T23:22:37.8915667Z             }
2026-06-08T23:22:37.8916267Z           ]
2026-06-08T23:22:37.8916869Z         }
2026-06-08T23:22:37.8917569Z       }
2026-06-08T23:22:37.8918153Z     },
2026-06-08T23:22:37.8918740Z     {
2026-06-08T23:22:37.8919360Z       "id": "REQ-SUBNET-3",
2026-06-08T23:22:37.8920643Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-08T23:22:37.8922159Z       "requiredStages": [
2026-06-08T23:22:37.8922866Z         "impl",
2026-06-08T23:22:37.8923488Z         "unit"
2026-06-08T23:22:37.8924098Z       ],
2026-06-08T23:22:37.8924695Z       "stages": {
2026-06-08T23:22:37.8925324Z         "doc": {
2026-06-08T23:22:37.8925979Z           "complete": false,
2026-06-08T23:22:37.8926709Z           "evidence": []
2026-06-08T23:22:37.8927624Z         },
2026-06-08T23:22:37.8928233Z         "impl": {
2026-06-08T23:22:37.8928889Z           "complete": true,
2026-06-08T23:22:37.8929615Z           "evidence": [
2026-06-08T23:22:37.8930283Z             {
2026-06-08T23:22:37.8931041Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8931966Z               "line": 152
2026-06-08T23:22:37.8932652Z             },
2026-06-08T23:22:37.8933263Z             {
2026-06-08T23:22:37.8934010Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8934940Z               "line": 283
2026-06-08T23:22:37.8935637Z             },
2026-06-08T23:22:37.8936255Z             {
2026-06-08T23:22:37.8937083Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8938004Z               "line": 413
2026-06-08T23:22:37.8938690Z             },
2026-06-08T23:22:37.8939302Z             {
2026-06-08T23:22:37.8940049Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8940980Z               "line": 452
2026-06-08T23:22:37.8941658Z             },
2026-06-08T23:22:37.8942268Z             {
2026-06-08T23:22:37.8942993Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8943899Z               "line": 125
2026-06-08T23:22:37.8944584Z             },
2026-06-08T23:22:37.8945200Z             {
2026-06-08T23:22:37.8945931Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8946839Z               "line": 237
2026-06-08T23:22:37.8947586Z             },
2026-06-08T23:22:37.8948206Z             {
2026-06-08T23:22:37.8948959Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8949857Z               "line": 248
2026-06-08T23:22:37.8950554Z             },
2026-06-08T23:22:37.8951177Z             {
2026-06-08T23:22:37.8951911Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8952815Z               "line": 269
2026-06-08T23:22:37.8953501Z             },
2026-06-08T23:22:37.8954121Z             {
2026-06-08T23:22:37.8954849Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8955741Z               "line": 573
2026-06-08T23:22:37.8956432Z             },
2026-06-08T23:22:37.8957130Z             {
2026-06-08T23:22:37.8957856Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8958767Z               "line": 632
2026-06-08T23:22:37.8959448Z             },
2026-06-08T23:22:37.8960066Z             {
2026-06-08T23:22:37.8960789Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.8961705Z               "line": 61
2026-06-08T23:22:37.8962395Z             },
2026-06-08T23:22:37.8963009Z             {
2026-06-08T23:22:37.8963741Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.8964652Z               "line": 90
2026-06-08T23:22:37.8965333Z             },
2026-06-08T23:22:37.8965953Z             {
2026-06-08T23:22:37.8966678Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.8967667Z               "line": 125
2026-06-08T23:22:37.8968364Z             },
2026-06-08T23:22:37.8968989Z             {
2026-06-08T23:22:37.8969712Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-08T23:22:37.8970598Z               "line": 9
2026-06-08T23:22:37.8971264Z             },
2026-06-08T23:22:37.8971870Z             {
2026-06-08T23:22:37.8972552Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.8973386Z               "line": 2574
2026-06-08T23:22:37.8974073Z             },
2026-06-08T23:22:37.8974698Z             {
2026-06-08T23:22:37.8975494Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.8976367Z               "line": 445
2026-06-08T23:22:37.8977143Z             }
2026-06-08T23:22:37.8977753Z           ]
2026-06-08T23:22:37.8978350Z         },
2026-06-08T23:22:37.8978943Z         "int": {
2026-06-08T23:22:37.8979605Z           "complete": false,
2026-06-08T23:22:37.8980349Z           "evidence": []
2026-06-08T23:22:37.8981139Z         },
2026-06-08T23:22:37.8981748Z         "unit": {
2026-06-08T23:22:37.8982396Z           "complete": true,
2026-06-08T23:22:37.8983126Z           "evidence": [
2026-06-08T23:22:37.8983790Z             {
2026-06-08T23:22:37.8984547Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8985477Z               "line": 1273
2026-06-08T23:22:37.8986164Z             },
2026-06-08T23:22:37.8986792Z             {
2026-06-08T23:22:37.8987594Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.8988534Z               "line": 1575
2026-06-08T23:22:37.8989232Z             },
2026-06-08T23:22:37.8989851Z             {
2026-06-08T23:22:37.8990585Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.8991486Z               "line": 884
2026-06-08T23:22:37.8992169Z             },
2026-06-08T23:22:37.8992780Z             {
2026-06-08T23:22:37.8993499Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8994397Z               "line": 941
2026-06-08T23:22:37.8995079Z             },
2026-06-08T23:22:37.8995694Z             {
2026-06-08T23:22:37.8996424Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.8997420Z               "line": 990
2026-06-08T23:22:37.8998098Z             },
2026-06-08T23:22:37.8998722Z             {
2026-06-08T23:22:37.8999437Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.9000335Z               "line": 1049
2026-06-08T23:22:37.9001031Z             },
2026-06-08T23:22:37.9001661Z             {
2026-06-08T23:22:37.9002396Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-08T23:22:37.9003311Z               "line": 233
2026-06-08T23:22:37.9003992Z             },
2026-06-08T23:22:37.9004613Z             {
2026-06-08T23:22:37.9005348Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-08T23:22:37.9006241Z               "line": 49
2026-06-08T23:22:37.9006931Z             },
2026-06-08T23:22:37.9007631Z             {
2026-06-08T23:22:37.9008309Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9009148Z               "line": 6593
2026-06-08T23:22:37.9009830Z             },
2026-06-08T23:22:37.9010451Z             {
2026-06-08T23:22:37.9011156Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9011996Z               "line": 6698
2026-06-08T23:22:37.9012686Z             },
2026-06-08T23:22:37.9013304Z             {
2026-06-08T23:22:37.9013967Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9014802Z               "line": 6760
2026-06-08T23:22:37.9015495Z             }
2026-06-08T23:22:37.9016109Z           ]
2026-06-08T23:22:37.9016701Z         }
2026-06-08T23:22:37.9017378Z       }
2026-06-08T23:22:37.9017980Z     },
2026-06-08T23:22:37.9018555Z     {
2026-06-08T23:22:37.9019169Z       "id": "REQ-SUBNET-4",
2026-06-08T23:22:37.9020549Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-08T23:22:37.9022070Z       "requiredStages": [
2026-06-08T23:22:37.9022777Z         "impl",
2026-06-08T23:22:37.9023409Z         "unit"
2026-06-08T23:22:37.9024032Z       ],
2026-06-08T23:22:37.9024627Z       "stages": {
2026-06-08T23:22:37.9025262Z         "doc": {
2026-06-08T23:22:37.9025908Z           "complete": true,
2026-06-08T23:22:37.9026632Z           "evidence": [
2026-06-08T23:22:37.9027385Z             {
2026-06-08T23:22:37.9028210Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-08T23:22:37.9029315Z               "line": 60
2026-06-08T23:22:37.9030131Z             }
2026-06-08T23:22:37.9030751Z           ]
2026-06-08T23:22:37.9031350Z         },
2026-06-08T23:22:37.9031952Z         "impl": {
2026-06-08T23:22:37.9032601Z           "complete": true,
2026-06-08T23:22:37.9032911Z           "evidence": [
2026-06-08T23:22:37.9033192Z             {
2026-06-08T23:22:37.9033541Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9033945Z               "line": 2044
2026-06-08T23:22:37.9034229Z             },
2026-06-08T23:22:37.9034509Z             {
2026-06-08T23:22:37.9034853Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9035148Z               "line": 3092
2026-06-08T23:22:37.9035430Z             },
2026-06-08T23:22:37.9035711Z             {
2026-06-08T23:22:37.9036050Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9036345Z               "line": 3125
2026-06-08T23:22:37.9036633Z             }
2026-06-08T23:22:37.9036925Z           ]
2026-06-08T23:22:37.9037291Z         },
2026-06-08T23:22:37.9037587Z         "int": {
2026-06-08T23:22:37.9037907Z           "complete": false,
2026-06-08T23:22:37.9038207Z           "evidence": []
2026-06-08T23:22:37.9038494Z         },
2026-06-08T23:22:37.9038785Z         "unit": {
2026-06-08T23:22:37.9039100Z           "complete": true,
2026-06-08T23:22:37.9039403Z           "evidence": [
2026-06-08T23:22:37.9039689Z             {
2026-06-08T23:22:37.9040052Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9040352Z               "line": 6390
2026-06-08T23:22:37.9040648Z             },
2026-06-08T23:22:37.9040934Z             {
2026-06-08T23:22:37.9041283Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9041593Z               "line": 6464
2026-06-08T23:22:37.9041881Z             }
2026-06-08T23:22:37.9042169Z           ]
2026-06-08T23:22:37.9042455Z         }
2026-06-08T23:22:37.9042738Z       }
2026-06-08T23:22:37.9043028Z     },
2026-06-08T23:22:37.9043314Z     {
2026-06-08T23:22:37.9043634Z       "id": "REQ-SUBNET-5",
2026-06-08T23:22:37.9047091Z       "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-08T23:22:37.9047433Z       "requiredStages": [
2026-06-08T23:22:37.9047714Z         "impl",
2026-06-08T23:22:37.9048004Z         "unit",
2026-06-08T23:22:37.9048290Z         "int"
2026-06-08T23:22:37.9048567Z       ],
2026-06-08T23:22:37.9048862Z       "stages": {
2026-06-08T23:22:37.9049144Z         "doc": {
2026-06-08T23:22:37.9049463Z           "complete": false,
2026-06-08T23:22:37.9049763Z           "evidence": []
2026-06-08T23:22:37.9050044Z         },
2026-06-08T23:22:37.9050340Z         "impl": {
2026-06-08T23:22:37.9050650Z           "complete": true,
2026-06-08T23:22:37.9050955Z           "evidence": [
2026-06-08T23:22:37.9051265Z             {
2026-06-08T23:22:37.9051665Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-08T23:22:37.9051966Z               "line": 126
2026-06-08T23:22:37.9052253Z             },
2026-06-08T23:22:37.9052536Z             {
2026-06-08T23:22:37.9052936Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-08T23:22:37.9053245Z               "line": 413
2026-06-08T23:22:37.9053527Z             },
2026-06-08T23:22:37.9053813Z             {
2026-06-08T23:22:37.9054208Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.9054509Z               "line": 74
2026-06-08T23:22:37.9054796Z             },
2026-06-08T23:22:37.9055075Z             {
2026-06-08T23:22:37.9055473Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.9055769Z               "line": 314
2026-06-08T23:22:37.9056061Z             },
2026-06-08T23:22:37.9056337Z             {
2026-06-08T23:22:37.9056879Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.9057272Z               "line": 31
2026-06-08T23:22:37.9057562Z             },
2026-06-08T23:22:37.9057847Z             {
2026-06-08T23:22:37.9058252Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.9058548Z               "line": 50
2026-06-08T23:22:37.9058824Z             },
2026-06-08T23:22:37.9059216Z             {
2026-06-08T23:22:37.9059635Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.9059927Z               "line": 69
2026-06-08T23:22:37.9060218Z             },
2026-06-08T23:22:37.9060497Z             {
2026-06-08T23:22:37.9060900Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.9061200Z               "line": 113
2026-06-08T23:22:37.9061487Z             },
2026-06-08T23:22:37.9061773Z             {
2026-06-08T23:22:37.9062178Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-08T23:22:37.9062479Z               "line": 25
2026-06-08T23:22:37.9062766Z             },
2026-06-08T23:22:37.9063044Z             {
2026-06-08T23:22:37.9063453Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-08T23:22:37.9063753Z               "line": 34
2026-06-08T23:22:37.9064040Z             },
2026-06-08T23:22:37.9064316Z             {
2026-06-08T23:22:37.9064773Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-08T23:22:37.9065078Z               "line": 17
2026-06-08T23:22:37.9065370Z             },
2026-06-08T23:22:37.9065654Z             {
2026-06-08T23:22:37.9066001Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9066301Z               "line": 2650
2026-06-08T23:22:37.9070207Z             },
2026-06-08T23:22:37.9070522Z             {
2026-06-08T23:22:37.9070869Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9071170Z               "line": 3050
2026-06-08T23:22:37.9071451Z             },
2026-06-08T23:22:37.9071728Z             {
2026-06-08T23:22:37.9072104Z               "path": "crates/spt/src/wansend.rs",
2026-06-08T23:22:37.9072400Z               "line": 419
2026-06-08T23:22:37.9072687Z             }
2026-06-08T23:22:37.9072968Z           ]
2026-06-08T23:22:37.9073249Z         },
2026-06-08T23:22:37.9073533Z         "int": {
2026-06-08T23:22:37.9073831Z           "complete": true,
2026-06-08T23:22:37.9074127Z           "evidence": [
2026-06-08T23:22:37.9074413Z             {
2026-06-08T23:22:37.9074827Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.9075119Z               "line": 813
2026-06-08T23:22:37.9075405Z             }
2026-06-08T23:22:37.9075686Z           ]
2026-06-08T23:22:37.9075962Z         },
2026-06-08T23:22:37.9076247Z         "unit": {
2026-06-08T23:22:37.9076556Z           "complete": true,
2026-06-08T23:22:37.9076852Z           "evidence": [
2026-06-08T23:22:37.9077223Z             {
2026-06-08T23:22:37.9077619Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.9077919Z               "line": 341
2026-06-08T23:22:37.9078200Z             },
2026-06-08T23:22:37.9078487Z             {
2026-06-08T23:22:37.9078898Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-08T23:22:37.9079194Z               "line": 151
2026-06-08T23:22:37.9079471Z             },
2026-06-08T23:22:37.9079752Z             {
2026-06-08T23:22:37.9080172Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-08T23:22:37.9080466Z               "line": 61
2026-06-08T23:22:37.9080749Z             },
2026-06-08T23:22:37.9081026Z             {
2026-06-08T23:22:37.9081425Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-08T23:22:37.9081720Z               "line": 111
2026-06-08T23:22:37.9082007Z             },
2026-06-08T23:22:37.9082288Z             {
2026-06-08T23:22:37.9082687Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-08T23:22:37.9082979Z               "line": 138
2026-06-08T23:22:37.9083256Z             },
2026-06-08T23:22:37.9083542Z             {
2026-06-08T23:22:37.9084069Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-08T23:22:37.9084377Z               "line": 148
2026-06-08T23:22:37.9084658Z             },
2026-06-08T23:22:37.9084941Z             {
2026-06-08T23:22:37.9085279Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9085564Z               "line": 6305
2026-06-08T23:22:37.9085951Z             }
2026-06-08T23:22:37.9086231Z           ]
2026-06-08T23:22:37.9086513Z         }
2026-06-08T23:22:37.9086794Z       }
2026-06-08T23:22:37.9087145Z     },
2026-06-08T23:22:37.9087421Z     {
2026-06-08T23:22:37.9087727Z       "id": "REQ-SUBNET-6",
2026-06-08T23:22:37.9090002Z       "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-08T23:22:37.9090312Z       "requiredStages": [
2026-06-08T23:22:37.9090603Z         "impl",
2026-06-08T23:22:37.9090890Z         "unit"
2026-06-08T23:22:37.9091166Z       ],
2026-06-08T23:22:37.9091451Z       "stages": {
2026-06-08T23:22:37.9091732Z         "doc": {
2026-06-08T23:22:37.9092046Z           "complete": false,
2026-06-08T23:22:37.9092347Z           "evidence": []
2026-06-08T23:22:37.9092624Z         },
2026-06-08T23:22:37.9092944Z         "impl": {
2026-06-08T23:22:37.9093239Z           "complete": true,
2026-06-08T23:22:37.9093544Z           "evidence": [
2026-06-08T23:22:37.9093821Z             {
2026-06-08T23:22:37.9094225Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.9094522Z               "line": 238
2026-06-08T23:22:37.9094801Z             },
2026-06-08T23:22:37.9095086Z             {
2026-06-08T23:22:37.9095434Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9095735Z               "line": 2865
2026-06-08T23:22:37.9096011Z             },
2026-06-08T23:22:37.9096291Z             {
2026-06-08T23:22:37.9096646Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9097023Z               "line": 2882
2026-06-08T23:22:37.9097301Z             },
2026-06-08T23:22:37.9097575Z             {
2026-06-08T23:22:37.9097919Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9098214Z               "line": 2935
2026-06-08T23:22:37.9098501Z             },
2026-06-08T23:22:37.9098786Z             {
2026-06-08T23:22:37.9099130Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9099425Z               "line": 2958
2026-06-08T23:22:37.9099706Z             }
2026-06-08T23:22:37.9099990Z           ]
2026-06-08T23:22:37.9100263Z         },
2026-06-08T23:22:37.9100548Z         "int": {
2026-06-08T23:22:37.9100868Z           "complete": false,
2026-06-08T23:22:37.9101164Z           "evidence": []
2026-06-08T23:22:37.9101445Z         },
2026-06-08T23:22:37.9101726Z         "unit": {
2026-06-08T23:22:37.9102035Z           "complete": true,
2026-06-08T23:22:37.9102327Z           "evidence": [
2026-06-08T23:22:37.9102616Z             {
2026-06-08T23:22:37.9102959Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9103250Z               "line": 6319
2026-06-08T23:22:37.9103536Z             },
2026-06-08T23:22:37.9103818Z             {
2026-06-08T23:22:37.9104161Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9104456Z               "line": 6338
2026-06-08T23:22:37.9104748Z             },
2026-06-08T23:22:37.9105030Z             {
2026-06-08T23:22:37.9105366Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9105670Z               "line": 6347
2026-06-08T23:22:37.9105946Z             }
2026-06-08T23:22:37.9106232Z           ]
2026-06-08T23:22:37.9106508Z         }
2026-06-08T23:22:37.9106785Z       }
2026-06-08T23:22:37.9107133Z     },
2026-06-08T23:22:37.9107410Z     {
2026-06-08T23:22:37.9107718Z       "id": "REQ-SUBNET-7",
2026-06-08T23:22:37.9112644Z       "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-08T23:22:37.9113110Z       "requiredStages": [
2026-06-08T23:22:37.9113401Z         "impl",
2026-06-08T23:22:37.9113687Z         "unit"
2026-06-08T23:22:37.9113964Z       ],
2026-06-08T23:22:37.9114250Z       "stages": {
2026-06-08T23:22:37.9114531Z         "doc": {
2026-06-08T23:22:37.9114835Z           "complete": false,
2026-06-08T23:22:37.9115136Z           "evidence": []
2026-06-08T23:22:37.9115417Z         },
2026-06-08T23:22:37.9115708Z         "impl": {
2026-06-08T23:22:37.9116010Z           "complete": true,
2026-06-08T23:22:37.9116330Z           "evidence": [
2026-06-08T23:22:37.9116616Z             {
2026-06-08T23:22:37.9117107Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-08T23:22:37.9117403Z               "line": 17
2026-06-08T23:22:37.9117693Z             },
2026-06-08T23:22:37.9117970Z             {
2026-06-08T23:22:37.9118369Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.9118677Z               "line": 103
2026-06-08T23:22:37.9118967Z             },
2026-06-08T23:22:37.9119244Z             {
2026-06-08T23:22:37.9119640Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-08T23:22:37.9119926Z               "line": 312
2026-06-08T23:22:37.9120203Z             },
2026-06-08T23:22:37.9120483Z             {
2026-06-08T23:22:37.9120869Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.9121167Z               "line": 345
2026-06-08T23:22:37.9121444Z             },
2026-06-08T23:22:37.9121711Z             {
2026-06-08T23:22:37.9122139Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9122436Z               "line": 160
2026-06-08T23:22:37.9122726Z             },
2026-06-08T23:22:37.9123003Z             {
2026-06-08T23:22:37.9123418Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9123713Z               "line": 417
2026-06-08T23:22:37.9123994Z             },
2026-06-08T23:22:37.9124281Z             {
2026-06-08T23:22:37.9124699Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9124995Z               "line": 590
2026-06-08T23:22:37.9125276Z             },
2026-06-08T23:22:37.9125567Z             {
2026-06-08T23:22:37.9125982Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9126277Z               "line": 630
2026-06-08T23:22:37.9126565Z             },
2026-06-08T23:22:37.9126843Z             {
2026-06-08T23:22:37.9127333Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9127633Z               "line": 686
2026-06-08T23:22:37.9127925Z             },
2026-06-08T23:22:37.9128206Z             {
2026-06-08T23:22:37.9128617Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.9128920Z               "line": 136
2026-06-08T23:22:37.9129198Z             },
2026-06-08T23:22:37.9129485Z             {
2026-06-08T23:22:37.9129886Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.9130186Z               "line": 139
2026-06-08T23:22:37.9130472Z             }
2026-06-08T23:22:37.9130749Z           ]
2026-06-08T23:22:37.9131025Z         },
2026-06-08T23:22:37.9131302Z         "int": {
2026-06-08T23:22:37.9131610Z           "complete": false,
2026-06-08T23:22:37.9131905Z           "evidence": []
2026-06-08T23:22:37.9132186Z         },
2026-06-08T23:22:37.9132462Z         "unit": {
2026-06-08T23:22:37.9132762Z           "complete": true,
2026-06-08T23:22:37.9133048Z           "evidence": [
2026-06-08T23:22:37.9133325Z             {
2026-06-08T23:22:37.9133827Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-08T23:22:37.9134127Z               "line": 136
2026-06-08T23:22:37.9134402Z             },
2026-06-08T23:22:37.9134673Z             {
2026-06-08T23:22:37.9135065Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-08T23:22:37.9135356Z               "line": 156
2026-06-08T23:22:37.9135714Z             },
2026-06-08T23:22:37.9136000Z             {
2026-06-08T23:22:37.9136419Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9136706Z               "line": 905
2026-06-08T23:22:37.9137061Z             },
2026-06-08T23:22:37.9137341Z             {
2026-06-08T23:22:37.9137746Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-08T23:22:37.9138046Z               "line": 927
2026-06-08T23:22:37.9138342Z             },
2026-06-08T23:22:37.9138629Z             {
2026-06-08T23:22:37.9139047Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-08T23:22:37.9139356Z               "line": 1418
2026-06-08T23:22:37.9139632Z             },
2026-06-08T23:22:37.9139922Z             {
2026-06-08T23:22:37.9140312Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-08T23:22:37.9140613Z               "line": 985
2026-06-08T23:22:37.9140894Z             }
2026-06-08T23:22:37.9141176Z           ]
2026-06-08T23:22:37.9141472Z         }
2026-06-08T23:22:37.9141748Z       }
2026-06-08T23:22:37.9142027Z     },
2026-06-08T23:22:37.9142306Z     {
2026-06-08T23:22:37.9142617Z       "id": "REQ-SUBNET-8",
2026-06-08T23:22:37.9145838Z       "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-08T23:22:37.9146163Z       "requiredStages": [
2026-06-08T23:22:37.9146464Z         "impl",
2026-06-08T23:22:37.9146750Z         "unit"
2026-06-08T23:22:37.9147112Z       ],
2026-06-08T23:22:37.9147421Z       "stages": {
2026-06-08T23:22:37.9147705Z         "doc": {
2026-06-08T23:22:37.9148029Z           "complete": false,
2026-06-08T23:22:37.9148316Z           "evidence": []
2026-06-08T23:22:37.9148601Z         },
2026-06-08T23:22:37.9148902Z         "impl": {
2026-06-08T23:22:37.9149203Z           "complete": true,
2026-06-08T23:22:37.9149504Z           "evidence": [
2026-06-08T23:22:37.9149775Z             {
2026-06-08T23:22:37.9150126Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9150415Z               "line": 2332
2026-06-08T23:22:37.9150696Z             },
2026-06-08T23:22:37.9150982Z             {
2026-06-08T23:22:37.9151325Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9151626Z               "line": 2361
2026-06-08T23:22:37.9151897Z             },
2026-06-08T23:22:37.9152184Z             {
2026-06-08T23:22:37.9152522Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9152824Z               "line": 2378
2026-06-08T23:22:37.9153106Z             },
2026-06-08T23:22:37.9153392Z             {
2026-06-08T23:22:37.9153735Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9154035Z               "line": 2746
2026-06-08T23:22:37.9154322Z             }
2026-06-08T23:22:37.9154609Z           ]
2026-06-08T23:22:37.9154890Z         },
2026-06-08T23:22:37.9155176Z         "int": {
2026-06-08T23:22:37.9155488Z           "complete": false,
2026-06-08T23:22:37.9155788Z           "evidence": []
2026-06-08T23:22:37.9156070Z         },
2026-06-08T23:22:37.9156361Z         "unit": {
2026-06-08T23:22:37.9156671Z           "complete": true,
2026-06-08T23:22:37.9157052Z           "evidence": [
2026-06-08T23:22:37.9157334Z             {
2026-06-08T23:22:37.9157682Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9157981Z               "line": 6495
2026-06-08T23:22:37.9158261Z             }
2026-06-08T23:22:37.9158650Z           ]
2026-06-08T23:22:37.9158937Z         }
2026-06-08T23:22:37.9159219Z       }
2026-06-08T23:22:37.9159500Z     },
2026-06-08T23:22:37.9159786Z     {
2026-06-08T23:22:37.9160097Z       "id": "REQ-TERM-1",
2026-06-08T23:22:37.9160644Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-08T23:22:37.9161052Z       "requiredStages": [
2026-06-08T23:22:37.9161348Z         "impl",
2026-06-08T23:22:37.9161643Z         "unit"
2026-06-08T23:22:37.9161920Z       ],
2026-06-08T23:22:37.9162210Z       "stages": {
2026-06-08T23:22:37.9162501Z         "doc": {
2026-06-08T23:22:37.9162806Z           "complete": false,
2026-06-08T23:22:37.9163115Z           "evidence": []
2026-06-08T23:22:37.9163394Z         },
2026-06-08T23:22:37.9163676Z         "impl": {
2026-06-08T23:22:37.9163981Z           "complete": true,
2026-06-08T23:22:37.9164281Z           "evidence": [
2026-06-08T23:22:37.9164572Z             {
2026-06-08T23:22:37.9164939Z               "path": "crates/spt-term/src/pty.rs",
2026-06-08T23:22:37.9165239Z               "line": 59
2026-06-08T23:22:37.9165517Z             },
2026-06-08T23:22:37.9165794Z             {
2026-06-08T23:22:37.9166159Z               "path": "crates/spt-term/src/pty.rs",
2026-06-08T23:22:37.9166464Z               "line": 171
2026-06-08T23:22:37.9166751Z             },
2026-06-08T23:22:37.9167117Z             {
2026-06-08T23:22:37.9167498Z               "path": "crates/spt-term/src/surface.rs",
2026-06-08T23:22:37.9167794Z               "line": 100
2026-06-08T23:22:37.9168081Z             }
2026-06-08T23:22:37.9168363Z           ]
2026-06-08T23:22:37.9168646Z         },
2026-06-08T23:22:37.9168935Z         "int": {
2026-06-08T23:22:37.9169240Z           "complete": false,
2026-06-08T23:22:37.9169550Z           "evidence": []
2026-06-08T23:22:37.9169841Z         },
2026-06-08T23:22:37.9170127Z         "unit": {
2026-06-08T23:22:37.9170437Z           "complete": true,
2026-06-08T23:22:37.9170732Z           "evidence": [
2026-06-08T23:22:37.9171032Z             {
2026-06-08T23:22:37.9171425Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-08T23:22:37.9171726Z               "line": 24
2026-06-08T23:22:37.9172003Z             },
2026-06-08T23:22:37.9172288Z             {
2026-06-08T23:22:37.9172680Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-08T23:22:37.9172990Z               "line": 56
2026-06-08T23:22:37.9173284Z             }
2026-06-08T23:22:37.9173567Z           ]
2026-06-08T23:22:37.9173851Z         }
2026-06-08T23:22:37.9174131Z       }
2026-06-08T23:22:37.9174407Z     },
2026-06-08T23:22:37.9174688Z     {
2026-06-08T23:22:37.9174993Z       "id": "REQ-TERM-2",
2026-06-08T23:22:37.9175575Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-08T23:22:37.9175885Z       "requiredStages": [
2026-06-08T23:22:37.9176170Z         "impl",
2026-06-08T23:22:37.9176453Z         "unit"
2026-06-08T23:22:37.9176738Z       ],
2026-06-08T23:22:37.9177092Z       "stages": {
2026-06-08T23:22:37.9177386Z         "doc": {
2026-06-08T23:22:37.9177701Z           "complete": false,
2026-06-08T23:22:37.9177997Z           "evidence": []
2026-06-08T23:22:37.9178284Z         },
2026-06-08T23:22:37.9178570Z         "impl": {
2026-06-08T23:22:37.9178880Z           "complete": true,
2026-06-08T23:22:37.9179178Z           "evidence": [
2026-06-08T23:22:37.9179470Z             {
2026-06-08T23:22:37.9179858Z               "path": "crates/spt-term/src/surface.rs",
2026-06-08T23:22:37.9180163Z               "line": 117
2026-06-08T23:22:37.9180464Z             },
2026-06-08T23:22:37.9180744Z             {
2026-06-08T23:22:37.9181127Z               "path": "crates/spt-term/src/surface.rs",
2026-06-08T23:22:37.9181422Z               "line": 127
2026-06-08T23:22:37.9181716Z             }
2026-06-08T23:22:37.9182009Z           ]
2026-06-08T23:22:37.9182286Z         },
2026-06-08T23:22:37.9182577Z         "int": {
2026-06-08T23:22:37.9182882Z           "complete": false,
2026-06-08T23:22:37.9183292Z           "evidence": []
2026-06-08T23:22:37.9183578Z         },
2026-06-08T23:22:37.9183869Z         "unit": {
2026-06-08T23:22:37.9184178Z           "complete": true,
2026-06-08T23:22:37.9184472Z           "evidence": [
2026-06-08T23:22:37.9184763Z             {
2026-06-08T23:22:37.9185153Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-08T23:22:37.9185544Z               "line": 46
2026-06-08T23:22:37.9185830Z             },
2026-06-08T23:22:37.9186121Z             {
2026-06-08T23:22:37.9186507Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-08T23:22:37.9186798Z               "line": 77
2026-06-08T23:22:37.9187159Z             }
2026-06-08T23:22:37.9187436Z           ]
2026-06-08T23:22:37.9187717Z         }
2026-06-08T23:22:37.9188000Z       }
2026-06-08T23:22:37.9188275Z     },
2026-06-08T23:22:37.9188558Z     {
2026-06-08T23:22:37.9188858Z       "id": "REQ-TERM-3",
2026-06-08T23:22:37.9189314Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-08T23:22:37.9189633Z       "requiredStages": [
2026-06-08T23:22:37.9189922Z         "impl",
2026-06-08T23:22:37.9190209Z         "unit"
2026-06-08T23:22:37.9190494Z       ],
2026-06-08T23:22:37.9190795Z       "stages": {
2026-06-08T23:22:37.9191082Z         "doc": {
2026-06-08T23:22:37.9191397Z           "complete": false,
2026-06-08T23:22:37.9191697Z           "evidence": []
2026-06-08T23:22:37.9191988Z         },
2026-06-08T23:22:37.9192276Z         "impl": {
2026-06-08T23:22:37.9192588Z           "complete": true,
2026-06-08T23:22:37.9192893Z           "evidence": [
2026-06-08T23:22:37.9193175Z             {
2026-06-08T23:22:37.9193556Z               "path": "crates/spt-term/src/stream.rs",
2026-06-08T23:22:37.9193852Z               "line": 71
2026-06-08T23:22:37.9194138Z             }
2026-06-08T23:22:37.9194419Z           ]
2026-06-08T23:22:37.9194705Z         },
2026-06-08T23:22:37.9194994Z         "int": {
2026-06-08T23:22:37.9195304Z           "complete": false,
2026-06-08T23:22:37.9195614Z           "evidence": []
2026-06-08T23:22:37.9195900Z         },
2026-06-08T23:22:37.9196196Z         "unit": {
2026-06-08T23:22:37.9196506Z           "complete": true,
2026-06-08T23:22:37.9196806Z           "evidence": [
2026-06-08T23:22:37.9197178Z             {
2026-06-08T23:22:37.9197568Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-08T23:22:37.9197868Z               "line": 37
2026-06-08T23:22:37.9198160Z             },
2026-06-08T23:22:37.9198445Z             {
2026-06-08T23:22:37.9198817Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-08T23:22:37.9199113Z               "line": 67
2026-06-08T23:22:37.9199394Z             }
2026-06-08T23:22:37.9199671Z           ]
2026-06-08T23:22:37.9199957Z         }
2026-06-08T23:22:37.9200236Z       }
2026-06-08T23:22:37.9200506Z     },
2026-06-08T23:22:37.9200779Z     {
2026-06-08T23:22:37.9201083Z       "id": "REQ-TERM-4",
2026-06-08T23:22:37.9202238Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-08T23:22:37.9202548Z       "requiredStages": [
2026-06-08T23:22:37.9202836Z         "impl",
2026-06-08T23:22:37.9203120Z         "unit",
2026-06-08T23:22:37.9203406Z         "int"
2026-06-08T23:22:37.9203683Z       ],
2026-06-08T23:22:37.9203974Z       "stages": {
2026-06-08T23:22:37.9204274Z         "doc": {
2026-06-08T23:22:37.9204584Z           "complete": true,
2026-06-08T23:22:37.9204885Z           "evidence": [
2026-06-08T23:22:37.9205168Z             {
2026-06-08T23:22:37.9205504Z               "path": "docs/MANIFEST.md",
2026-06-08T23:22:37.9205792Z               "line": 115
2026-06-08T23:22:37.9206078Z             }
2026-06-08T23:22:37.9206364Z           ]
2026-06-08T23:22:37.9206650Z         },
2026-06-08T23:22:37.9207037Z         "impl": {
2026-06-08T23:22:37.9207352Z           "complete": true,
2026-06-08T23:22:37.9207652Z           "evidence": [
2026-06-08T23:22:37.9207938Z             {
2026-06-08T23:22:37.9208419Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-08T23:22:37.9208734Z               "line": 507
2026-06-08T23:22:37.9209015Z             },
2026-06-08T23:22:37.9209306Z             {
2026-06-08T23:22:37.9209706Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9210007Z               "line": 41
2026-06-08T23:22:37.9210288Z             },
2026-06-08T23:22:37.9210684Z             {
2026-06-08T23:22:37.9211080Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9211381Z               "line": 91
2026-06-08T23:22:37.9211673Z             },
2026-06-08T23:22:37.9211953Z             {
2026-06-08T23:22:37.9212349Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9212644Z               "line": 152
2026-06-08T23:22:37.9212930Z             },
2026-06-08T23:22:37.9213213Z             {
2026-06-08T23:22:37.9213605Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9213905Z               "line": 221
2026-06-08T23:22:37.9214186Z             },
2026-06-08T23:22:37.9214473Z             {
2026-06-08T23:22:37.9214873Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9215173Z               "line": 20
2026-06-08T23:22:37.9215464Z             },
2026-06-08T23:22:37.9215742Z             {
2026-06-08T23:22:37.9216143Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9216444Z               "line": 222
2026-06-08T23:22:37.9216734Z             },
2026-06-08T23:22:37.9217116Z             {
2026-06-08T23:22:37.9217525Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9217830Z               "line": 242
2026-06-08T23:22:37.9218111Z             },
2026-06-08T23:22:37.9218397Z             {
2026-06-08T23:22:37.9218797Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.9219098Z               "line": 625
2026-06-08T23:22:37.9219383Z             },
2026-06-08T23:22:37.9219666Z             {
2026-06-08T23:22:37.9220046Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9220352Z               "line": 162
2026-06-08T23:22:37.9220642Z             },
2026-06-08T23:22:37.9220929Z             {
2026-06-08T23:22:37.9221305Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9221607Z               "line": 206
2026-06-08T23:22:37.9221894Z             },
2026-06-08T23:22:37.9222190Z             {
2026-06-08T23:22:37.9222566Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9222871Z               "line": 233
2026-06-08T23:22:37.9223152Z             },
2026-06-08T23:22:37.9223444Z             {
2026-06-08T23:22:37.9223791Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9224090Z               "line": 796
2026-06-08T23:22:37.9224380Z             }
2026-06-08T23:22:37.9224661Z           ]
2026-06-08T23:22:37.9224951Z         },
2026-06-08T23:22:37.9225237Z         "int": {
2026-06-08T23:22:37.9225537Z           "complete": true,
2026-06-08T23:22:37.9225838Z           "evidence": [
2026-06-08T23:22:37.9226120Z             {
2026-06-08T23:22:37.9226509Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-08T23:22:37.9226802Z               "line": 18
2026-06-08T23:22:37.9227155Z             }
2026-06-08T23:22:37.9227436Z           ]
2026-06-08T23:22:37.9227723Z         },
2026-06-08T23:22:37.9228000Z         "unit": {
2026-06-08T23:22:37.9228318Z           "complete": true,
2026-06-08T23:22:37.9228614Z           "evidence": [
2026-06-08T23:22:37.9228897Z             {
2026-06-08T23:22:37.9229286Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9229592Z               "line": 259
2026-06-08T23:22:37.9229883Z             },
2026-06-08T23:22:37.9230173Z             {
2026-06-08T23:22:37.9230564Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9230869Z               "line": 277
2026-06-08T23:22:37.9231150Z             },
2026-06-08T23:22:37.9231442Z             {
2026-06-08T23:22:37.9231926Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9232234Z               "line": 289
2026-06-08T23:22:37.9232525Z             },
2026-06-08T23:22:37.9232811Z             {
2026-06-08T23:22:37.9233202Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9233502Z               "line": 304
2026-06-08T23:22:37.9233889Z             },
2026-06-08T23:22:37.9234165Z             {
2026-06-08T23:22:37.9234560Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9234858Z               "line": 320
2026-06-08T23:22:37.9235138Z             },
2026-06-08T23:22:37.9235425Z             {
2026-06-08T23:22:37.9235807Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9236107Z               "line": 346
2026-06-08T23:22:37.9236389Z             },
2026-06-08T23:22:37.9236675Z             {
2026-06-08T23:22:37.9237137Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9237434Z               "line": 361
2026-06-08T23:22:37.9237725Z             },
2026-06-08T23:22:37.9238006Z             {
2026-06-08T23:22:37.9238393Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-08T23:22:37.9238688Z               "line": 391
2026-06-08T23:22:37.9238969Z             },
2026-06-08T23:22:37.9239251Z             {
2026-06-08T23:22:37.9239657Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9239965Z               "line": 365
2026-06-08T23:22:37.9240246Z             },
2026-06-08T23:22:37.9240532Z             {
2026-06-08T23:22:37.9240928Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9241234Z               "line": 382
2026-06-08T23:22:37.9241520Z             },
2026-06-08T23:22:37.9241806Z             {
2026-06-08T23:22:37.9242202Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9242500Z               "line": 411
2026-06-08T23:22:37.9242794Z             },
2026-06-08T23:22:37.9243080Z             {
2026-06-08T23:22:37.9243476Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-08T23:22:37.9243777Z               "line": 428
2026-06-08T23:22:37.9244062Z             },
2026-06-08T23:22:37.9244349Z             {
2026-06-08T23:22:37.9244740Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.9245043Z               "line": 828
2026-06-08T23:22:37.9245342Z             },
2026-06-08T23:22:37.9245623Z             {
2026-06-08T23:22:37.9246028Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.9246319Z               "line": 835
2026-06-08T23:22:37.9246610Z             },
2026-06-08T23:22:37.9246892Z             {
2026-06-08T23:22:37.9247379Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.9247682Z               "line": 850
2026-06-08T23:22:37.9247966Z             },
2026-06-08T23:22:37.9248251Z             {
2026-06-08T23:22:37.9248624Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9248934Z               "line": 420
2026-06-08T23:22:37.9249210Z             },
2026-06-08T23:22:37.9249492Z             {
2026-06-08T23:22:37.9249859Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9250150Z               "line": 458
2026-06-08T23:22:37.9250435Z             },
2026-06-08T23:22:37.9250712Z             {
2026-06-08T23:22:37.9251088Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9251379Z               "line": 471
2026-06-08T23:22:37.9251660Z             },
2026-06-08T23:22:37.9251938Z             {
2026-06-08T23:22:37.9252295Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9252586Z               "line": 497
2026-06-08T23:22:37.9252868Z             },
2026-06-08T23:22:37.9253142Z             {
2026-06-08T23:22:37.9253503Z               "path": "crates/spt-term/src/digest.rs",
2026-06-08T23:22:37.9253804Z               "line": 524
2026-06-08T23:22:37.9254094Z             },
2026-06-08T23:22:37.9254370Z             {
2026-06-08T23:22:37.9254851Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-08T23:22:37.9255148Z               "line": 32
2026-06-08T23:22:37.9255440Z             },
2026-06-08T23:22:37.9255714Z             {
2026-06-08T23:22:37.9256065Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9256366Z               "line": 6077
2026-06-08T23:22:37.9256742Z             }
2026-06-08T23:22:37.9257099Z           ]
2026-06-08T23:22:37.9257371Z         }
2026-06-08T23:22:37.9257654Z       }
2026-06-08T23:22:37.9257930Z     },
2026-06-08T23:22:37.9258209Z     {
2026-06-08T23:22:37.9258516Z       "id": "REQ-UPD-1",
2026-06-08T23:22:37.9258898Z       "title": "Peer-propagated update over P2P",
2026-06-08T23:22:37.9259213Z       "requiredStages": [
2026-06-08T23:22:37.9259494Z         "impl",
2026-06-08T23:22:37.9259789Z         "unit",
2026-06-08T23:22:37.9260076Z         "int"
2026-06-08T23:22:37.9260362Z       ],
2026-06-08T23:22:37.9260662Z       "stages": {
2026-06-08T23:22:37.9260943Z         "doc": {
2026-06-08T23:22:37.9261263Z           "complete": false,
2026-06-08T23:22:37.9261558Z           "evidence": []
2026-06-08T23:22:37.9261844Z         },
2026-06-08T23:22:37.9262131Z         "impl": {
2026-06-08T23:22:37.9262445Z           "complete": true,
2026-06-08T23:22:37.9262751Z           "evidence": [
2026-06-08T23:22:37.9263032Z             {
2026-06-08T23:22:37.9263447Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9263736Z               "line": 28
2026-06-08T23:22:37.9264025Z             },
2026-06-08T23:22:37.9264306Z             {
2026-06-08T23:22:37.9264712Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9265012Z               "line": 103
2026-06-08T23:22:37.9265299Z             },
2026-06-08T23:22:37.9265579Z             {
2026-06-08T23:22:37.9265990Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9266293Z               "line": 342
2026-06-08T23:22:37.9266577Z             },
2026-06-08T23:22:37.9266863Z             {
2026-06-08T23:22:37.9267345Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9267654Z               "line": 22
2026-06-08T23:22:37.9267936Z             },
2026-06-08T23:22:37.9268218Z             {
2026-06-08T23:22:37.9268599Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9268911Z               "line": 117
2026-06-08T23:22:37.9269197Z             },
2026-06-08T23:22:37.9269483Z             {
2026-06-08T23:22:37.9269873Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9270174Z               "line": 150
2026-06-08T23:22:37.9270456Z             },
2026-06-08T23:22:37.9270742Z             {
2026-06-08T23:22:37.9271137Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9271443Z               "line": 207
2026-06-08T23:22:37.9271732Z             },
2026-06-08T23:22:37.9272008Z             {
2026-06-08T23:22:37.9272404Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9272700Z               "line": 37
2026-06-08T23:22:37.9272992Z             }
2026-06-08T23:22:37.9273282Z           ]
2026-06-08T23:22:37.9273563Z         },
2026-06-08T23:22:37.9273849Z         "int": {
2026-06-08T23:22:37.9274157Z           "complete": true,
2026-06-08T23:22:37.9274465Z           "evidence": [
2026-06-08T23:22:37.9274751Z             {
2026-06-08T23:22:37.9275166Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-08T23:22:37.9275471Z               "line": 207
2026-06-08T23:22:37.9275753Z             },
2026-06-08T23:22:37.9276039Z             {
2026-06-08T23:22:37.9276435Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-08T23:22:37.9276739Z               "line": 985
2026-06-08T23:22:37.9277089Z             }
2026-06-08T23:22:37.9277375Z           ]
2026-06-08T23:22:37.9277656Z         },
2026-06-08T23:22:37.9277948Z         "unit": {
2026-06-08T23:22:37.9278258Z           "complete": true,
2026-06-08T23:22:37.9278658Z           "evidence": [
2026-06-08T23:22:37.9278953Z             {
2026-06-08T23:22:37.9279338Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9279636Z               "line": 310
2026-06-08T23:22:37.9279923Z             },
2026-06-08T23:22:37.9280199Z             {
2026-06-08T23:22:37.9280591Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9280978Z               "line": 333
2026-06-08T23:22:37.9281269Z             },
2026-06-08T23:22:37.9281549Z             {
2026-06-08T23:22:37.9281965Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.9282268Z               "line": 275
2026-06-08T23:22:37.9282550Z             },
2026-06-08T23:22:37.9285584Z             {
2026-06-08T23:22:37.9286012Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9286327Z               "line": 124
2026-06-08T23:22:37.9286604Z             },
2026-06-08T23:22:37.9286890Z             {
2026-06-08T23:22:37.9287385Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9287683Z               "line": 200
2026-06-08T23:22:37.9287969Z             }
2026-06-08T23:22:37.9288254Z           ]
2026-06-08T23:22:37.9288536Z         }
2026-06-08T23:22:37.9288813Z       }
2026-06-08T23:22:37.9289090Z     },
2026-06-08T23:22:37.9289372Z     {
2026-06-08T23:22:37.9289672Z       "id": "REQ-UPD-2",
2026-06-08T23:22:37.9290154Z       "title": "All binaries signature-verified before handoff",
2026-06-08T23:22:37.9290459Z       "requiredStages": [
2026-06-08T23:22:37.9290741Z         "impl",
2026-06-08T23:22:37.9291027Z         "unit"
2026-06-08T23:22:37.9291309Z       ],
2026-06-08T23:22:37.9291600Z       "stages": {
2026-06-08T23:22:37.9291881Z         "doc": {
2026-06-08T23:22:37.9292191Z           "complete": false,
2026-06-08T23:22:37.9292478Z           "evidence": []
2026-06-08T23:22:37.9292756Z         },
2026-06-08T23:22:37.9293038Z         "impl": {
2026-06-08T23:22:37.9293333Z           "complete": true,
2026-06-08T23:22:37.9293629Z           "evidence": [
2026-06-08T23:22:37.9293916Z             {
2026-06-08T23:22:37.9294330Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9294630Z               "line": 343
2026-06-08T23:22:37.9294916Z             },
2026-06-08T23:22:37.9295193Z             {
2026-06-08T23:22:37.9295595Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9295895Z               "line": 469
2026-06-08T23:22:37.9296182Z             },
2026-06-08T23:22:37.9296468Z             {
2026-06-08T23:22:37.9296858Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9297226Z               "line": 29
2026-06-08T23:22:37.9297517Z             },
2026-06-08T23:22:37.9297793Z             {
2026-06-08T23:22:37.9298180Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9298481Z               "line": 258
2026-06-08T23:22:37.9298767Z             },
2026-06-08T23:22:37.9299044Z             {
2026-06-08T23:22:37.9299440Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9299740Z               "line": 275
2026-06-08T23:22:37.9300021Z             },
2026-06-08T23:22:37.9300307Z             {
2026-06-08T23:22:37.9300700Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9300996Z               "line": 395
2026-06-08T23:22:37.9301282Z             },
2026-06-08T23:22:37.9301564Z             {
2026-06-08T23:22:37.9301954Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9302254Z               "line": 527
2026-06-08T23:22:37.9302541Z             },
2026-06-08T23:22:37.9302818Z             {
2026-06-08T23:22:37.9303208Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9303499Z               "line": 155
2026-06-08T23:22:37.9303785Z             }
2026-06-08T23:22:37.9304071Z           ]
2026-06-08T23:22:37.9304343Z         },
2026-06-08T23:22:37.9304633Z         "int": {
2026-06-08T23:22:37.9304933Z           "complete": false,
2026-06-08T23:22:37.9305378Z           "evidence": []
2026-06-08T23:22:37.9305664Z         },
2026-06-08T23:22:37.9305957Z         "unit": {
2026-06-08T23:22:37.9306265Z           "complete": true,
2026-06-08T23:22:37.9306561Z           "evidence": [
2026-06-08T23:22:37.9306828Z             {
2026-06-08T23:22:37.9307296Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9307748Z               "line": 682
2026-06-08T23:22:37.9308020Z             },
2026-06-08T23:22:37.9308301Z             {
2026-06-08T23:22:37.9308689Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9308979Z               "line": 743
2026-06-08T23:22:37.9309257Z             },
2026-06-08T23:22:37.9309533Z             {
2026-06-08T23:22:37.9309924Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9310224Z               "line": 757
2026-06-08T23:22:37.9310501Z             },
2026-06-08T23:22:37.9310783Z             {
2026-06-08T23:22:37.9311170Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9311476Z               "line": 773
2026-06-08T23:22:37.9311752Z             },
2026-06-08T23:22:37.9312029Z             {
2026-06-08T23:22:37.9312419Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9312715Z               "line": 864
2026-06-08T23:22:37.9313002Z             },
2026-06-08T23:22:37.9313283Z             {
2026-06-08T23:22:37.9313674Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9313968Z               "line": 412
2026-06-08T23:22:37.9314244Z             },
2026-06-08T23:22:37.9314521Z             {
2026-06-08T23:22:37.9314903Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9315208Z               "line": 425
2026-06-08T23:22:37.9315484Z             },
2026-06-08T23:22:37.9315765Z             {
2026-06-08T23:22:37.9316182Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.9316475Z               "line": 408
2026-06-08T23:22:37.9316758Z             }
2026-06-08T23:22:37.9317121Z           ]
2026-06-08T23:22:37.9317402Z         }
2026-06-08T23:22:37.9317678Z       }
2026-06-08T23:22:37.9317946Z     },
2026-06-08T23:22:37.9318218Z     {
2026-06-08T23:22:37.9318514Z       "id": "REQ-UPD-3",
2026-06-08T23:22:37.9319070Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-08T23:22:37.9319387Z       "requiredStages": [
2026-06-08T23:22:37.9319674Z         "impl",
2026-06-08T23:22:37.9319959Z         "unit",
2026-06-08T23:22:37.9320236Z         "int"
2026-06-08T23:22:37.9320508Z       ],
2026-06-08T23:22:37.9320793Z       "stages": {
2026-06-08T23:22:37.9321071Z         "doc": {
2026-06-08T23:22:37.9321376Z           "complete": false,
2026-06-08T23:22:37.9321671Z           "evidence": []
2026-06-08T23:22:37.9321944Z         },
2026-06-08T23:22:37.9322231Z         "impl": {
2026-06-08T23:22:37.9322531Z           "complete": true,
2026-06-08T23:22:37.9322817Z           "evidence": [
2026-06-08T23:22:37.9323103Z             {
2026-06-08T23:22:37.9323505Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9323799Z               "line": 39
2026-06-08T23:22:37.9324081Z             },
2026-06-08T23:22:37.9324361Z             {
2026-06-08T23:22:37.9324756Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9325052Z               "line": 71
2026-06-08T23:22:37.9325334Z             },
2026-06-08T23:22:37.9325611Z             {
2026-06-08T23:22:37.9325997Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9326283Z               "line": 26
2026-06-08T23:22:37.9326564Z             },
2026-06-08T23:22:37.9326836Z             {
2026-06-08T23:22:37.9327308Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9327599Z               "line": 114
2026-06-08T23:22:37.9327877Z             },
2026-06-08T23:22:37.9328168Z             {
2026-06-08T23:22:37.9328660Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9328945Z               "line": 246
2026-06-08T23:22:37.9329226Z             },
2026-06-08T23:22:37.9329502Z             {
2026-06-08T23:22:37.9329837Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9330128Z               "line": 1547
2026-06-08T23:22:37.9330406Z             }
2026-06-08T23:22:37.9330673Z           ]
2026-06-08T23:22:37.9331050Z         },
2026-06-08T23:22:37.9331330Z         "int": {
2026-06-08T23:22:37.9331636Z           "complete": true,
2026-06-08T23:22:37.9331932Z           "evidence": [
2026-06-08T23:22:37.9332211Z             {
2026-06-08T23:22:37.9332648Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-08T23:22:37.9332935Z               "line": 23
2026-06-08T23:22:37.9333211Z             }
2026-06-08T23:22:37.9333483Z           ]
2026-06-08T23:22:37.9333760Z         },
2026-06-08T23:22:37.9334040Z         "unit": {
2026-06-08T23:22:37.9334350Z           "complete": true,
2026-06-08T23:22:37.9334651Z           "evidence": [
2026-06-08T23:22:37.9334931Z             {
2026-06-08T23:22:37.9335331Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9335622Z               "line": 393
2026-06-08T23:22:37.9335898Z             },
2026-06-08T23:22:37.9336180Z             {
2026-06-08T23:22:37.9336581Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9336881Z               "line": 461
2026-06-08T23:22:37.9337239Z             },
2026-06-08T23:22:37.9337514Z             {
2026-06-08T23:22:37.9337898Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9338193Z               "line": 271
2026-06-08T23:22:37.9338475Z             },
2026-06-08T23:22:37.9338752Z             {
2026-06-08T23:22:37.9339137Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9339424Z               "line": 295
2026-06-08T23:22:37.9339705Z             },
2026-06-08T23:22:37.9339981Z             {
2026-06-08T23:22:37.9340374Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9340675Z               "line": 316
2026-06-08T23:22:37.9340952Z             },
2026-06-08T23:22:37.9341233Z             {
2026-06-08T23:22:37.9341614Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9341905Z               "line": 332
2026-06-08T23:22:37.9342173Z             }
2026-06-08T23:22:37.9342459Z           ]
2026-06-08T23:22:37.9342734Z         }
2026-06-08T23:22:37.9343003Z       }
2026-06-08T23:22:37.9343269Z     },
2026-06-08T23:22:37.9343528Z     {
2026-06-08T23:22:37.9343823Z       "id": "REQ-UPD-4",
2026-06-08T23:22:37.9344406Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-08T23:22:37.9344720Z       "requiredStages": [
2026-06-08T23:22:37.9345007Z         "impl",
2026-06-08T23:22:37.9345288Z         "unit"
2026-06-08T23:22:37.9345566Z       ],
2026-06-08T23:22:37.9345853Z       "stages": {
2026-06-08T23:22:37.9346139Z         "doc": {
2026-06-08T23:22:37.9346449Z           "complete": false,
2026-06-08T23:22:37.9346750Z           "evidence": []
2026-06-08T23:22:37.9347102Z         },
2026-06-08T23:22:37.9347394Z         "impl": {
2026-06-08T23:22:37.9347703Z           "complete": true,
2026-06-08T23:22:37.9347993Z           "evidence": [
2026-06-08T23:22:37.9348274Z             {
2026-06-08T23:22:37.9348672Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9348978Z               "line": 40
2026-06-08T23:22:37.9349264Z             },
2026-06-08T23:22:37.9349546Z             {
2026-06-08T23:22:37.9349941Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9350232Z               "line": 72
2026-06-08T23:22:37.9350513Z             },
2026-06-08T23:22:37.9350793Z             {
2026-06-08T23:22:37.9351183Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9351474Z               "line": 23
2026-06-08T23:22:37.9351750Z             },
2026-06-08T23:22:37.9352032Z             {
2026-06-08T23:22:37.9352522Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9352817Z               "line": 56
2026-06-08T23:22:37.9353099Z             },
2026-06-08T23:22:37.9353379Z             {
2026-06-08T23:22:37.9353768Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9354060Z               "line": 77
2026-06-08T23:22:37.9354440Z             },
2026-06-08T23:22:37.9354717Z             {
2026-06-08T23:22:37.9355117Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-08T23:22:37.9355413Z               "line": 184
2026-06-08T23:22:37.9355689Z             },
2026-06-08T23:22:37.9355966Z             {
2026-06-08T23:22:37.9356338Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-08T23:22:37.9356629Z               "line": 101
2026-06-08T23:22:37.9356905Z             },
2026-06-08T23:22:37.9357262Z             {
2026-06-08T23:22:37.9357630Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.9357929Z               "line": 170
2026-06-08T23:22:37.9358211Z             },
2026-06-08T23:22:37.9358489Z             {
2026-06-08T23:22:37.9358834Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9359129Z               "line": 1546
2026-06-08T23:22:37.9359411Z             }
2026-06-08T23:22:37.9359691Z           ]
2026-06-08T23:22:37.9359967Z         },
2026-06-08T23:22:37.9360258Z         "int": {
2026-06-08T23:22:37.9360558Z           "complete": false,
2026-06-08T23:22:37.9360863Z           "evidence": []
2026-06-08T23:22:37.9361139Z         },
2026-06-08T23:22:37.9361419Z         "unit": {
2026-06-08T23:22:37.9361719Z           "complete": true,
2026-06-08T23:22:37.9362019Z           "evidence": [
2026-06-08T23:22:37.9362301Z             {
2026-06-08T23:22:37.9362701Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9362996Z               "line": 389
2026-06-08T23:22:37.9363269Z             },
2026-06-08T23:22:37.9363551Z             {
2026-06-08T23:22:37.9363957Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9364248Z               "line": 514
2026-06-08T23:22:37.9364525Z             },
2026-06-08T23:22:37.9364800Z             {
2026-06-08T23:22:37.9365182Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-08T23:22:37.9365474Z               "line": 384
2026-06-08T23:22:37.9365755Z             },
2026-06-08T23:22:37.9366035Z             {
2026-06-08T23:22:37.9366423Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9366711Z               "line": 102
2026-06-08T23:22:37.9367065Z             },
2026-06-08T23:22:37.9367355Z             {
2026-06-08T23:22:37.9367742Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9368038Z               "line": 123
2026-06-08T23:22:37.9368324Z             },
2026-06-08T23:22:37.9368600Z             {
2026-06-08T23:22:37.9368978Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-08T23:22:37.9369266Z               "line": 142
2026-06-08T23:22:37.9369554Z             },
2026-06-08T23:22:37.9369831Z             {
2026-06-08T23:22:37.9370194Z               "path": "crates/spt-store/src/info.rs",
2026-06-08T23:22:37.9370484Z               "line": 386
2026-06-08T23:22:37.9370752Z             },
2026-06-08T23:22:37.9371028Z             {
2026-06-08T23:22:37.9371401Z               "path": "crates/spt-store/src/perch.rs",
2026-06-08T23:22:37.9371690Z               "line": 546
2026-06-08T23:22:37.9371966Z             },
2026-06-08T23:22:37.9372241Z             {
2026-06-08T23:22:37.9372575Z               "path": "crates/spt/src/cli.rs",
2026-06-08T23:22:37.9372866Z               "line": 4926
2026-06-08T23:22:37.9373138Z             }
2026-06-08T23:22:37.9373409Z           ]
2026-06-08T23:22:37.9373685Z         }
2026-06-08T23:22:37.9373953Z       }
2026-06-08T23:22:37.9374233Z     },
2026-06-08T23:22:37.9374518Z     {
2026-06-08T23:22:37.9374813Z       "id": "REQ-UPD-5",
2026-06-08T23:22:37.9375370Z       "title": "spt-core ripple-updates registered adapters",
2026-06-08T23:22:37.9375685Z       "requiredStages": [
2026-06-08T23:22:37.9375971Z         "impl",
2026-06-08T23:22:37.9376248Z         "unit"
2026-06-08T23:22:37.9376524Z       ],
2026-06-08T23:22:37.9376814Z       "stages": {
2026-06-08T23:22:37.9377172Z         "doc": {
2026-06-08T23:22:37.9377491Z           "complete": false,
2026-06-08T23:22:37.9377887Z           "evidence": []
2026-06-08T23:22:37.9378168Z         },
2026-06-08T23:22:37.9378449Z         "impl": {
2026-06-08T23:22:37.9378750Z           "complete": true,
2026-06-08T23:22:37.9379045Z           "evidence": [
2026-06-08T23:22:37.9379322Z             {
2026-06-08T23:22:37.9379750Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9380048Z               "line": 27
2026-06-08T23:22:37.9380335Z             },
2026-06-08T23:22:37.9380606Z             {
2026-06-08T23:22:37.9381030Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9381326Z               "line": 82
2026-06-08T23:22:37.9381607Z             },
2026-06-08T23:22:37.9381893Z             {
2026-06-08T23:22:37.9382312Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9382610Z               "line": 134
2026-06-08T23:22:37.9382887Z             },
2026-06-08T23:22:37.9383163Z             {
2026-06-08T23:22:37.9383554Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9383855Z               "line": 479
2026-06-08T23:22:37.9384140Z             },
2026-06-08T23:22:37.9384418Z             {
2026-06-08T23:22:37.9384803Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9385092Z               "line": 515
2026-06-08T23:22:37.9385373Z             }
2026-06-08T23:22:37.9385645Z           ]
2026-06-08T23:22:37.9385916Z         },
2026-06-08T23:22:37.9386197Z         "int": {
2026-06-08T23:22:37.9386498Z           "complete": false,
2026-06-08T23:22:37.9386798Z           "evidence": []
2026-06-08T23:22:37.9387142Z         },
2026-06-08T23:22:37.9387422Z         "unit": {
2026-06-08T23:22:37.9387727Z           "complete": true,
2026-06-08T23:22:37.9388023Z           "evidence": [
2026-06-08T23:22:37.9388304Z             {
2026-06-08T23:22:37.9388723Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9389028Z               "line": 231
2026-06-08T23:22:37.9389310Z             },
2026-06-08T23:22:37.9389596Z             {
2026-06-08T23:22:37.9390011Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9390310Z               "line": 245
2026-06-08T23:22:37.9390594Z             },
2026-06-08T23:22:37.9390876Z             {
2026-06-08T23:22:37.9391314Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9391605Z               "line": 259
2026-06-08T23:22:37.9391891Z             },
2026-06-08T23:22:37.9392187Z             {
2026-06-08T23:22:37.9392621Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9392925Z               "line": 273
2026-06-08T23:22:37.9393208Z             },
2026-06-08T23:22:37.9393490Z             {
2026-06-08T23:22:37.9393924Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-08T23:22:37.9394219Z               "line": 307
2026-06-08T23:22:37.9394505Z             },
2026-06-08T23:22:37.9394787Z             {
2026-06-08T23:22:37.9395188Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-08T23:22:37.9395482Z               "line": 792
2026-06-08T23:22:37.9395756Z             }
2026-06-08T23:22:37.9396037Z           ]
2026-06-08T23:22:37.9396315Z         }
2026-06-08T23:22:37.9396600Z       }
2026-06-08T23:22:37.9396873Z     },
2026-06-08T23:22:37.9397230Z     {
2026-06-08T23:22:37.9397536Z       "id": "REQ-UPD-6",
2026-06-08T23:22:37.9400339Z       "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-08T23:22:37.9400663Z       "requiredStages": [
2026-06-08T23:22:37.9400942Z         "doc",
2026-06-08T23:22:37.9401230Z         "impl",
2026-06-08T23:22:37.9401512Z         "unit",
2026-06-08T23:22:37.9401793Z         "int"
2026-06-08T23:22:37.9402070Z       ],
2026-06-08T23:22:37.9402456Z       "stages": {
2026-06-08T23:22:37.9402737Z         "doc": {
2026-06-08T23:22:37.9403042Z           "complete": true,
2026-06-08T23:22:37.9403342Z           "evidence": [
2026-06-08T23:22:37.9403623Z             {
2026-06-08T23:22:37.9404007Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-08T23:22:37.9404298Z               "line": 3
2026-06-08T23:22:37.9404589Z             },
2026-06-08T23:22:37.9404871Z             {
2026-06-08T23:22:37.9405223Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-08T23:22:37.9405510Z               "line": 3
2026-06-08T23:22:37.9405797Z             },
2026-06-08T23:22:37.9406085Z             {
2026-06-08T23:22:37.9406560Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-08T23:22:37.9406846Z               "line": 3
2026-06-08T23:22:37.9407204Z             }
2026-06-08T23:22:37.9407499Z           ]
2026-06-08T23:22:37.9407786Z         },
2026-06-08T23:22:37.9408063Z         "impl": {
2026-06-08T23:22:37.9408377Z           "complete": true,
2026-06-08T23:22:37.9408673Z           "evidence": [
2026-06-08T23:22:37.9408952Z             {
2026-06-08T23:22:37.9409354Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9409645Z               "line": 143
2026-06-08T23:22:37.9409921Z             },
2026-06-08T23:22:37.9410202Z             {
2026-06-08T23:22:37.9410608Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.9410913Z               "line": 463
2026-06-08T23:22:37.9411195Z             },
2026-06-08T23:22:37.9411478Z             {
2026-06-08T23:22:37.9411872Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-08T23:22:37.9412172Z               "line": 516
2026-06-08T23:22:37.9412453Z             },
2026-06-08T23:22:37.9412730Z             {
2026-06-08T23:22:37.9413131Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9413422Z               "line": 69
2026-06-08T23:22:37.9413713Z             },
2026-06-08T23:22:37.9413997Z             {
2026-06-08T23:22:37.9414400Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9414696Z               "line": 133
2026-06-08T23:22:37.9414972Z             },
2026-06-08T23:22:37.9415254Z             {
2026-06-08T23:22:37.9415650Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9415950Z               "line": 243
2026-06-08T23:22:37.9416236Z             },
2026-06-08T23:22:37.9416517Z             {
2026-06-08T23:22:37.9416909Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9417306Z               "line": 399
2026-06-08T23:22:37.9417596Z             },
2026-06-08T23:22:37.9417878Z             {
2026-06-08T23:22:37.9418284Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9418580Z               "line": 527
2026-06-08T23:22:37.9418865Z             },
2026-06-08T23:22:37.9419141Z             {
2026-06-08T23:22:37.9419541Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9419842Z               "line": 541
2026-06-08T23:22:37.9420128Z             },
2026-06-08T23:22:37.9420408Z             {
2026-06-08T23:22:37.9420810Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9421110Z               "line": 596
2026-06-08T23:22:37.9421396Z             },
2026-06-08T23:22:37.9421668Z             {
2026-06-08T23:22:37.9422057Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9422341Z               "line": 627
2026-06-08T23:22:37.9422622Z             },
2026-06-08T23:22:37.9422904Z             {
2026-06-08T23:22:37.9423396Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9423697Z               "line": 41
2026-06-08T23:22:37.9423977Z             },
2026-06-08T23:22:37.9424263Z             {
2026-06-08T23:22:37.9424648Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9424951Z               "line": 99
2026-06-08T23:22:37.9425329Z             },
2026-06-08T23:22:37.9425609Z             {
2026-06-08T23:22:37.9426005Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9426302Z               "line": 130
2026-06-08T23:22:37.9426578Z             },
2026-06-08T23:22:37.9426864Z             {
2026-06-08T23:22:37.9427337Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9427634Z               "line": 159
2026-06-08T23:22:37.9427919Z             },
2026-06-08T23:22:37.9428196Z             {
2026-06-08T23:22:37.9428581Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9428882Z               "line": 190
2026-06-08T23:22:37.9429164Z             },
2026-06-08T23:22:37.9429445Z             {
2026-06-08T23:22:37.9429831Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9430130Z               "line": 213
2026-06-08T23:22:37.9430416Z             },
2026-06-08T23:22:37.9430692Z             {
2026-06-08T23:22:37.9431084Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9431390Z               "line": 231
2026-06-08T23:22:37.9431675Z             },
2026-06-08T23:22:37.9431951Z             {
2026-06-08T23:22:37.9432339Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9432637Z               "line": 241
2026-06-08T23:22:37.9432920Z             },
2026-06-08T23:22:37.9433206Z             {
2026-06-08T23:22:37.9433593Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9433898Z               "line": 253
2026-06-08T23:22:37.9434189Z             },
2026-06-08T23:22:37.9434470Z             {
2026-06-08T23:22:37.9434862Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9435156Z               "line": 263
2026-06-08T23:22:37.9435435Z             },
2026-06-08T23:22:37.9435712Z             {
2026-06-08T23:22:37.9436097Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9436388Z               "line": 87
2026-06-08T23:22:37.9436675Z             },
2026-06-08T23:22:37.9437027Z             {
2026-06-08T23:22:37.9437434Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9437751Z               "line": 113
2026-06-08T23:22:37.9438030Z             },
2026-06-08T23:22:37.9438316Z             {
2026-06-08T23:22:37.9438703Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9439002Z               "line": 128
2026-06-08T23:22:37.9439284Z             },
2026-06-08T23:22:37.9439565Z             {
2026-06-08T23:22:37.9439957Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9440257Z               "line": 149
2026-06-08T23:22:37.9440542Z             },
2026-06-08T23:22:37.9440824Z             {
2026-06-08T23:22:37.9441209Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9441510Z               "line": 161
2026-06-08T23:22:37.9441791Z             },
2026-06-08T23:22:37.9442073Z             {
2026-06-08T23:22:37.9442469Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9442768Z               "line": 172
2026-06-08T23:22:37.9443050Z             },
2026-06-08T23:22:37.9443329Z             {
2026-06-08T23:22:37.9443719Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9444010Z               "line": 438
2026-06-08T23:22:37.9444297Z             },
2026-06-08T23:22:37.9444573Z             {
2026-06-08T23:22:37.9444959Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9445254Z               "line": 542
2026-06-08T23:22:37.9445532Z             },
2026-06-08T23:22:37.9445811Z             {
2026-06-08T23:22:37.9446309Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9446610Z               "line": 171
2026-06-08T23:22:37.9446892Z             },
2026-06-08T23:22:37.9447263Z             {
2026-06-08T23:22:37.9447689Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9447974Z               "line": 65
2026-06-08T23:22:37.9448359Z             },
2026-06-08T23:22:37.9448638Z             {
2026-06-08T23:22:37.9449026Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9449321Z               "line": 71
2026-06-08T23:22:37.9449602Z             },
2026-06-08T23:22:37.9449878Z             {
2026-06-08T23:22:37.9450265Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-08T23:22:37.9450566Z               "line": 77
2026-06-08T23:22:37.9450851Z             },
2026-06-08T23:22:37.9451131Z             {
2026-06-08T23:22:37.9451478Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9451784Z               "line": 649
2026-06-08T23:22:37.9452070Z             },
2026-06-08T23:22:37.9452347Z             {
2026-06-08T23:22:37.9452700Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9452995Z               "line": 666
2026-06-08T23:22:37.9453281Z             },
2026-06-08T23:22:37.9453558Z             {
2026-06-08T23:22:37.9453917Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9454209Z               "line": 709
2026-06-08T23:22:37.9454494Z             },
2026-06-08T23:22:37.9454772Z             {
2026-06-08T23:22:37.9455114Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9455411Z               "line": 849
2026-06-08T23:22:37.9455697Z             },
2026-06-08T23:22:37.9455978Z             {
2026-06-08T23:22:37.9456324Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9456617Z               "line": 999
2026-06-08T23:22:37.9456898Z             }
2026-06-08T23:22:37.9457261Z           ]
2026-06-08T23:22:37.9457561Z         },
2026-06-08T23:22:37.9457847Z         "int": {
2026-06-08T23:22:37.9458153Z           "complete": true,
2026-06-08T23:22:37.9458448Z           "evidence": [
2026-06-08T23:22:37.9458724Z             {
2026-06-08T23:22:37.9459146Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.9459436Z               "line": 567
2026-06-08T23:22:37.9459713Z             },
2026-06-08T23:22:37.9460000Z             {
2026-06-08T23:22:37.9460371Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-08T23:22:37.9460667Z               "line": 135
2026-06-08T23:22:37.9460944Z             }
2026-06-08T23:22:37.9461231Z           ]
2026-06-08T23:22:37.9461512Z         },
2026-06-08T23:22:37.9461796Z         "unit": {
2026-06-08T23:22:37.9462097Z           "complete": true,
2026-06-08T23:22:37.9462392Z           "evidence": [
2026-06-08T23:22:37.9462707Z             {
2026-06-08T23:22:37.9463137Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9463419Z               "line": 434
2026-06-08T23:22:37.9463700Z             },
2026-06-08T23:22:37.9463981Z             {
2026-06-08T23:22:37.9464384Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-08T23:22:37.9464678Z               "line": 483
2026-06-08T23:22:37.9464959Z             },
2026-06-08T23:22:37.9465235Z             {
2026-06-08T23:22:37.9465637Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-08T23:22:37.9465932Z               "line": 689
2026-06-08T23:22:37.9466218Z             },
2026-06-08T23:22:37.9466499Z             {
2026-06-08T23:22:37.9466884Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9467259Z               "line": 355
2026-06-08T23:22:37.9467545Z             },
2026-06-08T23:22:37.9467826Z             {
2026-06-08T23:22:37.9468213Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-08T23:22:37.9468509Z               "line": 392
2026-06-08T23:22:37.9468790Z             },
2026-06-08T23:22:37.9469177Z             {
2026-06-08T23:22:37.9469573Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9469869Z               "line": 879
2026-06-08T23:22:37.9470150Z             },
2026-06-08T23:22:37.9470432Z             {
2026-06-08T23:22:37.9470818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9471118Z               "line": 901
2026-06-08T23:22:37.9471508Z             },
2026-06-08T23:22:37.9471776Z             {
2026-06-08T23:22:37.9472166Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9472462Z               "line": 918
2026-06-08T23:22:37.9472743Z             },
2026-06-08T23:22:37.9473020Z             {
2026-06-08T23:22:37.9473415Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9473706Z               "line": 933
2026-06-08T23:22:37.9473974Z             },
2026-06-08T23:22:37.9474260Z             {
2026-06-08T23:22:37.9474665Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-08T23:22:37.9474954Z               "line": 959
2026-06-08T23:22:37.9475224Z             },
2026-06-08T23:22:37.9475500Z             {
2026-06-08T23:22:37.9475873Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-08T23:22:37.9476164Z               "line": 455
2026-06-08T23:22:37.9476435Z             },
2026-06-08T23:22:37.9476716Z             {
2026-06-08T23:22:37.9477190Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-08T23:22:37.9477502Z               "line": 336
2026-06-08T23:22:37.9477790Z             },
2026-06-08T23:22:37.9478067Z             {
2026-06-08T23:22:37.9478420Z               "path": "crates/xtask/src/main.rs",
2026-06-08T23:22:37.9478716Z               "line": 1128
2026-06-08T23:22:37.9478996Z             },
2026-06-08T23:22:37.9479278Z             {
2026-06-08T23:22:37.9479650Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-08T23:22:37.9479939Z               "line": 130
2026-06-08T23:22:37.9480219Z             }
2026-06-08T23:22:37.9480514Z           ]
2026-06-08T23:22:37.9480791Z         }
2026-06-08T23:22:37.9481068Z       }
2026-06-08T23:22:37.9481345Z     }
2026-06-08T23:22:37.9481617Z   ],
2026-06-08T23:22:37.9481912Z   "findings": []
2026-06-08T23:22:37.9482188Z }
2026-06-08T23:22:37.9543627Z ##[group]Run ./traceable-reqs lint || true
2026-06-08T23:22:37.9543995Z [36;1m./traceable-reqs lint || true[0m
2026-06-08T23:22:37.9557434Z shell: /usr/bin/bash -e {0}
2026-06-08T23:22:37.9557724Z ##[endgroup]
2026-06-08T23:22:37.9726606Z Requirement quality findings (66); 172 requirements queued for agent review:
2026-06-08T23:22:37.9729145Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9730548Z   [must] requirement_quality REQ-CLI-1 criterion=length — title is 47 words; want 3..=25
2026-06-08T23:22:37.9731593Z   [must] requirement_quality REQ-CLI-2 criterion=length — title is 37 words; want 3..=25
2026-06-08T23:22:37.9732384Z   [must] requirement_quality REQ-CLI-3 criterion=length — title is 37 words; want 3..=25
2026-06-08T23:22:37.9733233Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-08T23:22:37.9734141Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-08T23:22:37.9735328Z   [must] requirement_quality REQ-CONV-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9736171Z   [must] requirement_quality REQ-CONV-1 criterion=length — title is 73 words; want 3..=25
2026-06-08T23:22:37.9737039Z   [must] requirement_quality REQ-CONV-2 criterion=length — title is 47 words; want 3..=25
2026-06-08T23:22:37.9738260Z   [must] requirement_quality REQ-DAEMON-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9739099Z   [must] requirement_quality REQ-DAEMON-5 criterion=length — title is 64 words; want 3..=25
2026-06-08T23:22:37.9740245Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-08T23:22:37.9741396Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-08T23:22:37.9742391Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-08T23:22:37.9743878Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9744848Z   [must] requirement_quality REQ-HAZARD-ELEVATED-DAEMON-SPAWN criterion=length — title is 58 words; want 3..=25
2026-06-08T23:22:37.9746088Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9746941Z   [must] requirement_quality REQ-HAZARD-EPOCH-RESET criterion=length — title is 60 words; want 3..=25
2026-06-08T23:22:37.9748171Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9749126Z   [must] requirement_quality REQ-HAZARD-INSTANT-UNDERFLOW criterion=length — title is 30 words; want 3..=25
2026-06-08T23:22:37.9750021Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-08T23:22:37.9750980Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-08T23:22:37.9752269Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9753566Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9754518Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-08T23:22:37.9755785Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9757281Z   [must] requirement_quality REQ-HAZARD-REGISTRY-GHOST-ROWS criterion=length — title is 66 words; want 3..=25
2026-06-08T23:22:37.9758902Z   [must] requirement_quality REQ-HAZARD-SUDO-SECURE-PATH criterion=length — title is 43 words; want 3..=25
2026-06-08T23:22:37.9760126Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-08T23:22:37.9760873Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-08T23:22:37.9761651Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-08T23:22:37.9762781Z   [must] requirement_quality REQ-INSTALL-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9763545Z   [must] requirement_quality REQ-INSTALL-6 criterion=length — title is 56 words; want 3..=25
2026-06-08T23:22:37.9764685Z   [must] requirement_quality REQ-INSTALL-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9765439Z   [must] requirement_quality REQ-INSTALL-7 criterion=length — title is 50 words; want 3..=25
2026-06-08T23:22:37.9766202Z   [must] requirement_quality REQ-INSTALL-8 criterion=length — title is 55 words; want 3..=25
2026-06-08T23:22:37.9767619Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9768729Z   [must] requirement_quality REQ-MESH-1 criterion=length — title is 86 words; want 3..=25
2026-06-08T23:22:37.9770111Z   [must] requirement_quality REQ-MESH-2 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9771010Z   [must] requirement_quality REQ-MESH-2 criterion=length — title is 120 words; want 3..=25
2026-06-08T23:22:37.9772044Z   [must] requirement_quality REQ-MESH-3 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9772827Z   [must] requirement_quality REQ-MESH-3 criterion=length — title is 86 words; want 3..=25
2026-06-08T23:22:37.9773867Z   [must] requirement_quality REQ-MESH-4 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9774792Z   [must] requirement_quality REQ-MESH-4 criterion=length — title is 99 words; want 3..=25
2026-06-08T23:22:37.9775899Z   [must] requirement_quality REQ-MESH-5 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9776614Z   [must] requirement_quality REQ-MESH-5 criterion=length — title is 72 words; want 3..=25
2026-06-08T23:22:37.9777749Z   [must] requirement_quality REQ-MESH-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9778478Z   [must] requirement_quality REQ-MESH-6 criterion=length — title is 56 words; want 3..=25
2026-06-08T23:22:37.9779622Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9780332Z   [must] requirement_quality REQ-MSG-4 criterion=length — title is 31 words; want 3..=25
2026-06-08T23:22:37.9781436Z   [must] requirement_quality REQ-PAIR-8 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9782156Z   [must] requirement_quality REQ-PAIR-8 criterion=length — title is 67 words; want 3..=25
2026-06-08T23:22:37.9783262Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9783973Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-08T23:22:37.9784732Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-08T23:22:37.9785438Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-08T23:22:37.9786304Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-08T23:22:37.9787189Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-08T23:22:37.9787981Z   [must] requirement_quality REQ-SUBNET-5 criterion=length — title is 52 words; want 3..=25
2026-06-08T23:22:37.9789081Z   [must] requirement_quality REQ-SUBNET-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9789830Z   [must] requirement_quality REQ-SUBNET-6 criterion=length — title is 38 words; want 3..=25
2026-06-08T23:22:37.9790936Z   [must] requirement_quality REQ-SUBNET-7 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9791664Z   [must] requirement_quality REQ-SUBNET-7 criterion=length — title is 75 words; want 3..=25
2026-06-08T23:22:37.9792393Z   [must] requirement_quality REQ-SUBNET-8 criterion=length — title is 53 words; want 3..=25
2026-06-08T23:22:37.9793421Z   [must] requirement_quality REQ-UPD-6 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-08T23:22:37.9794131Z   [must] requirement_quality REQ-UPD-6 criterion=length — title is 32 words; want 3..=25
2026-06-08T23:22:37.9794192Z 
2026-06-08T23:22:37.9794519Z # Requirement quality review
2026-06-08T23:22:37.9794553Z 
2026-06-08T23:22:37.9795178Z You are reviewing 172 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-08T23:22:37.9795802Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-08T23:22:37.9796422Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-08T23:22:37.9796879Z this command's output. Your task is the rubric items below.
2026-06-08T23:22:37.9796907Z 
2026-06-08T23:22:37.9797254Z ## Rubric
2026-06-08T23:22:37.9797292Z 
2026-06-08T23:22:37.9798045Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-08T23:22:37.9798713Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-08T23:22:37.9799294Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-08T23:22:37.9799856Z - **active-voice** — clear subject and active verb.
2026-06-08T23:22:37.9799889Z 
2026-06-08T23:22:37.9800528Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-08T23:22:37.9800829Z clear concerns.
2026-06-08T23:22:37.9800862Z 
2026-06-08T23:22:37.9801167Z ## Requirements
2026-06-08T23:22:37.9801200Z 
2026-06-08T23:22:37.9801487Z ### REQ-ARCH-1
2026-06-08T23:22:37.9801858Z - Title: Many small acyclically-layered crates
2026-06-08T23:22:37.9802167Z - Required stages: impl
2026-06-08T23:22:37.9802200Z 
2026-06-08T23:22:37.9802489Z ### REQ-ARCH-2
2026-06-08T23:22:37.9803019Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-08T23:22:37.9803333Z - Required stages: impl
2026-06-08T23:22:37.9803367Z 
2026-06-08T23:22:37.9803657Z ### REQ-ARCH-3
2026-06-08T23:22:37.9804278Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-08T23:22:37.9804597Z - Required stages: impl, unit
2026-06-08T23:22:37.9804630Z 
2026-06-08T23:22:37.9804943Z ### REQ-ARCH-4
2026-06-08T23:22:37.9805447Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-08T23:22:37.9805772Z - Required stages: impl, unit
2026-06-08T23:22:37.9805806Z 
2026-06-08T23:22:37.9806101Z ### REQ-DAEMON-1
2026-06-08T23:22:37.9806582Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-08T23:22:37.9806906Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9807031Z 
2026-06-08T23:22:37.9807319Z ### REQ-DAEMON-2
2026-06-08T23:22:37.9807728Z - Title: Broker/brain split for seamless self-update
2026-06-08T23:22:37.9808057Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9808090Z 
2026-06-08T23:22:37.9808372Z ### REQ-DAEMON-3
2026-06-08T23:22:37.9808820Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-08T23:22:37.9809168Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9809317Z 
2026-06-08T23:22:37.9809612Z ### REQ-DAEMON-4
2026-06-08T23:22:37.9809966Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-08T23:22:37.9810302Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9810336Z 
2026-06-08T23:22:37.9810622Z ### REQ-STORE-1
2026-06-08T23:22:37.9813275Z - 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-08T23:22:37.9813599Z - Required stages: impl, unit
2026-06-08T23:22:37.9813632Z 
2026-06-08T23:22:37.9813927Z ### REQ-MANIFEST-1
2026-06-08T23:22:37.9814481Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-08T23:22:37.9814801Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9814838Z 
2026-06-08T23:22:37.9815134Z ### REQ-SEAM-SPAWN
2026-06-08T23:22:37.9815461Z - Title: spawn-session seam
2026-06-08T23:22:37.9815779Z - Required stages: impl, unit
2026-06-08T23:22:37.9815817Z 
2026-06-08T23:22:37.9816127Z ### REQ-SEAM-POSTSPAWN
2026-06-08T23:22:37.9816518Z - Title: post-spawn / api bind seam with boot nonce
2026-06-08T23:22:37.9816837Z - Required stages: impl, unit
2026-06-08T23:22:37.9816870Z 
2026-06-08T23:22:37.9817256Z ### REQ-SEAM-PSYCHE
2026-06-08T23:22:37.9817673Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-08T23:22:37.9818000Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9818032Z 
2026-06-08T23:22:37.9818322Z ### REQ-SEAM-HISTORY
2026-06-08T23:22:37.9818865Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-08T23:22:37.9819189Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9819228Z 
2026-06-08T23:22:37.9819524Z ### REQ-SEAM-ACTIVITY
2026-06-08T23:22:37.9820052Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-08T23:22:37.9820376Z - Required stages: impl, unit
2026-06-08T23:22:37.9820410Z 
2026-06-08T23:22:37.9820709Z ### REQ-SEAM-INJECT
2026-06-08T23:22:37.9821177Z - Title: inject-input methods configurable per activity-state
2026-06-08T23:22:37.9821611Z - Required stages: impl, unit
2026-06-08T23:22:37.9821643Z 
2026-06-08T23:22:37.9821944Z ### REQ-SEAM-RESUME
2026-06-08T23:22:37.9822474Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-08T23:22:37.9822798Z - Required stages: impl, unit
2026-06-08T23:22:37.9822836Z 
2026-06-08T23:22:37.9823137Z ### REQ-SEAM-CAPABILITY
2026-06-08T23:22:37.9823567Z - Title: Hostable endpoint-types capability declaration
2026-06-08T23:22:37.9823891Z - Required stages: impl, unit
2026-06-08T23:22:37.9823919Z 
2026-06-08T23:22:37.9824224Z ### REQ-SEAM-UPDATE
2026-06-08T23:22:37.9824735Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-08T23:22:37.9825050Z - Required stages: impl, unit
2026-06-08T23:22:37.9825083Z 
2026-06-08T23:22:37.9825375Z ### REQ-API-1
2026-06-08T23:22:37.9825883Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-08T23:22:37.9826210Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9826253Z 
2026-06-08T23:22:37.9826543Z ### REQ-API-2
2026-06-08T23:22:37.9827236Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-08T23:22:37.9827575Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9827608Z 
2026-06-08T23:22:37.9827894Z ### REQ-API-3
2026-06-08T23:22:37.9828303Z - Title: commune/signoff are file-drops, not commands
2026-06-08T23:22:37.9828625Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9828658Z 
2026-06-08T23:22:37.9828940Z ### REQ-START-1
2026-06-08T23:22:37.9829516Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-08T23:22:37.9829831Z - Required stages: impl, unit
2026-06-08T23:22:37.9829860Z 
2026-06-08T23:22:37.9830142Z ### REQ-START-2
2026-06-08T23:22:37.9830540Z - Title: Harness-hosted startup: api seed then listen
2026-06-08T23:22:37.9830965Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9830999Z 
2026-06-08T23:22:37.9831288Z ### REQ-START-3
2026-06-08T23:22:37.9831794Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-08T23:22:37.9832118Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9832152Z 
2026-06-08T23:22:37.9832437Z ### REQ-START-4
2026-06-08T23:22:37.9832833Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-08T23:22:37.9833148Z - Required stages: impl, unit
2026-06-08T23:22:37.9833176Z 
2026-06-08T23:22:37.9833448Z ### REQ-EP-1
2026-06-08T23:22:37.9833829Z - Title: Day-one endpoint types; open type system
2026-06-08T23:22:37.9834141Z - Required stages: impl, unit
2026-06-08T23:22:37.9834170Z 
2026-06-08T23:22:37.9834446Z ### REQ-EP-2
2026-06-08T23:22:37.9834934Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-08T23:22:37.9835244Z - Required stages: impl, unit
2026-06-08T23:22:37.9835281Z 
2026-06-08T23:22:37.9835559Z ### REQ-EP-3
2026-06-08T23:22:37.9836106Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-08T23:22:37.9836419Z - Required stages: impl, unit
2026-06-08T23:22:37.9836457Z 
2026-06-08T23:22:37.9836731Z ### REQ-EP-4
2026-06-08T23:22:37.9837224Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-08T23:22:37.9837543Z - Required stages: impl, unit
2026-06-08T23:22:37.9837576Z 
2026-06-08T23:22:37.9837853Z ### REQ-EP-5
2026-06-08T23:22:37.9839871Z - 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-08T23:22:37.9840205Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9840237Z 
2026-06-08T23:22:37.9840524Z ### REQ-INST-1
2026-06-08T23:22:37.9840988Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-08T23:22:37.9841288Z - Required stages: 
2026-06-08T23:22:37.9841321Z 
2026-06-08T23:22:37.9841618Z ### REQ-INST-2
2026-06-08T23:22:37.9841973Z - Title: Per-node files, synced Psyche mind
2026-06-08T23:22:37.9842421Z - Required stages: impl, unit
2026-06-08T23:22:37.9842458Z 
2026-06-08T23:22:37.9842755Z ### REQ-INST-3
2026-06-08T23:22:37.9843193Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-08T23:22:37.9843528Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9843562Z 
2026-06-08T23:22:37.9843852Z ### REQ-INST-4
2026-06-08T23:22:37.9844370Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-08T23:22:37.9844701Z - Required stages: impl, unit
2026-06-08T23:22:37.9844735Z 
2026-06-08T23:22:37.9845021Z ### REQ-INST-5
2026-06-08T23:22:37.9845541Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-08T23:22:37.9845875Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9845903Z 
2026-06-08T23:22:37.9846189Z ### REQ-INST-6
2026-06-08T23:22:37.9846748Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-08T23:22:37.9847165Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9847197Z 
2026-06-08T23:22:37.9847512Z ### REQ-INST-7
2026-06-08T23:22:37.9847931Z - Title: Subnet registry + bare-id resolution policy
2026-06-08T23:22:37.9848255Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9848293Z 
2026-06-08T23:22:37.9848870Z ### REQ-INST-8
2026-06-08T23:22:37.9849320Z - Title: Remote-control mode distinct from local operation
2026-06-08T23:22:37.9849670Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9849703Z 
2026-06-08T23:22:37.9850022Z ### REQ-INST-9
2026-06-08T23:22:37.9850569Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-08T23:22:37.9850899Z - Required stages: impl, unit
2026-06-08T23:22:37.9850932Z 
2026-06-08T23:22:37.9851219Z ### REQ-INST-10
2026-06-08T23:22:37.9851848Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-08T23:22:37.9852178Z - Required stages: impl, unit
2026-06-08T23:22:37.9852319Z 
2026-06-08T23:22:37.9852614Z ### REQ-INST-11
2026-06-08T23:22:37.9853244Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-08T23:22:37.9853577Z - Required stages: impl, unit
2026-06-08T23:22:37.9853611Z 
2026-06-08T23:22:37.9853906Z ### REQ-INST-12
2026-06-08T23:22:37.9854775Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-08T23:22:37.9855097Z - Required stages: impl, unit
2026-06-08T23:22:37.9855126Z 
2026-06-08T23:22:37.9855420Z ### REQ-INST-13
2026-06-08T23:22:37.9855953Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-08T23:22:37.9856277Z - Required stages: impl, unit
2026-06-08T23:22:37.9856311Z 
2026-06-08T23:22:37.9856602Z ### REQ-INST-14
2026-06-08T23:22:37.9857809Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-08T23:22:37.9858152Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9858186Z 
2026-06-08T23:22:37.9858476Z ### REQ-INST-15
2026-06-08T23:22:37.9860657Z - 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-08T23:22:37.9860986Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9861020Z 
2026-06-08T23:22:37.9861306Z ### REQ-REACH-1
2026-06-08T23:22:37.9861745Z - Title: Off-node remote-drive detection + file transfer
2026-06-08T23:22:37.9862065Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9862098Z 
2026-06-08T23:22:37.9862394Z ### REQ-REACH-2
2026-06-08T23:22:37.9862851Z - Title: Remote command execution (deferred, consent-gated)
2026-06-08T23:22:37.9863142Z - Required stages: 
2026-06-08T23:22:37.9863174Z 
2026-06-08T23:22:37.9863452Z ### REQ-MSG-1
2026-06-08T23:22:37.9864781Z - 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-08T23:22:37.9865210Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9865239Z 
2026-06-08T23:22:37.9865538Z ### REQ-MSG-2
2026-06-08T23:22:37.9866333Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-08T23:22:37.9866657Z - Required stages: impl, unit
2026-06-08T23:22:37.9866690Z 
2026-06-08T23:22:37.9867067Z ### REQ-MSG-3
2026-06-08T23:22:37.9868262Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-08T23:22:37.9868599Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9868633Z 
2026-06-08T23:22:37.9868918Z ### REQ-MSG-4
2026-06-08T23:22:37.9871185Z - 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-08T23:22:37.9871528Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9871565Z 
2026-06-08T23:22:37.9871871Z ### REQ-NODE-IDENTITY
2026-06-08T23:22:37.9872543Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-08T23:22:37.9872867Z - Required stages: impl, unit
2026-06-08T23:22:37.9872901Z 
2026-06-08T23:22:37.9873191Z ### REQ-NET-1
2026-06-08T23:22:37.9873740Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-08T23:22:37.9874073Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9874106Z 
2026-06-08T23:22:37.9874393Z ### REQ-NET-2
2026-06-08T23:22:37.9874918Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-08T23:22:37.9875238Z - Required stages: impl
2026-06-08T23:22:37.9875270Z 
2026-06-08T23:22:37.9875552Z ### REQ-NET-3
2026-06-08T23:22:37.9876170Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-08T23:22:37.9876501Z - Required stages: impl, unit
2026-06-08T23:22:37.9876540Z 
2026-06-08T23:22:37.9876836Z ### REQ-PAIR-1
2026-06-08T23:22:37.9877250Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-08T23:22:37.9877565Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9877603Z 
2026-06-08T23:22:37.9877889Z ### REQ-PAIR-2
2026-06-08T23:22:37.9878299Z - Title: Local trust store with TOFU + warn-on-change
2026-06-08T23:22:37.9878598Z - Required stages: 
2026-06-08T23:22:37.9878632Z 
2026-06-08T23:22:37.9878925Z ### REQ-PAIR-3
2026-06-08T23:22:37.9879349Z - Title: Fetch current pairing code from any paired node
2026-06-08T23:22:37.9879678Z - Required stages: impl, unit
2026-06-08T23:22:37.9879712Z 
2026-06-08T23:22:37.9880003Z ### REQ-PAIR-4
2026-06-08T23:22:37.9880342Z - Title: Subnet naming on first pairing
2026-06-08T23:22:37.9880662Z - Required stages: impl, unit
2026-06-08T23:22:37.9880695Z 
2026-06-08T23:22:37.9880981Z ### REQ-PAIR-5
2026-06-08T23:22:37.9881896Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-08T23:22:37.9882231Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9882269Z 
2026-06-08T23:22:37.9882555Z ### REQ-PAIR-6
2026-06-08T23:22:37.9883323Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-08T23:22:37.9883642Z - Required stages: impl, unit
2026-06-08T23:22:37.9883680Z 
2026-06-08T23:22:37.9883976Z ### REQ-PAIR-7
2026-06-08T23:22:37.9884461Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-08T23:22:37.9884771Z - Required stages: 
2026-06-08T23:22:37.9884800Z 
2026-06-08T23:22:37.9885105Z ### REQ-SUBNET-1
2026-06-08T23:22:37.9886064Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted
2026-06-08T23:22:37.9886394Z - Required stages: impl, unit
2026-06-08T23:22:37.9886427Z 
2026-06-08T23:22:37.9886734Z ### REQ-SUBNET-2
2026-06-08T23:22:37.9887520Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-08T23:22:37.9887967Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9888001Z 
2026-06-08T23:22:37.9888287Z ### REQ-SUBNET-3
2026-06-08T23:22:37.9889116Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-08T23:22:37.9889438Z - Required stages: impl, unit
2026-06-08T23:22:37.9889476Z 
2026-06-08T23:22:37.9889767Z ### REQ-SUBNET-4
2026-06-08T23:22:37.9890635Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-08T23:22:37.9890950Z - Required stages: impl, unit
2026-06-08T23:22:37.9890978Z 
2026-06-08T23:22:37.9891289Z ### REQ-DOCS-6
2026-06-08T23:22:37.9892244Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-08T23:22:37.9892587Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9892620Z 
2026-06-08T23:22:37.9892920Z ### REQ-SEC-1
2026-06-08T23:22:37.9894146Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-08T23:22:37.9894480Z - Required stages: impl, unit
2026-06-08T23:22:37.9894513Z 
2026-06-08T23:22:37.9894798Z ### REQ-NOTIF-1
2026-06-08T23:22:37.9895937Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-08T23:22:37.9896271Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9896304Z 
2026-06-08T23:22:37.9896600Z ### REQ-NOTIF-2
2026-06-08T23:22:37.9897483Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-08T23:22:37.9897826Z - Required stages: doc, impl, unit, int
2026-06-08T23:22:37.9897869Z 
2026-06-08T23:22:37.9898155Z ### REQ-UPD-1
2026-06-08T23:22:37.9898624Z - Title: Peer-propagated update over P2P
2026-06-08T23:22:37.9898958Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9898990Z 
2026-06-08T23:22:37.9899287Z ### REQ-UPD-2
2026-06-08T23:22:37.9899709Z - Title: All binaries signature-verified before handoff
2026-06-08T23:22:37.9900036Z - Required stages: impl, unit
2026-06-08T23:22:37.9900069Z 
2026-06-08T23:22:37.9900365Z ### REQ-UPD-3
2026-06-08T23:22:37.9900871Z - Title: No endpoint process terminates/suspends during self-update
2026-06-08T23:22:37.9901209Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9901242Z 
2026-06-08T23:22:37.9901524Z ### REQ-UPD-4
2026-06-08T23:22:37.9902063Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-08T23:22:37.9902390Z - Required stages: impl, unit
2026-06-08T23:22:37.9902424Z 
2026-06-08T23:22:37.9902746Z ### REQ-UPD-5
2026-06-08T23:22:37.9903152Z - Title: spt-core ripple-updates registered adapters
2026-06-08T23:22:37.9903457Z - Required stages: impl, unit
2026-06-08T23:22:37.9903490Z 
2026-06-08T23:22:37.9903781Z ### REQ-UPD-6
2026-06-08T23:22:37.9906383Z - 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-08T23:22:37.9906730Z - Required stages: doc, impl, unit, int
2026-06-08T23:22:37.9906765Z 
2026-06-08T23:22:37.9907136Z ### REQ-TERM-1
2026-06-08T23:22:37.9907647Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-08T23:22:37.9907974Z - Required stages: impl, unit
2026-06-08T23:22:37.9908006Z 
2026-06-08T23:22:37.9908297Z ### REQ-TERM-2
2026-06-08T23:22:37.9908826Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-08T23:22:37.9909151Z - Required stages: impl, unit
2026-06-08T23:22:37.9909184Z 
2026-06-08T23:22:37.9909470Z ### REQ-TERM-3
2026-06-08T23:22:37.9909894Z - Title: Byte-stream remote terminal streaming for v1
2026-06-08T23:22:37.9910218Z - Required stages: impl, unit
2026-06-08T23:22:37.9910250Z 
2026-06-08T23:22:37.9910653Z ### REQ-TERM-4
2026-06-08T23:22:37.9911774Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-08T23:22:37.9912103Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9912136Z 
2026-06-08T23:22:37.9912432Z ### REQ-FRONT-1
2026-06-08T23:22:37.9912950Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-08T23:22:37.9913258Z - Required stages: 
2026-06-08T23:22:37.9913291Z 
2026-06-08T23:22:37.9913587Z ### REQ-INSTALL-1
2026-06-08T23:22:37.9914150Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-08T23:22:37.9914488Z - Required stages: doc, impl, int
2026-06-08T23:22:37.9914521Z 
2026-06-08T23:22:37.9914822Z ### REQ-INSTALL-2
2026-06-08T23:22:37.9915229Z - Title: Marketplace-repackaging-friendly install
2026-06-08T23:22:37.9915543Z - Required stages: doc
2026-06-08T23:22:37.9915563Z 
2026-06-08T23:22:37.9915856Z ### REQ-INSTALL-3
2026-06-08T23:22:37.9916295Z - Title: Idempotent + interactive-optional first run
2026-06-08T23:22:37.9916629Z - Required stages: impl, int
2026-06-08T23:22:37.9916662Z 
2026-06-08T23:22:37.9917034Z ### REQ-INSTALL-4
2026-06-08T23:22:37.9918994Z - 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-08T23:22:37.9919314Z - Required stages: impl, unit
2026-06-08T23:22:37.9919347Z 
2026-06-08T23:22:37.9919648Z ### REQ-MIGRATE-1
2026-06-08T23:22:37.9920153Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-08T23:22:37.9920449Z - Required stages: 
2026-06-08T23:22:37.9920482Z 
2026-06-08T23:22:37.9920778Z ### REQ-INFRA-1
2026-06-08T23:22:37.9921537Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-08T23:22:37.9921852Z - Required stages: 
2026-06-08T23:22:37.9921881Z 
2026-06-08T23:22:37.9922186Z ### REQ-INSTALL-5
2026-06-08T23:22:37.9923685Z - 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-08T23:22:37.9924009Z - Required stages: impl, int
2026-06-08T23:22:37.9924042Z 
2026-06-08T23:22:37.9924329Z ### REQ-REL-1
2026-06-08T23:22:37.9925526Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-08T23:22:37.9925850Z - Required stages: doc, impl
2026-06-08T23:22:37.9925883Z 
2026-06-08T23:22:37.9926170Z ### REQ-REL-2
2026-06-08T23:22:37.9927738Z - 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-08T23:22:37.9928067Z - Required stages: impl, int
2026-06-08T23:22:37.9928100Z 
2026-06-08T23:22:37.9928391Z ### REQ-REL-3
2026-06-08T23:22:37.9929761Z - 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-08T23:22:37.9930089Z - Required stages: impl, unit
2026-06-08T23:22:37.9930123Z 
2026-06-08T23:22:37.9930418Z ### REQ-DOCS-1
2026-06-08T23:22:37.9931000Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-08T23:22:37.9931334Z - Required stages: doc, impl
2026-06-08T23:22:37.9931366Z 
2026-06-08T23:22:37.9931665Z ### REQ-DOCS-2
2026-06-08T23:22:37.9932140Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-08T23:22:37.9932469Z - Required stages: doc, int
2026-06-08T23:22:37.9932504Z 
2026-06-08T23:22:37.9932794Z ### REQ-DOCS-3
2026-06-08T23:22:37.9933275Z - Title: Diátaxis structure; one canonical way to do X
2026-06-08T23:22:37.9933595Z - Required stages: doc
2026-06-08T23:22:37.9933628Z 
2026-06-08T23:22:37.9933919Z ### REQ-DOCS-4
2026-06-08T23:22:37.9934621Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-08T23:22:37.9934945Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9934979Z 
2026-06-08T23:22:37.9935279Z ### REQ-DOCS-5
2026-06-08T23:22:37.9935861Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-08T23:22:37.9936180Z - Required stages: impl, int
2026-06-08T23:22:37.9936214Z 
2026-06-08T23:22:37.9936552Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-08T23:22:37.9937179Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-08T23:22:37.9937508Z - Required stages: impl, unit
2026-06-08T23:22:37.9937546Z 
2026-06-08T23:22:37.9937889Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-08T23:22:37.9938338Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-08T23:22:37.9938653Z - Required stages: impl, unit
2026-06-08T23:22:37.9938699Z 
2026-06-08T23:22:37.9939028Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-08T23:22:37.9939429Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-08T23:22:37.9939769Z - Required stages: impl, unit
2026-06-08T23:22:37.9939807Z 
2026-06-08T23:22:37.9940136Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-08T23:22:37.9940689Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-08T23:22:37.9941009Z - Required stages: impl, unit
2026-06-08T23:22:37.9941042Z 
2026-06-08T23:22:37.9941367Z ### REQ-HAZARD-WORKER-PATH
2026-06-08T23:22:37.9941906Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-08T23:22:37.9942251Z - Required stages: impl, unit
2026-06-08T23:22:37.9942284Z 
2026-06-08T23:22:37.9942631Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-08T23:22:37.9943190Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-08T23:22:37.9943495Z - Required stages: 
2026-06-08T23:22:37.9943528Z 
2026-06-08T23:22:37.9943962Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-08T23:22:37.9944373Z - Title: Stdin session_id precedence over env (2.2)
2026-06-08T23:22:37.9944688Z - Required stages: 
2026-06-08T23:22:37.9944717Z 
2026-06-08T23:22:37.9945059Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-08T23:22:37.9945544Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-08T23:22:37.9945868Z - Required stages: impl, unit
2026-06-08T23:22:37.9945902Z 
2026-06-08T23:22:37.9946221Z ### REQ-HAZARD-GEN-START-NOW
2026-06-08T23:22:37.9946661Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-08T23:22:37.9947074Z - Required stages: impl, int
2026-06-08T23:22:37.9947103Z 
2026-06-08T23:22:37.9947465Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-08T23:22:37.9947951Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-08T23:22:37.9948280Z - Required stages: impl, unit
2026-06-08T23:22:37.9948315Z 
2026-06-08T23:22:37.9948667Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-08T23:22:37.9949164Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-08T23:22:37.9949493Z - Required stages: impl, unit
2026-06-08T23:22:37.9949531Z 
2026-06-08T23:22:37.9949873Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-08T23:22:37.9950427Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-08T23:22:37.9950752Z - Required stages: impl, unit
2026-06-08T23:22:37.9950786Z 
2026-06-08T23:22:37.9951129Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-08T23:22:37.9951595Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-08T23:22:37.9951896Z - Required stages: impl, unit
2026-06-08T23:22:37.9951929Z 
2026-06-08T23:22:37.9952277Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-08T23:22:37.9952789Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-08T23:22:37.9953104Z - Required stages: impl, unit
2026-06-08T23:22:37.9953132Z 
2026-06-08T23:22:37.9953475Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-08T23:22:37.9954101Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-08T23:22:37.9954420Z - Required stages: impl, unit
2026-06-08T23:22:37.9954453Z 
2026-06-08T23:22:37.9954864Z ### REQ-HAZARD-ID-CHARSET
2026-06-08T23:22:37.9955590Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-08T23:22:37.9955910Z - Required stages: impl, unit
2026-06-08T23:22:37.9955938Z 
2026-06-08T23:22:37.9956282Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-08T23:22:37.9956854Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-08T23:22:37.9957259Z - Required stages: impl, unit
2026-06-08T23:22:37.9957301Z 
2026-06-08T23:22:37.9957634Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-08T23:22:37.9958392Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-08T23:22:37.9958716Z - Required stages: impl, unit
2026-06-08T23:22:37.9958750Z 
2026-06-08T23:22:37.9959094Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-08T23:22:37.9960105Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-08T23:22:37.9960448Z - Required stages: doc, impl, unit
2026-06-08T23:22:37.9960480Z 
2026-06-08T23:22:37.9960821Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-08T23:22:37.9962027Z - 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-08T23:22:37.9962366Z - Required stages: impl, unit
2026-06-08T23:22:37.9962398Z 
2026-06-08T23:22:37.9962757Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-08T23:22:37.9963137Z - Title: Deferred rows survive poll drain (4.4)
2026-06-08T23:22:37.9963459Z - Required stages: impl, unit
2026-06-08T23:22:37.9963492Z 
2026-06-08T23:22:37.9963821Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-08T23:22:37.9964232Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-08T23:22:37.9964561Z - Required stages: impl, unit
2026-06-08T23:22:37.9964603Z 
2026-06-08T23:22:37.9965075Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-08T23:22:37.9965553Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-08T23:22:37.9965893Z - Required stages: impl, unit
2026-06-08T23:22:37.9965926Z 
2026-06-08T23:22:37.9966255Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-08T23:22:37.9966746Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-08T23:22:37.9967142Z - Required stages: impl, unit
2026-06-08T23:22:37.9967175Z 
2026-06-08T23:22:37.9967514Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-08T23:22:37.9967947Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-08T23:22:37.9968267Z - Required stages: impl, unit
2026-06-08T23:22:37.9968301Z 
2026-06-08T23:22:37.9968618Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-08T23:22:37.9969068Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-08T23:22:37.9969397Z - Required stages: impl, unit
2026-06-08T23:22:37.9969430Z 
2026-06-08T23:22:37.9969768Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-08T23:22:37.9970331Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-08T23:22:37.9970661Z - Required stages: impl, unit
2026-06-08T23:22:37.9970698Z 
2026-06-08T23:22:37.9971026Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-08T23:22:37.9971592Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-08T23:22:37.9971916Z - Required stages: impl, unit
2026-06-08T23:22:37.9971949Z 
2026-06-08T23:22:37.9972292Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-08T23:22:37.9972797Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-08T23:22:37.9973117Z - Required stages: impl, unit
2026-06-08T23:22:37.9973146Z 
2026-06-08T23:22:37.9973504Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-08T23:22:37.9973938Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-08T23:22:37.9974267Z - Required stages: impl, unit
2026-06-08T23:22:37.9974295Z 
2026-06-08T23:22:37.9974663Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-08T23:22:37.9975321Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-08T23:22:37.9975645Z - Required stages: impl, unit
2026-06-08T23:22:37.9975789Z 
2026-06-08T23:22:37.9976145Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-08T23:22:37.9977946Z - 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-08T23:22:37.9978275Z - Required stages: impl, unit
2026-06-08T23:22:37.9978308Z 
2026-06-08T23:22:37.9978656Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-08T23:22:37.9981685Z - 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-08T23:22:37.9982007Z - Required stages: impl, unit
2026-06-08T23:22:37.9982045Z 
2026-06-08T23:22:37.9982355Z ### REQ-HAZARD-CONPTY-DSR
2026-06-08T23:22:37.9983009Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-08T23:22:37.9983334Z - Required stages: impl, unit
2026-06-08T23:22:37.9983367Z 
2026-06-08T23:22:37.9983702Z ### REQ-HAZARD-CHILD-CONSOLE-FLASH
2026-06-08T23:22:37.9984990Z - 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-08T23:22:37.9985305Z - Required stages: impl, unit
2026-06-08T23:22:37.9985338Z 
2026-06-08T23:22:37.9985672Z ### REQ-HAZARD-INSTANT-UNDERFLOW
2026-06-08T23:22:37.9987484Z - 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-08T23:22:37.9987924Z - Required stages: impl, unit
2026-06-08T23:22:37.9987957Z 
2026-06-08T23:22:37.9988295Z ### REQ-HAZARD-SUDO-SECURE-PATH
2026-06-08T23:22:37.9990692Z - 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-08T23:22:37.9991022Z - Required stages: impl, unit
2026-06-08T23:22:37.9991055Z 
2026-06-08T23:22:37.9991380Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-08T23:22:37.9992015Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-08T23:22:37.9992346Z - Required stages: impl, unit
2026-06-08T23:22:37.9992380Z 
2026-06-08T23:22:37.9992717Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-08T23:22:37.9993493Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-08T23:22:37.9993846Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9993879Z 
2026-06-08T23:22:37.9994208Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-08T23:22:37.9995008Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-08T23:22:37.9995326Z - Required stages: impl, unit
2026-06-08T23:22:37.9995355Z 
2026-06-08T23:22:37.9995707Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-08T23:22:37.9997095Z - 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-08T23:22:37.9997436Z - Required stages: impl, unit, int
2026-06-08T23:22:37.9997470Z 
2026-06-08T23:22:37.9997806Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-08T23:22:38.0000054Z - 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-08T23:22:38.0000386Z - Required stages: impl, unit
2026-06-08T23:22:38.0000419Z 
2026-06-08T23:22:38.0000895Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-08T23:22:38.0002935Z - 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-08T23:22:38.0003267Z - Required stages: impl, unit
2026-06-08T23:22:38.0003301Z 
2026-06-08T23:22:38.0003644Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-08T23:22:38.0005483Z - 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-08T23:22:38.0005815Z - Required stages: impl, unit
2026-06-08T23:22:38.0005848Z 
2026-06-08T23:22:38.0006182Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-08T23:22:38.0007911Z - 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-08T23:22:38.0008256Z - Required stages: impl, unit
2026-06-08T23:22:38.0008295Z 
2026-06-08T23:22:38.0008624Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-08T23:22:38.0011065Z - 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-08T23:22:38.0011389Z - Required stages: impl, unit
2026-06-08T23:22:38.0011422Z 
2026-06-08T23:22:38.0011755Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-08T23:22:38.0014113Z - 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-08T23:22:38.0014476Z - Required stages: doc, impl, unit
2026-06-08T23:22:38.0014509Z 
2026-06-08T23:22:38.0014810Z ### REQ-CONSENT-1
2026-06-08T23:22:38.0017700Z - 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-08T23:22:38.0018029Z - Required stages: impl, unit
2026-06-08T23:22:38.0018062Z 
2026-06-08T23:22:38.0024669Z ### REQ-CONSENT-2
2026-06-08T23:22:38.0027397Z - 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-08T23:22:38.0027745Z - Required stages: impl, unit
2026-06-08T23:22:38.0027788Z 
2026-06-08T23:22:38.0028088Z ### REQ-PRES-1
2026-06-08T23:22:38.0031948Z - 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-08T23:22:38.0032294Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0032323Z 
2026-06-08T23:22:38.0032619Z ### REQ-SHELL-1
2026-06-08T23:22:38.0035447Z - 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-08T23:22:38.0035944Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0035977Z 
2026-06-08T23:22:38.0036273Z ### REQ-SHELL-2
2026-06-08T23:22:38.0040505Z - 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-08T23:22:38.0040848Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0040881Z 
2026-06-08T23:22:38.0041235Z ### REQ-HAZARD-ELEVATED-DAEMON-SPAWN
2026-06-08T23:22:38.0044835Z - 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-08T23:22:38.0045204Z - Required stages: doc, impl, unit
2026-06-08T23:22:38.0045242Z 
2026-06-08T23:22:38.0045579Z ### REQ-HAZARD-REGISTRY-GHOST-ROWS
2026-06-08T23:22:38.0049466Z - 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-08T23:22:38.0049815Z - Required stages: doc, impl, unit
2026-06-08T23:22:38.0049847Z 
2026-06-08T23:22:38.0050162Z ### REQ-CLI-1
2026-06-08T23:22:38.0053424Z - 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-08T23:22:38.0053748Z - Required stages: impl, unit
2026-06-08T23:22:38.0053782Z 
2026-06-08T23:22:38.0054068Z ### REQ-CLI-2
2026-06-08T23:22:38.0056272Z - 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-08T23:22:38.0056611Z - Required stages: impl, unit
2026-06-08T23:22:38.0056645Z 
2026-06-08T23:22:38.0056935Z ### REQ-CLI-3
2026-06-08T23:22:38.0059250Z - 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-08T23:22:38.0059574Z - Required stages: impl, unit
2026-06-08T23:22:38.0059608Z 
2026-06-08T23:22:38.0059894Z ### REQ-SUBNET-5
2026-06-08T23:22:38.0062979Z - 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-08T23:22:38.0063333Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0063372Z 
2026-06-08T23:22:38.0063669Z ### REQ-SUBNET-6
2026-06-08T23:22:38.0065815Z - 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-08T23:22:38.0066263Z - Required stages: impl, unit
2026-06-08T23:22:38.0066296Z 
2026-06-08T23:22:38.0066589Z ### REQ-SUBNET-7
2026-06-08T23:22:38.0071235Z - 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-08T23:22:38.0071556Z - Required stages: impl, unit
2026-06-08T23:22:38.0071608Z 
2026-06-08T23:22:38.0071895Z ### REQ-SUBNET-8
2026-06-08T23:22:38.0074888Z - 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-08T23:22:38.0075213Z - Required stages: impl, unit
2026-06-08T23:22:38.0075246Z 
2026-06-08T23:22:38.0075537Z ### REQ-INSTALL-6
2026-06-08T23:22:38.0079029Z - 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-08T23:22:38.0079385Z - Required stages: impl, unit
2026-06-08T23:22:38.0079418Z 
2026-06-08T23:22:38.0079711Z ### REQ-INSTALL-7
2026-06-08T23:22:38.0082826Z - 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-08T23:22:38.0083141Z - Required stages: impl
2026-06-08T23:22:38.0083174Z 
2026-06-08T23:22:38.0083465Z ### REQ-INSTALL-8
2026-06-08T23:22:38.0086708Z - 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-08T23:22:38.0087114Z - Required stages: impl
2026-06-08T23:22:38.0087142Z 
2026-06-08T23:22:38.0087440Z ### REQ-CONV-1
2026-06-08T23:22:38.0091312Z - 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-08T23:22:38.0091645Z - Required stages: impl, unit
2026-06-08T23:22:38.0091678Z 
2026-06-08T23:22:38.0091970Z ### REQ-CONV-2
2026-06-08T23:22:38.0095043Z - 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-08T23:22:38.0095494Z - Required stages: impl, unit
2026-06-08T23:22:38.0095527Z 
2026-06-08T23:22:38.0095819Z ### REQ-PAIR-8
2026-06-08T23:22:38.0099462Z - 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-08T23:22:38.0099786Z - Required stages: impl, unit
2026-06-08T23:22:38.0099844Z 
2026-06-08T23:22:38.0100125Z ### REQ-DAEMON-5
2026-06-08T23:22:38.0103642Z - 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-08T23:22:38.0103995Z - Required stages: impl, unit
2026-06-08T23:22:38.0104033Z 
2026-06-08T23:22:38.0104344Z ### REQ-HAZARD-EPOCH-RESET
2026-06-08T23:22:38.0108239Z - 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-08T23:22:38.0108575Z - Required stages: 
2026-06-08T23:22:38.0108612Z 
2026-06-08T23:22:38.0108898Z ### REQ-MESH-1
2026-06-08T23:22:38.0114774Z - Title: Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).
2026-06-08T23:22:38.0115189Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0115224Z 
2026-06-08T23:22:38.0115514Z ### REQ-MESH-2
2026-06-08T23:22:38.0122767Z - Title: Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).
2026-06-08T23:22:38.0123149Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0123183Z 
2026-06-08T23:22:38.0123469Z ### REQ-MESH-3
2026-06-08T23:22:38.0128452Z - Title: Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.
2026-06-08T23:22:38.0128809Z - Required stages: impl, unit, int
2026-06-08T23:22:38.0128843Z 
2026-06-08T23:22:38.0129124Z ### REQ-MESH-4
2026-06-08T23:22:38.0135327Z - Title: Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.
2026-06-08T23:22:38.0135656Z - Required stages: 
2026-06-08T23:22:38.0135690Z 
2026-06-08T23:22:38.0135980Z ### REQ-MESH-5
2026-06-08T23:22:38.0140136Z - Title: Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.
2026-06-08T23:22:38.0140502Z - Required stages: impl, unit
2026-06-08T23:22:38.0140535Z 
2026-06-08T23:22:38.0140831Z ### REQ-MESH-6
2026-06-08T23:22:38.0144185Z - Title: Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)
2026-06-08T23:22:38.0144488Z - Required stages: 
2026-06-08T23:22:38.0144523Z 
2026-06-08T23:22:38.0144822Z ## How to report back
2026-06-08T23:22:38.0144852Z 
2026-06-08T23:22:38.0145351Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-08T23:22:38.0145421Z 
2026-06-08T23:22:38.0145702Z     {
2026-06-08T23:22:38.0146021Z       "code": "requirement_quality",
2026-06-08T23:22:38.0146365Z       "requirementId": "REQ-...",
2026-06-08T23:22:38.0146865Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-08T23:22:38.0147272Z       "message": "<short reason>",
2026-06-08T23:22:38.0147638Z       "suggestedRevision": "<optional rewrite>"
2026-06-08T23:22:38.0147915Z     }
2026-06-08T23:22:38.0147948Z 
2026-06-08T23:22:38.0148504Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-08T23:22:38.0148939Z deterministic findings above don't need to be repeated.
2026-06-08T23:22:38.0298885Z Post job cleanup.
2026-06-08T23:22:38.0976011Z [command]/usr/bin/git version
2026-06-08T23:22:38.1040794Z git version 2.43.0
2026-06-08T23:22:38.1073067Z Temporarily overriding HOME='/home/reavus/actions-runner/_work/_temp/29a8f6f4-8c65-438b-bb5e-899696347bcf' before making global git config changes
2026-06-08T23:22:38.1073934Z Adding repository directory to the temporary git global config as a safe directory
2026-06-08T23:22:38.1075385Z [command]/usr/bin/git config --global --add safe.directory /home/reavus/actions-runner/_work/spt-core/spt-core
2026-06-08T23:22:38.1103043Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-08T23:22:38.1129961Z [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-08T23:22:38.1319705Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-08T23:22:38.1339571Z http.https://github.com/.extraheader
2026-06-08T23:22:38.1346199Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-08T23:22:38.1372734Z [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-08T23:22:38.1557126Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-08T23:22:38.1581807Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-08T23:22:38.1889736Z Cleaning up orphan processes
