﻿2026-06-06T06:00:58.6282251Z Current runner version: '2.334.0'
2026-06-06T06:00:58.6291783Z Runner name: 'gravity'
2026-06-06T06:00:58.6293120Z Runner group name: 'Default'
2026-06-06T06:00:58.6294582Z Machine name: 'gravity-linux'
2026-06-06T06:00:58.6376081Z ##[group]GITHUB_TOKEN Permissions
2026-06-06T06:00:58.6380416Z Contents: read
2026-06-06T06:00:58.6381172Z Metadata: read
2026-06-06T06:00:58.6381868Z Packages: read
2026-06-06T06:00:58.6382558Z ##[endgroup]
2026-06-06T06:00:58.6385961Z Secret source: Actions
2026-06-06T06:00:58.6386927Z Prepare workflow directory
2026-06-06T06:00:58.7067473Z Prepare all required actions
2026-06-06T06:00:58.7129319Z Getting action download info
2026-06-06T06:00:59.2410431Z Download action repository 'actions/checkout@v5' (SHA:93cb6efe18208431cddfb8368fd83d5badbf9bfd)
2026-06-06T06:01:00.2581061Z Complete job name: traceability
2026-06-06T06:01:00.4028274Z ##[group]Run actions/checkout@v5
2026-06-06T06:01:00.4030477Z with:
2026-06-06T06:01:00.4031317Z   repository: SaberMage/spt-core
2026-06-06T06:01:00.4039826Z   token: ***
2026-06-06T06:01:00.4040770Z   ssh-strict: true
2026-06-06T06:01:00.4041573Z   ssh-user: git
2026-06-06T06:01:00.4042376Z   persist-credentials: true
2026-06-06T06:01:00.4043267Z   clean: true
2026-06-06T06:01:00.4044082Z   sparse-checkout-cone-mode: true
2026-06-06T06:01:00.4045022Z   fetch-depth: 1
2026-06-06T06:01:00.4045804Z   fetch-tags: false
2026-06-06T06:01:00.4046597Z   show-progress: true
2026-06-06T06:01:00.4047388Z   lfs: false
2026-06-06T06:01:00.4048152Z   submodules: false
2026-06-06T06:01:00.4049002Z   set-safe-directory: true
2026-06-06T06:01:00.4050841Z ##[endgroup]
2026-06-06T06:01:00.5587513Z Syncing repository: SaberMage/spt-core
2026-06-06T06:01:00.5592715Z ##[group]Getting Git version info
2026-06-06T06:01:00.5594579Z Working directory is '/home/david/actions-runner/_work/spt-core/spt-core'
2026-06-06T06:01:00.5596959Z [command]/usr/bin/git version
2026-06-06T06:01:00.5598029Z git version 2.34.1
2026-06-06T06:01:00.5601646Z ##[endgroup]
2026-06-06T06:01:00.5610880Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/71189cfd-ea45-493e-949d-4f7480d72d89/.gitconfig'
2026-06-06T06:01:00.5620324Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/71189cfd-ea45-493e-949d-4f7480d72d89' before making global git config changes
2026-06-06T06:01:00.5623023Z Adding repository directory to the temporary git global config as a safe directory
2026-06-06T06:01:00.5627955Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-06T06:01:00.5681051Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-06T06:01:00.5711217Z https://github.com/SaberMage/spt-core
2026-06-06T06:01:00.5734721Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-06T06:01:00.5742720Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-06T06:01:00.5799532Z refs/heads/dev-freeform
2026-06-06T06:01:00.5802458Z [command]/usr/bin/git checkout --detach
2026-06-06T06:01:00.5881077Z HEAD is now at 422304c fix(docs-site): theme sizing — mdBook root is 10px, not 16px
2026-06-06T06:01:00.5926763Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-06T06:01:00.5977844Z Deleted branch dev-freeform (was 422304c).
2026-06-06T06:01:00.6024067Z ##[endgroup]
2026-06-06T06:01:00.6029446Z [command]/usr/bin/git submodule status
2026-06-06T06:01:00.6284983Z ##[group]Cleaning the repository
2026-06-06T06:01:00.6289916Z [command]/usr/bin/git clean -ffdx
2026-06-06T06:01:01.0996105Z Removing target/
2026-06-06T06:01:01.1008229Z [command]/usr/bin/git reset --hard HEAD
2026-06-06T06:01:01.1088811Z HEAD is now at 422304c fix(docs-site): theme sizing — mdBook root is 10px, not 16px
2026-06-06T06:01:01.1095006Z ##[endgroup]
2026-06-06T06:01:01.1098680Z ##[group]Disabling automatic garbage collection
2026-06-06T06:01:01.1105256Z [command]/usr/bin/git config --local gc.auto 0
2026-06-06T06:01:01.1142835Z ##[endgroup]
2026-06-06T06:01:01.1144780Z ##[group]Setting up auth
2026-06-06T06:01:01.1153716Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-06T06:01:01.1196918Z [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-06T06:01:01.1444719Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-06T06:01:01.1486736Z [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-06T06:01:01.1762599Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-06T06:01:01.1805690Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-06T06:01:01.2049740Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-06T06:01:01.2140498Z ##[endgroup]
2026-06-06T06:01:01.2143734Z ##[group]Fetching the repository
2026-06-06T06:01:01.2149081Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +c152807598acd6121475800715101621e9dd9550:refs/remotes/origin/dev-freeform
2026-06-06T06:01:02.0823917Z From https://github.com/SaberMage/spt-core
2026-06-06T06:01:02.0828781Z  + 422304c...c152807 c152807598acd6121475800715101621e9dd9550 -> origin/dev-freeform  (forced update)
2026-06-06T06:01:02.0854124Z ##[endgroup]
2026-06-06T06:01:02.0856677Z ##[group]Determining the checkout info
2026-06-06T06:01:02.0859579Z ##[endgroup]
2026-06-06T06:01:02.0861424Z [command]/usr/bin/git sparse-checkout disable
2026-06-06T06:01:02.0913197Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-06T06:01:02.0951408Z ##[group]Checking out the ref
2026-06-06T06:01:02.0956012Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-06T06:01:02.1156189Z Warning: you are leaving 1 commit behind, not connected to
2026-06-06T06:01:02.1158435Z any of your branches:
2026-06-06T06:01:02.1159482Z 
2026-06-06T06:01:02.1160934Z   422304c fix(docs-site): theme sizing — mdBook root is 10px, not 16px
2026-06-06T06:01:02.1162660Z 
2026-06-06T06:01:02.1163850Z If you want to keep it by creating a new branch, this may be a good time
2026-06-06T06:01:02.1166488Z to do so with:
2026-06-06T06:01:02.1167271Z 
2026-06-06T06:01:02.1167941Z  git branch <new-branch-name> 422304c
2026-06-06T06:01:02.1169103Z 
2026-06-06T06:01:02.1169965Z Switched to a new branch 'dev-freeform'
2026-06-06T06:01:02.1172807Z Branch 'dev-freeform' set up to track remote branch 'dev-freeform' from 'origin'.
2026-06-06T06:01:02.1178464Z ##[endgroup]
2026-06-06T06:01:02.1226886Z [command]/usr/bin/git log -1 --format=%H
2026-06-06T06:01:02.1266172Z c152807598acd6121475800715101621e9dd9550
2026-06-06T06:01:02.1786818Z ##[group]Run WANT=0.1.2
2026-06-06T06:01:02.1788293Z [36;1mWANT=0.1.2[0m
2026-06-06T06:01:02.1790059Z [36;1mBIN="$HOME/.local/bin/traceable-reqs"[0m
2026-06-06T06:01:02.1792173Z [36;1mif [ -x "$BIN" ] && "$BIN" --version | grep -q " $WANT\$"; then[0m
2026-06-06T06:01:02.1794268Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-06T06:01:02.1795809Z [36;1melse[0m
2026-06-06T06:01:02.1797491Z [36;1m  # Build OUTSIDE the checkout: a clone inside it gets adopted by[0m
2026-06-06T06:01:02.1800391Z [36;1m  # the spt-core cargo workspace and refuses to build.[0m
2026-06-06T06:01:02.1802342Z [36;1m  SRC="$RUNNER_TEMP/tr-src"[0m
2026-06-06T06:01:02.1803827Z [36;1m  rm -rf "$SRC"[0m
2026-06-06T06:01:02.1805292Z [36;1m  git clone --depth 1 --branch "v$WANT" \[0m
2026-06-06T06:01:02.1807974Z [36;1m    "https://x-access-token:${GH_TOKEN}@github.com/BigscreenVR/traceable-reqs" "$SRC"[0m
2026-06-06T06:01:02.1811500Z [36;1m  cargo build --release --manifest-path "$SRC/rust/Cargo.toml"[0m
2026-06-06T06:01:02.1814077Z [36;1m  mkdir -p "$HOME/.local/bin"[0m
2026-06-06T06:01:02.1815935Z [36;1m  cp "$SRC/rust/target/release/traceable-reqs" "$BIN"[0m
2026-06-06T06:01:02.1817895Z [36;1m  ln -sf "$BIN" ./traceable-reqs[0m
2026-06-06T06:01:02.1819605Z [36;1mfi[0m
2026-06-06T06:01:02.1820911Z [36;1m./traceable-reqs --version[0m
2026-06-06T06:01:02.1852547Z shell: /usr/bin/bash -e {0}
2026-06-06T06:01:02.1853885Z env:
2026-06-06T06:01:02.1856860Z   GH_TOKEN: ***
2026-06-06T06:01:02.1857958Z ##[endgroup]
2026-06-06T06:01:02.2003260Z traceable-reqs 0.1.2
2026-06-06T06:01:02.2131496Z ##[group]Run ./traceable-reqs check --json
2026-06-06T06:01:02.2133269Z [36;1m./traceable-reqs check --json[0m
2026-06-06T06:01:02.2158513Z shell: /usr/bin/bash -e {0}
2026-06-06T06:01:02.2160069Z ##[endgroup]
2026-06-06T06:01:02.2420576Z {
2026-06-06T06:01:02.2421778Z   "schemaVersion": 1,
2026-06-06T06:01:02.2423060Z   "summary": {
2026-06-06T06:01:02.2424263Z     "requirementCount": 144,
2026-06-06T06:01:02.2425789Z     "completeCount": 144,
2026-06-06T06:01:02.2427171Z     "incompleteCount": 0,
2026-06-06T06:01:02.2428540Z     "findingCount": 0
2026-06-06T06:01:02.2429850Z   },
2026-06-06T06:01:02.2430955Z   "requirements": [
2026-06-06T06:01:02.2432153Z     {
2026-06-06T06:01:02.2433218Z       "id": "REQ-API-1",
2026-06-06T06:01:02.2435161Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-06T06:01:02.2437436Z       "requiredStages": [
2026-06-06T06:01:02.2438748Z         "impl",
2026-06-06T06:01:02.2439938Z         "unit",
2026-06-06T06:01:02.2441160Z         "int"
2026-06-06T06:01:02.2442283Z       ],
2026-06-06T06:01:02.2461419Z       "stages": {
2026-06-06T06:01:02.2463046Z         "doc": {
2026-06-06T06:01:02.2464230Z           "complete": false,
2026-06-06T06:01:02.2465601Z           "evidence": []
2026-06-06T06:01:02.2466839Z         },
2026-06-06T06:01:02.2467891Z         "impl": {
2026-06-06T06:01:02.2469074Z           "complete": true,
2026-06-06T06:01:02.2470556Z           "evidence": [
2026-06-06T06:01:02.2471853Z             {
2026-06-06T06:01:02.2473191Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.2474941Z               "line": 15
2026-06-06T06:01:02.2476237Z             }
2026-06-06T06:01:02.2477407Z           ]
2026-06-06T06:01:02.2478542Z         },
2026-06-06T06:01:02.2479991Z         "int": {
2026-06-06T06:01:02.2481255Z           "complete": true,
2026-06-06T06:01:02.2489919Z           "evidence": [
2026-06-06T06:01:02.2491372Z             {
2026-06-06T06:01:02.2492770Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.2494562Z               "line": 13
2026-06-06T06:01:02.2495815Z             }
2026-06-06T06:01:02.2496922Z           ]
2026-06-06T06:01:02.2497976Z         },
2026-06-06T06:01:02.2499039Z         "unit": {
2026-06-06T06:01:02.2500304Z           "complete": true,
2026-06-06T06:01:02.2501634Z           "evidence": [
2026-06-06T06:01:02.2502858Z             {
2026-06-06T06:01:02.2504142Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.2505835Z               "line": 403
2026-06-06T06:01:02.2507106Z             },
2026-06-06T06:01:02.2508217Z             {
2026-06-06T06:01:02.2509580Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.2511346Z               "line": 409
2026-06-06T06:01:02.2512625Z             },
2026-06-06T06:01:02.2513817Z             {
2026-06-06T06:01:02.2515126Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.2516794Z               "line": 429
2026-06-06T06:01:02.2518042Z             }
2026-06-06T06:01:02.2519116Z           ]
2026-06-06T06:01:02.2520343Z         }
2026-06-06T06:01:02.2521320Z       }
2026-06-06T06:01:02.2522274Z     },
2026-06-06T06:01:02.2523254Z     {
2026-06-06T06:01:02.2524259Z       "id": "REQ-API-2",
2026-06-06T06:01:02.2526330Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-06T06:01:02.2528709Z       "requiredStages": [
2026-06-06T06:01:02.2530769Z         "impl",
2026-06-06T06:01:02.2531836Z         "unit",
2026-06-06T06:01:02.2532896Z         "int"
2026-06-06T06:01:02.2533935Z       ],
2026-06-06T06:01:02.2534945Z       "stages": {
2026-06-06T06:01:02.2536029Z         "doc": {
2026-06-06T06:01:02.2537160Z           "complete": false,
2026-06-06T06:01:02.2538466Z           "evidence": []
2026-06-06T06:01:02.2540120Z         },
2026-06-06T06:01:02.2541136Z         "impl": {
2026-06-06T06:01:02.2542264Z           "complete": true,
2026-06-06T06:01:02.2543534Z           "evidence": [
2026-06-06T06:01:02.2545053Z             {
2026-06-06T06:01:02.2546374Z               "path": "crates/spt-store/src/history.rs",
2026-06-06T06:01:02.2548072Z               "line": 15
2026-06-06T06:01:02.2549458Z             },
2026-06-06T06:01:02.2550681Z             {
2026-06-06T06:01:02.2551945Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.2553606Z               "line": 20
2026-06-06T06:01:02.2554797Z             },
2026-06-06T06:01:02.2555853Z             {
2026-06-06T06:01:02.2557104Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.2558754Z               "line": 125
2026-06-06T06:01:02.2560341Z             },
2026-06-06T06:01:02.2561387Z             {
2026-06-06T06:01:02.2562672Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2564346Z               "line": 21
2026-06-06T06:01:02.2565526Z             },
2026-06-06T06:01:02.2566559Z             {
2026-06-06T06:01:02.2567837Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2569728Z               "line": 38
2026-06-06T06:01:02.2571091Z             },
2026-06-06T06:01:02.2572138Z             {
2026-06-06T06:01:02.2573407Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2575089Z               "line": 187
2026-06-06T06:01:02.2576281Z             },
2026-06-06T06:01:02.2577321Z             {
2026-06-06T06:01:02.2578592Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2580608Z               "line": 226
2026-06-06T06:01:02.2581824Z             },
2026-06-06T06:01:02.2582883Z             {
2026-06-06T06:01:02.2584148Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2585824Z               "line": 256
2026-06-06T06:01:02.2587022Z             },
2026-06-06T06:01:02.2588061Z             {
2026-06-06T06:01:02.2589349Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2591308Z               "line": 17
2026-06-06T06:01:02.2592489Z             },
2026-06-06T06:01:02.2593549Z             {
2026-06-06T06:01:02.2594794Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2596424Z               "line": 30
2026-06-06T06:01:02.2597623Z             },
2026-06-06T06:01:02.2598659Z             {
2026-06-06T06:01:02.2600258Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2601892Z               "line": 63
2026-06-06T06:01:02.2603073Z             },
2026-06-06T06:01:02.2604145Z             {
2026-06-06T06:01:02.2605373Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2607010Z               "line": 76
2026-06-06T06:01:02.2608194Z             }
2026-06-06T06:01:02.2609254Z           ]
2026-06-06T06:01:02.2610585Z         },
2026-06-06T06:01:02.2611596Z         "int": {
2026-06-06T06:01:02.2612724Z           "complete": true,
2026-06-06T06:01:02.2613998Z           "evidence": [
2026-06-06T06:01:02.2615176Z             {
2026-06-06T06:01:02.2616446Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.2618135Z               "line": 14
2026-06-06T06:01:02.2619368Z             },
2026-06-06T06:01:02.2620752Z             {
2026-06-06T06:01:02.2622028Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.2623710Z               "line": 151
2026-06-06T06:01:02.2624908Z             }
2026-06-06T06:01:02.2625956Z           ]
2026-06-06T06:01:02.2626955Z         },
2026-06-06T06:01:02.2627957Z         "unit": {
2026-06-06T06:01:02.2629576Z           "complete": true,
2026-06-06T06:01:02.2631728Z           "evidence": [
2026-06-06T06:01:02.2632904Z             {
2026-06-06T06:01:02.2634196Z               "path": "crates/spt-store/src/history.rs",
2026-06-06T06:01:02.2635873Z               "line": 42
2026-06-06T06:01:02.2637049Z             },
2026-06-06T06:01:02.2638110Z             {
2026-06-06T06:01:02.2639427Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.2641084Z               "line": 234
2026-06-06T06:01:02.2642306Z             },
2026-06-06T06:01:02.2643539Z             {
2026-06-06T06:01:02.2644848Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2646530Z               "line": 425
2026-06-06T06:01:02.2647719Z             },
2026-06-06T06:01:02.2648773Z             {
2026-06-06T06:01:02.2650113Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2651792Z               "line": 436
2026-06-06T06:01:02.2652991Z             },
2026-06-06T06:01:02.2654040Z             {
2026-06-06T06:01:02.2655401Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2657056Z               "line": 542
2026-06-06T06:01:02.2658251Z             },
2026-06-06T06:01:02.2659331Z             {
2026-06-06T06:01:02.2660600Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2662249Z               "line": 554
2026-06-06T06:01:02.2663440Z             },
2026-06-06T06:01:02.2664454Z             {
2026-06-06T06:01:02.2665711Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2667328Z               "line": 141
2026-06-06T06:01:02.2668507Z             },
2026-06-06T06:01:02.2669581Z             {
2026-06-06T06:01:02.2670800Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.2672395Z               "line": 176
2026-06-06T06:01:02.2673566Z             }
2026-06-06T06:01:02.2674583Z           ]
2026-06-06T06:01:02.2675557Z         }
2026-06-06T06:01:02.2676536Z       }
2026-06-06T06:01:02.2677476Z     },
2026-06-06T06:01:02.2678433Z     {
2026-06-06T06:01:02.2679472Z       "id": "REQ-API-3",
2026-06-06T06:01:02.2681039Z       "title": "commune/signoff are file-drops, not commands",
2026-06-06T06:01:02.2682848Z       "requiredStages": [
2026-06-06T06:01:02.2684070Z         "impl",
2026-06-06T06:01:02.2685126Z         "unit",
2026-06-06T06:01:02.2686158Z         "int"
2026-06-06T06:01:02.2687162Z       ],
2026-06-06T06:01:02.2688138Z       "stages": {
2026-06-06T06:01:02.2689227Z         "doc": {
2026-06-06T06:01:02.2690340Z           "complete": false,
2026-06-06T06:01:02.2691628Z           "evidence": []
2026-06-06T06:01:02.2692787Z         },
2026-06-06T06:01:02.2693777Z         "impl": {
2026-06-06T06:01:02.2694896Z           "complete": true,
2026-06-06T06:01:02.2696131Z           "evidence": [
2026-06-06T06:01:02.2697260Z             {
2026-06-06T06:01:02.2698485Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.2700130Z               "line": 27
2026-06-06T06:01:02.2701296Z             },
2026-06-06T06:01:02.2702319Z             {
2026-06-06T06:01:02.2703575Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2705220Z               "line": 362
2026-06-06T06:01:02.2706386Z             }
2026-06-06T06:01:02.2707381Z           ]
2026-06-06T06:01:02.2708341Z         },
2026-06-06T06:01:02.2709358Z         "int": {
2026-06-06T06:01:02.2710458Z           "complete": true,
2026-06-06T06:01:02.2711699Z           "evidence": [
2026-06-06T06:01:02.2712827Z             {
2026-06-06T06:01:02.2714098Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.2715764Z               "line": 203
2026-06-06T06:01:02.2716929Z             }
2026-06-06T06:01:02.2717925Z           ]
2026-06-06T06:01:02.2718893Z         },
2026-06-06T06:01:02.2719919Z         "unit": {
2026-06-06T06:01:02.2721031Z           "complete": true,
2026-06-06T06:01:02.2722282Z           "evidence": [
2026-06-06T06:01:02.2723402Z             {
2026-06-06T06:01:02.2724872Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.2726468Z               "line": 230
2026-06-06T06:01:02.2727647Z             },
2026-06-06T06:01:02.2728664Z             {
2026-06-06T06:01:02.2729970Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.2731626Z               "line": 583
2026-06-06T06:01:02.2732787Z             }
2026-06-06T06:01:02.2733785Z           ]
2026-06-06T06:01:02.2734767Z         }
2026-06-06T06:01:02.2735737Z       }
2026-06-06T06:01:02.2736674Z     },
2026-06-06T06:01:02.2737611Z     {
2026-06-06T06:01:02.2738749Z       "id": "REQ-ARCH-1",
2026-06-06T06:01:02.2740286Z       "title": "Many small acyclically-layered crates",
2026-06-06T06:01:02.2759334Z       "requiredStages": [
2026-06-06T06:01:02.2760592Z         "impl"
2026-06-06T06:01:02.2761593Z       ],
2026-06-06T06:01:02.2762545Z       "stages": {
2026-06-06T06:01:02.2763583Z         "doc": {
2026-06-06T06:01:02.2764656Z           "complete": false,
2026-06-06T06:01:02.2765982Z           "evidence": []
2026-06-06T06:01:02.2767119Z         },
2026-06-06T06:01:02.2768082Z         "impl": {
2026-06-06T06:01:02.2769214Z           "complete": true,
2026-06-06T06:01:02.2770437Z           "evidence": [
2026-06-06T06:01:02.2771548Z             {
2026-06-06T06:01:02.2772715Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-06T06:01:02.2774254Z               "line": 16
2026-06-06T06:01:02.2775384Z             },
2026-06-06T06:01:02.2776387Z             {
2026-06-06T06:01:02.2777563Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-06T06:01:02.2779199Z               "line": 12
2026-06-06T06:01:02.2780349Z             },
2026-06-06T06:01:02.2781347Z             {
2026-06-06T06:01:02.2782546Z               "path": "crates/spt-store/src/lib.rs",
2026-06-06T06:01:02.2784120Z               "line": 12
2026-06-06T06:01:02.2785254Z             }
2026-06-06T06:01:02.2786242Z           ]
2026-06-06T06:01:02.2787203Z         },
2026-06-06T06:01:02.2788195Z         "int": {
2026-06-06T06:01:02.2789311Z           "complete": false,
2026-06-06T06:01:02.2790581Z           "evidence": []
2026-06-06T06:01:02.2791721Z         },
2026-06-06T06:01:02.2792685Z         "unit": {
2026-06-06T06:01:02.2793772Z           "complete": false,
2026-06-06T06:01:02.2795036Z           "evidence": []
2026-06-06T06:01:02.2796176Z         }
2026-06-06T06:01:02.2797108Z       }
2026-06-06T06:01:02.2798027Z     },
2026-06-06T06:01:02.2798969Z     {
2026-06-06T06:01:02.2800001Z       "id": "REQ-ARCH-2",
2026-06-06T06:01:02.2801732Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-06T06:01:02.2803701Z       "requiredStages": [
2026-06-06T06:01:02.2804892Z         "impl"
2026-06-06T06:01:02.2805894Z       ],
2026-06-06T06:01:02.2806858Z       "stages": {
2026-06-06T06:01:02.2807905Z         "doc": {
2026-06-06T06:01:02.2809013Z           "complete": false,
2026-06-06T06:01:02.2810317Z           "evidence": []
2026-06-06T06:01:02.2811475Z         },
2026-06-06T06:01:02.2812464Z         "impl": {
2026-06-06T06:01:02.2813560Z           "complete": true,
2026-06-06T06:01:02.2814780Z           "evidence": [
2026-06-06T06:01:02.2815890Z             {
2026-06-06T06:01:02.2817100Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-06T06:01:02.2818693Z               "line": 18
2026-06-06T06:01:02.2819888Z             }
2026-06-06T06:01:02.2820889Z           ]
2026-06-06T06:01:02.2821867Z         },
2026-06-06T06:01:02.2822840Z         "int": {
2026-06-06T06:01:02.2823942Z           "complete": false,
2026-06-06T06:01:02.2825227Z           "evidence": []
2026-06-06T06:01:02.2826380Z         },
2026-06-06T06:01:02.2827353Z         "unit": {
2026-06-06T06:01:02.2828456Z           "complete": false,
2026-06-06T06:01:02.2829760Z           "evidence": []
2026-06-06T06:01:02.2830900Z         }
2026-06-06T06:01:02.2831837Z       }
2026-06-06T06:01:02.2832760Z     },
2026-06-06T06:01:02.2833691Z     {
2026-06-06T06:01:02.2834687Z       "id": "REQ-ARCH-3",
2026-06-06T06:01:02.2837089Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-06T06:01:02.2839419Z       "requiredStages": [
2026-06-06T06:01:02.2840636Z         "impl",
2026-06-06T06:01:02.2841908Z         "unit"
2026-06-06T06:01:02.2842983Z       ],
2026-06-06T06:01:02.2843985Z       "stages": {
2026-06-06T06:01:02.2845069Z         "doc": {
2026-06-06T06:01:02.2846215Z           "complete": false,
2026-06-06T06:01:02.2847575Z           "evidence": []
2026-06-06T06:01:02.2848776Z         },
2026-06-06T06:01:02.2850008Z         "impl": {
2026-06-06T06:01:02.2851277Z           "complete": true,
2026-06-06T06:01:02.2852542Z           "evidence": [
2026-06-06T06:01:02.2853665Z             {
2026-06-06T06:01:02.2854931Z               "path": "crates/spt-proto/src/version.rs",
2026-06-06T06:01:02.2856558Z               "line": 34
2026-06-06T06:01:02.2857716Z             },
2026-06-06T06:01:02.2858735Z             {
2026-06-06T06:01:02.2860405Z               "path": "crates/spt-proto/src/version.rs",
2026-06-06T06:01:02.2862064Z               "line": 41
2026-06-06T06:01:02.2863232Z             }
2026-06-06T06:01:02.2864230Z           ]
2026-06-06T06:01:02.2865198Z         },
2026-06-06T06:01:02.2866172Z         "int": {
2026-06-06T06:01:02.2867276Z           "complete": false,
2026-06-06T06:01:02.2868561Z           "evidence": []
2026-06-06T06:01:02.2869949Z         },
2026-06-06T06:01:02.2870964Z         "unit": {
2026-06-06T06:01:02.2872123Z           "complete": true,
2026-06-06T06:01:02.2873409Z           "evidence": [
2026-06-06T06:01:02.2874572Z             {
2026-06-06T06:01:02.2875897Z               "path": "crates/spt-proto/src/version.rs",
2026-06-06T06:01:02.2877588Z               "line": 51
2026-06-06T06:01:02.2878790Z             },
2026-06-06T06:01:02.2879945Z             {
2026-06-06T06:01:02.2881499Z               "path": "crates/spt-proto/src/version.rs",
2026-06-06T06:01:02.2883302Z               "line": 65
2026-06-06T06:01:02.2884599Z             },
2026-06-06T06:01:02.2885706Z             {
2026-06-06T06:01:02.2887077Z               "path": "crates/spt-proto/src/version.rs",
2026-06-06T06:01:02.2888895Z               "line": 74
2026-06-06T06:01:02.2890547Z             }
2026-06-06T06:01:02.2891607Z           ]
2026-06-06T06:01:02.2892670Z         }
2026-06-06T06:01:02.2893702Z       }
2026-06-06T06:01:02.2894718Z     },
2026-06-06T06:01:02.2895999Z     {
2026-06-06T06:01:02.2897199Z       "id": "REQ-ARCH-4",
2026-06-06T06:01:02.2899447Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-06T06:01:02.2902055Z       "requiredStages": [
2026-06-06T06:01:02.2903267Z         "impl",
2026-06-06T06:01:02.2904318Z         "unit"
2026-06-06T06:01:02.2905324Z       ],
2026-06-06T06:01:02.2906302Z       "stages": {
2026-06-06T06:01:02.2907365Z         "doc": {
2026-06-06T06:01:02.2908481Z           "complete": false,
2026-06-06T06:01:02.2909796Z           "evidence": []
2026-06-06T06:01:02.2910957Z         },
2026-06-06T06:01:02.2911939Z         "impl": {
2026-06-06T06:01:02.2913396Z           "complete": true,
2026-06-06T06:01:02.2914633Z           "evidence": [
2026-06-06T06:01:02.2915758Z             {
2026-06-06T06:01:02.2916975Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2918566Z               "line": 82
2026-06-06T06:01:02.2919773Z             },
2026-06-06T06:01:02.2920787Z             {
2026-06-06T06:01:02.2922010Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2923610Z               "line": 96
2026-06-06T06:01:02.2924754Z             },
2026-06-06T06:01:02.2925784Z             {
2026-06-06T06:01:02.2927007Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2928592Z               "line": 116
2026-06-06T06:01:02.2929797Z             },
2026-06-06T06:01:02.2930819Z             {
2026-06-06T06:01:02.2932035Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2933621Z               "line": 131
2026-06-06T06:01:02.2934795Z             },
2026-06-06T06:01:02.2936136Z             {
2026-06-06T06:01:02.2937335Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2938927Z               "line": 181
2026-06-06T06:01:02.2940166Z             }
2026-06-06T06:01:02.2941192Z           ]
2026-06-06T06:01:02.2942155Z         },
2026-06-06T06:01:02.2943134Z         "int": {
2026-06-06T06:01:02.2944234Z           "complete": false,
2026-06-06T06:01:02.2945501Z           "evidence": []
2026-06-06T06:01:02.2946655Z         },
2026-06-06T06:01:02.2947637Z         "unit": {
2026-06-06T06:01:02.2948950Z           "complete": true,
2026-06-06T06:01:02.2950292Z           "evidence": [
2026-06-06T06:01:02.2951416Z             {
2026-06-06T06:01:02.2952630Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2954232Z               "line": 245
2026-06-06T06:01:02.2955425Z             },
2026-06-06T06:01:02.2956431Z             {
2026-06-06T06:01:02.2957651Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2959295Z               "line": 255
2026-06-06T06:01:02.2960464Z             },
2026-06-06T06:01:02.2961458Z             {
2026-06-06T06:01:02.2962672Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2964279Z               "line": 266
2026-06-06T06:01:02.2965474Z             },
2026-06-06T06:01:02.2966482Z             {
2026-06-06T06:01:02.2967704Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2969333Z               "line": 277
2026-06-06T06:01:02.2970516Z             },
2026-06-06T06:01:02.2971529Z             {
2026-06-06T06:01:02.2972769Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2974387Z               "line": 289
2026-06-06T06:01:02.2975561Z             },
2026-06-06T06:01:02.2976586Z             {
2026-06-06T06:01:02.2977808Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2979429Z               "line": 302
2026-06-06T06:01:02.2980619Z             },
2026-06-06T06:01:02.2981639Z             {
2026-06-06T06:01:02.2982870Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2984458Z               "line": 313
2026-06-06T06:01:02.2985615Z             },
2026-06-06T06:01:02.2986639Z             {
2026-06-06T06:01:02.2987837Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2989463Z               "line": 327
2026-06-06T06:01:02.2990623Z             },
2026-06-06T06:01:02.2991626Z             {
2026-06-06T06:01:02.2992826Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.2994402Z               "line": 355
2026-06-06T06:01:02.2995635Z             }
2026-06-06T06:01:02.2996658Z           ]
2026-06-06T06:01:02.2997621Z         }
2026-06-06T06:01:02.2998566Z       }
2026-06-06T06:01:02.2999542Z     },
2026-06-06T06:01:02.3000492Z     {
2026-06-06T06:01:02.3001500Z       "id": "REQ-CONSENT-1",
2026-06-06T06:01:02.3008799Z       "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-06T06:01:02.3016292Z       "requiredStages": [
2026-06-06T06:01:02.3017500Z         "impl",
2026-06-06T06:01:02.3018531Z         "unit"
2026-06-06T06:01:02.3019573Z       ],
2026-06-06T06:01:02.3020538Z       "stages": {
2026-06-06T06:01:02.3021584Z         "doc": {
2026-06-06T06:01:02.3022682Z           "complete": false,
2026-06-06T06:01:02.3023973Z           "evidence": []
2026-06-06T06:01:02.3025126Z         },
2026-06-06T06:01:02.3026107Z         "impl": {
2026-06-06T06:01:02.3027205Z           "complete": true,
2026-06-06T06:01:02.3028435Z           "evidence": [
2026-06-06T06:01:02.3029590Z             {
2026-06-06T06:01:02.3030842Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3032450Z               "line": 27
2026-06-06T06:01:02.3033959Z             },
2026-06-06T06:01:02.3034987Z             {
2026-06-06T06:01:02.3036228Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3037839Z               "line": 75
2026-06-06T06:01:02.3038975Z             },
2026-06-06T06:01:02.3040030Z             {
2026-06-06T06:01:02.3041273Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3042870Z               "line": 98
2026-06-06T06:01:02.3044016Z             },
2026-06-06T06:01:02.3045046Z             {
2026-06-06T06:01:02.3046395Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3047982Z               "line": 82
2026-06-06T06:01:02.3049137Z             },
2026-06-06T06:01:02.3050189Z             {
2026-06-06T06:01:02.3051413Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3053000Z               "line": 109
2026-06-06T06:01:02.3054156Z             },
2026-06-06T06:01:02.3055164Z             {
2026-06-06T06:01:02.3056385Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3057989Z               "line": 127
2026-06-06T06:01:02.3060748Z             },
2026-06-06T06:01:02.3061812Z             {
2026-06-06T06:01:02.3063032Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3064619Z               "line": 142
2026-06-06T06:01:02.3065774Z             },
2026-06-06T06:01:02.3066774Z             {
2026-06-06T06:01:02.3076678Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3078426Z               "line": 3173
2026-06-06T06:01:02.3079733Z             }
2026-06-06T06:01:02.3080809Z           ]
2026-06-06T06:01:02.3081766Z         },
2026-06-06T06:01:02.3082717Z         "int": {
2026-06-06T06:01:02.3083786Z           "complete": false,
2026-06-06T06:01:02.3085027Z           "evidence": []
2026-06-06T06:01:02.3086174Z         },
2026-06-06T06:01:02.3087148Z         "unit": {
2026-06-06T06:01:02.3088219Z           "complete": true,
2026-06-06T06:01:02.3089469Z           "evidence": [
2026-06-06T06:01:02.3090602Z             {
2026-06-06T06:01:02.3091818Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3093420Z               "line": 318
2026-06-06T06:01:02.3094560Z             },
2026-06-06T06:01:02.3095556Z             {
2026-06-06T06:01:02.3096790Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3098387Z               "line": 343
2026-06-06T06:01:02.3099570Z             },
2026-06-06T06:01:02.3100572Z             {
2026-06-06T06:01:02.3101806Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3103427Z               "line": 354
2026-06-06T06:01:02.3104581Z             },
2026-06-06T06:01:02.3105577Z             {
2026-06-06T06:01:02.3106793Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3108387Z               "line": 165
2026-06-06T06:01:02.3109572Z             },
2026-06-06T06:01:02.3110570Z             {
2026-06-06T06:01:02.3111775Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3113368Z               "line": 184
2026-06-06T06:01:02.3114508Z             },
2026-06-06T06:01:02.3115496Z             {
2026-06-06T06:01:02.3116687Z               "path": "crates/spt-store/src/grants.rs",
2026-06-06T06:01:02.3118279Z               "line": 204
2026-06-06T06:01:02.3119666Z             },
2026-06-06T06:01:02.3121023Z             {
2026-06-06T06:01:02.3122169Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3123675Z               "line": 3510
2026-06-06T06:01:02.3124830Z             }
2026-06-06T06:01:02.3125801Z           ]
2026-06-06T06:01:02.3126763Z         }
2026-06-06T06:01:02.3127700Z       }
2026-06-06T06:01:02.3128631Z     },
2026-06-06T06:01:02.3129734Z     {
2026-06-06T06:01:02.3130729Z       "id": "REQ-CONSENT-2",
2026-06-06T06:01:02.3137424Z       "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-06T06:01:02.3144653Z       "requiredStages": [
2026-06-06T06:01:02.3145836Z         "impl",
2026-06-06T06:01:02.3146857Z         "unit"
2026-06-06T06:01:02.3147846Z       ],
2026-06-06T06:01:02.3148789Z       "stages": {
2026-06-06T06:01:02.3149858Z         "doc": {
2026-06-06T06:01:02.3150939Z           "complete": false,
2026-06-06T06:01:02.3152177Z           "evidence": []
2026-06-06T06:01:02.3153309Z         },
2026-06-06T06:01:02.3154422Z         "impl": {
2026-06-06T06:01:02.3155514Z           "complete": true,
2026-06-06T06:01:02.3156734Z           "evidence": [
2026-06-06T06:01:02.3157843Z             {
2026-06-06T06:01:02.3159066Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3160695Z               "line": 140
2026-06-06T06:01:02.3161823Z             },
2026-06-06T06:01:02.3162813Z             {
2026-06-06T06:01:02.3164051Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3165644Z               "line": 158
2026-06-06T06:01:02.3166788Z             },
2026-06-06T06:01:02.3167786Z             {
2026-06-06T06:01:02.3169020Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3170657Z               "line": 192
2026-06-06T06:01:02.3171798Z             },
2026-06-06T06:01:02.3172796Z             {
2026-06-06T06:01:02.3174027Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3175623Z               "line": 234
2026-06-06T06:01:02.3176780Z             },
2026-06-06T06:01:02.3177776Z             {
2026-06-06T06:01:02.3178998Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3180629Z               "line": 262
2026-06-06T06:01:02.3181765Z             },
2026-06-06T06:01:02.3182752Z             {
2026-06-06T06:01:02.3183974Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3185576Z               "line": 293
2026-06-06T06:01:02.3209233Z             },
2026-06-06T06:01:02.3210859Z             {
2026-06-06T06:01:02.3212022Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3213531Z               "line": 3066
2026-06-06T06:01:02.3214685Z             },
2026-06-06T06:01:02.3215671Z             {
2026-06-06T06:01:02.3216782Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3218265Z               "line": 3106
2026-06-06T06:01:02.3219465Z             }
2026-06-06T06:01:02.3220446Z           ]
2026-06-06T06:01:02.3221402Z         },
2026-06-06T06:01:02.3222418Z         "int": {
2026-06-06T06:01:02.3223495Z           "complete": false,
2026-06-06T06:01:02.3224735Z           "evidence": []
2026-06-06T06:01:02.3225869Z         },
2026-06-06T06:01:02.3226824Z         "unit": {
2026-06-06T06:01:02.3227896Z           "complete": true,
2026-06-06T06:01:02.3229105Z           "evidence": [
2026-06-06T06:01:02.3230243Z             {
2026-06-06T06:01:02.3231483Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3233093Z               "line": 382
2026-06-06T06:01:02.3234232Z             },
2026-06-06T06:01:02.3235221Z             {
2026-06-06T06:01:02.3236444Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3238043Z               "line": 396
2026-06-06T06:01:02.3239217Z             },
2026-06-06T06:01:02.3240224Z             {
2026-06-06T06:01:02.3241464Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3243070Z               "line": 432
2026-06-06T06:01:02.3244216Z             },
2026-06-06T06:01:02.3245221Z             {
2026-06-06T06:01:02.3246444Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.3248046Z               "line": 464
2026-06-06T06:01:02.3249337Z             },
2026-06-06T06:01:02.3250337Z             {
2026-06-06T06:01:02.3251467Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3252971Z               "line": 4181
2026-06-06T06:01:02.3254130Z             },
2026-06-06T06:01:02.3255547Z             {
2026-06-06T06:01:02.3256669Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3258156Z               "line": 4241
2026-06-06T06:01:02.3259336Z             }
2026-06-06T06:01:02.3260316Z           ]
2026-06-06T06:01:02.3261273Z         }
2026-06-06T06:01:02.3262218Z       }
2026-06-06T06:01:02.3263129Z     },
2026-06-06T06:01:02.3264048Z     {
2026-06-06T06:01:02.3265028Z       "id": "REQ-DAEMON-1",
2026-06-06T06:01:02.3266761Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-06T06:01:02.3268908Z       "requiredStages": [
2026-06-06T06:01:02.3270141Z         "impl",
2026-06-06T06:01:02.3271159Z         "unit",
2026-06-06T06:01:02.3272164Z         "int"
2026-06-06T06:01:02.3273154Z       ],
2026-06-06T06:01:02.3274103Z       "stages": {
2026-06-06T06:01:02.3275134Z         "doc": {
2026-06-06T06:01:02.3276202Z           "complete": false,
2026-06-06T06:01:02.3277456Z           "evidence": []
2026-06-06T06:01:02.3278607Z         },
2026-06-06T06:01:02.3279616Z         "impl": {
2026-06-06T06:01:02.3280688Z           "complete": true,
2026-06-06T06:01:02.3281897Z           "evidence": [
2026-06-06T06:01:02.3283003Z             {
2026-06-06T06:01:02.3284229Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3285815Z               "line": 12
2026-06-06T06:01:02.3286943Z             },
2026-06-06T06:01:02.3287935Z             {
2026-06-06T06:01:02.3289224Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3291145Z               "line": 16
2026-06-06T06:01:02.3292294Z             },
2026-06-06T06:01:02.3293301Z             {
2026-06-06T06:01:02.3294510Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-06T06:01:02.3296083Z               "line": 15
2026-06-06T06:01:02.3297211Z             },
2026-06-06T06:01:02.3298209Z             {
2026-06-06T06:01:02.3299579Z               "path": "crates/spt/src/api/live.rs",
2026-06-06T06:01:02.3301299Z               "line": 13
2026-06-06T06:01:02.3302440Z             }
2026-06-06T06:01:02.3303423Z           ]
2026-06-06T06:01:02.3304363Z         },
2026-06-06T06:01:02.3305311Z         "int": {
2026-06-06T06:01:02.3306385Z           "complete": true,
2026-06-06T06:01:02.3312443Z           "evidence": [
2026-06-06T06:01:02.3313656Z             {
2026-06-06T06:01:02.3314953Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-06T06:01:02.3316606Z               "line": 32
2026-06-06T06:01:02.3317717Z             }
2026-06-06T06:01:02.3318710Z           ]
2026-06-06T06:01:02.3319719Z         },
2026-06-06T06:01:02.3320719Z         "unit": {
2026-06-06T06:01:02.3321800Z           "complete": true,
2026-06-06T06:01:02.3323016Z           "evidence": [
2026-06-06T06:01:02.3324117Z             {
2026-06-06T06:01:02.3325329Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3326911Z               "line": 254
2026-06-06T06:01:02.3328040Z             },
2026-06-06T06:01:02.3329028Z             {
2026-06-06T06:01:02.3330303Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3331892Z               "line": 262
2026-06-06T06:01:02.3333028Z             },
2026-06-06T06:01:02.3334010Z             {
2026-06-06T06:01:02.3335224Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3336812Z               "line": 275
2026-06-06T06:01:02.3337938Z             },
2026-06-06T06:01:02.3338937Z             {
2026-06-06T06:01:02.3340190Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3341786Z               "line": 283
2026-06-06T06:01:02.3342952Z             },
2026-06-06T06:01:02.3343945Z             {
2026-06-06T06:01:02.3345186Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3346817Z               "line": 536
2026-06-06T06:01:02.3347986Z             },
2026-06-06T06:01:02.3348989Z             {
2026-06-06T06:01:02.3350275Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3352202Z               "line": 595
2026-06-06T06:01:02.3353339Z             },
2026-06-06T06:01:02.3354323Z             {
2026-06-06T06:01:02.3355528Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-06T06:01:02.3357095Z               "line": 100
2026-06-06T06:01:02.3358220Z             },
2026-06-06T06:01:02.3359244Z             {
2026-06-06T06:01:02.3360511Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-06T06:01:02.3362107Z               "line": 125
2026-06-06T06:01:02.3363245Z             }
2026-06-06T06:01:02.3364211Z           ]
2026-06-06T06:01:02.3365358Z         }
2026-06-06T06:01:02.3366306Z       }
2026-06-06T06:01:02.3367229Z     },
2026-06-06T06:01:02.3368143Z     {
2026-06-06T06:01:02.3369141Z       "id": "REQ-DAEMON-2",
2026-06-06T06:01:02.3371033Z       "title": "Broker/brain split for seamless self-update",
2026-06-06T06:01:02.3372779Z       "requiredStages": [
2026-06-06T06:01:02.3373950Z         "impl",
2026-06-06T06:01:02.3374964Z         "unit",
2026-06-06T06:01:02.3375994Z         "int"
2026-06-06T06:01:02.3376967Z       ],
2026-06-06T06:01:02.3377912Z       "stages": {
2026-06-06T06:01:02.3378943Z         "doc": {
2026-06-06T06:01:02.3380428Z           "complete": false,
2026-06-06T06:01:02.3381667Z           "evidence": []
2026-06-06T06:01:02.3382785Z         },
2026-06-06T06:01:02.3383735Z         "impl": {
2026-06-06T06:01:02.3384818Z           "complete": true,
2026-06-06T06:01:02.3386016Z           "evidence": [
2026-06-06T06:01:02.3387103Z             {
2026-06-06T06:01:02.3388315Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.3390259Z               "line": 23
2026-06-06T06:01:02.3391390Z             },
2026-06-06T06:01:02.3392384Z             {
2026-06-06T06:01:02.3393575Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.3395130Z               "line": 497
2026-06-06T06:01:02.3396263Z             },
2026-06-06T06:01:02.3397256Z             {
2026-06-06T06:01:02.3398430Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.3400387Z               "line": 650
2026-06-06T06:01:02.3401540Z             },
2026-06-06T06:01:02.3402526Z             {
2026-06-06T06:01:02.3403765Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.3405409Z               "line": 32
2026-06-06T06:01:02.3406539Z             },
2026-06-06T06:01:02.3407526Z             {
2026-06-06T06:01:02.3408726Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.3410374Z               "line": 191
2026-06-06T06:01:02.3411516Z             },
2026-06-06T06:01:02.3416351Z             {
2026-06-06T06:01:02.3417635Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.3419319Z               "line": 524
2026-06-06T06:01:02.3420459Z             },
2026-06-06T06:01:02.3421447Z             {
2026-06-06T06:01:02.3422655Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.3424238Z               "line": 751
2026-06-06T06:01:02.3425384Z             },
2026-06-06T06:01:02.3426383Z             {
2026-06-06T06:01:02.3427571Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-06T06:01:02.3429119Z               "line": 11
2026-06-06T06:01:02.3430280Z             },
2026-06-06T06:01:02.3431269Z             {
2026-06-06T06:01:02.3432478Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.3434053Z               "line": 69
2026-06-06T06:01:02.3435172Z             },
2026-06-06T06:01:02.3436171Z             {
2026-06-06T06:01:02.3437329Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.3438867Z               "line": 13
2026-06-06T06:01:02.3440032Z             },
2026-06-06T06:01:02.3441022Z             {
2026-06-06T06:01:02.3442231Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3443811Z               "line": 27
2026-06-06T06:01:02.3444923Z             },
2026-06-06T06:01:02.3445921Z             {
2026-06-06T06:01:02.3447129Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3449011Z               "line": 94
2026-06-06T06:01:02.3450536Z             },
2026-06-06T06:01:02.3451520Z             {
2026-06-06T06:01:02.3452724Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3454312Z               "line": 400
2026-06-06T06:01:02.3455452Z             },
2026-06-06T06:01:02.3456431Z             {
2026-06-06T06:01:02.3457663Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3459294Z               "line": 513
2026-06-06T06:01:02.3460431Z             },
2026-06-06T06:01:02.3461551Z             {
2026-06-06T06:01:02.3462794Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3464388Z               "line": 547
2026-06-06T06:01:02.3465509Z             },
2026-06-06T06:01:02.3466498Z             {
2026-06-06T06:01:02.3467715Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3469348Z               "line": 589
2026-06-06T06:01:02.3470499Z             },
2026-06-06T06:01:02.3471481Z             {
2026-06-06T06:01:02.3472703Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3474288Z               "line": 634
2026-06-06T06:01:02.3475417Z             },
2026-06-06T06:01:02.3476396Z             {
2026-06-06T06:01:02.3477643Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-06T06:01:02.3479283Z               "line": 10
2026-06-06T06:01:02.3480388Z             }
2026-06-06T06:01:02.3481356Z           ]
2026-06-06T06:01:02.3482289Z         },
2026-06-06T06:01:02.3483244Z         "int": {
2026-06-06T06:01:02.3484298Z           "complete": true,
2026-06-06T06:01:02.3485502Z           "evidence": [
2026-06-06T06:01:02.3486601Z             {
2026-06-06T06:01:02.3487827Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-06T06:01:02.3489438Z               "line": 17
2026-06-06T06:01:02.3490547Z             },
2026-06-06T06:01:02.3491523Z             {
2026-06-06T06:01:02.3492787Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-06T06:01:02.3494430Z               "line": 33
2026-06-06T06:01:02.3495534Z             },
2026-06-06T06:01:02.3496509Z             {
2026-06-06T06:01:02.3497738Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-06T06:01:02.3499355Z               "line": 19
2026-06-06T06:01:02.3500463Z             },
2026-06-06T06:01:02.3501456Z             {
2026-06-06T06:01:02.3502716Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-06T06:01:02.3504342Z               "line": 70
2026-06-06T06:01:02.3505458Z             },
2026-06-06T06:01:02.3506444Z             {
2026-06-06T06:01:02.3507722Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-06T06:01:02.3509382Z               "line": 90
2026-06-06T06:01:02.3510491Z             },
2026-06-06T06:01:02.3511480Z             {
2026-06-06T06:01:02.3512730Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-06T06:01:02.3514357Z               "line": 160
2026-06-06T06:01:02.3515501Z             },
2026-06-06T06:01:02.3516481Z             {
2026-06-06T06:01:02.3521481Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-06T06:01:02.3523169Z               "line": 196
2026-06-06T06:01:02.3524295Z             },
2026-06-06T06:01:02.3525277Z             {
2026-06-06T06:01:02.3526531Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-06T06:01:02.3528153Z               "line": 121
2026-06-06T06:01:02.3529328Z             }
2026-06-06T06:01:02.3530303Z           ]
2026-06-06T06:01:02.3531242Z         },
2026-06-06T06:01:02.3532221Z         "unit": {
2026-06-06T06:01:02.3533279Z           "complete": true,
2026-06-06T06:01:02.3534463Z           "evidence": [
2026-06-06T06:01:02.3535555Z             {
2026-06-06T06:01:02.3536725Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-06T06:01:02.3538267Z               "line": 62
2026-06-06T06:01:02.3539408Z             },
2026-06-06T06:01:02.3540387Z             {
2026-06-06T06:01:02.3541827Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-06T06:01:02.3543380Z               "line": 76
2026-06-06T06:01:02.3544490Z             },
2026-06-06T06:01:02.3545473Z             {
2026-06-06T06:01:02.3546650Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-06T06:01:02.3548192Z               "line": 88
2026-06-06T06:01:02.3549554Z             },
2026-06-06T06:01:02.3550854Z             {
2026-06-06T06:01:02.3552115Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.3553700Z               "line": 264
2026-06-06T06:01:02.3555012Z             },
2026-06-06T06:01:02.3556016Z             {
2026-06-06T06:01:02.3557178Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.3558715Z               "line": 551
2026-06-06T06:01:02.3560199Z             },
2026-06-06T06:01:02.3561178Z             {
2026-06-06T06:01:02.3562337Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.3563872Z               "line": 559
2026-06-06T06:01:02.3565025Z             },
2026-06-06T06:01:02.3566000Z             {
2026-06-06T06:01:02.3567167Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.3568690Z               "line": 576
2026-06-06T06:01:02.3569864Z             },
2026-06-06T06:01:02.3570846Z             {
2026-06-06T06:01:02.3572000Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.3573539Z               "line": 621
2026-06-06T06:01:02.3574664Z             },
2026-06-06T06:01:02.3575641Z             {
2026-06-06T06:01:02.3576859Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3578429Z               "line": 701
2026-06-06T06:01:02.3579604Z             },
2026-06-06T06:01:02.3580582Z             {
2026-06-06T06:01:02.3581785Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.3583355Z               "line": 713
2026-06-06T06:01:02.3584490Z             },
2026-06-06T06:01:02.3585467Z             {
2026-06-06T06:01:02.3586711Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-06T06:01:02.3588318Z               "line": 112
2026-06-06T06:01:02.3589470Z             }
2026-06-06T06:01:02.3590434Z           ]
2026-06-06T06:01:02.3591367Z         }
2026-06-06T06:01:02.3592280Z       }
2026-06-06T06:01:02.3593195Z     },
2026-06-06T06:01:02.3594108Z     {
2026-06-06T06:01:02.3595079Z       "id": "REQ-DAEMON-3",
2026-06-06T06:01:02.3596681Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-06T06:01:02.3598529Z       "requiredStages": [
2026-06-06T06:01:02.3599926Z         "impl",
2026-06-06T06:01:02.3601075Z         "unit",
2026-06-06T06:01:02.3602068Z         "int"
2026-06-06T06:01:02.3603026Z       ],
2026-06-06T06:01:02.3603975Z       "stages": {
2026-06-06T06:01:02.3604999Z         "doc": {
2026-06-06T06:01:02.3606054Z           "complete": false,
2026-06-06T06:01:02.3607270Z           "evidence": []
2026-06-06T06:01:02.3608387Z         },
2026-06-06T06:01:02.3609409Z         "impl": {
2026-06-06T06:01:02.3610484Z           "complete": true,
2026-06-06T06:01:02.3611675Z           "evidence": [
2026-06-06T06:01:02.3612764Z             {
2026-06-06T06:01:02.3613975Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.3615526Z               "line": 14
2026-06-06T06:01:02.3616630Z             },
2026-06-06T06:01:02.3617610Z             {
2026-06-06T06:01:02.3622539Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-06T06:01:02.3624260Z               "line": 11
2026-06-06T06:01:02.3625377Z             },
2026-06-06T06:01:02.3626391Z             {
2026-06-06T06:01:02.3627539Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.3629041Z               "line": 247
2026-06-06T06:01:02.3630592Z             },
2026-06-06T06:01:02.3631579Z             {
2026-06-06T06:01:02.3632687Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3634145Z               "line": 1026
2026-06-06T06:01:02.3635269Z             }
2026-06-06T06:01:02.3636540Z           ]
2026-06-06T06:01:02.3637476Z         },
2026-06-06T06:01:02.3638421Z         "int": {
2026-06-06T06:01:02.3639574Z           "complete": true,
2026-06-06T06:01:02.3640786Z           "evidence": [
2026-06-06T06:01:02.3641884Z             {
2026-06-06T06:01:02.3643088Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.3644651Z               "line": 43
2026-06-06T06:01:02.3645767Z             },
2026-06-06T06:01:02.3646756Z             {
2026-06-06T06:01:02.3647967Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.3649738Z               "line": 320
2026-06-06T06:01:02.3650882Z             }
2026-06-06T06:01:02.3651857Z           ]
2026-06-06T06:01:02.3652786Z         },
2026-06-06T06:01:02.3653722Z         "unit": {
2026-06-06T06:01:02.3654781Z           "complete": true,
2026-06-06T06:01:02.3655964Z           "evidence": [
2026-06-06T06:01:02.3657044Z             {
2026-06-06T06:01:02.3658245Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.3659862Z               "line": 400
2026-06-06T06:01:02.3660982Z             }
2026-06-06T06:01:02.3661949Z           ]
2026-06-06T06:01:02.3662884Z         }
2026-06-06T06:01:02.3663802Z       }
2026-06-06T06:01:02.3664713Z     },
2026-06-06T06:01:02.3665624Z     {
2026-06-06T06:01:02.3666588Z       "id": "REQ-DAEMON-4",
2026-06-06T06:01:02.3667994Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-06T06:01:02.3669626Z       "requiredStages": [
2026-06-06T06:01:02.3670777Z         "impl",
2026-06-06T06:01:02.3671796Z         "unit",
2026-06-06T06:01:02.3672785Z         "int"
2026-06-06T06:01:02.3673755Z       ],
2026-06-06T06:01:02.3674697Z       "stages": {
2026-06-06T06:01:02.3675714Z         "doc": {
2026-06-06T06:01:02.3676781Z           "complete": false,
2026-06-06T06:01:02.3677998Z           "evidence": []
2026-06-06T06:01:02.3679108Z         },
2026-06-06T06:01:02.3680098Z         "impl": {
2026-06-06T06:01:02.3681167Z           "complete": true,
2026-06-06T06:01:02.3682372Z           "evidence": [
2026-06-06T06:01:02.3683474Z             {
2026-06-06T06:01:02.3684765Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3686367Z               "line": 347
2026-06-06T06:01:02.3687494Z             },
2026-06-06T06:01:02.3688471Z             {
2026-06-06T06:01:02.3689720Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3691298Z               "line": 409
2026-06-06T06:01:02.3692417Z             },
2026-06-06T06:01:02.3693383Z             {
2026-06-06T06:01:02.3694614Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3696200Z               "line": 431
2026-06-06T06:01:02.3697321Z             }
2026-06-06T06:01:02.3698281Z           ]
2026-06-06T06:01:02.3699233Z         },
2026-06-06T06:01:02.3700173Z         "int": {
2026-06-06T06:01:02.3701223Z           "complete": true,
2026-06-06T06:01:02.3702410Z           "evidence": [
2026-06-06T06:01:02.3703511Z             {
2026-06-06T06:01:02.3704756Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-06T06:01:02.3706381Z               "line": 34
2026-06-06T06:01:02.3707493Z             }
2026-06-06T06:01:02.3708459Z           ]
2026-06-06T06:01:02.3709430Z         },
2026-06-06T06:01:02.3710374Z         "unit": {
2026-06-06T06:01:02.3711435Z           "complete": true,
2026-06-06T06:01:02.3712611Z           "evidence": [
2026-06-06T06:01:02.3713693Z             {
2026-06-06T06:01:02.3714884Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.3720108Z               "line": 353
2026-06-06T06:01:02.3721390Z             },
2026-06-06T06:01:02.3722369Z             {
2026-06-06T06:01:02.3723583Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3725163Z               "line": 725
2026-06-06T06:01:02.3726281Z             },
2026-06-06T06:01:02.3727260Z             {
2026-06-06T06:01:02.3728462Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3730371Z               "line": 776
2026-06-06T06:01:02.3731498Z             },
2026-06-06T06:01:02.3732467Z             {
2026-06-06T06:01:02.3733677Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3735269Z               "line": 800
2026-06-06T06:01:02.3736384Z             },
2026-06-06T06:01:02.3737356Z             {
2026-06-06T06:01:02.3738568Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.3740184Z               "line": 830
2026-06-06T06:01:02.3741307Z             }
2026-06-06T06:01:02.3742467Z           ]
2026-06-06T06:01:02.3743424Z         }
2026-06-06T06:01:02.3744344Z       }
2026-06-06T06:01:02.3745249Z     },
2026-06-06T06:01:02.3746153Z     {
2026-06-06T06:01:02.3747109Z       "id": "REQ-DOCS-1",
2026-06-06T06:01:02.3748955Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-06T06:01:02.3751153Z       "requiredStages": [
2026-06-06T06:01:02.3752306Z         "doc",
2026-06-06T06:01:02.3753308Z         "impl"
2026-06-06T06:01:02.3754293Z       ],
2026-06-06T06:01:02.3755234Z       "stages": {
2026-06-06T06:01:02.3756252Z         "doc": {
2026-06-06T06:01:02.3757302Z           "complete": true,
2026-06-06T06:01:02.3758489Z           "evidence": [
2026-06-06T06:01:02.3759899Z             {
2026-06-06T06:01:02.3761047Z               "path": "docs-site/src/index.md",
2026-06-06T06:01:02.3762515Z               "line": 50
2026-06-06T06:01:02.3763619Z             }
2026-06-06T06:01:02.3764027Z           ]
2026-06-06T06:01:02.3764435Z         },
2026-06-06T06:01:02.3764878Z         "impl": {
2026-06-06T06:01:02.3765344Z           "complete": true,
2026-06-06T06:01:02.3765786Z           "evidence": [
2026-06-06T06:01:02.3766188Z             {
2026-06-06T06:01:02.3766857Z               "path": ".github/workflows/docs-publish.yml",
2026-06-06T06:01:02.3767285Z               "line": 12
2026-06-06T06:01:02.3767699Z             },
2026-06-06T06:01:02.3768110Z             {
2026-06-06T06:01:02.3768685Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.3769124Z               "line": 14
2026-06-06T06:01:02.3769586Z             }
2026-06-06T06:01:02.3770009Z           ]
2026-06-06T06:01:02.3770408Z         },
2026-06-06T06:01:02.3770833Z         "int": {
2026-06-06T06:01:02.3771305Z           "complete": false,
2026-06-06T06:01:02.3771749Z           "evidence": []
2026-06-06T06:01:02.3772158Z         },
2026-06-06T06:01:02.3772569Z         "unit": {
2026-06-06T06:01:02.3773038Z           "complete": false,
2026-06-06T06:01:02.3773499Z           "evidence": []
2026-06-06T06:01:02.3773910Z         }
2026-06-06T06:01:02.3774310Z       }
2026-06-06T06:01:02.3774716Z     },
2026-06-06T06:01:02.3775119Z     {
2026-06-06T06:01:02.3775580Z       "id": "REQ-DOCS-2",
2026-06-06T06:01:02.3777332Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-06T06:01:02.3778083Z       "requiredStages": [
2026-06-06T06:01:02.3778623Z         "doc",
2026-06-06T06:01:02.3779251Z         "int"
2026-06-06T06:01:02.3779872Z       ],
2026-06-06T06:01:02.3780327Z       "stages": {
2026-06-06T06:01:02.3780746Z         "doc": {
2026-06-06T06:01:02.3781217Z           "complete": true,
2026-06-06T06:01:02.3781655Z           "evidence": [
2026-06-06T06:01:02.3782065Z             {
2026-06-06T06:01:02.3782774Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-06T06:01:02.3783216Z               "line": 3
2026-06-06T06:01:02.3783632Z             },
2026-06-06T06:01:02.3784041Z             {
2026-06-06T06:01:02.3784770Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-06T06:01:02.3785205Z               "line": 3
2026-06-06T06:01:02.3785614Z             }
2026-06-06T06:01:02.3786028Z           ]
2026-06-06T06:01:02.3786436Z         },
2026-06-06T06:01:02.3786861Z         "impl": {
2026-06-06T06:01:02.3787323Z           "complete": false,
2026-06-06T06:01:02.3787779Z           "evidence": []
2026-06-06T06:01:02.3788176Z         },
2026-06-06T06:01:02.3788859Z         "int": {
2026-06-06T06:01:02.3789387Z           "complete": true,
2026-06-06T06:01:02.3789848Z           "evidence": [
2026-06-06T06:01:02.3790263Z             {
2026-06-06T06:01:02.3790920Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-06T06:01:02.3791373Z               "line": 14
2026-06-06T06:01:02.3791776Z             }
2026-06-06T06:01:02.3792198Z           ]
2026-06-06T06:01:02.3792606Z         },
2026-06-06T06:01:02.3793032Z         "unit": {
2026-06-06T06:01:02.3793504Z           "complete": false,
2026-06-06T06:01:02.3794089Z           "evidence": []
2026-06-06T06:01:02.3794523Z         }
2026-06-06T06:01:02.3794930Z       }
2026-06-06T06:01:02.3795343Z     },
2026-06-06T06:01:02.3795781Z     {
2026-06-06T06:01:02.3796257Z       "id": "REQ-DOCS-3",
2026-06-06T06:01:02.3797469Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-06T06:01:02.3797952Z       "requiredStages": [
2026-06-06T06:01:02.3798370Z         "doc"
2026-06-06T06:01:02.3798803Z       ],
2026-06-06T06:01:02.3799294Z       "stages": {
2026-06-06T06:01:02.3799709Z         "doc": {
2026-06-06T06:01:02.3800183Z           "complete": true,
2026-06-06T06:01:02.3800638Z           "evidence": [
2026-06-06T06:01:02.3801047Z             {
2026-06-06T06:01:02.3801619Z               "path": "docs-site/src/index.md",
2026-06-06T06:01:02.3802063Z               "line": 42
2026-06-06T06:01:02.3802479Z             }
2026-06-06T06:01:02.3802897Z           ]
2026-06-06T06:01:02.3803315Z         },
2026-06-06T06:01:02.3803749Z         "impl": {
2026-06-06T06:01:02.3804258Z           "complete": false,
2026-06-06T06:01:02.3804721Z           "evidence": []
2026-06-06T06:01:02.3805124Z         },
2026-06-06T06:01:02.3805551Z         "int": {
2026-06-06T06:01:02.3806015Z           "complete": false,
2026-06-06T06:01:02.3806471Z           "evidence": []
2026-06-06T06:01:02.3806885Z         },
2026-06-06T06:01:02.3807300Z         "unit": {
2026-06-06T06:01:02.3812323Z           "complete": false,
2026-06-06T06:01:02.3812974Z           "evidence": []
2026-06-06T06:01:02.3813394Z         }
2026-06-06T06:01:02.3813797Z       }
2026-06-06T06:01:02.3814208Z     },
2026-06-06T06:01:02.3814611Z     {
2026-06-06T06:01:02.3815063Z       "id": "REQ-DOCS-4",
2026-06-06T06:01:02.3816214Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-06T06:01:02.3816687Z       "requiredStages": [
2026-06-06T06:01:02.3817109Z         "doc",
2026-06-06T06:01:02.3817527Z         "impl",
2026-06-06T06:01:02.3817955Z         "unit"
2026-06-06T06:01:02.3818365Z       ],
2026-06-06T06:01:02.3818800Z       "stages": {
2026-06-06T06:01:02.3819345Z         "doc": {
2026-06-06T06:01:02.3819821Z           "complete": true,
2026-06-06T06:01:02.3820277Z           "evidence": [
2026-06-06T06:01:02.3820680Z             {
2026-06-06T06:01:02.3821250Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-06T06:01:02.3821695Z               "line": 35
2026-06-06T06:01:02.3822103Z             }
2026-06-06T06:01:02.3822531Z           ]
2026-06-06T06:01:02.3822934Z         },
2026-06-06T06:01:02.3823364Z         "impl": {
2026-06-06T06:01:02.3823825Z           "complete": true,
2026-06-06T06:01:02.3824284Z           "evidence": [
2026-06-06T06:01:02.3824702Z             {
2026-06-06T06:01:02.3825365Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.3825824Z               "line": 522
2026-06-06T06:01:02.3826233Z             },
2026-06-06T06:01:02.3826641Z             {
2026-06-06T06:01:02.3827199Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.3827665Z               "line": 15
2026-06-06T06:01:02.3828080Z             }
2026-06-06T06:01:02.3828486Z           ]
2026-06-06T06:01:02.3828898Z         },
2026-06-06T06:01:02.3829367Z         "int": {
2026-06-06T06:01:02.3829856Z           "complete": false,
2026-06-06T06:01:02.3830307Z           "evidence": []
2026-06-06T06:01:02.3830722Z         },
2026-06-06T06:01:02.3831158Z         "unit": {
2026-06-06T06:01:02.3831891Z           "complete": true,
2026-06-06T06:01:02.3832343Z           "evidence": [
2026-06-06T06:01:02.3832750Z             {
2026-06-06T06:01:02.3833424Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.3833880Z               "line": 957
2026-06-06T06:01:02.3834300Z             }
2026-06-06T06:01:02.3834719Z           ]
2026-06-06T06:01:02.3835126Z         }
2026-06-06T06:01:02.3835542Z       }
2026-06-06T06:01:02.3835940Z     },
2026-06-06T06:01:02.3836347Z     {
2026-06-06T06:01:02.3836797Z       "id": "REQ-DOCS-5",
2026-06-06T06:01:02.3838067Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-06T06:01:02.3838565Z       "requiredStages": [
2026-06-06T06:01:02.3838983Z         "impl",
2026-06-06T06:01:02.3839608Z         "int"
2026-06-06T06:01:02.3840314Z       ],
2026-06-06T06:01:02.3840801Z       "stages": {
2026-06-06T06:01:02.3841291Z         "doc": {
2026-06-06T06:01:02.3841864Z           "complete": false,
2026-06-06T06:01:02.3842454Z           "evidence": []
2026-06-06T06:01:02.3843000Z         },
2026-06-06T06:01:02.3843642Z         "impl": {
2026-06-06T06:01:02.3844266Z           "complete": true,
2026-06-06T06:01:02.3844792Z           "evidence": [
2026-06-06T06:01:02.3845274Z             {
2026-06-06T06:01:02.3846050Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.3846586Z               "line": 523
2026-06-06T06:01:02.3847062Z             },
2026-06-06T06:01:02.3847524Z             {
2026-06-06T06:01:02.3848149Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.3848733Z               "line": 109
2026-06-06T06:01:02.3849270Z             }
2026-06-06T06:01:02.3849766Z           ]
2026-06-06T06:01:02.3850224Z         },
2026-06-06T06:01:02.3850704Z         "int": {
2026-06-06T06:01:02.3851222Z           "complete": true,
2026-06-06T06:01:02.3851686Z           "evidence": [
2026-06-06T06:01:02.3852164Z             {
2026-06-06T06:01:02.3852807Z               "path": ".github/workflows/ci.yml",
2026-06-06T06:01:02.3853370Z               "line": 84
2026-06-06T06:01:02.3853856Z             },
2026-06-06T06:01:02.3854301Z             {
2026-06-06T06:01:02.3855062Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.3855575Z               "line": 991
2026-06-06T06:01:02.3856073Z             }
2026-06-06T06:01:02.3856553Z           ]
2026-06-06T06:01:02.3857036Z         },
2026-06-06T06:01:02.3857529Z         "unit": {
2026-06-06T06:01:02.3858044Z           "complete": false,
2026-06-06T06:01:02.3858539Z           "evidence": []
2026-06-06T06:01:02.3859008Z         }
2026-06-06T06:01:02.3859638Z       }
2026-06-06T06:01:02.3860091Z     },
2026-06-06T06:01:02.3860535Z     {
2026-06-06T06:01:02.3861047Z       "id": "REQ-DOCS-6",
2026-06-06T06:01:02.3863189Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-06T06:01:02.3863725Z       "requiredStages": [
2026-06-06T06:01:02.3864197Z         "impl",
2026-06-06T06:01:02.3864650Z         "unit",
2026-06-06T06:01:02.3865085Z         "int"
2026-06-06T06:01:02.3865532Z       ],
2026-06-06T06:01:02.3865991Z       "stages": {
2026-06-06T06:01:02.3866437Z         "doc": {
2026-06-06T06:01:02.3866954Z           "complete": true,
2026-06-06T06:01:02.3867430Z           "evidence": [
2026-06-06T06:01:02.3867922Z             {
2026-06-06T06:01:02.3868747Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-06T06:01:02.3869422Z               "line": 4
2026-06-06T06:01:02.3869934Z             }
2026-06-06T06:01:02.3870423Z           ]
2026-06-06T06:01:02.3870921Z         },
2026-06-06T06:01:02.3871410Z         "impl": {
2026-06-06T06:01:02.3871959Z           "complete": true,
2026-06-06T06:01:02.3872496Z           "evidence": [
2026-06-06T06:01:02.3872965Z             {
2026-06-06T06:01:02.3873559Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3874072Z               "line": 2196
2026-06-06T06:01:02.3874995Z             }
2026-06-06T06:01:02.3875485Z           ]
2026-06-06T06:01:02.3875970Z         },
2026-06-06T06:01:02.3876454Z         "int": {
2026-06-06T06:01:02.3877013Z           "complete": true,
2026-06-06T06:01:02.3877510Z           "evidence": [
2026-06-06T06:01:02.3877971Z             {
2026-06-06T06:01:02.3878763Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-06T06:01:02.3879282Z               "line": 34
2026-06-06T06:01:02.3879754Z             }
2026-06-06T06:01:02.3880262Z           ]
2026-06-06T06:01:02.3880754Z         },
2026-06-06T06:01:02.3881397Z         "unit": {
2026-06-06T06:01:02.3881951Z           "complete": true,
2026-06-06T06:01:02.3882458Z           "evidence": [
2026-06-06T06:01:02.3882921Z             {
2026-06-06T06:01:02.3883557Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.3884072Z               "line": 4683
2026-06-06T06:01:02.3884548Z             }
2026-06-06T06:01:02.3885000Z           ]
2026-06-06T06:01:02.3885451Z         }
2026-06-06T06:01:02.3885944Z       }
2026-06-06T06:01:02.3886377Z     },
2026-06-06T06:01:02.3886814Z     {
2026-06-06T06:01:02.3887366Z       "id": "REQ-EP-1",
2026-06-06T06:01:02.3888140Z       "title": "Day-one endpoint types; open type system",
2026-06-06T06:01:02.3888665Z       "requiredStages": [
2026-06-06T06:01:02.3889125Z         "impl",
2026-06-06T06:01:02.3889687Z         "unit"
2026-06-06T06:01:02.3890137Z       ],
2026-06-06T06:01:02.3890618Z       "stages": {
2026-06-06T06:01:02.3891130Z         "doc": {
2026-06-06T06:01:02.3892427Z           "complete": false,
2026-06-06T06:01:02.3893852Z           "evidence": []
2026-06-06T06:01:02.3895113Z         },
2026-06-06T06:01:02.3896155Z         "impl": {
2026-06-06T06:01:02.3903507Z           "complete": true,
2026-06-06T06:01:02.3905041Z           "evidence": [
2026-06-06T06:01:02.3906351Z             {
2026-06-06T06:01:02.3907655Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3909394Z               "line": 77
2026-06-06T06:01:02.3910601Z             },
2026-06-06T06:01:02.3912524Z             {
2026-06-06T06:01:02.3913914Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3915670Z               "line": 94
2026-06-06T06:01:02.3916996Z             }
2026-06-06T06:01:02.3918088Z           ]
2026-06-06T06:01:02.3919093Z         },
2026-06-06T06:01:02.3920265Z         "int": {
2026-06-06T06:01:02.3921446Z           "complete": false,
2026-06-06T06:01:02.3922807Z           "evidence": []
2026-06-06T06:01:02.3924113Z         },
2026-06-06T06:01:02.3925188Z         "unit": {
2026-06-06T06:01:02.3926366Z           "complete": true,
2026-06-06T06:01:02.3927679Z           "evidence": [
2026-06-06T06:01:02.3928938Z             {
2026-06-06T06:01:02.3930445Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3932231Z               "line": 161
2026-06-06T06:01:02.3933376Z             },
2026-06-06T06:01:02.3934374Z             {
2026-06-06T06:01:02.3935769Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3937521Z               "line": 178
2026-06-06T06:01:02.3938763Z             }
2026-06-06T06:01:02.3940064Z           ]
2026-06-06T06:01:02.3941259Z         }
2026-06-06T06:01:02.3942340Z       }
2026-06-06T06:01:02.3943458Z     },
2026-06-06T06:01:02.3944566Z     {
2026-06-06T06:01:02.3945652Z       "id": "REQ-EP-2",
2026-06-06T06:01:02.3947410Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-06T06:01:02.3949591Z       "requiredStages": [
2026-06-06T06:01:02.3950830Z         "impl",
2026-06-06T06:01:02.3951914Z         "unit"
2026-06-06T06:01:02.3952926Z       ],
2026-06-06T06:01:02.3953886Z       "stages": {
2026-06-06T06:01:02.3954922Z         "doc": {
2026-06-06T06:01:02.3956004Z           "complete": false,
2026-06-06T06:01:02.3957250Z           "evidence": []
2026-06-06T06:01:02.3958859Z         },
2026-06-06T06:01:02.3959960Z         "impl": {
2026-06-06T06:01:02.3961064Z           "complete": true,
2026-06-06T06:01:02.3962756Z           "evidence": [
2026-06-06T06:01:02.3963863Z             {
2026-06-06T06:01:02.3965108Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3966709Z               "line": 114
2026-06-06T06:01:02.3967861Z             },
2026-06-06T06:01:02.3968859Z             {
2026-06-06T06:01:02.3970298Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3971861Z               "line": 131
2026-06-06T06:01:02.3972984Z             },
2026-06-06T06:01:02.3973945Z             {
2026-06-06T06:01:02.3975302Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3976871Z               "line": 138
2026-06-06T06:01:02.3977975Z             }
2026-06-06T06:01:02.3978932Z           ]
2026-06-06T06:01:02.3980252Z         },
2026-06-06T06:01:02.3981185Z         "int": {
2026-06-06T06:01:02.3982223Z           "complete": false,
2026-06-06T06:01:02.3983437Z           "evidence": []
2026-06-06T06:01:02.3984541Z         },
2026-06-06T06:01:02.3985495Z         "unit": {
2026-06-06T06:01:02.3986534Z           "complete": true,
2026-06-06T06:01:02.3987706Z           "evidence": [
2026-06-06T06:01:02.3988773Z             {
2026-06-06T06:01:02.3996682Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.3998326Z               "line": 193
2026-06-06T06:01:02.3999570Z             },
2026-06-06T06:01:02.4000588Z             {
2026-06-06T06:01:02.4001845Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.4003453Z               "line": 211
2026-06-06T06:01:02.4004594Z             },
2026-06-06T06:01:02.4005630Z             {
2026-06-06T06:01:02.4006869Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-06T06:01:02.4008472Z               "line": 224
2026-06-06T06:01:02.4009660Z             }
2026-06-06T06:01:02.4010766Z           ]
2026-06-06T06:01:02.4011717Z         }
2026-06-06T06:01:02.4012641Z       }
2026-06-06T06:01:02.4013542Z     },
2026-06-06T06:01:02.4014447Z     {
2026-06-06T06:01:02.4015412Z       "id": "REQ-EP-3",
2026-06-06T06:01:02.4017143Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-06T06:01:02.4019211Z       "requiredStages": [
2026-06-06T06:01:02.4020674Z         "impl",
2026-06-06T06:01:02.4021669Z         "unit"
2026-06-06T06:01:02.4022654Z       ],
2026-06-06T06:01:02.4023586Z       "stages": {
2026-06-06T06:01:02.4024604Z         "doc": {
2026-06-06T06:01:02.4025661Z           "complete": false,
2026-06-06T06:01:02.4026870Z           "evidence": []
2026-06-06T06:01:02.4027975Z         },
2026-06-06T06:01:02.4028929Z         "impl": {
2026-06-06T06:01:02.4030375Z           "complete": true,
2026-06-06T06:01:02.4031550Z           "evidence": [
2026-06-06T06:01:02.4032635Z             {
2026-06-06T06:01:02.4034045Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4035666Z               "line": 31
2026-06-06T06:01:02.4036823Z             },
2026-06-06T06:01:02.4037848Z             {
2026-06-06T06:01:02.4039098Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4040840Z               "line": 49
2026-06-06T06:01:02.4041944Z             }
2026-06-06T06:01:02.4042910Z           ]
2026-06-06T06:01:02.4043855Z         },
2026-06-06T06:01:02.4044785Z         "int": {
2026-06-06T06:01:02.4045841Z           "complete": false,
2026-06-06T06:01:02.4047063Z           "evidence": []
2026-06-06T06:01:02.4048175Z         },
2026-06-06T06:01:02.4049115Z         "unit": {
2026-06-06T06:01:02.4050466Z           "complete": true,
2026-06-06T06:01:02.4051687Z           "evidence": [
2026-06-06T06:01:02.4052834Z             {
2026-06-06T06:01:02.4054069Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4055680Z               "line": 156
2026-06-06T06:01:02.4056838Z             },
2026-06-06T06:01:02.4057859Z             {
2026-06-06T06:01:02.4059272Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4061108Z               "line": 164
2026-06-06T06:01:02.4062632Z             },
2026-06-06T06:01:02.4063647Z             {
2026-06-06T06:01:02.4064864Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4066413Z               "line": 177
2026-06-06T06:01:02.4067519Z             },
2026-06-06T06:01:02.4068499Z             {
2026-06-06T06:01:02.4069744Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4071288Z               "line": 197
2026-06-06T06:01:02.4072404Z             },
2026-06-06T06:01:02.4073383Z             {
2026-06-06T06:01:02.4074799Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4076373Z               "line": 213
2026-06-06T06:01:02.4077499Z             },
2026-06-06T06:01:02.4078479Z             {
2026-06-06T06:01:02.4079723Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-06T06:01:02.4081275Z               "line": 227
2026-06-06T06:01:02.4082388Z             }
2026-06-06T06:01:02.4083358Z           ]
2026-06-06T06:01:02.4084304Z         }
2026-06-06T06:01:02.4085256Z       }
2026-06-06T06:01:02.4086164Z     },
2026-06-06T06:01:02.4087079Z     {
2026-06-06T06:01:02.4088026Z       "id": "REQ-EP-4",
2026-06-06T06:01:02.4089540Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-06T06:01:02.4091294Z       "requiredStages": [
2026-06-06T06:01:02.4092454Z         "impl",
2026-06-06T06:01:02.4093445Z         "unit"
2026-06-06T06:01:02.4094439Z       ],
2026-06-06T06:01:02.4100726Z       "stages": {
2026-06-06T06:01:02.4101788Z         "doc": {
2026-06-06T06:01:02.4102849Z           "complete": false,
2026-06-06T06:01:02.4104105Z           "evidence": []
2026-06-06T06:01:02.4105223Z         },
2026-06-06T06:01:02.4106158Z         "impl": {
2026-06-06T06:01:02.4107217Z           "complete": true,
2026-06-06T06:01:02.4108409Z           "evidence": [
2026-06-06T06:01:02.4109562Z             {
2026-06-06T06:01:02.4110730Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.4112264Z               "line": 427
2026-06-06T06:01:02.4113388Z             },
2026-06-06T06:01:02.4114356Z             {
2026-06-06T06:01:02.4115526Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.4117053Z               "line": 669
2026-06-06T06:01:02.4118168Z             },
2026-06-06T06:01:02.4119144Z             {
2026-06-06T06:01:02.4120374Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.4121916Z               "line": 768
2026-06-06T06:01:02.4123032Z             },
2026-06-06T06:01:02.4124016Z             {
2026-06-06T06:01:02.4125190Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.4126688Z               "line": 83
2026-06-06T06:01:02.4127786Z             },
2026-06-06T06:01:02.4128769Z             {
2026-06-06T06:01:02.4129953Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.4131453Z               "line": 452
2026-06-06T06:01:02.4132573Z             },
2026-06-06T06:01:02.4133549Z             {
2026-06-06T06:01:02.4134694Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.4136201Z               "line": 523
2026-06-06T06:01:02.4137310Z             },
2026-06-06T06:01:02.4138291Z             {
2026-06-06T06:01:02.4139536Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.4141095Z               "line": 181
2026-06-06T06:01:02.4142207Z             },
2026-06-06T06:01:02.4143179Z             {
2026-06-06T06:01:02.4144371Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.4145901Z               "line": 306
2026-06-06T06:01:02.4147010Z             },
2026-06-06T06:01:02.4147999Z             {
2026-06-06T06:01:02.4149243Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.4150793Z               "line": 666
2026-06-06T06:01:02.4151905Z             }
2026-06-06T06:01:02.4152867Z           ]
2026-06-06T06:01:02.4153800Z         },
2026-06-06T06:01:02.4154741Z         "int": {
2026-06-06T06:01:02.4155789Z           "complete": false,
2026-06-06T06:01:02.4157325Z           "evidence": []
2026-06-06T06:01:02.4158424Z         },
2026-06-06T06:01:02.4159417Z         "unit": {
2026-06-06T06:01:02.4160477Z           "complete": true,
2026-06-06T06:01:02.4161651Z           "evidence": [
2026-06-06T06:01:02.4162734Z             {
2026-06-06T06:01:02.4163878Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-06T06:01:02.4165377Z               "line": 596
2026-06-06T06:01:02.4166488Z             },
2026-06-06T06:01:02.4167463Z             {
2026-06-06T06:01:02.4168700Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-06T06:01:02.4170441Z               "line": 75
2026-06-06T06:01:02.4171562Z             },
2026-06-06T06:01:02.4172530Z             {
2026-06-06T06:01:02.4173746Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-06T06:01:02.4175325Z               "line": 131
2026-06-06T06:01:02.4176427Z             }
2026-06-06T06:01:02.4177386Z           ]
2026-06-06T06:01:02.4178322Z         }
2026-06-06T06:01:02.4179305Z       }
2026-06-06T06:01:02.4180216Z     },
2026-06-06T06:01:02.4181138Z     {
2026-06-06T06:01:02.4182086Z       "id": "REQ-EP-5",
2026-06-06T06:01:02.4187137Z       "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-06T06:01:02.4192587Z       "requiredStages": [
2026-06-06T06:01:02.4193757Z         "impl",
2026-06-06T06:01:02.4194764Z         "unit",
2026-06-06T06:01:02.4195762Z         "int"
2026-06-06T06:01:02.4196733Z       ],
2026-06-06T06:01:02.4197672Z       "stages": {
2026-06-06T06:01:02.4198686Z         "doc": {
2026-06-06T06:01:02.4199789Z           "complete": false,
2026-06-06T06:01:02.4200997Z           "evidence": []
2026-06-06T06:01:02.4202097Z         },
2026-06-06T06:01:02.4207581Z         "impl": {
2026-06-06T06:01:02.4208671Z           "complete": true,
2026-06-06T06:01:02.4209975Z           "evidence": [
2026-06-06T06:01:02.4211053Z             {
2026-06-06T06:01:02.4212305Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.4213903Z               "line": 254
2026-06-06T06:01:02.4214996Z             },
2026-06-06T06:01:02.4215958Z             {
2026-06-06T06:01:02.4217163Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4218730Z               "line": 18
2026-06-06T06:01:02.4219868Z             },
2026-06-06T06:01:02.4220839Z             {
2026-06-06T06:01:02.4222068Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4224225Z               "line": 63
2026-06-06T06:01:02.4225495Z             },
2026-06-06T06:01:02.4226463Z             {
2026-06-06T06:01:02.4227662Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4229287Z               "line": 88
2026-06-06T06:01:02.4230402Z             },
2026-06-06T06:01:02.4231379Z             {
2026-06-06T06:01:02.4232602Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4234172Z               "line": 163
2026-06-06T06:01:02.4235274Z             },
2026-06-06T06:01:02.4236247Z             {
2026-06-06T06:01:02.4237446Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4239001Z               "line": 175
2026-06-06T06:01:02.4240166Z             },
2026-06-06T06:01:02.4241148Z             {
2026-06-06T06:01:02.4242347Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.4243908Z               "line": 114
2026-06-06T06:01:02.4245019Z             },
2026-06-06T06:01:02.4245999Z             {
2026-06-06T06:01:02.4247196Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4248742Z               "line": 22
2026-06-06T06:01:02.4249881Z             },
2026-06-06T06:01:02.4250854Z             {
2026-06-06T06:01:02.4252052Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4253606Z               "line": 129
2026-06-06T06:01:02.4255018Z             },
2026-06-06T06:01:02.4255994Z             {
2026-06-06T06:01:02.4257189Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4258736Z               "line": 156
2026-06-06T06:01:02.4259913Z             },
2026-06-06T06:01:02.4260879Z             {
2026-06-06T06:01:02.4262077Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4263627Z               "line": 178
2026-06-06T06:01:02.4264745Z             },
2026-06-06T06:01:02.4265724Z             {
2026-06-06T06:01:02.4267051Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4268626Z               "line": 203
2026-06-06T06:01:02.4269790Z             },
2026-06-06T06:01:02.4270764Z             {
2026-06-06T06:01:02.4271967Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4273511Z               "line": 226
2026-06-06T06:01:02.4274617Z             },
2026-06-06T06:01:02.4275602Z             {
2026-06-06T06:01:02.4276824Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4278366Z               "line": 246
2026-06-06T06:01:02.4279508Z             },
2026-06-06T06:01:02.4280483Z             {
2026-06-06T06:01:02.4281661Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.4283189Z               "line": 81
2026-06-06T06:01:02.4284283Z             },
2026-06-06T06:01:02.4285254Z             {
2026-06-06T06:01:02.4286349Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4287782Z               "line": 2491
2026-06-06T06:01:02.4288902Z             },
2026-06-06T06:01:02.4289931Z             {
2026-06-06T06:01:02.4291024Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4292458Z               "line": 2608
2026-06-06T06:01:02.4293588Z             },
2026-06-06T06:01:02.4294567Z             {
2026-06-06T06:01:02.4295667Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4297105Z               "line": 2758
2026-06-06T06:01:02.4298254Z             },
2026-06-06T06:01:02.4299259Z             {
2026-06-06T06:01:02.4300365Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4301785Z               "line": 3105
2026-06-06T06:01:02.4302906Z             }
2026-06-06T06:01:02.4303862Z           ]
2026-06-06T06:01:02.4304795Z         },
2026-06-06T06:01:02.4310244Z         "int": {
2026-06-06T06:01:02.4311424Z           "complete": true,
2026-06-06T06:01:02.4312604Z           "evidence": [
2026-06-06T06:01:02.4313687Z             {
2026-06-06T06:01:02.4314940Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-06T06:01:02.4316522Z               "line": 16
2026-06-06T06:01:02.4317623Z             },
2026-06-06T06:01:02.4318594Z             {
2026-06-06T06:01:02.4319796Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-06T06:01:02.4321282Z               "line": 15
2026-06-06T06:01:02.4322375Z             }
2026-06-06T06:01:02.4323326Z           ]
2026-06-06T06:01:02.4324290Z         },
2026-06-06T06:01:02.4325222Z         "unit": {
2026-06-06T06:01:02.4326261Z           "complete": true,
2026-06-06T06:01:02.4327439Z           "evidence": [
2026-06-06T06:01:02.4328503Z             {
2026-06-06T06:01:02.4329744Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4331304Z               "line": 237
2026-06-06T06:01:02.4332416Z             },
2026-06-06T06:01:02.4333395Z             {
2026-06-06T06:01:02.4334604Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4336154Z               "line": 294
2026-06-06T06:01:02.4337272Z             },
2026-06-06T06:01:02.4338243Z             {
2026-06-06T06:01:02.4339475Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-06T06:01:02.4341025Z               "line": 343
2026-06-06T06:01:02.4342127Z             },
2026-06-06T06:01:02.4343103Z             {
2026-06-06T06:01:02.4344291Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4346100Z               "line": 262
2026-06-06T06:01:02.4347231Z             },
2026-06-06T06:01:02.4348202Z             {
2026-06-06T06:01:02.4349451Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.4351049Z               "line": 285
2026-06-06T06:01:02.4352149Z             },
2026-06-06T06:01:02.4353116Z             {
2026-06-06T06:01:02.4354306Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.4355830Z               "line": 474
2026-06-06T06:01:02.4356931Z             },
2026-06-06T06:01:02.4357902Z             {
2026-06-06T06:01:02.4359136Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4360656Z               "line": 3570
2026-06-06T06:01:02.4361780Z             },
2026-06-06T06:01:02.4362746Z             {
2026-06-06T06:01:02.4363842Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4365266Z               "line": 3628
2026-06-06T06:01:02.4366375Z             },
2026-06-06T06:01:02.4367342Z             {
2026-06-06T06:01:02.4368436Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4369905Z               "line": 4121
2026-06-06T06:01:02.4371029Z             },
2026-06-06T06:01:02.4371994Z             {
2026-06-06T06:01:02.4373085Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.4374496Z               "line": 4176
2026-06-06T06:01:02.4375618Z             }
2026-06-06T06:01:02.4376571Z           ]
2026-06-06T06:01:02.4377493Z         }
2026-06-06T06:01:02.4378405Z       }
2026-06-06T06:01:02.4379332Z     },
2026-06-06T06:01:02.4380243Z     {
2026-06-06T06:01:02.4381204Z       "id": "REQ-FRONT-1",
2026-06-06T06:01:02.4382918Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-06T06:01:02.4384867Z       "requiredStages": [],
2026-06-06T06:01:02.4386033Z       "stages": {
2026-06-06T06:01:02.4387046Z         "doc": {
2026-06-06T06:01:02.4388082Z           "complete": false,
2026-06-06T06:01:02.4389317Z           "evidence": []
2026-06-06T06:01:02.4390445Z         },
2026-06-06T06:01:02.4391411Z         "impl": {
2026-06-06T06:01:02.4392470Z           "complete": false,
2026-06-06T06:01:02.4393683Z           "evidence": []
2026-06-06T06:01:02.4394793Z         },
2026-06-06T06:01:02.4395728Z         "int": {
2026-06-06T06:01:02.4396776Z           "complete": false,
2026-06-06T06:01:02.4397975Z           "evidence": []
2026-06-06T06:01:02.4399073Z         },
2026-06-06T06:01:02.4400091Z         "unit": {
2026-06-06T06:01:02.4401149Z           "complete": false,
2026-06-06T06:01:02.4402354Z           "evidence": []
2026-06-06T06:01:02.4403442Z         }
2026-06-06T06:01:02.4404375Z       }
2026-06-06T06:01:02.4409698Z     },
2026-06-06T06:01:02.4410695Z     {
2026-06-06T06:01:02.4411786Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-06T06:01:02.4413743Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-06T06:01:02.4415661Z       "requiredStages": [
2026-06-06T06:01:02.4416771Z         "impl",
2026-06-06T06:01:02.4417752Z         "unit"
2026-06-06T06:01:02.4418726Z       ],
2026-06-06T06:01:02.4419676Z       "stages": {
2026-06-06T06:01:02.4420662Z         "doc": {
2026-06-06T06:01:02.4421691Z           "complete": false,
2026-06-06T06:01:02.4422869Z           "evidence": []
2026-06-06T06:01:02.4423956Z         },
2026-06-06T06:01:02.4424873Z         "impl": {
2026-06-06T06:01:02.4425910Z           "complete": true,
2026-06-06T06:01:02.4427075Z           "evidence": [
2026-06-06T06:01:02.4428122Z             {
2026-06-06T06:01:02.4429334Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.4430864Z               "line": 146
2026-06-06T06:01:02.4431958Z             },
2026-06-06T06:01:02.4432900Z             {
2026-06-06T06:01:02.4434025Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.4435486Z               "line": 18
2026-06-06T06:01:02.4436572Z             },
2026-06-06T06:01:02.4437522Z             {
2026-06-06T06:01:02.4438647Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.4440509Z               "line": 98
2026-06-06T06:01:02.4441586Z             }
2026-06-06T06:01:02.4442520Z           ]
2026-06-06T06:01:02.4443435Z         },
2026-06-06T06:01:02.4444343Z         "int": {
2026-06-06T06:01:02.4445367Z           "complete": false,
2026-06-06T06:01:02.4446605Z           "evidence": []
2026-06-06T06:01:02.4447745Z         },
2026-06-06T06:01:02.4448680Z         "unit": {
2026-06-06T06:01:02.4449750Z           "complete": true,
2026-06-06T06:01:02.4450916Z           "evidence": [
2026-06-06T06:01:02.4451969Z             {
2026-06-06T06:01:02.4453288Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.4454822Z               "line": 530
2026-06-06T06:01:02.4455914Z             },
2026-06-06T06:01:02.4456868Z             {
2026-06-06T06:01:02.4457990Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.4459503Z               "line": 156
2026-06-06T06:01:02.4460589Z             },
2026-06-06T06:01:02.4461535Z             {
2026-06-06T06:01:02.4462678Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.4464152Z               "line": 218
2026-06-06T06:01:02.4465237Z             }
2026-06-06T06:01:02.4466182Z           ]
2026-06-06T06:01:02.4467096Z         }
2026-06-06T06:01:02.4467990Z       }
2026-06-06T06:01:02.4468862Z     },
2026-06-06T06:01:02.4469788Z     {
2026-06-06T06:01:02.4470894Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-06T06:01:02.4475623Z       "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-06T06:01:02.4480231Z       "requiredStages": [
2026-06-06T06:01:02.4481358Z         "impl",
2026-06-06T06:01:02.4482352Z         "unit"
2026-06-06T06:01:02.4483300Z       ],
2026-06-06T06:01:02.4484223Z       "stages": {
2026-06-06T06:01:02.4485215Z         "doc": {
2026-06-06T06:01:02.4486254Z           "complete": false,
2026-06-06T06:01:02.4487461Z           "evidence": []
2026-06-06T06:01:02.4488543Z         },
2026-06-06T06:01:02.4489526Z         "impl": {
2026-06-06T06:01:02.4490564Z           "complete": true,
2026-06-06T06:01:02.4491731Z           "evidence": [
2026-06-06T06:01:02.4492798Z             {
2026-06-06T06:01:02.4493994Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-06T06:01:02.4495540Z               "line": 22
2026-06-06T06:01:02.4496610Z             },
2026-06-06T06:01:02.4497558Z             {
2026-06-06T06:01:02.4498710Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.4500236Z               "line": 417
2026-06-06T06:01:02.4501324Z             },
2026-06-06T06:01:02.4502288Z             {
2026-06-06T06:01:02.4503467Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-06T06:01:02.4504984Z               "line": 17
2026-06-06T06:01:02.4506067Z             },
2026-06-06T06:01:02.4507022Z             {
2026-06-06T06:01:02.4508211Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-06T06:01:02.4514206Z               "line": 125
2026-06-06T06:01:02.4515348Z             },
2026-06-06T06:01:02.4516302Z             {
2026-06-06T06:01:02.4517526Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.4519093Z               "line": 178
2026-06-06T06:01:02.4520305Z             },
2026-06-06T06:01:02.4521250Z             {
2026-06-06T06:01:02.4522464Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.4524047Z               "line": 206
2026-06-06T06:01:02.4525160Z             },
2026-06-06T06:01:02.4526110Z             {
2026-06-06T06:01:02.4527329Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.4528901Z               "line": 232
2026-06-06T06:01:02.4530021Z             },
2026-06-06T06:01:02.4530970Z             {
2026-06-06T06:01:02.4532147Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.4533680Z               "line": 122
2026-06-06T06:01:02.4535069Z             },
2026-06-06T06:01:02.4536029Z             {
2026-06-06T06:01:02.4537206Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.4537634Z               "line": 222
2026-06-06T06:01:02.4538034Z             }
2026-06-06T06:01:02.4538446Z           ]
2026-06-06T06:01:02.4538841Z         },
2026-06-06T06:01:02.4539293Z         "int": {
2026-06-06T06:01:02.4539751Z           "complete": false,
2026-06-06T06:01:02.4540194Z           "evidence": []
2026-06-06T06:01:02.4540593Z         },
2026-06-06T06:01:02.4541152Z         "unit": {
2026-06-06T06:01:02.4541631Z           "complete": true,
2026-06-06T06:01:02.4542061Z           "evidence": [
2026-06-06T06:01:02.4542465Z             {
2026-06-06T06:01:02.4543119Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-06T06:01:02.4543558Z               "line": 53
2026-06-06T06:01:02.4543962Z             },
2026-06-06T06:01:02.4544369Z             {
2026-06-06T06:01:02.4545035Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-06T06:01:02.4545459Z               "line": 60
2026-06-06T06:01:02.4545864Z             },
2026-06-06T06:01:02.4546261Z             {
2026-06-06T06:01:02.4546915Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-06T06:01:02.4547333Z               "line": 72
2026-06-06T06:01:02.4547744Z             },
2026-06-06T06:01:02.4548149Z             {
2026-06-06T06:01:02.4548765Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.4549245Z               "line": 298
2026-06-06T06:01:02.4549656Z             },
2026-06-06T06:01:02.4550056Z             {
2026-06-06T06:01:02.4550690Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-06T06:01:02.4551119Z               "line": 247
2026-06-06T06:01:02.4551524Z             },
2026-06-06T06:01:02.4551917Z             {
2026-06-06T06:01:02.4552550Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-06T06:01:02.4552978Z               "line": 282
2026-06-06T06:01:02.4553394Z             },
2026-06-06T06:01:02.4553795Z             {
2026-06-06T06:01:02.4554414Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-06T06:01:02.4554850Z               "line": 313
2026-06-06T06:01:02.4555247Z             },
2026-06-06T06:01:02.4555648Z             {
2026-06-06T06:01:02.4556322Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.4556764Z               "line": 613
2026-06-06T06:01:02.4557168Z             },
2026-06-06T06:01:02.4557563Z             {
2026-06-06T06:01:02.4558215Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.4558643Z               "line": 383
2026-06-06T06:01:02.4559046Z             },
2026-06-06T06:01:02.4559476Z             {
2026-06-06T06:01:02.4560120Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.4560554Z               "line": 420
2026-06-06T06:01:02.4560955Z             }
2026-06-06T06:01:02.4561356Z           ]
2026-06-06T06:01:02.4561758Z         }
2026-06-06T06:01:02.4562159Z       }
2026-06-06T06:01:02.4562552Z     },
2026-06-06T06:01:02.4562948Z     {
2026-06-06T06:01:02.4563451Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-06T06:01:02.4564699Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-06T06:01:02.4565165Z       "requiredStages": [
2026-06-06T06:01:02.4565570Z         "impl",
2026-06-06T06:01:02.4565978Z         "unit"
2026-06-06T06:01:02.4566372Z       ],
2026-06-06T06:01:02.4566789Z       "stages": {
2026-06-06T06:01:02.4567209Z         "doc": {
2026-06-06T06:01:02.4567663Z           "complete": false,
2026-06-06T06:01:02.4568110Z           "evidence": []
2026-06-06T06:01:02.4568503Z         },
2026-06-06T06:01:02.4568918Z         "impl": {
2026-06-06T06:01:02.4569398Z           "complete": true,
2026-06-06T06:01:02.4569836Z           "evidence": [
2026-06-06T06:01:02.4570240Z             {
2026-06-06T06:01:02.4570832Z               "path": "crates/spt-term/src/reader.rs",
2026-06-06T06:01:02.4571433Z               "line": 164
2026-06-06T06:01:02.4571825Z             }
2026-06-06T06:01:02.4572229Z           ]
2026-06-06T06:01:02.4572623Z         },
2026-06-06T06:01:02.4573030Z         "int": {
2026-06-06T06:01:02.4573480Z           "complete": true,
2026-06-06T06:01:02.4573907Z           "evidence": [
2026-06-06T06:01:02.4574308Z             {
2026-06-06T06:01:02.4574892Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-06T06:01:02.4575321Z               "line": 44
2026-06-06T06:01:02.4575715Z             },
2026-06-06T06:01:02.4576235Z             {
2026-06-06T06:01:02.4576838Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-06T06:01:02.4577260Z               "line": 66
2026-06-06T06:01:02.4577671Z             }
2026-06-06T06:01:02.4578063Z           ]
2026-06-06T06:01:02.4578461Z         },
2026-06-06T06:01:02.4578869Z         "unit": {
2026-06-06T06:01:02.4579363Z           "complete": true,
2026-06-06T06:01:02.4579799Z           "evidence": [
2026-06-06T06:01:02.4580205Z             {
2026-06-06T06:01:02.4580798Z               "path": "crates/spt-term/src/reader.rs",
2026-06-06T06:01:02.4581226Z               "line": 181
2026-06-06T06:01:02.4581645Z             },
2026-06-06T06:01:02.4582038Z             {
2026-06-06T06:01:02.4582632Z               "path": "crates/spt-term/src/reader.rs",
2026-06-06T06:01:02.4583064Z               "line": 233
2026-06-06T06:01:02.4583463Z             },
2026-06-06T06:01:02.4583862Z             {
2026-06-06T06:01:02.4584448Z               "path": "crates/spt-term/src/reader.rs",
2026-06-06T06:01:02.4584891Z               "line": 261
2026-06-06T06:01:02.4585291Z             }
2026-06-06T06:01:02.4585693Z           ]
2026-06-06T06:01:02.4586094Z         }
2026-06-06T06:01:02.4586485Z       }
2026-06-06T06:01:02.4586883Z     },
2026-06-06T06:01:02.4587267Z     {
2026-06-06T06:01:02.4587873Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-06T06:01:02.4590620Z       "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-06T06:01:02.4591108Z       "requiredStages": [
2026-06-06T06:01:02.4591523Z         "impl",
2026-06-06T06:01:02.4591933Z         "unit",
2026-06-06T06:01:02.4592334Z         "int"
2026-06-06T06:01:02.4592727Z       ],
2026-06-06T06:01:02.4593156Z       "stages": {
2026-06-06T06:01:02.4593563Z         "doc": {
2026-06-06T06:01:02.4594018Z           "complete": false,
2026-06-06T06:01:02.4594459Z           "evidence": []
2026-06-06T06:01:02.4594861Z         },
2026-06-06T06:01:02.4595279Z         "impl": {
2026-06-06T06:01:02.4595726Z           "complete": true,
2026-06-06T06:01:02.4600378Z           "evidence": [
2026-06-06T06:01:02.4600828Z             {
2026-06-06T06:01:02.4601514Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.4601952Z               "line": 150
2026-06-06T06:01:02.4602346Z             },
2026-06-06T06:01:02.4602773Z             {
2026-06-06T06:01:02.4603409Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.4603849Z               "line": 169
2026-06-06T06:01:02.4604253Z             },
2026-06-06T06:01:02.4604647Z             {
2026-06-06T06:01:02.4605421Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.4605936Z               "line": 79
2026-06-06T06:01:02.4606517Z             },
2026-06-06T06:01:02.4606914Z             {
2026-06-06T06:01:02.4607483Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4607927Z               "line": 51
2026-06-06T06:01:02.4608320Z             },
2026-06-06T06:01:02.4608714Z             {
2026-06-06T06:01:02.4609340Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.4609793Z               "line": 154
2026-06-06T06:01:02.4610188Z             },
2026-06-06T06:01:02.4610591Z             {
2026-06-06T06:01:02.4611229Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4611914Z               "line": 27
2026-06-06T06:01:02.4612322Z             },
2026-06-06T06:01:02.4612717Z             {
2026-06-06T06:01:02.4613349Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4613774Z               "line": 79
2026-06-06T06:01:02.4614178Z             },
2026-06-06T06:01:02.4614578Z             {
2026-06-06T06:01:02.4615201Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4615633Z               "line": 102
2026-06-06T06:01:02.4616035Z             },
2026-06-06T06:01:02.4616436Z             {
2026-06-06T06:01:02.4617187Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.4617649Z               "line": 108
2026-06-06T06:01:02.4618056Z             }
2026-06-06T06:01:02.4618447Z           ]
2026-06-06T06:01:02.4618845Z         },
2026-06-06T06:01:02.4619296Z         "int": {
2026-06-06T06:01:02.4619751Z           "complete": true,
2026-06-06T06:01:02.4620180Z           "evidence": [
2026-06-06T06:01:02.4620604Z             {
2026-06-06T06:01:02.4621295Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-06T06:01:02.4621723Z               "line": 35
2026-06-06T06:01:02.4622127Z             }
2026-06-06T06:01:02.4622520Z           ]
2026-06-06T06:01:02.4622919Z         },
2026-06-06T06:01:02.4623322Z         "unit": {
2026-06-06T06:01:02.4623778Z           "complete": true,
2026-06-06T06:01:02.4624211Z           "evidence": [
2026-06-06T06:01:02.4624611Z             {
2026-06-06T06:01:02.4625262Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.4625698Z               "line": 552
2026-06-06T06:01:02.4626107Z             },
2026-06-06T06:01:02.4626507Z             {
2026-06-06T06:01:02.4627093Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.4627527Z               "line": 330
2026-06-06T06:01:02.4627924Z             },
2026-06-06T06:01:02.4628326Z             {
2026-06-06T06:01:02.4628958Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4629440Z               "line": 124
2026-06-06T06:01:02.4629840Z             },
2026-06-06T06:01:02.4630243Z             {
2026-06-06T06:01:02.4630875Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4631308Z               "line": 136
2026-06-06T06:01:02.4631713Z             },
2026-06-06T06:01:02.4632109Z             {
2026-06-06T06:01:02.4632735Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4633170Z               "line": 146
2026-06-06T06:01:02.4633569Z             },
2026-06-06T06:01:02.4633982Z             {
2026-06-06T06:01:02.4634606Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4635046Z               "line": 159
2026-06-06T06:01:02.4635445Z             },
2026-06-06T06:01:02.4635846Z             {
2026-06-06T06:01:02.4636476Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-06T06:01:02.4636905Z               "line": 171
2026-06-06T06:01:02.4637307Z             },
2026-06-06T06:01:02.4637716Z             {
2026-06-06T06:01:02.4638339Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.4638767Z               "line": 207
2026-06-06T06:01:02.4639206Z             }
2026-06-06T06:01:02.4639605Z           ]
2026-06-06T06:01:02.4639999Z         }
2026-06-06T06:01:02.4640395Z       }
2026-06-06T06:01:02.4640785Z     },
2026-06-06T06:01:02.4641179Z     {
2026-06-06T06:01:02.4641801Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-06T06:01:02.4646133Z       "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-06T06:01:02.4646608Z       "requiredStages": [
2026-06-06T06:01:02.4647016Z         "impl",
2026-06-06T06:01:02.4647426Z         "unit"
2026-06-06T06:01:02.4647819Z       ],
2026-06-06T06:01:02.4648238Z       "stages": {
2026-06-06T06:01:02.4648854Z         "doc": {
2026-06-06T06:01:02.4649365Z           "complete": false,
2026-06-06T06:01:02.4649816Z           "evidence": []
2026-06-06T06:01:02.4650216Z         },
2026-06-06T06:01:02.4650635Z         "impl": {
2026-06-06T06:01:02.4651083Z           "complete": true,
2026-06-06T06:01:02.4651521Z           "evidence": [
2026-06-06T06:01:02.4651913Z             {
2026-06-06T06:01:02.4652546Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.4652982Z               "line": 222
2026-06-06T06:01:02.4653377Z             },
2026-06-06T06:01:02.4653898Z             {
2026-06-06T06:01:02.4654529Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.4654970Z               "line": 387
2026-06-06T06:01:02.4655364Z             }
2026-06-06T06:01:02.4655761Z           ]
2026-06-06T06:01:02.4656158Z         },
2026-06-06T06:01:02.4656559Z         "int": {
2026-06-06T06:01:02.4657015Z           "complete": false,
2026-06-06T06:01:02.4657451Z           "evidence": []
2026-06-06T06:01:02.4657860Z         },
2026-06-06T06:01:02.4658259Z         "unit": {
2026-06-06T06:01:02.4658712Z           "complete": true,
2026-06-06T06:01:02.4659148Z           "evidence": [
2026-06-06T06:01:02.4659589Z             {
2026-06-06T06:01:02.4660268Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-06T06:01:02.4660693Z               "line": 149
2026-06-06T06:01:02.4661098Z             }
2026-06-06T06:01:02.4661490Z           ]
2026-06-06T06:01:02.4661889Z         }
2026-06-06T06:01:02.4662288Z       }
2026-06-06T06:01:02.4662672Z     },
2026-06-06T06:01:02.4663075Z     {
2026-06-06T06:01:02.4663604Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-06T06:01:02.4664652Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-06T06:01:02.4665108Z       "requiredStages": [
2026-06-06T06:01:02.4665519Z         "impl",
2026-06-06T06:01:02.4665928Z         "unit"
2026-06-06T06:01:02.4666325Z       ],
2026-06-06T06:01:02.4666773Z       "stages": {
2026-06-06T06:01:02.4667175Z         "doc": {
2026-06-06T06:01:02.4667632Z           "complete": false,
2026-06-06T06:01:02.4668062Z           "evidence": []
2026-06-06T06:01:02.4668460Z         },
2026-06-06T06:01:02.4668872Z         "impl": {
2026-06-06T06:01:02.4669355Z           "complete": true,
2026-06-06T06:01:02.4669793Z           "evidence": [
2026-06-06T06:01:02.4670193Z             {
2026-06-06T06:01:02.4670797Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4671216Z               "line": 40
2026-06-06T06:01:02.4671620Z             },
2026-06-06T06:01:02.4672030Z             {
2026-06-06T06:01:02.4672618Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4673044Z               "line": 98
2026-06-06T06:01:02.4673442Z             },
2026-06-06T06:01:02.4673844Z             {
2026-06-06T06:01:02.4674433Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4674876Z               "line": 209
2026-06-06T06:01:02.4675290Z             },
2026-06-06T06:01:02.4675682Z             {
2026-06-06T06:01:02.4676283Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4676713Z               "line": 291
2026-06-06T06:01:02.4677115Z             }
2026-06-06T06:01:02.4677531Z           ]
2026-06-06T06:01:02.4677921Z         },
2026-06-06T06:01:02.4678329Z         "int": {
2026-06-06T06:01:02.4678776Z           "complete": false,
2026-06-06T06:01:02.4683374Z           "evidence": []
2026-06-06T06:01:02.4683849Z         },
2026-06-06T06:01:02.4684279Z         "unit": {
2026-06-06T06:01:02.4684763Z           "complete": true,
2026-06-06T06:01:02.4685204Z           "evidence": [
2026-06-06T06:01:02.4685605Z             {
2026-06-06T06:01:02.4686207Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4686640Z               "line": 326
2026-06-06T06:01:02.4687032Z             },
2026-06-06T06:01:02.4687434Z             {
2026-06-06T06:01:02.4688032Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4688728Z               "line": 372
2026-06-06T06:01:02.4689132Z             },
2026-06-06T06:01:02.4689610Z             {
2026-06-06T06:01:02.4690205Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4690632Z               "line": 413
2026-06-06T06:01:02.4691033Z             },
2026-06-06T06:01:02.4691433Z             {
2026-06-06T06:01:02.4692018Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4692455Z               "line": 432
2026-06-06T06:01:02.4692848Z             }
2026-06-06T06:01:02.4693382Z           ]
2026-06-06T06:01:02.4693794Z         }
2026-06-06T06:01:02.4694195Z       }
2026-06-06T06:01:02.4694588Z     },
2026-06-06T06:01:02.4694976Z     {
2026-06-06T06:01:02.4695591Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-06T06:01:02.4696241Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-06T06:01:02.4696705Z       "requiredStages": [
2026-06-06T06:01:02.4697109Z         "impl",
2026-06-06T06:01:02.4697532Z         "unit"
2026-06-06T06:01:02.4697930Z       ],
2026-06-06T06:01:02.4698339Z       "stages": {
2026-06-06T06:01:02.4698746Z         "doc": {
2026-06-06T06:01:02.4699236Z           "complete": false,
2026-06-06T06:01:02.4699679Z           "evidence": []
2026-06-06T06:01:02.4700072Z         },
2026-06-06T06:01:02.4700484Z         "impl": {
2026-06-06T06:01:02.4700972Z           "complete": true,
2026-06-06T06:01:02.4701399Z           "evidence": [
2026-06-06T06:01:02.4701797Z             {
2026-06-06T06:01:02.4702385Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4702829Z               "line": 111
2026-06-06T06:01:02.4703227Z             },
2026-06-06T06:01:02.4703627Z             {
2026-06-06T06:01:02.4704226Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4704657Z               "line": 202
2026-06-06T06:01:02.4705062Z             }
2026-06-06T06:01:02.4705449Z           ]
2026-06-06T06:01:02.4705848Z         },
2026-06-06T06:01:02.4706254Z         "int": {
2026-06-06T06:01:02.4706706Z           "complete": false,
2026-06-06T06:01:02.4707144Z           "evidence": []
2026-06-06T06:01:02.4707538Z         },
2026-06-06T06:01:02.4707953Z         "unit": {
2026-06-06T06:01:02.4708403Z           "complete": true,
2026-06-06T06:01:02.4708835Z           "evidence": [
2026-06-06T06:01:02.4709265Z             {
2026-06-06T06:01:02.4709863Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4710296Z               "line": 347
2026-06-06T06:01:02.4710687Z             },
2026-06-06T06:01:02.4711104Z             {
2026-06-06T06:01:02.4711692Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.4712129Z               "line": 391
2026-06-06T06:01:02.4712518Z             }
2026-06-06T06:01:02.4712915Z           ]
2026-06-06T06:01:02.4713310Z         }
2026-06-06T06:01:02.4713697Z       }
2026-06-06T06:01:02.4714089Z     },
2026-06-06T06:01:02.4714475Z     {
2026-06-06T06:01:02.4715088Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-06T06:01:02.4721993Z       "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-06T06:01:02.4722491Z       "requiredStages": [
2026-06-06T06:01:02.4722902Z         "impl",
2026-06-06T06:01:02.4723305Z         "unit"
2026-06-06T06:01:02.4723736Z       ],
2026-06-06T06:01:02.4724149Z       "stages": {
2026-06-06T06:01:02.4724561Z         "doc": {
2026-06-06T06:01:02.4725018Z           "complete": true,
2026-06-06T06:01:02.4725447Z           "evidence": [
2026-06-06T06:01:02.4725847Z             {
2026-06-06T06:01:02.4726390Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.4726827Z               "line": 188
2026-06-06T06:01:02.4727221Z             }
2026-06-06T06:01:02.4727841Z           ]
2026-06-06T06:01:02.4728242Z         },
2026-06-06T06:01:02.4728651Z         "impl": {
2026-06-06T06:01:02.4729109Z           "complete": true,
2026-06-06T06:01:02.4729586Z           "evidence": [
2026-06-06T06:01:02.4729991Z             {
2026-06-06T06:01:02.4730610Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.4731050Z               "line": 250
2026-06-06T06:01:02.4731457Z             },
2026-06-06T06:01:02.4731855Z             {
2026-06-06T06:01:02.4732607Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.4733056Z               "line": 340
2026-06-06T06:01:02.4733461Z             },
2026-06-06T06:01:02.4733856Z             {
2026-06-06T06:01:02.4734511Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.4734951Z               "line": 178
2026-06-06T06:01:02.4735352Z             }
2026-06-06T06:01:02.4735751Z           ]
2026-06-06T06:01:02.4736146Z         },
2026-06-06T06:01:02.4736567Z         "int": {
2026-06-06T06:01:02.4737017Z           "complete": false,
2026-06-06T06:01:02.4737454Z           "evidence": []
2026-06-06T06:01:02.4737851Z         },
2026-06-06T06:01:02.4738256Z         "unit": {
2026-06-06T06:01:02.4738716Z           "complete": true,
2026-06-06T06:01:02.4739144Z           "evidence": [
2026-06-06T06:01:02.4739590Z             {
2026-06-06T06:01:02.4740207Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.4740639Z               "line": 378
2026-06-06T06:01:02.4741039Z             },
2026-06-06T06:01:02.4741439Z             {
2026-06-06T06:01:02.4742110Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-06T06:01:02.4742527Z               "line": 44
2026-06-06T06:01:02.4742930Z             },
2026-06-06T06:01:02.4743328Z             {
2026-06-06T06:01:02.4743924Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-06T06:01:02.4744356Z               "line": 54
2026-06-06T06:01:02.4744753Z             },
2026-06-06T06:01:02.4745171Z             {
2026-06-06T06:01:02.4745865Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-06T06:01:02.4746292Z               "line": 51
2026-06-06T06:01:02.4746687Z             }
2026-06-06T06:01:02.4747082Z           ]
2026-06-06T06:01:02.4747480Z         }
2026-06-06T06:01:02.4747874Z       }
2026-06-06T06:01:02.4748272Z     },
2026-06-06T06:01:02.4748659Z     {
2026-06-06T06:01:02.4749314Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-06T06:01:02.4750581Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-06T06:01:02.4751049Z       "requiredStages": [
2026-06-06T06:01:02.4751471Z         "impl",
2026-06-06T06:01:02.4751871Z         "unit"
2026-06-06T06:01:02.4752268Z       ],
2026-06-06T06:01:02.4752682Z       "stages": {
2026-06-06T06:01:02.4753094Z         "doc": {
2026-06-06T06:01:02.4753546Z           "complete": false,
2026-06-06T06:01:02.4753984Z           "evidence": []
2026-06-06T06:01:02.4754392Z         },
2026-06-06T06:01:02.4754797Z         "impl": {
2026-06-06T06:01:02.4755253Z           "complete": true,
2026-06-06T06:01:02.4755678Z           "evidence": [
2026-06-06T06:01:02.4756085Z             {
2026-06-06T06:01:02.4756691Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4757128Z               "line": 26
2026-06-06T06:01:02.4757534Z             },
2026-06-06T06:01:02.4757931Z             {
2026-06-06T06:01:02.4758543Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4758972Z               "line": 126
2026-06-06T06:01:02.4759418Z             },
2026-06-06T06:01:02.4759817Z             {
2026-06-06T06:01:02.4760484Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4760920Z               "line": 26
2026-06-06T06:01:02.4761322Z             },
2026-06-06T06:01:02.4761725Z             {
2026-06-06T06:01:02.4762381Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4762994Z               "line": 233
2026-06-06T06:01:02.4763408Z             }
2026-06-06T06:01:02.4763820Z           ]
2026-06-06T06:01:02.4768215Z         },
2026-06-06T06:01:02.4768714Z         "int": {
2026-06-06T06:01:02.4769265Z           "complete": false,
2026-06-06T06:01:02.4769702Z           "evidence": []
2026-06-06T06:01:02.4770105Z         },
2026-06-06T06:01:02.4770512Z         "unit": {
2026-06-06T06:01:02.4770967Z           "complete": true,
2026-06-06T06:01:02.4771403Z           "evidence": [
2026-06-06T06:01:02.4771795Z             {
2026-06-06T06:01:02.4772678Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4773142Z               "line": 152
2026-06-06T06:01:02.4773554Z             },
2026-06-06T06:01:02.4773953Z             {
2026-06-06T06:01:02.4774564Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4775000Z               "line": 161
2026-06-06T06:01:02.4775399Z             },
2026-06-06T06:01:02.4775802Z             {
2026-06-06T06:01:02.4776418Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4776850Z               "line": 170
2026-06-06T06:01:02.4777255Z             },
2026-06-06T06:01:02.4777647Z             {
2026-06-06T06:01:02.4778250Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4778679Z               "line": 179
2026-06-06T06:01:02.4779082Z             },
2026-06-06T06:01:02.4779529Z             {
2026-06-06T06:01:02.4780141Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4780574Z               "line": 188
2026-06-06T06:01:02.4780977Z             },
2026-06-06T06:01:02.4781383Z             {
2026-06-06T06:01:02.4781978Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4782412Z               "line": 205
2026-06-06T06:01:02.4782809Z             },
2026-06-06T06:01:02.4783212Z             {
2026-06-06T06:01:02.4783813Z               "path": "crates/spt-live/src/context.rs",
2026-06-06T06:01:02.4784238Z               "line": 231
2026-06-06T06:01:02.4784653Z             },
2026-06-06T06:01:02.4785042Z             {
2026-06-06T06:01:02.4785635Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.4786060Z               "line": 245
2026-06-06T06:01:02.4786467Z             },
2026-06-06T06:01:02.4786868Z             {
2026-06-06T06:01:02.4787457Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.4787890Z               "line": 212
2026-06-06T06:01:02.4788290Z             },
2026-06-06T06:01:02.4788692Z             {
2026-06-06T06:01:02.4789399Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4789838Z               "line": 256
2026-06-06T06:01:02.4790245Z             },
2026-06-06T06:01:02.4790639Z             {
2026-06-06T06:01:02.4791297Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4791725Z               "line": 281
2026-06-06T06:01:02.4792125Z             },
2026-06-06T06:01:02.4792523Z             {
2026-06-06T06:01:02.4793192Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4793637Z               "line": 293
2026-06-06T06:01:02.4794037Z             },
2026-06-06T06:01:02.4794442Z             {
2026-06-06T06:01:02.4795107Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-06T06:01:02.4795550Z               "line": 303
2026-06-06T06:01:02.4795955Z             },
2026-06-06T06:01:02.4796363Z             {
2026-06-06T06:01:02.4797016Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.4797452Z               "line": 502
2026-06-06T06:01:02.4797880Z             }
2026-06-06T06:01:02.4798279Z           ]
2026-06-06T06:01:02.4798685Z         }
2026-06-06T06:01:02.4799076Z       }
2026-06-06T06:01:02.4799507Z     },
2026-06-06T06:01:02.4799904Z     {
2026-06-06T06:01:02.4800517Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-06T06:01:02.4801314Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-06T06:01:02.4801955Z       "requiredStages": [
2026-06-06T06:01:02.4802365Z         "impl",
2026-06-06T06:01:02.4802766Z         "unit"
2026-06-06T06:01:02.4803169Z       ],
2026-06-06T06:01:02.4803587Z       "stages": {
2026-06-06T06:01:02.4803991Z         "doc": {
2026-06-06T06:01:02.4804448Z           "complete": false,
2026-06-06T06:01:02.4804884Z           "evidence": []
2026-06-06T06:01:02.4805285Z         },
2026-06-06T06:01:02.4805695Z         "impl": {
2026-06-06T06:01:02.4806152Z           "complete": true,
2026-06-06T06:01:02.4806590Z           "evidence": [
2026-06-06T06:01:02.4807120Z             {
2026-06-06T06:01:02.4807712Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.4808135Z               "line": 25
2026-06-06T06:01:02.4808548Z             },
2026-06-06T06:01:02.4808950Z             {
2026-06-06T06:01:02.4809591Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.4810028Z               "line": 26
2026-06-06T06:01:02.4810426Z             },
2026-06-06T06:01:02.4810842Z             {
2026-06-06T06:01:02.4811427Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.4811874Z               "line": 153
2026-06-06T06:01:02.4812279Z             }
2026-06-06T06:01:02.4812682Z           ]
2026-06-06T06:01:02.4813086Z         },
2026-06-06T06:01:02.4813488Z         "int": {
2026-06-06T06:01:02.4813946Z           "complete": false,
2026-06-06T06:01:02.4814381Z           "evidence": []
2026-06-06T06:01:02.4814779Z         },
2026-06-06T06:01:02.4815185Z         "unit": {
2026-06-06T06:01:02.4815645Z           "complete": true,
2026-06-06T06:01:02.4816090Z           "evidence": [
2026-06-06T06:01:02.4816490Z             {
2026-06-06T06:01:02.4817066Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.4817498Z               "line": 180
2026-06-06T06:01:02.4817910Z             },
2026-06-06T06:01:02.4818308Z             {
2026-06-06T06:01:02.4818891Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.4819375Z               "line": 205
2026-06-06T06:01:02.4819774Z             },
2026-06-06T06:01:02.4820174Z             {
2026-06-06T06:01:02.4820758Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.4821198Z               "line": 180
2026-06-06T06:01:02.4821607Z             }
2026-06-06T06:01:02.4822003Z           ]
2026-06-06T06:01:02.4822401Z         }
2026-06-06T06:01:02.4822791Z       }
2026-06-06T06:01:02.4823189Z     },
2026-06-06T06:01:02.4823571Z     {
2026-06-06T06:01:02.4824091Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-06T06:01:02.4825009Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-06T06:01:02.4825483Z       "requiredStages": [
2026-06-06T06:01:02.4825897Z         "impl",
2026-06-06T06:01:02.4826302Z         "unit"
2026-06-06T06:01:02.4826696Z       ],
2026-06-06T06:01:02.4827113Z       "stages": {
2026-06-06T06:01:02.4827525Z         "doc": {
2026-06-06T06:01:02.4827977Z           "complete": false,
2026-06-06T06:01:02.4828423Z           "evidence": []
2026-06-06T06:01:02.4828837Z         },
2026-06-06T06:01:02.4829274Z         "impl": {
2026-06-06T06:01:02.4829734Z           "complete": true,
2026-06-06T06:01:02.4830170Z           "evidence": [
2026-06-06T06:01:02.4830577Z             {
2026-06-06T06:01:02.4831177Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4831610Z               "line": 48
2026-06-06T06:01:02.4832016Z             },
2026-06-06T06:01:02.4832415Z             {
2026-06-06T06:01:02.4833020Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4833454Z               "line": 55
2026-06-06T06:01:02.4833867Z             },
2026-06-06T06:01:02.4834275Z             {
2026-06-06T06:01:02.4834876Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4835310Z               "line": 74
2026-06-06T06:01:02.4835710Z             },
2026-06-06T06:01:02.4836110Z             {
2026-06-06T06:01:02.4836709Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4837327Z               "line": 91
2026-06-06T06:01:02.4837733Z             }
2026-06-06T06:01:02.4838123Z           ]
2026-06-06T06:01:02.4838525Z         },
2026-06-06T06:01:02.4838926Z         "int": {
2026-06-06T06:01:02.4839425Z           "complete": false,
2026-06-06T06:01:02.4839863Z           "evidence": []
2026-06-06T06:01:02.4840269Z         },
2026-06-06T06:01:02.4840681Z         "unit": {
2026-06-06T06:01:02.4841126Z           "complete": true,
2026-06-06T06:01:02.4841563Z           "evidence": [
2026-06-06T06:01:02.4841964Z             {
2026-06-06T06:01:02.4842703Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4847051Z               "line": 149
2026-06-06T06:01:02.4847551Z             },
2026-06-06T06:01:02.4847999Z             {
2026-06-06T06:01:02.4848630Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4849069Z               "line": 163
2026-06-06T06:01:02.4849544Z             },
2026-06-06T06:01:02.4849955Z             {
2026-06-06T06:01:02.4850591Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4851078Z               "line": 173
2026-06-06T06:01:02.4851492Z             },
2026-06-06T06:01:02.4851888Z             {
2026-06-06T06:01:02.4852499Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4852925Z               "line": 191
2026-06-06T06:01:02.4853330Z             },
2026-06-06T06:01:02.4853728Z             {
2026-06-06T06:01:02.4854331Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.4854765Z               "line": 204
2026-06-06T06:01:02.4855173Z             }
2026-06-06T06:01:02.4855579Z           ]
2026-06-06T06:01:02.4855976Z         }
2026-06-06T06:01:02.4856377Z       }
2026-06-06T06:01:02.4856768Z     },
2026-06-06T06:01:02.4857161Z     {
2026-06-06T06:01:02.4857802Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-06T06:01:02.4858875Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-06T06:01:02.4859394Z       "requiredStages": [
2026-06-06T06:01:02.4859803Z         "impl",
2026-06-06T06:01:02.4860209Z         "unit"
2026-06-06T06:01:02.4860606Z       ],
2026-06-06T06:01:02.4861022Z       "stages": {
2026-06-06T06:01:02.4861431Z         "doc": {
2026-06-06T06:01:02.4861877Z           "complete": false,
2026-06-06T06:01:02.4862313Z           "evidence": []
2026-06-06T06:01:02.4862702Z         },
2026-06-06T06:01:02.4863112Z         "impl": {
2026-06-06T06:01:02.4863556Z           "complete": true,
2026-06-06T06:01:02.4863995Z           "evidence": [
2026-06-06T06:01:02.4864405Z             {
2026-06-06T06:01:02.4865042Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.4865474Z               "line": 349
2026-06-06T06:01:02.4865873Z             },
2026-06-06T06:01:02.4866270Z             {
2026-06-06T06:01:02.4866865Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.4867301Z               "line": 26
2026-06-06T06:01:02.4867699Z             }
2026-06-06T06:01:02.4868104Z           ]
2026-06-06T06:01:02.4868501Z         },
2026-06-06T06:01:02.4868904Z         "int": {
2026-06-06T06:01:02.4869395Z           "complete": false,
2026-06-06T06:01:02.4869830Z           "evidence": []
2026-06-06T06:01:02.4870227Z         },
2026-06-06T06:01:02.4870639Z         "unit": {
2026-06-06T06:01:02.4871095Z           "complete": true,
2026-06-06T06:01:02.4871531Z           "evidence": [
2026-06-06T06:01:02.4871925Z             {
2026-06-06T06:01:02.4872540Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.4872979Z               "line": 139
2026-06-06T06:01:02.4873383Z             },
2026-06-06T06:01:02.4873783Z             {
2026-06-06T06:01:02.4874378Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.4874807Z               "line": 182
2026-06-06T06:01:02.4875198Z             }
2026-06-06T06:01:02.4875599Z           ]
2026-06-06T06:01:02.4875990Z         }
2026-06-06T06:01:02.4876386Z       }
2026-06-06T06:01:02.4877101Z     },
2026-06-06T06:01:02.4877484Z     {
2026-06-06T06:01:02.4878091Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-06T06:01:02.4878935Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-06T06:01:02.4879449Z       "requiredStages": [
2026-06-06T06:01:02.4879861Z         "impl",
2026-06-06T06:01:02.4880278Z         "unit"
2026-06-06T06:01:02.4880679Z       ],
2026-06-06T06:01:02.4881096Z       "stages": {
2026-06-06T06:01:02.4881514Z         "doc": {
2026-06-06T06:01:02.4881967Z           "complete": false,
2026-06-06T06:01:02.4882562Z           "evidence": []
2026-06-06T06:01:02.4882987Z         },
2026-06-06T06:01:02.4883414Z         "impl": {
2026-06-06T06:01:02.4883872Z           "complete": true,
2026-06-06T06:01:02.4884305Z           "evidence": [
2026-06-06T06:01:02.4884712Z             {
2026-06-06T06:01:02.4885348Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4885785Z               "line": 36
2026-06-06T06:01:02.4886196Z             },
2026-06-06T06:01:02.4886607Z             {
2026-06-06T06:01:02.4887256Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4887684Z               "line": 68
2026-06-06T06:01:02.4888094Z             }
2026-06-06T06:01:02.4888493Z           ]
2026-06-06T06:01:02.4888903Z         },
2026-06-06T06:01:02.4889346Z         "int": {
2026-06-06T06:01:02.4889814Z           "complete": false,
2026-06-06T06:01:02.4890264Z           "evidence": []
2026-06-06T06:01:02.4890664Z         },
2026-06-06T06:01:02.4891078Z         "unit": {
2026-06-06T06:01:02.4891533Z           "complete": true,
2026-06-06T06:01:02.4891974Z           "evidence": [
2026-06-06T06:01:02.4892375Z             {
2026-06-06T06:01:02.4893022Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4893463Z               "line": 143
2026-06-06T06:01:02.4893865Z             },
2026-06-06T06:01:02.4894273Z             {
2026-06-06T06:01:02.4894904Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4895359Z               "line": 160
2026-06-06T06:01:02.4895767Z             },
2026-06-06T06:01:02.4896183Z             {
2026-06-06T06:01:02.4896853Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4897301Z               "line": 168
2026-06-06T06:01:02.4897708Z             }
2026-06-06T06:01:02.4898108Z           ]
2026-06-06T06:01:02.4898512Z         }
2026-06-06T06:01:02.4898902Z       }
2026-06-06T06:01:02.4899347Z     },
2026-06-06T06:01:02.4899749Z     {
2026-06-06T06:01:02.4900377Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-06T06:01:02.4901371Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-06T06:01:02.4901836Z       "requiredStages": [
2026-06-06T06:01:02.4902259Z         "impl",
2026-06-06T06:01:02.4902665Z         "unit"
2026-06-06T06:01:02.4903075Z       ],
2026-06-06T06:01:02.4903497Z       "stages": {
2026-06-06T06:01:02.4903904Z         "doc": {
2026-06-06T06:01:02.4904383Z           "complete": false,
2026-06-06T06:01:02.4904820Z           "evidence": []
2026-06-06T06:01:02.4905229Z         },
2026-06-06T06:01:02.4905646Z         "impl": {
2026-06-06T06:01:02.4906106Z           "complete": true,
2026-06-06T06:01:02.4906549Z           "evidence": [
2026-06-06T06:01:02.4906953Z             {
2026-06-06T06:01:02.4907595Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4908024Z               "line": 107
2026-06-06T06:01:02.4908429Z             }
2026-06-06T06:01:02.4908830Z           ]
2026-06-06T06:01:02.4909371Z         },
2026-06-06T06:01:02.4909824Z         "int": {
2026-06-06T06:01:02.4910286Z           "complete": false,
2026-06-06T06:01:02.4910732Z           "evidence": []
2026-06-06T06:01:02.4911130Z         },
2026-06-06T06:01:02.4911549Z         "unit": {
2026-06-06T06:01:02.4912001Z           "complete": true,
2026-06-06T06:01:02.4912446Z           "evidence": [
2026-06-06T06:01:02.4912859Z             {
2026-06-06T06:01:02.4913495Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4914122Z               "line": 184
2026-06-06T06:01:02.4914527Z             },
2026-06-06T06:01:02.4914942Z             {
2026-06-06T06:01:02.4915578Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4916019Z               "line": 193
2026-06-06T06:01:02.4916434Z             },
2026-06-06T06:01:02.4916832Z             {
2026-06-06T06:01:02.4917476Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4917910Z               "line": 201
2026-06-06T06:01:02.4918490Z             },
2026-06-06T06:01:02.4918915Z             {
2026-06-06T06:01:02.4919619Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4920071Z               "line": 210
2026-06-06T06:01:02.4920475Z             },
2026-06-06T06:01:02.4920889Z             {
2026-06-06T06:01:02.4921527Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-06T06:01:02.4921972Z               "line": 219
2026-06-06T06:01:02.4922396Z             }
2026-06-06T06:01:02.4927007Z           ]
2026-06-06T06:01:02.4927510Z         }
2026-06-06T06:01:02.4927914Z       }
2026-06-06T06:01:02.4928316Z     },
2026-06-06T06:01:02.4928717Z     {
2026-06-06T06:01:02.4929413Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-06T06:01:02.4930324Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-06T06:01:02.4930804Z       "requiredStages": [
2026-06-06T06:01:02.4931225Z         "impl",
2026-06-06T06:01:02.4931633Z         "unit"
2026-06-06T06:01:02.4932045Z       ],
2026-06-06T06:01:02.4932493Z       "stages": {
2026-06-06T06:01:02.4932912Z         "doc": {
2026-06-06T06:01:02.4933367Z           "complete": false,
2026-06-06T06:01:02.4933818Z           "evidence": []
2026-06-06T06:01:02.4934225Z         },
2026-06-06T06:01:02.4934638Z         "impl": {
2026-06-06T06:01:02.4935094Z           "complete": true,
2026-06-06T06:01:02.4935531Z           "evidence": [
2026-06-06T06:01:02.4935945Z             {
2026-06-06T06:01:02.4936530Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4936962Z               "line": 14
2026-06-06T06:01:02.4937376Z             },
2026-06-06T06:01:02.4937781Z             {
2026-06-06T06:01:02.4938354Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4938789Z               "line": 62
2026-06-06T06:01:02.4939233Z             }
2026-06-06T06:01:02.4939639Z           ]
2026-06-06T06:01:02.4940054Z         },
2026-06-06T06:01:02.4940474Z         "int": {
2026-06-06T06:01:02.4940934Z           "complete": false,
2026-06-06T06:01:02.4941397Z           "evidence": []
2026-06-06T06:01:02.4941798Z         },
2026-06-06T06:01:02.4942217Z         "unit": {
2026-06-06T06:01:02.4942674Z           "complete": true,
2026-06-06T06:01:02.4943117Z           "evidence": [
2026-06-06T06:01:02.4943526Z             {
2026-06-06T06:01:02.4944094Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4944534Z               "line": 160
2026-06-06T06:01:02.4944948Z             },
2026-06-06T06:01:02.4945358Z             {
2026-06-06T06:01:02.4945919Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4946360Z               "line": 197
2026-06-06T06:01:02.4946771Z             },
2026-06-06T06:01:02.4947172Z             {
2026-06-06T06:01:02.4947740Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.4948179Z               "line": 213
2026-06-06T06:01:02.4948589Z             }
2026-06-06T06:01:02.4948997Z           ]
2026-06-06T06:01:02.4949452Z         }
2026-06-06T06:01:02.4949872Z       }
2026-06-06T06:01:02.4950271Z     },
2026-06-06T06:01:02.4950679Z     {
2026-06-06T06:01:02.4951276Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-06T06:01:02.4952527Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-06T06:01:02.4953002Z       "requiredStages": [
2026-06-06T06:01:02.4953416Z         "impl",
2026-06-06T06:01:02.4953827Z         "unit"
2026-06-06T06:01:02.4954509Z       ],
2026-06-06T06:01:02.4954941Z       "stages": {
2026-06-06T06:01:02.4955349Z         "doc": {
2026-06-06T06:01:02.4955815Z           "complete": false,
2026-06-06T06:01:02.4956266Z           "evidence": []
2026-06-06T06:01:02.4956664Z         },
2026-06-06T06:01:02.4957090Z         "impl": {
2026-06-06T06:01:02.4957540Z           "complete": true,
2026-06-06T06:01:02.4957979Z           "evidence": [
2026-06-06T06:01:02.4958383Z             {
2026-06-06T06:01:02.4958983Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4959609Z               "line": 76
2026-06-06T06:01:02.4960057Z             },
2026-06-06T06:01:02.4960474Z             {
2026-06-06T06:01:02.4961083Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4961532Z               "line": 163
2026-06-06T06:01:02.4961938Z             },
2026-06-06T06:01:02.4962349Z             {
2026-06-06T06:01:02.4962950Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4963401Z               "line": 229
2026-06-06T06:01:02.4963815Z             },
2026-06-06T06:01:02.4964216Z             {
2026-06-06T06:01:02.4964829Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4965263Z               "line": 265
2026-06-06T06:01:02.4965676Z             }
2026-06-06T06:01:02.4966085Z           ]
2026-06-06T06:01:02.4966485Z         },
2026-06-06T06:01:02.4966903Z         "int": {
2026-06-06T06:01:02.4967367Z           "complete": false,
2026-06-06T06:01:02.4967821Z           "evidence": []
2026-06-06T06:01:02.4968220Z         },
2026-06-06T06:01:02.4968653Z         "unit": {
2026-06-06T06:01:02.4969121Z           "complete": true,
2026-06-06T06:01:02.4969610Z           "evidence": [
2026-06-06T06:01:02.4970026Z             {
2026-06-06T06:01:02.4970618Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4971067Z               "line": 310
2026-06-06T06:01:02.4971470Z             },
2026-06-06T06:01:02.4971875Z             {
2026-06-06T06:01:02.4972488Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4972925Z               "line": 318
2026-06-06T06:01:02.4973340Z             },
2026-06-06T06:01:02.4973745Z             {
2026-06-06T06:01:02.4974348Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4974779Z               "line": 341
2026-06-06T06:01:02.4975190Z             },
2026-06-06T06:01:02.4975595Z             {
2026-06-06T06:01:02.4976188Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4976628Z               "line": 378
2026-06-06T06:01:02.4977043Z             },
2026-06-06T06:01:02.4977458Z             {
2026-06-06T06:01:02.4978050Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4978491Z               "line": 389
2026-06-06T06:01:02.4978902Z             },
2026-06-06T06:01:02.4979328Z             {
2026-06-06T06:01:02.4979932Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4980368Z               "line": 401
2026-06-06T06:01:02.4980792Z             },
2026-06-06T06:01:02.4981193Z             {
2026-06-06T06:01:02.4981791Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-06T06:01:02.4982232Z               "line": 413
2026-06-06T06:01:02.4982635Z             }
2026-06-06T06:01:02.4983045Z           ]
2026-06-06T06:01:02.4983446Z         }
2026-06-06T06:01:02.4983849Z       }
2026-06-06T06:01:02.4984249Z     },
2026-06-06T06:01:02.4984650Z     {
2026-06-06T06:01:02.4985173Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-06T06:01:02.4985961Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-06T06:01:02.4986429Z       "requiredStages": [
2026-06-06T06:01:02.4986837Z         "impl",
2026-06-06T06:01:02.4987248Z         "int"
2026-06-06T06:01:02.4987643Z       ],
2026-06-06T06:01:02.4988057Z       "stages": {
2026-06-06T06:01:02.4988463Z         "doc": {
2026-06-06T06:01:02.4988908Z           "complete": false,
2026-06-06T06:01:02.4989386Z           "evidence": []
2026-06-06T06:01:02.4989957Z         },
2026-06-06T06:01:02.4990381Z         "impl": {
2026-06-06T06:01:02.4990824Z           "complete": true,
2026-06-06T06:01:02.4991257Z           "evidence": [
2026-06-06T06:01:02.4991661Z             {
2026-06-06T06:01:02.4992268Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.4992703Z               "line": 22
2026-06-06T06:01:02.4993104Z             }
2026-06-06T06:01:02.4993515Z           ]
2026-06-06T06:01:02.4993913Z         },
2026-06-06T06:01:02.4994325Z         "int": {
2026-06-06T06:01:02.4994782Z           "complete": true,
2026-06-06T06:01:02.4995347Z           "evidence": [
2026-06-06T06:01:02.4995770Z             {
2026-06-06T06:01:02.4996426Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-06T06:01:02.4996866Z               "line": 18
2026-06-06T06:01:02.4997269Z             }
2026-06-06T06:01:02.4997680Z           ]
2026-06-06T06:01:02.4998089Z         },
2026-06-06T06:01:02.4998500Z         "unit": {
2026-06-06T06:01:02.4998986Z           "complete": false,
2026-06-06T06:01:02.4999473Z           "evidence": []
2026-06-06T06:01:02.4999888Z         }
2026-06-06T06:01:02.5000283Z       }
2026-06-06T06:01:02.5000688Z     },
2026-06-06T06:01:02.5001088Z     {
2026-06-06T06:01:02.5001678Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-06T06:01:02.5006733Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-06T06:01:02.5007301Z       "requiredStages": [
2026-06-06T06:01:02.5007728Z         "impl",
2026-06-06T06:01:02.5008133Z         "unit"
2026-06-06T06:01:02.5008566Z       ],
2026-06-06T06:01:02.5009000Z       "stages": {
2026-06-06T06:01:02.5009496Z         "doc": {
2026-06-06T06:01:02.5009967Z           "complete": false,
2026-06-06T06:01:02.5010413Z           "evidence": []
2026-06-06T06:01:02.5010817Z         },
2026-06-06T06:01:02.5011231Z         "impl": {
2026-06-06T06:01:02.5011690Z           "complete": true,
2026-06-06T06:01:02.5012131Z           "evidence": [
2026-06-06T06:01:02.5012546Z             {
2026-06-06T06:01:02.5013215Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.5013648Z               "line": 348
2026-06-06T06:01:02.5014056Z             },
2026-06-06T06:01:02.5014455Z             {
2026-06-06T06:01:02.5015071Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.5015515Z               "line": 27
2026-06-06T06:01:02.5015914Z             }
2026-06-06T06:01:02.5016321Z           ]
2026-06-06T06:01:02.5016721Z         },
2026-06-06T06:01:02.5017136Z         "int": {
2026-06-06T06:01:02.5017600Z           "complete": false,
2026-06-06T06:01:02.5018051Z           "evidence": []
2026-06-06T06:01:02.5018459Z         },
2026-06-06T06:01:02.5018871Z         "unit": {
2026-06-06T06:01:02.5019373Z           "complete": true,
2026-06-06T06:01:02.5019811Z           "evidence": [
2026-06-06T06:01:02.5020225Z             {
2026-06-06T06:01:02.5020877Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.5021330Z               "line": 753
2026-06-06T06:01:02.5021747Z             },
2026-06-06T06:01:02.5022144Z             {
2026-06-06T06:01:02.5022754Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.5023189Z               "line": 164
2026-06-06T06:01:02.5023600Z             }
2026-06-06T06:01:02.5024000Z           ]
2026-06-06T06:01:02.5024407Z         }
2026-06-06T06:01:02.5024809Z       }
2026-06-06T06:01:02.5025201Z     },
2026-06-06T06:01:02.5025602Z     {
2026-06-06T06:01:02.5026191Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-06T06:01:02.5027102Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-06T06:01:02.5027568Z       "requiredStages": [
2026-06-06T06:01:02.5027987Z         "impl",
2026-06-06T06:01:02.5028404Z         "unit"
2026-06-06T06:01:02.5028808Z       ],
2026-06-06T06:01:02.5029274Z       "stages": {
2026-06-06T06:01:02.5029680Z         "doc": {
2026-06-06T06:01:02.5030150Z           "complete": false,
2026-06-06T06:01:02.5030856Z           "evidence": []
2026-06-06T06:01:02.5031259Z         },
2026-06-06T06:01:02.5031681Z         "impl": {
2026-06-06T06:01:02.5032131Z           "complete": true,
2026-06-06T06:01:02.5032575Z           "evidence": [
2026-06-06T06:01:02.5032978Z             {
2026-06-06T06:01:02.5033596Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5034021Z               "line": 20
2026-06-06T06:01:02.5034425Z             },
2026-06-06T06:01:02.5034823Z             {
2026-06-06T06:01:02.5035423Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5035980Z               "line": 94
2026-06-06T06:01:02.5036391Z             },
2026-06-06T06:01:02.5036796Z             {
2026-06-06T06:01:02.5037447Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-06T06:01:02.5037884Z               "line": 70
2026-06-06T06:01:02.5038297Z             },
2026-06-06T06:01:02.5038700Z             {
2026-06-06T06:01:02.5039396Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-06T06:01:02.5039846Z               "line": 82
2026-06-06T06:01:02.5040254Z             }
2026-06-06T06:01:02.5040654Z           ]
2026-06-06T06:01:02.5041061Z         },
2026-06-06T06:01:02.5041476Z         "int": {
2026-06-06T06:01:02.5041933Z           "complete": false,
2026-06-06T06:01:02.5042379Z           "evidence": []
2026-06-06T06:01:02.5042781Z         },
2026-06-06T06:01:02.5043199Z         "unit": {
2026-06-06T06:01:02.5043649Z           "complete": true,
2026-06-06T06:01:02.5044094Z           "evidence": [
2026-06-06T06:01:02.5044514Z             {
2026-06-06T06:01:02.5045130Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5045576Z               "line": 139
2026-06-06T06:01:02.5045982Z             },
2026-06-06T06:01:02.5046387Z             {
2026-06-06T06:01:02.5046986Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5047434Z               "line": 162
2026-06-06T06:01:02.5047846Z             },
2026-06-06T06:01:02.5048258Z             {
2026-06-06T06:01:02.5048868Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5049357Z               "line": 173
2026-06-06T06:01:02.5049806Z             },
2026-06-06T06:01:02.5050233Z             {
2026-06-06T06:01:02.5050849Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5051293Z               "line": 189
2026-06-06T06:01:02.5051695Z             },
2026-06-06T06:01:02.5052106Z             {
2026-06-06T06:01:02.5052714Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-06T06:01:02.5053170Z               "line": 200
2026-06-06T06:01:02.5053582Z             },
2026-06-06T06:01:02.5053981Z             {
2026-06-06T06:01:02.5054638Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-06T06:01:02.5055070Z               "line": 139
2026-06-06T06:01:02.5055476Z             }
2026-06-06T06:01:02.5055872Z           ]
2026-06-06T06:01:02.5056280Z         }
2026-06-06T06:01:02.5056689Z       }
2026-06-06T06:01:02.5057102Z     },
2026-06-06T06:01:02.5057501Z     {
2026-06-06T06:01:02.5058000Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-06T06:01:02.5059531Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-06T06:01:02.5059994Z       "requiredStages": [
2026-06-06T06:01:02.5060415Z         "impl",
2026-06-06T06:01:02.5060831Z         "unit"
2026-06-06T06:01:02.5061232Z       ],
2026-06-06T06:01:02.5061656Z       "stages": {
2026-06-06T06:01:02.5062065Z         "doc": {
2026-06-06T06:01:02.5062522Z           "complete": true,
2026-06-06T06:01:02.5062970Z           "evidence": [
2026-06-06T06:01:02.5063376Z             {
2026-06-06T06:01:02.5063930Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.5064368Z               "line": 131
2026-06-06T06:01:02.5064776Z             }
2026-06-06T06:01:02.5065176Z           ]
2026-06-06T06:01:02.5065584Z         },
2026-06-06T06:01:02.5066001Z         "impl": {
2026-06-06T06:01:02.5066687Z           "complete": true,
2026-06-06T06:01:02.5067143Z           "evidence": [
2026-06-06T06:01:02.5067547Z             {
2026-06-06T06:01:02.5068129Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.5068560Z               "line": 65
2026-06-06T06:01:02.5068972Z             },
2026-06-06T06:01:02.5069410Z             {
2026-06-06T06:01:02.5070003Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5070441Z               "line": 17
2026-06-06T06:01:02.5070847Z             },
2026-06-06T06:01:02.5071255Z             {
2026-06-06T06:01:02.5071973Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.5072434Z               "line": 212
2026-06-06T06:01:02.5072841Z             },
2026-06-06T06:01:02.5073254Z             {
2026-06-06T06:01:02.5073862Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.5074303Z               "line": 312
2026-06-06T06:01:02.5074715Z             },
2026-06-06T06:01:02.5075123Z             {
2026-06-06T06:01:02.5075732Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.5076168Z               "line": 32
2026-06-06T06:01:02.5076576Z             },
2026-06-06T06:01:02.5076990Z             {
2026-06-06T06:01:02.5077526Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.5077972Z               "line": 2576
2026-06-06T06:01:02.5078375Z             },
2026-06-06T06:01:02.5078786Z             {
2026-06-06T06:01:02.5079361Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.5079815Z               "line": 2829
2026-06-06T06:01:02.5080237Z             }
2026-06-06T06:01:02.5080636Z           ]
2026-06-06T06:01:02.5081045Z         },
2026-06-06T06:01:02.5081449Z         "int": {
2026-06-06T06:01:02.5081912Z           "complete": false,
2026-06-06T06:01:02.5082348Z           "evidence": []
2026-06-06T06:01:02.5086738Z         },
2026-06-06T06:01:02.5087199Z         "unit": {
2026-06-06T06:01:02.5087656Z           "complete": true,
2026-06-06T06:01:02.5088125Z           "evidence": [
2026-06-06T06:01:02.5088524Z             {
2026-06-06T06:01:02.5089107Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5089613Z               "line": 94
2026-06-06T06:01:02.5090026Z             },
2026-06-06T06:01:02.5090425Z             {
2026-06-06T06:01:02.5090992Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5091428Z               "line": 111
2026-06-06T06:01:02.5091827Z             },
2026-06-06T06:01:02.5092227Z             {
2026-06-06T06:01:02.5092789Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5093235Z               "line": 124
2026-06-06T06:01:02.5093640Z             },
2026-06-06T06:01:02.5094030Z             {
2026-06-06T06:01:02.5094592Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5095021Z               "line": 134
2026-06-06T06:01:02.5095427Z             },
2026-06-06T06:01:02.5095818Z             {
2026-06-06T06:01:02.5096387Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5096833Z               "line": 142
2026-06-06T06:01:02.5097228Z             },
2026-06-06T06:01:02.5097634Z             {
2026-06-06T06:01:02.5098195Z               "path": "crates/spt-proto/src/id.rs",
2026-06-06T06:01:02.5098629Z               "line": 154
2026-06-06T06:01:02.5099027Z             },
2026-06-06T06:01:02.5099468Z             {
2026-06-06T06:01:02.5100160Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.5100587Z               "line": 645
2026-06-06T06:01:02.5100988Z             }
2026-06-06T06:01:02.5101390Z           ]
2026-06-06T06:01:02.5101789Z         }
2026-06-06T06:01:02.5102179Z       }
2026-06-06T06:01:02.5102578Z     },
2026-06-06T06:01:02.5102970Z     {
2026-06-06T06:01:02.5103489Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-06T06:01:02.5104180Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-06T06:01:02.5104632Z       "requiredStages": [
2026-06-06T06:01:02.5105044Z         "impl",
2026-06-06T06:01:02.5105689Z         "unit"
2026-06-06T06:01:02.5106093Z       ],
2026-06-06T06:01:02.5106515Z       "stages": {
2026-06-06T06:01:02.5106912Z         "doc": {
2026-06-06T06:01:02.5107366Z           "complete": false,
2026-06-06T06:01:02.5107800Z           "evidence": []
2026-06-06T06:01:02.5108203Z         },
2026-06-06T06:01:02.5108612Z         "impl": {
2026-06-06T06:01:02.5109062Z           "complete": true,
2026-06-06T06:01:02.5109541Z           "evidence": [
2026-06-06T06:01:02.5109939Z             {
2026-06-06T06:01:02.5110670Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.5111116Z               "line": 128
2026-06-06T06:01:02.5111524Z             }
2026-06-06T06:01:02.5111921Z           ]
2026-06-06T06:01:02.5112330Z         },
2026-06-06T06:01:02.5112739Z         "int": {
2026-06-06T06:01:02.5113193Z           "complete": false,
2026-06-06T06:01:02.5113627Z           "evidence": []
2026-06-06T06:01:02.5114018Z         },
2026-06-06T06:01:02.5114430Z         "unit": {
2026-06-06T06:01:02.5114883Z           "complete": true,
2026-06-06T06:01:02.5115310Z           "evidence": [
2026-06-06T06:01:02.5115711Z             {
2026-06-06T06:01:02.5116297Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.5116732Z               "line": 205
2026-06-06T06:01:02.5117121Z             }
2026-06-06T06:01:02.5117518Z           ]
2026-06-06T06:01:02.5117908Z         }
2026-06-06T06:01:02.5118302Z       }
2026-06-06T06:01:02.5118690Z     },
2026-06-06T06:01:02.5119073Z     {
2026-06-06T06:01:02.5119700Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-06T06:01:02.5120519Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-06T06:01:02.5120991Z       "requiredStages": [
2026-06-06T06:01:02.5121401Z         "impl",
2026-06-06T06:01:02.5121814Z         "unit"
2026-06-06T06:01:02.5122221Z       ],
2026-06-06T06:01:02.5122635Z       "stages": {
2026-06-06T06:01:02.5123055Z         "doc": {
2026-06-06T06:01:02.5123514Z           "complete": false,
2026-06-06T06:01:02.5123974Z           "evidence": []
2026-06-06T06:01:02.5124375Z         },
2026-06-06T06:01:02.5124802Z         "impl": {
2026-06-06T06:01:02.5125259Z           "complete": true,
2026-06-06T06:01:02.5125692Z           "evidence": [
2026-06-06T06:01:02.5126098Z             {
2026-06-06T06:01:02.5126685Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5127127Z               "line": 231
2026-06-06T06:01:02.5127532Z             },
2026-06-06T06:01:02.5127940Z             {
2026-06-06T06:01:02.5128542Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5128981Z               "line": 242
2026-06-06T06:01:02.5129427Z             },
2026-06-06T06:01:02.5129828Z             {
2026-06-06T06:01:02.5130416Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5130854Z               "line": 260
2026-06-06T06:01:02.5131275Z             }
2026-06-06T06:01:02.5131684Z           ]
2026-06-06T06:01:02.5132088Z         },
2026-06-06T06:01:02.5132512Z         "int": {
2026-06-06T06:01:02.5132969Z           "complete": false,
2026-06-06T06:01:02.5133416Z           "evidence": []
2026-06-06T06:01:02.5133817Z         },
2026-06-06T06:01:02.5134232Z         "unit": {
2026-06-06T06:01:02.5134694Z           "complete": true,
2026-06-06T06:01:02.5135130Z           "evidence": [
2026-06-06T06:01:02.5135538Z             {
2026-06-06T06:01:02.5136124Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5136559Z               "line": 284
2026-06-06T06:01:02.5136959Z             },
2026-06-06T06:01:02.5137372Z             {
2026-06-06T06:01:02.5137960Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5138394Z               "line": 302
2026-06-06T06:01:02.5138805Z             },
2026-06-06T06:01:02.5139234Z             {
2026-06-06T06:01:02.5139827Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5140258Z               "line": 467
2026-06-06T06:01:02.5140669Z             },
2026-06-06T06:01:02.5141259Z             {
2026-06-06T06:01:02.5141843Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5142283Z               "line": 478
2026-06-06T06:01:02.5142683Z             },
2026-06-06T06:01:02.5143093Z             {
2026-06-06T06:01:02.5143680Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.5144114Z               "line": 491
2026-06-06T06:01:02.5144526Z             }
2026-06-06T06:01:02.5144931Z           ]
2026-06-06T06:01:02.5145338Z         }
2026-06-06T06:01:02.5145732Z       }
2026-06-06T06:01:02.5146257Z     },
2026-06-06T06:01:02.5146672Z     {
2026-06-06T06:01:02.5147212Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-06T06:01:02.5148469Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-06T06:01:02.5148937Z       "requiredStages": [
2026-06-06T06:01:02.5149400Z         "impl",
2026-06-06T06:01:02.5149813Z         "unit"
2026-06-06T06:01:02.5150219Z       ],
2026-06-06T06:01:02.5150660Z       "stages": {
2026-06-06T06:01:02.5151069Z         "doc": {
2026-06-06T06:01:02.5151530Z           "complete": false,
2026-06-06T06:01:02.5151968Z           "evidence": []
2026-06-06T06:01:02.5152381Z         },
2026-06-06T06:01:02.5152797Z         "impl": {
2026-06-06T06:01:02.5153260Z           "complete": true,
2026-06-06T06:01:02.5153699Z           "evidence": [
2026-06-06T06:01:02.5154101Z             {
2026-06-06T06:01:02.5154674Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5155106Z               "line": 14
2026-06-06T06:01:02.5155526Z             },
2026-06-06T06:01:02.5155928Z             {
2026-06-06T06:01:02.5156495Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.5156938Z               "line": 372
2026-06-06T06:01:02.5157342Z             }
2026-06-06T06:01:02.5157760Z           ]
2026-06-06T06:01:02.5158165Z         },
2026-06-06T06:01:02.5158581Z         "int": {
2026-06-06T06:01:02.5159039Z           "complete": false,
2026-06-06T06:01:02.5159544Z           "evidence": []
2026-06-06T06:01:02.5159954Z         },
2026-06-06T06:01:02.5160374Z         "unit": {
2026-06-06T06:01:02.5164714Z           "complete": true,
2026-06-06T06:01:02.5165236Z           "evidence": [
2026-06-06T06:01:02.5165650Z             {
2026-06-06T06:01:02.5166229Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5166670Z               "line": 130
2026-06-06T06:01:02.5167080Z             },
2026-06-06T06:01:02.5167483Z             {
2026-06-06T06:01:02.5168059Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5168514Z               "line": 138
2026-06-06T06:01:02.5168926Z             },
2026-06-06T06:01:02.5169411Z             {
2026-06-06T06:01:02.5169994Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5170432Z               "line": 146
2026-06-06T06:01:02.5170838Z             },
2026-06-06T06:01:02.5171250Z             {
2026-06-06T06:01:02.5171807Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5172257Z               "line": 154
2026-06-06T06:01:02.5172661Z             },
2026-06-06T06:01:02.5173070Z             {
2026-06-06T06:01:02.5173639Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5174077Z               "line": 162
2026-06-06T06:01:02.5174482Z             },
2026-06-06T06:01:02.5174879Z             {
2026-06-06T06:01:02.5175451Z               "path": "crates/spt/src/api/auth.rs",
2026-06-06T06:01:02.5175887Z               "line": 170
2026-06-06T06:01:02.5176293Z             }
2026-06-06T06:01:02.5176698Z           ]
2026-06-06T06:01:02.5177105Z         }
2026-06-06T06:01:02.5177520Z       }
2026-06-06T06:01:02.5177911Z     },
2026-06-06T06:01:02.5178309Z     {
2026-06-06T06:01:02.5178848Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-06T06:01:02.5184312Z       "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-06T06:01:02.5185075Z       "requiredStages": [
2026-06-06T06:01:02.5185493Z         "impl",
2026-06-06T06:01:02.5185910Z         "unit"
2026-06-06T06:01:02.5186306Z       ],
2026-06-06T06:01:02.5186726Z       "stages": {
2026-06-06T06:01:02.5187141Z         "doc": {
2026-06-06T06:01:02.5187598Z           "complete": false,
2026-06-06T06:01:02.5188042Z           "evidence": []
2026-06-06T06:01:02.5188437Z         },
2026-06-06T06:01:02.5188855Z         "impl": {
2026-06-06T06:01:02.5189491Z           "complete": true,
2026-06-06T06:01:02.5189949Z           "evidence": [
2026-06-06T06:01:02.5190358Z             {
2026-06-06T06:01:02.5191123Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5191566Z               "line": 34
2026-06-06T06:01:02.5191971Z             }
2026-06-06T06:01:02.5192380Z           ]
2026-06-06T06:01:02.5192782Z         },
2026-06-06T06:01:02.5193267Z         "int": {
2026-06-06T06:01:02.5193852Z           "complete": false,
2026-06-06T06:01:02.5194334Z           "evidence": []
2026-06-06T06:01:02.5194750Z         },
2026-06-06T06:01:02.5195162Z         "unit": {
2026-06-06T06:01:02.5195626Z           "complete": true,
2026-06-06T06:01:02.5196060Z           "evidence": [
2026-06-06T06:01:02.5196469Z             {
2026-06-06T06:01:02.5197253Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5197685Z               "line": 188
2026-06-06T06:01:02.5198096Z             },
2026-06-06T06:01:02.5198511Z             {
2026-06-06T06:01:02.5199352Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5199823Z               "line": 200
2026-06-06T06:01:02.5200280Z             },
2026-06-06T06:01:02.5200685Z             {
2026-06-06T06:01:02.5201436Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5201877Z               "line": 211
2026-06-06T06:01:02.5202293Z             },
2026-06-06T06:01:02.5202698Z             {
2026-06-06T06:01:02.5203445Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5203889Z               "line": 245
2026-06-06T06:01:02.5204297Z             },
2026-06-06T06:01:02.5204695Z             {
2026-06-06T06:01:02.5205456Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5205889Z               "line": 267
2026-06-06T06:01:02.5206304Z             },
2026-06-06T06:01:02.5206707Z             {
2026-06-06T06:01:02.5207483Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5207921Z               "line": 288
2026-06-06T06:01:02.5208330Z             },
2026-06-06T06:01:02.5208743Z             {
2026-06-06T06:01:02.5209537Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-06T06:01:02.5209981Z               "line": 304
2026-06-06T06:01:02.5210380Z             }
2026-06-06T06:01:02.5210802Z           ]
2026-06-06T06:01:02.5211216Z         }
2026-06-06T06:01:02.5211611Z       }
2026-06-06T06:01:02.5212010Z     },
2026-06-06T06:01:02.5212402Z     {
2026-06-06T06:01:02.5212969Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-06T06:01:02.5216443Z       "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-06T06:01:02.5216918Z       "requiredStages": [
2026-06-06T06:01:02.5217344Z         "impl",
2026-06-06T06:01:02.5217766Z         "unit"
2026-06-06T06:01:02.5218180Z       ],
2026-06-06T06:01:02.5218599Z       "stages": {
2026-06-06T06:01:02.5219020Z         "doc": {
2026-06-06T06:01:02.5219537Z           "complete": false,
2026-06-06T06:01:02.5219986Z           "evidence": []
2026-06-06T06:01:02.5220396Z         },
2026-06-06T06:01:02.5220812Z         "impl": {
2026-06-06T06:01:02.5221271Z           "complete": true,
2026-06-06T06:01:02.5221966Z           "evidence": [
2026-06-06T06:01:02.5222377Z             {
2026-06-06T06:01:02.5223002Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5223442Z               "line": 29
2026-06-06T06:01:02.5223862Z             },
2026-06-06T06:01:02.5224273Z             {
2026-06-06T06:01:02.5224884Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5225318Z               "line": 154
2026-06-06T06:01:02.5225735Z             },
2026-06-06T06:01:02.5226148Z             {
2026-06-06T06:01:02.5226885Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5227353Z               "line": 173
2026-06-06T06:01:02.5227761Z             },
2026-06-06T06:01:02.5228172Z             {
2026-06-06T06:01:02.5228777Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5229281Z               "line": 200
2026-06-06T06:01:02.5229695Z             }
2026-06-06T06:01:02.5230102Z           ]
2026-06-06T06:01:02.5230527Z         },
2026-06-06T06:01:02.5230940Z         "int": {
2026-06-06T06:01:02.5231412Z           "complete": false,
2026-06-06T06:01:02.5231856Z           "evidence": []
2026-06-06T06:01:02.5232269Z         },
2026-06-06T06:01:02.5232698Z         "unit": {
2026-06-06T06:01:02.5233159Z           "complete": true,
2026-06-06T06:01:02.5233607Z           "evidence": [
2026-06-06T06:01:02.5234014Z             {
2026-06-06T06:01:02.5234630Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5235067Z               "line": 276
2026-06-06T06:01:02.5235483Z             },
2026-06-06T06:01:02.5235916Z             {
2026-06-06T06:01:02.5236538Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5236983Z               "line": 291
2026-06-06T06:01:02.5237390Z             },
2026-06-06T06:01:02.5237799Z             {
2026-06-06T06:01:02.5238412Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5238863Z               "line": 310
2026-06-06T06:01:02.5239340Z             },
2026-06-06T06:01:02.5239752Z             {
2026-06-06T06:01:02.5240363Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5240802Z               "line": 326
2026-06-06T06:01:02.5241221Z             },
2026-06-06T06:01:02.5241638Z             {
2026-06-06T06:01:02.5242254Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5242702Z               "line": 376
2026-06-06T06:01:02.5243105Z             },
2026-06-06T06:01:02.5243516Z             {
2026-06-06T06:01:02.5244129Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5244580Z               "line": 390
2026-06-06T06:01:02.5244993Z             },
2026-06-06T06:01:02.5245407Z             {
2026-06-06T06:01:02.5246027Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5246474Z               "line": 401
2026-06-06T06:01:02.5246890Z             },
2026-06-06T06:01:02.5247300Z             {
2026-06-06T06:01:02.5247915Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.5248385Z               "line": 412
2026-06-06T06:01:02.5248798Z             }
2026-06-06T06:01:02.5253541Z           ]
2026-06-06T06:01:02.5254016Z         }
2026-06-06T06:01:02.5254430Z       }
2026-06-06T06:01:02.5254833Z     },
2026-06-06T06:01:02.5255237Z     {
2026-06-06T06:01:02.5255860Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-06T06:01:02.5259973Z       "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-06T06:01:02.5260472Z       "requiredStages": [
2026-06-06T06:01:02.5260889Z         "impl",
2026-06-06T06:01:02.5261304Z         "unit"
2026-06-06T06:01:02.5261710Z       ],
2026-06-06T06:01:02.5262142Z       "stages": {
2026-06-06T06:01:02.5262552Z         "doc": {
2026-06-06T06:01:02.5263010Z           "complete": false,
2026-06-06T06:01:02.5263457Z           "evidence": []
2026-06-06T06:01:02.5264130Z         },
2026-06-06T06:01:02.5264549Z         "impl": {
2026-06-06T06:01:02.5264992Z           "complete": true,
2026-06-06T06:01:02.5265428Z           "evidence": [
2026-06-06T06:01:02.5265836Z             {
2026-06-06T06:01:02.5266543Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5266978Z               "line": 27
2026-06-06T06:01:02.5267380Z             },
2026-06-06T06:01:02.5267790Z             {
2026-06-06T06:01:02.5268501Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5269096Z               "line": 110
2026-06-06T06:01:02.5269579Z             },
2026-06-06T06:01:02.5269982Z             {
2026-06-06T06:01:02.5270690Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5271124Z               "line": 153
2026-06-06T06:01:02.5271538Z             },
2026-06-06T06:01:02.5271939Z             {
2026-06-06T06:01:02.5272654Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5273115Z               "line": 182
2026-06-06T06:01:02.5273531Z             },
2026-06-06T06:01:02.5273947Z             {
2026-06-06T06:01:02.5274742Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5275187Z               "line": 31
2026-06-06T06:01:02.5275594Z             },
2026-06-06T06:01:02.5276016Z             {
2026-06-06T06:01:02.5276811Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5277253Z               "line": 113
2026-06-06T06:01:02.5277682Z             },
2026-06-06T06:01:02.5278094Z             {
2026-06-06T06:01:02.5278888Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5279377Z               "line": 138
2026-06-06T06:01:02.5279792Z             }
2026-06-06T06:01:02.5280202Z           ]
2026-06-06T06:01:02.5280608Z         },
2026-06-06T06:01:02.5281031Z         "int": {
2026-06-06T06:01:02.5281492Z           "complete": false,
2026-06-06T06:01:02.5281960Z           "evidence": []
2026-06-06T06:01:02.5282381Z         },
2026-06-06T06:01:02.5282798Z         "unit": {
2026-06-06T06:01:02.5283265Z           "complete": true,
2026-06-06T06:01:02.5283703Z           "evidence": [
2026-06-06T06:01:02.5284121Z             {
2026-06-06T06:01:02.5284834Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5285287Z               "line": 261
2026-06-06T06:01:02.5285708Z             },
2026-06-06T06:01:02.5286117Z             {
2026-06-06T06:01:02.5286844Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5287287Z               "line": 276
2026-06-06T06:01:02.5287702Z             },
2026-06-06T06:01:02.5288113Z             {
2026-06-06T06:01:02.5288828Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5289315Z               "line": 293
2026-06-06T06:01:02.5289727Z             },
2026-06-06T06:01:02.5290146Z             {
2026-06-06T06:01:02.5290869Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5291319Z               "line": 310
2026-06-06T06:01:02.5291732Z             },
2026-06-06T06:01:02.5292150Z             {
2026-06-06T06:01:02.5292861Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5293297Z               "line": 327
2026-06-06T06:01:02.5293710Z             },
2026-06-06T06:01:02.5294116Z             {
2026-06-06T06:01:02.5294823Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.5295277Z               "line": 366
2026-06-06T06:01:02.5295697Z             },
2026-06-06T06:01:02.5296114Z             {
2026-06-06T06:01:02.5296902Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5297363Z               "line": 179
2026-06-06T06:01:02.5297773Z             },
2026-06-06T06:01:02.5298184Z             {
2026-06-06T06:01:02.5298965Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5299635Z               "line": 194
2026-06-06T06:01:02.5300057Z             },
2026-06-06T06:01:02.5300466Z             {
2026-06-06T06:01:02.5301256Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5301709Z               "line": 204
2026-06-06T06:01:02.5302331Z             },
2026-06-06T06:01:02.5302833Z             {
2026-06-06T06:01:02.5303783Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5304319Z               "line": 259
2026-06-06T06:01:02.5304801Z             },
2026-06-06T06:01:02.5305464Z             {
2026-06-06T06:01:02.5306387Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5306882Z               "line": 269
2026-06-06T06:01:02.5307340Z             },
2026-06-06T06:01:02.5307789Z             {
2026-06-06T06:01:02.5308672Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.5309143Z               "line": 283
2026-06-06T06:01:02.5309848Z             }
2026-06-06T06:01:02.5310272Z           ]
2026-06-06T06:01:02.5310723Z         }
2026-06-06T06:01:02.5311150Z       }
2026-06-06T06:01:02.5311595Z     },
2026-06-06T06:01:02.5312058Z     {
2026-06-06T06:01:02.5312675Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-06T06:01:02.5313852Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-06T06:01:02.5314374Z       "requiredStages": [],
2026-06-06T06:01:02.5314832Z       "stages": {
2026-06-06T06:01:02.5315271Z         "doc": {
2026-06-06T06:01:02.5315776Z           "complete": false,
2026-06-06T06:01:02.5316272Z           "evidence": []
2026-06-06T06:01:02.5316727Z         },
2026-06-06T06:01:02.5317192Z         "impl": {
2026-06-06T06:01:02.5317713Z           "complete": false,
2026-06-06T06:01:02.5318201Z           "evidence": []
2026-06-06T06:01:02.5318638Z         },
2026-06-06T06:01:02.5319098Z         "int": {
2026-06-06T06:01:02.5319981Z           "complete": false,
2026-06-06T06:01:02.5320483Z           "evidence": []
2026-06-06T06:01:02.5320928Z         },
2026-06-06T06:01:02.5321422Z         "unit": {
2026-06-06T06:01:02.5322104Z           "complete": false,
2026-06-06T06:01:02.5322654Z           "evidence": []
2026-06-06T06:01:02.5323151Z         }
2026-06-06T06:01:02.5323614Z       }
2026-06-06T06:01:02.5324076Z     },
2026-06-06T06:01:02.5324522Z     {
2026-06-06T06:01:02.5325218Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-06T06:01:02.5337282Z       "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-06T06:01:02.5337815Z       "requiredStages": [
2026-06-06T06:01:02.5338236Z         "impl",
2026-06-06T06:01:02.5338636Z         "unit"
2026-06-06T06:01:02.5339039Z       ],
2026-06-06T06:01:02.5339746Z       "stages": {
2026-06-06T06:01:02.5340217Z         "doc": {
2026-06-06T06:01:02.5340691Z           "complete": false,
2026-06-06T06:01:02.5341138Z           "evidence": []
2026-06-06T06:01:02.5341552Z         },
2026-06-06T06:01:02.5341972Z         "impl": {
2026-06-06T06:01:02.5342439Z           "complete": true,
2026-06-06T06:01:02.5342875Z           "evidence": [
2026-06-06T06:01:02.5343292Z             {
2026-06-06T06:01:02.5343960Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5344399Z               "line": 26
2026-06-06T06:01:02.5344822Z             },
2026-06-06T06:01:02.5345262Z             {
2026-06-06T06:01:02.5345927Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5346369Z               "line": 93
2026-06-06T06:01:02.5353148Z             },
2026-06-06T06:01:02.5353632Z             {
2026-06-06T06:01:02.5354285Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5354725Z               "line": 162
2026-06-06T06:01:02.5355120Z             },
2026-06-06T06:01:02.5355975Z             {
2026-06-06T06:01:02.5356600Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5357034Z               "line": 19
2026-06-06T06:01:02.5357441Z             },
2026-06-06T06:01:02.5357835Z             {
2026-06-06T06:01:02.5358457Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5358887Z               "line": 50
2026-06-06T06:01:02.5359367Z             },
2026-06-06T06:01:02.5359770Z             {
2026-06-06T06:01:02.5360343Z               "path": "crates/spt-live/src/turn.rs",
2026-06-06T06:01:02.5360936Z               "line": 18
2026-06-06T06:01:02.5361343Z             },
2026-06-06T06:01:02.5361747Z             {
2026-06-06T06:01:02.5362312Z               "path": "crates/spt-live/src/turn.rs",
2026-06-06T06:01:02.5362745Z               "line": 65
2026-06-06T06:01:02.5363137Z             },
2026-06-06T06:01:02.5363538Z             {
2026-06-06T06:01:02.5364133Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.5364571Z               "line": 70
2026-06-06T06:01:02.5364972Z             }
2026-06-06T06:01:02.5365361Z           ]
2026-06-06T06:01:02.5365761Z         },
2026-06-06T06:01:02.5366159Z         "int": {
2026-06-06T06:01:02.5366618Z           "complete": false,
2026-06-06T06:01:02.5367056Z           "evidence": []
2026-06-06T06:01:02.5367446Z         },
2026-06-06T06:01:02.5367858Z         "unit": {
2026-06-06T06:01:02.5368297Z           "complete": true,
2026-06-06T06:01:02.5368728Z           "evidence": [
2026-06-06T06:01:02.5369121Z             {
2026-06-06T06:01:02.5369830Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5370276Z               "line": 280
2026-06-06T06:01:02.5370672Z             },
2026-06-06T06:01:02.5371075Z             {
2026-06-06T06:01:02.5371707Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5372139Z               "line": 299
2026-06-06T06:01:02.5372533Z             },
2026-06-06T06:01:02.5372949Z             {
2026-06-06T06:01:02.5373584Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5374014Z               "line": 327
2026-06-06T06:01:02.5374412Z             },
2026-06-06T06:01:02.5374806Z             {
2026-06-06T06:01:02.5375440Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5375873Z               "line": 376
2026-06-06T06:01:02.5376270Z             },
2026-06-06T06:01:02.5376670Z             {
2026-06-06T06:01:02.5377301Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5377748Z               "line": 387
2026-06-06T06:01:02.5378145Z             },
2026-06-06T06:01:02.5378547Z             {
2026-06-06T06:01:02.5379219Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5379749Z               "line": 418
2026-06-06T06:01:02.5380158Z             },
2026-06-06T06:01:02.5380553Z             {
2026-06-06T06:01:02.5381191Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.5381632Z               "line": 429
2026-06-06T06:01:02.5382037Z             },
2026-06-06T06:01:02.5382441Z             {
2026-06-06T06:01:02.5383058Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5383491Z               "line": 77
2026-06-06T06:01:02.5383888Z             },
2026-06-06T06:01:02.5384291Z             {
2026-06-06T06:01:02.5384899Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5385327Z               "line": 95
2026-06-06T06:01:02.5385735Z             },
2026-06-06T06:01:02.5386131Z             {
2026-06-06T06:01:02.5386763Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5387190Z               "line": 106
2026-06-06T06:01:02.5387598Z             },
2026-06-06T06:01:02.5387988Z             {
2026-06-06T06:01:02.5388612Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5389047Z               "line": 117
2026-06-06T06:01:02.5389545Z             },
2026-06-06T06:01:02.5390139Z             {
2026-06-06T06:01:02.5390752Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5391196Z               "line": 124
2026-06-06T06:01:02.5391591Z             },
2026-06-06T06:01:02.5392002Z             {
2026-06-06T06:01:02.5392631Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-06T06:01:02.5393062Z               "line": 137
2026-06-06T06:01:02.5393472Z             },
2026-06-06T06:01:02.5393866Z             {
2026-06-06T06:01:02.5394440Z               "path": "crates/spt-live/src/turn.rs",
2026-06-06T06:01:02.5395003Z               "line": 106
2026-06-06T06:01:02.5395422Z             },
2026-06-06T06:01:02.5395831Z             {
2026-06-06T06:01:02.5396399Z               "path": "crates/spt-live/src/turn.rs",
2026-06-06T06:01:02.5396838Z               "line": 118
2026-06-06T06:01:02.5397239Z             },
2026-06-06T06:01:02.5397637Z             {
2026-06-06T06:01:02.5398226Z               "path": "crates/spt-proto/src/event.rs",
2026-06-06T06:01:02.5398681Z               "line": 336
2026-06-06T06:01:02.5399086Z             }
2026-06-06T06:01:02.5399524Z           ]
2026-06-06T06:01:02.5399929Z         }
2026-06-06T06:01:02.5400327Z       }
2026-06-06T06:01:02.5400730Z     },
2026-06-06T06:01:02.5401120Z     {
2026-06-06T06:01:02.5401702Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-06T06:01:02.5403205Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-06T06:01:02.5403664Z       "requiredStages": [
2026-06-06T06:01:02.5404077Z         "impl",
2026-06-06T06:01:02.5404485Z         "unit"
2026-06-06T06:01:02.5404889Z       ],
2026-06-06T06:01:02.5405300Z       "stages": {
2026-06-06T06:01:02.5405714Z         "doc": {
2026-06-06T06:01:02.5406173Z           "complete": true,
2026-06-06T06:01:02.5406598Z           "evidence": [
2026-06-06T06:01:02.5407005Z             {
2026-06-06T06:01:02.5407542Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.5407991Z               "line": 137
2026-06-06T06:01:02.5408388Z             }
2026-06-06T06:01:02.5408795Z           ]
2026-06-06T06:01:02.5409237Z         },
2026-06-06T06:01:02.5409649Z         "impl": {
2026-06-06T06:01:02.5410111Z           "complete": true,
2026-06-06T06:01:02.5410537Z           "evidence": [
2026-06-06T06:01:02.5410941Z             {
2026-06-06T06:01:02.5411496Z               "path": "crates/spt-store/src/db.rs",
2026-06-06T06:01:02.5411939Z               "line": 29
2026-06-06T06:01:02.5412349Z             },
2026-06-06T06:01:02.5412746Z             {
2026-06-06T06:01:02.5413349Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.5413783Z               "line": 101
2026-06-06T06:01:02.5414192Z             },
2026-06-06T06:01:02.5414596Z             {
2026-06-06T06:01:02.5415217Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5415653Z               "line": 30
2026-06-06T06:01:02.5416048Z             },
2026-06-06T06:01:02.5416457Z             {
2026-06-06T06:01:02.5417058Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.5417491Z               "line": 48
2026-06-06T06:01:02.5417898Z             }
2026-06-06T06:01:02.5418297Z           ]
2026-06-06T06:01:02.5418704Z         },
2026-06-06T06:01:02.5419109Z         "int": {
2026-06-06T06:01:02.5419617Z           "complete": false,
2026-06-06T06:01:02.5420048Z           "evidence": []
2026-06-06T06:01:02.5420449Z         },
2026-06-06T06:01:02.5420863Z         "unit": {
2026-06-06T06:01:02.5421308Z           "complete": true,
2026-06-06T06:01:02.5421753Z           "evidence": [
2026-06-06T06:01:02.5422150Z             {
2026-06-06T06:01:02.5422780Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5423217Z               "line": 152
2026-06-06T06:01:02.5423640Z             }
2026-06-06T06:01:02.5424057Z           ]
2026-06-06T06:01:02.5424450Z         }
2026-06-06T06:01:02.5424855Z       }
2026-06-06T06:01:02.5425242Z     },
2026-06-06T06:01:02.5425838Z     {
2026-06-06T06:01:02.5426405Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-06T06:01:02.5428562Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-06T06:01:02.5429040Z       "requiredStages": [
2026-06-06T06:01:02.5429494Z         "doc",
2026-06-06T06:01:02.5429911Z         "impl",
2026-06-06T06:01:02.5430317Z         "unit"
2026-06-06T06:01:02.5435549Z       ],
2026-06-06T06:01:02.5436059Z       "stages": {
2026-06-06T06:01:02.5436478Z         "doc": {
2026-06-06T06:01:02.5437199Z           "complete": true,
2026-06-06T06:01:02.5437651Z           "evidence": [
2026-06-06T06:01:02.5438061Z             {
2026-06-06T06:01:02.5438610Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.5439053Z               "line": 149
2026-06-06T06:01:02.5439535Z             }
2026-06-06T06:01:02.5439944Z           ]
2026-06-06T06:01:02.5440350Z         },
2026-06-06T06:01:02.5440770Z         "impl": {
2026-06-06T06:01:02.5441266Z           "complete": true,
2026-06-06T06:01:02.5441697Z           "evidence": [
2026-06-06T06:01:02.5442098Z             {
2026-06-06T06:01:02.5442730Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5443166Z               "line": 22
2026-06-06T06:01:02.5443572Z             }
2026-06-06T06:01:02.5443971Z           ]
2026-06-06T06:01:02.5444375Z         },
2026-06-06T06:01:02.5444781Z         "int": {
2026-06-06T06:01:02.5445243Z           "complete": false,
2026-06-06T06:01:02.5445676Z           "evidence": []
2026-06-06T06:01:02.5446089Z         },
2026-06-06T06:01:02.5446509Z         "unit": {
2026-06-06T06:01:02.5446955Z           "complete": true,
2026-06-06T06:01:02.5447391Z           "evidence": [
2026-06-06T06:01:02.5447786Z             {
2026-06-06T06:01:02.5448415Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5448847Z               "line": 257
2026-06-06T06:01:02.5449294Z             }
2026-06-06T06:01:02.5449713Z           ]
2026-06-06T06:01:02.5450102Z         }
2026-06-06T06:01:02.5450503Z       }
2026-06-06T06:01:02.5450889Z     },
2026-06-06T06:01:02.5451287Z     {
2026-06-06T06:01:02.5451880Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-06T06:01:02.5454346Z       "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-06T06:01:02.5454815Z       "requiredStages": [
2026-06-06T06:01:02.5455219Z         "impl",
2026-06-06T06:01:02.5455624Z         "unit"
2026-06-06T06:01:02.5456038Z       ],
2026-06-06T06:01:02.5456467Z       "stages": {
2026-06-06T06:01:02.5456866Z         "doc": {
2026-06-06T06:01:02.5457320Z           "complete": true,
2026-06-06T06:01:02.5457756Z           "evidence": [
2026-06-06T06:01:02.5458151Z             {
2026-06-06T06:01:02.5458698Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.5459124Z               "line": 143
2026-06-06T06:01:02.5459564Z             }
2026-06-06T06:01:02.5459989Z           ]
2026-06-06T06:01:02.5460394Z         },
2026-06-06T06:01:02.5460809Z         "impl": {
2026-06-06T06:01:02.5461250Z           "complete": true,
2026-06-06T06:01:02.5461682Z           "evidence": [
2026-06-06T06:01:02.5462066Z             {
2026-06-06T06:01:02.5462706Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5463132Z               "line": 172
2026-06-06T06:01:02.5463539Z             },
2026-06-06T06:01:02.5463948Z             {
2026-06-06T06:01:02.5464530Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-06T06:01:02.5464976Z               "line": 15
2026-06-06T06:01:02.5465371Z             }
2026-06-06T06:01:02.5465770Z           ]
2026-06-06T06:01:02.5466161Z         },
2026-06-06T06:01:02.5466578Z         "int": {
2026-06-06T06:01:02.5467033Z           "complete": false,
2026-06-06T06:01:02.5467468Z           "evidence": []
2026-06-06T06:01:02.5467867Z         },
2026-06-06T06:01:02.5468273Z         "unit": {
2026-06-06T06:01:02.5468963Z           "complete": true,
2026-06-06T06:01:02.5469434Z           "evidence": [
2026-06-06T06:01:02.5469842Z             {
2026-06-06T06:01:02.5470524Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-06T06:01:02.5470945Z               "line": 87
2026-06-06T06:01:02.5471352Z             },
2026-06-06T06:01:02.5471749Z             {
2026-06-06T06:01:02.5472389Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5472818Z               "line": 644
2026-06-06T06:01:02.5473221Z             },
2026-06-06T06:01:02.5473761Z             {
2026-06-06T06:01:02.5474410Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5474847Z               "line": 663
2026-06-06T06:01:02.5475242Z             },
2026-06-06T06:01:02.5475647Z             {
2026-06-06T06:01:02.5476295Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.5476734Z               "line": 148
2026-06-06T06:01:02.5477141Z             },
2026-06-06T06:01:02.5477550Z             {
2026-06-06T06:01:02.5478147Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-06T06:01:02.5478569Z               "line": 74
2026-06-06T06:01:02.5478981Z             },
2026-06-06T06:01:02.5479415Z             {
2026-06-06T06:01:02.5480015Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-06T06:01:02.5480446Z               "line": 88
2026-06-06T06:01:02.5480843Z             },
2026-06-06T06:01:02.5481245Z             {
2026-06-06T06:01:02.5481829Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-06T06:01:02.5482279Z               "line": 104
2026-06-06T06:01:02.5482690Z             }
2026-06-06T06:01:02.5483086Z           ]
2026-06-06T06:01:02.5483488Z         }
2026-06-06T06:01:02.5483877Z       }
2026-06-06T06:01:02.5484277Z     },
2026-06-06T06:01:02.5484670Z     {
2026-06-06T06:01:02.5485260Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-06T06:01:02.5486333Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-06T06:01:02.5486811Z       "requiredStages": [
2026-06-06T06:01:02.5487226Z         "impl",
2026-06-06T06:01:02.5487631Z         "unit"
2026-06-06T06:01:02.5488033Z       ],
2026-06-06T06:01:02.5488443Z       "stages": {
2026-06-06T06:01:02.5488856Z         "doc": {
2026-06-06T06:01:02.5489337Z           "complete": false,
2026-06-06T06:01:02.5489781Z           "evidence": []
2026-06-06T06:01:02.5490179Z         },
2026-06-06T06:01:02.5490581Z         "impl": {
2026-06-06T06:01:02.5491035Z           "complete": true,
2026-06-06T06:01:02.5491476Z           "evidence": [
2026-06-06T06:01:02.5491881Z             {
2026-06-06T06:01:02.5492462Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5492896Z               "line": 15
2026-06-06T06:01:02.5493309Z             },
2026-06-06T06:01:02.5493706Z             {
2026-06-06T06:01:02.5494337Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5494762Z               "line": 55
2026-06-06T06:01:02.5495179Z             },
2026-06-06T06:01:02.5495581Z             {
2026-06-06T06:01:02.5496200Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5496631Z               "line": 62
2026-06-06T06:01:02.5497021Z             },
2026-06-06T06:01:02.5497418Z             {
2026-06-06T06:01:02.5498039Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5498477Z               "line": 107
2026-06-06T06:01:02.5498884Z             },
2026-06-06T06:01:02.5499310Z             {
2026-06-06T06:01:02.5499948Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5500377Z               "line": 128
2026-06-06T06:01:02.5500782Z             }
2026-06-06T06:01:02.5501178Z           ]
2026-06-06T06:01:02.5501579Z         },
2026-06-06T06:01:02.5501985Z         "int": {
2026-06-06T06:01:02.5502438Z           "complete": false,
2026-06-06T06:01:02.5502877Z           "evidence": []
2026-06-06T06:01:02.5503272Z         },
2026-06-06T06:01:02.5503882Z         "unit": {
2026-06-06T06:01:02.5504337Z           "complete": true,
2026-06-06T06:01:02.5504772Z           "evidence": [
2026-06-06T06:01:02.5505178Z             {
2026-06-06T06:01:02.5505764Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5506206Z               "line": 145
2026-06-06T06:01:02.5506599Z             },
2026-06-06T06:01:02.5507003Z             {
2026-06-06T06:01:02.5507590Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5508027Z               "line": 151
2026-06-06T06:01:02.5508438Z             },
2026-06-06T06:01:02.5508951Z             {
2026-06-06T06:01:02.5509599Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5510026Z               "line": 162
2026-06-06T06:01:02.5510434Z             },
2026-06-06T06:01:02.5510829Z             {
2026-06-06T06:01:02.5511413Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5516203Z               "line": 171
2026-06-06T06:01:02.5516715Z             },
2026-06-06T06:01:02.5517122Z             {
2026-06-06T06:01:02.5517761Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5518198Z               "line": 183
2026-06-06T06:01:02.5518596Z             },
2026-06-06T06:01:02.5519003Z             {
2026-06-06T06:01:02.5519737Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5520501Z               "line": 193
2026-06-06T06:01:02.5521118Z             },
2026-06-06T06:01:02.5521613Z             {
2026-06-06T06:01:02.5522526Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5522979Z               "line": 237
2026-06-06T06:01:02.5523383Z             },
2026-06-06T06:01:02.5523786Z             {
2026-06-06T06:01:02.5524409Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5524852Z               "line": 249
2026-06-06T06:01:02.5525264Z             },
2026-06-06T06:01:02.5526023Z             {
2026-06-06T06:01:02.5526644Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.5527107Z               "line": 275
2026-06-06T06:01:02.5527511Z             }
2026-06-06T06:01:02.5527898Z           ]
2026-06-06T06:01:02.5528302Z         }
2026-06-06T06:01:02.5528689Z       }
2026-06-06T06:01:02.5529077Z     },
2026-06-06T06:01:02.5529518Z     {
2026-06-06T06:01:02.5530099Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-06T06:01:02.5531691Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-06T06:01:02.5532152Z       "requiredStages": [
2026-06-06T06:01:02.5532577Z         "impl",
2026-06-06T06:01:02.5532978Z         "unit",
2026-06-06T06:01:02.5533386Z         "int"
2026-06-06T06:01:02.5533778Z       ],
2026-06-06T06:01:02.5534198Z       "stages": {
2026-06-06T06:01:02.5534609Z         "doc": {
2026-06-06T06:01:02.5535064Z           "complete": false,
2026-06-06T06:01:02.5535498Z           "evidence": []
2026-06-06T06:01:02.5535893Z         },
2026-06-06T06:01:02.5536320Z         "impl": {
2026-06-06T06:01:02.5536771Z           "complete": true,
2026-06-06T06:01:02.5537201Z           "evidence": [
2026-06-06T06:01:02.5537608Z             {
2026-06-06T06:01:02.5538204Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.5538642Z               "line": 249
2026-06-06T06:01:02.5539038Z             },
2026-06-06T06:01:02.5539482Z             {
2026-06-06T06:01:02.5540085Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.5540515Z               "line": 544
2026-06-06T06:01:02.5540922Z             },
2026-06-06T06:01:02.5541323Z             {
2026-06-06T06:01:02.5541928Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.5542357Z               "line": 567
2026-06-06T06:01:02.5542757Z             },
2026-06-06T06:01:02.5543166Z             {
2026-06-06T06:01:02.5543758Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.5544194Z               "line": 591
2026-06-06T06:01:02.5544934Z             },
2026-06-06T06:01:02.5545344Z             {
2026-06-06T06:01:02.5545973Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.5546410Z               "line": 477
2026-06-06T06:01:02.5546820Z             },
2026-06-06T06:01:02.5547213Z             {
2026-06-06T06:01:02.5547839Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.5548267Z               "line": 558
2026-06-06T06:01:02.5548677Z             },
2026-06-06T06:01:02.5549070Z             {
2026-06-06T06:01:02.5549874Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.5550323Z               "line": 660
2026-06-06T06:01:02.5550725Z             },
2026-06-06T06:01:02.5551136Z             {
2026-06-06T06:01:02.5551749Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.5552188Z               "line": 703
2026-06-06T06:01:02.5552587Z             },
2026-06-06T06:01:02.5552987Z             {
2026-06-06T06:01:02.5553617Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.5554056Z               "line": 46
2026-06-06T06:01:02.5554463Z             },
2026-06-06T06:01:02.5554856Z             {
2026-06-06T06:01:02.5555484Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.5555910Z               "line": 160
2026-06-06T06:01:02.5556326Z             },
2026-06-06T06:01:02.5556726Z             {
2026-06-06T06:01:02.5557300Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-06T06:01:02.5557733Z               "line": 71
2026-06-06T06:01:02.5558128Z             },
2026-06-06T06:01:02.5558541Z             {
2026-06-06T06:01:02.5559126Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.5559603Z               "line": 128
2026-06-06T06:01:02.5560009Z             },
2026-06-06T06:01:02.5560409Z             {
2026-06-06T06:01:02.5561001Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.5561433Z               "line": 174
2026-06-06T06:01:02.5561853Z             }
2026-06-06T06:01:02.5562244Z           ]
2026-06-06T06:01:02.5562641Z         },
2026-06-06T06:01:02.5563052Z         "int": {
2026-06-06T06:01:02.5563498Z           "complete": true,
2026-06-06T06:01:02.5563941Z           "evidence": [
2026-06-06T06:01:02.5564338Z             {
2026-06-06T06:01:02.5565037Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-06T06:01:02.5565463Z               "line": 27
2026-06-06T06:01:02.5565868Z             },
2026-06-06T06:01:02.5566272Z             {
2026-06-06T06:01:02.5566947Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-06T06:01:02.5567383Z               "line": 125
2026-06-06T06:01:02.5567783Z             },
2026-06-06T06:01:02.5568194Z             {
2026-06-06T06:01:02.5568873Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-06T06:01:02.5569340Z               "line": 189
2026-06-06T06:01:02.5569742Z             }
2026-06-06T06:01:02.5570137Z           ]
2026-06-06T06:01:02.5570554Z         },
2026-06-06T06:01:02.5570961Z         "unit": {
2026-06-06T06:01:02.5571421Z           "complete": true,
2026-06-06T06:01:02.5571855Z           "evidence": [
2026-06-06T06:01:02.5572257Z             {
2026-06-06T06:01:02.5572874Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.5573305Z               "line": 282
2026-06-06T06:01:02.5573707Z             },
2026-06-06T06:01:02.5574102Z             {
2026-06-06T06:01:02.5574730Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.5575168Z               "line": 300
2026-06-06T06:01:02.5575577Z             },
2026-06-06T06:01:02.5575975Z             {
2026-06-06T06:01:02.5576593Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-06T06:01:02.5577032Z               "line": 318
2026-06-06T06:01:02.5577431Z             },
2026-06-06T06:01:02.5577838Z             {
2026-06-06T06:01:02.5578484Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-06T06:01:02.5578908Z               "line": 221
2026-06-06T06:01:02.5579515Z             },
2026-06-06T06:01:02.5579910Z             {
2026-06-06T06:01:02.5580545Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-06T06:01:02.5580987Z               "line": 204
2026-06-06T06:01:02.5581395Z             },
2026-06-06T06:01:02.5581795Z             {
2026-06-06T06:01:02.5582404Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-06T06:01:02.5582841Z               "line": 182
2026-06-06T06:01:02.5583238Z             },
2026-06-06T06:01:02.5583636Z             {
2026-06-06T06:01:02.5584341Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.5584796Z               "line": 441
2026-06-06T06:01:02.5585208Z             },
2026-06-06T06:01:02.5585611Z             {
2026-06-06T06:01:02.5586208Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.5586636Z               "line": 465
2026-06-06T06:01:02.5587036Z             }
2026-06-06T06:01:02.5587429Z           ]
2026-06-06T06:01:02.5587844Z         }
2026-06-06T06:01:02.5588244Z       }
2026-06-06T06:01:02.5588632Z     },
2026-06-06T06:01:02.5589028Z     {
2026-06-06T06:01:02.5589658Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-06T06:01:02.5590715Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-06T06:01:02.5591177Z       "requiredStages": [
2026-06-06T06:01:02.5591593Z         "impl",
2026-06-06T06:01:02.5592003Z         "unit"
2026-06-06T06:01:02.5592391Z       ],
2026-06-06T06:01:02.5592812Z       "stages": {
2026-06-06T06:01:02.5593211Z         "doc": {
2026-06-06T06:01:02.5593685Z           "complete": false,
2026-06-06T06:01:02.5594120Z           "evidence": []
2026-06-06T06:01:02.5599405Z         },
2026-06-06T06:01:02.5599918Z         "impl": {
2026-06-06T06:01:02.5600594Z           "complete": true,
2026-06-06T06:01:02.5601103Z           "evidence": [
2026-06-06T06:01:02.5601550Z             {
2026-06-06T06:01:02.5602435Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.5602909Z               "line": 56
2026-06-06T06:01:02.5603316Z             },
2026-06-06T06:01:02.5603722Z             {
2026-06-06T06:01:02.5604403Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.5605143Z               "line": 65
2026-06-06T06:01:02.5605542Z             },
2026-06-06T06:01:02.5605945Z             {
2026-06-06T06:01:02.5606620Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.5607057Z               "line": 72
2026-06-06T06:01:02.5607461Z             },
2026-06-06T06:01:02.5607876Z             {
2026-06-06T06:01:02.5608479Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5608902Z               "line": 33
2026-06-06T06:01:02.5609371Z             },
2026-06-06T06:01:02.5609769Z             {
2026-06-06T06:01:02.5610371Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5610814Z               "line": 61
2026-06-06T06:01:02.5611212Z             },
2026-06-06T06:01:02.5611628Z             {
2026-06-06T06:01:02.5612216Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5612655Z               "line": 70
2026-06-06T06:01:02.5613056Z             },
2026-06-06T06:01:02.5613462Z             {
2026-06-06T06:01:02.5614067Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5614488Z               "line": 79
2026-06-06T06:01:02.5614889Z             },
2026-06-06T06:01:02.5615290Z             {
2026-06-06T06:01:02.5615889Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5616336Z               "line": 88
2026-06-06T06:01:02.5616741Z             },
2026-06-06T06:01:02.5617143Z             {
2026-06-06T06:01:02.5617735Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5618163Z               "line": 97
2026-06-06T06:01:02.5618563Z             },
2026-06-06T06:01:02.5618968Z             {
2026-06-06T06:01:02.5619613Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5620402Z               "line": 105
2026-06-06T06:01:02.5620815Z             },
2026-06-06T06:01:02.5621222Z             {
2026-06-06T06:01:02.5621823Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5622260Z               "line": 114
2026-06-06T06:01:02.5622675Z             },
2026-06-06T06:01:02.5623081Z             {
2026-06-06T06:01:02.5623669Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5624110Z               "line": 123
2026-06-06T06:01:02.5624511Z             },
2026-06-06T06:01:02.5624914Z             {
2026-06-06T06:01:02.5625636Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5626093Z               "line": 130
2026-06-06T06:01:02.5626505Z             },
2026-06-06T06:01:02.5626903Z             {
2026-06-06T06:01:02.5627504Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5627934Z               "line": 137
2026-06-06T06:01:02.5628341Z             },
2026-06-06T06:01:02.5628756Z             {
2026-06-06T06:01:02.5629416Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5629857Z               "line": 145
2026-06-06T06:01:02.5630254Z             },
2026-06-06T06:01:02.5630667Z             {
2026-06-06T06:01:02.5631262Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5631700Z               "line": 154
2026-06-06T06:01:02.5632098Z             },
2026-06-06T06:01:02.5632505Z             {
2026-06-06T06:01:02.5633106Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5633544Z               "line": 163
2026-06-06T06:01:02.5633949Z             },
2026-06-06T06:01:02.5634349Z             {
2026-06-06T06:01:02.5634949Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5635382Z               "line": 172
2026-06-06T06:01:02.5635789Z             },
2026-06-06T06:01:02.5636191Z             {
2026-06-06T06:01:02.5636775Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5637225Z               "line": 184
2026-06-06T06:01:02.5637626Z             },
2026-06-06T06:01:02.5638027Z             {
2026-06-06T06:01:02.5638620Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5639064Z               "line": 191
2026-06-06T06:01:02.5639516Z             },
2026-06-06T06:01:02.5639934Z             {
2026-06-06T06:01:02.5640532Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5640960Z               "line": 200
2026-06-06T06:01:02.5641367Z             },
2026-06-06T06:01:02.5641773Z             {
2026-06-06T06:01:02.5642375Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5642815Z               "line": 207
2026-06-06T06:01:02.5643210Z             },
2026-06-06T06:01:02.5643617Z             {
2026-06-06T06:01:02.5644207Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5644646Z               "line": 274
2026-06-06T06:01:02.5645054Z             },
2026-06-06T06:01:02.5645463Z             {
2026-06-06T06:01:02.5646066Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5646501Z               "line": 286
2026-06-06T06:01:02.5646912Z             },
2026-06-06T06:01:02.5647311Z             {
2026-06-06T06:01:02.5647909Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5648352Z               "line": 373
2026-06-06T06:01:02.5648751Z             }
2026-06-06T06:01:02.5649190Z           ]
2026-06-06T06:01:02.5649585Z         },
2026-06-06T06:01:02.5650002Z         "int": {
2026-06-06T06:01:02.5650468Z           "complete": false,
2026-06-06T06:01:02.5650910Z           "evidence": []
2026-06-06T06:01:02.5651310Z         },
2026-06-06T06:01:02.5651711Z         "unit": {
2026-06-06T06:01:02.5652165Z           "complete": true,
2026-06-06T06:01:02.5652587Z           "evidence": [
2026-06-06T06:01:02.5652999Z             {
2026-06-06T06:01:02.5653590Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5654023Z               "line": 443
2026-06-06T06:01:02.5654618Z             },
2026-06-06T06:01:02.5655013Z             {
2026-06-06T06:01:02.5655614Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5656049Z               "line": 469
2026-06-06T06:01:02.5656454Z             },
2026-06-06T06:01:02.5656849Z             {
2026-06-06T06:01:02.5657454Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5657893Z               "line": 482
2026-06-06T06:01:02.5658290Z             },
2026-06-06T06:01:02.5658687Z             {
2026-06-06T06:01:02.5659446Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5659898Z               "line": 547
2026-06-06T06:01:02.5660299Z             }
2026-06-06T06:01:02.5660700Z           ]
2026-06-06T06:01:02.5661095Z         }
2026-06-06T06:01:02.5661484Z       }
2026-06-06T06:01:02.5661884Z     },
2026-06-06T06:01:02.5662279Z     {
2026-06-06T06:01:02.5662808Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-06T06:01:02.5663903Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-06T06:01:02.5664388Z       "requiredStages": [
2026-06-06T06:01:02.5664804Z         "impl",
2026-06-06T06:01:02.5665208Z         "unit"
2026-06-06T06:01:02.5665608Z       ],
2026-06-06T06:01:02.5666020Z       "stages": {
2026-06-06T06:01:02.5666433Z         "doc": {
2026-06-06T06:01:02.5666885Z           "complete": false,
2026-06-06T06:01:02.5667326Z           "evidence": []
2026-06-06T06:01:02.5667735Z         },
2026-06-06T06:01:02.5668147Z         "impl": {
2026-06-06T06:01:02.5668613Z           "complete": true,
2026-06-06T06:01:02.5669037Z           "evidence": [
2026-06-06T06:01:02.5669493Z             {
2026-06-06T06:01:02.5670061Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.5670502Z               "line": 132
2026-06-06T06:01:02.5670910Z             },
2026-06-06T06:01:02.5671308Z             {
2026-06-06T06:01:02.5671937Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.5672382Z               "line": 145
2026-06-06T06:01:02.5672789Z             }
2026-06-06T06:01:02.5673181Z           ]
2026-06-06T06:01:02.5673590Z         },
2026-06-06T06:01:02.5674005Z         "int": {
2026-06-06T06:01:02.5674464Z           "complete": false,
2026-06-06T06:01:02.5674910Z           "evidence": []
2026-06-06T06:01:02.5675315Z         },
2026-06-06T06:01:02.5681003Z         "unit": {
2026-06-06T06:01:02.5681553Z           "complete": true,
2026-06-06T06:01:02.5681999Z           "evidence": [
2026-06-06T06:01:02.5682406Z             {
2026-06-06T06:01:02.5683013Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.5683459Z               "line": 250
2026-06-06T06:01:02.5683859Z             },
2026-06-06T06:01:02.5684259Z             {
2026-06-06T06:01:02.5684886Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.5685329Z               "line": 512
2026-06-06T06:01:02.5685741Z             },
2026-06-06T06:01:02.5686143Z             {
2026-06-06T06:01:02.5686787Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.5687225Z               "line": 522
2026-06-06T06:01:02.5687636Z             }
2026-06-06T06:01:02.5688037Z           ]
2026-06-06T06:01:02.5688443Z         }
2026-06-06T06:01:02.5688852Z       }
2026-06-06T06:01:02.5689310Z     },
2026-06-06T06:01:02.5689712Z     {
2026-06-06T06:01:02.5690251Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-06T06:01:02.5690970Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-06T06:01:02.5691435Z       "requiredStages": [
2026-06-06T06:01:02.5691870Z         "impl",
2026-06-06T06:01:02.5692285Z         "unit"
2026-06-06T06:01:02.5692685Z       ],
2026-06-06T06:01:02.5693119Z       "stages": {
2026-06-06T06:01:02.5693528Z         "doc": {
2026-06-06T06:01:02.5694004Z           "complete": false,
2026-06-06T06:01:02.5694449Z           "evidence": []
2026-06-06T06:01:02.5694857Z         },
2026-06-06T06:01:02.5695280Z         "impl": {
2026-06-06T06:01:02.5695998Z           "complete": true,
2026-06-06T06:01:02.5696442Z           "evidence": [
2026-06-06T06:01:02.5696852Z             {
2026-06-06T06:01:02.5697487Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.5697920Z               "line": 54
2026-06-06T06:01:02.5698337Z             },
2026-06-06T06:01:02.5698750Z             {
2026-06-06T06:01:02.5699460Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.5699910Z               "line": 393
2026-06-06T06:01:02.5700320Z             }
2026-06-06T06:01:02.5700735Z           ]
2026-06-06T06:01:02.5701265Z         },
2026-06-06T06:01:02.5701699Z         "int": {
2026-06-06T06:01:02.5702168Z           "complete": false,
2026-06-06T06:01:02.5702609Z           "evidence": []
2026-06-06T06:01:02.5703022Z         },
2026-06-06T06:01:02.5703433Z         "unit": {
2026-06-06T06:01:02.5703897Z           "complete": true,
2026-06-06T06:01:02.5704333Z           "evidence": [
2026-06-06T06:01:02.5704747Z             {
2026-06-06T06:01:02.5705430Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.5705867Z               "line": 425
2026-06-06T06:01:02.5706282Z             }
2026-06-06T06:01:02.5706687Z           ]
2026-06-06T06:01:02.5707098Z         }
2026-06-06T06:01:02.5707496Z       }
2026-06-06T06:01:02.5707900Z     },
2026-06-06T06:01:02.5708300Z     {
2026-06-06T06:01:02.5708905Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-06T06:01:02.5709873Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-06T06:01:02.5710349Z       "requiredStages": [
2026-06-06T06:01:02.5710768Z         "impl",
2026-06-06T06:01:02.5711178Z         "unit"
2026-06-06T06:01:02.5711590Z       ],
2026-06-06T06:01:02.5712011Z       "stages": {
2026-06-06T06:01:02.5712421Z         "doc": {
2026-06-06T06:01:02.5712883Z           "complete": false,
2026-06-06T06:01:02.5713323Z           "evidence": []
2026-06-06T06:01:02.5713736Z         },
2026-06-06T06:01:02.5714148Z         "impl": {
2026-06-06T06:01:02.5714620Z           "complete": true,
2026-06-06T06:01:02.5715065Z           "evidence": [
2026-06-06T06:01:02.5715469Z             {
2026-06-06T06:01:02.5716127Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.5716560Z               "line": 432
2026-06-06T06:01:02.5716975Z             },
2026-06-06T06:01:02.5717376Z             {
2026-06-06T06:01:02.5717987Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.5718426Z               "line": 28
2026-06-06T06:01:02.5718828Z             }
2026-06-06T06:01:02.5719285Z           ]
2026-06-06T06:01:02.5719688Z         },
2026-06-06T06:01:02.5720116Z         "int": {
2026-06-06T06:01:02.5720574Z           "complete": false,
2026-06-06T06:01:02.5721022Z           "evidence": []
2026-06-06T06:01:02.5721433Z         },
2026-06-06T06:01:02.5721847Z         "unit": {
2026-06-06T06:01:02.5722313Z           "complete": true,
2026-06-06T06:01:02.5722748Z           "evidence": [
2026-06-06T06:01:02.5723168Z             {
2026-06-06T06:01:02.5723771Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.5724221Z               "line": 200
2026-06-06T06:01:02.5724628Z             }
2026-06-06T06:01:02.5725030Z           ]
2026-06-06T06:01:02.5725444Z         }
2026-06-06T06:01:02.5725843Z       }
2026-06-06T06:01:02.5726252Z     },
2026-06-06T06:01:02.5726648Z     {
2026-06-06T06:01:02.5727195Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-06T06:01:02.5727952Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-06T06:01:02.5728439Z       "requiredStages": [],
2026-06-06T06:01:02.5728876Z       "stages": {
2026-06-06T06:01:02.5729323Z         "doc": {
2026-06-06T06:01:02.5729792Z           "complete": false,
2026-06-06T06:01:02.5730235Z           "evidence": []
2026-06-06T06:01:02.5730647Z         },
2026-06-06T06:01:02.5731073Z         "impl": {
2026-06-06T06:01:02.5731533Z           "complete": false,
2026-06-06T06:01:02.5731972Z           "evidence": []
2026-06-06T06:01:02.5732532Z         },
2026-06-06T06:01:02.5732956Z         "int": {
2026-06-06T06:01:02.5733413Z           "complete": false,
2026-06-06T06:01:02.5733861Z           "evidence": []
2026-06-06T06:01:02.5734294Z         },
2026-06-06T06:01:02.5735198Z         "unit": {
2026-06-06T06:01:02.5735752Z           "complete": false,
2026-06-06T06:01:02.5736395Z           "evidence": []
2026-06-06T06:01:02.5736840Z         }
2026-06-06T06:01:02.5737331Z       }
2026-06-06T06:01:02.5737760Z     },
2026-06-06T06:01:02.5738351Z     {
2026-06-06T06:01:02.5739343Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-06T06:01:02.5740191Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-06T06:01:02.5740669Z       "requiredStages": [
2026-06-06T06:01:02.5741089Z         "impl",
2026-06-06T06:01:02.5741511Z         "unit"
2026-06-06T06:01:02.5741911Z       ],
2026-06-06T06:01:02.5742341Z       "stages": {
2026-06-06T06:01:02.5742756Z         "doc": {
2026-06-06T06:01:02.5743253Z           "complete": false,
2026-06-06T06:01:02.5743713Z           "evidence": []
2026-06-06T06:01:02.5744115Z         },
2026-06-06T06:01:02.5744546Z         "impl": {
2026-06-06T06:01:02.5744998Z           "complete": true,
2026-06-06T06:01:02.5745444Z           "evidence": [
2026-06-06T06:01:02.5745852Z             {
2026-06-06T06:01:02.5746435Z               "path": "crates/spt-live/src/turn.rs",
2026-06-06T06:01:02.5746880Z               "line": 19
2026-06-06T06:01:02.5747288Z             },
2026-06-06T06:01:02.5747706Z             {
2026-06-06T06:01:02.5748359Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.5748811Z               "line": 325
2026-06-06T06:01:02.5749267Z             },
2026-06-06T06:01:02.5749687Z             {
2026-06-06T06:01:02.5750337Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.5750784Z               "line": 361
2026-06-06T06:01:02.5751202Z             },
2026-06-06T06:01:02.5751610Z             {
2026-06-06T06:01:02.5752235Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-06T06:01:02.5752668Z               "line": 15
2026-06-06T06:01:02.5753081Z             },
2026-06-06T06:01:02.5753503Z             {
2026-06-06T06:01:02.5754107Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-06T06:01:02.5754552Z               "line": 48
2026-06-06T06:01:02.5754958Z             },
2026-06-06T06:01:02.5755370Z             {
2026-06-06T06:01:02.5755982Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-06T06:01:02.5756427Z               "line": 106
2026-06-06T06:01:02.5761878Z             }
2026-06-06T06:01:02.5762390Z           ]
2026-06-06T06:01:02.5762808Z         },
2026-06-06T06:01:02.5763230Z         "int": {
2026-06-06T06:01:02.5763701Z           "complete": false,
2026-06-06T06:01:02.5764141Z           "evidence": []
2026-06-06T06:01:02.5764549Z         },
2026-06-06T06:01:02.5764968Z         "unit": {
2026-06-06T06:01:02.5765420Z           "complete": true,
2026-06-06T06:01:02.5765873Z           "evidence": [
2026-06-06T06:01:02.5766273Z             {
2026-06-06T06:01:02.5766934Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.5767369Z               "line": 453
2026-06-06T06:01:02.5767775Z             },
2026-06-06T06:01:02.5768181Z             {
2026-06-06T06:01:02.5768775Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-06T06:01:02.5769281Z               "line": 149
2026-06-06T06:01:02.5769682Z             },
2026-06-06T06:01:02.5770090Z             {
2026-06-06T06:01:02.5770696Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-06T06:01:02.5771139Z               "line": 156
2026-06-06T06:01:02.5771551Z             }
2026-06-06T06:01:02.5771953Z           ]
2026-06-06T06:01:02.5772362Z         }
2026-06-06T06:01:02.5772757Z       }
2026-06-06T06:01:02.5773157Z     },
2026-06-06T06:01:02.5773545Z     {
2026-06-06T06:01:02.5774104Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-06T06:01:02.5774944Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-06T06:01:02.5775673Z       "requiredStages": [
2026-06-06T06:01:02.5776091Z         "impl",
2026-06-06T06:01:02.5776494Z         "unit"
2026-06-06T06:01:02.5776894Z       ],
2026-06-06T06:01:02.5777302Z       "stages": {
2026-06-06T06:01:02.5777719Z         "doc": {
2026-06-06T06:01:02.5778187Z           "complete": false,
2026-06-06T06:01:02.5778629Z           "evidence": []
2026-06-06T06:01:02.5779039Z         },
2026-06-06T06:01:02.5779503Z         "impl": {
2026-06-06T06:01:02.5779972Z           "complete": true,
2026-06-06T06:01:02.5780532Z           "evidence": [
2026-06-06T06:01:02.5780953Z             {
2026-06-06T06:01:02.5781579Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.5782014Z               "line": 35
2026-06-06T06:01:02.5782430Z             }
2026-06-06T06:01:02.5782833Z           ]
2026-06-06T06:01:02.5783247Z         },
2026-06-06T06:01:02.5783660Z         "int": {
2026-06-06T06:01:02.5784130Z           "complete": false,
2026-06-06T06:01:02.5784594Z           "evidence": []
2026-06-06T06:01:02.5784999Z         },
2026-06-06T06:01:02.5785426Z         "unit": {
2026-06-06T06:01:02.5785886Z           "complete": true,
2026-06-06T06:01:02.5786329Z           "evidence": [
2026-06-06T06:01:02.5786730Z             {
2026-06-06T06:01:02.5787347Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-06T06:01:02.5787797Z               "line": 217
2026-06-06T06:01:02.5788209Z             }
2026-06-06T06:01:02.5788627Z           ]
2026-06-06T06:01:02.5789033Z         }
2026-06-06T06:01:02.5789506Z       }
2026-06-06T06:01:02.5789912Z     },
2026-06-06T06:01:02.5790318Z     {
2026-06-06T06:01:02.5790869Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-06T06:01:02.5792429Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-06T06:01:02.5792910Z       "requiredStages": [
2026-06-06T06:01:02.5793325Z         "impl",
2026-06-06T06:01:02.5793745Z         "unit"
2026-06-06T06:01:02.5794164Z       ],
2026-06-06T06:01:02.5794593Z       "stages": {
2026-06-06T06:01:02.5795020Z         "doc": {
2026-06-06T06:01:02.5795481Z           "complete": false,
2026-06-06T06:01:02.5795935Z           "evidence": []
2026-06-06T06:01:02.5796342Z         },
2026-06-06T06:01:02.5796771Z         "impl": {
2026-06-06T06:01:02.5797226Z           "complete": true,
2026-06-06T06:01:02.5797672Z           "evidence": [
2026-06-06T06:01:02.5798088Z             {
2026-06-06T06:01:02.5798746Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.5799252Z               "line": 256
2026-06-06T06:01:02.5799666Z             },
2026-06-06T06:01:02.5800084Z             {
2026-06-06T06:01:02.5800712Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.5801160Z               "line": 275
2026-06-06T06:01:02.5801577Z             },
2026-06-06T06:01:02.5801990Z             {
2026-06-06T06:01:02.5802620Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.5803072Z               "line": 150
2026-06-06T06:01:02.5803488Z             }
2026-06-06T06:01:02.5803894Z           ]
2026-06-06T06:01:02.5804311Z         },
2026-06-06T06:01:02.5804731Z         "int": {
2026-06-06T06:01:02.5805192Z           "complete": false,
2026-06-06T06:01:02.5805643Z           "evidence": []
2026-06-06T06:01:02.5806048Z         },
2026-06-06T06:01:02.5806473Z         "unit": {
2026-06-06T06:01:02.5806930Z           "complete": true,
2026-06-06T06:01:02.5807374Z           "evidence": [
2026-06-06T06:01:02.5807786Z             {
2026-06-06T06:01:02.5808429Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.5808879Z               "line": 544
2026-06-06T06:01:02.5809316Z             },
2026-06-06T06:01:02.5809736Z             {
2026-06-06T06:01:02.5810365Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.5810822Z               "line": 555
2026-06-06T06:01:02.5811234Z             },
2026-06-06T06:01:02.5811806Z             {
2026-06-06T06:01:02.5812453Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.5812897Z               "line": 571
2026-06-06T06:01:02.5813316Z             },
2026-06-06T06:01:02.5813719Z             {
2026-06-06T06:01:02.5814354Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.5814799Z               "line": 585
2026-06-06T06:01:02.5815203Z             },
2026-06-06T06:01:02.5815620Z             {
2026-06-06T06:01:02.5816299Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-06T06:01:02.5816862Z               "line": 268
2026-06-06T06:01:02.5817286Z             }
2026-06-06T06:01:02.5817694Z           ]
2026-06-06T06:01:02.5818106Z         }
2026-06-06T06:01:02.5818508Z       }
2026-06-06T06:01:02.5818917Z     },
2026-06-06T06:01:02.5819363Z     {
2026-06-06T06:01:02.5819916Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-06T06:01:02.5824842Z       "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-06T06:01:02.5825337Z       "requiredStages": [
2026-06-06T06:01:02.5825754Z         "doc",
2026-06-06T06:01:02.5826171Z         "impl",
2026-06-06T06:01:02.5826595Z         "unit"
2026-06-06T06:01:02.5826995Z       ],
2026-06-06T06:01:02.5827426Z       "stages": {
2026-06-06T06:01:02.5827842Z         "doc": {
2026-06-06T06:01:02.5828304Z           "complete": true,
2026-06-06T06:01:02.5828790Z           "evidence": [
2026-06-06T06:01:02.5829243Z             {
2026-06-06T06:01:02.5829809Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-06T06:01:02.5830247Z               "line": 266
2026-06-06T06:01:02.5830667Z             }
2026-06-06T06:01:02.5831081Z           ]
2026-06-06T06:01:02.5831486Z         },
2026-06-06T06:01:02.5831914Z         "impl": {
2026-06-06T06:01:02.5832363Z           "complete": true,
2026-06-06T06:01:02.5832856Z           "evidence": [
2026-06-06T06:01:02.5833264Z             {
2026-06-06T06:01:02.5833899Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.5834343Z               "line": 85
2026-06-06T06:01:02.5834753Z             },
2026-06-06T06:01:02.5835166Z             {
2026-06-06T06:01:02.5835785Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.5836229Z               "line": 99
2026-06-06T06:01:02.5836636Z             },
2026-06-06T06:01:02.5837048Z             {
2026-06-06T06:01:02.5837705Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.5838142Z               "line": 55
2026-06-06T06:01:02.5838558Z             },
2026-06-06T06:01:02.5838965Z             {
2026-06-06T06:01:02.5839655Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.5840088Z               "line": 31
2026-06-06T06:01:02.5840510Z             },
2026-06-06T06:01:02.5840922Z             {
2026-06-06T06:01:02.5841570Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.5842014Z               "line": 187
2026-06-06T06:01:02.5842426Z             },
2026-06-06T06:01:02.5847311Z             {
2026-06-06T06:01:02.5848050Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.5848490Z               "line": 89
2026-06-06T06:01:02.5848898Z             },
2026-06-06T06:01:02.5849397Z             {
2026-06-06T06:01:02.5850069Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.5850495Z               "line": 29
2026-06-06T06:01:02.5850930Z             },
2026-06-06T06:01:02.5851344Z             {
2026-06-06T06:01:02.5851998Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.5852435Z               "line": 75
2026-06-06T06:01:02.5852858Z             },
2026-06-06T06:01:02.5853286Z             {
2026-06-06T06:01:02.5853974Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.5854676Z               "line": 145
2026-06-06T06:01:02.5855085Z             },
2026-06-06T06:01:02.5855486Z             {
2026-06-06T06:01:02.5856134Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-06T06:01:02.5856559Z               "line": 28
2026-06-06T06:01:02.5856965Z             },
2026-06-06T06:01:02.5857362Z             {
2026-06-06T06:01:02.5858007Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-06T06:01:02.5858443Z               "line": 74
2026-06-06T06:01:02.5858845Z             },
2026-06-06T06:01:02.5859302Z             {
2026-06-06T06:01:02.5860021Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.5860470Z               "line": 40
2026-06-06T06:01:02.5860872Z             },
2026-06-06T06:01:02.5861276Z             {
2026-06-06T06:01:02.5861872Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.5862303Z               "line": 161
2026-06-06T06:01:02.5862707Z             },
2026-06-06T06:01:02.5863117Z             {
2026-06-06T06:01:02.5863703Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-06T06:01:02.5864129Z               "line": 70
2026-06-06T06:01:02.5864534Z             },
2026-06-06T06:01:02.5864930Z             {
2026-06-06T06:01:02.5865520Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.5865960Z               "line": 210
2026-06-06T06:01:02.5866360Z             },
2026-06-06T06:01:02.5866765Z             {
2026-06-06T06:01:02.5867361Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-06T06:01:02.5867806Z               "line": 37
2026-06-06T06:01:02.5868218Z             },
2026-06-06T06:01:02.5868613Z             {
2026-06-06T06:01:02.5869277Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-06T06:01:02.5869709Z               "line": 38
2026-06-06T06:01:02.5870119Z             },
2026-06-06T06:01:02.5870516Z             {
2026-06-06T06:01:02.5871142Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.5871595Z               "line": 36
2026-06-06T06:01:02.5871994Z             },
2026-06-06T06:01:02.5872395Z             {
2026-06-06T06:01:02.5872987Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-06T06:01:02.5873421Z               "line": 40
2026-06-06T06:01:02.5873825Z             }
2026-06-06T06:01:02.5874219Z           ]
2026-06-06T06:01:02.5874626Z         },
2026-06-06T06:01:02.5875026Z         "int": {
2026-06-06T06:01:02.5875484Z           "complete": false,
2026-06-06T06:01:02.5875915Z           "evidence": []
2026-06-06T06:01:02.5876319Z         },
2026-06-06T06:01:02.5876734Z         "unit": {
2026-06-06T06:01:02.5877193Z           "complete": true,
2026-06-06T06:01:02.5877631Z           "evidence": [
2026-06-06T06:01:02.5878032Z             {
2026-06-06T06:01:02.5878679Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.5879107Z               "line": 179
2026-06-06T06:01:02.5879554Z             },
2026-06-06T06:01:02.5879966Z             {
2026-06-06T06:01:02.5880651Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-06T06:01:02.5881087Z               "line": 117
2026-06-06T06:01:02.5881488Z             },
2026-06-06T06:01:02.5881895Z             {
2026-06-06T06:01:02.5882569Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-06T06:01:02.5883009Z               "line": 344
2026-06-06T06:01:02.5883420Z             },
2026-06-06T06:01:02.5883818Z             {
2026-06-06T06:01:02.5884434Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.5884863Z               "line": 204
2026-06-06T06:01:02.5885291Z             },
2026-06-06T06:01:02.5885689Z             {
2026-06-06T06:01:02.5886328Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-06T06:01:02.5886765Z               "line": 147
2026-06-06T06:01:02.5887163Z             },
2026-06-06T06:01:02.5887565Z             {
2026-06-06T06:01:02.5888175Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.5888776Z               "line": 106
2026-06-06T06:01:02.5889220Z             },
2026-06-06T06:01:02.5889630Z             {
2026-06-06T06:01:02.5890228Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-06T06:01:02.5890669Z               "line": 142
2026-06-06T06:01:02.5891076Z             },
2026-06-06T06:01:02.5891469Z             {
2026-06-06T06:01:02.5892098Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-06T06:01:02.5892523Z               "line": 139
2026-06-06T06:01:02.5892927Z             },
2026-06-06T06:01:02.5893332Z             {
2026-06-06T06:01:02.5894115Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.5894566Z               "line": 126
2026-06-06T06:01:02.5894965Z             },
2026-06-06T06:01:02.5895368Z             {
2026-06-06T06:01:02.5895958Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-06T06:01:02.5896402Z               "line": 135
2026-06-06T06:01:02.5896805Z             }
2026-06-06T06:01:02.5897201Z           ]
2026-06-06T06:01:02.5897633Z         }
2026-06-06T06:01:02.5898036Z       }
2026-06-06T06:01:02.5898434Z     },
2026-06-06T06:01:02.5898821Z     {
2026-06-06T06:01:02.5899444Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-06T06:01:02.5900306Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-06T06:01:02.5900764Z       "requiredStages": [
2026-06-06T06:01:02.5901176Z         "impl",
2026-06-06T06:01:02.5901575Z         "unit"
2026-06-06T06:01:02.5901971Z       ],
2026-06-06T06:01:02.5902380Z       "stages": {
2026-06-06T06:01:02.5902791Z         "doc": {
2026-06-06T06:01:02.5903336Z           "complete": false,
2026-06-06T06:01:02.5903963Z           "evidence": []
2026-06-06T06:01:02.5904611Z         },
2026-06-06T06:01:02.5905092Z         "impl": {
2026-06-06T06:01:02.5905561Z           "complete": true,
2026-06-06T06:01:02.5905991Z           "evidence": [
2026-06-06T06:01:02.5906397Z             {
2026-06-06T06:01:02.5906998Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.5907444Z               "line": 95
2026-06-06T06:01:02.5907864Z             },
2026-06-06T06:01:02.5908268Z             {
2026-06-06T06:01:02.5908869Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.5909360Z               "line": 99
2026-06-06T06:01:02.5909782Z             }
2026-06-06T06:01:02.5910199Z           ]
2026-06-06T06:01:02.5910605Z         },
2026-06-06T06:01:02.5911029Z         "int": {
2026-06-06T06:01:02.5911491Z           "complete": false,
2026-06-06T06:01:02.5911940Z           "evidence": []
2026-06-06T06:01:02.5912362Z         },
2026-06-06T06:01:02.5912796Z         "unit": {
2026-06-06T06:01:02.5913258Z           "complete": true,
2026-06-06T06:01:02.5913690Z           "evidence": [
2026-06-06T06:01:02.5914100Z             {
2026-06-06T06:01:02.5914702Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.5915151Z               "line": 250
2026-06-06T06:01:02.5915550Z             },
2026-06-06T06:01:02.5915974Z             {
2026-06-06T06:01:02.5916568Z               "path": "crates/spt-store/src/proc.rs",
2026-06-06T06:01:02.5917004Z               "line": 191
2026-06-06T06:01:02.5917424Z             },
2026-06-06T06:01:02.5917828Z             {
2026-06-06T06:01:02.5918428Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.5918862Z               "line": 432
2026-06-06T06:01:02.5919317Z             },
2026-06-06T06:01:02.5919735Z             {
2026-06-06T06:01:02.5920337Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.5920798Z               "line": 462
2026-06-06T06:01:02.5921204Z             }
2026-06-06T06:01:02.5921616Z           ]
2026-06-06T06:01:02.5922016Z         }
2026-06-06T06:01:02.5922436Z       }
2026-06-06T06:01:02.5922841Z     },
2026-06-06T06:01:02.5923241Z     {
2026-06-06T06:01:02.5930440Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-06T06:01:02.5931624Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-06T06:01:02.5932384Z       "requiredStages": [
2026-06-06T06:01:02.5932797Z         "impl",
2026-06-06T06:01:02.5933195Z         "unit"
2026-06-06T06:01:02.5933596Z       ],
2026-06-06T06:01:02.5934007Z       "stages": {
2026-06-06T06:01:02.5934412Z         "doc": {
2026-06-06T06:01:02.5934862Z           "complete": false,
2026-06-06T06:01:02.5935304Z           "evidence": []
2026-06-06T06:01:02.5935699Z         },
2026-06-06T06:01:02.5936118Z         "impl": {
2026-06-06T06:01:02.5936573Z           "complete": true,
2026-06-06T06:01:02.5937004Z           "evidence": [
2026-06-06T06:01:02.5937532Z             {
2026-06-06T06:01:02.5938149Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5938592Z               "line": 230
2026-06-06T06:01:02.5938998Z             },
2026-06-06T06:01:02.5939508Z             {
2026-06-06T06:01:02.5940129Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5940569Z               "line": 275
2026-06-06T06:01:02.5940987Z             },
2026-06-06T06:01:02.5941412Z             {
2026-06-06T06:01:02.5942020Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5942468Z               "line": 287
2026-06-06T06:01:02.5942871Z             }
2026-06-06T06:01:02.5943290Z           ]
2026-06-06T06:01:02.5943694Z         },
2026-06-06T06:01:02.5944116Z         "int": {
2026-06-06T06:01:02.5944573Z           "complete": false,
2026-06-06T06:01:02.5945021Z           "evidence": []
2026-06-06T06:01:02.5945419Z         },
2026-06-06T06:01:02.5945837Z         "unit": {
2026-06-06T06:01:02.5946303Z           "complete": true,
2026-06-06T06:01:02.5946740Z           "evidence": [
2026-06-06T06:01:02.5947153Z             {
2026-06-06T06:01:02.5947748Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5948191Z               "line": 423
2026-06-06T06:01:02.5948606Z             },
2026-06-06T06:01:02.5949013Z             {
2026-06-06T06:01:02.5949684Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.5950139Z               "line": 452
2026-06-06T06:01:02.5950552Z             }
2026-06-06T06:01:02.5950954Z           ]
2026-06-06T06:01:02.5951365Z         }
2026-06-06T06:01:02.5951775Z       }
2026-06-06T06:01:02.5952176Z     },
2026-06-06T06:01:02.5952577Z     {
2026-06-06T06:01:02.5953033Z       "id": "REQ-INFRA-1",
2026-06-06T06:01:02.5954053Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-06T06:01:02.5954527Z       "requiredStages": [],
2026-06-06T06:01:02.5954956Z       "stages": {
2026-06-06T06:01:02.5955372Z         "doc": {
2026-06-06T06:01:02.5955839Z           "complete": false,
2026-06-06T06:01:02.5956293Z           "evidence": []
2026-06-06T06:01:02.5956692Z         },
2026-06-06T06:01:02.5957121Z         "impl": {
2026-06-06T06:01:02.5957575Z           "complete": false,
2026-06-06T06:01:02.5958022Z           "evidence": []
2026-06-06T06:01:02.5958430Z         },
2026-06-06T06:01:02.5958841Z         "int": {
2026-06-06T06:01:02.5959349Z           "complete": false,
2026-06-06T06:01:02.5959809Z           "evidence": []
2026-06-06T06:01:02.5960216Z         },
2026-06-06T06:01:02.5960633Z         "unit": {
2026-06-06T06:01:02.5961098Z           "complete": false,
2026-06-06T06:01:02.5961539Z           "evidence": []
2026-06-06T06:01:02.5961946Z         }
2026-06-06T06:01:02.5962358Z       }
2026-06-06T06:01:02.5962754Z     },
2026-06-06T06:01:02.5963157Z     {
2026-06-06T06:01:02.5963600Z       "id": "REQ-INST-1",
2026-06-06T06:01:02.5964470Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-06T06:01:02.5964957Z       "requiredStages": [],
2026-06-06T06:01:02.5965389Z       "stages": {
2026-06-06T06:01:02.5965809Z         "doc": {
2026-06-06T06:01:02.5966263Z           "complete": false,
2026-06-06T06:01:02.5966712Z           "evidence": []
2026-06-06T06:01:02.5967111Z         },
2026-06-06T06:01:02.5967537Z         "impl": {
2026-06-06T06:01:02.5967993Z           "complete": false,
2026-06-06T06:01:02.5968444Z           "evidence": []
2026-06-06T06:01:02.5969024Z         },
2026-06-06T06:01:02.5969484Z         "int": {
2026-06-06T06:01:02.5969962Z           "complete": false,
2026-06-06T06:01:02.5970402Z           "evidence": []
2026-06-06T06:01:02.5970817Z         },
2026-06-06T06:01:02.5971228Z         "unit": {
2026-06-06T06:01:02.5971696Z           "complete": false,
2026-06-06T06:01:02.5972149Z           "evidence": []
2026-06-06T06:01:02.5972551Z         }
2026-06-06T06:01:02.5972963Z       }
2026-06-06T06:01:02.5973359Z     },
2026-06-06T06:01:02.5973770Z     {
2026-06-06T06:01:02.5974343Z       "id": "REQ-INST-10",
2026-06-06T06:01:02.5975565Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-06T06:01:02.5976041Z       "requiredStages": [
2026-06-06T06:01:02.5976452Z         "impl",
2026-06-06T06:01:02.5976870Z         "unit"
2026-06-06T06:01:02.5977275Z       ],
2026-06-06T06:01:02.5977705Z       "stages": {
2026-06-06T06:01:02.5978111Z         "doc": {
2026-06-06T06:01:02.5978594Z           "complete": false,
2026-06-06T06:01:02.5979039Z           "evidence": []
2026-06-06T06:01:02.5979480Z         },
2026-06-06T06:01:02.5979911Z         "impl": {
2026-06-06T06:01:02.5980365Z           "complete": true,
2026-06-06T06:01:02.5980807Z           "evidence": [
2026-06-06T06:01:02.5981212Z             {
2026-06-06T06:01:02.5981862Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5982303Z               "line": 476
2026-06-06T06:01:02.5982709Z             },
2026-06-06T06:01:02.5983117Z             {
2026-06-06T06:01:02.5983766Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5984212Z               "line": 542
2026-06-06T06:01:02.5984617Z             },
2026-06-06T06:01:02.5985029Z             {
2026-06-06T06:01:02.5985623Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.5986057Z               "line": 13
2026-06-06T06:01:02.5986472Z             },
2026-06-06T06:01:02.5986870Z             {
2026-06-06T06:01:02.5987473Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.5987911Z               "line": 67
2026-06-06T06:01:02.5988312Z             },
2026-06-06T06:01:02.5988721Z             {
2026-06-06T06:01:02.5989371Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.5989820Z               "line": 18
2026-06-06T06:01:02.5990229Z             }
2026-06-06T06:01:02.5990645Z           ]
2026-06-06T06:01:02.5991051Z         },
2026-06-06T06:01:02.5991461Z         "int": {
2026-06-06T06:01:02.5991924Z           "complete": false,
2026-06-06T06:01:02.5992372Z           "evidence": []
2026-06-06T06:01:02.5992782Z         },
2026-06-06T06:01:02.5993196Z         "unit": {
2026-06-06T06:01:02.5993667Z           "complete": true,
2026-06-06T06:01:02.5994099Z           "evidence": [
2026-06-06T06:01:02.5994516Z             {
2026-06-06T06:01:02.5995161Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5995598Z               "line": 686
2026-06-06T06:01:02.5996027Z             },
2026-06-06T06:01:02.5996437Z             {
2026-06-06T06:01:02.5997089Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5997535Z               "line": 912
2026-06-06T06:01:02.5997941Z             },
2026-06-06T06:01:02.5998355Z             {
2026-06-06T06:01:02.5998993Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.5999475Z               "line": 920
2026-06-06T06:01:02.5999891Z             },
2026-06-06T06:01:02.6000307Z             {
2026-06-06T06:01:02.6000965Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6001403Z               "line": 933
2026-06-06T06:01:02.6001818Z             },
2026-06-06T06:01:02.6002219Z             {
2026-06-06T06:01:02.6002859Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6003293Z               "line": 946
2026-06-06T06:01:02.6003708Z             },
2026-06-06T06:01:02.6004130Z             {
2026-06-06T06:01:02.6004932Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6005380Z               "line": 962
2026-06-06T06:01:02.6005789Z             },
2026-06-06T06:01:02.6006203Z             {
2026-06-06T06:01:02.6011770Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6012320Z               "line": 1191
2026-06-06T06:01:02.6012731Z             },
2026-06-06T06:01:02.6013130Z             {
2026-06-06T06:01:02.6013739Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.6014171Z               "line": 121
2026-06-06T06:01:02.6014821Z             },
2026-06-06T06:01:02.6015232Z             {
2026-06-06T06:01:02.6015831Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.6016263Z               "line": 142
2026-06-06T06:01:02.6016666Z             },
2026-06-06T06:01:02.6017070Z             {
2026-06-06T06:01:02.6017646Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.6018076Z               "line": 150
2026-06-06T06:01:02.6018487Z             },
2026-06-06T06:01:02.6018891Z             {
2026-06-06T06:01:02.6019539Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-06T06:01:02.6019979Z               "line": 158
2026-06-06T06:01:02.6020386Z             }
2026-06-06T06:01:02.6020778Z           ]
2026-06-06T06:01:02.6021181Z         }
2026-06-06T06:01:02.6021569Z       }
2026-06-06T06:01:02.6021968Z     },
2026-06-06T06:01:02.6022366Z     {
2026-06-06T06:01:02.6022810Z       "id": "REQ-INST-11",
2026-06-06T06:01:02.6024056Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-06T06:01:02.6024520Z       "requiredStages": [
2026-06-06T06:01:02.6024937Z         "impl",
2026-06-06T06:01:02.6025331Z         "unit"
2026-06-06T06:01:02.6025731Z       ],
2026-06-06T06:01:02.6026151Z       "stages": {
2026-06-06T06:01:02.6026547Z         "doc": {
2026-06-06T06:01:02.6027003Z           "complete": false,
2026-06-06T06:01:02.6027434Z           "evidence": []
2026-06-06T06:01:02.6027851Z         },
2026-06-06T06:01:02.6028255Z         "impl": {
2026-06-06T06:01:02.6028706Z           "complete": true,
2026-06-06T06:01:02.6029137Z           "evidence": [
2026-06-06T06:01:02.6029577Z             {
2026-06-06T06:01:02.6030238Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6030676Z               "line": 353
2026-06-06T06:01:02.6031091Z             },
2026-06-06T06:01:02.6031494Z             {
2026-06-06T06:01:02.6032184Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6032643Z               "line": 252
2026-06-06T06:01:02.6033049Z             },
2026-06-06T06:01:02.6033465Z             {
2026-06-06T06:01:02.6034069Z               "path": "crates/spt-store/src/rename.rs",
2026-06-06T06:01:02.6034508Z               "line": 59
2026-06-06T06:01:02.6034918Z             },
2026-06-06T06:01:02.6035320Z             {
2026-06-06T06:01:02.6035866Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6036315Z               "line": 2231
2026-06-06T06:01:02.6036730Z             },
2026-06-06T06:01:02.6037134Z             {
2026-06-06T06:01:02.6037673Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6038124Z               "line": 3254
2026-06-06T06:01:02.6038528Z             }
2026-06-06T06:01:02.6038946Z           ]
2026-06-06T06:01:02.6039381Z         },
2026-06-06T06:01:02.6039811Z         "int": {
2026-06-06T06:01:02.6040268Z           "complete": false,
2026-06-06T06:01:02.6040719Z           "evidence": []
2026-06-06T06:01:02.6041126Z         },
2026-06-06T06:01:02.6041548Z         "unit": {
2026-06-06T06:01:02.6042011Z           "complete": true,
2026-06-06T06:01:02.6042447Z           "evidence": [
2026-06-06T06:01:02.6042851Z             {
2026-06-06T06:01:02.6043493Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6043948Z               "line": 1055
2026-06-06T06:01:02.6044368Z             },
2026-06-06T06:01:02.6044768Z             {
2026-06-06T06:01:02.6045586Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6046030Z               "line": 1078
2026-06-06T06:01:02.6046443Z             },
2026-06-06T06:01:02.6046840Z             {
2026-06-06T06:01:02.6047523Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6047971Z               "line": 471
2026-06-06T06:01:02.6048376Z             },
2026-06-06T06:01:02.6048786Z             {
2026-06-06T06:01:02.6049431Z               "path": "crates/spt-store/src/rename.rs",
2026-06-06T06:01:02.6049883Z               "line": 156
2026-06-06T06:01:02.6050442Z             },
2026-06-06T06:01:02.6050871Z             {
2026-06-06T06:01:02.6051490Z               "path": "crates/spt-store/src/rename.rs",
2026-06-06T06:01:02.6051926Z               "line": 177
2026-06-06T06:01:02.6052342Z             },
2026-06-06T06:01:02.6052744Z             {
2026-06-06T06:01:02.6053357Z               "path": "crates/spt-store/src/rename.rs",
2026-06-06T06:01:02.6053808Z               "line": 209
2026-06-06T06:01:02.6054224Z             },
2026-06-06T06:01:02.6054630Z             {
2026-06-06T06:01:02.6055161Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6055610Z               "line": 3385
2026-06-06T06:01:02.6056013Z             }
2026-06-06T06:01:02.6056417Z           ]
2026-06-06T06:01:02.6056820Z         }
2026-06-06T06:01:02.6057229Z       }
2026-06-06T06:01:02.6057638Z     },
2026-06-06T06:01:02.6058032Z     {
2026-06-06T06:01:02.6058491Z       "id": "REQ-INST-12",
2026-06-06T06:01:02.6060298Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-06T06:01:02.6060781Z       "requiredStages": [
2026-06-06T06:01:02.6061195Z         "impl",
2026-06-06T06:01:02.6061614Z         "unit"
2026-06-06T06:01:02.6062023Z       ],
2026-06-06T06:01:02.6062439Z       "stages": {
2026-06-06T06:01:02.6062853Z         "doc": {
2026-06-06T06:01:02.6063310Z           "complete": false,
2026-06-06T06:01:02.6063765Z           "evidence": []
2026-06-06T06:01:02.6064161Z         },
2026-06-06T06:01:02.6064585Z         "impl": {
2026-06-06T06:01:02.6065043Z           "complete": true,
2026-06-06T06:01:02.6065472Z           "evidence": [
2026-06-06T06:01:02.6065885Z             {
2026-06-06T06:01:02.6066528Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6066973Z               "line": 405
2026-06-06T06:01:02.6067375Z             },
2026-06-06T06:01:02.6067786Z             {
2026-06-06T06:01:02.6068440Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6068876Z               "line": 487
2026-06-06T06:01:02.6069329Z             },
2026-06-06T06:01:02.6069732Z             {
2026-06-06T06:01:02.6070380Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6070811Z               "line": 556
2026-06-06T06:01:02.6071224Z             },
2026-06-06T06:01:02.6071633Z             {
2026-06-06T06:01:02.6072236Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.6072688Z               "line": 87
2026-06-06T06:01:02.6073091Z             },
2026-06-06T06:01:02.6073498Z             {
2026-06-06T06:01:02.6074100Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.6074546Z               "line": 216
2026-06-06T06:01:02.6074968Z             },
2026-06-06T06:01:02.6075372Z             {
2026-06-06T06:01:02.6076031Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6076464Z               "line": 132
2026-06-06T06:01:02.6076878Z             }
2026-06-06T06:01:02.6077299Z           ]
2026-06-06T06:01:02.6077700Z         },
2026-06-06T06:01:02.6078117Z         "int": {
2026-06-06T06:01:02.6078578Z           "complete": false,
2026-06-06T06:01:02.6079024Z           "evidence": []
2026-06-06T06:01:02.6079466Z         },
2026-06-06T06:01:02.6079895Z         "unit": {
2026-06-06T06:01:02.6080350Z           "complete": true,
2026-06-06T06:01:02.6080799Z           "evidence": [
2026-06-06T06:01:02.6081446Z             {
2026-06-06T06:01:02.6082092Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6082544Z               "line": 1113
2026-06-06T06:01:02.6082953Z             },
2026-06-06T06:01:02.6083372Z             {
2026-06-06T06:01:02.6084022Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6084467Z               "line": 1130
2026-06-06T06:01:02.6084884Z             },
2026-06-06T06:01:02.6085288Z             {
2026-06-06T06:01:02.6086047Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6086503Z               "line": 1161
2026-06-06T06:01:02.6086923Z             },
2026-06-06T06:01:02.6087337Z             {
2026-06-06T06:01:02.6087945Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.6088392Z               "line": 350
2026-06-06T06:01:02.6093199Z             },
2026-06-06T06:01:02.6093686Z             {
2026-06-06T06:01:02.6094346Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6094818Z               "line": 169
2026-06-06T06:01:02.6095233Z             },
2026-06-06T06:01:02.6095636Z             {
2026-06-06T06:01:02.6096296Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6096725Z               "line": 181
2026-06-06T06:01:02.6097140Z             },
2026-06-06T06:01:02.6097546Z             {
2026-06-06T06:01:02.6098204Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6098637Z               "line": 198
2026-06-06T06:01:02.6099030Z             }
2026-06-06T06:01:02.6099512Z           ]
2026-06-06T06:01:02.6099905Z         }
2026-06-06T06:01:02.6100300Z       }
2026-06-06T06:01:02.6100686Z     },
2026-06-06T06:01:02.6101082Z     {
2026-06-06T06:01:02.6101537Z       "id": "REQ-INST-13",
2026-06-06T06:01:02.6102539Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-06T06:01:02.6103002Z       "requiredStages": [
2026-06-06T06:01:02.6103421Z         "impl",
2026-06-06T06:01:02.6103835Z         "unit"
2026-06-06T06:01:02.6104228Z       ],
2026-06-06T06:01:02.6104650Z       "stages": {
2026-06-06T06:01:02.6105057Z         "doc": {
2026-06-06T06:01:02.6105508Z           "complete": false,
2026-06-06T06:01:02.6105952Z           "evidence": []
2026-06-06T06:01:02.6106348Z         },
2026-06-06T06:01:02.6106767Z         "impl": {
2026-06-06T06:01:02.6107207Z           "complete": true,
2026-06-06T06:01:02.6107638Z           "evidence": [
2026-06-06T06:01:02.6108035Z             {
2026-06-06T06:01:02.6108635Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6109062Z               "line": 94
2026-06-06T06:01:02.6109503Z             },
2026-06-06T06:01:02.6109915Z             {
2026-06-06T06:01:02.6110552Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6110992Z               "line": 155
2026-06-06T06:01:02.6111400Z             }
2026-06-06T06:01:02.6111791Z           ]
2026-06-06T06:01:02.6112202Z         },
2026-06-06T06:01:02.6112606Z         "int": {
2026-06-06T06:01:02.6113064Z           "complete": false,
2026-06-06T06:01:02.6113491Z           "evidence": []
2026-06-06T06:01:02.6113897Z         },
2026-06-06T06:01:02.6114309Z         "unit": {
2026-06-06T06:01:02.6114752Z           "complete": true,
2026-06-06T06:01:02.6115187Z           "evidence": [
2026-06-06T06:01:02.6115580Z             {
2026-06-06T06:01:02.6116228Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6116655Z               "line": 221
2026-06-06T06:01:02.6117066Z             },
2026-06-06T06:01:02.6117468Z             {
2026-06-06T06:01:02.6118109Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-06T06:01:02.6118544Z               "line": 233
2026-06-06T06:01:02.6118938Z             }
2026-06-06T06:01:02.6119378Z           ]
2026-06-06T06:01:02.6119774Z         }
2026-06-06T06:01:02.6120174Z       }
2026-06-06T06:01:02.6120572Z     },
2026-06-06T06:01:02.6121233Z     {
2026-06-06T06:01:02.6121681Z       "id": "REQ-INST-14",
2026-06-06T06:01:02.6123982Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-06T06:01:02.6124451Z       "requiredStages": [
2026-06-06T06:01:02.6124855Z         "doc",
2026-06-06T06:01:02.6125267Z         "impl",
2026-06-06T06:01:02.6125672Z         "unit"
2026-06-06T06:01:02.6126062Z       ],
2026-06-06T06:01:02.6126480Z       "stages": {
2026-06-06T06:01:02.6126879Z         "doc": {
2026-06-06T06:01:02.6127452Z           "complete": true,
2026-06-06T06:01:02.6127898Z           "evidence": [
2026-06-06T06:01:02.6128302Z             {
2026-06-06T06:01:02.6128770Z               "path": "CONTEXT.md",
2026-06-06T06:01:02.6129250Z               "line": 421
2026-06-06T06:01:02.6129660Z             },
2026-06-06T06:01:02.6130053Z             {
2026-06-06T06:01:02.6130550Z               "path": "docs/STORAGE.md",
2026-06-06T06:01:02.6130971Z               "line": 49
2026-06-06T06:01:02.6131388Z             }
2026-06-06T06:01:02.6131789Z           ]
2026-06-06T06:01:02.6132180Z         },
2026-06-06T06:01:02.6132595Z         "impl": {
2026-06-06T06:01:02.6133036Z           "complete": true,
2026-06-06T06:01:02.6133468Z           "evidence": [
2026-06-06T06:01:02.6133859Z             {
2026-06-06T06:01:02.6134560Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6134995Z               "line": 292
2026-06-06T06:01:02.6135399Z             },
2026-06-06T06:01:02.6135804Z             {
2026-06-06T06:01:02.6136451Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6136887Z               "line": 220
2026-06-06T06:01:02.6137285Z             },
2026-06-06T06:01:02.6137683Z             {
2026-06-06T06:01:02.6138263Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.6138688Z               "line": 202
2026-06-06T06:01:02.6139097Z             },
2026-06-06T06:01:02.6139525Z             {
2026-06-06T06:01:02.6140074Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6140510Z               "line": 833
2026-06-06T06:01:02.6140901Z             }
2026-06-06T06:01:02.6141303Z           ]
2026-06-06T06:01:02.6141693Z         },
2026-06-06T06:01:02.6142105Z         "int": {
2026-06-06T06:01:02.6142550Z           "complete": false,
2026-06-06T06:01:02.6142996Z           "evidence": []
2026-06-06T06:01:02.6143392Z         },
2026-06-06T06:01:02.6143805Z         "unit": {
2026-06-06T06:01:02.6144257Z           "complete": true,
2026-06-06T06:01:02.6144689Z           "evidence": [
2026-06-06T06:01:02.6145089Z             {
2026-06-06T06:01:02.6145764Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6146203Z               "line": 481
2026-06-06T06:01:02.6146598Z             },
2026-06-06T06:01:02.6146998Z             {
2026-06-06T06:01:02.6147637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6148063Z               "line": 695
2026-06-06T06:01:02.6148478Z             },
2026-06-06T06:01:02.6148871Z             {
2026-06-06T06:01:02.6149540Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6149983Z               "line": 862
2026-06-06T06:01:02.6150379Z             },
2026-06-06T06:01:02.6150774Z             {
2026-06-06T06:01:02.6151352Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.6151785Z               "line": 411
2026-06-06T06:01:02.6152182Z             },
2026-06-06T06:01:02.6152586Z             {
2026-06-06T06:01:02.6153139Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6153569Z               "line": 3401
2026-06-06T06:01:02.6153968Z             }
2026-06-06T06:01:02.6154361Z           ]
2026-06-06T06:01:02.6154760Z         }
2026-06-06T06:01:02.6155150Z       }
2026-06-06T06:01:02.6155550Z     },
2026-06-06T06:01:02.6155944Z     {
2026-06-06T06:01:02.6156385Z       "id": "REQ-INST-15",
2026-06-06T06:01:02.6161113Z       "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-06T06:01:02.6161734Z       "requiredStages": [
2026-06-06T06:01:02.6162142Z         "doc",
2026-06-06T06:01:02.6162543Z         "impl",
2026-06-06T06:01:02.6162954Z         "unit"
2026-06-06T06:01:02.6163356Z       ],
2026-06-06T06:01:02.6163762Z       "stages": {
2026-06-06T06:01:02.6164168Z         "doc": {
2026-06-06T06:01:02.6164773Z           "complete": true,
2026-06-06T06:01:02.6165234Z           "evidence": [
2026-06-06T06:01:02.6165631Z             {
2026-06-06T06:01:02.6166602Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-06T06:01:02.6167033Z               "line": 3
2026-06-06T06:01:02.6167433Z             }
2026-06-06T06:01:02.6167838Z           ]
2026-06-06T06:01:02.6168231Z         },
2026-06-06T06:01:02.6168671Z         "impl": {
2026-06-06T06:01:02.6169116Z           "complete": true,
2026-06-06T06:01:02.6169609Z           "evidence": [
2026-06-06T06:01:02.6170013Z             {
2026-06-06T06:01:02.6170695Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6171131Z               "line": 240
2026-06-06T06:01:02.6171524Z             },
2026-06-06T06:01:02.6171929Z             {
2026-06-06T06:01:02.6172503Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.6177154Z               "line": 60
2026-06-06T06:01:02.6177660Z             },
2026-06-06T06:01:02.6178060Z             {
2026-06-06T06:01:02.6178750Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6179358Z               "line": 326
2026-06-06T06:01:02.6179780Z             },
2026-06-06T06:01:02.6180183Z             {
2026-06-06T06:01:02.6180852Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6181283Z               "line": 376
2026-06-06T06:01:02.6181695Z             },
2026-06-06T06:01:02.6182099Z             {
2026-06-06T06:01:02.6182685Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6183113Z               "line": 19
2026-06-06T06:01:02.6183522Z             },
2026-06-06T06:01:02.6183920Z             {
2026-06-06T06:01:02.6184501Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6184922Z               "line": 67
2026-06-06T06:01:02.6185328Z             },
2026-06-06T06:01:02.6185725Z             {
2026-06-06T06:01:02.6186319Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6186753Z               "line": 91
2026-06-06T06:01:02.6187153Z             },
2026-06-06T06:01:02.6187555Z             {
2026-06-06T06:01:02.6188131Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6188571Z               "line": 116
2026-06-06T06:01:02.6188966Z             },
2026-06-06T06:01:02.6189409Z             {
2026-06-06T06:01:02.6190001Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6190424Z               "line": 167
2026-06-06T06:01:02.6190828Z             },
2026-06-06T06:01:02.6191219Z             {
2026-06-06T06:01:02.6191811Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.6192237Z               "line": 141
2026-06-06T06:01:02.6192640Z             },
2026-06-06T06:01:02.6193039Z             {
2026-06-06T06:01:02.6193574Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6194006Z               "line": 725
2026-06-06T06:01:02.6194398Z             }
2026-06-06T06:01:02.6194839Z           ]
2026-06-06T06:01:02.6195320Z         },
2026-06-06T06:01:02.6195771Z         "int": {
2026-06-06T06:01:02.6196230Z           "complete": false,
2026-06-06T06:01:02.6196660Z           "evidence": []
2026-06-06T06:01:02.6197061Z         },
2026-06-06T06:01:02.6197462Z         "unit": {
2026-06-06T06:01:02.6197910Z           "complete": true,
2026-06-06T06:01:02.6198346Z           "evidence": [
2026-06-06T06:01:02.6199071Z             {
2026-06-06T06:01:02.6199816Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6200248Z               "line": 515
2026-06-06T06:01:02.6200650Z             },
2026-06-06T06:01:02.6201047Z             {
2026-06-06T06:01:02.6201726Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.6202150Z               "line": 571
2026-06-06T06:01:02.6202559Z             },
2026-06-06T06:01:02.6202962Z             {
2026-06-06T06:01:02.6203534Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6204086Z               "line": 206
2026-06-06T06:01:02.6204500Z             },
2026-06-06T06:01:02.6204907Z             {
2026-06-06T06:01:02.6205475Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6205918Z               "line": 239
2026-06-06T06:01:02.6206320Z             },
2026-06-06T06:01:02.6206711Z             {
2026-06-06T06:01:02.6207293Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6207742Z               "line": 252
2026-06-06T06:01:02.6208148Z             },
2026-06-06T06:01:02.6208550Z             {
2026-06-06T06:01:02.6209124Z               "path": "crates/spt-store/src/home.rs",
2026-06-06T06:01:02.6209608Z               "line": 316
2026-06-06T06:01:02.6210009Z             },
2026-06-06T06:01:02.6210415Z             {
2026-06-06T06:01:02.6210997Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.6211431Z               "line": 477
2026-06-06T06:01:02.6211832Z             },
2026-06-06T06:01:02.6212236Z             {
2026-06-06T06:01:02.6212764Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6213199Z               "line": 3388
2026-06-06T06:01:02.6213607Z             },
2026-06-06T06:01:02.6214005Z             {
2026-06-06T06:01:02.6214539Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6214981Z               "line": 4374
2026-06-06T06:01:02.6215377Z             }
2026-06-06T06:01:02.6215787Z           ]
2026-06-06T06:01:02.6216180Z         }
2026-06-06T06:01:02.6216579Z       }
2026-06-06T06:01:02.6216966Z     },
2026-06-06T06:01:02.6217363Z     {
2026-06-06T06:01:02.6217808Z       "id": "REQ-INST-2",
2026-06-06T06:01:02.6218419Z       "title": "Per-node files, synced Psyche mind",
2026-06-06T06:01:02.6218882Z       "requiredStages": [
2026-06-06T06:01:02.6219326Z         "impl",
2026-06-06T06:01:02.6219733Z         "unit"
2026-06-06T06:01:02.6220128Z       ],
2026-06-06T06:01:02.6220546Z       "stages": {
2026-06-06T06:01:02.6220960Z         "doc": {
2026-06-06T06:01:02.6221424Z           "complete": false,
2026-06-06T06:01:02.6221869Z           "evidence": []
2026-06-06T06:01:02.6222273Z         },
2026-06-06T06:01:02.6222690Z         "impl": {
2026-06-06T06:01:02.6223134Z           "complete": true,
2026-06-06T06:01:02.6223565Z           "evidence": [
2026-06-06T06:01:02.6223960Z             {
2026-06-06T06:01:02.6224614Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6225061Z               "line": 86
2026-06-06T06:01:02.6225457Z             },
2026-06-06T06:01:02.6225866Z             {
2026-06-06T06:01:02.6226453Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.6226889Z               "line": 28
2026-06-06T06:01:02.6227295Z             },
2026-06-06T06:01:02.6227688Z             {
2026-06-06T06:01:02.6228288Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.6228710Z               "line": 74
2026-06-06T06:01:02.6229113Z             },
2026-06-06T06:01:02.6229543Z             {
2026-06-06T06:01:02.6230150Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.6230581Z               "line": 96
2026-06-06T06:01:02.6230975Z             },
2026-06-06T06:01:02.6231389Z             {
2026-06-06T06:01:02.6231968Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.6232396Z               "line": 81
2026-06-06T06:01:02.6232800Z             },
2026-06-06T06:01:02.6233379Z             {
2026-06-06T06:01:02.6233993Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-06T06:01:02.6234425Z               "line": 118
2026-06-06T06:01:02.6234834Z             }
2026-06-06T06:01:02.6235231Z           ]
2026-06-06T06:01:02.6235638Z         },
2026-06-06T06:01:02.6236052Z         "int": {
2026-06-06T06:01:02.6236507Z           "complete": false,
2026-06-06T06:01:02.6236990Z           "evidence": []
2026-06-06T06:01:02.6237389Z         },
2026-06-06T06:01:02.6237808Z         "unit": {
2026-06-06T06:01:02.6238255Z           "complete": true,
2026-06-06T06:01:02.6238812Z           "evidence": [
2026-06-06T06:01:02.6239259Z             {
2026-06-06T06:01:02.6239859Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-06T06:01:02.6240302Z               "line": 203
2026-06-06T06:01:02.6240703Z             },
2026-06-06T06:01:02.6241109Z             {
2026-06-06T06:01:02.6241695Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.6242145Z               "line": 232
2026-06-06T06:01:02.6242540Z             }
2026-06-06T06:01:02.6242951Z           ]
2026-06-06T06:01:02.6243357Z         }
2026-06-06T06:01:02.6243751Z       }
2026-06-06T06:01:02.6244158Z     },
2026-06-06T06:01:02.6244549Z     {
2026-06-06T06:01:02.6244992Z       "id": "REQ-INST-3",
2026-06-06T06:01:02.6245780Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-06T06:01:02.6246243Z       "requiredStages": [
2026-06-06T06:01:02.6246660Z         "doc",
2026-06-06T06:01:02.6247060Z         "impl",
2026-06-06T06:01:02.6247468Z         "unit"
2026-06-06T06:01:02.6247870Z       ],
2026-06-06T06:01:02.6248293Z       "stages": {
2026-06-06T06:01:02.6248701Z         "doc": {
2026-06-06T06:01:02.6249187Z           "complete": true,
2026-06-06T06:01:02.6249629Z           "evidence": [
2026-06-06T06:01:02.6250032Z             {
2026-06-06T06:01:02.6250599Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-06T06:01:02.6251022Z               "line": 3
2026-06-06T06:01:02.6255739Z             }
2026-06-06T06:01:02.6256225Z           ]
2026-06-06T06:01:02.6256629Z         },
2026-06-06T06:01:02.6257055Z         "impl": {
2026-06-06T06:01:02.6257513Z           "complete": true,
2026-06-06T06:01:02.6257950Z           "evidence": [
2026-06-06T06:01:02.6258343Z             {
2026-06-06T06:01:02.6258973Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.6259485Z               "line": 70
2026-06-06T06:01:02.6259904Z             },
2026-06-06T06:01:02.6260311Z             {
2026-06-06T06:01:02.6260975Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.6261416Z               "line": 422
2026-06-06T06:01:02.6261815Z             },
2026-06-06T06:01:02.6262218Z             {
2026-06-06T06:01:02.6262862Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6263302Z               "line": 197
2026-06-06T06:01:02.6263707Z             },
2026-06-06T06:01:02.6264108Z             {
2026-06-06T06:01:02.6264770Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6265197Z               "line": 272
2026-06-06T06:01:02.6265608Z             },
2026-06-06T06:01:02.6266008Z             {
2026-06-06T06:01:02.6266655Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6267096Z               "line": 301
2026-06-06T06:01:02.6267499Z             },
2026-06-06T06:01:02.6267903Z             {
2026-06-06T06:01:02.6268542Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-06T06:01:02.6268985Z               "line": 234
2026-06-06T06:01:02.6269429Z             },
2026-06-06T06:01:02.6269838Z             {
2026-06-06T06:01:02.6270529Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6270958Z               "line": 171
2026-06-06T06:01:02.6271360Z             },
2026-06-06T06:01:02.6271754Z             {
2026-06-06T06:01:02.6272440Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6273178Z               "line": 278
2026-06-06T06:01:02.6273643Z             },
2026-06-06T06:01:02.6274075Z             {
2026-06-06T06:01:02.6274750Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6275236Z               "line": 45
2026-06-06T06:01:02.6275666Z             },
2026-06-06T06:01:02.6276116Z             {
2026-06-06T06:01:02.6276796Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6277265Z               "line": 114
2026-06-06T06:01:02.6277696Z             },
2026-06-06T06:01:02.6278120Z             {
2026-06-06T06:01:02.6279061Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6279816Z               "line": 152
2026-06-06T06:01:02.6280422Z             },
2026-06-06T06:01:02.6280862Z             {
2026-06-06T06:01:02.6281548Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6282027Z               "line": 168
2026-06-06T06:01:02.6282461Z             },
2026-06-06T06:01:02.6282900Z             {
2026-06-06T06:01:02.6283598Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6284089Z               "line": 178
2026-06-06T06:01:02.6284531Z             },
2026-06-06T06:01:02.6284946Z             {
2026-06-06T06:01:02.6285623Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6286075Z               "line": 210
2026-06-06T06:01:02.6286514Z             },
2026-06-06T06:01:02.6286921Z             {
2026-06-06T06:01:02.6287560Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6288010Z               "line": 283
2026-06-06T06:01:02.6288433Z             },
2026-06-06T06:01:02.6288842Z             {
2026-06-06T06:01:02.6289694Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6290300Z               "line": 307
2026-06-06T06:01:02.6290820Z             },
2026-06-06T06:01:02.6291231Z             {
2026-06-06T06:01:02.6291875Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6292327Z               "line": 378
2026-06-06T06:01:02.6292743Z             },
2026-06-06T06:01:02.6293143Z             {
2026-06-06T06:01:02.6293787Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6294227Z               "line": 427
2026-06-06T06:01:02.6294649Z             },
2026-06-06T06:01:02.6295075Z             {
2026-06-06T06:01:02.6295737Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-06T06:01:02.6296210Z               "line": 37
2026-06-06T06:01:02.6296657Z             },
2026-06-06T06:01:02.6297086Z             {
2026-06-06T06:01:02.6297787Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6298261Z               "line": 62
2026-06-06T06:01:02.6298694Z             },
2026-06-06T06:01:02.6299117Z             {
2026-06-06T06:01:02.6299785Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.6300232Z               "line": 184
2026-06-06T06:01:02.6300670Z             },
2026-06-06T06:01:02.6301125Z             {
2026-06-06T06:01:02.6301694Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6302175Z               "line": 932
2026-06-06T06:01:02.6302602Z             }
2026-06-06T06:01:02.6303036Z           ]
2026-06-06T06:01:02.6303464Z         },
2026-06-06T06:01:02.6303911Z         "int": {
2026-06-06T06:01:02.6304381Z           "complete": false,
2026-06-06T06:01:02.6304840Z           "evidence": []
2026-06-06T06:01:02.6305266Z         },
2026-06-06T06:01:02.6305704Z         "unit": {
2026-06-06T06:01:02.6306188Z           "complete": true,
2026-06-06T06:01:02.6306674Z           "evidence": [
2026-06-06T06:01:02.6307107Z             {
2026-06-06T06:01:02.6307777Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.6308254Z               "line": 305
2026-06-06T06:01:02.6308681Z             },
2026-06-06T06:01:02.6309087Z             {
2026-06-06T06:01:02.6309836Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6310275Z               "line": 618
2026-06-06T06:01:02.6342362Z             },
2026-06-06T06:01:02.6342780Z             {
2026-06-06T06:01:02.6343439Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6344077Z               "line": 669
2026-06-06T06:01:02.6344506Z             },
2026-06-06T06:01:02.6344941Z             {
2026-06-06T06:01:02.6345647Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6346100Z               "line": 575
2026-06-06T06:01:02.6346522Z             },
2026-06-06T06:01:02.6346942Z             {
2026-06-06T06:01:02.6347906Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6348436Z               "line": 622
2026-06-06T06:01:02.6348922Z             },
2026-06-06T06:01:02.6349471Z             {
2026-06-06T06:01:02.6350232Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6350733Z               "line": 438
2026-06-06T06:01:02.6351192Z             },
2026-06-06T06:01:02.6351646Z             {
2026-06-06T06:01:02.6352391Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6352925Z               "line": 467
2026-06-06T06:01:02.6353387Z             },
2026-06-06T06:01:02.6353834Z             {
2026-06-06T06:01:02.6354497Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6354948Z               "line": 500
2026-06-06T06:01:02.6355374Z             },
2026-06-06T06:01:02.6355785Z             {
2026-06-06T06:01:02.6356437Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6356898Z               "line": 608
2026-06-06T06:01:02.6357325Z             },
2026-06-06T06:01:02.6357745Z             {
2026-06-06T06:01:02.6358379Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6358834Z               "line": 808
2026-06-06T06:01:02.6359316Z             },
2026-06-06T06:01:02.6359880Z             {
2026-06-06T06:01:02.6360513Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6360979Z               "line": 822
2026-06-06T06:01:02.6361395Z             },
2026-06-06T06:01:02.6361800Z             {
2026-06-06T06:01:02.6362445Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6362882Z               "line": 893
2026-06-06T06:01:02.6363300Z             },
2026-06-06T06:01:02.6363708Z             {
2026-06-06T06:01:02.6364286Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.6364728Z               "line": 371
2026-06-06T06:01:02.6365133Z             },
2026-06-06T06:01:02.6365548Z             {
2026-06-06T06:01:02.6366080Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6366541Z               "line": 3415
2026-06-06T06:01:02.6366967Z             }
2026-06-06T06:01:02.6367369Z           ]
2026-06-06T06:01:02.6367780Z         }
2026-06-06T06:01:02.6368185Z       }
2026-06-06T06:01:02.6374956Z     },
2026-06-06T06:01:02.6375477Z     {
2026-06-06T06:01:02.6375963Z       "id": "REQ-INST-4",
2026-06-06T06:01:02.6376987Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-06T06:01:02.6377453Z       "requiredStages": [
2026-06-06T06:01:02.6377879Z         "impl",
2026-06-06T06:01:02.6378299Z         "unit"
2026-06-06T06:01:02.6378705Z       ],
2026-06-06T06:01:02.6379127Z       "stages": {
2026-06-06T06:01:02.6379803Z         "doc": {
2026-06-06T06:01:02.6380446Z           "complete": false,
2026-06-06T06:01:02.6380896Z           "evidence": []
2026-06-06T06:01:02.6381315Z         },
2026-06-06T06:01:02.6381734Z         "impl": {
2026-06-06T06:01:02.6382222Z           "complete": true,
2026-06-06T06:01:02.6382665Z           "evidence": [
2026-06-06T06:01:02.6383088Z             {
2026-06-06T06:01:02.6383751Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6384198Z               "line": 273
2026-06-06T06:01:02.6384625Z             },
2026-06-06T06:01:02.6385024Z             {
2026-06-06T06:01:02.6385671Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6386472Z               "line": 202
2026-06-06T06:01:02.6386895Z             },
2026-06-06T06:01:02.6387318Z             {
2026-06-06T06:01:02.6387943Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6388397Z               "line": 234
2026-06-06T06:01:02.6388824Z             },
2026-06-06T06:01:02.6389282Z             {
2026-06-06T06:01:02.6390124Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6390592Z               "line": 270
2026-06-06T06:01:02.6391024Z             }
2026-06-06T06:01:02.6391437Z           ]
2026-06-06T06:01:02.6392018Z         },
2026-06-06T06:01:02.6392454Z         "int": {
2026-06-06T06:01:02.6392939Z           "complete": false,
2026-06-06T06:01:02.6393398Z           "evidence": []
2026-06-06T06:01:02.6393824Z         },
2026-06-06T06:01:02.6394268Z         "unit": {
2026-06-06T06:01:02.6394740Z           "complete": true,
2026-06-06T06:01:02.6395202Z           "evidence": [
2026-06-06T06:01:02.6395636Z             {
2026-06-06T06:01:02.6396314Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.6396771Z               "line": 664
2026-06-06T06:01:02.6397206Z             },
2026-06-06T06:01:02.6397630Z             {
2026-06-06T06:01:02.6398277Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6398737Z               "line": 518
2026-06-06T06:01:02.6399152Z             },
2026-06-06T06:01:02.6399643Z             {
2026-06-06T06:01:02.6400411Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6400882Z               "line": 583
2026-06-06T06:01:02.6401305Z             },
2026-06-06T06:01:02.6401716Z             {
2026-06-06T06:01:02.6402351Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6402787Z               "line": 650
2026-06-06T06:01:02.6403207Z             }
2026-06-06T06:01:02.6403615Z           ]
2026-06-06T06:01:02.6404027Z         }
2026-06-06T06:01:02.6404436Z       }
2026-06-06T06:01:02.6404843Z     },
2026-06-06T06:01:02.6405250Z     {
2026-06-06T06:01:02.6405701Z       "id": "REQ-INST-5",
2026-06-06T06:01:02.6406705Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-06T06:01:02.6407178Z       "requiredStages": [
2026-06-06T06:01:02.6407603Z         "impl",
2026-06-06T06:01:02.6408037Z         "unit",
2026-06-06T06:01:02.6408444Z         "int"
2026-06-06T06:01:02.6408857Z       ],
2026-06-06T06:01:02.6409315Z       "stages": {
2026-06-06T06:01:02.6409987Z         "doc": {
2026-06-06T06:01:02.6410638Z           "complete": false,
2026-06-06T06:01:02.6411109Z           "evidence": []
2026-06-06T06:01:02.6411521Z         },
2026-06-06T06:01:02.6411939Z         "impl": {
2026-06-06T06:01:02.6412415Z           "complete": true,
2026-06-06T06:01:02.6412854Z           "evidence": [
2026-06-06T06:01:02.6413273Z             {
2026-06-06T06:01:02.6413920Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-06T06:01:02.6414368Z               "line": 39
2026-06-06T06:01:02.6414803Z             },
2026-06-06T06:01:02.6415217Z             {
2026-06-06T06:01:02.6415821Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6416260Z               "line": 68
2026-06-06T06:01:02.6416687Z             },
2026-06-06T06:01:02.6417097Z             {
2026-06-06T06:01:02.6417706Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6418148Z               "line": 93
2026-06-06T06:01:02.6418556Z             },
2026-06-06T06:01:02.6418974Z             {
2026-06-06T06:01:02.6419815Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6420445Z               "line": 160
2026-06-06T06:01:02.6420853Z             },
2026-06-06T06:01:02.6421275Z             {
2026-06-06T06:01:02.6421873Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6422313Z               "line": 271
2026-06-06T06:01:02.6422727Z             }
2026-06-06T06:01:02.6423133Z           ]
2026-06-06T06:01:02.6423550Z         },
2026-06-06T06:01:02.6424123Z         "int": {
2026-06-06T06:01:02.6424596Z           "complete": true,
2026-06-06T06:01:02.6425040Z           "evidence": [
2026-06-06T06:01:02.6425443Z             {
2026-06-06T06:01:02.6426111Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.6426549Z               "line": 142
2026-06-06T06:01:02.6426968Z             },
2026-06-06T06:01:02.6427369Z             {
2026-06-06T06:01:02.6428053Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-06T06:01:02.6428507Z               "line": 102
2026-06-06T06:01:02.6429042Z             },
2026-06-06T06:01:02.6429713Z             {
2026-06-06T06:01:02.6430381Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6430851Z               "line": 584
2026-06-06T06:01:02.6431296Z             },
2026-06-06T06:01:02.6431716Z             {
2026-06-06T06:01:02.6432400Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6432853Z               "line": 846
2026-06-06T06:01:02.6433300Z             }
2026-06-06T06:01:02.6433727Z           ]
2026-06-06T06:01:02.6434164Z         },
2026-06-06T06:01:02.6434597Z         "unit": {
2026-06-06T06:01:02.6435084Z           "complete": true,
2026-06-06T06:01:02.6435549Z           "evidence": [
2026-06-06T06:01:02.6435969Z             {
2026-06-06T06:01:02.6436602Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6437056Z               "line": 461
2026-06-06T06:01:02.6437492Z             },
2026-06-06T06:01:02.6437928Z             {
2026-06-06T06:01:02.6438558Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.6439029Z               "line": 495
2026-06-06T06:01:02.6439498Z             },
2026-06-06T06:01:02.6440072Z             {
2026-06-06T06:01:02.6440900Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.6442599Z               "line": 199
2026-06-06T06:01:02.6443800Z             }
2026-06-06T06:01:02.6444802Z           ]
2026-06-06T06:01:02.6445841Z         }
2026-06-06T06:01:02.6446845Z       }
2026-06-06T06:01:02.6447817Z     },
2026-06-06T06:01:02.6448777Z     {
2026-06-06T06:01:02.6449870Z       "id": "REQ-INST-6",
2026-06-06T06:01:02.6451737Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-06T06:01:02.6453863Z       "requiredStages": [
2026-06-06T06:01:02.6467166Z         "impl",
2026-06-06T06:01:02.6468206Z         "unit",
2026-06-06T06:01:02.6469241Z         "int"
2026-06-06T06:01:02.6470505Z       ],
2026-06-06T06:01:02.6471440Z       "stages": {
2026-06-06T06:01:02.6472471Z         "doc": {
2026-06-06T06:01:02.6473517Z           "complete": true,
2026-06-06T06:01:02.6474699Z           "evidence": [
2026-06-06T06:01:02.6475846Z             {
2026-06-06T06:01:02.6477091Z               "path": "docs/DEFERRED.md",
2026-06-06T06:01:02.6478602Z               "line": 13
2026-06-06T06:01:02.6479721Z             }
2026-06-06T06:01:02.6480664Z           ]
2026-06-06T06:01:02.6481579Z         },
2026-06-06T06:01:02.6482530Z         "impl": {
2026-06-06T06:01:02.6483548Z           "complete": true,
2026-06-06T06:01:02.6484703Z           "evidence": [
2026-06-06T06:01:02.6485757Z             {
2026-06-06T06:01:02.6486937Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.6488461Z               "line": 363
2026-06-06T06:01:02.6489578Z             },
2026-06-06T06:01:02.6490525Z             {
2026-06-06T06:01:02.6491697Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-06T06:01:02.6493227Z               "line": 27
2026-06-06T06:01:02.6494318Z             },
2026-06-06T06:01:02.6495267Z             {
2026-06-06T06:01:02.6496438Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-06T06:01:02.6497950Z               "line": 73
2026-06-06T06:01:02.6499022Z             },
2026-06-06T06:01:02.6500005Z             {
2026-06-06T06:01:02.6501183Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-06T06:01:02.6502709Z               "line": 165
2026-06-06T06:01:02.6504176Z             },
2026-06-06T06:01:02.6505135Z             {
2026-06-06T06:01:02.6506293Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6507799Z               "line": 415
2026-06-06T06:01:02.6508887Z             },
2026-06-06T06:01:02.6509876Z             {
2026-06-06T06:01:02.6511003Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-06T06:01:02.6512488Z               "line": 31
2026-06-06T06:01:02.6513567Z             },
2026-06-06T06:01:02.6514521Z             {
2026-06-06T06:01:02.6515832Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.6517326Z               "line": 168
2026-06-06T06:01:02.6518408Z             },
2026-06-06T06:01:02.6519389Z             {
2026-06-06T06:01:02.6520614Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.6522072Z               "line": 81
2026-06-06T06:01:02.6523161Z             },
2026-06-06T06:01:02.6524107Z             {
2026-06-06T06:01:02.6525196Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.6526599Z               "line": 933
2026-06-06T06:01:02.6527692Z             },
2026-06-06T06:01:02.6528647Z             {
2026-06-06T06:01:02.6529764Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.6531210Z               "line": 161
2026-06-06T06:01:02.6532312Z             },
2026-06-06T06:01:02.6533271Z             {
2026-06-06T06:01:02.6534363Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.6535802Z               "line": 190
2026-06-06T06:01:02.6536885Z             }
2026-06-06T06:01:02.6537831Z           ]
2026-06-06T06:01:02.6538745Z         },
2026-06-06T06:01:02.6539704Z         "int": {
2026-06-06T06:01:02.6540725Z           "complete": true,
2026-06-06T06:01:02.6541887Z           "evidence": [
2026-06-06T06:01:02.6542946Z             {
2026-06-06T06:01:02.6544129Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6545664Z               "line": 594
2026-06-06T06:01:02.6546770Z             },
2026-06-06T06:01:02.6547717Z             {
2026-06-06T06:01:02.6548900Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6550464Z               "line": 880
2026-06-06T06:01:02.6551568Z             },
2026-06-06T06:01:02.6552531Z             {
2026-06-06T06:01:02.6553627Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.6555068Z               "line": 549
2026-06-06T06:01:02.6556160Z             }
2026-06-06T06:01:02.6557103Z           ]
2026-06-06T06:01:02.6567068Z         },
2026-06-06T06:01:02.6568586Z         "unit": {
2026-06-06T06:01:02.6569798Z           "complete": true,
2026-06-06T06:01:02.6571184Z           "evidence": [
2026-06-06T06:01:02.6572435Z             {
2026-06-06T06:01:02.6573720Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.6575309Z               "line": 595
2026-06-06T06:01:02.6576531Z             },
2026-06-06T06:01:02.6577505Z             {
2026-06-06T06:01:02.6579528Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.6581606Z               "line": 783
2026-06-06T06:01:02.6582874Z             },
2026-06-06T06:01:02.6584086Z             {
2026-06-06T06:01:02.6585488Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-06T06:01:02.6587045Z               "line": 62
2026-06-06T06:01:02.6588181Z             },
2026-06-06T06:01:02.6589288Z             {
2026-06-06T06:01:02.6590585Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.6592258Z               "line": 252
2026-06-06T06:01:02.6593499Z             },
2026-06-06T06:01:02.6594508Z             {
2026-06-06T06:01:02.6595685Z               "path": "crates/spt/src/api/worker.rs",
2026-06-06T06:01:02.6597212Z               "line": 192
2026-06-06T06:01:02.6598370Z             }
2026-06-06T06:01:02.6599583Z           ]
2026-06-06T06:01:02.6600513Z         }
2026-06-06T06:01:02.6601443Z       }
2026-06-06T06:01:02.6602346Z     },
2026-06-06T06:01:02.6604485Z     {
2026-06-06T06:01:02.6605563Z       "id": "REQ-INST-7",
2026-06-06T06:01:02.6607063Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-06T06:01:02.6608782Z       "requiredStages": [
2026-06-06T06:01:02.6610019Z         "impl",
2026-06-06T06:01:02.6611050Z         "unit",
2026-06-06T06:01:02.6612065Z         "int"
2026-06-06T06:01:02.6613058Z       ],
2026-06-06T06:01:02.6614013Z       "stages": {
2026-06-06T06:01:02.6615050Z         "doc": {
2026-06-06T06:01:02.6616122Z           "complete": false,
2026-06-06T06:01:02.6617753Z           "evidence": []
2026-06-06T06:01:02.6619358Z         },
2026-06-06T06:01:02.6620392Z         "impl": {
2026-06-06T06:01:02.6621484Z           "complete": true,
2026-06-06T06:01:02.6622699Z           "evidence": [
2026-06-06T06:01:02.6623817Z             {
2026-06-06T06:01:02.6625047Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.6626644Z               "line": 398
2026-06-06T06:01:02.6627789Z             },
2026-06-06T06:01:02.6628808Z             {
2026-06-06T06:01:02.6630210Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-06T06:01:02.6631730Z               "line": 40
2026-06-06T06:01:02.6632820Z             },
2026-06-06T06:01:02.6633800Z             {
2026-06-06T06:01:02.6635027Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6636594Z               "line": 27
2026-06-06T06:01:02.6637676Z             },
2026-06-06T06:01:02.6638634Z             {
2026-06-06T06:01:02.6640218Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6641829Z               "line": 144
2026-06-06T06:01:02.6642967Z             },
2026-06-06T06:01:02.6643949Z             {
2026-06-06T06:01:02.6645183Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6646771Z               "line": 231
2026-06-06T06:01:02.6647883Z             },
2026-06-06T06:01:02.6648856Z             {
2026-06-06T06:01:02.6650250Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-06T06:01:02.6651823Z               "line": 56
2026-06-06T06:01:02.6652946Z             },
2026-06-06T06:01:02.6653958Z             {
2026-06-06T06:01:02.6655191Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6656773Z               "line": 41
2026-06-06T06:01:02.6657899Z             },
2026-06-06T06:01:02.6658896Z             {
2026-06-06T06:01:02.6660327Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6661876Z               "line": 27
2026-06-06T06:01:02.6662965Z             },
2026-06-06T06:01:02.6663948Z             {
2026-06-06T06:01:02.6665175Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6666726Z               "line": 59
2026-06-06T06:01:02.6667813Z             },
2026-06-06T06:01:02.6676757Z             {
2026-06-06T06:01:02.6678034Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6679995Z               "line": 68
2026-06-06T06:01:02.6681131Z             },
2026-06-06T06:01:02.6682104Z             {
2026-06-06T06:01:02.6683309Z               "path": "crates/spt-store/src/registry.rs",
2026-06-06T06:01:02.6684841Z               "line": 129
2026-06-06T06:01:02.6685944Z             }
2026-06-06T06:01:02.6686912Z           ]
2026-06-06T06:01:02.6687848Z         },
2026-06-06T06:01:02.6688776Z         "int": {
2026-06-06T06:01:02.6690235Z           "complete": true,
2026-06-06T06:01:02.6691416Z           "evidence": [
2026-06-06T06:01:02.6692485Z             {
2026-06-06T06:01:02.6693732Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-06T06:01:02.6695315Z               "line": 102
2026-06-06T06:01:02.6696424Z             },
2026-06-06T06:01:02.6697387Z             {
2026-06-06T06:01:02.6698581Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6700462Z               "line": 548
2026-06-06T06:01:02.6701569Z             },
2026-06-06T06:01:02.6702541Z             {
2026-06-06T06:01:02.6704102Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6705649Z               "line": 762
2026-06-06T06:01:02.6706753Z             }
2026-06-06T06:01:02.6707706Z           ]
2026-06-06T06:01:02.6708641Z         },
2026-06-06T06:01:02.6709919Z         "unit": {
2026-06-06T06:01:02.6710967Z           "complete": true,
2026-06-06T06:01:02.6712132Z           "evidence": [
2026-06-06T06:01:02.6713215Z             {
2026-06-06T06:01:02.6714459Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6716043Z               "line": 458
2026-06-06T06:01:02.6717313Z             },
2026-06-06T06:01:02.6718302Z             {
2026-06-06T06:01:02.6719589Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.6721185Z               "line": 668
2026-06-06T06:01:02.6722278Z             },
2026-06-06T06:01:02.6723237Z             {
2026-06-06T06:01:02.6724475Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-06T06:01:02.6726066Z               "line": 83
2026-06-06T06:01:02.6727161Z             },
2026-06-06T06:01:02.6728132Z             {
2026-06-06T06:01:02.6729360Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6730898Z               "line": 611
2026-06-06T06:01:02.6732002Z             },
2026-06-06T06:01:02.6732965Z             {
2026-06-06T06:01:02.6734175Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6735720Z               "line": 622
2026-06-06T06:01:02.6736824Z             },
2026-06-06T06:01:02.6737797Z             {
2026-06-06T06:01:02.6738994Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6740582Z               "line": 631
2026-06-06T06:01:02.6741692Z             },
2026-06-06T06:01:02.6742653Z             {
2026-06-06T06:01:02.6743872Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6745432Z               "line": 90
2026-06-06T06:01:02.6746514Z             },
2026-06-06T06:01:02.6747488Z             {
2026-06-06T06:01:02.6748684Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6750278Z               "line": 105
2026-06-06T06:01:02.6751388Z             },
2026-06-06T06:01:02.6752347Z             {
2026-06-06T06:01:02.6753544Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-06T06:01:02.6755103Z               "line": 131
2026-06-06T06:01:02.6756212Z             }
2026-06-06T06:01:02.6757165Z           ]
2026-06-06T06:01:02.6758091Z         }
2026-06-06T06:01:02.6759006Z       }
2026-06-06T06:01:02.6759944Z     },
2026-06-06T06:01:02.6760872Z     {
2026-06-06T06:01:02.6761824Z       "id": "REQ-INST-8",
2026-06-06T06:01:02.6763366Z       "title": "Remote-control mode distinct from local operation",
2026-06-06T06:01:02.6765131Z       "requiredStages": [
2026-06-06T06:01:02.6766264Z         "impl",
2026-06-06T06:01:02.6767238Z         "unit",
2026-06-06T06:01:02.6768214Z         "int"
2026-06-06T06:01:02.6769203Z       ],
2026-06-06T06:01:02.6770144Z       "stages": {
2026-06-06T06:01:02.6771143Z         "doc": {
2026-06-06T06:01:02.6772188Z           "complete": false,
2026-06-06T06:01:02.6779069Z           "evidence": []
2026-06-06T06:01:02.6780383Z         },
2026-06-06T06:01:02.6781313Z         "impl": {
2026-06-06T06:01:02.6782363Z           "complete": true,
2026-06-06T06:01:02.6783531Z           "evidence": [
2026-06-06T06:01:02.6784597Z             {
2026-06-06T06:01:02.6785764Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.6787267Z               "line": 98
2026-06-06T06:01:02.6788393Z             },
2026-06-06T06:01:02.6789397Z             {
2026-06-06T06:01:02.6790570Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.6792083Z               "line": 202
2026-06-06T06:01:02.6793178Z             },
2026-06-06T06:01:02.6794130Z             {
2026-06-06T06:01:02.6795288Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.6796799Z               "line": 220
2026-06-06T06:01:02.6798173Z             },
2026-06-06T06:01:02.6799150Z             {
2026-06-06T06:01:02.6800349Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-06T06:01:02.6801865Z               "line": 35
2026-06-06T06:01:02.6802952Z             }
2026-06-06T06:01:02.6803909Z           ]
2026-06-06T06:01:02.6804840Z         },
2026-06-06T06:01:02.6805765Z         "int": {
2026-06-06T06:01:02.6806789Z           "complete": true,
2026-06-06T06:01:02.6807968Z           "evidence": [
2026-06-06T06:01:02.6809035Z             {
2026-06-06T06:01:02.6810427Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.6812016Z               "line": 375
2026-06-06T06:01:02.6813112Z             },
2026-06-06T06:01:02.6814074Z             {
2026-06-06T06:01:02.6815264Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.6816789Z               "line": 811
2026-06-06T06:01:02.6817879Z             }
2026-06-06T06:01:02.6818844Z           ]
2026-06-06T06:01:02.6819840Z         },
2026-06-06T06:01:02.6820769Z         "unit": {
2026-06-06T06:01:02.6821809Z           "complete": true,
2026-06-06T06:01:02.6822967Z           "evidence": [
2026-06-06T06:01:02.6824031Z             {
2026-06-06T06:01:02.6825209Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-06T06:01:02.6826732Z               "line": 172
2026-06-06T06:01:02.6827840Z             },
2026-06-06T06:01:02.6828802Z             {
2026-06-06T06:01:02.6830027Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-06T06:01:02.6831544Z               "line": 226
2026-06-06T06:01:02.6832658Z             },
2026-06-06T06:01:02.6833625Z             {
2026-06-06T06:01:02.6834784Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-06T06:01:02.6836288Z               "line": 70
2026-06-06T06:01:02.6837377Z             },
2026-06-06T06:01:02.6838348Z             {
2026-06-06T06:01:02.6839553Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-06T06:01:02.6841073Z               "line": 101
2026-06-06T06:01:02.6842174Z             }
2026-06-06T06:01:02.6843125Z           ]
2026-06-06T06:01:02.6844050Z         }
2026-06-06T06:01:02.6844958Z       }
2026-06-06T06:01:02.6845847Z     },
2026-06-06T06:01:02.6846756Z     {
2026-06-06T06:01:02.6847699Z       "id": "REQ-INST-9",
2026-06-06T06:01:02.6849454Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-06T06:01:02.6851445Z       "requiredStages": [
2026-06-06T06:01:02.6852579Z         "impl",
2026-06-06T06:01:02.6853570Z         "unit"
2026-06-06T06:01:02.6854543Z       ],
2026-06-06T06:01:02.6855513Z       "stages": {
2026-06-06T06:01:02.6856523Z         "doc": {
2026-06-06T06:01:02.6857575Z           "complete": false,
2026-06-06T06:01:02.6858777Z           "evidence": []
2026-06-06T06:01:02.6859913Z         },
2026-06-06T06:01:02.6860859Z         "impl": {
2026-06-06T06:01:02.6861907Z           "complete": true,
2026-06-06T06:01:02.6863072Z           "evidence": [
2026-06-06T06:01:02.6864154Z             {
2026-06-06T06:01:02.6865344Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6866899Z               "line": 291
2026-06-06T06:01:02.6867996Z             }
2026-06-06T06:01:02.6868943Z           ]
2026-06-06T06:01:02.6869913Z         },
2026-06-06T06:01:02.6870844Z         "int": {
2026-06-06T06:01:02.6871879Z           "complete": false,
2026-06-06T06:01:02.6878478Z           "evidence": []
2026-06-06T06:01:02.6879791Z         },
2026-06-06T06:01:02.6880735Z         "unit": {
2026-06-06T06:01:02.6881787Z           "complete": true,
2026-06-06T06:01:02.6882976Z           "evidence": [
2026-06-06T06:01:02.6884047Z             {
2026-06-06T06:01:02.6885235Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6886772Z               "line": 979
2026-06-06T06:01:02.6887867Z             },
2026-06-06T06:01:02.6888827Z             {
2026-06-06T06:01:02.6890041Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6891859Z               "line": 988
2026-06-06T06:01:02.6892964Z             },
2026-06-06T06:01:02.6893937Z             {
2026-06-06T06:01:02.6895116Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6896654Z               "line": 1002
2026-06-06T06:01:02.6897764Z             },
2026-06-06T06:01:02.6899011Z             {
2026-06-06T06:01:02.6900601Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6902308Z               "line": 1012
2026-06-06T06:01:02.6903576Z             },
2026-06-06T06:01:02.6904744Z             {
2026-06-06T06:01:02.6906279Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.6907956Z               "line": 1031
2026-06-06T06:01:02.6909451Z             }
2026-06-06T06:01:02.6910677Z           ]
2026-06-06T06:01:02.6911674Z         }
2026-06-06T06:01:02.6912674Z       }
2026-06-06T06:01:02.6913687Z     },
2026-06-06T06:01:02.6914716Z     {
2026-06-06T06:01:02.6915771Z       "id": "REQ-INSTALL-1",
2026-06-06T06:01:02.6917730Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-06T06:01:02.6920280Z       "requiredStages": [
2026-06-06T06:01:02.6921583Z         "doc",
2026-06-06T06:01:02.6922607Z         "impl",
2026-06-06T06:01:02.6923631Z         "int"
2026-06-06T06:01:02.6924624Z       ],
2026-06-06T06:01:02.6925593Z       "stages": {
2026-06-06T06:01:02.6926627Z         "doc": {
2026-06-06T06:01:02.6927706Z           "complete": true,
2026-06-06T06:01:02.6928909Z           "evidence": [
2026-06-06T06:01:02.6930258Z             {
2026-06-06T06:01:02.6931371Z               "path": "CONTEXT.md",
2026-06-06T06:01:02.6932716Z               "line": 550
2026-06-06T06:01:02.6933883Z             }
2026-06-06T06:01:02.6934886Z           ]
2026-06-06T06:01:02.6935873Z         },
2026-06-06T06:01:02.6936857Z         "impl": {
2026-06-06T06:01:02.6937965Z           "complete": true,
2026-06-06T06:01:02.6939303Z           "evidence": [
2026-06-06T06:01:02.6940597Z             {
2026-06-06T06:01:02.6941793Z               "path": "installer/install.ps1",
2026-06-06T06:01:02.6943284Z               "line": 50
2026-06-06T06:01:02.6944446Z             },
2026-06-06T06:01:02.6945478Z             {
2026-06-06T06:01:02.6946596Z               "path": "installer/install.sh",
2026-06-06T06:01:02.6948046Z               "line": 49
2026-06-06T06:01:02.6949262Z             }
2026-06-06T06:01:02.6950592Z           ]
2026-06-06T06:01:02.6951544Z         },
2026-06-06T06:01:02.6952510Z         "int": {
2026-06-06T06:01:02.6953629Z           "complete": true,
2026-06-06T06:01:02.6954955Z           "evidence": [
2026-06-06T06:01:02.6956116Z             {
2026-06-06T06:01:02.6957332Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-06T06:01:02.6958908Z               "line": 21
2026-06-06T06:01:02.6960420Z             }
2026-06-06T06:01:02.6961430Z           ]
2026-06-06T06:01:02.6962418Z         },
2026-06-06T06:01:02.6963387Z         "unit": {
2026-06-06T06:01:02.6964448Z           "complete": false,
2026-06-06T06:01:02.6965694Z           "evidence": []
2026-06-06T06:01:02.6966839Z         }
2026-06-06T06:01:02.6967793Z       }
2026-06-06T06:01:02.6968752Z     },
2026-06-06T06:01:02.6970256Z     {
2026-06-06T06:01:02.6971577Z       "id": "REQ-INSTALL-2",
2026-06-06T06:01:02.6973364Z       "title": "Marketplace-repackaging-friendly install",
2026-06-06T06:01:02.6975233Z       "requiredStages": [
2026-06-06T06:01:02.6976490Z         "doc"
2026-06-06T06:01:02.6977532Z       ],
2026-06-06T06:01:02.6978552Z       "stages": {
2026-06-06T06:01:02.6987489Z         "doc": {
2026-06-06T06:01:02.6988852Z           "complete": true,
2026-06-06T06:01:02.6990245Z           "evidence": [
2026-06-06T06:01:02.6992315Z             {
2026-06-06T06:01:02.6993716Z               "path": "CONTEXT.md",
2026-06-06T06:01:02.6995148Z               "line": 551
2026-06-06T06:01:02.6996361Z             }
2026-06-06T06:01:02.6997426Z           ]
2026-06-06T06:01:02.6998432Z         },
2026-06-06T06:01:02.7000083Z         "impl": {
2026-06-06T06:01:02.7001213Z           "complete": false,
2026-06-06T06:01:02.7002579Z           "evidence": []
2026-06-06T06:01:02.7003761Z         },
2026-06-06T06:01:02.7004746Z         "int": {
2026-06-06T06:01:02.7005858Z           "complete": false,
2026-06-06T06:01:02.7007130Z           "evidence": []
2026-06-06T06:01:02.7008358Z         },
2026-06-06T06:01:02.7009470Z         "unit": {
2026-06-06T06:01:02.7010757Z           "complete": false,
2026-06-06T06:01:02.7012030Z           "evidence": []
2026-06-06T06:01:02.7013177Z         }
2026-06-06T06:01:02.7014474Z       }
2026-06-06T06:01:02.7015483Z     },
2026-06-06T06:01:02.7016444Z     {
2026-06-06T06:01:02.7017463Z       "id": "REQ-INSTALL-3",
2026-06-06T06:01:02.7019056Z       "title": "Idempotent + interactive-optional first run",
2026-06-06T06:01:02.7021185Z       "requiredStages": [
2026-06-06T06:01:02.7022376Z         "impl",
2026-06-06T06:01:02.7023402Z         "int"
2026-06-06T06:01:02.7024416Z       ],
2026-06-06T06:01:02.7025446Z       "stages": {
2026-06-06T06:01:02.7026552Z         "doc": {
2026-06-06T06:01:02.7027678Z           "complete": false,
2026-06-06T06:01:02.7028936Z           "evidence": []
2026-06-06T06:01:02.7030322Z         },
2026-06-06T06:01:02.7031351Z         "impl": {
2026-06-06T06:01:02.7032496Z           "complete": true,
2026-06-06T06:01:02.7033771Z           "evidence": [
2026-06-06T06:01:02.7034981Z             {
2026-06-06T06:01:02.7036195Z               "path": "installer/install.ps1",
2026-06-06T06:01:02.7037717Z               "line": 93
2026-06-06T06:01:02.7038899Z             },
2026-06-06T06:01:02.7040180Z             {
2026-06-06T06:01:02.7041305Z               "path": "installer/install.sh",
2026-06-06T06:01:02.7042777Z               "line": 76
2026-06-06T06:01:02.7043913Z             }
2026-06-06T06:01:02.7044947Z           ]
2026-06-06T06:01:02.7045937Z         },
2026-06-06T06:01:02.7046884Z         "int": {
2026-06-06T06:01:02.7047980Z           "complete": true,
2026-06-06T06:01:02.7049484Z           "evidence": [
2026-06-06T06:01:02.7050966Z             {
2026-06-06T06:01:02.7052229Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-06T06:01:02.7053837Z               "line": 152
2026-06-06T06:01:02.7054976Z             }
2026-06-06T06:01:02.7055983Z           ]
2026-06-06T06:01:02.7056972Z         },
2026-06-06T06:01:02.7057979Z         "unit": {
2026-06-06T06:01:02.7059104Z           "complete": false,
2026-06-06T06:01:02.7060790Z           "evidence": []
2026-06-06T06:01:02.7061937Z         }
2026-06-06T06:01:02.7062913Z       }
2026-06-06T06:01:02.7063895Z     },
2026-06-06T06:01:02.7064873Z     {
2026-06-06T06:01:02.7067032Z       "id": "REQ-INSTALL-4",
2026-06-06T06:01:02.7072511Z       "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-06T06:01:02.7078118Z       "requiredStages": [
2026-06-06T06:01:02.7079514Z         "impl",
2026-06-06T06:01:02.7080586Z         "unit"
2026-06-06T06:01:02.7081668Z       ],
2026-06-06T06:01:02.7082654Z       "stages": {
2026-06-06T06:01:02.7083715Z         "doc": {
2026-06-06T06:01:02.7084840Z           "complete": false,
2026-06-06T06:01:02.7086133Z           "evidence": []
2026-06-06T06:01:02.7087295Z         },
2026-06-06T06:01:02.7088304Z         "impl": {
2026-06-06T06:01:02.7089519Z           "complete": true,
2026-06-06T06:01:02.7090773Z           "evidence": [
2026-06-06T06:01:02.7091907Z             {
2026-06-06T06:01:02.7093276Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.7094996Z               "line": 149
2026-06-06T06:01:02.7096186Z             },
2026-06-06T06:01:02.7104868Z             {
2026-06-06T06:01:02.7106211Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7107884Z               "line": 29
2026-06-06T06:01:02.7109064Z             },
2026-06-06T06:01:02.7110679Z             {
2026-06-06T06:01:02.7111363Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7111837Z               "line": 117
2026-06-06T06:01:02.7112275Z             },
2026-06-06T06:01:02.7112707Z             {
2026-06-06T06:01:02.7113395Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7113871Z               "line": 161
2026-06-06T06:01:02.7114333Z             },
2026-06-06T06:01:02.7114773Z             {
2026-06-06T06:01:02.7115474Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7116194Z               "line": 191
2026-06-06T06:01:02.7116670Z             },
2026-06-06T06:01:02.7117117Z             {
2026-06-06T06:01:02.7117795Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7118268Z               "line": 223
2026-06-06T06:01:02.7118703Z             },
2026-06-06T06:01:02.7119146Z             {
2026-06-06T06:01:02.7119817Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7120316Z               "line": 2331
2026-06-06T06:01:02.7120757Z             }
2026-06-06T06:01:02.7121188Z           ]
2026-06-06T06:01:02.7121626Z         },
2026-06-06T06:01:02.7122065Z         "int": {
2026-06-06T06:01:02.7122564Z           "complete": false,
2026-06-06T06:01:02.7123059Z           "evidence": []
2026-06-06T06:01:02.7123501Z         },
2026-06-06T06:01:02.7123957Z         "unit": {
2026-06-06T06:01:02.7124441Z           "complete": true,
2026-06-06T06:01:02.7124917Z           "evidence": [
2026-06-06T06:01:02.7125350Z             {
2026-06-06T06:01:02.7126131Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.7126663Z               "line": 311
2026-06-06T06:01:02.7127138Z             },
2026-06-06T06:01:02.7127594Z             {
2026-06-06T06:01:02.7128302Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7128805Z               "line": 269
2026-06-06T06:01:02.7129315Z             },
2026-06-06T06:01:02.7129815Z             {
2026-06-06T06:01:02.7130549Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7131040Z               "line": 304
2026-06-06T06:01:02.7131493Z             },
2026-06-06T06:01:02.7131927Z             {
2026-06-06T06:01:02.7132640Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-06T06:01:02.7133138Z               "line": 321
2026-06-06T06:01:02.7133613Z             },
2026-06-06T06:01:02.7134078Z             {
2026-06-06T06:01:02.7134663Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7135166Z               "line": 3545
2026-06-06T06:01:02.7135602Z             }
2026-06-06T06:01:02.7136053Z           ]
2026-06-06T06:01:02.7136491Z         }
2026-06-06T06:01:02.7136930Z       }
2026-06-06T06:01:02.7137361Z     },
2026-06-06T06:01:02.7137784Z     {
2026-06-06T06:01:02.7138289Z       "id": "REQ-INSTALL-5",
2026-06-06T06:01:02.7141668Z       "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-06T06:01:02.7142225Z       "requiredStages": [
2026-06-06T06:01:02.7142700Z         "impl",
2026-06-06T06:01:02.7143136Z         "int"
2026-06-06T06:01:02.7143573Z       ],
2026-06-06T06:01:02.7144003Z       "stages": {
2026-06-06T06:01:02.7144453Z         "doc": {
2026-06-06T06:01:02.7144935Z           "complete": false,
2026-06-06T06:01:02.7145408Z           "evidence": []
2026-06-06T06:01:02.7145841Z         },
2026-06-06T06:01:02.7146293Z         "impl": {
2026-06-06T06:01:02.7146797Z           "complete": true,
2026-06-06T06:01:02.7148271Z           "evidence": [
2026-06-06T06:01:02.7148780Z             {
2026-06-06T06:01:02.7149571Z               "path": "installer/install.ps1",
2026-06-06T06:01:02.7150026Z               "line": 5
2026-06-06T06:01:02.7150457Z             },
2026-06-06T06:01:02.7150876Z             {
2026-06-06T06:01:02.7151435Z               "path": "installer/install.sh",
2026-06-06T06:01:02.7152238Z               "line": 6
2026-06-06T06:01:02.7152674Z             }
2026-06-06T06:01:02.7153081Z           ]
2026-06-06T06:01:02.7153508Z         },
2026-06-06T06:01:02.7153961Z         "int": {
2026-06-06T06:01:02.7154434Z           "complete": true,
2026-06-06T06:01:02.7154905Z           "evidence": [
2026-06-06T06:01:02.7155330Z             {
2026-06-06T06:01:02.7156004Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-06T06:01:02.7156473Z               "line": 22
2026-06-06T06:01:02.7156919Z             }
2026-06-06T06:01:02.7157358Z           ]
2026-06-06T06:01:02.7158015Z         },
2026-06-06T06:01:02.7158505Z         "unit": {
2026-06-06T06:01:02.7158993Z           "complete": false,
2026-06-06T06:01:02.7159680Z           "evidence": []
2026-06-06T06:01:02.7160416Z         }
2026-06-06T06:01:02.7160858Z       }
2026-06-06T06:01:02.7161284Z     },
2026-06-06T06:01:02.7161697Z     {
2026-06-06T06:01:02.7162196Z       "id": "REQ-MANIFEST-1",
2026-06-06T06:01:02.7163314Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-06T06:01:02.7163822Z       "requiredStages": [
2026-06-06T06:01:02.7164261Z         "doc",
2026-06-06T06:01:02.7164709Z         "impl",
2026-06-06T06:01:02.7165160Z         "unit"
2026-06-06T06:01:02.7165585Z       ],
2026-06-06T06:01:02.7166043Z       "stages": {
2026-06-06T06:01:02.7166483Z         "doc": {
2026-06-06T06:01:02.7166978Z           "complete": true,
2026-06-06T06:01:02.7167433Z           "evidence": [
2026-06-06T06:01:02.7167867Z             {
2026-06-06T06:01:02.7168416Z               "path": "docs/MANIFEST.md",
2026-06-06T06:01:02.7168876Z               "line": 19
2026-06-06T06:01:02.7169519Z             }
2026-06-06T06:01:02.7170094Z           ]
2026-06-06T06:01:02.7170528Z         },
2026-06-06T06:01:02.7170986Z         "impl": {
2026-06-06T06:01:02.7171491Z           "complete": true,
2026-06-06T06:01:02.7171946Z           "evidence": [
2026-06-06T06:01:02.7172393Z             {
2026-06-06T06:01:02.7173096Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7173536Z               "line": 18
2026-06-06T06:01:02.7173978Z             }
2026-06-06T06:01:02.7174401Z           ]
2026-06-06T06:01:02.7174837Z         },
2026-06-06T06:01:02.7175264Z         "int": {
2026-06-06T06:01:02.7175766Z           "complete": false,
2026-06-06T06:01:02.7176231Z           "evidence": []
2026-06-06T06:01:02.7176647Z         },
2026-06-06T06:01:02.7177092Z         "unit": {
2026-06-06T06:01:02.7177554Z           "complete": true,
2026-06-06T06:01:02.7178012Z           "evidence": [
2026-06-06T06:01:02.7178440Z             {
2026-06-06T06:01:02.7179149Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7179865Z               "line": 746
2026-06-06T06:01:02.7180450Z             },
2026-06-06T06:01:02.7180884Z             {
2026-06-06T06:01:02.7181542Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7181998Z               "line": 842
2026-06-06T06:01:02.7182430Z             },
2026-06-06T06:01:02.7182842Z             {
2026-06-06T06:01:02.7183505Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7183959Z               "line": 854
2026-06-06T06:01:02.7184382Z             },
2026-06-06T06:01:02.7184786Z             {
2026-06-06T06:01:02.7185446Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7185900Z               "line": 862
2026-06-06T06:01:02.7186320Z             },
2026-06-06T06:01:02.7186739Z             {
2026-06-06T06:01:02.7187410Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7187869Z               "line": 879
2026-06-06T06:01:02.7188291Z             },
2026-06-06T06:01:02.7188722Z             {
2026-06-06T06:01:02.7189604Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7190345Z               "line": 893
2026-06-06T06:01:02.7190785Z             },
2026-06-06T06:01:02.7191218Z             {
2026-06-06T06:01:02.7192248Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7201011Z               "line": 908
2026-06-06T06:01:02.7201626Z             },
2026-06-06T06:01:02.7202209Z             {
2026-06-06T06:01:02.7202907Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7203363Z               "line": 923
2026-06-06T06:01:02.7203775Z             },
2026-06-06T06:01:02.7204188Z             {
2026-06-06T06:01:02.7204829Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7205281Z               "line": 938
2026-06-06T06:01:02.7206093Z             },
2026-06-06T06:01:02.7206541Z             {
2026-06-06T06:01:02.7207227Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7207675Z               "line": 949
2026-06-06T06:01:02.7208121Z             }
2026-06-06T06:01:02.7208530Z           ]
2026-06-06T06:01:02.7208954Z         }
2026-06-06T06:01:02.7209461Z       }
2026-06-06T06:01:02.7210069Z     },
2026-06-06T06:01:02.7210528Z     {
2026-06-06T06:01:02.7211020Z       "id": "REQ-MIGRATE-1",
2026-06-06T06:01:02.7212044Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-06T06:01:02.7212554Z       "requiredStages": [],
2026-06-06T06:01:02.7213022Z       "stages": {
2026-06-06T06:01:02.7213476Z         "doc": {
2026-06-06T06:01:02.7213966Z           "complete": false,
2026-06-06T06:01:02.7214443Z           "evidence": []
2026-06-06T06:01:02.7214868Z         },
2026-06-06T06:01:02.7215322Z         "impl": {
2026-06-06T06:01:02.7215805Z           "complete": false,
2026-06-06T06:01:02.7216304Z           "evidence": []
2026-06-06T06:01:02.7216753Z         },
2026-06-06T06:01:02.7217196Z         "int": {
2026-06-06T06:01:02.7217703Z           "complete": false,
2026-06-06T06:01:02.7218163Z           "evidence": []
2026-06-06T06:01:02.7218611Z         },
2026-06-06T06:01:02.7219056Z         "unit": {
2026-06-06T06:01:02.7219651Z           "complete": false,
2026-06-06T06:01:02.7220465Z           "evidence": []
2026-06-06T06:01:02.7220910Z         }
2026-06-06T06:01:02.7221363Z       }
2026-06-06T06:01:02.7221786Z     },
2026-06-06T06:01:02.7222223Z     {
2026-06-06T06:01:02.7222696Z       "id": "REQ-MSG-1",
2026-06-06T06:01:02.7225551Z       "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-06T06:01:02.7226076Z       "requiredStages": [
2026-06-06T06:01:02.7226505Z         "impl",
2026-06-06T06:01:02.7226937Z         "unit",
2026-06-06T06:01:02.7227367Z         "int"
2026-06-06T06:01:02.7227810Z       ],
2026-06-06T06:01:02.7228247Z       "stages": {
2026-06-06T06:01:02.7228685Z         "doc": {
2026-06-06T06:01:02.7229250Z           "complete": false,
2026-06-06T06:01:02.7230038Z           "evidence": []
2026-06-06T06:01:02.7230467Z         },
2026-06-06T06:01:02.7230894Z         "impl": {
2026-06-06T06:01:02.7231370Z           "complete": true,
2026-06-06T06:01:02.7231830Z           "evidence": [
2026-06-06T06:01:02.7232262Z             {
2026-06-06T06:01:02.7232876Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7233308Z               "line": 28
2026-06-06T06:01:02.7233737Z             },
2026-06-06T06:01:02.7234148Z             {
2026-06-06T06:01:02.7234757Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7235195Z               "line": 94
2026-06-06T06:01:02.7235623Z             },
2026-06-06T06:01:02.7236046Z             {
2026-06-06T06:01:02.7236657Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7237116Z               "line": 127
2026-06-06T06:01:02.7237538Z             },
2026-06-06T06:01:02.7237961Z             {
2026-06-06T06:01:02.7238575Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7239025Z               "line": 149
2026-06-06T06:01:02.7239680Z             },
2026-06-06T06:01:02.7240259Z             {
2026-06-06T06:01:02.7240867Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7241696Z               "line": 174
2026-06-06T06:01:02.7242129Z             },
2026-06-06T06:01:02.7242547Z             {
2026-06-06T06:01:02.7243167Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7243637Z               "line": 18
2026-06-06T06:01:02.7244084Z             },
2026-06-06T06:01:02.7244528Z             {
2026-06-06T06:01:02.7245105Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.7245557Z               "line": 13
2026-06-06T06:01:02.7245975Z             },
2026-06-06T06:01:02.7246555Z             {
2026-06-06T06:01:02.7247156Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.7247606Z               "line": 61
2026-06-06T06:01:02.7248049Z             },
2026-06-06T06:01:02.7248478Z             {
2026-06-06T06:01:02.7249116Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-06T06:01:02.7249840Z               "line": 10
2026-06-06T06:01:02.7250308Z             }
2026-06-06T06:01:02.7250810Z           ]
2026-06-06T06:01:02.7251253Z         },
2026-06-06T06:01:02.7251713Z         "int": {
2026-06-06T06:01:02.7252206Z           "complete": true,
2026-06-06T06:01:02.7252704Z           "evidence": [
2026-06-06T06:01:02.7253163Z             {
2026-06-06T06:01:02.7253973Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-06T06:01:02.7254453Z               "line": 9
2026-06-06T06:01:02.7254901Z             },
2026-06-06T06:01:02.7255350Z             {
2026-06-06T06:01:02.7256145Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-06T06:01:02.7256640Z               "line": 66
2026-06-06T06:01:02.7257100Z             },
2026-06-06T06:01:02.7257541Z             {
2026-06-06T06:01:02.7258321Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-06T06:01:02.7258793Z               "line": 116
2026-06-06T06:01:02.7259310Z             }
2026-06-06T06:01:02.7259902Z           ]
2026-06-06T06:01:02.7260370Z         },
2026-06-06T06:01:02.7260930Z         "unit": {
2026-06-06T06:01:02.7261395Z           "complete": true,
2026-06-06T06:01:02.7261855Z           "evidence": [
2026-06-06T06:01:02.7262275Z             {
2026-06-06T06:01:02.7262895Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7263351Z               "line": 203
2026-06-06T06:01:02.7263787Z             },
2026-06-06T06:01:02.7264223Z             {
2026-06-06T06:01:02.7264827Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7265285Z               "line": 232
2026-06-06T06:01:02.7265722Z             },
2026-06-06T06:01:02.7266159Z             {
2026-06-06T06:01:02.7266774Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7267245Z               "line": 277
2026-06-06T06:01:02.7267674Z             },
2026-06-06T06:01:02.7268090Z             {
2026-06-06T06:01:02.7268725Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7269249Z               "line": 300
2026-06-06T06:01:02.7269924Z             },
2026-06-06T06:01:02.7270376Z             {
2026-06-06T06:01:02.7271033Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-06T06:01:02.7271536Z               "line": 322
2026-06-06T06:01:02.7271987Z             },
2026-06-06T06:01:02.7272435Z             {
2026-06-06T06:01:02.7273102Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7273602Z               "line": 203
2026-06-06T06:01:02.7274058Z             },
2026-06-06T06:01:02.7274494Z             {
2026-06-06T06:01:02.7275170Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7275646Z               "line": 233
2026-06-06T06:01:02.7276101Z             },
2026-06-06T06:01:02.7276550Z             {
2026-06-06T06:01:02.7277219Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7277712Z               "line": 247
2026-06-06T06:01:02.7278153Z             },
2026-06-06T06:01:02.7278599Z             {
2026-06-06T06:01:02.7279859Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7280334Z               "line": 259
2026-06-06T06:01:02.7280777Z             },
2026-06-06T06:01:02.7281211Z             {
2026-06-06T06:01:02.7281797Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.7282259Z               "line": 158
2026-06-06T06:01:02.7282720Z             },
2026-06-06T06:01:02.7283158Z             {
2026-06-06T06:01:02.7283755Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-06T06:01:02.7284210Z               "line": 235
2026-06-06T06:01:02.7284833Z             },
2026-06-06T06:01:02.7285293Z             {
2026-06-06T06:01:02.7285873Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-06T06:01:02.7286318Z               "line": 68
2026-06-06T06:01:02.7294659Z             },
2026-06-06T06:01:02.7295301Z             {
2026-06-06T06:01:02.7295923Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-06T06:01:02.7296391Z               "line": 74
2026-06-06T06:01:02.7296900Z             },
2026-06-06T06:01:02.7297326Z             {
2026-06-06T06:01:02.7297928Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-06T06:01:02.7298385Z               "line": 80
2026-06-06T06:01:02.7298826Z             },
2026-06-06T06:01:02.7299340Z             {
2026-06-06T06:01:02.7299955Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-06T06:01:02.7300423Z               "line": 99
2026-06-06T06:01:02.7300850Z             }
2026-06-06T06:01:02.7301285Z           ]
2026-06-06T06:01:02.7301709Z         }
2026-06-06T06:01:02.7302151Z       }
2026-06-06T06:01:02.7302588Z     },
2026-06-06T06:01:02.7303027Z     {
2026-06-06T06:01:02.7303517Z       "id": "REQ-MSG-2",
2026-06-06T06:01:02.7305237Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-06T06:01:02.7305782Z       "requiredStages": [
2026-06-06T06:01:02.7306255Z         "impl",
2026-06-06T06:01:02.7306728Z         "unit"
2026-06-06T06:01:02.7307198Z       ],
2026-06-06T06:01:02.7307695Z       "stages": {
2026-06-06T06:01:02.7308167Z         "doc": {
2026-06-06T06:01:02.7308683Z           "complete": false,
2026-06-06T06:01:02.7309258Z           "evidence": []
2026-06-06T06:01:02.7309724Z         },
2026-06-06T06:01:02.7310192Z         "impl": {
2026-06-06T06:01:02.7310687Z           "complete": true,
2026-06-06T06:01:02.7311169Z           "evidence": [
2026-06-06T06:01:02.7311628Z             {
2026-06-06T06:01:02.7312226Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7312729Z               "line": 11
2026-06-06T06:01:02.7313202Z             },
2026-06-06T06:01:02.7313681Z             {
2026-06-06T06:01:02.7314269Z               "path": "crates/spt/src/main.rs",
2026-06-06T06:01:02.7314759Z               "line": 8
2026-06-06T06:01:02.7315202Z             }
2026-06-06T06:01:02.7315624Z           ]
2026-06-06T06:01:02.7316073Z         },
2026-06-06T06:01:02.7316522Z         "int": {
2026-06-06T06:01:02.7317021Z           "complete": false,
2026-06-06T06:01:02.7317513Z           "evidence": []
2026-06-06T06:01:02.7317966Z         },
2026-06-06T06:01:02.7318433Z         "unit": {
2026-06-06T06:01:02.7318947Z           "complete": true,
2026-06-06T06:01:02.7319516Z           "evidence": [
2026-06-06T06:01:02.7320092Z             {
2026-06-06T06:01:02.7320665Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7321136Z               "line": 3334
2026-06-06T06:01:02.7321571Z             },
2026-06-06T06:01:02.7322029Z             {
2026-06-06T06:01:02.7322570Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7323052Z               "line": 3369
2026-06-06T06:01:02.7323476Z             },
2026-06-06T06:01:02.7323909Z             {
2026-06-06T06:01:02.7324448Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7324906Z               "line": 3376
2026-06-06T06:01:02.7325337Z             },
2026-06-06T06:01:02.7325757Z             {
2026-06-06T06:01:02.7326319Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7327263Z               "line": 4346
2026-06-06T06:01:02.7327701Z             },
2026-06-06T06:01:02.7328111Z             {
2026-06-06T06:01:02.7328667Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7329141Z               "line": 4355
2026-06-06T06:01:02.7329822Z             },
2026-06-06T06:01:02.7330280Z             {
2026-06-06T06:01:02.7330860Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7331344Z               "line": 4367
2026-06-06T06:01:02.7331778Z             }
2026-06-06T06:01:02.7332252Z           ]
2026-06-06T06:01:02.7332895Z         }
2026-06-06T06:01:02.7333352Z       }
2026-06-06T06:01:02.7333795Z     },
2026-06-06T06:01:02.7334220Z     {
2026-06-06T06:01:02.7334729Z       "id": "REQ-MSG-3",
2026-06-06T06:01:02.7337241Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-06T06:01:02.7337784Z       "requiredStages": [
2026-06-06T06:01:02.7338271Z         "impl",
2026-06-06T06:01:02.7338716Z         "unit",
2026-06-06T06:01:02.7339233Z         "int"
2026-06-06T06:01:02.7339676Z       ],
2026-06-06T06:01:02.7340150Z       "stages": {
2026-06-06T06:01:02.7340599Z         "doc": {
2026-06-06T06:01:02.7341118Z           "complete": false,
2026-06-06T06:01:02.7341625Z           "evidence": []
2026-06-06T06:01:02.7342077Z         },
2026-06-06T06:01:02.7342555Z         "impl": {
2026-06-06T06:01:02.7343062Z           "complete": true,
2026-06-06T06:01:02.7343560Z           "evidence": [
2026-06-06T06:01:02.7344024Z             {
2026-06-06T06:01:02.7344706Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-06T06:01:02.7345208Z               "line": 19
2026-06-06T06:01:02.7345647Z             },
2026-06-06T06:01:02.7346095Z             {
2026-06-06T06:01:02.7346715Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7347204Z               "line": 21
2026-06-06T06:01:02.7347662Z             },
2026-06-06T06:01:02.7348123Z             {
2026-06-06T06:01:02.7348750Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7349270Z               "line": 48
2026-06-06T06:01:02.7349755Z             },
2026-06-06T06:01:02.7350196Z             {
2026-06-06T06:01:02.7350825Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7351304Z               "line": 131
2026-06-06T06:01:02.7351743Z             }
2026-06-06T06:01:02.7352229Z           ]
2026-06-06T06:01:02.7352681Z         },
2026-06-06T06:01:02.7353147Z         "int": {
2026-06-06T06:01:02.7353655Z           "complete": true,
2026-06-06T06:01:02.7354148Z           "evidence": [
2026-06-06T06:01:02.7354616Z             {
2026-06-06T06:01:02.7355438Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-06T06:01:02.7355940Z               "line": 10
2026-06-06T06:01:02.7356393Z             },
2026-06-06T06:01:02.7356851Z             {
2026-06-06T06:01:02.7357631Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-06T06:01:02.7358138Z               "line": 66
2026-06-06T06:01:02.7358589Z             }
2026-06-06T06:01:02.7359019Z           ]
2026-06-06T06:01:02.7359675Z         },
2026-06-06T06:01:02.7360256Z         "unit": {
2026-06-06T06:01:02.7360744Z           "complete": true,
2026-06-06T06:01:02.7361199Z           "evidence": [
2026-06-06T06:01:02.7361649Z             {
2026-06-06T06:01:02.7362287Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7362757Z               "line": 185
2026-06-06T06:01:02.7363203Z             },
2026-06-06T06:01:02.7363657Z             {
2026-06-06T06:01:02.7364330Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7364812Z               "line": 204
2026-06-06T06:01:02.7365252Z             },
2026-06-06T06:01:02.7365693Z             {
2026-06-06T06:01:02.7366283Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-06T06:01:02.7366748Z               "line": 223
2026-06-06T06:01:02.7367554Z             }
2026-06-06T06:01:02.7367988Z           ]
2026-06-06T06:01:02.7369531Z         }
2026-06-06T06:01:02.7370146Z       }
2026-06-06T06:01:02.7370699Z     },
2026-06-06T06:01:02.7371199Z     {
2026-06-06T06:01:02.7371779Z       "id": "REQ-NET-1",
2026-06-06T06:01:02.7373356Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-06T06:01:02.7373918Z       "requiredStages": [
2026-06-06T06:01:02.7374365Z         "impl",
2026-06-06T06:01:02.7374823Z         "unit",
2026-06-06T06:01:02.7375274Z         "int"
2026-06-06T06:01:02.7375717Z       ],
2026-06-06T06:01:02.7376605Z       "stages": {
2026-06-06T06:01:02.7377109Z         "doc": {
2026-06-06T06:01:02.7377626Z           "complete": false,
2026-06-06T06:01:02.7378101Z           "evidence": []
2026-06-06T06:01:02.7378545Z         },
2026-06-06T06:01:02.7379019Z         "impl": {
2026-06-06T06:01:02.7379751Z           "complete": true,
2026-06-06T06:01:02.7380225Z           "evidence": [
2026-06-06T06:01:02.7380682Z             {
2026-06-06T06:01:02.7381378Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.7381832Z               "line": 54
2026-06-06T06:01:02.7389446Z             },
2026-06-06T06:01:02.7390173Z             {
2026-06-06T06:01:02.7390973Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.7391432Z               "line": 533
2026-06-06T06:01:02.7391841Z             },
2026-06-06T06:01:02.7392261Z             {
2026-06-06T06:01:02.7392847Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-06T06:01:02.7393341Z               "line": 69
2026-06-06T06:01:02.7393771Z             },
2026-06-06T06:01:02.7394181Z             {
2026-06-06T06:01:02.7394841Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7395290Z               "line": 65
2026-06-06T06:01:02.7395706Z             },
2026-06-06T06:01:02.7396113Z             {
2026-06-06T06:01:02.7396775Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7397242Z               "line": 127
2026-06-06T06:01:02.7397658Z             },
2026-06-06T06:01:02.7398078Z             {
2026-06-06T06:01:02.7398724Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7399431Z               "line": 143
2026-06-06T06:01:02.7400024Z             },
2026-06-06T06:01:02.7401089Z             {
2026-06-06T06:01:02.7402030Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7402575Z               "line": 158
2026-06-06T06:01:02.7403096Z             },
2026-06-06T06:01:02.7403624Z             {
2026-06-06T06:01:02.7404406Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7404896Z               "line": 220
2026-06-06T06:01:02.7405353Z             },
2026-06-06T06:01:02.7405810Z             {
2026-06-06T06:01:02.7406487Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7406967Z               "line": 255
2026-06-06T06:01:02.7407418Z             },
2026-06-06T06:01:02.7407898Z             {
2026-06-06T06:01:02.7408580Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7409062Z               "line": 261
2026-06-06T06:01:02.7409733Z             },
2026-06-06T06:01:02.7410172Z             {
2026-06-06T06:01:02.7410856Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7411310Z               "line": 267
2026-06-06T06:01:02.7411757Z             },
2026-06-06T06:01:02.7412185Z             {
2026-06-06T06:01:02.7412871Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7413363Z               "line": 283
2026-06-06T06:01:02.7413803Z             },
2026-06-06T06:01:02.7414239Z             {
2026-06-06T06:01:02.7414908Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7415384Z               "line": 303
2026-06-06T06:01:02.7416452Z             },
2026-06-06T06:01:02.7416945Z             {
2026-06-06T06:01:02.7417719Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.7418852Z               "line": 35
2026-06-06T06:01:02.7419520Z             },
2026-06-06T06:01:02.7419945Z             {
2026-06-06T06:01:02.7420610Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.7421070Z               "line": 82
2026-06-06T06:01:02.7421489Z             },
2026-06-06T06:01:02.7421917Z             {
2026-06-06T06:01:02.7422530Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.7422987Z               "line": 129
2026-06-06T06:01:02.7423406Z             },
2026-06-06T06:01:02.7424073Z             {
2026-06-06T06:01:02.7424692Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7425170Z               "line": 1311
2026-06-06T06:01:02.7425618Z             },
2026-06-06T06:01:02.7426040Z             {
2026-06-06T06:01:02.7426638Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.7427089Z               "line": 17
2026-06-06T06:01:02.7427533Z             }
2026-06-06T06:01:02.7427994Z           ]
2026-06-06T06:01:02.7428417Z         },
2026-06-06T06:01:02.7428868Z         "int": {
2026-06-06T06:01:02.7429586Z           "complete": true,
2026-06-06T06:01:02.7430238Z           "evidence": [
2026-06-06T06:01:02.7430675Z             {
2026-06-06T06:01:02.7431387Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.7431853Z               "line": 314
2026-06-06T06:01:02.7432290Z             },
2026-06-06T06:01:02.7432724Z             {
2026-06-06T06:01:02.7433378Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7433876Z               "line": 555
2026-06-06T06:01:02.7434308Z             },
2026-06-06T06:01:02.7434732Z             {
2026-06-06T06:01:02.7435405Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7435854Z               "line": 768
2026-06-06T06:01:02.7436288Z             }
2026-06-06T06:01:02.7436716Z           ]
2026-06-06T06:01:02.7437151Z         },
2026-06-06T06:01:02.7437617Z         "unit": {
2026-06-06T06:01:02.7438103Z           "complete": true,
2026-06-06T06:01:02.7438604Z           "evidence": [
2026-06-06T06:01:02.7439036Z             {
2026-06-06T06:01:02.7439964Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.7440465Z               "line": 585
2026-06-06T06:01:02.7440925Z             },
2026-06-06T06:01:02.7441369Z             {
2026-06-06T06:01:02.7442057Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.7442537Z               "line": 618
2026-06-06T06:01:02.7442977Z             },
2026-06-06T06:01:02.7443450Z             {
2026-06-06T06:01:02.7444187Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.7444675Z               "line": 720
2026-06-06T06:01:02.7445109Z             },
2026-06-06T06:01:02.7445572Z             {
2026-06-06T06:01:02.7446270Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-06T06:01:02.7446743Z               "line": 142
2026-06-06T06:01:02.7447219Z             },
2026-06-06T06:01:02.7447660Z             {
2026-06-06T06:01:02.7448368Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7448843Z               "line": 357
2026-06-06T06:01:02.7449359Z             },
2026-06-06T06:01:02.7449847Z             {
2026-06-06T06:01:02.7450679Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7451150Z               "line": 371
2026-06-06T06:01:02.7451579Z             },
2026-06-06T06:01:02.7452022Z             {
2026-06-06T06:01:02.7452721Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7453182Z               "line": 390
2026-06-06T06:01:02.7453615Z             },
2026-06-06T06:01:02.7454036Z             {
2026-06-06T06:01:02.7454700Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.7455163Z               "line": 106
2026-06-06T06:01:02.7455596Z             },
2026-06-06T06:01:02.7456043Z             {
2026-06-06T06:01:02.7457044Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-06T06:01:02.7457518Z               "line": 148
2026-06-06T06:01:02.7457943Z             },
2026-06-06T06:01:02.7458375Z             {
2026-06-06T06:01:02.7458998Z               "path": "crates/spt-store/src/spool.rs",
2026-06-06T06:01:02.7459735Z               "line": 445
2026-06-06T06:01:02.7460359Z             },
2026-06-06T06:01:02.7460781Z             {
2026-06-06T06:01:02.7461375Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.7461828Z               "line": 461
2026-06-06T06:01:02.7462470Z             },
2026-06-06T06:01:02.7462936Z             {
2026-06-06T06:01:02.7463532Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.7464015Z               "line": 677
2026-06-06T06:01:02.7464447Z             }
2026-06-06T06:01:02.7464874Z           ]
2026-06-06T06:01:02.7465285Z         }
2026-06-06T06:01:02.7465713Z       }
2026-06-06T06:01:02.7466123Z     },
2026-06-06T06:01:02.7466539Z     {
2026-06-06T06:01:02.7467025Z       "id": "REQ-NET-2",
2026-06-06T06:01:02.7468888Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-06T06:01:02.7469580Z       "requiredStages": [
2026-06-06T06:01:02.7470244Z         "impl"
2026-06-06T06:01:02.7470773Z       ],
2026-06-06T06:01:02.7471290Z       "stages": {
2026-06-06T06:01:02.7471850Z         "doc": {
2026-06-06T06:01:02.7472427Z           "complete": false,
2026-06-06T06:01:02.7472950Z           "evidence": []
2026-06-06T06:01:02.7473434Z         },
2026-06-06T06:01:02.7473927Z         "impl": {
2026-06-06T06:01:02.7474496Z           "complete": true,
2026-06-06T06:01:02.7475021Z           "evidence": [
2026-06-06T06:01:02.7475512Z             {
2026-06-06T06:01:02.7476262Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.7476810Z               "line": 49
2026-06-06T06:01:02.7477305Z             },
2026-06-06T06:01:02.7493101Z             {
2026-06-06T06:01:02.7494018Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7494563Z               "line": 39
2026-06-06T06:01:02.7495012Z             },
2026-06-06T06:01:02.7495483Z             {
2026-06-06T06:01:02.7496182Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7496641Z               "line": 49
2026-06-06T06:01:02.7497118Z             },
2026-06-06T06:01:02.7497576Z             {
2026-06-06T06:01:02.7498280Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7498771Z               "line": 127
2026-06-06T06:01:02.7499295Z             },
2026-06-06T06:01:02.7499922Z             {
2026-06-06T06:01:02.7500707Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7501162Z               "line": 143
2026-06-06T06:01:02.7501597Z             },
2026-06-06T06:01:02.7502013Z             {
2026-06-06T06:01:02.7502681Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-06T06:01:02.7503124Z               "line": 158
2026-06-06T06:01:02.7503566Z             }
2026-06-06T06:01:02.7503988Z           ]
2026-06-06T06:01:02.7504394Z         },
2026-06-06T06:01:02.7504823Z         "int": {
2026-06-06T06:01:02.7505299Z           "complete": false,
2026-06-06T06:01:02.7505753Z           "evidence": []
2026-06-06T06:01:02.7506167Z         },
2026-06-06T06:01:02.7506607Z         "unit": {
2026-06-06T06:01:02.7507085Z           "complete": true,
2026-06-06T06:01:02.7507524Z           "evidence": [
2026-06-06T06:01:02.7507938Z             {
2026-06-06T06:01:02.7508571Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.7509044Z               "line": 334
2026-06-06T06:01:02.7509698Z             }
2026-06-06T06:01:02.7510284Z           ]
2026-06-06T06:01:02.7510707Z         }
2026-06-06T06:01:02.7511114Z       }
2026-06-06T06:01:02.7511530Z     },
2026-06-06T06:01:02.7511929Z     {
2026-06-06T06:01:02.7512390Z       "id": "REQ-NET-3",
2026-06-06T06:01:02.7513312Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-06T06:01:02.7514314Z       "requiredStages": [
2026-06-06T06:01:02.7514739Z         "impl",
2026-06-06T06:01:02.7515164Z         "unit"
2026-06-06T06:01:02.7515589Z       ],
2026-06-06T06:01:02.7516032Z       "stages": {
2026-06-06T06:01:02.7516470Z         "doc": {
2026-06-06T06:01:02.7516928Z           "complete": false,
2026-06-06T06:01:02.7517377Z           "evidence": []
2026-06-06T06:01:02.7517781Z         },
2026-06-06T06:01:02.7518219Z         "impl": {
2026-06-06T06:01:02.7518717Z           "complete": true,
2026-06-06T06:01:02.7519242Z           "evidence": [
2026-06-06T06:01:02.7520019Z             {
2026-06-06T06:01:02.7520691Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.7521167Z               "line": 39
2026-06-06T06:01:02.7521596Z             },
2026-06-06T06:01:02.7522053Z             {
2026-06-06T06:01:02.7522733Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.7523220Z               "line": 159
2026-06-06T06:01:02.7523704Z             },
2026-06-06T06:01:02.7524144Z             {
2026-06-06T06:01:02.7524791Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-06T06:01:02.7525271Z               "line": 290
2026-06-06T06:01:02.7525698Z             },
2026-06-06T06:01:02.7526151Z             {
2026-06-06T06:01:02.7526790Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-06T06:01:02.7527270Z               "line": 36
2026-06-06T06:01:02.7527703Z             },
2026-06-06T06:01:02.7528152Z             {
2026-06-06T06:01:02.7528905Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7529461Z               "line": 135
2026-06-06T06:01:02.7529911Z             },
2026-06-06T06:01:02.7530352Z             {
2026-06-06T06:01:02.7531078Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7531552Z               "line": 172
2026-06-06T06:01:02.7532000Z             },
2026-06-06T06:01:02.7532442Z             {
2026-06-06T06:01:02.7533151Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7533645Z               "line": 184
2026-06-06T06:01:02.7534073Z             },
2026-06-06T06:01:02.7534506Z             {
2026-06-06T06:01:02.7535196Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7535668Z               "line": 222
2026-06-06T06:01:02.7536104Z             },
2026-06-06T06:01:02.7536521Z             {
2026-06-06T06:01:02.7537225Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7537692Z               "line": 237
2026-06-06T06:01:02.7538155Z             },
2026-06-06T06:01:02.7538597Z             {
2026-06-06T06:01:02.7539408Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7540065Z               "line": 273
2026-06-06T06:01:02.7540479Z             },
2026-06-06T06:01:02.7540910Z             {
2026-06-06T06:01:02.7541576Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7542027Z               "line": 314
2026-06-06T06:01:02.7542461Z             },
2026-06-06T06:01:02.7542889Z             {
2026-06-06T06:01:02.7543569Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.7544021Z               "line": 327
2026-06-06T06:01:02.7544454Z             },
2026-06-06T06:01:02.7544890Z             {
2026-06-06T06:01:02.7545585Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7546054Z               "line": 29
2026-06-06T06:01:02.7546475Z             },
2026-06-06T06:01:02.7546903Z             {
2026-06-06T06:01:02.7547573Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7548036Z               "line": 70
2026-06-06T06:01:02.7548454Z             },
2026-06-06T06:01:02.7548890Z             {
2026-06-06T06:01:02.7549957Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7550437Z               "line": 121
2026-06-06T06:01:02.7550864Z             }
2026-06-06T06:01:02.7551286Z           ]
2026-06-06T06:01:02.7552104Z         },
2026-06-06T06:01:02.7552550Z         "int": {
2026-06-06T06:01:02.7553052Z           "complete": false,
2026-06-06T06:01:02.7553532Z           "evidence": []
2026-06-06T06:01:02.7553952Z         },
2026-06-06T06:01:02.7554389Z         "unit": {
2026-06-06T06:01:02.7554856Z           "complete": true,
2026-06-06T06:01:02.7555316Z           "evidence": [
2026-06-06T06:01:02.7555731Z             {
2026-06-06T06:01:02.7556386Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.7556850Z               "line": 203
2026-06-06T06:01:02.7557503Z             },
2026-06-06T06:01:02.7557972Z             {
2026-06-06T06:01:02.7558625Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.7559103Z               "line": 303
2026-06-06T06:01:02.7559783Z             },
2026-06-06T06:01:02.7560374Z             {
2026-06-06T06:01:02.7561026Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-06T06:01:02.7561503Z               "line": 399
2026-06-06T06:01:02.7561961Z             },
2026-06-06T06:01:02.7562387Z             {
2026-06-06T06:01:02.7563031Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-06T06:01:02.7563484Z               "line": 93
2026-06-06T06:01:02.7563924Z             },
2026-06-06T06:01:02.7564358Z             {
2026-06-06T06:01:02.7564990Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-06T06:01:02.7565479Z               "line": 131
2026-06-06T06:01:02.7565936Z             },
2026-06-06T06:01:02.7566382Z             {
2026-06-06T06:01:02.7567065Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7567550Z               "line": 308
2026-06-06T06:01:02.7567993Z             },
2026-06-06T06:01:02.7568410Z             {
2026-06-06T06:01:02.7569090Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7569775Z               "line": 345
2026-06-06T06:01:02.7570232Z             },
2026-06-06T06:01:02.7570688Z             {
2026-06-06T06:01:02.7571379Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-06T06:01:02.7571859Z               "line": 469
2026-06-06T06:01:02.7572303Z             }
2026-06-06T06:01:02.7572739Z           ]
2026-06-06T06:01:02.7573184Z         }
2026-06-06T06:01:02.7573603Z       }
2026-06-06T06:01:02.7574027Z     },
2026-06-06T06:01:02.7574443Z     {
2026-06-06T06:01:02.7574977Z       "id": "REQ-NODE-IDENTITY",
2026-06-06T06:01:02.7576397Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-06T06:01:02.7584874Z       "requiredStages": [
2026-06-06T06:01:02.7585549Z         "impl",
2026-06-06T06:01:02.7586003Z         "unit"
2026-06-06T06:01:02.7586444Z       ],
2026-06-06T06:01:02.7586914Z       "stages": {
2026-06-06T06:01:02.7587367Z         "doc": {
2026-06-06T06:01:02.7587879Z           "complete": false,
2026-06-06T06:01:02.7588428Z           "evidence": []
2026-06-06T06:01:02.7588896Z         },
2026-06-06T06:01:02.7589544Z         "impl": {
2026-06-06T06:01:02.7590113Z           "complete": true,
2026-06-06T06:01:02.7590604Z           "evidence": [
2026-06-06T06:01:02.7591066Z             {
2026-06-06T06:01:02.7591783Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7592266Z               "line": 60
2026-06-06T06:01:02.7592719Z             },
2026-06-06T06:01:02.7593167Z             {
2026-06-06T06:01:02.7593875Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7594375Z               "line": 68
2026-06-06T06:01:02.7594839Z             },
2026-06-06T06:01:02.7595270Z             {
2026-06-06T06:01:02.7595978Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7596465Z               "line": 86
2026-06-06T06:01:02.7596926Z             },
2026-06-06T06:01:02.7597369Z             {
2026-06-06T06:01:02.7598040Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7598522Z               "line": 120
2026-06-06T06:01:02.7598962Z             },
2026-06-06T06:01:02.7600342Z             {
2026-06-06T06:01:02.7601002Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7601457Z               "line": 127
2026-06-06T06:01:02.7601881Z             },
2026-06-06T06:01:02.7602292Z             {
2026-06-06T06:01:02.7602952Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7603410Z               "line": 143
2026-06-06T06:01:02.7603819Z             },
2026-06-06T06:01:02.7604222Z             {
2026-06-06T06:01:02.7604847Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-06T06:01:02.7605508Z               "line": 16
2026-06-06T06:01:02.7605946Z             }
2026-06-06T06:01:02.7606384Z           ]
2026-06-06T06:01:02.7606813Z         },
2026-06-06T06:01:02.7607267Z         "int": {
2026-06-06T06:01:02.7607764Z           "complete": false,
2026-06-06T06:01:02.7608230Z           "evidence": []
2026-06-06T06:01:02.7608672Z         },
2026-06-06T06:01:02.7610520Z         "unit": {
2026-06-06T06:01:02.7611124Z           "complete": true,
2026-06-06T06:01:02.7611657Z           "evidence": [
2026-06-06T06:01:02.7612136Z             {
2026-06-06T06:01:02.7613124Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7613647Z               "line": 199
2026-06-06T06:01:02.7614119Z             },
2026-06-06T06:01:02.7614543Z             {
2026-06-06T06:01:02.7615213Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7615677Z               "line": 218
2026-06-06T06:01:02.7616119Z             },
2026-06-06T06:01:02.7616540Z             {
2026-06-06T06:01:02.7617235Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7617715Z               "line": 232
2026-06-06T06:01:02.7618138Z             },
2026-06-06T06:01:02.7618576Z             {
2026-06-06T06:01:02.7619328Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-06T06:01:02.7619823Z               "line": 248
2026-06-06T06:01:02.7620265Z             },
2026-06-06T06:01:02.7620737Z             {
2026-06-06T06:01:02.7621398Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-06T06:01:02.7621876Z               "line": 125
2026-06-06T06:01:02.7622319Z             },
2026-06-06T06:01:02.7622756Z             {
2026-06-06T06:01:02.7623404Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-06T06:01:02.7623884Z               "line": 141
2026-06-06T06:01:02.7624340Z             },
2026-06-06T06:01:02.7624795Z             {
2026-06-06T06:01:02.7625451Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-06T06:01:02.7625947Z               "line": 153
2026-06-06T06:01:02.7626381Z             }
2026-06-06T06:01:02.7626813Z           ]
2026-06-06T06:01:02.7627235Z         }
2026-06-06T06:01:02.7627687Z       }
2026-06-06T06:01:02.7628136Z     },
2026-06-06T06:01:02.7628562Z     {
2026-06-06T06:01:02.7629067Z       "id": "REQ-NOTIF-1",
2026-06-06T06:01:02.7631520Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-06T06:01:02.7632058Z       "requiredStages": [
2026-06-06T06:01:02.7632500Z         "impl",
2026-06-06T06:01:02.7632949Z         "unit",
2026-06-06T06:01:02.7633398Z         "int"
2026-06-06T06:01:02.7633832Z       ],
2026-06-06T06:01:02.7634291Z       "stages": {
2026-06-06T06:01:02.7634729Z         "doc": {
2026-06-06T06:01:02.7635228Z           "complete": false,
2026-06-06T06:01:02.7635691Z           "evidence": []
2026-06-06T06:01:02.7636116Z         },
2026-06-06T06:01:02.7636556Z         "impl": {
2026-06-06T06:01:02.7637047Z           "complete": true,
2026-06-06T06:01:02.7637511Z           "evidence": [
2026-06-06T06:01:02.7637933Z             {
2026-06-06T06:01:02.7638611Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.7639068Z               "line": 456
2026-06-06T06:01:02.7639752Z             },
2026-06-06T06:01:02.7640175Z             {
2026-06-06T06:01:02.7640797Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7641741Z               "line": 30
2026-06-06T06:01:02.7642166Z             },
2026-06-06T06:01:02.7642593Z             {
2026-06-06T06:01:02.7643211Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7643667Z               "line": 62
2026-06-06T06:01:02.7644097Z             },
2026-06-06T06:01:02.7644505Z             {
2026-06-06T06:01:02.7645126Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7645575Z               "line": 83
2026-06-06T06:01:02.7645992Z             },
2026-06-06T06:01:02.7646406Z             {
2026-06-06T06:01:02.7647238Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7647742Z               "line": 97
2026-06-06T06:01:02.7648160Z             },
2026-06-06T06:01:02.7648582Z             {
2026-06-06T06:01:02.7649417Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7650061Z               "line": 126
2026-06-06T06:01:02.7650503Z             },
2026-06-06T06:01:02.7650947Z             {
2026-06-06T06:01:02.7651590Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7652048Z               "line": 167
2026-06-06T06:01:02.7652479Z             },
2026-06-06T06:01:02.7652890Z             {
2026-06-06T06:01:02.7653511Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7653973Z               "line": 216
2026-06-06T06:01:02.7654395Z             },
2026-06-06T06:01:02.7654814Z             {
2026-06-06T06:01:02.7655434Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7655916Z               "line": 317
2026-06-06T06:01:02.7656336Z             },
2026-06-06T06:01:02.7656763Z             {
2026-06-06T06:01:02.7657380Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7657835Z               "line": 365
2026-06-06T06:01:02.7658256Z             },
2026-06-06T06:01:02.7658665Z             {
2026-06-06T06:01:02.7659563Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7660166Z               "line": 24
2026-06-06T06:01:02.7660593Z             },
2026-06-06T06:01:02.7661031Z             {
2026-06-06T06:01:02.7661691Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7662139Z               "line": 34
2026-06-06T06:01:02.7662552Z             },
2026-06-06T06:01:02.7662974Z             {
2026-06-06T06:01:02.7663623Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7664062Z               "line": 55
2026-06-06T06:01:02.7664482Z             },
2026-06-06T06:01:02.7664879Z             {
2026-06-06T06:01:02.7665546Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7665992Z               "line": 76
2026-06-06T06:01:02.7666415Z             },
2026-06-06T06:01:02.7666819Z             {
2026-06-06T06:01:02.7667481Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7667932Z               "line": 88
2026-06-06T06:01:02.7668354Z             },
2026-06-06T06:01:02.7668798Z             {
2026-06-06T06:01:02.7669606Z               "path": "crates/spt-daemon/src/peerloop.rs",
2026-06-06T06:01:02.7670238Z               "line": 41
2026-06-06T06:01:02.7670674Z             },
2026-06-06T06:01:02.7671117Z             {
2026-06-06T06:01:02.7678987Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.7679791Z               "line": 94
2026-06-06T06:01:02.7680214Z             },
2026-06-06T06:01:02.7680614Z             {
2026-06-06T06:01:02.7681254Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.7681747Z               "line": 20
2026-06-06T06:01:02.7682152Z             },
2026-06-06T06:01:02.7682559Z             {
2026-06-06T06:01:02.7683167Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.7683600Z               "line": 30
2026-06-06T06:01:02.7684005Z             },
2026-06-06T06:01:02.7684425Z             {
2026-06-06T06:01:02.7685226Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.7686255Z               "line": 50
2026-06-06T06:01:02.7686708Z             },
2026-06-06T06:01:02.7687134Z             {
2026-06-06T06:01:02.7687754Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7688200Z               "line": 28
2026-06-06T06:01:02.7688624Z             },
2026-06-06T06:01:02.7689042Z             {
2026-06-06T06:01:02.7689865Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7690331Z               "line": 126
2026-06-06T06:01:02.7690741Z             },
2026-06-06T06:01:02.7691365Z             {
2026-06-06T06:01:02.7691994Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7692465Z               "line": 161
2026-06-06T06:01:02.7692889Z             },
2026-06-06T06:01:02.7693295Z             {
2026-06-06T06:01:02.7693901Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7694373Z               "line": 197
2026-06-06T06:01:02.7694807Z             },
2026-06-06T06:01:02.7695241Z             {
2026-06-06T06:01:02.7695879Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7696353Z               "line": 208
2026-06-06T06:01:02.7696782Z             },
2026-06-06T06:01:02.7697205Z             {
2026-06-06T06:01:02.7697824Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7698284Z               "line": 231
2026-06-06T06:01:02.7698703Z             },
2026-06-06T06:01:02.7699130Z             {
2026-06-06T06:01:02.7700295Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7700789Z               "line": 251
2026-06-06T06:01:02.7701228Z             },
2026-06-06T06:01:02.7701644Z             {
2026-06-06T06:01:02.7702305Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.7702747Z               "line": 63
2026-06-06T06:01:02.7703179Z             }
2026-06-06T06:01:02.7703607Z           ]
2026-06-06T06:01:02.7704015Z         },
2026-06-06T06:01:02.7704448Z         "int": {
2026-06-06T06:01:02.7704952Z           "complete": true,
2026-06-06T06:01:02.7705425Z           "evidence": [
2026-06-06T06:01:02.7705853Z             {
2026-06-06T06:01:02.7706567Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.7707030Z               "line": 265
2026-06-06T06:01:02.7707436Z             },
2026-06-06T06:01:02.7707857Z             {
2026-06-06T06:01:02.7708526Z               "path": "crates/spt-daemon/tests/peerloop.rs",
2026-06-06T06:01:02.7708992Z               "line": 102
2026-06-06T06:01:02.7709659Z             },
2026-06-06T06:01:02.7710281Z             {
2026-06-06T06:01:02.7710960Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7711418Z               "line": 564
2026-06-06T06:01:02.7711855Z             },
2026-06-06T06:01:02.7712264Z             {
2026-06-06T06:01:02.7712945Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7713431Z               "line": 868
2026-06-06T06:01:02.7713856Z             }
2026-06-06T06:01:02.7714308Z           ]
2026-06-06T06:01:02.7714726Z         },
2026-06-06T06:01:02.7715174Z         "unit": {
2026-06-06T06:01:02.7715655Z           "complete": true,
2026-06-06T06:01:02.7716121Z           "evidence": [
2026-06-06T06:01:02.7716539Z             {
2026-06-06T06:01:02.7717180Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7717653Z               "line": 442
2026-06-06T06:01:02.7718074Z             },
2026-06-06T06:01:02.7718512Z             {
2026-06-06T06:01:02.7719131Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7719827Z               "line": 480
2026-06-06T06:01:02.7720279Z             },
2026-06-06T06:01:02.7720711Z             {
2026-06-06T06:01:02.7721356Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7721813Z               "line": 563
2026-06-06T06:01:02.7722246Z             },
2026-06-06T06:01:02.7722685Z             {
2026-06-06T06:01:02.7723332Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7724174Z               "line": 584
2026-06-06T06:01:02.7724601Z             },
2026-06-06T06:01:02.7725037Z             {
2026-06-06T06:01:02.7725673Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7726148Z               "line": 637
2026-06-06T06:01:02.7726570Z             },
2026-06-06T06:01:02.7727011Z             {
2026-06-06T06:01:02.7727645Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7728095Z               "line": 676
2026-06-06T06:01:02.7728529Z             },
2026-06-06T06:01:02.7729241Z             {
2026-06-06T06:01:02.7730198Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7730656Z               "line": 866
2026-06-06T06:01:02.7731099Z             },
2026-06-06T06:01:02.7731520Z             {
2026-06-06T06:01:02.7732178Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7732632Z               "line": 133
2026-06-06T06:01:02.7733058Z             },
2026-06-06T06:01:02.7733488Z             {
2026-06-06T06:01:02.7734132Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7734571Z               "line": 208
2026-06-06T06:01:02.7734987Z             },
2026-06-06T06:01:02.7735395Z             {
2026-06-06T06:01:02.7736054Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-06T06:01:02.7736505Z               "line": 227
2026-06-06T06:01:02.7736914Z             },
2026-06-06T06:01:02.7737312Z             {
2026-06-06T06:01:02.7737973Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.7738423Z               "line": 332
2026-06-06T06:01:02.7738834Z             },
2026-06-06T06:01:02.7739457Z             {
2026-06-06T06:01:02.7740265Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-06T06:01:02.7740720Z               "line": 361
2026-06-06T06:01:02.7741131Z             },
2026-06-06T06:01:02.7741551Z             {
2026-06-06T06:01:02.7742239Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-06T06:01:02.7742697Z               "line": 112
2026-06-06T06:01:02.7743113Z             },
2026-06-06T06:01:02.7743516Z             {
2026-06-06T06:01:02.7744154Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.7744617Z               "line": 72
2026-06-06T06:01:02.7745031Z             },
2026-06-06T06:01:02.7745453Z             {
2026-06-06T06:01:02.7746074Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-06T06:01:02.7746522Z               "line": 94
2026-06-06T06:01:02.7746934Z             },
2026-06-06T06:01:02.7747367Z             {
2026-06-06T06:01:02.7747989Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7748443Z               "line": 365
2026-06-06T06:01:02.7748885Z             },
2026-06-06T06:01:02.7749522Z             {
2026-06-06T06:01:02.7750297Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7750742Z               "line": 396
2026-06-06T06:01:02.7751195Z             },
2026-06-06T06:01:02.7751634Z             {
2026-06-06T06:01:02.7752252Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7752723Z               "line": 410
2026-06-06T06:01:02.7753140Z             },
2026-06-06T06:01:02.7753582Z             {
2026-06-06T06:01:02.7754223Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7754719Z               "line": 441
2026-06-06T06:01:02.7755170Z             },
2026-06-06T06:01:02.7755605Z             {
2026-06-06T06:01:02.7756248Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7756708Z               "line": 458
2026-06-06T06:01:02.7757144Z             },
2026-06-06T06:01:02.7757569Z             {
2026-06-06T06:01:02.7758198Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7758668Z               "line": 483
2026-06-06T06:01:02.7759095Z             },
2026-06-06T06:01:02.7759882Z             {
2026-06-06T06:01:02.7760577Z               "path": "crates/spt-store/src/notif.rs",
2026-06-06T06:01:02.7761383Z               "line": 507
2026-06-06T06:01:02.7761824Z             },
2026-06-06T06:01:02.7762273Z             {
2026-06-06T06:01:02.7770227Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.7770818Z               "line": 442
2026-06-06T06:01:02.7771246Z             }
2026-06-06T06:01:02.7771670Z           ]
2026-06-06T06:01:02.7772092Z         }
2026-06-06T06:01:02.7772499Z       }
2026-06-06T06:01:02.7772912Z     },
2026-06-06T06:01:02.7773322Z     {
2026-06-06T06:01:02.7774172Z       "id": "REQ-NOTIF-2",
2026-06-06T06:01:02.7775826Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-06T06:01:02.7776320Z       "requiredStages": [
2026-06-06T06:01:02.7776750Z         "doc",
2026-06-06T06:01:02.7777174Z         "impl",
2026-06-06T06:01:02.7777610Z         "unit",
2026-06-06T06:01:02.7778036Z         "int"
2026-06-06T06:01:02.7778454Z       ],
2026-06-06T06:01:02.7778923Z       "stages": {
2026-06-06T06:01:02.7779599Z         "doc": {
2026-06-06T06:01:02.7780277Z           "complete": true,
2026-06-06T06:01:02.7780720Z           "evidence": [
2026-06-06T06:01:02.7781152Z             {
2026-06-06T06:01:02.7781649Z               "path": "CONTEXT.md",
2026-06-06T06:01:02.7782105Z               "line": 346
2026-06-06T06:01:02.7782534Z             },
2026-06-06T06:01:02.7782953Z             {
2026-06-06T06:01:02.7783493Z               "path": "docs/MANIFEST.md",
2026-06-06T06:01:02.7783936Z               "line": 62
2026-06-06T06:01:02.7784377Z             }
2026-06-06T06:01:02.7784802Z           ]
2026-06-06T06:01:02.7785212Z         },
2026-06-06T06:01:02.7785669Z         "impl": {
2026-06-06T06:01:02.7786140Z           "complete": true,
2026-06-06T06:01:02.7786606Z           "evidence": [
2026-06-06T06:01:02.7787024Z             {
2026-06-06T06:01:02.7787653Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7788105Z               "line": 245
2026-06-06T06:01:02.7788532Z             },
2026-06-06T06:01:02.7788957Z             {
2026-06-06T06:01:02.7789819Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7790596Z               "line": 259
2026-06-06T06:01:02.7791024Z             },
2026-06-06T06:01:02.7791451Z             {
2026-06-06T06:01:02.7792089Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7792545Z               "line": 281
2026-06-06T06:01:02.7792974Z             },
2026-06-06T06:01:02.7793388Z             {
2026-06-06T06:01:02.7794078Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.7794540Z               "line": 126
2026-06-06T06:01:02.7794984Z             },
2026-06-06T06:01:02.7795416Z             {
2026-06-06T06:01:02.7796065Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.7796582Z               "line": 72
2026-06-06T06:01:02.7797011Z             },
2026-06-06T06:01:02.7797442Z             {
2026-06-06T06:01:02.7798046Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7798514Z               "line": 1047
2026-06-06T06:01:02.7798944Z             },
2026-06-06T06:01:02.7799597Z             {
2026-06-06T06:01:02.7800330Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7800805Z               "line": 1079
2026-06-06T06:01:02.7801252Z             },
2026-06-06T06:01:02.7801697Z             {
2026-06-06T06:01:02.7802263Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7802728Z               "line": 1151
2026-06-06T06:01:02.7803174Z             },
2026-06-06T06:01:02.7803605Z             {
2026-06-06T06:01:02.7804155Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7804624Z               "line": 1187
2026-06-06T06:01:02.7805064Z             }
2026-06-06T06:01:02.7805483Z           ]
2026-06-06T06:01:02.7805904Z         },
2026-06-06T06:01:02.7806330Z         "int": {
2026-06-06T06:01:02.7806808Z           "complete": true,
2026-06-06T06:01:02.7807603Z           "evidence": [
2026-06-06T06:01:02.7808035Z             {
2026-06-06T06:01:02.7808714Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7809238Z               "line": 652
2026-06-06T06:01:02.7809981Z             },
2026-06-06T06:01:02.7810415Z             {
2026-06-06T06:01:02.7811106Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7811577Z               "line": 985
2026-06-06T06:01:02.7812022Z             }
2026-06-06T06:01:02.7812465Z           ]
2026-06-06T06:01:02.7812897Z         },
2026-06-06T06:01:02.7813547Z         "unit": {
2026-06-06T06:01:02.7814059Z           "complete": true,
2026-06-06T06:01:02.7814517Z           "evidence": [
2026-06-06T06:01:02.7814932Z             {
2026-06-06T06:01:02.7815569Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7816036Z               "line": 726
2026-06-06T06:01:02.7816456Z             },
2026-06-06T06:01:02.7816898Z             {
2026-06-06T06:01:02.7817555Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.7818087Z               "line": 787
2026-06-06T06:01:02.7818523Z             },
2026-06-06T06:01:02.7818967Z             {
2026-06-06T06:01:02.7819788Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7820548Z               "line": 3434
2026-06-06T06:01:02.7820999Z             },
2026-06-06T06:01:02.7821424Z             {
2026-06-06T06:01:02.7822016Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7822471Z               "line": 3461
2026-06-06T06:01:02.7822919Z             }
2026-06-06T06:01:02.7823396Z           ]
2026-06-06T06:01:02.7823835Z         }
2026-06-06T06:01:02.7824279Z       }
2026-06-06T06:01:02.7824700Z     },
2026-06-06T06:01:02.7825135Z     {
2026-06-06T06:01:02.7825631Z       "id": "REQ-PAIR-1",
2026-06-06T06:01:02.7826212Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-06T06:01:02.7826716Z       "requiredStages": [
2026-06-06T06:01:02.7827159Z         "impl",
2026-06-06T06:01:02.7827622Z         "unit",
2026-06-06T06:01:02.7828047Z         "int"
2026-06-06T06:01:02.7828482Z       ],
2026-06-06T06:01:02.7828932Z       "stages": {
2026-06-06T06:01:02.7829637Z         "doc": {
2026-06-06T06:01:02.7830291Z           "complete": false,
2026-06-06T06:01:02.7830753Z           "evidence": []
2026-06-06T06:01:02.7831188Z         },
2026-06-06T06:01:02.7831630Z         "impl": {
2026-06-06T06:01:02.7832108Z           "complete": true,
2026-06-06T06:01:02.7832550Z           "evidence": [
2026-06-06T06:01:02.7832986Z             {
2026-06-06T06:01:02.7833753Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7834223Z               "line": 27
2026-06-06T06:01:02.7834684Z             },
2026-06-06T06:01:02.7835126Z             {
2026-06-06T06:01:02.7835841Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7836304Z               "line": 88
2026-06-06T06:01:02.7836735Z             },
2026-06-06T06:01:02.7837167Z             {
2026-06-06T06:01:02.7837883Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7838364Z               "line": 110
2026-06-06T06:01:02.7838801Z             },
2026-06-06T06:01:02.7839653Z             {
2026-06-06T06:01:02.7840595Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7841077Z               "line": 153
2026-06-06T06:01:02.7841525Z             },
2026-06-06T06:01:02.7841945Z             {
2026-06-06T06:01:02.7842677Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7843147Z               "line": 182
2026-06-06T06:01:02.7843589Z             },
2026-06-06T06:01:02.7844010Z             {
2026-06-06T06:01:02.7844733Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7845208Z               "line": 29
2026-06-06T06:01:02.7845645Z             },
2026-06-06T06:01:02.7846087Z             {
2026-06-06T06:01:02.7846894Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-06T06:01:02.7847798Z               "line": 31
2026-06-06T06:01:02.7848222Z             },
2026-06-06T06:01:02.7848678Z             {
2026-06-06T06:01:02.7849655Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7850143Z               "line": 40
2026-06-06T06:01:02.7850589Z             },
2026-06-06T06:01:02.7851023Z             {
2026-06-06T06:01:02.7851768Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7852253Z               "line": 131
2026-06-06T06:01:02.7852714Z             },
2026-06-06T06:01:02.7853411Z             {
2026-06-06T06:01:02.7854187Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7854669Z               "line": 306
2026-06-06T06:01:02.7862312Z             }
2026-06-06T06:01:02.7862898Z           ]
2026-06-06T06:01:02.7863322Z         },
2026-06-06T06:01:02.7863757Z         "int": {
2026-06-06T06:01:02.7864233Z           "complete": true,
2026-06-06T06:01:02.7864722Z           "evidence": [
2026-06-06T06:01:02.7865146Z             {
2026-06-06T06:01:02.7865813Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7866279Z               "line": 535
2026-06-06T06:01:02.7866712Z             },
2026-06-06T06:01:02.7867127Z             {
2026-06-06T06:01:02.7867800Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.7868251Z               "line": 696
2026-06-06T06:01:02.7868676Z             }
2026-06-06T06:01:02.7869093Z           ]
2026-06-06T06:01:02.7869797Z         },
2026-06-06T06:01:02.7870427Z         "unit": {
2026-06-06T06:01:02.7870899Z           "complete": true,
2026-06-06T06:01:02.7871350Z           "evidence": [
2026-06-06T06:01:02.7871760Z             {
2026-06-06T06:01:02.7872483Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7872937Z               "line": 236
2026-06-06T06:01:02.7873369Z             },
2026-06-06T06:01:02.7873820Z             {
2026-06-06T06:01:02.7874583Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-06T06:01:02.7875080Z               "line": 349
2026-06-06T06:01:02.7875498Z             },
2026-06-06T06:01:02.7875925Z             {
2026-06-06T06:01:02.7876626Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7877089Z               "line": 194
2026-06-06T06:01:02.7877511Z             },
2026-06-06T06:01:02.7877921Z             {
2026-06-06T06:01:02.7878635Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7879114Z               "line": 216
2026-06-06T06:01:02.7879930Z             },
2026-06-06T06:01:02.7880361Z             {
2026-06-06T06:01:02.7881091Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7881563Z               "line": 230
2026-06-06T06:01:02.7881990Z             },
2026-06-06T06:01:02.7882428Z             {
2026-06-06T06:01:02.7883110Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7883584Z               "line": 242
2026-06-06T06:01:02.7884013Z             },
2026-06-06T06:01:02.7884441Z             {
2026-06-06T06:01:02.7885142Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7885592Z               "line": 256
2026-06-06T06:01:02.7886017Z             },
2026-06-06T06:01:02.7886437Z             {
2026-06-06T06:01:02.7887167Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7887644Z               "line": 270
2026-06-06T06:01:02.7888069Z             },
2026-06-06T06:01:02.7888511Z             {
2026-06-06T06:01:02.7889265Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7890054Z               "line": 277
2026-06-06T06:01:02.7890483Z             },
2026-06-06T06:01:02.7890919Z             {
2026-06-06T06:01:02.7891646Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-06T06:01:02.7892132Z               "line": 295
2026-06-06T06:01:02.7893158Z             },
2026-06-06T06:01:02.7893581Z             {
2026-06-06T06:01:02.7894304Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7894752Z               "line": 696
2026-06-06T06:01:02.7895183Z             },
2026-06-06T06:01:02.7895608Z             {
2026-06-06T06:01:02.7896293Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7896745Z               "line": 757
2026-06-06T06:01:02.7897162Z             },
2026-06-06T06:01:02.7897576Z             {
2026-06-06T06:01:02.7898473Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7898974Z               "line": 814
2026-06-06T06:01:02.7899649Z             },
2026-06-06T06:01:02.7900231Z             {
2026-06-06T06:01:02.7900950Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7901412Z               "line": 868
2026-06-06T06:01:02.7901840Z             },
2026-06-06T06:01:02.7902260Z             {
2026-06-06T06:01:02.7903005Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7903472Z               "line": 920
2026-06-06T06:01:02.7903887Z             },
2026-06-06T06:01:02.7904310Z             {
2026-06-06T06:01:02.7905031Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.7905509Z               "line": 1084
2026-06-06T06:01:02.7905933Z             }
2026-06-06T06:01:02.7906388Z           ]
2026-06-06T06:01:02.7906820Z         }
2026-06-06T06:01:02.7907240Z       }
2026-06-06T06:01:02.7907668Z     },
2026-06-06T06:01:02.7908074Z     {
2026-06-06T06:01:02.7908574Z       "id": "REQ-PAIR-2",
2026-06-06T06:01:02.7909559Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-06T06:01:02.7910231Z       "requiredStages": [
2026-06-06T06:01:02.7910670Z         "impl",
2026-06-06T06:01:02.7911090Z         "unit"
2026-06-06T06:01:02.7911518Z       ],
2026-06-06T06:01:02.7911943Z       "stages": {
2026-06-06T06:01:02.7912394Z         "doc": {
2026-06-06T06:01:02.7912892Z           "complete": false,
2026-06-06T06:01:02.7913363Z           "evidence": []
2026-06-06T06:01:02.7913792Z         },
2026-06-06T06:01:02.7914228Z         "impl": {
2026-06-06T06:01:02.7914712Z           "complete": true,
2026-06-06T06:01:02.7915155Z           "evidence": [
2026-06-06T06:01:02.7915581Z             {
2026-06-06T06:01:02.7916217Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7916688Z               "line": 42
2026-06-06T06:01:02.7917125Z             },
2026-06-06T06:01:02.7917536Z             {
2026-06-06T06:01:02.7918174Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7918627Z               "line": 151
2026-06-06T06:01:02.7919059Z             },
2026-06-06T06:01:02.7919696Z             {
2026-06-06T06:01:02.7920499Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7920975Z               "line": 171
2026-06-06T06:01:02.7921397Z             },
2026-06-06T06:01:02.7921819Z             {
2026-06-06T06:01:02.7922455Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7922928Z               "line": 209
2026-06-06T06:01:02.7923358Z             },
2026-06-06T06:01:02.7923781Z             {
2026-06-06T06:01:02.7924401Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7924862Z               "line": 232
2026-06-06T06:01:02.7925297Z             }
2026-06-06T06:01:02.7925709Z           ]
2026-06-06T06:01:02.7926136Z         },
2026-06-06T06:01:02.7926567Z         "int": {
2026-06-06T06:01:02.7927054Z           "complete": false,
2026-06-06T06:01:02.7927533Z           "evidence": []
2026-06-06T06:01:02.7927937Z         },
2026-06-06T06:01:02.7928379Z         "unit": {
2026-06-06T06:01:02.7928848Z           "complete": true,
2026-06-06T06:01:02.7929365Z           "evidence": [
2026-06-06T06:01:02.7929782Z             {
2026-06-06T06:01:02.7930411Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7930887Z               "line": 253
2026-06-06T06:01:02.7931720Z             },
2026-06-06T06:01:02.7932142Z             {
2026-06-06T06:01:02.7932757Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7933221Z               "line": 272
2026-06-06T06:01:02.7933653Z             },
2026-06-06T06:01:02.7934082Z             {
2026-06-06T06:01:02.7934711Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7935170Z               "line": 284
2026-06-06T06:01:02.7935603Z             },
2026-06-06T06:01:02.7936022Z             {
2026-06-06T06:01:02.7936832Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7937317Z               "line": 303
2026-06-06T06:01:02.7937739Z             },
2026-06-06T06:01:02.7938163Z             {
2026-06-06T06:01:02.7938767Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7939287Z               "line": 319
2026-06-06T06:01:02.7939711Z             },
2026-06-06T06:01:02.7940142Z             {
2026-06-06T06:01:02.7940762Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7941228Z               "line": 331
2026-06-06T06:01:02.7941671Z             },
2026-06-06T06:01:02.7942102Z             {
2026-06-06T06:01:02.7942731Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7943188Z               "line": 343
2026-06-06T06:01:02.7943625Z             },
2026-06-06T06:01:02.7944057Z             {
2026-06-06T06:01:02.7944684Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7945159Z               "line": 356
2026-06-06T06:01:02.7953024Z             },
2026-06-06T06:01:02.7953645Z             {
2026-06-06T06:01:02.7954292Z               "path": "crates/spt-store/src/trust.rs",
2026-06-06T06:01:02.7954755Z               "line": 370
2026-06-06T06:01:02.7955176Z             }
2026-06-06T06:01:02.7955596Z           ]
2026-06-06T06:01:02.7956015Z         }
2026-06-06T06:01:02.7956422Z       }
2026-06-06T06:01:02.7956838Z     },
2026-06-06T06:01:02.7957250Z     {
2026-06-06T06:01:02.7957738Z       "id": "REQ-PAIR-3",
2026-06-06T06:01:02.7958561Z       "title": "Fetch current pairing code from any paired node",
2026-06-06T06:01:02.7959027Z       "requiredStages": [
2026-06-06T06:01:02.7959532Z         "impl",
2026-06-06T06:01:02.7960088Z         "unit"
2026-06-06T06:01:02.7960498Z       ],
2026-06-06T06:01:02.7960922Z       "stages": {
2026-06-06T06:01:02.7961333Z         "doc": {
2026-06-06T06:01:02.7961797Z           "complete": false,
2026-06-06T06:01:02.7962234Z           "evidence": []
2026-06-06T06:01:02.7962641Z         },
2026-06-06T06:01:02.7964047Z         "impl": {
2026-06-06T06:01:02.7964628Z           "complete": true,
2026-06-06T06:01:02.7965127Z           "evidence": [
2026-06-06T06:01:02.7965601Z             {
2026-06-06T06:01:02.7966224Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7966701Z               "line": 1504
2026-06-06T06:01:02.7967142Z             },
2026-06-06T06:01:02.7967573Z             {
2026-06-06T06:01:02.7968152Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7968632Z               "line": 1540
2026-06-06T06:01:02.7969085Z             },
2026-06-06T06:01:02.7969727Z             {
2026-06-06T06:01:02.7970273Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7970733Z               "line": 1687
2026-06-06T06:01:02.7971134Z             }
2026-06-06T06:01:02.7971544Z           ]
2026-06-06T06:01:02.7971945Z         },
2026-06-06T06:01:02.7972369Z         "int": {
2026-06-06T06:01:02.7972842Z           "complete": false,
2026-06-06T06:01:02.7973283Z           "evidence": []
2026-06-06T06:01:02.7973705Z         },
2026-06-06T06:01:02.7974134Z         "unit": {
2026-06-06T06:01:02.7974596Z           "complete": true,
2026-06-06T06:01:02.7975032Z           "evidence": [
2026-06-06T06:01:02.7975450Z             {
2026-06-06T06:01:02.7976006Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7976456Z               "line": 4459
2026-06-06T06:01:02.7976878Z             },
2026-06-06T06:01:02.7977828Z             {
2026-06-06T06:01:02.7978382Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7978819Z               "line": 4715
2026-06-06T06:01:02.7979300Z             },
2026-06-06T06:01:02.7980028Z             {
2026-06-06T06:01:02.7981169Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7981708Z               "line": 4731
2026-06-06T06:01:02.7982185Z             },
2026-06-06T06:01:02.7982649Z             {
2026-06-06T06:01:02.7983368Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7984197Z               "line": 4752
2026-06-06T06:01:02.7984987Z             },
2026-06-06T06:01:02.7985483Z             {
2026-06-06T06:01:02.7986076Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7986547Z               "line": 4768
2026-06-06T06:01:02.7986987Z             },
2026-06-06T06:01:02.7987429Z             {
2026-06-06T06:01:02.7988012Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7988510Z               "line": 4781
2026-06-06T06:01:02.7988976Z             },
2026-06-06T06:01:02.7989644Z             {
2026-06-06T06:01:02.7990188Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.7990653Z               "line": 4790
2026-06-06T06:01:02.7991061Z             }
2026-06-06T06:01:02.7991473Z           ]
2026-06-06T06:01:02.7991890Z         }
2026-06-06T06:01:02.7992294Z       }
2026-06-06T06:01:02.7992716Z     },
2026-06-06T06:01:02.7993120Z     {
2026-06-06T06:01:02.7993618Z       "id": "REQ-PAIR-4",
2026-06-06T06:01:02.7994219Z       "title": "Subnet naming on first pairing",
2026-06-06T06:01:02.7994740Z       "requiredStages": [
2026-06-06T06:01:02.7995188Z         "impl",
2026-06-06T06:01:02.7995617Z         "unit"
2026-06-06T06:01:02.7996055Z       ],
2026-06-06T06:01:02.7996496Z       "stages": {
2026-06-06T06:01:02.7997493Z         "doc": {
2026-06-06T06:01:02.7998038Z           "complete": false,
2026-06-06T06:01:02.7998554Z           "evidence": []
2026-06-06T06:01:02.7999013Z         },
2026-06-06T06:01:02.7999667Z         "impl": {
2026-06-06T06:01:02.8000268Z           "complete": true,
2026-06-06T06:01:02.8000712Z           "evidence": [
2026-06-06T06:01:02.8001529Z             {
2026-06-06T06:01:02.8002227Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-06T06:01:02.8002725Z               "line": 154
2026-06-06T06:01:02.8003162Z             }
2026-06-06T06:01:02.8003591Z           ]
2026-06-06T06:01:02.8004022Z         },
2026-06-06T06:01:02.8004461Z         "int": {
2026-06-06T06:01:02.8004977Z           "complete": false,
2026-06-06T06:01:02.8005477Z           "evidence": []
2026-06-06T06:01:02.8005927Z         },
2026-06-06T06:01:02.8006376Z         "unit": {
2026-06-06T06:01:02.8006852Z           "complete": true,
2026-06-06T06:01:02.8007325Z           "evidence": [
2026-06-06T06:01:02.8007757Z             {
2026-06-06T06:01:02.8008485Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.8008966Z               "line": 972
2026-06-06T06:01:02.8009680Z             }
2026-06-06T06:01:02.8010130Z           ]
2026-06-06T06:01:02.8010547Z         }
2026-06-06T06:01:02.8010972Z       }
2026-06-06T06:01:02.8011374Z     },
2026-06-06T06:01:02.8011793Z     {
2026-06-06T06:01:02.8012265Z       "id": "REQ-PAIR-5",
2026-06-06T06:01:02.8014823Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-06T06:01:02.8015467Z       "requiredStages": [
2026-06-06T06:01:02.8015923Z         "impl",
2026-06-06T06:01:02.8016390Z         "unit",
2026-06-06T06:01:02.8016876Z         "int"
2026-06-06T06:01:02.8017323Z       ],
2026-06-06T06:01:02.8018062Z       "stages": {
2026-06-06T06:01:02.8018575Z         "doc": {
2026-06-06T06:01:02.8019092Z           "complete": false,
2026-06-06T06:01:02.8019646Z           "evidence": []
2026-06-06T06:01:02.8020089Z         },
2026-06-06T06:01:02.8020687Z         "impl": {
2026-06-06T06:01:02.8021158Z           "complete": true,
2026-06-06T06:01:02.8022648Z           "evidence": [
2026-06-06T06:01:02.8023103Z             {
2026-06-06T06:01:02.8023845Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8024297Z               "line": 44
2026-06-06T06:01:02.8025078Z             },
2026-06-06T06:01:02.8025524Z             {
2026-06-06T06:01:02.8026285Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8026743Z               "line": 96
2026-06-06T06:01:02.8027183Z             },
2026-06-06T06:01:02.8027829Z             {
2026-06-06T06:01:02.8028863Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8029527Z               "line": 107
2026-06-06T06:01:02.8030039Z             },
2026-06-06T06:01:02.8030661Z             {
2026-06-06T06:01:02.8031432Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8031928Z               "line": 124
2026-06-06T06:01:02.8032359Z             },
2026-06-06T06:01:02.8032717Z             {
2026-06-06T06:01:02.8033388Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8033783Z               "line": 155
2026-06-06T06:01:02.8034117Z             },
2026-06-06T06:01:02.8034425Z             {
2026-06-06T06:01:02.8035009Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8035403Z               "line": 195
2026-06-06T06:01:02.8035724Z             },
2026-06-06T06:01:02.8036049Z             {
2026-06-06T06:01:02.8036666Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8037073Z               "line": 236
2026-06-06T06:01:02.8037468Z             },
2026-06-06T06:01:02.8037826Z             {
2026-06-06T06:01:02.8038557Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8038893Z               "line": 33
2026-06-06T06:01:02.8039297Z             },
2026-06-06T06:01:02.8039654Z             {
2026-06-06T06:01:02.8047614Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8048009Z               "line": 45
2026-06-06T06:01:02.8048261Z             },
2026-06-06T06:01:02.8048515Z             {
2026-06-06T06:01:02.8049112Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8049805Z               "line": 59
2026-06-06T06:01:02.8050057Z             },
2026-06-06T06:01:02.8050314Z             {
2026-06-06T06:01:02.8050826Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.8051108Z               "line": 306
2026-06-06T06:01:02.8051357Z             }
2026-06-06T06:01:02.8051611Z           ]
2026-06-06T06:01:02.8051861Z         },
2026-06-06T06:01:02.8052113Z         "int": {
2026-06-06T06:01:02.8052416Z           "complete": true,
2026-06-06T06:01:02.8052699Z           "evidence": [
2026-06-06T06:01:02.8052944Z             {
2026-06-06T06:01:02.8053423Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8053699Z               "line": 696
2026-06-06T06:01:02.8053961Z             },
2026-06-06T06:01:02.8054203Z             {
2026-06-06T06:01:02.8054716Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8054998Z               "line": 315
2026-06-06T06:01:02.8055238Z             }
2026-06-06T06:01:02.8055492Z           ]
2026-06-06T06:01:02.8055728Z         },
2026-06-06T06:01:02.8055990Z         "unit": {
2026-06-06T06:01:02.8056282Z           "complete": true,
2026-06-06T06:01:02.8056565Z           "evidence": [
2026-06-06T06:01:02.8056821Z             {
2026-06-06T06:01:02.8057333Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8057616Z               "line": 265
2026-06-06T06:01:02.8057858Z             },
2026-06-06T06:01:02.8058114Z             {
2026-06-06T06:01:02.8058616Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8058908Z               "line": 276
2026-06-06T06:01:02.8059200Z             },
2026-06-06T06:01:02.8059457Z             {
2026-06-06T06:01:02.8060398Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-06T06:01:02.8060672Z               "line": 375
2026-06-06T06:01:02.8060933Z             },
2026-06-06T06:01:02.8061187Z             {
2026-06-06T06:01:02.8061773Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8062051Z               "line": 72
2026-06-06T06:01:02.8062292Z             },
2026-06-06T06:01:02.8062544Z             {
2026-06-06T06:01:02.8063135Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8063576Z               "line": 82
2026-06-06T06:01:02.8063840Z             },
2026-06-06T06:01:02.8064088Z             {
2026-06-06T06:01:02.8064688Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8064956Z               "line": 92
2026-06-06T06:01:02.8065212Z             },
2026-06-06T06:01:02.8065455Z             {
2026-06-06T06:01:02.8066042Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8066345Z               "line": 102
2026-06-06T06:01:02.8066592Z             },
2026-06-06T06:01:02.8066839Z             {
2026-06-06T06:01:02.8067428Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-06T06:01:02.8067732Z               "line": 117
2026-06-06T06:01:02.8067979Z             },
2026-06-06T06:01:02.8068235Z             {
2026-06-06T06:01:02.8068756Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.8069031Z               "line": 750
2026-06-06T06:01:02.8069332Z             },
2026-06-06T06:01:02.8069588Z             {
2026-06-06T06:01:02.8070227Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.8070493Z               "line": 806
2026-06-06T06:01:02.8070747Z             },
2026-06-06T06:01:02.8070988Z             {
2026-06-06T06:01:02.8071470Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-06T06:01:02.8071743Z               "line": 1026
2026-06-06T06:01:02.8071990Z             }
2026-06-06T06:01:02.8072230Z           ]
2026-06-06T06:01:02.8072460Z         }
2026-06-06T06:01:02.8072703Z       }
2026-06-06T06:01:02.8072939Z     },
2026-06-06T06:01:02.8073168Z     {
2026-06-06T06:01:02.8073460Z       "id": "REQ-PAIR-6",
2026-06-06T06:01:02.8074676Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-06T06:01:02.8074979Z       "requiredStages": [
2026-06-06T06:01:02.8075234Z         "impl",
2026-06-06T06:01:02.8075471Z         "unit"
2026-06-06T06:01:02.8075715Z       ],
2026-06-06T06:01:02.8075970Z       "stages": {
2026-06-06T06:01:02.8076223Z         "doc": {
2026-06-06T06:01:02.8076507Z           "complete": false,
2026-06-06T06:01:02.8076789Z           "evidence": []
2026-06-06T06:01:02.8077022Z         },
2026-06-06T06:01:02.8077284Z         "impl": {
2026-06-06T06:01:02.8077576Z           "complete": true,
2026-06-06T06:01:02.8077838Z           "evidence": [
2026-06-06T06:01:02.8078088Z             {
2026-06-06T06:01:02.8078446Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8078726Z               "line": 1540
2026-06-06T06:01:02.8078962Z             },
2026-06-06T06:01:02.8079248Z             {
2026-06-06T06:01:02.8079931Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8080199Z               "line": 1687
2026-06-06T06:01:02.8080446Z             },
2026-06-06T06:01:02.8080683Z             {
2026-06-06T06:01:02.8081089Z               "path": "crates/spt/src/elevation.rs",
2026-06-06T06:01:02.8081358Z               "line": 18
2026-06-06T06:01:02.8081607Z             },
2026-06-06T06:01:02.8081855Z             {
2026-06-06T06:01:02.8082251Z               "path": "crates/spt/src/elevation.rs",
2026-06-06T06:01:02.8082521Z               "line": 49
2026-06-06T06:01:02.8082757Z             },
2026-06-06T06:01:02.8083007Z             {
2026-06-06T06:01:02.8083412Z               "path": "crates/spt/src/elevation.rs",
2026-06-06T06:01:02.8083676Z               "line": 70
2026-06-06T06:01:02.8084105Z             }
2026-06-06T06:01:02.8084344Z           ]
2026-06-06T06:01:02.8084587Z         },
2026-06-06T06:01:02.8084827Z         "int": {
2026-06-06T06:01:02.8085125Z           "complete": false,
2026-06-06T06:01:02.8085408Z           "evidence": []
2026-06-06T06:01:02.8085641Z         },
2026-06-06T06:01:02.8085894Z         "unit": {
2026-06-06T06:01:02.8086172Z           "complete": true,
2026-06-06T06:01:02.8086445Z           "evidence": [
2026-06-06T06:01:02.8086683Z             {
2026-06-06T06:01:02.8087171Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8087466Z               "line": 4803
2026-06-06T06:01:02.8087708Z             },
2026-06-06T06:01:02.8087952Z             {
2026-06-06T06:01:02.8088309Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8088585Z               "line": 4820
2026-06-06T06:01:02.8088820Z             },
2026-06-06T06:01:02.8089068Z             {
2026-06-06T06:01:02.8089707Z               "path": "crates/spt/src/elevation.rs",
2026-06-06T06:01:02.8090134Z               "line": 132
2026-06-06T06:01:02.8090381Z             },
2026-06-06T06:01:02.8090619Z             {
2026-06-06T06:01:02.8091025Z               "path": "crates/spt/src/elevation.rs",
2026-06-06T06:01:02.8091297Z               "line": 141
2026-06-06T06:01:02.8091550Z             }
2026-06-06T06:01:02.8091795Z           ]
2026-06-06T06:01:02.8092031Z         }
2026-06-06T06:01:02.8092275Z       }
2026-06-06T06:01:02.8092505Z     },
2026-06-06T06:01:02.8092738Z     {
2026-06-06T06:01:02.8093021Z       "id": "REQ-PAIR-7",
2026-06-06T06:01:02.8093701Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-06T06:01:02.8094013Z       "requiredStages": [],
2026-06-06T06:01:02.8094267Z       "stages": {
2026-06-06T06:01:02.8094516Z         "doc": {
2026-06-06T06:01:02.8094806Z           "complete": false,
2026-06-06T06:01:02.8095085Z           "evidence": []
2026-06-06T06:01:02.8095317Z         },
2026-06-06T06:01:02.8095589Z         "impl": {
2026-06-06T06:01:02.8095882Z           "complete": false,
2026-06-06T06:01:02.8096154Z           "evidence": []
2026-06-06T06:01:02.8096396Z         },
2026-06-06T06:01:02.8096641Z         "int": {
2026-06-06T06:01:02.8096933Z           "complete": false,
2026-06-06T06:01:02.8097203Z           "evidence": []
2026-06-06T06:01:02.8097446Z         },
2026-06-06T06:01:02.8097700Z         "unit": {
2026-06-06T06:01:02.8097986Z           "complete": false,
2026-06-06T06:01:02.8098263Z           "evidence": []
2026-06-06T06:01:02.8098496Z         }
2026-06-06T06:01:02.8105288Z       }
2026-06-06T06:01:02.8105597Z     },
2026-06-06T06:01:02.8105839Z     {
2026-06-06T06:01:02.8106142Z       "id": "REQ-PRES-1",
2026-06-06T06:01:02.8113800Z       "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-06T06:01:02.8114149Z       "requiredStages": [
2026-06-06T06:01:02.8114393Z         "impl",
2026-06-06T06:01:02.8114647Z         "unit",
2026-06-06T06:01:02.8114898Z         "int"
2026-06-06T06:01:02.8115134Z       ],
2026-06-06T06:01:02.8115391Z       "stages": {
2026-06-06T06:01:02.8115623Z         "doc": {
2026-06-06T06:01:02.8115912Z           "complete": true,
2026-06-06T06:01:02.8116215Z           "evidence": [
2026-06-06T06:01:02.8116462Z             {
2026-06-06T06:01:02.8116795Z               "path": "docs/DEFERRED.md",
2026-06-06T06:01:02.8117055Z               "line": 11
2026-06-06T06:01:02.8117303Z             }
2026-06-06T06:01:02.8117535Z           ]
2026-06-06T06:01:02.8117774Z         },
2026-06-06T06:01:02.8118022Z         "impl": {
2026-06-06T06:01:02.8118314Z           "complete": true,
2026-06-06T06:01:02.8118903Z           "evidence": [
2026-06-06T06:01:02.8119140Z             {
2026-06-06T06:01:02.8119962Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.8120225Z               "line": 457
2026-06-06T06:01:02.8120471Z             },
2026-06-06T06:01:02.8120712Z             {
2026-06-06T06:01:02.8121174Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.8121451Z               "line": 505
2026-06-06T06:01:02.8121687Z             },
2026-06-06T06:01:02.8121935Z             {
2026-06-06T06:01:02.8122493Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.8122780Z               "line": 168
2026-06-06T06:01:02.8123017Z             },
2026-06-06T06:01:02.8123266Z             {
2026-06-06T06:01:02.8123697Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.8123966Z               "line": 186
2026-06-06T06:01:02.8124213Z             },
2026-06-06T06:01:02.8124448Z             {
2026-06-06T06:01:02.8124920Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8125179Z               "line": 28
2026-06-06T06:01:02.8125435Z             },
2026-06-06T06:01:02.8125678Z             {
2026-06-06T06:01:02.8126128Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8126400Z               "line": 99
2026-06-06T06:01:02.8126636Z             },
2026-06-06T06:01:02.8126882Z             {
2026-06-06T06:01:02.8127332Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8127604Z               "line": 153
2026-06-06T06:01:02.8127863Z             },
2026-06-06T06:01:02.8128097Z             {
2026-06-06T06:01:02.8128557Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8128824Z               "line": 172
2026-06-06T06:01:02.8129071Z             },
2026-06-06T06:01:02.8129350Z             {
2026-06-06T06:01:02.8130189Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8130468Z               "line": 301
2026-06-06T06:01:02.8130714Z             },
2026-06-06T06:01:02.8130961Z             {
2026-06-06T06:01:02.8131417Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8131693Z               "line": 282
2026-06-06T06:01:02.8131942Z             },
2026-06-06T06:01:02.8132177Z             {
2026-06-06T06:01:02.8132642Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8132908Z               "line": 329
2026-06-06T06:01:02.8133152Z             },
2026-06-06T06:01:02.8133384Z             {
2026-06-06T06:01:02.8133857Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8134130Z               "line": 355
2026-06-06T06:01:02.8134366Z             },
2026-06-06T06:01:02.8134608Z             {
2026-06-06T06:01:02.8135052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8135323Z               "line": 100
2026-06-06T06:01:02.8135554Z             }
2026-06-06T06:01:02.8135802Z           ]
2026-06-06T06:01:02.8136051Z         },
2026-06-06T06:01:02.8136297Z         "int": {
2026-06-06T06:01:02.8136586Z           "complete": true,
2026-06-06T06:01:02.8136852Z           "evidence": [
2026-06-06T06:01:02.8137095Z             {
2026-06-06T06:01:02.8137563Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8137833Z               "line": 517
2026-06-06T06:01:02.8138079Z             },
2026-06-06T06:01:02.8138310Z             {
2026-06-06T06:01:02.8138766Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8139037Z               "line": 612
2026-06-06T06:01:02.8139615Z             },
2026-06-06T06:01:02.8139853Z             {
2026-06-06T06:01:02.8140318Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8140592Z               "line": 919
2026-06-06T06:01:02.8140829Z             }
2026-06-06T06:01:02.8141077Z           ]
2026-06-06T06:01:02.8141310Z         },
2026-06-06T06:01:02.8141564Z         "unit": {
2026-06-06T06:01:02.8142014Z           "complete": true,
2026-06-06T06:01:02.8142293Z           "evidence": [
2026-06-06T06:01:02.8142538Z             {
2026-06-06T06:01:02.8142952Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.8143231Z               "line": 507
2026-06-06T06:01:02.8143463Z             },
2026-06-06T06:01:02.8143704Z             {
2026-06-06T06:01:02.8144145Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8144423Z               "line": 219
2026-06-06T06:01:02.8144679Z             },
2026-06-06T06:01:02.8144914Z             {
2026-06-06T06:01:02.8145537Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8145820Z               "line": 250
2026-06-06T06:01:02.8146073Z             },
2026-06-06T06:01:02.8146309Z             {
2026-06-06T06:01:02.8146781Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8147054Z               "line": 283
2026-06-06T06:01:02.8147290Z             },
2026-06-06T06:01:02.8147543Z             {
2026-06-06T06:01:02.8147991Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-06T06:01:02.8148265Z               "line": 314
2026-06-06T06:01:02.8148499Z             },
2026-06-06T06:01:02.8148743Z             {
2026-06-06T06:01:02.8149308Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8149755Z               "line": 531
2026-06-06T06:01:02.8150169Z             },
2026-06-06T06:01:02.8150402Z             {
2026-06-06T06:01:02.8150857Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8151147Z               "line": 825
2026-06-06T06:01:02.8151386Z             }
2026-06-06T06:01:02.8151628Z           ]
2026-06-06T06:01:02.8151866Z         }
2026-06-06T06:01:02.8152109Z       }
2026-06-06T06:01:02.8152341Z     },
2026-06-06T06:01:02.8152581Z     {
2026-06-06T06:01:02.8152861Z       "id": "REQ-REACH-1",
2026-06-06T06:01:02.8153456Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-06T06:01:02.8153769Z       "requiredStages": [
2026-06-06T06:01:02.8154014Z         "impl",
2026-06-06T06:01:02.8154265Z         "unit",
2026-06-06T06:01:02.8154506Z         "int"
2026-06-06T06:01:02.8154751Z       ],
2026-06-06T06:01:02.8154998Z       "stages": {
2026-06-06T06:01:02.8155252Z         "doc": {
2026-06-06T06:01:02.8155552Z           "complete": false,
2026-06-06T06:01:02.8155823Z           "evidence": []
2026-06-06T06:01:02.8156065Z         },
2026-06-06T06:01:02.8156312Z         "impl": {
2026-06-06T06:01:02.8156602Z           "complete": true,
2026-06-06T06:01:02.8156875Z           "evidence": [
2026-06-06T06:01:02.8157126Z             {
2026-06-06T06:01:02.8157573Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-06T06:01:02.8157836Z               "line": 133
2026-06-06T06:01:02.8158079Z             },
2026-06-06T06:01:02.8158313Z             {
2026-06-06T06:01:02.8158728Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8158992Z               "line": 76
2026-06-06T06:01:02.8159306Z             },
2026-06-06T06:01:02.8159733Z             {
2026-06-06T06:01:02.8160307Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8160578Z               "line": 209
2026-06-06T06:01:02.8160814Z             },
2026-06-06T06:01:02.8161059Z             {
2026-06-06T06:01:02.8161477Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8161744Z               "line": 386
2026-06-06T06:01:02.8161987Z             },
2026-06-06T06:01:02.8162221Z             {
2026-06-06T06:01:02.8167804Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8168141Z               "line": 484
2026-06-06T06:01:02.8168392Z             },
2026-06-06T06:01:02.8168638Z             {
2026-06-06T06:01:02.8169060Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-06T06:01:02.8169590Z               "line": 39
2026-06-06T06:01:02.8169993Z             },
2026-06-06T06:01:02.8170243Z             {
2026-06-06T06:01:02.8170898Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.8171167Z               "line": 217
2026-06-06T06:01:02.8171406Z             },
2026-06-06T06:01:02.8171636Z             {
2026-06-06T06:01:02.8172043Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-06T06:01:02.8172304Z               "line": 82
2026-06-06T06:01:02.8172545Z             },
2026-06-06T06:01:02.8172779Z             {
2026-06-06T06:01:02.8173184Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-06T06:01:02.8173453Z               "line": 92
2026-06-06T06:01:02.8173822Z             },
2026-06-06T06:01:02.8174079Z             {
2026-06-06T06:01:02.8174521Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8174795Z               "line": 204
2026-06-06T06:01:02.8175036Z             }
2026-06-06T06:01:02.8175279Z           ]
2026-06-06T06:01:02.8175521Z         },
2026-06-06T06:01:02.8175760Z         "int": {
2026-06-06T06:01:02.8176052Z           "complete": true,
2026-06-06T06:01:02.8176328Z           "evidence": [
2026-06-06T06:01:02.8176573Z             {
2026-06-06T06:01:02.8177048Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8177324Z               "line": 375
2026-06-06T06:01:02.8177569Z             },
2026-06-06T06:01:02.8177807Z             {
2026-06-06T06:01:02.8178287Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8178545Z               "line": 478
2026-06-06T06:01:02.8178785Z             },
2026-06-06T06:01:02.8179021Z             {
2026-06-06T06:01:02.8179733Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8180184Z               "line": 784
2026-06-06T06:01:02.8180422Z             },
2026-06-06T06:01:02.8180668Z             {
2026-06-06T06:01:02.8181117Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8181395Z               "line": 1015
2026-06-06T06:01:02.8181627Z             }
2026-06-06T06:01:02.8181871Z           ]
2026-06-06T06:01:02.8182118Z         },
2026-06-06T06:01:02.8182356Z         "unit": {
2026-06-06T06:01:02.8182653Z           "complete": true,
2026-06-06T06:01:02.8182918Z           "evidence": [
2026-06-06T06:01:02.8183156Z             {
2026-06-06T06:01:02.8183560Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8183835Z               "line": 585
2026-06-06T06:01:02.8184077Z             },
2026-06-06T06:01:02.8184307Z             {
2026-06-06T06:01:02.8184720Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-06T06:01:02.8184987Z               "line": 606
2026-06-06T06:01:02.8185240Z             },
2026-06-06T06:01:02.8185483Z             {
2026-06-06T06:01:02.8185937Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-06T06:01:02.8186208Z               "line": 337
2026-06-06T06:01:02.8186442Z             },
2026-06-06T06:01:02.8186683Z             {
2026-06-06T06:01:02.8187116Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-06T06:01:02.8187392Z               "line": 92
2026-06-06T06:01:02.8187636Z             },
2026-06-06T06:01:02.8187868Z             {
2026-06-06T06:01:02.8188308Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-06T06:01:02.8188567Z               "line": 176
2026-06-06T06:01:02.8188813Z             },
2026-06-06T06:01:02.8189046Z             {
2026-06-06T06:01:02.8189708Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-06T06:01:02.8190143Z               "line": 92
2026-06-06T06:01:02.8190373Z             },
2026-06-06T06:01:02.8190612Z             {
2026-06-06T06:01:02.8191029Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-06T06:01:02.8191300Z               "line": 123
2026-06-06T06:01:02.8191535Z             },
2026-06-06T06:01:02.8191779Z             {
2026-06-06T06:01:02.8192179Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.8192441Z               "line": 436
2026-06-06T06:01:02.8192685Z             },
2026-06-06T06:01:02.8192915Z             {
2026-06-06T06:01:02.8193496Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-06T06:01:02.8193767Z               "line": 112
2026-06-06T06:01:02.8194013Z             },
2026-06-06T06:01:02.8194255Z             {
2026-06-06T06:01:02.8194653Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-06T06:01:02.8194928Z               "line": 136
2026-06-06T06:01:02.8195162Z             },
2026-06-06T06:01:02.8195407Z             {
2026-06-06T06:01:02.8195842Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8196114Z               "line": 563
2026-06-06T06:01:02.8196476Z             }
2026-06-06T06:01:02.8196726Z           ]
2026-06-06T06:01:02.8196969Z         }
2026-06-06T06:01:02.8197205Z       }
2026-06-06T06:01:02.8197448Z     },
2026-06-06T06:01:02.8197673Z     {
2026-06-06T06:01:02.8197965Z       "id": "REQ-REACH-2",
2026-06-06T06:01:02.8198632Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-06T06:01:02.8198947Z       "requiredStages": [],
2026-06-06T06:01:02.8199283Z       "stages": {
2026-06-06T06:01:02.8199691Z         "doc": {
2026-06-06T06:01:02.8200160Z           "complete": false,
2026-06-06T06:01:02.8200434Z           "evidence": []
2026-06-06T06:01:02.8200679Z         },
2026-06-06T06:01:02.8200932Z         "impl": {
2026-06-06T06:01:02.8201217Z           "complete": false,
2026-06-06T06:01:02.8201494Z           "evidence": []
2026-06-06T06:01:02.8201724Z         },
2026-06-06T06:01:02.8201977Z         "int": {
2026-06-06T06:01:02.8202256Z           "complete": false,
2026-06-06T06:01:02.8202541Z           "evidence": []
2026-06-06T06:01:02.8202785Z         },
2026-06-06T06:01:02.8203027Z         "unit": {
2026-06-06T06:01:02.8203323Z           "complete": false,
2026-06-06T06:01:02.8203592Z           "evidence": []
2026-06-06T06:01:02.8203832Z         }
2026-06-06T06:01:02.8204063Z       }
2026-06-06T06:01:02.8204295Z     },
2026-06-06T06:01:02.8204534Z     {
2026-06-06T06:01:02.8204803Z       "id": "REQ-REL-1",
2026-06-06T06:01:02.8206722Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-06T06:01:02.8207015Z       "requiredStages": [
2026-06-06T06:01:02.8207265Z         "doc",
2026-06-06T06:01:02.8207506Z         "impl"
2026-06-06T06:01:02.8207745Z       ],
2026-06-06T06:01:02.8208001Z       "stages": {
2026-06-06T06:01:02.8208246Z         "doc": {
2026-06-06T06:01:02.8208533Z           "complete": true,
2026-06-06T06:01:02.8208796Z           "evidence": [
2026-06-06T06:01:02.8209041Z             {
2026-06-06T06:01:02.8210451Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-06T06:01:02.8210725Z               "line": 3
2026-06-06T06:01:02.8210969Z             }
2026-06-06T06:01:02.8211200Z           ]
2026-06-06T06:01:02.8211440Z         },
2026-06-06T06:01:02.8211676Z         "impl": {
2026-06-06T06:01:02.8211973Z           "complete": true,
2026-06-06T06:01:02.8212249Z           "evidence": [
2026-06-06T06:01:02.8212491Z             {
2026-06-06T06:01:02.8212956Z               "path": ".github/workflows/docs-publish.yml",
2026-06-06T06:01:02.8213214Z               "line": 11
2026-06-06T06:01:02.8213452Z             },
2026-06-06T06:01:02.8213686Z             {
2026-06-06T06:01:02.8214065Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8214324Z               "line": 261
2026-06-06T06:01:02.8214569Z             }
2026-06-06T06:01:02.8214812Z           ]
2026-06-06T06:01:02.8215046Z         },
2026-06-06T06:01:02.8215305Z         "int": {
2026-06-06T06:01:02.8215589Z           "complete": false,
2026-06-06T06:01:02.8215872Z           "evidence": []
2026-06-06T06:01:02.8216107Z         },
2026-06-06T06:01:02.8216362Z         "unit": {
2026-06-06T06:01:02.8216655Z           "complete": false,
2026-06-06T06:01:02.8216920Z           "evidence": []
2026-06-06T06:01:02.8217164Z         }
2026-06-06T06:01:02.8217398Z       }
2026-06-06T06:01:02.8217824Z     },
2026-06-06T06:01:02.8218056Z     {
2026-06-06T06:01:02.8218340Z       "id": "REQ-REL-2",
2026-06-06T06:01:02.8226246Z       "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-06T06:01:02.8226622Z       "requiredStages": [
2026-06-06T06:01:02.8226879Z         "impl",
2026-06-06T06:01:02.8227116Z         "int"
2026-06-06T06:01:02.8227355Z       ],
2026-06-06T06:01:02.8227609Z       "stages": {
2026-06-06T06:01:02.8227864Z         "doc": {
2026-06-06T06:01:02.8228386Z           "complete": true,
2026-06-06T06:01:02.8228670Z           "evidence": [
2026-06-06T06:01:02.8228916Z             {
2026-06-06T06:01:02.8229559Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-06T06:01:02.8229845Z               "line": 6
2026-06-06T06:01:02.8230239Z             }
2026-06-06T06:01:02.8230505Z           ]
2026-06-06T06:01:02.8230749Z         },
2026-06-06T06:01:02.8231024Z         "impl": {
2026-06-06T06:01:02.8231321Z           "complete": true,
2026-06-06T06:01:02.8231588Z           "evidence": [
2026-06-06T06:01:02.8231831Z             {
2026-06-06T06:01:02.8232251Z               "path": ".github/workflows/release.yml",
2026-06-06T06:01:02.8232520Z               "line": 16
2026-06-06T06:01:02.8232764Z             },
2026-06-06T06:01:02.8232997Z             {
2026-06-06T06:01:02.8233374Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8233632Z               "line": 338
2026-06-06T06:01:02.8233875Z             },
2026-06-06T06:01:02.8234112Z             {
2026-06-06T06:01:02.8234490Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8234757Z               "line": 402
2026-06-06T06:01:02.8234996Z             },
2026-06-06T06:01:02.8235238Z             {
2026-06-06T06:01:02.8235608Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8235890Z               "line": 459
2026-06-06T06:01:02.8236136Z             },
2026-06-06T06:01:02.8236376Z             {
2026-06-06T06:01:02.8236750Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8237018Z               "line": 543
2026-06-06T06:01:02.8237260Z             }
2026-06-06T06:01:02.8237494Z           ]
2026-06-06T06:01:02.8237730Z         },
2026-06-06T06:01:02.8237977Z         "int": {
2026-06-06T06:01:02.8238254Z           "complete": true,
2026-06-06T06:01:02.8238527Z           "evidence": [
2026-06-06T06:01:02.8238757Z             {
2026-06-06T06:01:02.8239439Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-06T06:01:02.8239863Z               "line": 13
2026-06-06T06:01:02.8240110Z             }
2026-06-06T06:01:02.8240355Z           ]
2026-06-06T06:01:02.8240595Z         },
2026-06-06T06:01:02.8240843Z         "unit": {
2026-06-06T06:01:02.8241124Z           "complete": false,
2026-06-06T06:01:02.8241399Z           "evidence": []
2026-06-06T06:01:02.8241633Z         }
2026-06-06T06:01:02.8241873Z       }
2026-06-06T06:01:02.8242118Z     },
2026-06-06T06:01:02.8242356Z     {
2026-06-06T06:01:02.8242633Z       "id": "REQ-REL-3",
2026-06-06T06:01:02.8244873Z       "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-06T06:01:02.8245178Z       "requiredStages": [
2026-06-06T06:01:02.8245420Z         "impl",
2026-06-06T06:01:02.8245662Z         "unit"
2026-06-06T06:01:02.8245902Z       ],
2026-06-06T06:01:02.8246154Z       "stages": {
2026-06-06T06:01:02.8246396Z         "doc": {
2026-06-06T06:01:02.8246690Z           "complete": false,
2026-06-06T06:01:02.8246972Z           "evidence": []
2026-06-06T06:01:02.8247206Z         },
2026-06-06T06:01:02.8247463Z         "impl": {
2026-06-06T06:01:02.8247750Z           "complete": true,
2026-06-06T06:01:02.8248015Z           "evidence": [
2026-06-06T06:01:02.8248255Z             {
2026-06-06T06:01:02.8248697Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.8249235Z               "line": 117
2026-06-06T06:01:02.8249473Z             },
2026-06-06T06:01:02.8249724Z             {
2026-06-06T06:01:02.8250173Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.8251285Z               "line": 169
2026-06-06T06:01:02.8251606Z             },
2026-06-06T06:01:02.8252025Z             {
2026-06-06T06:01:02.8252530Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8252854Z               "line": 315
2026-06-06T06:01:02.8253157Z             },
2026-06-06T06:01:02.8253434Z             {
2026-06-06T06:01:02.8254184Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8254483Z               "line": 339
2026-06-06T06:01:02.8254719Z             },
2026-06-06T06:01:02.8254966Z             {
2026-06-06T06:01:02.8255584Z               "path": "crates/xtask/src/main.rs",
2026-06-06T06:01:02.8256033Z               "line": 372
2026-06-06T06:01:02.8256318Z             }
2026-06-06T06:01:02.8256578Z           ]
2026-06-06T06:01:02.8256990Z         },
2026-06-06T06:01:02.8257244Z         "int": {
2026-06-06T06:01:02.8257551Z           "complete": false,
2026-06-06T06:01:02.8257820Z           "evidence": []
2026-06-06T06:01:02.8258064Z         },
2026-06-06T06:01:02.8258321Z         "unit": {
2026-06-06T06:01:02.8258600Z           "complete": true,
2026-06-06T06:01:02.8258873Z           "evidence": [
2026-06-06T06:01:02.8259107Z             {
2026-06-06T06:01:02.8259675Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.8259942Z               "line": 619
2026-06-06T06:01:02.8260199Z             },
2026-06-06T06:01:02.8260444Z             {
2026-06-06T06:01:02.8260882Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.8261157Z               "line": 672
2026-06-06T06:01:02.8261391Z             }
2026-06-06T06:01:02.8261630Z           ]
2026-06-06T06:01:02.8261857Z         }
2026-06-06T06:01:02.8262104Z       }
2026-06-06T06:01:02.8262344Z     },
2026-06-06T06:01:02.8262583Z     {
2026-06-06T06:01:02.8262921Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-06T06:01:02.8263700Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-06T06:01:02.8264002Z       "requiredStages": [
2026-06-06T06:01:02.8264244Z         "impl",
2026-06-06T06:01:02.8264485Z         "unit"
2026-06-06T06:01:02.8264730Z       ],
2026-06-06T06:01:02.8264974Z       "stages": {
2026-06-06T06:01:02.8265225Z         "doc": {
2026-06-06T06:01:02.8265514Z           "complete": false,
2026-06-06T06:01:02.8265801Z           "evidence": []
2026-06-06T06:01:02.8266039Z         },
2026-06-06T06:01:02.8266297Z         "impl": {
2026-06-06T06:01:02.8266599Z           "complete": true,
2026-06-06T06:01:02.8266863Z           "evidence": [
2026-06-06T06:01:02.8267106Z             {
2026-06-06T06:01:02.8267521Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8267790Z               "line": 18
2026-06-06T06:01:02.8268028Z             },
2026-06-06T06:01:02.8268283Z             {
2026-06-06T06:01:02.8268710Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8268974Z               "line": 35
2026-06-06T06:01:02.8269264Z             },
2026-06-06T06:01:02.8269504Z             {
2026-06-06T06:01:02.8269932Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8270193Z               "line": 65
2026-06-06T06:01:02.8270441Z             }
2026-06-06T06:01:02.8270683Z           ]
2026-06-06T06:01:02.8270920Z         },
2026-06-06T06:01:02.8271176Z         "int": {
2026-06-06T06:01:02.8271474Z           "complete": false,
2026-06-06T06:01:02.8271760Z           "evidence": []
2026-06-06T06:01:02.8271989Z         },
2026-06-06T06:01:02.8272241Z         "unit": {
2026-06-06T06:01:02.8272537Z           "complete": true,
2026-06-06T06:01:02.8272806Z           "evidence": [
2026-06-06T06:01:02.8273047Z             {
2026-06-06T06:01:02.8273463Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8273966Z               "line": 200
2026-06-06T06:01:02.8274201Z             },
2026-06-06T06:01:02.8274445Z             {
2026-06-06T06:01:02.8274871Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8275137Z               "line": 214
2026-06-06T06:01:02.8275382Z             },
2026-06-06T06:01:02.8275618Z             {
2026-06-06T06:01:02.8276042Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8276307Z               "line": 223
2026-06-06T06:01:02.8276560Z             }
2026-06-06T06:01:02.8276803Z           ]
2026-06-06T06:01:02.8277037Z         }
2026-06-06T06:01:02.8277401Z       }
2026-06-06T06:01:02.8283468Z     },
2026-06-06T06:01:02.8283804Z     {
2026-06-06T06:01:02.8284150Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-06T06:01:02.8284767Z       "title": "Hostable endpoint-types capability declaration",
2026-06-06T06:01:02.8285068Z       "requiredStages": [
2026-06-06T06:01:02.8285313Z         "impl",
2026-06-06T06:01:02.8285561Z         "unit"
2026-06-06T06:01:02.8285822Z       ],
2026-06-06T06:01:02.8286084Z       "stages": {
2026-06-06T06:01:02.8286324Z         "doc": {
2026-06-06T06:01:02.8286623Z           "complete": false,
2026-06-06T06:01:02.8286899Z           "evidence": []
2026-06-06T06:01:02.8287132Z         },
2026-06-06T06:01:02.8287385Z         "impl": {
2026-06-06T06:01:02.8287668Z           "complete": true,
2026-06-06T06:01:02.8287948Z           "evidence": [
2026-06-06T06:01:02.8288181Z             {
2026-06-06T06:01:02.8288638Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8288928Z               "line": 391
2026-06-06T06:01:02.8289237Z             }
2026-06-06T06:01:02.8289484Z           ]
2026-06-06T06:01:02.8289718Z         },
2026-06-06T06:01:02.8289970Z         "int": {
2026-06-06T06:01:02.8290254Z           "complete": false,
2026-06-06T06:01:02.8290535Z           "evidence": []
2026-06-06T06:01:02.8290780Z         },
2026-06-06T06:01:02.8291020Z         "unit": {
2026-06-06T06:01:02.8291310Z           "complete": true,
2026-06-06T06:01:02.8291584Z           "evidence": [
2026-06-06T06:01:02.8291828Z             {
2026-06-06T06:01:02.8292278Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8292561Z               "line": 596
2026-06-06T06:01:02.8292811Z             }
2026-06-06T06:01:02.8293034Z           ]
2026-06-06T06:01:02.8293276Z         }
2026-06-06T06:01:02.8293511Z       }
2026-06-06T06:01:02.8293749Z     },
2026-06-06T06:01:02.8293973Z     {
2026-06-06T06:01:02.8294283Z       "id": "REQ-SEAM-HISTORY",
2026-06-06T06:01:02.8295070Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-06T06:01:02.8295364Z       "requiredStages": [
2026-06-06T06:01:02.8295619Z         "impl",
2026-06-06T06:01:02.8295854Z         "unit",
2026-06-06T06:01:02.8296098Z         "int"
2026-06-06T06:01:02.8296335Z       ],
2026-06-06T06:01:02.8296590Z       "stages": {
2026-06-06T06:01:02.8296840Z         "doc": {
2026-06-06T06:01:02.8297124Z           "complete": false,
2026-06-06T06:01:02.8297416Z           "evidence": []
2026-06-06T06:01:02.8297646Z         },
2026-06-06T06:01:02.8297900Z         "impl": {
2026-06-06T06:01:02.8298180Z           "complete": true,
2026-06-06T06:01:02.8298457Z           "evidence": [
2026-06-06T06:01:02.8298699Z             {
2026-06-06T06:01:02.8299094Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.8299401Z               "line": 24
2026-06-06T06:01:02.8299635Z             },
2026-06-06T06:01:02.8299885Z             {
2026-06-06T06:01:02.8300317Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8300586Z               "line": 22
2026-06-06T06:01:02.8300827Z             }
2026-06-06T06:01:02.8301064Z           ]
2026-06-06T06:01:02.8301307Z         },
2026-06-06T06:01:02.8301547Z         "int": {
2026-06-06T06:01:02.8301839Z           "complete": true,
2026-06-06T06:01:02.8302104Z           "evidence": [
2026-06-06T06:01:02.8302350Z             {
2026-06-06T06:01:02.8302790Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.8303338Z               "line": 202
2026-06-06T06:01:02.8303588Z             }
2026-06-06T06:01:02.8303818Z           ]
2026-06-06T06:01:02.8304060Z         },
2026-06-06T06:01:02.8304303Z         "unit": {
2026-06-06T06:01:02.8304602Z           "complete": true,
2026-06-06T06:01:02.8304871Z           "evidence": [
2026-06-06T06:01:02.8305099Z             {
2026-06-06T06:01:02.8305500Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.8305768Z               "line": 163
2026-06-06T06:01:02.8306132Z             },
2026-06-06T06:01:02.8306368Z             {
2026-06-06T06:01:02.8306767Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.8307038Z               "line": 186
2026-06-06T06:01:02.8307270Z             },
2026-06-06T06:01:02.8307512Z             {
2026-06-06T06:01:02.8307895Z               "path": "crates/spt-live/src/echo.rs",
2026-06-06T06:01:02.8308169Z               "line": 195
2026-06-06T06:01:02.8308416Z             },
2026-06-06T06:01:02.8308660Z             {
2026-06-06T06:01:02.8309085Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8309399Z               "line": 195
2026-06-06T06:01:02.8309647Z             },
2026-06-06T06:01:02.8309877Z             {
2026-06-06T06:01:02.8310308Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8310566Z               "line": 209
2026-06-06T06:01:02.8310809Z             },
2026-06-06T06:01:02.8311055Z             {
2026-06-06T06:01:02.8311486Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8311759Z               "line": 228
2026-06-06T06:01:02.8312001Z             },
2026-06-06T06:01:02.8312242Z             {
2026-06-06T06:01:02.8312677Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8312935Z               "line": 248
2026-06-06T06:01:02.8313173Z             },
2026-06-06T06:01:02.8313411Z             {
2026-06-06T06:01:02.8313840Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8314116Z               "line": 264
2026-06-06T06:01:02.8314364Z             },
2026-06-06T06:01:02.8314598Z             {
2026-06-06T06:01:02.8315006Z               "path": "crates/spt-live/src/history.rs",
2026-06-06T06:01:02.8315279Z               "line": 279
2026-06-06T06:01:02.8315514Z             }
2026-06-06T06:01:02.8315750Z           ]
2026-06-06T06:01:02.8315977Z         }
2026-06-06T06:01:02.8316214Z       }
2026-06-06T06:01:02.8316449Z     },
2026-06-06T06:01:02.8316677Z     {
2026-06-06T06:01:02.8316995Z       "id": "REQ-SEAM-INJECT",
2026-06-06T06:01:02.8317668Z       "title": "inject-input methods configurable per activity-state",
2026-06-06T06:01:02.8317966Z       "requiredStages": [
2026-06-06T06:01:02.8318204Z         "impl",
2026-06-06T06:01:02.8318448Z         "unit"
2026-06-06T06:01:02.8318688Z       ],
2026-06-06T06:01:02.8318934Z       "stages": {
2026-06-06T06:01:02.8319223Z         "doc": {
2026-06-06T06:01:02.8319507Z           "complete": false,
2026-06-06T06:01:02.8319794Z           "evidence": []
2026-06-06T06:01:02.8320028Z         },
2026-06-06T06:01:02.8320277Z         "impl": {
2026-06-06T06:01:02.8320569Z           "complete": true,
2026-06-06T06:01:02.8320827Z           "evidence": [
2026-06-06T06:01:02.8321072Z             {
2026-06-06T06:01:02.8321490Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8321753Z               "line": 19
2026-06-06T06:01:02.8321989Z             },
2026-06-06T06:01:02.8322233Z             {
2026-06-06T06:01:02.8322664Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8322935Z               "line": 104
2026-06-06T06:01:02.8323173Z             }
2026-06-06T06:01:02.8323403Z           ]
2026-06-06T06:01:02.8323643Z         },
2026-06-06T06:01:02.8323888Z         "int": {
2026-06-06T06:01:02.8324179Z           "complete": false,
2026-06-06T06:01:02.8324457Z           "evidence": []
2026-06-06T06:01:02.8324689Z         },
2026-06-06T06:01:02.8325104Z         "unit": {
2026-06-06T06:01:02.8325383Z           "complete": true,
2026-06-06T06:01:02.8325658Z           "evidence": [
2026-06-06T06:01:02.8325886Z             {
2026-06-06T06:01:02.8326313Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8326581Z               "line": 291
2026-06-06T06:01:02.8326814Z             },
2026-06-06T06:01:02.8327058Z             {
2026-06-06T06:01:02.8327643Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8327986Z               "line": 305
2026-06-06T06:01:02.8328252Z             }
2026-06-06T06:01:02.8328661Z           ]
2026-06-06T06:01:02.8328923Z         }
2026-06-06T06:01:02.8329211Z       }
2026-06-06T06:01:02.8329643Z     },
2026-06-06T06:01:02.8329874Z     {
2026-06-06T06:01:02.8330208Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-06T06:01:02.8330729Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-06T06:01:02.8336145Z       "requiredStages": [
2026-06-06T06:01:02.8336481Z         "impl",
2026-06-06T06:01:02.8336759Z         "unit"
2026-06-06T06:01:02.8337002Z       ],
2026-06-06T06:01:02.8337253Z       "stages": {
2026-06-06T06:01:02.8337502Z         "doc": {
2026-06-06T06:01:02.8337791Z           "complete": false,
2026-06-06T06:01:02.8338068Z           "evidence": []
2026-06-06T06:01:02.8338308Z         },
2026-06-06T06:01:02.8338556Z         "impl": {
2026-06-06T06:01:02.8338845Z           "complete": true,
2026-06-06T06:01:02.8339104Z           "evidence": [
2026-06-06T06:01:02.8339618Z             {
2026-06-06T06:01:02.8340227Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8340501Z               "line": 18
2026-06-06T06:01:02.8340747Z             },
2026-06-06T06:01:02.8340980Z             {
2026-06-06T06:01:02.8341395Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8341656Z               "line": 304
2026-06-06T06:01:02.8341902Z             }
2026-06-06T06:01:02.8342136Z           ]
2026-06-06T06:01:02.8342375Z         },
2026-06-06T06:01:02.8342634Z         "int": {
2026-06-06T06:01:02.8342922Z           "complete": false,
2026-06-06T06:01:02.8343199Z           "evidence": []
2026-06-06T06:01:02.8343429Z         },
2026-06-06T06:01:02.8343677Z         "unit": {
2026-06-06T06:01:02.8343958Z           "complete": true,
2026-06-06T06:01:02.8344229Z           "evidence": [
2026-06-06T06:01:02.8344471Z             {
2026-06-06T06:01:02.8344880Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8345156Z               "line": 526
2026-06-06T06:01:02.8345395Z             },
2026-06-06T06:01:02.8345650Z             {
2026-06-06T06:01:02.8346059Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8346328Z               "line": 536
2026-06-06T06:01:02.8346571Z             }
2026-06-06T06:01:02.8346800Z           ]
2026-06-06T06:01:02.8347047Z         }
2026-06-06T06:01:02.8347282Z       }
2026-06-06T06:01:02.8347519Z     },
2026-06-06T06:01:02.8347746Z     {
2026-06-06T06:01:02.8348063Z       "id": "REQ-SEAM-PSYCHE",
2026-06-06T06:01:02.8348622Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-06T06:01:02.8348915Z       "requiredStages": [
2026-06-06T06:01:02.8349205Z         "impl",
2026-06-06T06:01:02.8349616Z         "unit",
2026-06-06T06:01:02.8349870Z         "int"
2026-06-06T06:01:02.8350104Z       ],
2026-06-06T06:01:02.8350366Z       "stages": {
2026-06-06T06:01:02.8350619Z         "doc": {
2026-06-06T06:01:02.8350918Z           "complete": false,
2026-06-06T06:01:02.8351208Z           "evidence": []
2026-06-06T06:01:02.8351450Z         },
2026-06-06T06:01:02.8351728Z         "impl": {
2026-06-06T06:01:02.8352025Z           "complete": true,
2026-06-06T06:01:02.8352304Z           "evidence": [
2026-06-06T06:01:02.8352542Z             {
2026-06-06T06:01:02.8352985Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-06T06:01:02.8353274Z               "line": 19
2026-06-06T06:01:02.8353526Z             },
2026-06-06T06:01:02.8353774Z             {
2026-06-06T06:01:02.8354498Z               "path": "crates/spt/src/api/live.rs",
2026-06-06T06:01:02.8354782Z               "line": 12
2026-06-06T06:01:02.8355041Z             },
2026-06-06T06:01:02.8355280Z             {
2026-06-06T06:01:02.8355720Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8355994Z               "line": 204
2026-06-06T06:01:02.8356241Z             }
2026-06-06T06:01:02.8356486Z           ]
2026-06-06T06:01:02.8356735Z         },
2026-06-06T06:01:02.8356992Z         "int": {
2026-06-06T06:01:02.8357283Z           "complete": true,
2026-06-06T06:01:02.8357733Z           "evidence": [
2026-06-06T06:01:02.8358140Z             {
2026-06-06T06:01:02.8358592Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.8358858Z               "line": 201
2026-06-06T06:01:02.8359104Z             }
2026-06-06T06:01:02.8359388Z           ]
2026-06-06T06:01:02.8359619Z         },
2026-06-06T06:01:02.8359867Z         "unit": {
2026-06-06T06:01:02.8360150Z           "complete": true,
2026-06-06T06:01:02.8360432Z           "evidence": [
2026-06-06T06:01:02.8360664Z             {
2026-06-06T06:01:02.8361081Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-06T06:01:02.8361347Z               "line": 161
2026-06-06T06:01:02.8361584Z             },
2026-06-06T06:01:02.8361826Z             {
2026-06-06T06:01:02.8362238Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-06T06:01:02.8362510Z               "line": 168
2026-06-06T06:01:02.8362746Z             },
2026-06-06T06:01:02.8362986Z             {
2026-06-06T06:01:02.8363408Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-06T06:01:02.8363671Z               "line": 191
2026-06-06T06:01:02.8363913Z             },
2026-06-06T06:01:02.8364148Z             {
2026-06-06T06:01:02.8364559Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-06T06:01:02.8364823Z               "line": 106
2026-06-06T06:01:02.8365065Z             },
2026-06-06T06:01:02.8365306Z             {
2026-06-06T06:01:02.8365712Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-06T06:01:02.8365986Z               "line": 123
2026-06-06T06:01:02.8366223Z             },
2026-06-06T06:01:02.8366464Z             {
2026-06-06T06:01:02.8366871Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-06T06:01:02.8367163Z               "line": 137
2026-06-06T06:01:02.8367570Z             }
2026-06-06T06:01:02.8367817Z           ]
2026-06-06T06:01:02.8368075Z         }
2026-06-06T06:01:02.8368330Z       }
2026-06-06T06:01:02.8368722Z     },
2026-06-06T06:01:02.8368947Z     {
2026-06-06T06:01:02.8369303Z       "id": "REQ-SEAM-RESUME",
2026-06-06T06:01:02.8370098Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-06T06:01:02.8370388Z       "requiredStages": [
2026-06-06T06:01:02.8370641Z         "impl",
2026-06-06T06:01:02.8370879Z         "unit"
2026-06-06T06:01:02.8371121Z       ],
2026-06-06T06:01:02.8371370Z       "stages": {
2026-06-06T06:01:02.8371622Z         "doc": {
2026-06-06T06:01:02.8371923Z           "complete": false,
2026-06-06T06:01:02.8372192Z           "evidence": []
2026-06-06T06:01:02.8372431Z         },
2026-06-06T06:01:02.8372678Z         "impl": {
2026-06-06T06:01:02.8372974Z           "complete": true,
2026-06-06T06:01:02.8373235Z           "evidence": [
2026-06-06T06:01:02.8373479Z             {
2026-06-06T06:01:02.8373897Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.8374157Z               "line": 19
2026-06-06T06:01:02.8374397Z             }
2026-06-06T06:01:02.8374627Z           ]
2026-06-06T06:01:02.8374877Z         },
2026-06-06T06:01:02.8375117Z         "int": {
2026-06-06T06:01:02.8375418Z           "complete": false,
2026-06-06T06:01:02.8375699Z           "evidence": []
2026-06-06T06:01:02.8375931Z         },
2026-06-06T06:01:02.8376180Z         "unit": {
2026-06-06T06:01:02.8376455Z           "complete": true,
2026-06-06T06:01:02.8376722Z           "evidence": [
2026-06-06T06:01:02.8376956Z             {
2026-06-06T06:01:02.8377576Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.8377853Z               "line": 168
2026-06-06T06:01:02.8378092Z             },
2026-06-06T06:01:02.8378334Z             {
2026-06-06T06:01:02.8378746Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.8379017Z               "line": 187
2026-06-06T06:01:02.8379306Z             },
2026-06-06T06:01:02.8379551Z             {
2026-06-06T06:01:02.8379965Z               "path": "crates/spt-live/src/resume.rs",
2026-06-06T06:01:02.8380225Z               "line": 205
2026-06-06T06:01:02.8380601Z             }
2026-06-06T06:01:02.8380849Z           ]
2026-06-06T06:01:02.8381088Z         }
2026-06-06T06:01:02.8381310Z       }
2026-06-06T06:01:02.8381553Z     },
2026-06-06T06:01:02.8381792Z     {
2026-06-06T06:01:02.8382088Z       "id": "REQ-SEAM-SPAWN",
2026-06-06T06:01:02.8382415Z       "title": "spawn-session seam",
2026-06-06T06:01:02.8382709Z       "requiredStages": [
2026-06-06T06:01:02.8382977Z         "impl",
2026-06-06T06:01:02.8383222Z         "unit"
2026-06-06T06:01:02.8383466Z       ],
2026-06-06T06:01:02.8388751Z       "stages": {
2026-06-06T06:01:02.8389089Z         "doc": {
2026-06-06T06:01:02.8389481Z           "complete": false,
2026-06-06T06:01:02.8389758Z           "evidence": []
2026-06-06T06:01:02.8389995Z         },
2026-06-06T06:01:02.8390243Z         "impl": {
2026-06-06T06:01:02.8390531Z           "complete": true,
2026-06-06T06:01:02.8390805Z           "evidence": [
2026-06-06T06:01:02.8391040Z             {
2026-06-06T06:01:02.8391542Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8391809Z               "line": 20
2026-06-06T06:01:02.8392051Z             }
2026-06-06T06:01:02.8392280Z           ]
2026-06-06T06:01:02.8392520Z         },
2026-06-06T06:01:02.8392766Z         "int": {
2026-06-06T06:01:02.8393057Z           "complete": false,
2026-06-06T06:01:02.8393338Z           "evidence": []
2026-06-06T06:01:02.8393568Z         },
2026-06-06T06:01:02.8393826Z         "unit": {
2026-06-06T06:01:02.8394106Z           "complete": true,
2026-06-06T06:01:02.8394377Z           "evidence": [
2026-06-06T06:01:02.8394621Z             {
2026-06-06T06:01:02.8395074Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8395338Z               "line": 397
2026-06-06T06:01:02.8395575Z             },
2026-06-06T06:01:02.8395815Z             {
2026-06-06T06:01:02.8396255Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8396529Z               "line": 404
2026-06-06T06:01:02.8396777Z             },
2026-06-06T06:01:02.8397009Z             {
2026-06-06T06:01:02.8397463Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8397731Z               "line": 414
2026-06-06T06:01:02.8397979Z             },
2026-06-06T06:01:02.8398212Z             {
2026-06-06T06:01:02.8398665Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8398933Z               "line": 420
2026-06-06T06:01:02.8399224Z             },
2026-06-06T06:01:02.8399466Z             {
2026-06-06T06:01:02.8399910Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8400181Z               "line": 440
2026-06-06T06:01:02.8400413Z             },
2026-06-06T06:01:02.8400654Z             {
2026-06-06T06:01:02.8401108Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-06T06:01:02.8401367Z               "line": 473
2026-06-06T06:01:02.8401601Z             }
2026-06-06T06:01:02.8401834Z           ]
2026-06-06T06:01:02.8402074Z         }
2026-06-06T06:01:02.8402306Z       }
2026-06-06T06:01:02.8402544Z     },
2026-06-06T06:01:02.8402782Z     {
2026-06-06T06:01:02.8403080Z       "id": "REQ-SEAM-UPDATE",
2026-06-06T06:01:02.8403788Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-06T06:01:02.8404124Z       "requiredStages": [
2026-06-06T06:01:02.8404394Z         "impl",
2026-06-06T06:01:02.8404658Z         "unit"
2026-06-06T06:01:02.8405160Z       ],
2026-06-06T06:01:02.8405420Z       "stages": {
2026-06-06T06:01:02.8405656Z         "doc": {
2026-06-06T06:01:02.8405956Z           "complete": false,
2026-06-06T06:01:02.8406226Z           "evidence": []
2026-06-06T06:01:02.8406470Z         },
2026-06-06T06:01:02.8406718Z         "impl": {
2026-06-06T06:01:02.8407016Z           "complete": true,
2026-06-06T06:01:02.8407292Z           "evidence": [
2026-06-06T06:01:02.8407522Z             {
2026-06-06T06:01:02.8408044Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.8408314Z               "line": 28
2026-06-06T06:01:02.8408687Z             },
2026-06-06T06:01:02.8408931Z             {
2026-06-06T06:01:02.8409500Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.8409764Z               "line": 83
2026-06-06T06:01:02.8409998Z             }
2026-06-06T06:01:02.8410233Z           ]
2026-06-06T06:01:02.8410461Z         },
2026-06-06T06:01:02.8410705Z         "int": {
2026-06-06T06:01:02.8411001Z           "complete": false,
2026-06-06T06:01:02.8411278Z           "evidence": []
2026-06-06T06:01:02.8411513Z         },
2026-06-06T06:01:02.8411756Z         "unit": {
2026-06-06T06:01:02.8412037Z           "complete": true,
2026-06-06T06:01:02.8412293Z           "evidence": [
2026-06-06T06:01:02.8412531Z             {
2026-06-06T06:01:02.8413031Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.8413303Z               "line": 270
2026-06-06T06:01:02.8413541Z             },
2026-06-06T06:01:02.8413769Z             {
2026-06-06T06:01:02.8414287Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.8414554Z               "line": 281
2026-06-06T06:01:02.8414797Z             }
2026-06-06T06:01:02.8415024Z           ]
2026-06-06T06:01:02.8415273Z         }
2026-06-06T06:01:02.8415512Z       }
2026-06-06T06:01:02.8415737Z     },
2026-06-06T06:01:02.8415977Z     {
2026-06-06T06:01:02.8416243Z       "id": "REQ-SEC-1",
2026-06-06T06:01:02.8418216Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-06T06:01:02.8418519Z       "requiredStages": [
2026-06-06T06:01:02.8418757Z         "impl",
2026-06-06T06:01:02.8419001Z         "unit"
2026-06-06T06:01:02.8419268Z       ],
2026-06-06T06:01:02.8419527Z       "stages": {
2026-06-06T06:01:02.8419773Z         "doc": {
2026-06-06T06:01:02.8420066Z           "complete": false,
2026-06-06T06:01:02.8420329Z           "evidence": []
2026-06-06T06:01:02.8420572Z         },
2026-06-06T06:01:02.8420839Z         "impl": {
2026-06-06T06:01:02.8421119Z           "complete": true,
2026-06-06T06:01:02.8421382Z           "evidence": [
2026-06-06T06:01:02.8421609Z             {
2026-06-06T06:01:02.8422051Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8422321Z               "line": 84
2026-06-06T06:01:02.8422557Z             },
2026-06-06T06:01:02.8422790Z             {
2026-06-06T06:01:02.8423224Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8423492Z               "line": 114
2026-06-06T06:01:02.8423727Z             },
2026-06-06T06:01:02.8423967Z             {
2026-06-06T06:01:02.8424410Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8424669Z               "line": 128
2026-06-06T06:01:02.8424907Z             },
2026-06-06T06:01:02.8425138Z             {
2026-06-06T06:01:02.8425555Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8425810Z               "line": 108
2026-06-06T06:01:02.8426054Z             },
2026-06-06T06:01:02.8426290Z             {
2026-06-06T06:01:02.8426709Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8426973Z               "line": 129
2026-06-06T06:01:02.8427201Z             },
2026-06-06T06:01:02.8427435Z             {
2026-06-06T06:01:02.8427846Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8428113Z               "line": 142
2026-06-06T06:01:02.8428511Z             },
2026-06-06T06:01:02.8428743Z             {
2026-06-06T06:01:02.8429206Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8429476Z               "line": 208
2026-06-06T06:01:02.8429726Z             },
2026-06-06T06:01:02.8429961Z             {
2026-06-06T06:01:02.8430381Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8430646Z               "line": 234
2026-06-06T06:01:02.8430883Z             },
2026-06-06T06:01:02.8431127Z             {
2026-06-06T06:01:02.8431642Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8431928Z               "line": 2235
2026-06-06T06:01:02.8432162Z             }
2026-06-06T06:01:02.8432407Z           ]
2026-06-06T06:01:02.8432648Z         },
2026-06-06T06:01:02.8432890Z         "int": {
2026-06-06T06:01:02.8433181Z           "complete": false,
2026-06-06T06:01:02.8433447Z           "evidence": []
2026-06-06T06:01:02.8433685Z         },
2026-06-06T06:01:02.8433940Z         "unit": {
2026-06-06T06:01:02.8434223Z           "complete": true,
2026-06-06T06:01:02.8434495Z           "evidence": [
2026-06-06T06:01:02.8434726Z             {
2026-06-06T06:01:02.8435171Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8435430Z               "line": 140
2026-06-06T06:01:02.8435668Z             },
2026-06-06T06:01:02.8435904Z             {
2026-06-06T06:01:02.8436345Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8436618Z               "line": 186
2026-06-06T06:01:02.8436863Z             },
2026-06-06T06:01:02.8437105Z             {
2026-06-06T06:01:02.8437531Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-06T06:01:02.8442853Z               "line": 218
2026-06-06T06:01:02.8443129Z             },
2026-06-06T06:01:02.8443377Z             {
2026-06-06T06:01:02.8443851Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-06T06:01:02.8444115Z               "line": 128
2026-06-06T06:01:02.8444376Z             },
2026-06-06T06:01:02.8444607Z             {
2026-06-06T06:01:02.8445037Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8445300Z               "line": 248
2026-06-06T06:01:02.8445547Z             },
2026-06-06T06:01:02.8445787Z             {
2026-06-06T06:01:02.8446199Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8446468Z               "line": 275
2026-06-06T06:01:02.8446702Z             },
2026-06-06T06:01:02.8446946Z             {
2026-06-06T06:01:02.8447371Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8447646Z               "line": 299
2026-06-06T06:01:02.8447889Z             },
2026-06-06T06:01:02.8448120Z             {
2026-06-06T06:01:02.8448552Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8448819Z               "line": 310
2026-06-06T06:01:02.8449063Z             },
2026-06-06T06:01:02.8449366Z             {
2026-06-06T06:01:02.8449793Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8450074Z               "line": 334
2026-06-06T06:01:02.8450311Z             },
2026-06-06T06:01:02.8450552Z             {
2026-06-06T06:01:02.8450967Z               "path": "crates/spt-store/src/access.rs",
2026-06-06T06:01:02.8451234Z               "line": 350
2026-06-06T06:01:02.8451479Z             },
2026-06-06T06:01:02.8451709Z             {
2026-06-06T06:01:02.8452069Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8452338Z               "line": 3483
2026-06-06T06:01:02.8452578Z             }
2026-06-06T06:01:02.8452813Z           ]
2026-06-06T06:01:02.8453051Z         }
2026-06-06T06:01:02.8453287Z       }
2026-06-06T06:01:02.8453516Z     },
2026-06-06T06:01:02.8453745Z     {
2026-06-06T06:01:02.8454021Z       "id": "REQ-SHELL-1",
2026-06-06T06:01:02.8458893Z       "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-06T06:01:02.8459483Z       "requiredStages": [
2026-06-06T06:01:02.8459728Z         "impl",
2026-06-06T06:01:02.8459978Z         "unit",
2026-06-06T06:01:02.8460210Z         "int"
2026-06-06T06:01:02.8460450Z       ],
2026-06-06T06:01:02.8460700Z       "stages": {
2026-06-06T06:01:02.8460956Z         "doc": {
2026-06-06T06:01:02.8461251Z           "complete": false,
2026-06-06T06:01:02.8461642Z           "evidence": []
2026-06-06T06:01:02.8461894Z         },
2026-06-06T06:01:02.8462139Z         "impl": {
2026-06-06T06:01:02.8462427Z           "complete": true,
2026-06-06T06:01:02.8462690Z           "evidence": [
2026-06-06T06:01:02.8462931Z             {
2026-06-06T06:01:02.8463391Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8463646Z               "line": 94
2026-06-06T06:01:02.8463900Z             },
2026-06-06T06:01:02.8464125Z             {
2026-06-06T06:01:02.8464580Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8464844Z               "line": 119
2026-06-06T06:01:02.8465087Z             },
2026-06-06T06:01:02.8465323Z             {
2026-06-06T06:01:02.8465774Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8466038Z               "line": 27
2026-06-06T06:01:02.8466272Z             },
2026-06-06T06:01:02.8466510Z             {
2026-06-06T06:01:02.8466965Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8467231Z               "line": 52
2026-06-06T06:01:02.8467473Z             },
2026-06-06T06:01:02.8467705Z             {
2026-06-06T06:01:02.8468167Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8468427Z               "line": 128
2026-06-06T06:01:02.8468670Z             },
2026-06-06T06:01:02.8468900Z             {
2026-06-06T06:01:02.8469412Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8469703Z               "line": 160
2026-06-06T06:01:02.8469944Z             },
2026-06-06T06:01:02.8470185Z             {
2026-06-06T06:01:02.8470637Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8470904Z               "line": 22
2026-06-06T06:01:02.8471142Z             },
2026-06-06T06:01:02.8471379Z             {
2026-06-06T06:01:02.8471832Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8472085Z               "line": 65
2026-06-06T06:01:02.8472339Z             },
2026-06-06T06:01:02.8472568Z             {
2026-06-06T06:01:02.8473027Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8473278Z               "line": 76
2026-06-06T06:01:02.8473519Z             },
2026-06-06T06:01:02.8473760Z             {
2026-06-06T06:01:02.8474208Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8474478Z               "line": 145
2026-06-06T06:01:02.8474721Z             },
2026-06-06T06:01:02.8474964Z             {
2026-06-06T06:01:02.8475411Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8475688Z               "line": 204
2026-06-06T06:01:02.8475928Z             },
2026-06-06T06:01:02.8476158Z             {
2026-06-06T06:01:02.8476610Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8476870Z               "line": 241
2026-06-06T06:01:02.8477112Z             },
2026-06-06T06:01:02.8477353Z             {
2026-06-06T06:01:02.8477815Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8478082Z               "line": 262
2026-06-06T06:01:02.8478313Z             },
2026-06-06T06:01:02.8478542Z             {
2026-06-06T06:01:02.8478988Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8479295Z               "line": 275
2026-06-06T06:01:02.8479544Z             },
2026-06-06T06:01:02.8479774Z             {
2026-06-06T06:01:02.8480357Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.8480615Z               "line": 185
2026-06-06T06:01:02.8480855Z             },
2026-06-06T06:01:02.8481091Z             {
2026-06-06T06:01:02.8481502Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.8481773Z               "line": 201
2026-06-06T06:01:02.8482005Z             },
2026-06-06T06:01:02.8482243Z             {
2026-06-06T06:01:02.8482684Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.8482955Z               "line": 41
2026-06-06T06:01:02.8483311Z             },
2026-06-06T06:01:02.8483569Z             {
2026-06-06T06:01:02.8484029Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.8484286Z               "line": 204
2026-06-06T06:01:02.8484526Z             },
2026-06-06T06:01:02.8484749Z             {
2026-06-06T06:01:02.8485170Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-06T06:01:02.8485435Z               "line": 142
2026-06-06T06:01:02.8485694Z             },
2026-06-06T06:01:02.8485937Z             {
2026-06-06T06:01:02.8486305Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.8486572Z               "line": 283
2026-06-06T06:01:02.8486808Z             },
2026-06-06T06:01:02.8487049Z             {
2026-06-06T06:01:02.8487422Z               "path": "crates/spt/src/api/mod.rs",
2026-06-06T06:01:02.8487694Z               "line": 314
2026-06-06T06:01:02.8487938Z             },
2026-06-06T06:01:02.8488170Z             {
2026-06-06T06:01:02.8488619Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8488885Z               "line": 255
2026-06-06T06:01:02.8489128Z             },
2026-06-06T06:01:02.8489410Z             {
2026-06-06T06:01:02.8489773Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8490047Z               "line": 2715
2026-06-06T06:01:02.8490286Z             },
2026-06-06T06:01:02.8490527Z             {
2026-06-06T06:01:02.8490883Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8491156Z               "line": 2852
2026-06-06T06:01:02.8491386Z             },
2026-06-06T06:01:02.8491628Z             {
2026-06-06T06:01:02.8491980Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8492245Z               "line": 2884
2026-06-06T06:01:02.8492475Z             }
2026-06-06T06:01:02.8492706Z           ]
2026-06-06T06:01:02.8492937Z         },
2026-06-06T06:01:02.8493172Z         "int": {
2026-06-06T06:01:02.8493464Z           "complete": true,
2026-06-06T06:01:02.8493744Z           "evidence": [
2026-06-06T06:01:02.8493976Z             {
2026-06-06T06:01:02.8494455Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8494712Z               "line": 641
2026-06-06T06:01:02.8499834Z             },
2026-06-06T06:01:02.8500114Z             {
2026-06-06T06:01:02.8500621Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-06T06:01:02.8500882Z               "line": 8
2026-06-06T06:01:02.8501137Z             },
2026-06-06T06:01:02.8501381Z             {
2026-06-06T06:01:02.8501867Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-06T06:01:02.8502138Z               "line": 46
2026-06-06T06:01:02.8502377Z             },
2026-06-06T06:01:02.8502610Z             {
2026-06-06T06:01:02.8503075Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8503338Z               "line": 631
2026-06-06T06:01:02.8503578Z             },
2026-06-06T06:01:02.8503815Z             {
2026-06-06T06:01:02.8504287Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8504561Z               "line": 959
2026-06-06T06:01:02.8504794Z             },
2026-06-06T06:01:02.8505031Z             {
2026-06-06T06:01:02.8505504Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-06T06:01:02.8505765Z               "line": 17
2026-06-06T06:01:02.8506001Z             },
2026-06-06T06:01:02.8506239Z             {
2026-06-06T06:01:02.8506885Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-06T06:01:02.8507145Z               "line": 14
2026-06-06T06:01:02.8507387Z             }
2026-06-06T06:01:02.8507616Z           ]
2026-06-06T06:01:02.8507855Z         },
2026-06-06T06:01:02.8508095Z         "unit": {
2026-06-06T06:01:02.8508380Z           "complete": true,
2026-06-06T06:01:02.8508643Z           "evidence": [
2026-06-06T06:01:02.8508870Z             {
2026-06-06T06:01:02.8509383Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8509644Z               "line": 227
2026-06-06T06:01:02.8510009Z             },
2026-06-06T06:01:02.8510252Z             {
2026-06-06T06:01:02.8510715Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8510982Z               "line": 254
2026-06-06T06:01:02.8511217Z             },
2026-06-06T06:01:02.8511457Z             {
2026-06-06T06:01:02.8511905Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8512186Z               "line": 278
2026-06-06T06:01:02.8512418Z             },
2026-06-06T06:01:02.8512659Z             {
2026-06-06T06:01:02.8513114Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8513376Z               "line": 505
2026-06-06T06:01:02.8513616Z             },
2026-06-06T06:01:02.8513839Z             {
2026-06-06T06:01:02.8514303Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8514561Z               "line": 569
2026-06-06T06:01:02.8514799Z             },
2026-06-06T06:01:02.8515036Z             {
2026-06-06T06:01:02.8515493Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8515759Z               "line": 698
2026-06-06T06:01:02.8515994Z             },
2026-06-06T06:01:02.8516235Z             {
2026-06-06T06:01:02.8516642Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.8516912Z               "line": 524
2026-06-06T06:01:02.8517152Z             },
2026-06-06T06:01:02.8517396Z             {
2026-06-06T06:01:02.8517851Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-06T06:01:02.8518109Z               "line": 343
2026-06-06T06:01:02.8518350Z             },
2026-06-06T06:01:02.8518581Z             {
2026-06-06T06:01:02.8518929Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8519239Z               "line": 3698
2026-06-06T06:01:02.8519475Z             },
2026-06-06T06:01:02.8519719Z             {
2026-06-06T06:01:02.8520068Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8520343Z               "line": 3945
2026-06-06T06:01:02.8520591Z             },
2026-06-06T06:01:02.8520823Z             {
2026-06-06T06:01:02.8521176Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8521438Z               "line": 4258
2026-06-06T06:01:02.8521672Z             }
2026-06-06T06:01:02.8521902Z           ]
2026-06-06T06:01:02.8522145Z         }
2026-06-06T06:01:02.8522381Z       }
2026-06-06T06:01:02.8522605Z     },
2026-06-06T06:01:02.8522844Z     {
2026-06-06T06:01:02.8523121Z       "id": "REQ-SHELL-2",
2026-06-06T06:01:02.8530875Z       "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-06T06:01:02.8531229Z       "requiredStages": [
2026-06-06T06:01:02.8531472Z         "impl",
2026-06-06T06:01:02.8531716Z         "unit",
2026-06-06T06:01:02.8531947Z         "int"
2026-06-06T06:01:02.8532185Z       ],
2026-06-06T06:01:02.8532431Z       "stages": {
2026-06-06T06:01:02.8532675Z         "doc": {
2026-06-06T06:01:02.8532960Z           "complete": false,
2026-06-06T06:01:02.8533232Z           "evidence": []
2026-06-06T06:01:02.8533674Z         },
2026-06-06T06:01:02.8533915Z         "impl": {
2026-06-06T06:01:02.8534202Z           "complete": true,
2026-06-06T06:01:02.8534463Z           "evidence": [
2026-06-06T06:01:02.8534703Z             {
2026-06-06T06:01:02.8535148Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-06T06:01:02.8535410Z               "line": 158
2026-06-06T06:01:02.8535650Z             },
2026-06-06T06:01:02.8535883Z             {
2026-06-06T06:01:02.8536348Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-06T06:01:02.8536775Z               "line": 375
2026-06-06T06:01:02.8537036Z             },
2026-06-06T06:01:02.8537274Z             {
2026-06-06T06:01:02.8537702Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-06T06:01:02.8537969Z               "line": 243
2026-06-06T06:01:02.8538199Z             },
2026-06-06T06:01:02.8538436Z             {
2026-06-06T06:01:02.8538881Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.8539209Z               "line": 291
2026-06-06T06:01:02.8539459Z             },
2026-06-06T06:01:02.8539698Z             {
2026-06-06T06:01:02.8540148Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8540404Z               "line": 30
2026-06-06T06:01:02.8540648Z             },
2026-06-06T06:01:02.8540884Z             {
2026-06-06T06:01:02.8541349Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8541622Z               "line": 150
2026-06-06T06:01:02.8541856Z             },
2026-06-06T06:01:02.8542100Z             {
2026-06-06T06:01:02.8542554Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8542824Z               "line": 186
2026-06-06T06:01:02.8543071Z             },
2026-06-06T06:01:02.8543299Z             {
2026-06-06T06:01:02.8543755Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8544026Z               "line": 323
2026-06-06T06:01:02.8544273Z             },
2026-06-06T06:01:02.8544513Z             {
2026-06-06T06:01:02.8544956Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.8545226Z               "line": 339
2026-06-06T06:01:02.8545464Z             },
2026-06-06T06:01:02.8545708Z             {
2026-06-06T06:01:02.8546163Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-06T06:01:02.8546433Z               "line": 111
2026-06-06T06:01:02.8546671Z             },
2026-06-06T06:01:02.8546916Z             {
2026-06-06T06:01:02.8547382Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8547648Z               "line": 116
2026-06-06T06:01:02.8547893Z             },
2026-06-06T06:01:02.8548127Z             {
2026-06-06T06:01:02.8548590Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8548856Z               "line": 348
2026-06-06T06:01:02.8549094Z             },
2026-06-06T06:01:02.8549379Z             {
2026-06-06T06:01:02.8549826Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8550109Z               "line": 453
2026-06-06T06:01:02.8550345Z             },
2026-06-06T06:01:02.8550584Z             {
2026-06-06T06:01:02.8551036Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8551300Z               "line": 24
2026-06-06T06:01:02.8551535Z             },
2026-06-06T06:01:02.8551767Z             {
2026-06-06T06:01:02.8552234Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8552489Z               "line": 72
2026-06-06T06:01:02.8552730Z             },
2026-06-06T06:01:02.8552968Z             {
2026-06-06T06:01:02.8553427Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8553693Z               "line": 150
2026-06-06T06:01:02.8553919Z             },
2026-06-06T06:01:02.8554160Z             {
2026-06-06T06:01:02.8554610Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8554887Z               "line": 173
2026-06-06T06:01:02.8560000Z             },
2026-06-06T06:01:02.8560582Z             {
2026-06-06T06:01:02.8561061Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8561322Z               "line": 266
2026-06-06T06:01:02.8561555Z             },
2026-06-06T06:01:02.8561783Z             {
2026-06-06T06:01:02.8562242Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8562510Z               "line": 438
2026-06-06T06:01:02.8562743Z             },
2026-06-06T06:01:02.8562982Z             {
2026-06-06T06:01:02.8563563Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8563843Z               "line": 513
2026-06-06T06:01:02.8564073Z             },
2026-06-06T06:01:02.8564309Z             {
2026-06-06T06:01:02.8564780Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-06T06:01:02.8565036Z               "line": 27
2026-06-06T06:01:02.8565276Z             },
2026-06-06T06:01:02.8565503Z             {
2026-06-06T06:01:02.8565969Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-06T06:01:02.8566247Z               "line": 43
2026-06-06T06:01:02.8566491Z             },
2026-06-06T06:01:02.8566732Z             {
2026-06-06T06:01:02.8567167Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8567437Z               "line": 313
2026-06-06T06:01:02.8567667Z             },
2026-06-06T06:01:02.8567905Z             {
2026-06-06T06:01:02.8568250Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8568526Z               "line": 1003
2026-06-06T06:01:02.8568761Z             },
2026-06-06T06:01:02.8569020Z             {
2026-06-06T06:01:02.8569617Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8570048Z               "line": 2724
2026-06-06T06:01:02.8570296Z             },
2026-06-06T06:01:02.8570528Z             {
2026-06-06T06:01:02.8570889Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8571175Z               "line": 2785
2026-06-06T06:01:02.8571407Z             },
2026-06-06T06:01:02.8571662Z             {
2026-06-06T06:01:02.8572015Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8572292Z               "line": 2813
2026-06-06T06:01:02.8572519Z             },
2026-06-06T06:01:02.8572761Z             {
2026-06-06T06:01:02.8573114Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8573377Z               "line": 2859
2026-06-06T06:01:02.8573616Z             },
2026-06-06T06:01:02.8573842Z             {
2026-06-06T06:01:02.8574205Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8574473Z               "line": 2967
2026-06-06T06:01:02.8574730Z             },
2026-06-06T06:01:02.8574970Z             {
2026-06-06T06:01:02.8575315Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8575582Z               "line": 3025
2026-06-06T06:01:02.8575813Z             },
2026-06-06T06:01:02.8576052Z             {
2026-06-06T06:01:02.8576423Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.8576713Z               "line": 268
2026-06-06T06:01:02.8576954Z             },
2026-06-06T06:01:02.8577185Z             {
2026-06-06T06:01:02.8577566Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.8577827Z               "line": 301
2026-06-06T06:01:02.8578071Z             }
2026-06-06T06:01:02.8578301Z           ]
2026-06-06T06:01:02.8578545Z         },
2026-06-06T06:01:02.8578789Z         "int": {
2026-06-06T06:01:02.8579064Z           "complete": true,
2026-06-06T06:01:02.8579531Z           "evidence": [
2026-06-06T06:01:02.8579790Z             {
2026-06-06T06:01:02.8580376Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8580810Z               "line": 634
2026-06-06T06:01:02.8581063Z             },
2026-06-06T06:01:02.8581297Z             {
2026-06-06T06:01:02.8581744Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8582016Z               "line": 631
2026-06-06T06:01:02.8582250Z             },
2026-06-06T06:01:02.8582689Z             {
2026-06-06T06:01:02.8583154Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8583420Z               "line": 959
2026-06-06T06:01:02.8583657Z             },
2026-06-06T06:01:02.8583893Z             {
2026-06-06T06:01:02.8584394Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-06T06:01:02.8584653Z               "line": 18
2026-06-06T06:01:02.8584891Z             }
2026-06-06T06:01:02.8585139Z           ]
2026-06-06T06:01:02.8585367Z         },
2026-06-06T06:01:02.8585611Z         "unit": {
2026-06-06T06:01:02.8586024Z           "complete": true,
2026-06-06T06:01:02.8586307Z           "evidence": [
2026-06-06T06:01:02.8586541Z             {
2026-06-06T06:01:02.8586994Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-06T06:01:02.8587261Z               "line": 401
2026-06-06T06:01:02.8587497Z             },
2026-06-06T06:01:02.8587739Z             {
2026-06-06T06:01:02.8588175Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-06T06:01:02.8588462Z               "line": 687
2026-06-06T06:01:02.8588697Z             },
2026-06-06T06:01:02.8588938Z             {
2026-06-06T06:01:02.8589467Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8589742Z               "line": 600
2026-06-06T06:01:02.8589989Z             },
2026-06-06T06:01:02.8590223Z             {
2026-06-06T06:01:02.8590684Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8590951Z               "line": 640
2026-06-06T06:01:02.8591194Z             },
2026-06-06T06:01:02.8591446Z             {
2026-06-06T06:01:02.8591900Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-06T06:01:02.8592178Z               "line": 663
2026-06-06T06:01:02.8592418Z             },
2026-06-06T06:01:02.8607893Z             {
2026-06-06T06:01:02.8608409Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8608700Z               "line": 569
2026-06-06T06:01:02.8608950Z             },
2026-06-06T06:01:02.8609377Z             {
2026-06-06T06:01:02.8609844Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8610110Z               "line": 582
2026-06-06T06:01:02.8610471Z             },
2026-06-06T06:01:02.8610704Z             {
2026-06-06T06:01:02.8611164Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8611439Z               "line": 603
2026-06-06T06:01:02.8611673Z             },
2026-06-06T06:01:02.8611914Z             {
2026-06-06T06:01:02.8612374Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8612644Z               "line": 648
2026-06-06T06:01:02.8612871Z             },
2026-06-06T06:01:02.8613116Z             {
2026-06-06T06:01:02.8613573Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8613830Z               "line": 663
2026-06-06T06:01:02.8614074Z             },
2026-06-06T06:01:02.8614304Z             {
2026-06-06T06:01:02.8614761Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8615047Z               "line": 690
2026-06-06T06:01:02.8615281Z             },
2026-06-06T06:01:02.8615521Z             {
2026-06-06T06:01:02.8615963Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-06T06:01:02.8616233Z               "line": 761
2026-06-06T06:01:02.8616466Z             },
2026-06-06T06:01:02.8616709Z             {
2026-06-06T06:01:02.8617171Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-06T06:01:02.8617428Z               "line": 74
2026-06-06T06:01:02.8617673Z             },
2026-06-06T06:01:02.8617903Z             {
2026-06-06T06:01:02.8618256Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8618525Z               "line": 3418
2026-06-06T06:01:02.8618767Z             },
2026-06-06T06:01:02.8619007Z             {
2026-06-06T06:01:02.8619397Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8619671Z               "line": 3751
2026-06-06T06:01:02.8620293Z             },
2026-06-06T06:01:02.8620530Z             {
2026-06-06T06:01:02.8620878Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8621152Z               "line": 3809
2026-06-06T06:01:02.8621393Z             },
2026-06-06T06:01:02.8621624Z             {
2026-06-06T06:01:02.8621975Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8622238Z               "line": 3835
2026-06-06T06:01:02.8622480Z             }
2026-06-06T06:01:02.8622710Z           ]
2026-06-06T06:01:02.8622951Z         }
2026-06-06T06:01:02.8623187Z       }
2026-06-06T06:01:02.8623558Z     },
2026-06-06T06:01:02.8623810Z     {
2026-06-06T06:01:02.8624091Z       "id": "REQ-START-1",
2026-06-06T06:01:02.8624930Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-06T06:01:02.8625220Z       "requiredStages": [
2026-06-06T06:01:02.8632017Z         "impl",
2026-06-06T06:01:02.8632295Z         "unit"
2026-06-06T06:01:02.8632526Z       ],
2026-06-06T06:01:02.8632813Z       "stages": {
2026-06-06T06:01:02.8633052Z         "doc": {
2026-06-06T06:01:02.8633348Z           "complete": false,
2026-06-06T06:01:02.8633615Z           "evidence": []
2026-06-06T06:01:02.8633851Z         },
2026-06-06T06:01:02.8634103Z         "impl": {
2026-06-06T06:01:02.8634383Z           "complete": true,
2026-06-06T06:01:02.8634651Z           "evidence": [
2026-06-06T06:01:02.8634880Z             {
2026-06-06T06:01:02.8635293Z               "path": "crates/spt-store/src/seed.rs",
2026-06-06T06:01:02.8635549Z               "line": 16
2026-06-06T06:01:02.8635791Z             }
2026-06-06T06:01:02.8636048Z           ]
2026-06-06T06:01:02.8636280Z         },
2026-06-06T06:01:02.8636532Z         "int": {
2026-06-06T06:01:02.8636808Z           "complete": false,
2026-06-06T06:01:02.8637084Z           "evidence": []
2026-06-06T06:01:02.8637315Z         },
2026-06-06T06:01:02.8637566Z         "unit": {
2026-06-06T06:01:02.8637851Z           "complete": true,
2026-06-06T06:01:02.8638114Z           "evidence": [
2026-06-06T06:01:02.8638367Z             {
2026-06-06T06:01:02.8638770Z               "path": "crates/spt-store/src/seed.rs",
2026-06-06T06:01:02.8639036Z               "line": 43
2026-06-06T06:01:02.8639326Z             },
2026-06-06T06:01:02.8639565Z             {
2026-06-06T06:01:02.8639973Z               "path": "crates/spt-store/src/seed.rs",
2026-06-06T06:01:02.8640229Z               "line": 59
2026-06-06T06:01:02.8640474Z             }
2026-06-06T06:01:02.8640704Z           ]
2026-06-06T06:01:02.8640942Z         }
2026-06-06T06:01:02.8641164Z       }
2026-06-06T06:01:02.8641408Z     },
2026-06-06T06:01:02.8641645Z     {
2026-06-06T06:01:02.8641929Z       "id": "REQ-START-2",
2026-06-06T06:01:02.8642483Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-06T06:01:02.8642769Z       "requiredStages": [
2026-06-06T06:01:02.8643017Z         "impl",
2026-06-06T06:01:02.8643252Z         "unit",
2026-06-06T06:01:02.8643500Z         "int"
2026-06-06T06:01:02.8643737Z       ],
2026-06-06T06:01:02.8643993Z       "stages": {
2026-06-06T06:01:02.8644238Z         "doc": {
2026-06-06T06:01:02.8644517Z           "complete": false,
2026-06-06T06:01:02.8644788Z           "evidence": []
2026-06-06T06:01:02.8645020Z         },
2026-06-06T06:01:02.8645275Z         "impl": {
2026-06-06T06:01:02.8645557Z           "complete": true,
2026-06-06T06:01:02.8645818Z           "evidence": [
2026-06-06T06:01:02.8646055Z             {
2026-06-06T06:01:02.8646458Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8646721Z               "line": 16
2026-06-06T06:01:02.8646959Z             },
2026-06-06T06:01:02.8647201Z             {
2026-06-06T06:01:02.8647616Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8647873Z               "line": 97
2026-06-06T06:01:02.8648117Z             },
2026-06-06T06:01:02.8648352Z             {
2026-06-06T06:01:02.8648939Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8649589Z               "line": 203
2026-06-06T06:01:02.8650164Z             }
2026-06-06T06:01:02.8650580Z           ]
2026-06-06T06:01:02.8650811Z         },
2026-06-06T06:01:02.8651063Z         "int": {
2026-06-06T06:01:02.8651336Z           "complete": true,
2026-06-06T06:01:02.8651606Z           "evidence": [
2026-06-06T06:01:02.8651837Z             {
2026-06-06T06:01:02.8652279Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.8652550Z               "line": 150
2026-06-06T06:01:02.8652784Z             }
2026-06-06T06:01:02.8653026Z           ]
2026-06-06T06:01:02.8653256Z         },
2026-06-06T06:01:02.8653634Z         "unit": {
2026-06-06T06:01:02.8653924Z           "complete": true,
2026-06-06T06:01:02.8654194Z           "evidence": [
2026-06-06T06:01:02.8654433Z             {
2026-06-06T06:01:02.8654844Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8655116Z               "line": 411
2026-06-06T06:01:02.8655355Z             },
2026-06-06T06:01:02.8655589Z             {
2026-06-06T06:01:02.8656016Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8656288Z               "line": 444
2026-06-06T06:01:02.8656529Z             }
2026-06-06T06:01:02.8656761Z           ]
2026-06-06T06:01:02.8656998Z         }
2026-06-06T06:01:02.8657229Z       }
2026-06-06T06:01:02.8657464Z     },
2026-06-06T06:01:02.8657692Z     {
2026-06-06T06:01:02.8657979Z       "id": "REQ-START-3",
2026-06-06T06:01:02.8658699Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-06T06:01:02.8658988Z       "requiredStages": [
2026-06-06T06:01:02.8659302Z         "impl",
2026-06-06T06:01:02.8659545Z         "unit",
2026-06-06T06:01:02.8659875Z         "int"
2026-06-06T06:01:02.8660108Z       ],
2026-06-06T06:01:02.8660357Z       "stages": {
2026-06-06T06:01:02.8660608Z         "doc": {
2026-06-06T06:01:02.8660900Z           "complete": false,
2026-06-06T06:01:02.8661171Z           "evidence": []
2026-06-06T06:01:02.8661402Z         },
2026-06-06T06:01:02.8661672Z         "impl": {
2026-06-06T06:01:02.8661956Z           "complete": true,
2026-06-06T06:01:02.8662228Z           "evidence": [
2026-06-06T06:01:02.8662466Z             {
2026-06-06T06:01:02.8662900Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8663168Z               "line": 23
2026-06-06T06:01:02.8663401Z             },
2026-06-06T06:01:02.8663635Z             {
2026-06-06T06:01:02.8664076Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8664346Z               "line": 167
2026-06-06T06:01:02.8664592Z             },
2026-06-06T06:01:02.8664834Z             {
2026-06-06T06:01:02.8665282Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8665543Z               "line": 180
2026-06-06T06:01:02.8665789Z             },
2026-06-06T06:01:02.8666020Z             {
2026-06-06T06:01:02.8666443Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8666710Z               "line": 17
2026-06-06T06:01:02.8666959Z             },
2026-06-06T06:01:02.8667197Z             {
2026-06-06T06:01:02.8667593Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8667859Z               "line": 43
2026-06-06T06:01:02.8668092Z             },
2026-06-06T06:01:02.8668334Z             {
2026-06-06T06:01:02.8668745Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8668993Z               "line": 98
2026-06-06T06:01:02.8669271Z             }
2026-06-06T06:01:02.8669512Z           ]
2026-06-06T06:01:02.8669752Z         },
2026-06-06T06:01:02.8669990Z         "int": {
2026-06-06T06:01:02.8670293Z           "complete": true,
2026-06-06T06:01:02.8670571Z           "evidence": [
2026-06-06T06:01:02.8670802Z             {
2026-06-06T06:01:02.8671242Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-06T06:01:02.8671500Z               "line": 321
2026-06-06T06:01:02.8671749Z             }
2026-06-06T06:01:02.8671978Z           ]
2026-06-06T06:01:02.8672222Z         },
2026-06-06T06:01:02.8672640Z         "unit": {
2026-06-06T06:01:02.8672922Z           "complete": true,
2026-06-06T06:01:02.8673193Z           "evidence": [
2026-06-06T06:01:02.8673432Z             {
2026-06-06T06:01:02.8673877Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8674131Z               "line": 245
2026-06-06T06:01:02.8674378Z             },
2026-06-06T06:01:02.8674616Z             {
2026-06-06T06:01:02.8675055Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8675322Z               "line": 263
2026-06-06T06:01:02.8675556Z             },
2026-06-06T06:01:02.8675920Z             {
2026-06-06T06:01:02.8676368Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-06T06:01:02.8676642Z               "line": 273
2026-06-06T06:01:02.8676881Z             },
2026-06-06T06:01:02.8677103Z             {
2026-06-06T06:01:02.8677516Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8677775Z               "line": 412
2026-06-06T06:01:02.8678033Z             },
2026-06-06T06:01:02.8678268Z             {
2026-06-06T06:01:02.8678693Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8684371Z               "line": 445
2026-06-06T06:01:02.8684678Z             },
2026-06-06T06:01:02.8684923Z             {
2026-06-06T06:01:02.8685357Z               "path": "crates/spt/src/api/startup.rs",
2026-06-06T06:01:02.8685639Z               "line": 453
2026-06-06T06:01:02.8685886Z             }
2026-06-06T06:01:02.8686123Z           ]
2026-06-06T06:01:02.8686364Z         }
2026-06-06T06:01:02.8686595Z       }
2026-06-06T06:01:02.8686862Z     },
2026-06-06T06:01:02.8687091Z     {
2026-06-06T06:01:02.8687376Z       "id": "REQ-START-4",
2026-06-06T06:01:02.8687916Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-06T06:01:02.8688222Z       "requiredStages": [
2026-06-06T06:01:02.8688473Z         "impl",
2026-06-06T06:01:02.8688706Z         "unit"
2026-06-06T06:01:02.8688946Z       ],
2026-06-06T06:01:02.8689294Z       "stages": {
2026-06-06T06:01:02.8689552Z         "doc": {
2026-06-06T06:01:02.8689835Z           "complete": false,
2026-06-06T06:01:02.8690115Z           "evidence": []
2026-06-06T06:01:02.8690357Z         },
2026-06-06T06:01:02.8690602Z         "impl": {
2026-06-06T06:01:02.8690889Z           "complete": true,
2026-06-06T06:01:02.8691155Z           "evidence": [
2026-06-06T06:01:02.8691396Z             {
2026-06-06T06:01:02.8691830Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8692111Z               "line": 378
2026-06-06T06:01:02.8692364Z             }
2026-06-06T06:01:02.8692604Z           ]
2026-06-06T06:01:02.8692847Z         },
2026-06-06T06:01:02.8693088Z         "int": {
2026-06-06T06:01:02.8693382Z           "complete": false,
2026-06-06T06:01:02.8693651Z           "evidence": []
2026-06-06T06:01:02.8693895Z         },
2026-06-06T06:01:02.8694141Z         "unit": {
2026-06-06T06:01:02.8694424Z           "complete": true,
2026-06-06T06:01:02.8694688Z           "evidence": [
2026-06-06T06:01:02.8694934Z             {
2026-06-06T06:01:02.8695379Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-06T06:01:02.8695643Z               "line": 609
2026-06-06T06:01:02.8695885Z             }
2026-06-06T06:01:02.8696128Z           ]
2026-06-06T06:01:02.8696359Z         }
2026-06-06T06:01:02.8696596Z       }
2026-06-06T06:01:02.8696816Z     },
2026-06-06T06:01:02.8697052Z     {
2026-06-06T06:01:02.8697334Z       "id": "REQ-STORE-1",
2026-06-06T06:01:02.8702010Z       "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-06T06:01:02.8702312Z       "requiredStages": [
2026-06-06T06:01:02.8702556Z         "impl",
2026-06-06T06:01:02.8702804Z         "unit"
2026-06-06T06:01:02.8703289Z       ],
2026-06-06T06:01:02.8703538Z       "stages": {
2026-06-06T06:01:02.8703791Z         "doc": {
2026-06-06T06:01:02.8704078Z           "complete": false,
2026-06-06T06:01:02.8704360Z           "evidence": []
2026-06-06T06:01:02.8704593Z         },
2026-06-06T06:01:02.8704845Z         "impl": {
2026-06-06T06:01:02.8705138Z           "complete": true,
2026-06-06T06:01:02.8705403Z           "evidence": [
2026-06-06T06:01:02.8705647Z             {
2026-06-06T06:01:02.8706123Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8706388Z               "line": 23
2026-06-06T06:01:02.8706751Z             },
2026-06-06T06:01:02.8707002Z             {
2026-06-06T06:01:02.8707480Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8707733Z               "line": 46
2026-06-06T06:01:02.8707969Z             },
2026-06-06T06:01:02.8708203Z             {
2026-06-06T06:01:02.8708666Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8708935Z               "line": 88
2026-06-06T06:01:02.8709228Z             },
2026-06-06T06:01:02.8709482Z             {
2026-06-06T06:01:02.8709951Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8710225Z               "line": 109
2026-06-06T06:01:02.8710468Z             },
2026-06-06T06:01:02.8710718Z             {
2026-06-06T06:01:02.8711185Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8711461Z               "line": 152
2026-06-06T06:01:02.8711702Z             },
2026-06-06T06:01:02.8711938Z             {
2026-06-06T06:01:02.8712424Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8712694Z               "line": 165
2026-06-06T06:01:02.8712938Z             },
2026-06-06T06:01:02.8713174Z             {
2026-06-06T06:01:02.8713654Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8713930Z               "line": 353
2026-06-06T06:01:02.8714165Z             },
2026-06-06T06:01:02.8714419Z             {
2026-06-06T06:01:02.8714904Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8715166Z               "line": 25
2026-06-06T06:01:02.8715404Z             },
2026-06-06T06:01:02.8715649Z             {
2026-06-06T06:01:02.8716143Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8716407Z               "line": 101
2026-06-06T06:01:02.8716647Z             },
2026-06-06T06:01:02.8716879Z             {
2026-06-06T06:01:02.8717365Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8717641Z               "line": 126
2026-06-06T06:01:02.8717877Z             },
2026-06-06T06:01:02.8718111Z             {
2026-06-06T06:01:02.8718588Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8718864Z               "line": 140
2026-06-06T06:01:02.8719102Z             },
2026-06-06T06:01:02.8719381Z             {
2026-06-06T06:01:02.8719866Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8720135Z               "line": 154
2026-06-06T06:01:02.8720378Z             },
2026-06-06T06:01:02.8720611Z             {
2026-06-06T06:01:02.8721094Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8721350Z               "line": 163
2026-06-06T06:01:02.8721583Z             },
2026-06-06T06:01:02.8721823Z             {
2026-06-06T06:01:02.8722255Z               "path": "crates/spt-store/src/project.rs",
2026-06-06T06:01:02.8722523Z               "line": 16
2026-06-06T06:01:02.8722750Z             },
2026-06-06T06:01:02.8722992Z             {
2026-06-06T06:01:02.8723435Z               "path": "crates/spt-store/src/project.rs",
2026-06-06T06:01:02.8723701Z               "line": 63
2026-06-06T06:01:02.8723940Z             }
2026-06-06T06:01:02.8724170Z           ]
2026-06-06T06:01:02.8724405Z         },
2026-06-06T06:01:02.8724643Z         "int": {
2026-06-06T06:01:02.8724935Z           "complete": false,
2026-06-06T06:01:02.8725363Z           "evidence": []
2026-06-06T06:01:02.8725605Z         },
2026-06-06T06:01:02.8725855Z         "unit": {
2026-06-06T06:01:02.8726130Z           "complete": true,
2026-06-06T06:01:02.8726398Z           "evidence": [
2026-06-06T06:01:02.8726635Z             {
2026-06-06T06:01:02.8727109Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8727371Z               "line": 468
2026-06-06T06:01:02.8727616Z             },
2026-06-06T06:01:02.8727859Z             {
2026-06-06T06:01:02.8728322Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8728712Z               "line": 478
2026-06-06T06:01:02.8728955Z             },
2026-06-06T06:01:02.8729238Z             {
2026-06-06T06:01:02.8729707Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8729979Z               "line": 498
2026-06-06T06:01:02.8730221Z             },
2026-06-06T06:01:02.8730454Z             {
2026-06-06T06:01:02.8730925Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8731196Z               "line": 514
2026-06-06T06:01:02.8731447Z             },
2026-06-06T06:01:02.8731679Z             {
2026-06-06T06:01:02.8732149Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-06T06:01:02.8732421Z               "line": 535
2026-06-06T06:01:02.8732659Z             },
2026-06-06T06:01:02.8732901Z             {
2026-06-06T06:01:02.8733377Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8733654Z               "line": 427
2026-06-06T06:01:02.8733886Z             },
2026-06-06T06:01:02.8734133Z             {
2026-06-06T06:01:02.8734613Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-06T06:01:02.8734873Z               "line": 457
2026-06-06T06:01:02.8735117Z             },
2026-06-06T06:01:02.8735354Z             {
2026-06-06T06:01:02.8735795Z               "path": "crates/spt-store/src/project.rs",
2026-06-06T06:01:02.8736077Z               "line": 116
2026-06-06T06:01:02.8736312Z             },
2026-06-06T06:01:02.8741504Z             {
2026-06-06T06:01:02.8742017Z               "path": "crates/spt-store/src/project.rs",
2026-06-06T06:01:02.8742302Z               "line": 124
2026-06-06T06:01:02.8742536Z             }
2026-06-06T06:01:02.8742772Z           ]
2026-06-06T06:01:02.8743005Z         }
2026-06-06T06:01:02.8743239Z       }
2026-06-06T06:01:02.8743473Z     },
2026-06-06T06:01:02.8743698Z     {
2026-06-06T06:01:02.8743987Z       "id": "REQ-SUBNET-1",
2026-06-06T06:01:02.8745565Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-totp; spt pair deleted",
2026-06-06T06:01:02.8745860Z       "requiredStages": [
2026-06-06T06:01:02.8746104Z         "impl",
2026-06-06T06:01:02.8746334Z         "unit"
2026-06-06T06:01:02.8746573Z       ],
2026-06-06T06:01:02.8746821Z       "stages": {
2026-06-06T06:01:02.8747057Z         "doc": {
2026-06-06T06:01:02.8747334Z           "complete": false,
2026-06-06T06:01:02.8747614Z           "evidence": []
2026-06-06T06:01:02.8747854Z         },
2026-06-06T06:01:02.8748096Z         "impl": {
2026-06-06T06:01:02.8748377Z           "complete": true,
2026-06-06T06:01:02.8748633Z           "evidence": [
2026-06-06T06:01:02.8748870Z             {
2026-06-06T06:01:02.8749422Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8749702Z               "line": 217
2026-06-06T06:01:02.8749939Z             },
2026-06-06T06:01:02.8750173Z             {
2026-06-06T06:01:02.8750673Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8750944Z               "line": 399
2026-06-06T06:01:02.8751189Z             },
2026-06-06T06:01:02.8751422Z             {
2026-06-06T06:01:02.8751782Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8752055Z               "line": 1603
2026-06-06T06:01:02.8752284Z             },
2026-06-06T06:01:02.8752520Z             {
2026-06-06T06:01:02.8752865Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8753415Z               "line": 1687
2026-06-06T06:01:02.8753648Z             },
2026-06-06T06:01:02.8753885Z             {
2026-06-06T06:01:02.8754240Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8754503Z               "line": 1699
2026-06-06T06:01:02.8754747Z             },
2026-06-06T06:01:02.8754974Z             {
2026-06-06T06:01:02.8755324Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8755590Z               "line": 1721
2026-06-06T06:01:02.8755830Z             },
2026-06-06T06:01:02.8756071Z             {
2026-06-06T06:01:02.8756534Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8756816Z               "line": 1750
2026-06-06T06:01:02.8757046Z             },
2026-06-06T06:01:02.8757286Z             {
2026-06-06T06:01:02.8757630Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8757906Z               "line": 1812
2026-06-06T06:01:02.8758151Z             },
2026-06-06T06:01:02.8758379Z             {
2026-06-06T06:01:02.8758746Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8759013Z               "line": 1856
2026-06-06T06:01:02.8759292Z             },
2026-06-06T06:01:02.8759522Z             {
2026-06-06T06:01:02.8759874Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8760148Z               "line": 1891
2026-06-06T06:01:02.8760382Z             },
2026-06-06T06:01:02.8760615Z             {
2026-06-06T06:01:02.8760986Z               "path": "crates/spt/src/wansend.rs",
2026-06-06T06:01:02.8761258Z               "line": 362
2026-06-06T06:01:02.8761500Z             }
2026-06-06T06:01:02.8761740Z           ]
2026-06-06T06:01:02.8761974Z         },
2026-06-06T06:01:02.8762209Z         "int": {
2026-06-06T06:01:02.8762493Z           "complete": false,
2026-06-06T06:01:02.8762757Z           "evidence": []
2026-06-06T06:01:02.8762992Z         },
2026-06-06T06:01:02.8763229Z         "unit": {
2026-06-06T06:01:02.8763515Z           "complete": true,
2026-06-06T06:01:02.8763786Z           "evidence": [
2026-06-06T06:01:02.8764014Z             {
2026-06-06T06:01:02.8764508Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8764764Z               "line": 714
2026-06-06T06:01:02.8765007Z             },
2026-06-06T06:01:02.8765243Z             {
2026-06-06T06:01:02.8765602Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8765871Z               "line": 4459
2026-06-06T06:01:02.8766101Z             },
2026-06-06T06:01:02.8766334Z             {
2026-06-06T06:01:02.8766684Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8766957Z               "line": 4520
2026-06-06T06:01:02.8767188Z             },
2026-06-06T06:01:02.8767431Z             {
2026-06-06T06:01:02.8767776Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8768035Z               "line": 4527
2026-06-06T06:01:02.8768274Z             },
2026-06-06T06:01:02.8768497Z             {
2026-06-06T06:01:02.8768847Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8769129Z               "line": 4545
2026-06-06T06:01:02.8769395Z             },
2026-06-06T06:01:02.8769640Z             {
2026-06-06T06:01:02.8769982Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8770256Z               "line": 4558
2026-06-06T06:01:02.8770490Z             },
2026-06-06T06:01:02.8770728Z             {
2026-06-06T06:01:02.8771079Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8771333Z               "line": 4568
2026-06-06T06:01:02.8771572Z             },
2026-06-06T06:01:02.8771804Z             {
2026-06-06T06:01:02.8772167Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8772425Z               "line": 4623
2026-06-06T06:01:02.8772660Z             }
2026-06-06T06:01:02.8772889Z           ]
2026-06-06T06:01:02.8773108Z         }
2026-06-06T06:01:02.8773338Z       }
2026-06-06T06:01:02.8773559Z     },
2026-06-06T06:01:02.8773782Z     {
2026-06-06T06:01:02.8774063Z       "id": "REQ-SUBNET-2",
2026-06-06T06:01:02.8775332Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-06T06:01:02.8775634Z       "requiredStages": [
2026-06-06T06:01:02.8775876Z         "impl",
2026-06-06T06:01:02.8776123Z         "unit",
2026-06-06T06:01:02.8776358Z         "int"
2026-06-06T06:01:02.8776600Z       ],
2026-06-06T06:01:02.8776845Z       "stages": {
2026-06-06T06:01:02.8777083Z         "doc": {
2026-06-06T06:01:02.8777370Z           "complete": true,
2026-06-06T06:01:02.8777636Z           "evidence": [
2026-06-06T06:01:02.8777882Z             {
2026-06-06T06:01:02.8778637Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-06T06:01:02.8778910Z               "line": 60
2026-06-06T06:01:02.8779132Z             }
2026-06-06T06:01:02.8779414Z           ]
2026-06-06T06:01:02.8779653Z         },
2026-06-06T06:01:02.8779904Z         "impl": {
2026-06-06T06:01:02.8780186Z           "complete": true,
2026-06-06T06:01:02.8780446Z           "evidence": [
2026-06-06T06:01:02.8780690Z             {
2026-06-06T06:01:02.8781112Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.8781379Z               "line": 514
2026-06-06T06:01:02.8781623Z             },
2026-06-06T06:01:02.8781847Z             {
2026-06-06T06:01:02.8782284Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-06T06:01:02.8782537Z               "line": 606
2026-06-06T06:01:02.8782776Z             },
2026-06-06T06:01:02.8782999Z             {
2026-06-06T06:01:02.8783443Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.8783720Z               "line": 401
2026-06-06T06:01:02.8783950Z             },
2026-06-06T06:01:02.8784192Z             {
2026-06-06T06:01:02.8784618Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-06T06:01:02.8784882Z               "line": 477
2026-06-06T06:01:02.8785109Z             },
2026-06-06T06:01:02.8785342Z             {
2026-06-06T06:01:02.8785791Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-06T06:01:02.8786058Z               "line": 26
2026-06-06T06:01:02.8786307Z             },
2026-06-06T06:01:02.8786535Z             {
2026-06-06T06:01:02.8786981Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-06T06:01:02.8787231Z               "line": 54
2026-06-06T06:01:02.8787462Z             },
2026-06-06T06:01:02.8787702Z             {
2026-06-06T06:01:02.8788149Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-06T06:01:02.8788411Z               "line": 94
2026-06-06T06:01:02.8788644Z             },
2026-06-06T06:01:02.8788890Z             {
2026-06-06T06:01:02.8794140Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-06T06:01:02.8794484Z               "line": 190
2026-06-06T06:01:02.8794733Z             },
2026-06-06T06:01:02.8794965Z             {
2026-06-06T06:01:02.8795326Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8795590Z               "line": 1994
2026-06-06T06:01:02.8795861Z             }
2026-06-06T06:01:02.8796092Z           ]
2026-06-06T06:01:02.8796326Z         },
2026-06-06T06:01:02.8796565Z         "int": {
2026-06-06T06:01:02.8796847Z           "complete": true,
2026-06-06T06:01:02.8797110Z           "evidence": [
2026-06-06T06:01:02.8797347Z             {
2026-06-06T06:01:02.8797799Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8798065Z               "line": 535
2026-06-06T06:01:02.8798305Z             },
2026-06-06T06:01:02.8798539Z             {
2026-06-06T06:01:02.8798996Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8799349Z               "line": 696
2026-06-06T06:01:02.8799590Z             }
2026-06-06T06:01:02.8799851Z           ]
2026-06-06T06:01:02.8800084Z         },
2026-06-06T06:01:02.8800336Z         "unit": {
2026-06-06T06:01:02.8800626Z           "complete": true,
2026-06-06T06:01:02.8800888Z           "evidence": [
2026-06-06T06:01:02.8801125Z             {
2026-06-06T06:01:02.8801578Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-06T06:01:02.8802101Z               "line": 254
2026-06-06T06:01:02.8802339Z             },
2026-06-06T06:01:02.8802571Z             {
2026-06-06T06:01:02.8802929Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8803187Z               "line": 4490
2026-06-06T06:01:02.8803427Z             }
2026-06-06T06:01:02.8803650Z           ]
2026-06-06T06:01:02.8803888Z         }
2026-06-06T06:01:02.8804117Z       }
2026-06-06T06:01:02.8804349Z     },
2026-06-06T06:01:02.8804580Z     {
2026-06-06T06:01:02.8804985Z       "id": "REQ-SUBNET-3",
2026-06-06T06:01:02.8806270Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-06T06:01:02.8806558Z       "requiredStages": [
2026-06-06T06:01:02.8806806Z         "impl",
2026-06-06T06:01:02.8807050Z         "unit"
2026-06-06T06:01:02.8807280Z       ],
2026-06-06T06:01:02.8807534Z       "stages": {
2026-06-06T06:01:02.8807771Z         "doc": {
2026-06-06T06:01:02.8808064Z           "complete": false,
2026-06-06T06:01:02.8808330Z           "evidence": []
2026-06-06T06:01:02.8808570Z         },
2026-06-06T06:01:02.8808812Z         "impl": {
2026-06-06T06:01:02.8809090Z           "complete": true,
2026-06-06T06:01:02.8809407Z           "evidence": [
2026-06-06T06:01:02.8809631Z             {
2026-06-06T06:01:02.8810131Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8810389Z               "line": 131
2026-06-06T06:01:02.8810637Z             },
2026-06-06T06:01:02.8810867Z             {
2026-06-06T06:01:02.8811369Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8811639Z               "line": 315
2026-06-06T06:01:02.8811872Z             },
2026-06-06T06:01:02.8812113Z             {
2026-06-06T06:01:02.8812556Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8812824Z               "line": 125
2026-06-06T06:01:02.8813060Z             },
2026-06-06T06:01:02.8813302Z             {
2026-06-06T06:01:02.8813756Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8814021Z               "line": 454
2026-06-06T06:01:02.8814265Z             },
2026-06-06T06:01:02.8814502Z             {
2026-06-06T06:01:02.8814950Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8815217Z               "line": 508
2026-06-06T06:01:02.8815448Z             },
2026-06-06T06:01:02.8815682Z             {
2026-06-06T06:01:02.8816120Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-06T06:01:02.8816387Z               "line": 9
2026-06-06T06:01:02.8816619Z             },
2026-06-06T06:01:02.8816854Z             {
2026-06-06T06:01:02.8817210Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8817470Z               "line": 1856
2026-06-06T06:01:02.8817705Z             }
2026-06-06T06:01:02.8817934Z           ]
2026-06-06T06:01:02.8818169Z         },
2026-06-06T06:01:02.8818408Z         "int": {
2026-06-06T06:01:02.8818708Z           "complete": false,
2026-06-06T06:01:02.8818983Z           "evidence": []
2026-06-06T06:01:02.8819249Z         },
2026-06-06T06:01:02.8819504Z         "unit": {
2026-06-06T06:01:02.8819778Z           "complete": true,
2026-06-06T06:01:02.8820047Z           "evidence": [
2026-06-06T06:01:02.8820271Z             {
2026-06-06T06:01:02.8820759Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-06T06:01:02.8821024Z               "line": 746
2026-06-06T06:01:02.8821257Z             },
2026-06-06T06:01:02.8821493Z             {
2026-06-06T06:01:02.8821941Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8822216Z               "line": 739
2026-06-06T06:01:02.8822444Z             },
2026-06-06T06:01:02.8822682Z             {
2026-06-06T06:01:02.8823127Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-06T06:01:02.8823379Z               "line": 775
2026-06-06T06:01:02.8823616Z             },
2026-06-06T06:01:02.8824009Z             {
2026-06-06T06:01:02.8824459Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-06T06:01:02.8824709Z               "line": 49
2026-06-06T06:01:02.8824962Z             },
2026-06-06T06:01:02.8825200Z             {
2026-06-06T06:01:02.8825541Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8825809Z               "line": 4623
2026-06-06T06:01:02.8826037Z             }
2026-06-06T06:01:02.8826268Z           ]
2026-06-06T06:01:02.8826494Z         }
2026-06-06T06:01:02.8826731Z       }
2026-06-06T06:01:02.8826956Z     },
2026-06-06T06:01:02.8827354Z     {
2026-06-06T06:01:02.8827656Z       "id": "REQ-SUBNET-4",
2026-06-06T06:01:02.8829001Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-06T06:01:02.8829340Z       "requiredStages": [
2026-06-06T06:01:02.8829582Z         "impl",
2026-06-06T06:01:02.8829825Z         "unit"
2026-06-06T06:01:02.8830061Z       ],
2026-06-06T06:01:02.8830324Z       "stages": {
2026-06-06T06:01:02.8830567Z         "doc": {
2026-06-06T06:01:02.8830849Z           "complete": true,
2026-06-06T06:01:02.8831122Z           "evidence": [
2026-06-06T06:01:02.8831353Z             {
2026-06-06T06:01:02.8831986Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-06T06:01:02.8832253Z               "line": 60
2026-06-06T06:01:02.8832484Z             }
2026-06-06T06:01:02.8832719Z           ]
2026-06-06T06:01:02.8832950Z         },
2026-06-06T06:01:02.8833213Z         "impl": {
2026-06-06T06:01:02.8833501Z           "complete": true,
2026-06-06T06:01:02.8833776Z           "evidence": [
2026-06-06T06:01:02.8834021Z             {
2026-06-06T06:01:02.8834361Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8834629Z               "line": 1603
2026-06-06T06:01:02.8834861Z             },
2026-06-06T06:01:02.8835094Z             {
2026-06-06T06:01:02.8835453Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8835727Z               "line": 1961
2026-06-06T06:01:02.8835965Z             },
2026-06-06T06:01:02.8836199Z             {
2026-06-06T06:01:02.8836558Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8836813Z               "line": 1994
2026-06-06T06:01:02.8837047Z             }
2026-06-06T06:01:02.8837282Z           ]
2026-06-06T06:01:02.8837511Z         },
2026-06-06T06:01:02.8837752Z         "int": {
2026-06-06T06:01:02.8838033Z           "complete": false,
2026-06-06T06:01:02.8838301Z           "evidence": []
2026-06-06T06:01:02.8838529Z         },
2026-06-06T06:01:02.8838791Z         "unit": {
2026-06-06T06:01:02.8839070Z           "complete": true,
2026-06-06T06:01:02.8839378Z           "evidence": [
2026-06-06T06:01:02.8839621Z             {
2026-06-06T06:01:02.8839970Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8840239Z               "line": 4506
2026-06-06T06:01:02.8840471Z             },
2026-06-06T06:01:02.8840714Z             {
2026-06-06T06:01:02.8841085Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8841346Z               "line": 4545
2026-06-06T06:01:02.8841584Z             }
2026-06-06T06:01:02.8846614Z           ]
2026-06-06T06:01:02.8846911Z         }
2026-06-06T06:01:02.8847141Z       }
2026-06-06T06:01:02.8847375Z     },
2026-06-06T06:01:02.8847595Z     {
2026-06-06T06:01:02.8847887Z       "id": "REQ-TERM-1",
2026-06-06T06:01:02.8848616Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-06T06:01:02.8848901Z       "requiredStages": [
2026-06-06T06:01:02.8849148Z         "impl",
2026-06-06T06:01:02.8849498Z         "unit"
2026-06-06T06:01:02.8849742Z       ],
2026-06-06T06:01:02.8849987Z       "stages": {
2026-06-06T06:01:02.8850234Z         "doc": {
2026-06-06T06:01:02.8850529Z           "complete": false,
2026-06-06T06:01:02.8850789Z           "evidence": []
2026-06-06T06:01:02.8851024Z         },
2026-06-06T06:01:02.8851268Z         "impl": {
2026-06-06T06:01:02.8851553Z           "complete": true,
2026-06-06T06:01:02.8852060Z           "evidence": [
2026-06-06T06:01:02.8852305Z             {
2026-06-06T06:01:02.8852725Z               "path": "crates/spt-term/src/pty.rs",
2026-06-06T06:01:02.8852980Z               "line": 61
2026-06-06T06:01:02.8853221Z             },
2026-06-06T06:01:02.8853451Z             {
2026-06-06T06:01:02.8853837Z               "path": "crates/spt-term/src/pty.rs",
2026-06-06T06:01:02.8854106Z               "line": 169
2026-06-06T06:01:02.8854365Z             },
2026-06-06T06:01:02.8854649Z             {
2026-06-06T06:01:02.8855230Z               "path": "crates/spt-term/src/surface.rs",
2026-06-06T06:01:02.8855508Z               "line": 95
2026-06-06T06:01:02.8855737Z             }
2026-06-06T06:01:02.8855978Z           ]
2026-06-06T06:01:02.8856221Z         },
2026-06-06T06:01:02.8856459Z         "int": {
2026-06-06T06:01:02.8856749Z           "complete": false,
2026-06-06T06:01:02.8857017Z           "evidence": []
2026-06-06T06:01:02.8857255Z         },
2026-06-06T06:01:02.8857514Z         "unit": {
2026-06-06T06:01:02.8857803Z           "complete": true,
2026-06-06T06:01:02.8858059Z           "evidence": [
2026-06-06T06:01:02.8858295Z             {
2026-06-06T06:01:02.8858785Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-06T06:01:02.8859068Z               "line": 28
2026-06-06T06:01:02.8859400Z             },
2026-06-06T06:01:02.8859641Z             {
2026-06-06T06:01:02.8860096Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-06T06:01:02.8860361Z               "line": 60
2026-06-06T06:01:02.8860592Z             }
2026-06-06T06:01:02.8860848Z           ]
2026-06-06T06:01:02.8861082Z         }
2026-06-06T06:01:02.8861318Z       }
2026-06-06T06:01:02.8861549Z     },
2026-06-06T06:01:02.8861781Z     {
2026-06-06T06:01:02.8862052Z       "id": "REQ-TERM-2",
2026-06-06T06:01:02.8862834Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-06T06:01:02.8863131Z       "requiredStages": [
2026-06-06T06:01:02.8863378Z         "impl",
2026-06-06T06:01:02.8863621Z         "unit"
2026-06-06T06:01:02.8863848Z       ],
2026-06-06T06:01:02.8864107Z       "stages": {
2026-06-06T06:01:02.8864341Z         "doc": {
2026-06-06T06:01:02.8864631Z           "complete": false,
2026-06-06T06:01:02.8864900Z           "evidence": []
2026-06-06T06:01:02.8865130Z         },
2026-06-06T06:01:02.8865373Z         "impl": {
2026-06-06T06:01:02.8865653Z           "complete": true,
2026-06-06T06:01:02.8865927Z           "evidence": [
2026-06-06T06:01:02.8866160Z             {
2026-06-06T06:01:02.8866596Z               "path": "crates/spt-term/src/surface.rs",
2026-06-06T06:01:02.8866873Z               "line": 112
2026-06-06T06:01:02.8867108Z             },
2026-06-06T06:01:02.8867345Z             {
2026-06-06T06:01:02.8867758Z               "path": "crates/spt-term/src/surface.rs",
2026-06-06T06:01:02.8868031Z               "line": 122
2026-06-06T06:01:02.8868274Z             }
2026-06-06T06:01:02.8868500Z           ]
2026-06-06T06:01:02.8868750Z         },
2026-06-06T06:01:02.8868990Z         "int": {
2026-06-06T06:01:02.8869321Z           "complete": false,
2026-06-06T06:01:02.8869587Z           "evidence": []
2026-06-06T06:01:02.8869825Z         },
2026-06-06T06:01:02.8870061Z         "unit": {
2026-06-06T06:01:02.8870348Z           "complete": true,
2026-06-06T06:01:02.8870618Z           "evidence": [
2026-06-06T06:01:02.8870847Z             {
2026-06-06T06:01:02.8871282Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-06T06:01:02.8871537Z               "line": 46
2026-06-06T06:01:02.8871777Z             },
2026-06-06T06:01:02.8872027Z             {
2026-06-06T06:01:02.8872457Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-06T06:01:02.8872723Z               "line": 71
2026-06-06T06:01:02.8872948Z             }
2026-06-06T06:01:02.8873188Z           ]
2026-06-06T06:01:02.8873412Z         }
2026-06-06T06:01:02.8873641Z       }
2026-06-06T06:01:02.8873869Z     },
2026-06-06T06:01:02.8874104Z     {
2026-06-06T06:01:02.8874571Z       "id": "REQ-TERM-3",
2026-06-06T06:01:02.8875116Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-06T06:01:02.8875411Z       "requiredStages": [
2026-06-06T06:01:02.8875654Z         "impl",
2026-06-06T06:01:02.8875897Z         "unit"
2026-06-06T06:01:02.8876124Z       ],
2026-06-06T06:01:02.8876376Z       "stages": {
2026-06-06T06:01:02.8876621Z         "doc": {
2026-06-06T06:01:02.8876903Z           "complete": false,
2026-06-06T06:01:02.8877178Z           "evidence": []
2026-06-06T06:01:02.8877397Z         },
2026-06-06T06:01:02.8877765Z         "impl": {
2026-06-06T06:01:02.8878058Z           "complete": true,
2026-06-06T06:01:02.8878331Z           "evidence": [
2026-06-06T06:01:02.8878568Z             {
2026-06-06T06:01:02.8878967Z               "path": "crates/spt-term/src/stream.rs",
2026-06-06T06:01:02.8879302Z               "line": 71
2026-06-06T06:01:02.8879535Z             }
2026-06-06T06:01:02.8879773Z           ]
2026-06-06T06:01:02.8880002Z         },
2026-06-06T06:01:02.8880262Z         "int": {
2026-06-06T06:01:02.8880551Z           "complete": false,
2026-06-06T06:01:02.8880822Z           "evidence": []
2026-06-06T06:01:02.8881054Z         },
2026-06-06T06:01:02.8881293Z         "unit": {
2026-06-06T06:01:02.8881576Z           "complete": true,
2026-06-06T06:01:02.8881834Z           "evidence": [
2026-06-06T06:01:02.8882071Z             {
2026-06-06T06:01:02.8882506Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-06T06:01:02.8882761Z               "line": 37
2026-06-06T06:01:02.8882992Z             },
2026-06-06T06:01:02.8883234Z             {
2026-06-06T06:01:02.8883663Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-06T06:01:02.8883922Z               "line": 67
2026-06-06T06:01:02.8884165Z             }
2026-06-06T06:01:02.8884395Z           ]
2026-06-06T06:01:02.8884621Z         }
2026-06-06T06:01:02.8884861Z       }
2026-06-06T06:01:02.8885092Z     },
2026-06-06T06:01:02.8885323Z     {
2026-06-06T06:01:02.8885604Z       "id": "REQ-TERM-4",
2026-06-06T06:01:02.8887377Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-06T06:01:02.8887667Z       "requiredStages": [
2026-06-06T06:01:02.8887907Z         "impl",
2026-06-06T06:01:02.8888145Z         "unit",
2026-06-06T06:01:02.8888378Z         "int"
2026-06-06T06:01:02.8888614Z       ],
2026-06-06T06:01:02.8888867Z       "stages": {
2026-06-06T06:01:02.8889097Z         "doc": {
2026-06-06T06:01:02.8889428Z           "complete": true,
2026-06-06T06:01:02.8889700Z           "evidence": [
2026-06-06T06:01:02.8889943Z             {
2026-06-06T06:01:02.8890264Z               "path": "docs/MANIFEST.md",
2026-06-06T06:01:02.8890532Z               "line": 115
2026-06-06T06:01:02.8890775Z             }
2026-06-06T06:01:02.8891013Z           ]
2026-06-06T06:01:02.8891247Z         },
2026-06-06T06:01:02.8891495Z         "impl": {
2026-06-06T06:01:02.8891781Z           "complete": true,
2026-06-06T06:01:02.8892055Z           "evidence": [
2026-06-06T06:01:02.8892292Z             {
2026-06-06T06:01:02.8892721Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-06T06:01:02.8892985Z               "line": 471
2026-06-06T06:01:02.8893228Z             },
2026-06-06T06:01:02.8893472Z             {
2026-06-06T06:01:02.8898901Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8899334Z               "line": 41
2026-06-06T06:01:02.8899587Z             },
2026-06-06T06:01:02.8899854Z             {
2026-06-06T06:01:02.8900343Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8900621Z               "line": 91
2026-06-06T06:01:02.8900848Z             },
2026-06-06T06:01:02.8901086Z             {
2026-06-06T06:01:02.8901517Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8901787Z               "line": 152
2026-06-06T06:01:02.8902032Z             },
2026-06-06T06:01:02.8902256Z             {
2026-06-06T06:01:02.8902971Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8903239Z               "line": 212
2026-06-06T06:01:02.8903478Z             },
2026-06-06T06:01:02.8903709Z             {
2026-06-06T06:01:02.8904162Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8904425Z               "line": 20
2026-06-06T06:01:02.8904659Z             },
2026-06-06T06:01:02.8904892Z             {
2026-06-06T06:01:02.8905335Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8905603Z               "line": 212
2026-06-06T06:01:02.8905964Z             },
2026-06-06T06:01:02.8906219Z             {
2026-06-06T06:01:02.8906684Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8906943Z               "line": 226
2026-06-06T06:01:02.8907184Z             },
2026-06-06T06:01:02.8907415Z             {
2026-06-06T06:01:02.8907873Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.8908126Z               "line": 625
2026-06-06T06:01:02.8908383Z             },
2026-06-06T06:01:02.8908623Z             {
2026-06-06T06:01:02.8909021Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8909340Z               "line": 157
2026-06-06T06:01:02.8909574Z             },
2026-06-06T06:01:02.8909814Z             {
2026-06-06T06:01:02.8910217Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8910495Z               "line": 199
2026-06-06T06:01:02.8910737Z             },
2026-06-06T06:01:02.8910970Z             {
2026-06-06T06:01:02.8911400Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8911672Z               "line": 226
2026-06-06T06:01:02.8911914Z             },
2026-06-06T06:01:02.8912150Z             {
2026-06-06T06:01:02.8912507Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8912778Z               "line": 656
2026-06-06T06:01:02.8913008Z             }
2026-06-06T06:01:02.8913248Z           ]
2026-06-06T06:01:02.8913491Z         },
2026-06-06T06:01:02.8913736Z         "int": {
2026-06-06T06:01:02.8914014Z           "complete": true,
2026-06-06T06:01:02.8914289Z           "evidence": [
2026-06-06T06:01:02.8914531Z             {
2026-06-06T06:01:02.8914977Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-06T06:01:02.8915247Z               "line": 18
2026-06-06T06:01:02.8915481Z             }
2026-06-06T06:01:02.8915719Z           ]
2026-06-06T06:01:02.8915948Z         },
2026-06-06T06:01:02.8916198Z         "unit": {
2026-06-06T06:01:02.8916485Z           "complete": true,
2026-06-06T06:01:02.8916750Z           "evidence": [
2026-06-06T06:01:02.8916990Z             {
2026-06-06T06:01:02.8917424Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8917695Z               "line": 250
2026-06-06T06:01:02.8917927Z             },
2026-06-06T06:01:02.8918164Z             {
2026-06-06T06:01:02.8918607Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8918883Z               "line": 263
2026-06-06T06:01:02.8919121Z             },
2026-06-06T06:01:02.8919391Z             {
2026-06-06T06:01:02.8920555Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8920834Z               "line": 275
2026-06-06T06:01:02.8921070Z             },
2026-06-06T06:01:02.8921313Z             {
2026-06-06T06:01:02.8921747Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8922019Z               "line": 290
2026-06-06T06:01:02.8922255Z             },
2026-06-06T06:01:02.8922495Z             {
2026-06-06T06:01:02.8922945Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8923210Z               "line": 305
2026-06-06T06:01:02.8923454Z             },
2026-06-06T06:01:02.8923688Z             {
2026-06-06T06:01:02.8924128Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8924391Z               "line": 327
2026-06-06T06:01:02.8924636Z             },
2026-06-06T06:01:02.8924878Z             {
2026-06-06T06:01:02.8925492Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8925757Z               "line": 337
2026-06-06T06:01:02.8925994Z             },
2026-06-06T06:01:02.8926239Z             {
2026-06-06T06:01:02.8926665Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-06T06:01:02.8926939Z               "line": 364
2026-06-06T06:01:02.8927187Z             },
2026-06-06T06:01:02.8927413Z             {
2026-06-06T06:01:02.8927875Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8928139Z               "line": 338
2026-06-06T06:01:02.8928549Z             },
2026-06-06T06:01:02.8928803Z             {
2026-06-06T06:01:02.8929336Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8929613Z               "line": 350
2026-06-06T06:01:02.8929846Z             },
2026-06-06T06:01:02.8930088Z             {
2026-06-06T06:01:02.8930531Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8930819Z               "line": 367
2026-06-06T06:01:02.8931061Z             },
2026-06-06T06:01:02.8931293Z             {
2026-06-06T06:01:02.8931748Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-06T06:01:02.8932011Z               "line": 378
2026-06-06T06:01:02.8932256Z             },
2026-06-06T06:01:02.8932494Z             {
2026-06-06T06:01:02.8932947Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.8933212Z               "line": 810
2026-06-06T06:01:02.8933443Z             },
2026-06-06T06:01:02.8933686Z             {
2026-06-06T06:01:02.8934141Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.8934414Z               "line": 817
2026-06-06T06:01:02.8934651Z             },
2026-06-06T06:01:02.8934895Z             {
2026-06-06T06:01:02.8935347Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.8935607Z               "line": 832
2026-06-06T06:01:02.8935853Z             },
2026-06-06T06:01:02.8936092Z             {
2026-06-06T06:01:02.8936499Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8936760Z               "line": 381
2026-06-06T06:01:02.8937001Z             },
2026-06-06T06:01:02.8937240Z             {
2026-06-06T06:01:02.8937637Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8937905Z               "line": 402
2026-06-06T06:01:02.8938136Z             },
2026-06-06T06:01:02.8938380Z             {
2026-06-06T06:01:02.8938779Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8939057Z               "line": 415
2026-06-06T06:01:02.8939339Z             },
2026-06-06T06:01:02.8939580Z             {
2026-06-06T06:01:02.8939989Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8940253Z               "line": 434
2026-06-06T06:01:02.8940497Z             },
2026-06-06T06:01:02.8940733Z             {
2026-06-06T06:01:02.8941149Z               "path": "crates/spt-term/src/digest.rs",
2026-06-06T06:01:02.8941426Z               "line": 461
2026-06-06T06:01:02.8941663Z             },
2026-06-06T06:01:02.8941908Z             {
2026-06-06T06:01:02.8942338Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-06T06:01:02.8942606Z               "line": 32
2026-06-06T06:01:02.8942841Z             },
2026-06-06T06:01:02.8943084Z             {
2026-06-06T06:01:02.8943437Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.8943702Z               "line": 4333
2026-06-06T06:01:02.8943943Z             }
2026-06-06T06:01:02.8944175Z           ]
2026-06-06T06:01:02.8944422Z         }
2026-06-06T06:01:02.8944652Z       }
2026-06-06T06:01:02.8944886Z     },
2026-06-06T06:01:02.8945119Z     {
2026-06-06T06:01:02.8945391Z       "id": "REQ-UPD-1",
2026-06-06T06:01:02.8945824Z       "title": "Peer-propagated update over P2P",
2026-06-06T06:01:02.8946110Z       "requiredStages": [
2026-06-06T06:01:02.8946365Z         "impl",
2026-06-06T06:01:02.8946605Z         "unit",
2026-06-06T06:01:02.8947213Z         "int"
2026-06-06T06:01:02.8947454Z       ],
2026-06-06T06:01:02.8952887Z       "stages": {
2026-06-06T06:01:02.8953213Z         "doc": {
2026-06-06T06:01:02.8953512Z           "complete": false,
2026-06-06T06:01:02.8953792Z           "evidence": []
2026-06-06T06:01:02.8954027Z         },
2026-06-06T06:01:02.8954283Z         "impl": {
2026-06-06T06:01:02.8954573Z           "complete": true,
2026-06-06T06:01:02.8954837Z           "evidence": [
2026-06-06T06:01:02.8955077Z             {
2026-06-06T06:01:02.8955544Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.8956054Z               "line": 28
2026-06-06T06:01:02.8956305Z             },
2026-06-06T06:01:02.8956548Z             {
2026-06-06T06:01:02.8957020Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.8957280Z               "line": 74
2026-06-06T06:01:02.8957523Z             },
2026-06-06T06:01:02.8957757Z             {
2026-06-06T06:01:02.8958223Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.8958501Z               "line": 209
2026-06-06T06:01:02.8958746Z             },
2026-06-06T06:01:02.8958982Z             {
2026-06-06T06:01:02.8959491Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8959762Z               "line": 22
2026-06-06T06:01:02.8960001Z             },
2026-06-06T06:01:02.8960241Z             {
2026-06-06T06:01:02.8960691Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8960945Z               "line": 67
2026-06-06T06:01:02.8961190Z             },
2026-06-06T06:01:02.8961426Z             {
2026-06-06T06:01:02.8961879Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8962141Z               "line": 80
2026-06-06T06:01:02.8962386Z             },
2026-06-06T06:01:02.8962623Z             {
2026-06-06T06:01:02.8963074Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8963340Z               "line": 101
2026-06-06T06:01:02.8963589Z             },
2026-06-06T06:01:02.8963825Z             {
2026-06-06T06:01:02.8964263Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-06T06:01:02.8964536Z               "line": 37
2026-06-06T06:01:02.8964775Z             }
2026-06-06T06:01:02.8965014Z           ]
2026-06-06T06:01:02.8965253Z         },
2026-06-06T06:01:02.8965498Z         "int": {
2026-06-06T06:01:02.8965780Z           "complete": true,
2026-06-06T06:01:02.8966039Z           "evidence": [
2026-06-06T06:01:02.8966277Z             {
2026-06-06T06:01:02.8966767Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-06T06:01:02.8967034Z               "line": 190
2026-06-06T06:01:02.8967271Z             },
2026-06-06T06:01:02.8967503Z             {
2026-06-06T06:01:02.8967959Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-06T06:01:02.8968221Z               "line": 855
2026-06-06T06:01:02.8968462Z             }
2026-06-06T06:01:02.8968707Z           ]
2026-06-06T06:01:02.8968938Z         },
2026-06-06T06:01:02.8969235Z         "unit": {
2026-06-06T06:01:02.8969516Z           "complete": true,
2026-06-06T06:01:02.8969787Z           "evidence": [
2026-06-06T06:01:02.8970020Z             {
2026-06-06T06:01:02.8970476Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8970758Z               "line": 120
2026-06-06T06:01:02.8971187Z             },
2026-06-06T06:01:02.8971631Z             {
2026-06-06T06:01:02.8972333Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-06T06:01:02.8973678Z               "line": 137
2026-06-06T06:01:02.8974499Z             },
2026-06-06T06:01:02.8975190Z             {
2026-06-06T06:01:02.8976071Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-06T06:01:02.8977214Z               "line": 201
2026-06-06T06:01:02.8978024Z             },
2026-06-06T06:01:02.8978717Z             {
2026-06-06T06:01:02.8979914Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-06T06:01:02.8981171Z               "line": 92
2026-06-06T06:01:02.8982340Z             },
2026-06-06T06:01:02.8983008Z             {
2026-06-06T06:01:02.8983913Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-06T06:01:02.8985149Z               "line": 128
2026-06-06T06:01:02.8985939Z             }
2026-06-06T06:01:02.8986583Z           ]
2026-06-06T06:01:02.8987218Z         }
2026-06-06T06:01:02.8987872Z       }
2026-06-06T06:01:02.8988496Z     },
2026-06-06T06:01:02.8989116Z     {
2026-06-06T06:01:02.8989952Z       "id": "REQ-UPD-2",
2026-06-06T06:01:02.8991583Z       "title": "All binaries signature-verified before handoff",
2026-06-06T06:01:02.8992983Z       "requiredStages": [
2026-06-06T06:01:02.8993781Z         "impl",
2026-06-06T06:01:02.8994437Z         "unit"
2026-06-06T06:01:02.8995104Z       ],
2026-06-06T06:01:02.8995767Z       "stages": {
2026-06-06T06:01:02.8996495Z         "doc": {
2026-06-06T06:01:02.8997260Z           "complete": false,
2026-06-06T06:01:02.8998162Z           "evidence": []
2026-06-06T06:01:02.8998970Z         },
2026-06-06T06:01:02.8999805Z         "impl": {
2026-06-06T06:01:02.9000644Z           "complete": true,
2026-06-06T06:01:02.9001553Z           "evidence": [
2026-06-06T06:01:02.9002259Z             {
2026-06-06T06:01:02.9003077Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.9004162Z               "line": 210
2026-06-06T06:01:02.9004885Z             },
2026-06-06T06:01:02.9005492Z             {
2026-06-06T06:01:02.9006489Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-06T06:01:02.9007635Z               "line": 294
2026-06-06T06:01:02.9008402Z             },
2026-06-06T06:01:02.9009042Z             {
2026-06-06T06:01:02.9016529Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9017638Z               "line": 29
2026-06-06T06:01:02.9018364Z             },
2026-06-06T06:01:02.9018977Z             {
2026-06-06T06:01:02.9019892Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9020977Z               "line": 151
2026-06-06T06:01:02.9021700Z             },
2026-06-06T06:01:02.9022311Z             {
2026-06-06T06:01:02.9023125Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9024191Z               "line": 168
2026-06-06T06:01:02.9024912Z             },
2026-06-06T06:01:02.9025522Z             {
2026-06-06T06:01:02.9026327Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9027388Z               "line": 274
2026-06-06T06:01:02.9028110Z             },
2026-06-06T06:01:02.9028715Z             {
2026-06-06T06:01:02.9030516Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9031767Z               "line": 355
2026-06-06T06:01:02.9032636Z             },
2026-06-06T06:01:02.9033355Z             {
2026-06-06T06:01:02.9034201Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9035339Z               "line": 149
2026-06-06T06:01:02.9036110Z             }
2026-06-06T06:01:02.9036877Z           ]
2026-06-06T06:01:02.9037485Z         },
2026-06-06T06:01:02.9038061Z         "int": {
2026-06-06T06:01:02.9038743Z           "complete": false,
2026-06-06T06:01:02.9039620Z           "evidence": []
2026-06-06T06:01:02.9040360Z         },
2026-06-06T06:01:02.9040999Z         "unit": {
2026-06-06T06:01:02.9041731Z           "complete": true,
2026-06-06T06:01:02.9042913Z           "evidence": [
2026-06-06T06:01:02.9043939Z             {
2026-06-06T06:01:02.9044917Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9046115Z               "line": 440
2026-06-06T06:01:02.9047344Z             },
2026-06-06T06:01:02.9048079Z             {
2026-06-06T06:01:02.9049024Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9050347Z               "line": 498
2026-06-06T06:01:02.9051219Z             },
2026-06-06T06:01:02.9051922Z             {
2026-06-06T06:01:02.9052835Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9054016Z               "line": 512
2026-06-06T06:01:02.9055375Z             },
2026-06-06T06:01:02.9056005Z             {
2026-06-06T06:01:02.9056855Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9057932Z               "line": 523
2026-06-06T06:01:02.9059361Z             },
2026-06-06T06:01:02.9060033Z             {
2026-06-06T06:01:02.9060856Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9061983Z               "line": 599
2026-06-06T06:01:02.9063078Z             },
2026-06-06T06:01:02.9063720Z             {
2026-06-06T06:01:02.9064989Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9066202Z               "line": 331
2026-06-06T06:01:02.9067015Z             },
2026-06-06T06:01:02.9067684Z             {
2026-06-06T06:01:02.9068556Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9069852Z               "line": 344
2026-06-06T06:01:02.9070624Z             },
2026-06-06T06:01:02.9071266Z             {
2026-06-06T06:01:02.9072144Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-06T06:01:02.9073284Z               "line": 242
2026-06-06T06:01:02.9073991Z             }
2026-06-06T06:01:02.9074592Z           ]
2026-06-06T06:01:02.9075161Z         }
2026-06-06T06:01:02.9075691Z       }
2026-06-06T06:01:02.9076216Z     },
2026-06-06T06:01:02.9076714Z     {
2026-06-06T06:01:02.9077259Z       "id": "REQ-UPD-3",
2026-06-06T06:01:02.9078513Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-06T06:01:02.9080099Z       "requiredStages": [
2026-06-06T06:01:02.9080827Z         "impl",
2026-06-06T06:01:02.9081444Z         "unit",
2026-06-06T06:01:02.9082022Z         "int"
2026-06-06T06:01:02.9082575Z       ],
2026-06-06T06:01:02.9083154Z       "stages": {
2026-06-06T06:01:02.9100156Z         "doc": {
2026-06-06T06:01:02.9100917Z           "complete": false,
2026-06-06T06:01:02.9101714Z           "evidence": []
2026-06-06T06:01:02.9102448Z         },
2026-06-06T06:01:02.9103107Z         "impl": {
2026-06-06T06:01:02.9103779Z           "complete": true,
2026-06-06T06:01:02.9104514Z           "evidence": [
2026-06-06T06:01:02.9105138Z             {
2026-06-06T06:01:02.9105891Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9106923Z               "line": 39
2026-06-06T06:01:02.9107585Z             },
2026-06-06T06:01:02.9108122Z             {
2026-06-06T06:01:02.9108870Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9110096Z               "line": 69
2026-06-06T06:01:02.9110718Z             },
2026-06-06T06:01:02.9111266Z             {
2026-06-06T06:01:02.9111960Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9112929Z               "line": 26
2026-06-06T06:01:02.9113553Z             },
2026-06-06T06:01:02.9114066Z             {
2026-06-06T06:01:02.9114762Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9115718Z               "line": 111
2026-06-06T06:01:02.9116368Z             },
2026-06-06T06:01:02.9116881Z             {
2026-06-06T06:01:02.9117580Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9118526Z               "line": 218
2026-06-06T06:01:02.9119148Z             },
2026-06-06T06:01:02.9120010Z             {
2026-06-06T06:01:02.9120628Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.9121498Z               "line": 1214
2026-06-06T06:01:02.9122144Z             }
2026-06-06T06:01:02.9122651Z           ]
2026-06-06T06:01:02.9123132Z         },
2026-06-06T06:01:02.9123638Z         "int": {
2026-06-06T06:01:02.9124214Z           "complete": true,
2026-06-06T06:01:02.9124898Z           "evidence": [
2026-06-06T06:01:02.9125501Z             {
2026-06-06T06:01:02.9126239Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-06T06:01:02.9127266Z               "line": 23
2026-06-06T06:01:02.9127875Z             }
2026-06-06T06:01:02.9128375Z           ]
2026-06-06T06:01:02.9128854Z         },
2026-06-06T06:01:02.9129991Z         "unit": {
2026-06-06T06:01:02.9130581Z           "complete": true,
2026-06-06T06:01:02.9131269Z           "evidence": [
2026-06-06T06:01:02.9131869Z             {
2026-06-06T06:01:02.9132586Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9133587Z               "line": 276
2026-06-06T06:01:02.9134214Z             },
2026-06-06T06:01:02.9134726Z             {
2026-06-06T06:01:02.9135422Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9136384Z               "line": 243
2026-06-06T06:01:02.9137170Z             },
2026-06-06T06:01:02.9137705Z             {
2026-06-06T06:01:02.9138397Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9139420Z               "line": 267
2026-06-06T06:01:02.9140047Z             },
2026-06-06T06:01:02.9140560Z             {
2026-06-06T06:01:02.9141264Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9142228Z               "line": 278
2026-06-06T06:01:02.9142873Z             },
2026-06-06T06:01:02.9143393Z             {
2026-06-06T06:01:02.9144089Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-06T06:01:02.9145049Z               "line": 291
2026-06-06T06:01:02.9145686Z             }
2026-06-06T06:01:02.9146197Z           ]
2026-06-06T06:01:02.9146685Z         }
2026-06-06T06:01:02.9147157Z       }
2026-06-06T06:01:02.9147617Z     },
2026-06-06T06:01:02.9148086Z     {
2026-06-06T06:01:02.9148585Z       "id": "REQ-UPD-4",
2026-06-06T06:01:02.9149783Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-06T06:01:02.9151140Z       "requiredStages": [
2026-06-06T06:01:02.9151794Z         "impl",
2026-06-06T06:01:02.9152326Z         "unit"
2026-06-06T06:01:02.9152841Z       ],
2026-06-06T06:01:02.9153333Z       "stages": {
2026-06-06T06:01:02.9153885Z         "doc": {
2026-06-06T06:01:02.9154473Z           "complete": false,
2026-06-06T06:01:02.9155189Z           "evidence": []
2026-06-06T06:01:02.9155827Z         },
2026-06-06T06:01:02.9163193Z         "impl": {
2026-06-06T06:01:02.9163868Z           "complete": true,
2026-06-06T06:01:02.9164555Z           "evidence": [
2026-06-06T06:01:02.9165165Z             {
2026-06-06T06:01:02.9165892Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9166885Z               "line": 40
2026-06-06T06:01:02.9167501Z             },
2026-06-06T06:01:02.9168018Z             {
2026-06-06T06:01:02.9168732Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9169823Z               "line": 70
2026-06-06T06:01:02.9170445Z             },
2026-06-06T06:01:02.9170961Z             {
2026-06-06T06:01:02.9171660Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9172619Z               "line": 23
2026-06-06T06:01:02.9173236Z             },
2026-06-06T06:01:02.9173742Z             {
2026-06-06T06:01:02.9174440Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9175419Z               "line": 56
2026-06-06T06:01:02.9176035Z             },
2026-06-06T06:01:02.9176546Z             {
2026-06-06T06:01:02.9177247Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9178210Z               "line": 77
2026-06-06T06:01:02.9178823Z             },
2026-06-06T06:01:02.9179373Z             {
2026-06-06T06:01:02.9180090Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-06T06:01:02.9181081Z               "line": 179
2026-06-06T06:01:02.9181704Z             },
2026-06-06T06:01:02.9182219Z             {
2026-06-06T06:01:02.9182901Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-06T06:01:02.9183834Z               "line": 98
2026-06-06T06:01:02.9184448Z             },
2026-06-06T06:01:02.9184962Z             {
2026-06-06T06:01:02.9185618Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.9186538Z               "line": 167
2026-06-06T06:01:02.9187175Z             },
2026-06-06T06:01:02.9187693Z             {
2026-06-06T06:01:02.9188638Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.9189567Z               "line": 1213
2026-06-06T06:01:02.9190204Z             }
2026-06-06T06:01:02.9190711Z           ]
2026-06-06T06:01:02.9191192Z         },
2026-06-06T06:01:02.9191672Z         "int": {
2026-06-06T06:01:02.9192255Z           "complete": false,
2026-06-06T06:01:02.9192958Z           "evidence": []
2026-06-06T06:01:02.9193575Z         },
2026-06-06T06:01:02.9194060Z         "unit": {
2026-06-06T06:01:02.9194641Z           "complete": true,
2026-06-06T06:01:02.9195459Z           "evidence": [
2026-06-06T06:01:02.9196091Z             {
2026-06-06T06:01:02.9196813Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9197809Z               "line": 272
2026-06-06T06:01:02.9198449Z             },
2026-06-06T06:01:02.9198967Z             {
2026-06-06T06:01:02.9199761Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-06T06:01:02.9200769Z               "line": 306
2026-06-06T06:01:02.9201416Z             },
2026-06-06T06:01:02.9201927Z             {
2026-06-06T06:01:02.9202616Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-06T06:01:02.9203569Z               "line": 322
2026-06-06T06:01:02.9204202Z             },
2026-06-06T06:01:02.9204708Z             {
2026-06-06T06:01:02.9205405Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9206363Z               "line": 102
2026-06-06T06:01:02.9206983Z             },
2026-06-06T06:01:02.9207495Z             {
2026-06-06T06:01:02.9208204Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9209219Z               "line": 117
2026-06-06T06:01:02.9209868Z             },
2026-06-06T06:01:02.9210396Z             {
2026-06-06T06:01:02.9211089Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-06T06:01:02.9212049Z               "line": 136
2026-06-06T06:01:02.9212678Z             },
2026-06-06T06:01:02.9213199Z             {
2026-06-06T06:01:02.9213874Z               "path": "crates/spt-store/src/info.rs",
2026-06-06T06:01:02.9214795Z               "line": 352
2026-06-06T06:01:02.9215422Z             },
2026-06-06T06:01:02.9215956Z             {
2026-06-06T06:01:02.9216623Z               "path": "crates/spt-store/src/perch.rs",
2026-06-06T06:01:02.9217553Z               "line": 495
2026-06-06T06:01:02.9218174Z             },
2026-06-06T06:01:02.9218701Z             {
2026-06-06T06:01:02.9219363Z               "path": "crates/spt/src/cli.rs",
2026-06-06T06:01:02.9225875Z               "line": 3454
2026-06-06T06:01:02.9226576Z             }
2026-06-06T06:01:02.9227104Z           ]
2026-06-06T06:01:02.9227591Z         }
2026-06-06T06:01:02.9228063Z       }
2026-06-06T06:01:02.9228515Z     },
2026-06-06T06:01:02.9228978Z     {
2026-06-06T06:01:02.9229579Z       "id": "REQ-UPD-5",
2026-06-06T06:01:02.9230516Z       "title": "spt-core ripple-updates registered adapters",
2026-06-06T06:01:02.9231626Z       "requiredStages": [
2026-06-06T06:01:02.9232294Z         "impl",
2026-06-06T06:01:02.9232839Z         "unit"
2026-06-06T06:01:02.9233352Z       ],
2026-06-06T06:01:02.9233834Z       "stages": {
2026-06-06T06:01:02.9234385Z         "doc": {
2026-06-06T06:01:02.9234975Z           "complete": false,
2026-06-06T06:01:02.9235687Z           "evidence": []
2026-06-06T06:01:02.9236311Z         },
2026-06-06T06:01:02.9236805Z         "impl": {
2026-06-06T06:01:02.9237390Z           "complete": true,
2026-06-06T06:01:02.9238078Z           "evidence": [
2026-06-06T06:01:02.9238676Z             {
2026-06-06T06:01:02.9239488Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9240536Z               "line": 27
2026-06-06T06:01:02.9241149Z             },
2026-06-06T06:01:02.9241664Z             {
2026-06-06T06:01:02.9242431Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9243466Z               "line": 82
2026-06-06T06:01:02.9244103Z             },
2026-06-06T06:01:02.9244618Z             {
2026-06-06T06:01:02.9245670Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9246717Z               "line": 134
2026-06-06T06:01:02.9247345Z             },
2026-06-06T06:01:02.9247859Z             {
2026-06-06T06:01:02.9248554Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9249559Z               "line": 314
2026-06-06T06:01:02.9250198Z             },
2026-06-06T06:01:02.9250710Z             {
2026-06-06T06:01:02.9251413Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-06T06:01:02.9252522Z               "line": 342
2026-06-06T06:01:02.9253162Z             }
2026-06-06T06:01:02.9253749Z           ]
2026-06-06T06:01:02.9254230Z         },
2026-06-06T06:01:02.9254712Z         "int": {
2026-06-06T06:01:02.9255292Z           "complete": false,
2026-06-06T06:01:02.9256008Z           "evidence": []
2026-06-06T06:01:02.9256625Z         },
2026-06-06T06:01:02.9257114Z         "unit": {
2026-06-06T06:01:02.9257694Z           "complete": true,
2026-06-06T06:01:02.9258388Z           "evidence": [
2026-06-06T06:01:02.9258984Z             {
2026-06-06T06:01:02.9259800Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9260850Z               "line": 216
2026-06-06T06:01:02.9261482Z             },
2026-06-06T06:01:02.9261991Z             {
2026-06-06T06:01:02.9262741Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9263775Z               "line": 230
2026-06-06T06:01:02.9264389Z             },
2026-06-06T06:01:02.9264898Z             {
2026-06-06T06:01:02.9265657Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9266697Z               "line": 244
2026-06-06T06:01:02.9267318Z             },
2026-06-06T06:01:02.9267842Z             {
2026-06-06T06:01:02.9268588Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9269662Z               "line": 258
2026-06-06T06:01:02.9270284Z             },
2026-06-06T06:01:02.9270807Z             {
2026-06-06T06:01:02.9271568Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-06T06:01:02.9272609Z               "line": 292
2026-06-06T06:01:02.9273233Z             },
2026-06-06T06:01:02.9273756Z             {
2026-06-06T06:01:02.9274470Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-06T06:01:02.9275452Z               "line": 780
2026-06-06T06:01:02.9276072Z             }
2026-06-06T06:01:02.9276570Z           ]
2026-06-06T06:01:02.9277048Z         }
2026-06-06T06:01:02.9277523Z       }
2026-06-06T06:01:02.9277979Z     }
2026-06-06T06:01:02.9278438Z   ],
2026-06-06T06:01:02.9278932Z   "findings": []
2026-06-06T06:01:02.9279509Z }
2026-06-06T06:01:02.9353777Z ##[group]Run ./traceable-reqs lint || true
2026-06-06T06:01:02.9354807Z [36;1m./traceable-reqs lint || true[0m
2026-06-06T06:01:02.9377695Z shell: /usr/bin/bash -e {0}
2026-06-06T06:01:02.9378412Z ##[endgroup]
2026-06-06T06:01:02.9637327Z Requirement quality findings (24); 144 requirements queued for agent review:
2026-06-06T06:01:02.9640664Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9643958Z   [must] requirement_quality REQ-CONSENT-1 criterion=length — title is 41 words; want 3..=25
2026-06-06T06:01:02.9647080Z   [must] requirement_quality REQ-CONSENT-2 criterion=length — title is 37 words; want 3..=25
2026-06-06T06:01:02.9650189Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-06T06:01:02.9653484Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-06T06:01:02.9656652Z   [must] requirement_quality REQ-HAZARD-DETACHED-PIPE-INHERIT criterion=length — title is 52 words; want 3..=25
2026-06-06T06:01:02.9660617Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9664991Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9668297Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-06T06:01:02.9671591Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-06T06:01:02.9685235Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9690056Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9693658Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-06T06:01:02.9696610Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-06T06:01:02.9699221Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-06T06:01:02.9701833Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-06T06:01:02.9704742Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9708130Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9711825Z   [must] requirement_quality REQ-PRES-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-06T06:01:02.9714557Z   [must] requirement_quality REQ-PRES-1 criterion=length — title is 48 words; want 3..=25
2026-06-06T06:01:02.9716885Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-06T06:01:02.9719294Z   [must] requirement_quality REQ-SHELL-1 criterion=length — title is 36 words; want 3..=25
2026-06-06T06:01:02.9721915Z   [must] requirement_quality REQ-SHELL-2 criterion=length — title is 49 words; want 3..=25
2026-06-06T06:01:02.9724190Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-06T06:01:02.9725504Z 
2026-06-06T06:01:02.9725790Z # Requirement quality review
2026-06-06T06:01:02.9726301Z 
2026-06-06T06:01:02.9727114Z You are reviewing 144 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-06T06:01:02.9729097Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-06T06:01:02.9732069Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-06T06:01:02.9733843Z this command's output. Your task is the rubric items below.
2026-06-06T06:01:02.9734742Z 
2026-06-06T06:01:02.9734955Z ## Rubric
2026-06-06T06:01:02.9735258Z 
2026-06-06T06:01:02.9736274Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-06T06:01:02.9738519Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-06T06:01:02.9740628Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-06T06:01:02.9742137Z - **active-voice** — clear subject and active verb.
2026-06-06T06:01:02.9742918Z 
2026-06-06T06:01:02.9743753Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-06T06:01:02.9745100Z clear concerns.
2026-06-06T06:01:02.9745461Z 
2026-06-06T06:01:02.9745685Z ## Requirements
2026-06-06T06:01:02.9746043Z 
2026-06-06T06:01:02.9746265Z ### REQ-ARCH-1
2026-06-06T06:01:02.9747015Z - Title: Many small acyclically-layered crates
2026-06-06T06:01:02.9747981Z - Required stages: impl
2026-06-06T06:01:02.9748432Z 
2026-06-06T06:01:02.9748640Z ### REQ-ARCH-2
2026-06-06T06:01:02.9749892Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-06T06:01:02.9751284Z - Required stages: impl
2026-06-06T06:01:02.9751733Z 
2026-06-06T06:01:02.9751957Z ### REQ-ARCH-3
2026-06-06T06:01:02.9753049Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-06T06:01:02.9754476Z - Required stages: impl, unit
2026-06-06T06:01:02.9755012Z 
2026-06-06T06:01:02.9755222Z ### REQ-ARCH-4
2026-06-06T06:01:02.9756153Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-06T06:01:02.9757397Z - Required stages: impl, unit
2026-06-06T06:01:02.9757926Z 
2026-06-06T06:01:02.9758155Z ### REQ-DAEMON-1
2026-06-06T06:01:02.9759069Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-06T06:01:02.9760680Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9761275Z 
2026-06-06T06:01:02.9761493Z ### REQ-DAEMON-2
2026-06-06T06:01:02.9762262Z - Title: Broker/brain split for seamless self-update
2026-06-06T06:01:02.9763303Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9763898Z 
2026-06-06T06:01:02.9764123Z ### REQ-DAEMON-3
2026-06-06T06:01:02.9764993Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-06T06:01:02.9766133Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9766705Z 
2026-06-06T06:01:02.9766934Z ### REQ-DAEMON-4
2026-06-06T06:01:02.9767628Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-06T06:01:02.9768576Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9769184Z 
2026-06-06T06:01:02.9769563Z ### REQ-STORE-1
2026-06-06T06:01:02.9774443Z - 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-06T06:01:02.9779562Z - Required stages: impl, unit
2026-06-06T06:01:02.9780261Z 
2026-06-06T06:01:02.9780502Z ### REQ-MANIFEST-1
2026-06-06T06:01:02.9781542Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-06T06:01:02.9782893Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9783480Z 
2026-06-06T06:01:02.9783707Z ### REQ-SEAM-SPAWN
2026-06-06T06:01:02.9784343Z - Title: spawn-session seam
2026-06-06T06:01:02.9785096Z - Required stages: impl, unit
2026-06-06T06:01:02.9785622Z 
2026-06-06T06:01:02.9785880Z ### REQ-SEAM-POSTSPAWN
2026-06-06T06:01:02.9786699Z - Title: post-spawn / api bind seam with boot nonce
2026-06-06T06:01:02.9787722Z - Required stages: impl, unit
2026-06-06T06:01:02.9788251Z 
2026-06-06T06:01:02.9788484Z ### REQ-SEAM-PSYCHE
2026-06-06T06:01:02.9789332Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-06T06:01:02.9791117Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9791892Z 
2026-06-06T06:01:02.9792134Z ### REQ-SEAM-HISTORY
2026-06-06T06:01:02.9794149Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-06T06:01:02.9795613Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9796366Z 
2026-06-06T06:01:02.9796629Z ### REQ-SEAM-ACTIVITY
2026-06-06T06:01:02.9798101Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-06T06:01:02.9799630Z - Required stages: impl, unit
2026-06-06T06:01:02.9800168Z 
2026-06-06T06:01:02.9800397Z ### REQ-SEAM-INJECT
2026-06-06T06:01:02.9801337Z - Title: inject-input methods configurable per activity-state
2026-06-06T06:01:02.9802516Z - Required stages: impl, unit
2026-06-06T06:01:02.9803037Z 
2026-06-06T06:01:02.9803276Z ### REQ-SEAM-RESUME
2026-06-06T06:01:02.9804305Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-06T06:01:02.9805603Z - Required stages: impl, unit
2026-06-06T06:01:02.9806135Z 
2026-06-06T06:01:02.9806394Z ### REQ-SEAM-CAPABILITY
2026-06-06T06:01:02.9807288Z - Title: Hostable endpoint-types capability declaration
2026-06-06T06:01:02.9808390Z - Required stages: impl, unit
2026-06-06T06:01:02.9809344Z 
2026-06-06T06:01:02.9809634Z ### REQ-SEAM-UPDATE
2026-06-06T06:01:02.9810744Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-06T06:01:02.9812173Z - Required stages: impl, unit
2026-06-06T06:01:02.9812714Z 
2026-06-06T06:01:02.9812927Z ### REQ-API-1
2026-06-06T06:01:02.9813832Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-06T06:01:02.9815070Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9815660Z 
2026-06-06T06:01:02.9815872Z ### REQ-API-2
2026-06-06T06:01:02.9816962Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-06T06:01:02.9818397Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9819492Z 
2026-06-06T06:01:02.9819760Z ### REQ-API-3
2026-06-06T06:01:02.9820689Z - Title: commune/signoff are file-drops, not commands
2026-06-06T06:01:02.9821768Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9822723Z 
2026-06-06T06:01:02.9822958Z ### REQ-START-1
2026-06-06T06:01:02.9824081Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-06T06:01:02.9825485Z - Required stages: impl, unit
2026-06-06T06:01:02.9826230Z 
2026-06-06T06:01:02.9826483Z ### REQ-START-2
2026-06-06T06:01:02.9827299Z - Title: Harness-hosted startup: api seed then listen
2026-06-06T06:01:02.9828406Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9829015Z 
2026-06-06T06:01:02.9829293Z ### REQ-START-3
2026-06-06T06:01:02.9830418Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-06T06:01:02.9831663Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9832231Z 
2026-06-06T06:01:02.9832456Z ### REQ-START-4
2026-06-06T06:01:02.9833215Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-06T06:01:02.9834240Z - Required stages: impl, unit
2026-06-06T06:01:02.9834770Z 
2026-06-06T06:01:02.9834990Z ### REQ-EP-1
2026-06-06T06:01:02.9835689Z - Title: Day-one endpoint types; open type system
2026-06-06T06:01:02.9836694Z - Required stages: impl, unit
2026-06-06T06:01:02.9837222Z 
2026-06-06T06:01:02.9837436Z ### REQ-EP-2
2026-06-06T06:01:02.9838303Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-06T06:01:02.9839913Z - Required stages: impl, unit
2026-06-06T06:01:02.9840442Z 
2026-06-06T06:01:02.9840655Z ### REQ-EP-3
2026-06-06T06:01:02.9841641Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-06T06:01:02.9842961Z - Required stages: impl, unit
2026-06-06T06:01:02.9843498Z 
2026-06-06T06:01:02.9843702Z ### REQ-EP-4
2026-06-06T06:01:02.9844517Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-06T06:01:02.9845608Z - Required stages: impl, unit
2026-06-06T06:01:02.9846149Z 
2026-06-06T06:01:02.9846366Z ### REQ-EP-5
2026-06-06T06:01:02.9850480Z - 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-06T06:01:02.9854633Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9855243Z 
2026-06-06T06:01:02.9855462Z ### REQ-INST-1
2026-06-06T06:01:02.9856976Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-06T06:01:02.9858539Z - Required stages: 
2026-06-06T06:01:02.9858560Z 
2026-06-06T06:01:02.9858797Z ### REQ-INST-2
2026-06-06T06:01:02.9859339Z - Title: Per-node files, synced Psyche mind
2026-06-06T06:01:02.9859611Z - Required stages: impl, unit
2026-06-06T06:01:02.9859631Z 
2026-06-06T06:01:02.9859846Z ### REQ-INST-3
2026-06-06T06:01:02.9860320Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-06T06:01:02.9860598Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9860617Z 
2026-06-06T06:01:02.9860837Z ### REQ-INST-4
2026-06-06T06:01:02.9861480Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-06T06:01:02.9861766Z - Required stages: impl, unit
2026-06-06T06:01:02.9861787Z 
2026-06-06T06:01:02.9862008Z ### REQ-INST-5
2026-06-06T06:01:02.9862630Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-06T06:01:02.9862921Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9863153Z 
2026-06-06T06:01:02.9863375Z ### REQ-INST-6
2026-06-06T06:01:02.9864048Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-06T06:01:02.9864337Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9864355Z 
2026-06-06T06:01:02.9864561Z ### REQ-INST-7
2026-06-06T06:01:02.9864990Z - Title: Subnet registry + bare-id resolution policy
2026-06-06T06:01:02.9865273Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9865290Z 
2026-06-06T06:01:02.9865514Z ### REQ-INST-8
2026-06-06T06:01:02.9866006Z - Title: Remote-control mode distinct from local operation
2026-06-06T06:01:02.9866299Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9866325Z 
2026-06-06T06:01:02.9866543Z ### REQ-INST-9
2026-06-06T06:01:02.9867206Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-06T06:01:02.9867483Z - Required stages: impl, unit
2026-06-06T06:01:02.9867502Z 
2026-06-06T06:01:02.9867713Z ### REQ-INST-10
2026-06-06T06:01:02.9868522Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-06T06:01:02.9868795Z - Required stages: impl, unit
2026-06-06T06:01:02.9868811Z 
2026-06-06T06:01:02.9869023Z ### REQ-INST-11
2026-06-06T06:01:02.9869897Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-06T06:01:02.9870170Z - Required stages: impl, unit
2026-06-06T06:01:02.9870188Z 
2026-06-06T06:01:02.9870408Z ### REQ-INST-12
2026-06-06T06:01:02.9871648Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-06T06:01:02.9871917Z - Required stages: impl, unit
2026-06-06T06:01:02.9871933Z 
2026-06-06T06:01:02.9872163Z ### REQ-INST-13
2026-06-06T06:01:02.9872817Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-06T06:01:02.9873103Z - Required stages: impl, unit
2026-06-06T06:01:02.9873121Z 
2026-06-06T06:01:02.9873340Z ### REQ-INST-14
2026-06-06T06:01:02.9875033Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-06T06:01:02.9875336Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9875353Z 
2026-06-06T06:01:02.9875560Z ### REQ-INST-15
2026-06-06T06:01:02.9879203Z - 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-06T06:01:02.9879503Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9879520Z 
2026-06-06T06:01:02.9879740Z ### REQ-REACH-1
2026-06-06T06:01:02.9880417Z - Title: Off-node remote-drive detection + file transfer
2026-06-06T06:01:02.9880718Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9880753Z 
2026-06-06T06:01:02.9880961Z ### REQ-REACH-2
2026-06-06T06:01:02.9881473Z - Title: Remote command execution (deferred, consent-gated)
2026-06-06T06:01:02.9881718Z - Required stages: 
2026-06-06T06:01:02.9881733Z 
2026-06-06T06:01:02.9881950Z ### REQ-MSG-1
2026-06-06T06:01:02.9884024Z - 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-06T06:01:02.9884319Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9884336Z 
2026-06-06T06:01:02.9884553Z ### REQ-MSG-2
2026-06-06T06:01:02.9885644Z - Title: spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes
2026-06-06T06:01:02.9885926Z - Required stages: impl, unit
2026-06-06T06:01:02.9885945Z 
2026-06-06T06:01:02.9886168Z ### REQ-MSG-3
2026-06-06T06:01:02.9887884Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-06T06:01:02.9888173Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9888190Z 
2026-06-06T06:01:02.9888427Z ### REQ-NODE-IDENTITY
2026-06-06T06:01:02.9889488Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-06T06:01:02.9889760Z - Required stages: impl, unit
2026-06-06T06:01:02.9889790Z 
2026-06-06T06:01:02.9889996Z ### REQ-NET-1
2026-06-06T06:01:02.9890649Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-06T06:01:02.9890925Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9890945Z 
2026-06-06T06:01:02.9891159Z ### REQ-NET-2
2026-06-06T06:01:02.9891771Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-06T06:01:02.9892029Z - Required stages: impl
2026-06-06T06:01:02.9892046Z 
2026-06-06T06:01:02.9892268Z ### REQ-NET-3
2026-06-06T06:01:02.9892820Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-06T06:01:02.9893098Z - Required stages: impl, unit
2026-06-06T06:01:02.9893114Z 
2026-06-06T06:01:02.9893323Z ### REQ-PAIR-1
2026-06-06T06:01:02.9893621Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-06T06:01:02.9893917Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9893934Z 
2026-06-06T06:01:02.9894148Z ### REQ-PAIR-2
2026-06-06T06:01:02.9894571Z - Title: Local trust store with TOFU + warn-on-change
2026-06-06T06:01:02.9894834Z - Required stages: impl, unit
2026-06-06T06:01:02.9894850Z 
2026-06-06T06:01:02.9895071Z ### REQ-PAIR-3
2026-06-06T06:01:02.9895551Z - Title: Fetch current pairing code from any paired node
2026-06-06T06:01:02.9895811Z - Required stages: impl, unit
2026-06-06T06:01:02.9895829Z 
2026-06-06T06:01:02.9896568Z ### REQ-PAIR-4
2026-06-06T06:01:02.9897009Z - Title: Subnet naming on first pairing
2026-06-06T06:01:02.9897322Z - Required stages: impl, unit
2026-06-06T06:01:02.9897432Z 
2026-06-06T06:01:02.9897692Z ### REQ-PAIR-5
2026-06-06T06:01:02.9899050Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-06T06:01:02.9899528Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9899549Z 
2026-06-06T06:01:02.9899907Z ### REQ-PAIR-6
2026-06-06T06:01:02.9901071Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-06T06:01:02.9901385Z - Required stages: impl, unit
2026-06-06T06:01:02.9901403Z 
2026-06-06T06:01:02.9901685Z ### REQ-PAIR-7
2026-06-06T06:01:02.9902320Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-06T06:01:02.9902663Z - Required stages: 
2026-06-06T06:01:02.9902683Z 
2026-06-06T06:01:02.9903005Z ### REQ-SUBNET-1
2026-06-06T06:01:02.9904440Z - Title: spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-totp; spt pair deleted
2026-06-06T06:01:02.9904930Z - Required stages: impl, unit
2026-06-06T06:01:02.9904951Z 
2026-06-06T06:01:02.9905274Z ### REQ-SUBNET-2
2026-06-06T06:01:02.9906315Z - Title: Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder
2026-06-06T06:01:02.9906685Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9906704Z 
2026-06-06T06:01:02.9906978Z ### REQ-SUBNET-3
2026-06-06T06:01:02.9908165Z - Title: Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)
2026-06-06T06:01:02.9908534Z - Required stages: impl, unit
2026-06-06T06:01:02.9908553Z 
2026-06-06T06:01:02.9908894Z ### REQ-SUBNET-4
2026-06-06T06:01:02.9910265Z - Title: Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)
2026-06-06T06:01:02.9910576Z - Required stages: impl, unit
2026-06-06T06:01:02.9910595Z 
2026-06-06T06:01:02.9910875Z ### REQ-DOCS-6
2026-06-06T06:01:02.9912371Z - Title: spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)
2026-06-06T06:01:02.9912796Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9912816Z 
2026-06-06T06:01:02.9913115Z ### REQ-SEC-1
2026-06-06T06:01:02.9914945Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-06T06:01:02.9915431Z - Required stages: impl, unit
2026-06-06T06:01:02.9915450Z 
2026-06-06T06:01:02.9915775Z ### REQ-NOTIF-1
2026-06-06T06:01:02.9917508Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-06T06:01:02.9917875Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9917893Z 
2026-06-06T06:01:02.9918143Z ### REQ-NOTIF-2
2026-06-06T06:01:02.9919363Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-06T06:01:02.9919758Z - Required stages: doc, impl, unit, int
2026-06-06T06:01:02.9919855Z 
2026-06-06T06:01:02.9920128Z ### REQ-UPD-1
2026-06-06T06:01:02.9920543Z - Title: Peer-propagated update over P2P
2026-06-06T06:01:02.9920866Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9920885Z 
2026-06-06T06:01:02.9921176Z ### REQ-UPD-2
2026-06-06T06:01:02.9921737Z - Title: All binaries signature-verified before handoff
2026-06-06T06:01:02.9922132Z - Required stages: impl, unit
2026-06-06T06:01:02.9922149Z 
2026-06-06T06:01:02.9922442Z ### REQ-UPD-3
2026-06-06T06:01:02.9923084Z - Title: No endpoint process terminates/suspends during self-update
2026-06-06T06:01:02.9923443Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9923459Z 
2026-06-06T06:01:02.9923757Z ### REQ-UPD-4
2026-06-06T06:01:02.9924522Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-06T06:01:02.9924877Z - Required stages: impl, unit
2026-06-06T06:01:02.9924897Z 
2026-06-06T06:01:02.9925166Z ### REQ-UPD-5
2026-06-06T06:01:02.9925678Z - Title: spt-core ripple-updates registered adapters
2026-06-06T06:01:02.9926047Z - Required stages: impl, unit
2026-06-06T06:01:02.9926134Z 
2026-06-06T06:01:02.9926390Z ### REQ-TERM-1
2026-06-06T06:01:02.9927081Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-06T06:01:02.9927406Z - Required stages: impl, unit
2026-06-06T06:01:02.9927424Z 
2026-06-06T06:01:02.9927710Z ### REQ-TERM-2
2026-06-06T06:01:02.9928458Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-06T06:01:02.9928844Z - Required stages: impl, unit
2026-06-06T06:01:02.9928863Z 
2026-06-06T06:01:02.9929221Z ### REQ-TERM-3
2026-06-06T06:01:02.9929705Z - Title: Byte-stream remote terminal streaming for v1
2026-06-06T06:01:02.9930044Z - Required stages: impl, unit
2026-06-06T06:01:02.9930062Z 
2026-06-06T06:01:02.9930381Z ### REQ-TERM-4
2026-06-06T06:01:02.9932093Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-06T06:01:02.9932482Z - Required stages: impl, unit, int
2026-06-06T06:01:02.9932648Z 
2026-06-06T06:01:02.9932919Z ### REQ-FRONT-1
2026-06-06T06:01:02.9933604Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-06T06:01:02.9933936Z - Required stages: 
2026-06-06T06:01:02.9934025Z 
2026-06-06T06:01:02.9934304Z ### REQ-INSTALL-1
2026-06-06T06:01:02.9935095Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-06T06:01:02.9935585Z - Required stages: doc, impl, int
2026-06-06T06:01:02.9935603Z 
2026-06-06T06:01:02.9935892Z ### REQ-INSTALL-2
2026-06-06T06:01:02.9936450Z - Title: Marketplace-repackaging-friendly install
2026-06-06T06:01:02.9936817Z - Required stages: doc
2026-06-06T06:01:02.9936834Z 
2026-06-06T06:01:02.9937140Z ### REQ-INSTALL-3
2026-06-06T06:01:02.9937616Z - Title: Idempotent + interactive-optional first run
2026-06-06T06:01:02.9937945Z - Required stages: impl, int
2026-06-06T06:01:02.9937961Z 
2026-06-06T06:01:02.9938280Z ### REQ-INSTALL-4
2026-06-06T06:01:02.9941633Z - 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-06T06:01:02.9941990Z - Required stages: impl, unit
2026-06-06T06:01:02.9942007Z 
2026-06-06T06:01:02.9942263Z ### REQ-MIGRATE-1
2026-06-06T06:01:02.9943083Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-06T06:01:02.9943501Z - Required stages: 
2026-06-06T06:01:02.9943520Z 
2026-06-06T06:01:02.9943770Z ### REQ-INFRA-1
2026-06-06T06:01:02.9944480Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-06T06:01:02.9944744Z - Required stages: 
2026-06-06T06:01:02.9944760Z 
2026-06-06T06:01:02.9945041Z ### REQ-INSTALL-5
2026-06-06T06:01:02.9947547Z - 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-06T06:01:02.9947877Z - Required stages: impl, int
2026-06-06T06:01:02.9947894Z 
2026-06-06T06:01:02.9948183Z ### REQ-REL-1
2026-06-06T06:01:02.9950041Z - Title: spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)
2026-06-06T06:01:02.9950396Z - Required stages: doc, impl
2026-06-06T06:01:02.9950423Z 
2026-06-06T06:01:02.9950788Z ### REQ-REL-2
2026-06-06T06:01:02.9953158Z - 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-06T06:01:02.9953506Z - Required stages: impl, int
2026-06-06T06:01:02.9953523Z 
2026-06-06T06:01:02.9953769Z ### REQ-REL-3
2026-06-06T06:01:02.9955903Z - 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-06T06:01:02.9956299Z - Required stages: impl, unit
2026-06-06T06:01:02.9956316Z 
2026-06-06T06:01:02.9963775Z ### REQ-DOCS-1
2026-06-06T06:01:02.9964607Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-06T06:01:02.9964876Z - Required stages: doc, impl
2026-06-06T06:01:02.9964895Z 
2026-06-06T06:01:02.9965115Z ### REQ-DOCS-2
2026-06-06T06:01:02.9965677Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-06T06:01:02.9965942Z - Required stages: doc, int
2026-06-06T06:01:02.9965960Z 
2026-06-06T06:01:02.9966177Z ### REQ-DOCS-3
2026-06-06T06:01:02.9966920Z - Title: Diátaxis structure; one canonical way to do X
2026-06-06T06:01:02.9967168Z - Required stages: doc
2026-06-06T06:01:02.9967184Z 
2026-06-06T06:01:02.9967384Z ### REQ-DOCS-4
2026-06-06T06:01:02.9968098Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-06T06:01:02.9968371Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9968398Z 
2026-06-06T06:01:02.9968602Z ### REQ-DOCS-5
2026-06-06T06:01:02.9969706Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-06T06:01:02.9969981Z - Required stages: impl, int
2026-06-06T06:01:02.9969996Z 
2026-06-06T06:01:02.9970303Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-06T06:01:02.9970976Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-06T06:01:02.9971295Z - Required stages: impl, unit
2026-06-06T06:01:02.9971311Z 
2026-06-06T06:01:02.9971617Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-06T06:01:02.9972102Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-06T06:01:02.9972372Z - Required stages: impl, unit
2026-06-06T06:01:02.9972387Z 
2026-06-06T06:01:02.9972662Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-06T06:01:02.9973076Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-06T06:01:02.9973343Z - Required stages: impl, unit
2026-06-06T06:01:02.9973358Z 
2026-06-06T06:01:02.9973631Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-06T06:01:02.9974285Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-06T06:01:02.9974552Z - Required stages: impl, unit
2026-06-06T06:01:02.9974566Z 
2026-06-06T06:01:02.9974841Z ### REQ-HAZARD-WORKER-PATH
2026-06-06T06:01:02.9975475Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-06T06:01:02.9975735Z - Required stages: impl, unit
2026-06-06T06:01:02.9975890Z 
2026-06-06T06:01:02.9976207Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-06T06:01:02.9976882Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-06T06:01:02.9977108Z - Required stages: 
2026-06-06T06:01:02.9977124Z 
2026-06-06T06:01:02.9977406Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-06T06:01:02.9977805Z - Title: Stdin session_id precedence over env (2.2)
2026-06-06T06:01:02.9978036Z - Required stages: 
2026-06-06T06:01:02.9978051Z 
2026-06-06T06:01:02.9978354Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-06T06:01:02.9978913Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-06T06:01:02.9979240Z - Required stages: impl, unit
2026-06-06T06:01:02.9979266Z 
2026-06-06T06:01:02.9979546Z ### REQ-HAZARD-GEN-START-NOW
2026-06-06T06:01:02.9980023Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-06T06:01:02.9980283Z - Required stages: impl, int
2026-06-06T06:01:02.9980297Z 
2026-06-06T06:01:02.9980597Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-06T06:01:02.9981152Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-06T06:01:02.9981427Z - Required stages: impl, unit
2026-06-06T06:01:02.9981442Z 
2026-06-06T06:01:02.9981775Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-06T06:01:02.9982334Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-06T06:01:02.9982612Z - Required stages: impl, unit
2026-06-06T06:01:02.9982626Z 
2026-06-06T06:01:02.9982923Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-06T06:01:02.9983599Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-06T06:01:02.9983871Z - Required stages: impl, unit
2026-06-06T06:01:02.9983886Z 
2026-06-06T06:01:02.9984203Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-06T06:01:02.9984729Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-06T06:01:02.9984990Z - Required stages: impl, unit
2026-06-06T06:01:02.9985004Z 
2026-06-06T06:01:02.9985343Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-06T06:01:02.9985968Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-06T06:01:02.9986228Z - Required stages: impl, unit
2026-06-06T06:01:02.9986243Z 
2026-06-06T06:01:02.9986559Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-06T06:01:02.9987361Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-06T06:01:02.9987632Z - Required stages: impl, unit
2026-06-06T06:01:02.9987646Z 
2026-06-06T06:01:02.9987905Z ### REQ-HAZARD-ID-CHARSET
2026-06-06T06:01:02.9988875Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-06T06:01:02.9989147Z - Required stages: impl, unit
2026-06-06T06:01:02.9989261Z 
2026-06-06T06:01:02.9989722Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-06T06:01:02.9990434Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-06T06:01:02.9990705Z - Required stages: impl, unit
2026-06-06T06:01:02.9990720Z 
2026-06-06T06:01:02.9991020Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-06T06:01:02.9992046Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-06T06:01:02.9992307Z - Required stages: impl, unit
2026-06-06T06:01:02.9992321Z 
2026-06-06T06:01:02.9992630Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-06T06:01:02.9994122Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-06T06:01:02.9994402Z - Required stages: doc, impl, unit
2026-06-06T06:01:02.9994416Z 
2026-06-06T06:01:02.9994728Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-06T06:01:02.9996506Z - 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-06T06:01:02.9996786Z - Required stages: impl, unit
2026-06-06T06:01:02.9996801Z 
2026-06-06T06:01:02.9997134Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-06T06:01:02.9997502Z - Title: Deferred rows survive poll drain (4.4)
2026-06-06T06:01:02.9997773Z - Required stages: impl, unit
2026-06-06T06:01:02.9997956Z 
2026-06-06T06:01:02.9998235Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-06T06:01:02.9998635Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-06T06:01:02.9998903Z - Required stages: impl, unit
2026-06-06T06:01:02.9998917Z 
2026-06-06T06:01:02.9999274Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-06T06:01:02.9999816Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-06T06:01:03.0000081Z - Required stages: impl, unit
2026-06-06T06:01:03.0000096Z 
2026-06-06T06:01:03.0000373Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-06T06:01:03.0000940Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-06T06:01:03.0001210Z - Required stages: impl, unit
2026-06-06T06:01:03.0001225Z 
2026-06-06T06:01:03.0001531Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-06T06:01:03.0002007Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-06T06:01:03.0002283Z - Required stages: impl, unit
2026-06-06T06:01:03.0002297Z 
2026-06-06T06:01:03.0002597Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-06T06:01:03.0003100Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-06T06:01:03.0003372Z - Required stages: impl, unit
2026-06-06T06:01:03.0003387Z 
2026-06-06T06:01:03.0003681Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-06T06:01:03.0004352Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-06T06:01:03.0004623Z - Required stages: impl, unit
2026-06-06T06:01:03.0004637Z 
2026-06-06T06:01:03.0004897Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-06T06:01:03.0005607Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-06T06:01:03.0005863Z - Required stages: impl, unit
2026-06-06T06:01:03.0005885Z 
2026-06-06T06:01:03.0006198Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-06T06:01:03.0006800Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-06T06:01:03.0007064Z - Required stages: impl, unit
2026-06-06T06:01:03.0007078Z 
2026-06-06T06:01:03.0007412Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-06T06:01:03.0007887Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-06T06:01:03.0008155Z - Required stages: impl, unit
2026-06-06T06:01:03.0008169Z 
2026-06-06T06:01:03.0008510Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-06T06:01:03.0009379Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-06T06:01:03.0009653Z - Required stages: impl, unit
2026-06-06T06:01:03.0009668Z 
2026-06-06T06:01:03.0009994Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-06T06:01:03.0012902Z - 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-06T06:01:03.0013194Z - Required stages: impl, unit
2026-06-06T06:01:03.0013210Z 
2026-06-06T06:01:03.0013526Z ### REQ-HAZARD-DETACHED-PIPE-INHERIT
2026-06-06T06:01:03.0018679Z - 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-06T06:01:03.0018962Z - Required stages: impl, unit
2026-06-06T06:01:03.0018988Z 
2026-06-06T06:01:03.0019284Z ### REQ-HAZARD-CONPTY-DSR
2026-06-06T06:01:03.0020118Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-06T06:01:03.0020386Z - Required stages: impl, unit
2026-06-06T06:01:03.0020399Z 
2026-06-06T06:01:03.0020679Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-06T06:01:03.0021515Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-06T06:01:03.0021787Z - Required stages: impl, unit
2026-06-06T06:01:03.0021802Z 
2026-06-06T06:01:03.0022105Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-06T06:01:03.0023174Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-06T06:01:03.0023681Z - Required stages: impl, unit, int
2026-06-06T06:01:03.0023696Z 
2026-06-06T06:01:03.0023989Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-06T06:01:03.0025043Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-06T06:01:03.0025315Z - Required stages: impl, unit
2026-06-06T06:01:03.0025330Z 
2026-06-06T06:01:03.0025651Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-06T06:01:03.0027615Z - 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-06T06:01:03.0027915Z - Required stages: impl, unit, int
2026-06-06T06:01:03.0027930Z 
2026-06-06T06:01:03.0028248Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-06T06:01:03.0032115Z - 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-06T06:01:03.0032401Z - Required stages: impl, unit
2026-06-06T06:01:03.0032417Z 
2026-06-06T06:01:03.0032760Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-06T06:01:03.0036025Z - 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-06T06:01:03.0036290Z - Required stages: impl, unit
2026-06-06T06:01:03.0036307Z 
2026-06-06T06:01:03.0036631Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-06T06:01:03.0039687Z - 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-06T06:01:03.0039959Z - Required stages: impl, unit
2026-06-06T06:01:03.0040020Z 
2026-06-06T06:01:03.0040329Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-06T06:01:03.0042916Z - 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-06T06:01:03.0043189Z - Required stages: impl, unit
2026-06-06T06:01:03.0043205Z 
2026-06-06T06:01:03.0043502Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-06T06:01:03.0047691Z - 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-06T06:01:03.0047984Z - Required stages: impl, unit
2026-06-06T06:01:03.0048000Z 
2026-06-06T06:01:03.0048287Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-06T06:01:03.0052578Z - 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-06T06:01:03.0052910Z - Required stages: doc, impl, unit
2026-06-06T06:01:03.0052926Z 
2026-06-06T06:01:03.0053141Z ### REQ-CONSENT-1
2026-06-06T06:01:03.0057890Z - 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-06T06:01:03.0058174Z - Required stages: impl, unit
2026-06-06T06:01:03.0058189Z 
2026-06-06T06:01:03.0058411Z ### REQ-CONSENT-2
2026-06-06T06:01:03.0062696Z - 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-06T06:01:03.0063180Z - Required stages: impl, unit
2026-06-06T06:01:03.0063194Z 
2026-06-06T06:01:03.0063399Z ### REQ-PRES-1
2026-06-06T06:01:03.0069967Z - 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-06T06:01:03.0070264Z - Required stages: impl, unit, int
2026-06-06T06:01:03.0070280Z 
2026-06-06T06:01:03.0070488Z ### REQ-SHELL-1
2026-06-06T06:01:03.0075106Z - 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-06T06:01:03.0075420Z - Required stages: impl, unit, int
2026-06-06T06:01:03.0079839Z 
2026-06-06T06:01:03.0080153Z ### REQ-SHELL-2
2026-06-06T06:01:03.0087393Z - 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-06T06:01:03.0087693Z - Required stages: impl, unit, int
2026-06-06T06:01:03.0087710Z 
2026-06-06T06:01:03.0087973Z ## How to report back
2026-06-06T06:01:03.0087990Z 
2026-06-06T06:01:03.0088590Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-06T06:01:03.0088607Z 
2026-06-06T06:01:03.0088787Z     {
2026-06-06T06:01:03.0089069Z       "code": "requirement_quality",
2026-06-06T06:01:03.0089383Z       "requirementId": "REQ-...",
2026-06-06T06:01:03.0089988Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-06T06:01:03.0090258Z       "message": "<short reason>",
2026-06-06T06:01:03.0090602Z       "suggestedRevision": "<optional rewrite>"
2026-06-06T06:01:03.0090795Z     }
2026-06-06T06:01:03.0090810Z 
2026-06-06T06:01:03.0091747Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-06T06:01:03.0092254Z deterministic findings above don't need to be repeated.
2026-06-06T06:01:03.0345985Z Post job cleanup.
2026-06-06T06:01:03.1612097Z [command]/usr/bin/git version
2026-06-06T06:01:03.1667195Z git version 2.34.1
2026-06-06T06:01:03.1715540Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/c778fa14-8c36-40ce-b4cd-05a3fd6617a8/.gitconfig'
2026-06-06T06:01:03.1739799Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/c778fa14-8c36-40ce-b4cd-05a3fd6617a8' before making global git config changes
2026-06-06T06:01:03.1743352Z Adding repository directory to the temporary git global config as a safe directory
2026-06-06T06:01:03.1746685Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-06T06:01:03.1795512Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-06T06:01:03.1842234Z [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-06T06:01:03.2089767Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-06T06:01:03.2134595Z http.https://github.com/.extraheader
2026-06-06T06:01:03.2155758Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-06T06:01:03.2202236Z [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-06T06:01:03.2480610Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-06T06:01:03.2526235Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-06T06:01:03.2952836Z Cleaning up orphan processes
