﻿2026-06-04T00:32:35.8603932Z Current runner version: '2.334.0'
2026-06-04T00:32:35.8651028Z ##[group]Runner Image Provisioner
2026-06-04T00:32:35.8652387Z Hosted Compute Agent
2026-06-04T00:32:35.8653251Z Version: 20260520.533
2026-06-04T00:32:35.8654245Z Commit: 189110e25284a9812c124fd27b339e2fb4f2f9db
2026-06-04T00:32:35.8655343Z Build Date: 2026-05-20T17:44:04Z
2026-06-04T00:32:35.8656329Z Worker ID: {49307540-24dc-4506-b055-ae9e9eb7fe0f}
2026-06-04T00:32:35.8657515Z Azure Region: northcentralus
2026-06-04T00:32:35.8658503Z ##[endgroup]
2026-06-04T00:32:35.8661052Z ##[group]Operating System
2026-06-04T00:32:35.8662029Z Ubuntu
2026-06-04T00:32:35.8662793Z 24.04.4
2026-06-04T00:32:35.8663647Z LTS
2026-06-04T00:32:35.8664404Z ##[endgroup]
2026-06-04T00:32:35.8665310Z ##[group]Runner Image
2026-06-04T00:32:35.8666236Z Image: ubuntu-24.04
2026-06-04T00:32:35.8667102Z Version: 20260525.161.1
2026-06-04T00:32:35.8669397Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260525.161/images/ubuntu/Ubuntu2404-Readme.md
2026-06-04T00:32:35.8671691Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260525.161
2026-06-04T00:32:35.8673139Z ##[endgroup]
2026-06-04T00:32:35.8675016Z ##[group]GITHUB_TOKEN Permissions
2026-06-04T00:32:35.8677550Z Contents: read
2026-06-04T00:32:35.8678391Z Metadata: read
2026-06-04T00:32:35.8679582Z Packages: read
2026-06-04T00:32:35.8680433Z ##[endgroup]
2026-06-04T00:32:35.8683753Z Secret source: Actions
2026-06-04T00:32:35.8685171Z Prepare workflow directory
2026-06-04T00:32:35.9483630Z Prepare all required actions
2026-06-04T00:32:35.9540277Z Getting action download info
2026-06-04T00:32:36.3488291Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
2026-06-04T00:32:36.5267269Z Complete job name: traceability
2026-06-04T00:32:36.5882782Z ##[group]Run actions/checkout@v4
2026-06-04T00:32:36.5884278Z with:
2026-06-04T00:32:36.5884825Z   repository: SaberMage/spt-core
2026-06-04T00:32:36.5889255Z   token: ***
2026-06-04T00:32:36.5889883Z   ssh-strict: true
2026-06-04T00:32:36.5890373Z   ssh-user: git
2026-06-04T00:32:36.5890948Z   persist-credentials: true
2026-06-04T00:32:36.5891505Z   clean: true
2026-06-04T00:32:36.5892007Z   sparse-checkout-cone-mode: true
2026-06-04T00:32:36.5892576Z   fetch-depth: 1
2026-06-04T00:32:36.5893051Z   fetch-tags: false
2026-06-04T00:32:36.5893561Z   show-progress: true
2026-06-04T00:32:36.5894071Z   lfs: false
2026-06-04T00:32:36.5894557Z   submodules: false
2026-06-04T00:32:36.5895053Z   set-safe-directory: true
2026-06-04T00:32:36.5895920Z ##[endgroup]
2026-06-04T00:32:36.7015535Z Syncing repository: SaberMage/spt-core
2026-06-04T00:32:36.7018195Z ##[group]Getting Git version info
2026-06-04T00:32:36.7020186Z Working directory is '/home/runner/work/spt-core/spt-core'
2026-06-04T00:32:36.7023233Z [command]/usr/bin/git version
2026-06-04T00:32:36.7112117Z git version 2.54.0
2026-06-04T00:32:36.7137538Z ##[endgroup]
2026-06-04T00:32:36.7153524Z Temporarily overriding HOME='/home/runner/work/_temp/45d81acf-59be-4609-a04d-96e4f0b8aabc' before making global git config changes
2026-06-04T00:32:36.7156611Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T00:32:36.7172154Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-04T00:32:36.7218695Z Deleting the contents of '/home/runner/work/spt-core/spt-core'
2026-06-04T00:32:36.7231401Z ##[group]Initializing the repository
2026-06-04T00:32:36.7232919Z [command]/usr/bin/git init /home/runner/work/spt-core/spt-core
2026-06-04T00:32:36.7366017Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-06-04T00:32:36.7367764Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-06-04T00:32:36.7369408Z hint: to use in all of your new repositories, which will suppress this warning,
2026-06-04T00:32:36.7370535Z hint: call:
2026-06-04T00:32:36.7374459Z hint:
2026-06-04T00:32:36.7375481Z hint: 	git config --global init.defaultBranch <name>
2026-06-04T00:32:36.7376641Z hint:
2026-06-04T00:32:36.7377847Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-06-04T00:32:36.7380168Z hint: 'development'. The just-created branch can be renamed via this command:
2026-06-04T00:32:36.7382159Z hint:
2026-06-04T00:32:36.7383359Z hint: 	git branch -m <name>
2026-06-04T00:32:36.7384768Z hint:
2026-06-04T00:32:36.7386254Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-06-04T00:32:36.7388517Z Initialized empty Git repository in /home/runner/work/spt-core/spt-core/.git/
2026-06-04T00:32:36.7393131Z [command]/usr/bin/git remote add origin https://github.com/SaberMage/spt-core
2026-06-04T00:32:36.7432499Z ##[endgroup]
2026-06-04T00:32:36.7434248Z ##[group]Disabling automatic garbage collection
2026-06-04T00:32:36.7436634Z [command]/usr/bin/git config --local gc.auto 0
2026-06-04T00:32:36.7463482Z ##[endgroup]
2026-06-04T00:32:36.7465253Z ##[group]Setting up auth
2026-06-04T00:32:36.7470678Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T00:32:36.7501287Z [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-04T00:32:36.7855436Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T00:32:36.7883802Z [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-04T00:32:36.8109798Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T00:32:36.8131831Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T00:32:36.8315202Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-04T00:32:36.8913113Z ##[endgroup]
2026-06-04T00:32:36.8914872Z ##[group]Fetching the repository
2026-06-04T00:32:36.8917530Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +0067170f7f1b96c3b651065e354aad0f6568abc8:refs/remotes/origin/dev-freeform
2026-06-04T00:32:37.2963307Z From https://github.com/SaberMage/spt-core
2026-06-04T00:32:37.2967506Z  * [new ref]         0067170f7f1b96c3b651065e354aad0f6568abc8 -> origin/dev-freeform
2026-06-04T00:32:37.3040816Z ##[endgroup]
2026-06-04T00:32:37.3050810Z ##[group]Determining the checkout info
2026-06-04T00:32:37.3070699Z ##[endgroup]
2026-06-04T00:32:37.3111137Z [command]/usr/bin/git sparse-checkout disable
2026-06-04T00:32:37.3115156Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-04T00:32:37.3119849Z ##[group]Checking out the ref
2026-06-04T00:32:37.3121919Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-04T00:32:37.3265360Z Switched to a new branch 'dev-freeform'
2026-06-04T00:32:37.3280908Z branch 'dev-freeform' set up to track 'origin/dev-freeform'.
2026-06-04T00:32:37.3289232Z ##[endgroup]
2026-06-04T00:32:37.3312043Z [command]/usr/bin/git log -1 --format=%H
2026-06-04T00:32:37.3332812Z 0067170f7f1b96c3b651065e354aad0f6568abc8
2026-06-04T00:32:37.3532026Z ##[group]Run gh release download --repo BigscreenVR/traceable-reqs \
2026-06-04T00:32:37.3533129Z [36;1mgh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-04T00:32:37.3534009Z [36;1m  --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-04T00:32:37.3534713Z [36;1mchmod +x traceable-reqs[0m
2026-06-04T00:32:37.3553795Z shell: /usr/bin/bash -e {0}
2026-06-04T00:32:37.3554351Z env:
2026-06-04T00:32:37.3555435Z   GH_TOKEN: ***
2026-06-04T00:32:37.3555862Z ##[endgroup]
2026-06-04T00:32:38.1195515Z ##[group]Run ./traceable-reqs check --json
2026-06-04T00:32:38.1197395Z [36;1m./traceable-reqs check --json[0m
2026-06-04T00:32:38.1217421Z shell: /usr/bin/bash -e {0}
2026-06-04T00:32:38.1218775Z ##[endgroup]
2026-06-04T00:32:38.1339156Z {
2026-06-04T00:32:38.1340637Z   "schemaVersion": 1,
2026-06-04T00:32:38.1342059Z   "summary": {
2026-06-04T00:32:38.1343498Z     "requirementCount": 126,
2026-06-04T00:32:38.1345056Z     "completeCount": 126,
2026-06-04T00:32:38.1346618Z     "incompleteCount": 0,
2026-06-04T00:32:38.1348072Z     "findingCount": 0
2026-06-04T00:32:38.1349527Z   },
2026-06-04T00:32:38.1350797Z   "requirements": [
2026-06-04T00:32:38.1352216Z     {
2026-06-04T00:32:38.1353526Z       "id": "REQ-API-1",
2026-06-04T00:32:38.1355454Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-04T00:32:38.1357565Z       "requiredStages": [
2026-06-04T00:32:38.1358991Z         "impl",
2026-06-04T00:32:38.1360563Z         "unit",
2026-06-04T00:32:38.1361904Z         "int"
2026-06-04T00:32:38.1363144Z       ],
2026-06-04T00:32:38.1364391Z       "stages": {
2026-06-04T00:32:38.1365728Z         "doc": {
2026-06-04T00:32:38.1367055Z           "complete": false,
2026-06-04T00:32:38.1368590Z           "evidence": []
2026-06-04T00:32:38.1370185Z         },
2026-06-04T00:32:38.1371394Z         "impl": {
2026-06-04T00:32:38.1372689Z           "complete": true,
2026-06-04T00:32:38.1374116Z           "evidence": [
2026-06-04T00:32:38.1375444Z             {
2026-06-04T00:32:38.1376830Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.1378528Z               "line": 15
2026-06-04T00:32:38.1380147Z             }
2026-06-04T00:32:38.1381413Z           ]
2026-06-04T00:32:38.1382638Z         },
2026-06-04T00:32:38.1383857Z         "int": {
2026-06-04T00:32:38.1385138Z           "complete": true,
2026-06-04T00:32:38.1386558Z           "evidence": [
2026-06-04T00:32:38.1387852Z             {
2026-06-04T00:32:38.1389387Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.1391108Z               "line": 13
2026-06-04T00:32:38.1392431Z             }
2026-06-04T00:32:38.1393673Z           ]
2026-06-04T00:32:38.1394838Z         },
2026-06-04T00:32:38.1395976Z         "unit": {
2026-06-04T00:32:38.1397256Z           "complete": true,
2026-06-04T00:32:38.1398628Z           "evidence": [
2026-06-04T00:32:38.1399985Z             {
2026-06-04T00:32:38.1401292Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.1402902Z               "line": 329
2026-06-04T00:32:38.1404186Z             },
2026-06-04T00:32:38.1405359Z             {
2026-06-04T00:32:38.1406860Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.1408549Z               "line": 335
2026-06-04T00:32:38.1409958Z             },
2026-06-04T00:32:38.1411152Z             {
2026-06-04T00:32:38.1412543Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.1414223Z               "line": 346
2026-06-04T00:32:38.1415550Z             }
2026-06-04T00:32:38.1416709Z           ]
2026-06-04T00:32:38.1417863Z         }
2026-06-04T00:32:38.1419022Z       }
2026-06-04T00:32:38.1420204Z     },
2026-06-04T00:32:38.1421317Z     {
2026-06-04T00:32:38.1422522Z       "id": "REQ-API-2",
2026-06-04T00:32:38.1424539Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-04T00:32:38.1426703Z       "requiredStages": [
2026-06-04T00:32:38.1428021Z         "impl",
2026-06-04T00:32:38.1429308Z         "unit",
2026-06-04T00:32:38.1430549Z         "int"
2026-06-04T00:32:38.1431712Z       ],
2026-06-04T00:32:38.1432864Z       "stages": {
2026-06-04T00:32:38.1434057Z         "doc": {
2026-06-04T00:32:38.1435293Z           "complete": false,
2026-06-04T00:32:38.1436659Z           "evidence": []
2026-06-04T00:32:38.1437932Z         },
2026-06-04T00:32:38.1439213Z         "impl": {
2026-06-04T00:32:38.1440485Z           "complete": true,
2026-06-04T00:32:38.1441900Z           "evidence": [
2026-06-04T00:32:38.1443497Z             {
2026-06-04T00:32:38.1444973Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T00:32:38.1446808Z               "line": 15
2026-06-04T00:32:38.1448131Z             },
2026-06-04T00:32:38.1449492Z             {
2026-06-04T00:32:38.1450865Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.1452498Z               "line": 20
2026-06-04T00:32:38.1453776Z             },
2026-06-04T00:32:38.1454932Z             {
2026-06-04T00:32:38.1456248Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.1457912Z               "line": 125
2026-06-04T00:32:38.1459288Z             },
2026-06-04T00:32:38.1460447Z             {
2026-06-04T00:32:38.1461778Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1463420Z               "line": 21
2026-06-04T00:32:38.1464705Z             },
2026-06-04T00:32:38.1466022Z             {
2026-06-04T00:32:38.1467068Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1468432Z               "line": 36
2026-06-04T00:32:38.1469535Z             },
2026-06-04T00:32:38.1470415Z             {
2026-06-04T00:32:38.1471443Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1472794Z               "line": 101
2026-06-04T00:32:38.1473783Z             },
2026-06-04T00:32:38.1474646Z             {
2026-06-04T00:32:38.1475674Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1477038Z               "line": 123
2026-06-04T00:32:38.1478010Z             },
2026-06-04T00:32:38.1478867Z             {
2026-06-04T00:32:38.1479967Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1481317Z               "line": 147
2026-06-04T00:32:38.1482297Z             },
2026-06-04T00:32:38.1483175Z             {
2026-06-04T00:32:38.1484174Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1485488Z               "line": 17
2026-06-04T00:32:38.1486461Z             },
2026-06-04T00:32:38.1487336Z             {
2026-06-04T00:32:38.1488346Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1489743Z               "line": 30
2026-06-04T00:32:38.1490725Z             },
2026-06-04T00:32:38.1491596Z             {
2026-06-04T00:32:38.1492577Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1493855Z               "line": 63
2026-06-04T00:32:38.1494792Z             },
2026-06-04T00:32:38.1495651Z             {
2026-06-04T00:32:38.1496652Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1498429Z               "line": 76
2026-06-04T00:32:38.1499841Z             }
2026-06-04T00:32:38.1501009Z           ]
2026-06-04T00:32:38.1502132Z         },
2026-06-04T00:32:38.1503254Z         "int": {
2026-06-04T00:32:38.1504480Z           "complete": true,
2026-06-04T00:32:38.1505821Z           "evidence": [
2026-06-04T00:32:38.1507076Z             {
2026-06-04T00:32:38.1508422Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.1510170Z               "line": 14
2026-06-04T00:32:38.1511446Z             },
2026-06-04T00:32:38.1512615Z             {
2026-06-04T00:32:38.1513945Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.1515586Z               "line": 151
2026-06-04T00:32:38.1516870Z             }
2026-06-04T00:32:38.1518013Z           ]
2026-06-04T00:32:38.1519193Z         },
2026-06-04T00:32:38.1520339Z         "unit": {
2026-06-04T00:32:38.1521609Z           "complete": true,
2026-06-04T00:32:38.1522949Z           "evidence": [
2026-06-04T00:32:38.1524232Z             {
2026-06-04T00:32:38.1525551Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T00:32:38.1527159Z               "line": 42
2026-06-04T00:32:38.1528414Z             },
2026-06-04T00:32:38.1529635Z             {
2026-06-04T00:32:38.1530944Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.1532564Z               "line": 204
2026-06-04T00:32:38.1533837Z             },
2026-06-04T00:32:38.1535228Z             {
2026-06-04T00:32:38.1536603Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1538356Z               "line": 220
2026-06-04T00:32:38.1539704Z             },
2026-06-04T00:32:38.1540861Z             {
2026-06-04T00:32:38.1542170Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1543765Z               "line": 231
2026-06-04T00:32:38.1545012Z             },
2026-06-04T00:32:38.1546150Z             {
2026-06-04T00:32:38.1547456Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1549186Z               "line": 267
2026-06-04T00:32:38.1550704Z             },
2026-06-04T00:32:38.1551864Z             {
2026-06-04T00:32:38.1553193Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1554819Z               "line": 279
2026-06-04T00:32:38.1556087Z             },
2026-06-04T00:32:38.1557188Z             {
2026-06-04T00:32:38.1558631Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1560367Z               "line": 137
2026-06-04T00:32:38.1561645Z             },
2026-06-04T00:32:38.1562807Z             {
2026-06-04T00:32:38.1564114Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.1565712Z               "line": 172
2026-06-04T00:32:38.1566979Z             }
2026-06-04T00:32:38.1568128Z           ]
2026-06-04T00:32:38.1569338Z         }
2026-06-04T00:32:38.1570457Z       }
2026-06-04T00:32:38.1571545Z     },
2026-06-04T00:32:38.1572648Z     {
2026-06-04T00:32:38.1573785Z       "id": "REQ-API-3",
2026-06-04T00:32:38.1575338Z       "title": "commune/signoff are file-drops, not commands",
2026-06-04T00:32:38.1577081Z       "requiredStages": [
2026-06-04T00:32:38.1578374Z         "impl",
2026-06-04T00:32:38.1579621Z         "unit",
2026-06-04T00:32:38.1580802Z         "int"
2026-06-04T00:32:38.1581938Z       ],
2026-06-04T00:32:38.1583044Z       "stages": {
2026-06-04T00:32:38.1584226Z         "doc": {
2026-06-04T00:32:38.1585437Z           "complete": false,
2026-06-04T00:32:38.1586816Z           "evidence": []
2026-06-04T00:32:38.1588113Z         },
2026-06-04T00:32:38.1589344Z         "impl": {
2026-06-04T00:32:38.1590568Z           "complete": true,
2026-06-04T00:32:38.1591903Z           "evidence": [
2026-06-04T00:32:38.1593140Z             {
2026-06-04T00:32:38.1594446Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.1596019Z               "line": 14
2026-06-04T00:32:38.1597268Z             },
2026-06-04T00:32:38.1598404Z             {
2026-06-04T00:32:38.1599807Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1601422Z               "line": 157
2026-06-04T00:32:38.1602701Z             }
2026-06-04T00:32:38.1603838Z           ]
2026-06-04T00:32:38.1604947Z         },
2026-06-04T00:32:38.1606056Z         "int": {
2026-06-04T00:32:38.1607275Z           "complete": true,
2026-06-04T00:32:38.1608606Z           "evidence": [
2026-06-04T00:32:38.1609983Z             {
2026-06-04T00:32:38.1611339Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.1612972Z               "line": 203
2026-06-04T00:32:38.1614261Z             }
2026-06-04T00:32:38.1615412Z           ]
2026-06-04T00:32:38.1616528Z         },
2026-06-04T00:32:38.1617642Z         "unit": {
2026-06-04T00:32:38.1618984Z           "complete": true,
2026-06-04T00:32:38.1620931Z           "evidence": [
2026-06-04T00:32:38.1622214Z             {
2026-06-04T00:32:38.1623524Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.1625138Z               "line": 117
2026-06-04T00:32:38.1626408Z             },
2026-06-04T00:32:38.1627556Z             {
2026-06-04T00:32:38.1628874Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.1630756Z               "line": 288
2026-06-04T00:32:38.1632042Z             }
2026-06-04T00:32:38.1633201Z           ]
2026-06-04T00:32:38.1634315Z         }
2026-06-04T00:32:38.1635417Z       }
2026-06-04T00:32:38.1636514Z     },
2026-06-04T00:32:38.1637608Z     {
2026-06-04T00:32:38.1638988Z       "id": "REQ-ARCH-1",
2026-06-04T00:32:38.1640615Z       "title": "Many small acyclically-layered crates",
2026-06-04T00:32:38.1642413Z       "requiredStages": [
2026-06-04T00:32:38.1643800Z         "impl"
2026-06-04T00:32:38.1645016Z       ],
2026-06-04T00:32:38.1646153Z       "stages": {
2026-06-04T00:32:38.1647425Z         "doc": {
2026-06-04T00:32:38.1648777Z           "complete": false,
2026-06-04T00:32:38.1658271Z           "evidence": []
2026-06-04T00:32:38.1659694Z         },
2026-06-04T00:32:38.1660538Z         "impl": {
2026-06-04T00:32:38.1661783Z           "complete": true,
2026-06-04T00:32:38.1663111Z           "evidence": [
2026-06-04T00:32:38.1664366Z             {
2026-06-04T00:32:38.1665640Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-04T00:32:38.1667191Z               "line": 16
2026-06-04T00:32:38.1668452Z             },
2026-06-04T00:32:38.1669653Z             {
2026-06-04T00:32:38.1670940Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-04T00:32:38.1672546Z               "line": 12
2026-06-04T00:32:38.1673802Z             },
2026-06-04T00:32:38.1674968Z             {
2026-06-04T00:32:38.1676253Z               "path": "crates/spt-store/src/lib.rs",
2026-06-04T00:32:38.1677823Z               "line": 12
2026-06-04T00:32:38.1679143Z             }
2026-06-04T00:32:38.1680294Z           ]
2026-06-04T00:32:38.1681413Z         },
2026-06-04T00:32:38.1682536Z         "int": {
2026-06-04T00:32:38.1683752Z           "complete": false,
2026-06-04T00:32:38.1685098Z           "evidence": []
2026-06-04T00:32:38.1686359Z         },
2026-06-04T00:32:38.1687480Z         "unit": {
2026-06-04T00:32:38.1688711Z           "complete": false,
2026-06-04T00:32:38.1690134Z           "evidence": []
2026-06-04T00:32:38.1691397Z         }
2026-06-04T00:32:38.1692522Z       }
2026-06-04T00:32:38.1693625Z     },
2026-06-04T00:32:38.1694712Z     {
2026-06-04T00:32:38.1695853Z       "id": "REQ-ARCH-2",
2026-06-04T00:32:38.1697567Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-04T00:32:38.1699509Z       "requiredStages": [
2026-06-04T00:32:38.1700815Z         "impl"
2026-06-04T00:32:38.1701969Z       ],
2026-06-04T00:32:38.1703097Z       "stages": {
2026-06-04T00:32:38.1704284Z         "doc": {
2026-06-04T00:32:38.1705491Z           "complete": false,
2026-06-04T00:32:38.1706828Z           "evidence": []
2026-06-04T00:32:38.1708092Z         },
2026-06-04T00:32:38.1709306Z         "impl": {
2026-06-04T00:32:38.1710534Z           "complete": true,
2026-06-04T00:32:38.1711856Z           "evidence": [
2026-06-04T00:32:38.1713080Z             {
2026-06-04T00:32:38.1714376Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-04T00:32:38.1715936Z               "line": 18
2026-06-04T00:32:38.1717208Z             }
2026-06-04T00:32:38.1718356Z           ]
2026-06-04T00:32:38.1719560Z         },
2026-06-04T00:32:38.1720678Z         "int": {
2026-06-04T00:32:38.1721877Z           "complete": false,
2026-06-04T00:32:38.1723223Z           "evidence": []
2026-06-04T00:32:38.1724464Z         },
2026-06-04T00:32:38.1725570Z         "unit": {
2026-06-04T00:32:38.1726801Z           "complete": false,
2026-06-04T00:32:38.1728125Z           "evidence": []
2026-06-04T00:32:38.1729441Z         }
2026-06-04T00:32:38.1730524Z       }
2026-06-04T00:32:38.1731600Z     },
2026-06-04T00:32:38.1732678Z     {
2026-06-04T00:32:38.1733800Z       "id": "REQ-ARCH-3",
2026-06-04T00:32:38.1735659Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-04T00:32:38.1737697Z       "requiredStages": [
2026-06-04T00:32:38.1738959Z         "impl",
2026-06-04T00:32:38.1740228Z         "unit"
2026-06-04T00:32:38.1741346Z       ],
2026-06-04T00:32:38.1742428Z       "stages": {
2026-06-04T00:32:38.1743579Z         "doc": {
2026-06-04T00:32:38.1744865Z           "complete": false,
2026-06-04T00:32:38.1746176Z           "evidence": []
2026-06-04T00:32:38.1747400Z         },
2026-06-04T00:32:38.1748510Z         "impl": {
2026-06-04T00:32:38.1750028Z           "complete": true,
2026-06-04T00:32:38.1751397Z           "evidence": [
2026-06-04T00:32:38.1752744Z             {
2026-06-04T00:32:38.1754060Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:32:38.1755622Z               "line": 34
2026-06-04T00:32:38.1756849Z             },
2026-06-04T00:32:38.1757968Z             {
2026-06-04T00:32:38.1759350Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:32:38.1760921Z               "line": 41
2026-06-04T00:32:38.1762139Z             }
2026-06-04T00:32:38.1763250Z           ]
2026-06-04T00:32:38.1764342Z         },
2026-06-04T00:32:38.1765438Z         "int": {
2026-06-04T00:32:38.1766623Z           "complete": false,
2026-06-04T00:32:38.1767926Z           "evidence": []
2026-06-04T00:32:38.1769229Z         },
2026-06-04T00:32:38.1770330Z         "unit": {
2026-06-04T00:32:38.1771514Z           "complete": true,
2026-06-04T00:32:38.1772800Z           "evidence": [
2026-06-04T00:32:38.1774018Z             {
2026-06-04T00:32:38.1775325Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:32:38.1776879Z               "line": 51
2026-06-04T00:32:38.1778103Z             },
2026-06-04T00:32:38.1779305Z             {
2026-06-04T00:32:38.1780612Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:32:38.1782169Z               "line": 65
2026-06-04T00:32:38.1783384Z             },
2026-06-04T00:32:38.1784511Z             {
2026-06-04T00:32:38.1785800Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T00:32:38.1787340Z               "line": 74
2026-06-04T00:32:38.1788736Z             }
2026-06-04T00:32:38.1790127Z           ]
2026-06-04T00:32:38.1791223Z         }
2026-06-04T00:32:38.1792296Z       }
2026-06-04T00:32:38.1793357Z     },
2026-06-04T00:32:38.1794421Z     {
2026-06-04T00:32:38.1795514Z       "id": "REQ-ARCH-4",
2026-06-04T00:32:38.1797198Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-04T00:32:38.1799115Z       "requiredStages": [
2026-06-04T00:32:38.1800392Z         "impl",
2026-06-04T00:32:38.1801526Z         "unit"
2026-06-04T00:32:38.1802720Z       ],
2026-06-04T00:32:38.1803981Z       "stages": {
2026-06-04T00:32:38.1805158Z         "doc": {
2026-06-04T00:32:38.1806338Z           "complete": false,
2026-06-04T00:32:38.1807640Z           "evidence": []
2026-06-04T00:32:38.1808863Z         },
2026-06-04T00:32:38.1810036Z         "impl": {
2026-06-04T00:32:38.1811217Z           "complete": true,
2026-06-04T00:32:38.1812500Z           "evidence": [
2026-06-04T00:32:38.1813697Z             {
2026-06-04T00:32:38.1814958Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1816530Z               "line": 32
2026-06-04T00:32:38.1817736Z             },
2026-06-04T00:32:38.1818843Z             {
2026-06-04T00:32:38.1820189Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1821813Z               "line": 46
2026-06-04T00:32:38.1823055Z             },
2026-06-04T00:32:38.1824204Z             {
2026-06-04T00:32:38.1825475Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1827031Z               "line": 66
2026-06-04T00:32:38.1828257Z             },
2026-06-04T00:32:38.1829470Z             {
2026-06-04T00:32:38.1830754Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1832289Z               "line": 81
2026-06-04T00:32:38.1833519Z             },
2026-06-04T00:32:38.1834633Z             {
2026-06-04T00:32:38.1835895Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1837419Z               "line": 131
2026-06-04T00:32:38.1838641Z             }
2026-06-04T00:32:38.1839874Z           ]
2026-06-04T00:32:38.1840964Z         },
2026-06-04T00:32:38.1842056Z         "int": {
2026-06-04T00:32:38.1843248Z           "complete": false,
2026-06-04T00:32:38.1844568Z           "evidence": []
2026-06-04T00:32:38.1845788Z         },
2026-06-04T00:32:38.1846868Z         "unit": {
2026-06-04T00:32:38.1848252Z           "complete": true,
2026-06-04T00:32:38.1849657Z           "evidence": [
2026-06-04T00:32:38.1861903Z             {
2026-06-04T00:32:38.1863488Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1865023Z               "line": 195
2026-06-04T00:32:38.1866228Z             },
2026-06-04T00:32:38.1867346Z             {
2026-06-04T00:32:38.1868597Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1870335Z               "line": 205
2026-06-04T00:32:38.1871569Z             },
2026-06-04T00:32:38.1872688Z             {
2026-06-04T00:32:38.1873952Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1875479Z               "line": 216
2026-06-04T00:32:38.1876694Z             },
2026-06-04T00:32:38.1877816Z             {
2026-06-04T00:32:38.1879168Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1880704Z               "line": 227
2026-06-04T00:32:38.1881943Z             },
2026-06-04T00:32:38.1883073Z             {
2026-06-04T00:32:38.1884377Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1885922Z               "line": 239
2026-06-04T00:32:38.1887155Z             },
2026-06-04T00:32:38.1888275Z             {
2026-06-04T00:32:38.1889628Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1891166Z               "line": 252
2026-06-04T00:32:38.1892409Z             },
2026-06-04T00:32:38.1893534Z             {
2026-06-04T00:32:38.1894817Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1896357Z               "line": 263
2026-06-04T00:32:38.1897581Z             },
2026-06-04T00:32:38.1898710Z             {
2026-06-04T00:32:38.1900121Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1901644Z               "line": 277
2026-06-04T00:32:38.1902890Z             },
2026-06-04T00:32:38.1904015Z             {
2026-06-04T00:32:38.1905294Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T00:32:38.1906816Z               "line": 286
2026-06-04T00:32:38.1908060Z             }
2026-06-04T00:32:38.1909249Z           ]
2026-06-04T00:32:38.1910374Z         }
2026-06-04T00:32:38.1911441Z       }
2026-06-04T00:32:38.1912489Z     },
2026-06-04T00:32:38.1913559Z     {
2026-06-04T00:32:38.1914698Z       "id": "REQ-DAEMON-1",
2026-06-04T00:32:38.1916358Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-04T00:32:38.1918181Z       "requiredStages": [
2026-06-04T00:32:38.1919503Z         "impl",
2026-06-04T00:32:38.1920640Z         "unit",
2026-06-04T00:32:38.1921778Z         "int"
2026-06-04T00:32:38.1922938Z       ],
2026-06-04T00:32:38.1924024Z       "stages": {
2026-06-04T00:32:38.1925176Z         "doc": {
2026-06-04T00:32:38.1926354Z           "complete": false,
2026-06-04T00:32:38.1927664Z           "evidence": []
2026-06-04T00:32:38.1928876Z         },
2026-06-04T00:32:38.1930110Z         "impl": {
2026-06-04T00:32:38.1931292Z           "complete": true,
2026-06-04T00:32:38.1932572Z           "evidence": [
2026-06-04T00:32:38.1933795Z             {
2026-06-04T00:32:38.1935086Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.1936660Z               "line": 12
2026-06-04T00:32:38.1937880Z             },
2026-06-04T00:32:38.1938995Z             {
2026-06-04T00:32:38.1940404Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.1941967Z               "line": 16
2026-06-04T00:32:38.1943186Z             },
2026-06-04T00:32:38.1944311Z             {
2026-06-04T00:32:38.1945593Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:32:38.1947125Z               "line": 15
2026-06-04T00:32:38.1948352Z             },
2026-06-04T00:32:38.1949557Z             {
2026-06-04T00:32:38.1950823Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T00:32:38.1952333Z               "line": 13
2026-06-04T00:32:38.1953560Z             }
2026-06-04T00:32:38.1954681Z           ]
2026-06-04T00:32:38.1955777Z         },
2026-06-04T00:32:38.1956861Z         "int": {
2026-06-04T00:32:38.1958224Z           "complete": true,
2026-06-04T00:32:38.1959632Z           "evidence": [
2026-06-04T00:32:38.1960974Z             {
2026-06-04T00:32:38.1962333Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:32:38.1963960Z               "line": 32
2026-06-04T00:32:38.1965188Z             }
2026-06-04T00:32:38.1966296Z           ]
2026-06-04T00:32:38.1967399Z         },
2026-06-04T00:32:38.1968490Z         "unit": {
2026-06-04T00:32:38.1969752Z           "complete": true,
2026-06-04T00:32:38.1971048Z           "evidence": [
2026-06-04T00:32:38.1972243Z             {
2026-06-04T00:32:38.1973530Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.1975090Z               "line": 173
2026-06-04T00:32:38.1976316Z             },
2026-06-04T00:32:38.1977430Z             {
2026-06-04T00:32:38.1978733Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.1980414Z               "line": 181
2026-06-04T00:32:38.1981662Z             },
2026-06-04T00:32:38.1982788Z             {
2026-06-04T00:32:38.1984080Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.1985633Z               "line": 194
2026-06-04T00:32:38.1986867Z             },
2026-06-04T00:32:38.1987984Z             {
2026-06-04T00:32:38.1989346Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.1990942Z               "line": 202
2026-06-04T00:32:38.1992175Z             },
2026-06-04T00:32:38.1993300Z             {
2026-06-04T00:32:38.1994608Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.1996184Z               "line": 451
2026-06-04T00:32:38.1997420Z             },
2026-06-04T00:32:38.1998547Z             {
2026-06-04T00:32:38.1999953Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2001541Z               "line": 510
2026-06-04T00:32:38.2002788Z             },
2026-06-04T00:32:38.2003897Z             {
2026-06-04T00:32:38.2005188Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:32:38.2006731Z               "line": 100
2026-06-04T00:32:38.2007983Z             },
2026-06-04T00:32:38.2009165Z             {
2026-06-04T00:32:38.2010456Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T00:32:38.2011983Z               "line": 125
2026-06-04T00:32:38.2013241Z             }
2026-06-04T00:32:38.2014452Z           ]
2026-06-04T00:32:38.2015550Z         }
2026-06-04T00:32:38.2016618Z       }
2026-06-04T00:32:38.2017684Z     },
2026-06-04T00:32:38.2018745Z     {
2026-06-04T00:32:38.2019929Z       "id": "REQ-DAEMON-2",
2026-06-04T00:32:38.2021469Z       "title": "Broker/brain split for seamless self-update",
2026-06-04T00:32:38.2023120Z       "requiredStages": [
2026-06-04T00:32:38.2024384Z         "impl",
2026-06-04T00:32:38.2025474Z         "unit",
2026-06-04T00:32:38.2026774Z         "int"
2026-06-04T00:32:38.2027870Z       ],
2026-06-04T00:32:38.2028949Z       "stages": {
2026-06-04T00:32:38.2030186Z         "doc": {
2026-06-04T00:32:38.2031392Z           "complete": false,
2026-06-04T00:32:38.2032722Z           "evidence": []
2026-06-04T00:32:38.2033948Z         },
2026-06-04T00:32:38.2035028Z         "impl": {
2026-06-04T00:32:38.2036211Z           "complete": true,
2026-06-04T00:32:38.2037517Z           "evidence": [
2026-06-04T00:32:38.2038715Z             {
2026-06-04T00:32:38.2040079Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.2041627Z               "line": 23
2026-06-04T00:32:38.2042852Z             },
2026-06-04T00:32:38.2043969Z             {
2026-06-04T00:32:38.2045253Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.2046778Z               "line": 442
2026-06-04T00:32:38.2048007Z             },
2026-06-04T00:32:38.2049200Z             {
2026-06-04T00:32:38.2050492Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.2052027Z               "line": 552
2026-06-04T00:32:38.2053254Z             },
2026-06-04T00:32:38.2054370Z             {
2026-06-04T00:32:38.2055881Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.2057521Z               "line": 32
2026-06-04T00:32:38.2058789Z             },
2026-06-04T00:32:38.2059995Z             {
2026-06-04T00:32:38.2061279Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.2062835Z               "line": 186
2026-06-04T00:32:38.2064076Z             },
2026-06-04T00:32:38.2065175Z             {
2026-06-04T00:32:38.2066670Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.2068247Z               "line": 473
2026-06-04T00:32:38.2069579Z             },
2026-06-04T00:32:38.2070702Z             {
2026-06-04T00:32:38.2072015Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.2073575Z               "line": 642
2026-06-04T00:32:38.2074810Z             },
2026-06-04T00:32:38.2075927Z             {
2026-06-04T00:32:38.2077195Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:32:38.2078756Z               "line": 11
2026-06-04T00:32:38.2080120Z             },
2026-06-04T00:32:38.2081253Z             {
2026-06-04T00:32:38.2082547Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:32:38.2084120Z               "line": 53
2026-06-04T00:32:38.2085339Z             },
2026-06-04T00:32:38.2086443Z             {
2026-06-04T00:32:38.2087847Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:32:38.2089454Z               "line": 13
2026-06-04T00:32:38.2090683Z             },
2026-06-04T00:32:38.2091809Z             {
2026-06-04T00:32:38.2093105Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2094649Z               "line": 27
2026-06-04T00:32:38.2095873Z             },
2026-06-04T00:32:38.2096984Z             {
2026-06-04T00:32:38.2098278Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2099960Z               "line": 91
2026-06-04T00:32:38.2101207Z             },
2026-06-04T00:32:38.2102501Z             {
2026-06-04T00:32:38.2125889Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2127626Z               "line": 292
2026-06-04T00:32:38.2128920Z             },
2026-06-04T00:32:38.2130202Z             {
2026-06-04T00:32:38.2131589Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2133356Z               "line": 359
2026-06-04T00:32:38.2134703Z             },
2026-06-04T00:32:38.2135845Z             {
2026-06-04T00:32:38.2137223Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2138800Z               "line": 393
2026-06-04T00:32:38.2140139Z             },
2026-06-04T00:32:38.2141340Z             {
2026-06-04T00:32:38.2142722Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2144271Z               "line": 435
2026-06-04T00:32:38.2145508Z             },
2026-06-04T00:32:38.2146647Z             {
2026-06-04T00:32:38.2148042Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2149771Z               "line": 479
2026-06-04T00:32:38.2151008Z             },
2026-06-04T00:32:38.2152234Z             {
2026-06-04T00:32:38.2153565Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:32:38.2155196Z               "line": 10
2026-06-04T00:32:38.2156424Z             }
2026-06-04T00:32:38.2157579Z           ]
2026-06-04T00:32:38.2158730Z         },
2026-06-04T00:32:38.2160085Z         "int": {
2026-06-04T00:32:38.2161333Z           "complete": true,
2026-06-04T00:32:38.2162615Z           "evidence": [
2026-06-04T00:32:38.2163830Z             {
2026-06-04T00:32:38.2165223Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-04T00:32:38.2166774Z               "line": 17
2026-06-04T00:32:38.2167988Z             },
2026-06-04T00:32:38.2169237Z             {
2026-06-04T00:32:38.2170622Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:32:38.2172193Z               "line": 33
2026-06-04T00:32:38.2173473Z             },
2026-06-04T00:32:38.2174866Z             {
2026-06-04T00:32:38.2176234Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T00:32:38.2177940Z               "line": 19
2026-06-04T00:32:38.2179421Z             },
2026-06-04T00:32:38.2180803Z             {
2026-06-04T00:32:38.2182221Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:32:38.2183976Z               "line": 70
2026-06-04T00:32:38.2185208Z             },
2026-06-04T00:32:38.2186347Z             {
2026-06-04T00:32:38.2187744Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:32:38.2189445Z               "line": 90
2026-06-04T00:32:38.2190683Z             },
2026-06-04T00:32:38.2191811Z             {
2026-06-04T00:32:38.2193270Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:32:38.2194884Z               "line": 160
2026-06-04T00:32:38.2196106Z             },
2026-06-04T00:32:38.2197295Z             {
2026-06-04T00:32:38.2198669Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:32:38.2200404Z               "line": 196
2026-06-04T00:32:38.2201632Z             },
2026-06-04T00:32:38.2202751Z             {
2026-06-04T00:32:38.2204141Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T00:32:38.2205694Z               "line": 121
2026-06-04T00:32:38.2206898Z             }
2026-06-04T00:32:38.2208071Z           ]
2026-06-04T00:32:38.2209359Z         },
2026-06-04T00:32:38.2210472Z         "unit": {
2026-06-04T00:32:38.2211668Z           "complete": true,
2026-06-04T00:32:38.2212928Z           "evidence": [
2026-06-04T00:32:38.2214124Z             {
2026-06-04T00:32:38.2215452Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:32:38.2216952Z               "line": 62
2026-06-04T00:32:38.2218154Z             },
2026-06-04T00:32:38.2219415Z             {
2026-06-04T00:32:38.2220801Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:32:38.2222295Z               "line": 76
2026-06-04T00:32:38.2223530Z             },
2026-06-04T00:32:38.2224649Z             {
2026-06-04T00:32:38.2225974Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T00:32:38.2227493Z               "line": 88
2026-06-04T00:32:38.2228702Z             },
2026-06-04T00:32:38.2230038Z             {
2026-06-04T00:32:38.2231343Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.2232868Z               "line": 264
2026-06-04T00:32:38.2234142Z             },
2026-06-04T00:32:38.2235267Z             {
2026-06-04T00:32:38.2236580Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:32:38.2238061Z               "line": 426
2026-06-04T00:32:38.2239379Z             },
2026-06-04T00:32:38.2240497Z             {
2026-06-04T00:32:38.2241802Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:32:38.2243295Z               "line": 434
2026-06-04T00:32:38.2244511Z             },
2026-06-04T00:32:38.2245648Z             {
2026-06-04T00:32:38.2246934Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:32:38.2248422Z               "line": 451
2026-06-04T00:32:38.2249772Z             },
2026-06-04T00:32:38.2250840Z             {
2026-06-04T00:32:38.2252282Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T00:32:38.2253830Z               "line": 471
2026-06-04T00:32:38.2255045Z             },
2026-06-04T00:32:38.2256223Z             {
2026-06-04T00:32:38.2257540Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2259140Z               "line": 523
2026-06-04T00:32:38.2260340Z             },
2026-06-04T00:32:38.2261504Z             {
2026-06-04T00:32:38.2262803Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T00:32:38.2264333Z               "line": 535
2026-06-04T00:32:38.2265544Z             },
2026-06-04T00:32:38.2266695Z             {
2026-06-04T00:32:38.2268077Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:32:38.2269742Z               "line": 112
2026-06-04T00:32:38.2271148Z             }
2026-06-04T00:32:38.2272256Z           ]
2026-06-04T00:32:38.2273371Z         }
2026-06-04T00:32:38.2274603Z       }
2026-06-04T00:32:38.2275676Z     },
2026-06-04T00:32:38.2276756Z     {
2026-06-04T00:32:38.2277882Z       "id": "REQ-DAEMON-3",
2026-06-04T00:32:38.2279578Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-04T00:32:38.2281315Z       "requiredStages": [
2026-06-04T00:32:38.2282562Z         "impl",
2026-06-04T00:32:38.2283717Z         "unit",
2026-06-04T00:32:38.2284844Z         "int"
2026-06-04T00:32:38.2285931Z       ],
2026-06-04T00:32:38.2287081Z       "stages": {
2026-06-04T00:32:38.2288243Z         "doc": {
2026-06-04T00:32:38.2289564Z           "complete": false,
2026-06-04T00:32:38.2290873Z           "evidence": []
2026-06-04T00:32:38.2292075Z         },
2026-06-04T00:32:38.2293191Z         "impl": {
2026-06-04T00:32:38.2294385Z           "complete": true,
2026-06-04T00:32:38.2295713Z           "evidence": [
2026-06-04T00:32:38.2296885Z             {
2026-06-04T00:32:38.2298271Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:32:38.2299961Z               "line": 14
2026-06-04T00:32:38.2301167Z             },
2026-06-04T00:32:38.2302290Z             {
2026-06-04T00:32:38.2303635Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-04T00:32:38.2305150Z               "line": 11
2026-06-04T00:32:38.2306373Z             },
2026-06-04T00:32:38.2307482Z             {
2026-06-04T00:32:38.2308800Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.2310422Z               "line": 203
2026-06-04T00:32:38.2311685Z             },
2026-06-04T00:32:38.2312866Z             {
2026-06-04T00:32:38.2314117Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.2315591Z               "line": 233
2026-06-04T00:32:38.2316787Z             }
2026-06-04T00:32:38.2317872Z           ]
2026-06-04T00:32:38.2318945Z         },
2026-06-04T00:32:38.2320156Z         "int": {
2026-06-04T00:32:38.2321416Z           "complete": true,
2026-06-04T00:32:38.2322697Z           "evidence": [
2026-06-04T00:32:38.2323873Z             {
2026-06-04T00:32:38.2325228Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.2326821Z               "line": 43
2026-06-04T00:32:38.2328027Z             },
2026-06-04T00:32:38.2329226Z             {
2026-06-04T00:32:38.2330528Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.2332035Z               "line": 315
2026-06-04T00:32:38.2333225Z             }
2026-06-04T00:32:38.2334403Z           ]
2026-06-04T00:32:38.2335493Z         },
2026-06-04T00:32:38.2336615Z         "unit": {
2026-06-04T00:32:38.2337813Z           "complete": true,
2026-06-04T00:32:38.2339252Z           "evidence": [
2026-06-04T00:32:38.2340455Z             {
2026-06-04T00:32:38.2341898Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T00:32:38.2343408Z               "line": 217
2026-06-04T00:32:38.2344610Z             }
2026-06-04T00:32:38.2345781Z           ]
2026-06-04T00:32:38.2346889Z         }
2026-06-04T00:32:38.2347945Z       }
2026-06-04T00:32:38.2349017Z     },
2026-06-04T00:32:38.2350171Z     {
2026-06-04T00:32:38.2351284Z       "id": "REQ-DAEMON-4",
2026-06-04T00:32:38.2352699Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-04T00:32:38.2354233Z       "requiredStages": [
2026-06-04T00:32:38.2355459Z         "impl",
2026-06-04T00:32:38.2356624Z         "unit",
2026-06-04T00:32:38.2357822Z         "int"
2026-06-04T00:32:38.2359026Z       ],
2026-06-04T00:32:38.2360234Z       "stages": {
2026-06-04T00:32:38.2361419Z         "doc": {
2026-06-04T00:32:38.2362658Z           "complete": false,
2026-06-04T00:32:38.2364313Z           "evidence": []
2026-06-04T00:32:38.2365633Z         },
2026-06-04T00:32:38.2366722Z         "impl": {
2026-06-04T00:32:38.2367990Z           "complete": true,
2026-06-04T00:32:38.2369322Z           "evidence": [
2026-06-04T00:32:38.2370552Z             {
2026-06-04T00:32:38.2372176Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2373752Z               "line": 262
2026-06-04T00:32:38.2375108Z             },
2026-06-04T00:32:38.2376302Z             {
2026-06-04T00:32:38.2377623Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2379292Z               "line": 324
2026-06-04T00:32:38.2380517Z             },
2026-06-04T00:32:38.2381657Z             {
2026-06-04T00:32:38.2382986Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2384531Z               "line": 346
2026-06-04T00:32:38.2385793Z             }
2026-06-04T00:32:38.2386933Z           ]
2026-06-04T00:32:38.2388008Z         },
2026-06-04T00:32:38.2389244Z         "int": {
2026-06-04T00:32:38.2390441Z           "complete": true,
2026-06-04T00:32:38.2391702Z           "evidence": [
2026-06-04T00:32:38.2392878Z             {
2026-06-04T00:32:38.2394215Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:32:38.2396087Z               "line": 34
2026-06-04T00:32:38.2468806Z             }
2026-06-04T00:32:38.2484679Z           ]
2026-06-04T00:32:38.2487677Z         },
2026-06-04T00:32:38.2488831Z         "unit": {
2026-06-04T00:32:38.2490203Z           "complete": true,
2026-06-04T00:32:38.2491454Z           "evidence": [
2026-06-04T00:32:38.2492639Z             {
2026-06-04T00:32:38.2493891Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.2495384Z               "line": 248
2026-06-04T00:32:38.2496587Z             },
2026-06-04T00:32:38.2497680Z             {
2026-06-04T00:32:38.2498934Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2500600Z               "line": 533
2026-06-04T00:32:38.2501792Z             },
2026-06-04T00:32:38.2502890Z             {
2026-06-04T00:32:38.2504144Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2505683Z               "line": 584
2026-06-04T00:32:38.2506855Z             },
2026-06-04T00:32:38.2507945Z             {
2026-06-04T00:32:38.2509414Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2510966Z               "line": 608
2026-06-04T00:32:38.2512149Z             },
2026-06-04T00:32:38.2513227Z             {
2026-06-04T00:32:38.2514484Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2515991Z               "line": 638
2026-06-04T00:32:38.2517163Z             }
2026-06-04T00:32:38.2518242Z           ]
2026-06-04T00:32:38.2519430Z         }
2026-06-04T00:32:38.2520563Z       }
2026-06-04T00:32:38.2521604Z     },
2026-06-04T00:32:38.2522657Z     {
2026-06-04T00:32:38.2523760Z       "id": "REQ-DOCS-1",
2026-06-04T00:32:38.2525500Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-04T00:32:38.2527417Z       "requiredStages": [],
2026-06-04T00:32:38.2528665Z       "stages": {
2026-06-04T00:32:38.2530234Z         "doc": {
2026-06-04T00:32:38.2531462Z           "complete": false,
2026-06-04T00:32:38.2532752Z           "evidence": []
2026-06-04T00:32:38.2534068Z         },
2026-06-04T00:32:38.2535176Z         "impl": {
2026-06-04T00:32:38.2536381Z           "complete": false,
2026-06-04T00:32:38.2537700Z           "evidence": []
2026-06-04T00:32:38.2538897Z         },
2026-06-04T00:32:38.2540215Z         "int": {
2026-06-04T00:32:38.2541406Z           "complete": false,
2026-06-04T00:32:38.2542714Z           "evidence": []
2026-06-04T00:32:38.2543916Z         },
2026-06-04T00:32:38.2545017Z         "unit": {
2026-06-04T00:32:38.2546222Z           "complete": false,
2026-06-04T00:32:38.2547500Z           "evidence": []
2026-06-04T00:32:38.2548695Z         }
2026-06-04T00:32:38.2549919Z       }
2026-06-04T00:32:38.2550971Z     },
2026-06-04T00:32:38.2552034Z     {
2026-06-04T00:32:38.2553159Z       "id": "REQ-DOCS-2",
2026-06-04T00:32:38.2554757Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-04T00:32:38.2556492Z       "requiredStages": [],
2026-06-04T00:32:38.2557740Z       "stages": {
2026-06-04T00:32:38.2559304Z         "doc": {
2026-06-04T00:32:38.2560578Z           "complete": false,
2026-06-04T00:32:38.2562075Z           "evidence": []
2026-06-04T00:32:38.2563284Z         },
2026-06-04T00:32:38.2564421Z         "impl": {
2026-06-04T00:32:38.2565715Z           "complete": false,
2026-06-04T00:32:38.2567005Z           "evidence": []
2026-06-04T00:32:38.2568207Z         },
2026-06-04T00:32:38.2569390Z         "int": {
2026-06-04T00:32:38.2570647Z           "complete": false,
2026-06-04T00:32:38.2571947Z           "evidence": []
2026-06-04T00:32:38.2573224Z         },
2026-06-04T00:32:38.2574349Z         "unit": {
2026-06-04T00:32:38.2575583Z           "complete": false,
2026-06-04T00:32:38.2576874Z           "evidence": []
2026-06-04T00:32:38.2578054Z         }
2026-06-04T00:32:38.2579198Z       }
2026-06-04T00:32:38.2580295Z     },
2026-06-04T00:32:38.2581436Z     {
2026-06-04T00:32:38.2582592Z       "id": "REQ-DOCS-3",
2026-06-04T00:32:38.2584475Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-04T00:32:38.2586170Z       "requiredStages": [],
2026-06-04T00:32:38.2587428Z       "stages": {
2026-06-04T00:32:38.2588679Z         "doc": {
2026-06-04T00:32:38.2590083Z           "complete": false,
2026-06-04T00:32:38.2591367Z           "evidence": []
2026-06-04T00:32:38.2592607Z         },
2026-06-04T00:32:38.2593693Z         "impl": {
2026-06-04T00:32:38.2594916Z           "complete": false,
2026-06-04T00:32:38.2596222Z           "evidence": []
2026-06-04T00:32:38.2597456Z         },
2026-06-04T00:32:38.2598534Z         "int": {
2026-06-04T00:32:38.2599835Z           "complete": false,
2026-06-04T00:32:38.2601121Z           "evidence": []
2026-06-04T00:32:38.2602326Z         },
2026-06-04T00:32:38.2603415Z         "unit": {
2026-06-04T00:32:38.2604717Z           "complete": false,
2026-06-04T00:32:38.2606002Z           "evidence": []
2026-06-04T00:32:38.2607207Z         }
2026-06-04T00:32:38.2608262Z       }
2026-06-04T00:32:38.2609398Z     },
2026-06-04T00:32:38.2610525Z     {
2026-06-04T00:32:38.2611707Z       "id": "REQ-DOCS-4",
2026-06-04T00:32:38.2613484Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-04T00:32:38.2615400Z       "requiredStages": [],
2026-06-04T00:32:38.2616639Z       "stages": {
2026-06-04T00:32:38.2617779Z         "doc": {
2026-06-04T00:32:38.2618949Z           "complete": false,
2026-06-04T00:32:38.2620482Z           "evidence": []
2026-06-04T00:32:38.2621691Z         },
2026-06-04T00:32:38.2622889Z         "impl": {
2026-06-04T00:32:38.2624047Z           "complete": false,
2026-06-04T00:32:38.2625333Z           "evidence": []
2026-06-04T00:32:38.2626505Z         },
2026-06-04T00:32:38.2627578Z         "int": {
2026-06-04T00:32:38.2628850Z           "complete": false,
2026-06-04T00:32:38.2630236Z           "evidence": []
2026-06-04T00:32:38.2631433Z         },
2026-06-04T00:32:38.2632518Z         "unit": {
2026-06-04T00:32:38.2633695Z           "complete": false,
2026-06-04T00:32:38.2634975Z           "evidence": []
2026-06-04T00:32:38.2636268Z         }
2026-06-04T00:32:38.2637516Z       }
2026-06-04T00:32:38.2638560Z     },
2026-06-04T00:32:38.2639709Z     {
2026-06-04T00:32:38.2640851Z       "id": "REQ-DOCS-5",
2026-06-04T00:32:38.2642619Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-04T00:32:38.2644497Z       "requiredStages": [],
2026-06-04T00:32:38.2645752Z       "stages": {
2026-06-04T00:32:38.2646882Z         "doc": {
2026-06-04T00:32:38.2648146Z           "complete": false,
2026-06-04T00:32:38.2649490Z           "evidence": []
2026-06-04T00:32:38.2650754Z         },
2026-06-04T00:32:38.2651853Z         "impl": {
2026-06-04T00:32:38.2653085Z           "complete": false,
2026-06-04T00:32:38.2654349Z           "evidence": []
2026-06-04T00:32:38.2655584Z         },
2026-06-04T00:32:38.2656656Z         "int": {
2026-06-04T00:32:38.2657827Z           "complete": false,
2026-06-04T00:32:38.2659260Z           "evidence": []
2026-06-04T00:32:38.2660494Z         },
2026-06-04T00:32:38.2661860Z         "unit": {
2026-06-04T00:32:38.2663068Z           "complete": false,
2026-06-04T00:32:38.2664487Z           "evidence": []
2026-06-04T00:32:38.2665729Z         }
2026-06-04T00:32:38.2666821Z       }
2026-06-04T00:32:38.2667941Z     },
2026-06-04T00:32:38.2669175Z     {
2026-06-04T00:32:38.2670278Z       "id": "REQ-EP-1",
2026-06-04T00:32:38.2671696Z       "title": "Day-one endpoint types; open type system",
2026-06-04T00:32:38.2673247Z       "requiredStages": [
2026-06-04T00:32:38.2674514Z         "impl",
2026-06-04T00:32:38.2675732Z         "unit"
2026-06-04T00:32:38.2676903Z       ],
2026-06-04T00:32:38.2677970Z       "stages": {
2026-06-04T00:32:38.2679210Z         "doc": {
2026-06-04T00:32:38.2680434Z           "complete": false,
2026-06-04T00:32:38.2681700Z           "evidence": []
2026-06-04T00:32:38.2682890Z         },
2026-06-04T00:32:38.2684050Z         "impl": {
2026-06-04T00:32:38.2685319Z           "complete": true,
2026-06-04T00:32:38.2686558Z           "evidence": [
2026-06-04T00:32:38.2687740Z             {
2026-06-04T00:32:38.2689215Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2690730Z               "line": 77
2026-06-04T00:32:38.2691948Z             },
2026-06-04T00:32:38.2693132Z             {
2026-06-04T00:32:38.2694420Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2695919Z               "line": 94
2026-06-04T00:32:38.2697156Z             }
2026-06-04T00:32:38.2698250Z           ]
2026-06-04T00:32:38.2699384Z         },
2026-06-04T00:32:38.2700481Z         "int": {
2026-06-04T00:32:38.2701647Z           "complete": false,
2026-06-04T00:32:38.2702974Z           "evidence": []
2026-06-04T00:32:38.2704192Z         },
2026-06-04T00:32:38.2705286Z         "unit": {
2026-06-04T00:32:38.2706451Z           "complete": true,
2026-06-04T00:32:38.2707736Z           "evidence": [
2026-06-04T00:32:38.2708950Z             {
2026-06-04T00:32:38.2710423Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2711963Z               "line": 161
2026-06-04T00:32:38.2713163Z             },
2026-06-04T00:32:38.2714317Z             {
2026-06-04T00:32:38.2715677Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2717182Z               "line": 178
2026-06-04T00:32:38.2718377Z             }
2026-06-04T00:32:38.2719551Z           ]
2026-06-04T00:32:38.2720624Z         }
2026-06-04T00:32:38.2721695Z       }
2026-06-04T00:32:38.2722815Z     },
2026-06-04T00:32:38.2723863Z     {
2026-06-04T00:32:38.2725041Z       "id": "REQ-EP-2",
2026-06-04T00:32:38.2726581Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-04T00:32:38.2728307Z       "requiredStages": [
2026-06-04T00:32:38.2729594Z         "impl",
2026-06-04T00:32:38.2730806Z         "unit"
2026-06-04T00:32:38.2731898Z       ],
2026-06-04T00:32:38.2732978Z       "stages": {
2026-06-04T00:32:38.2734106Z         "doc": {
2026-06-04T00:32:38.2735298Z           "complete": false,
2026-06-04T00:32:38.2736598Z           "evidence": []
2026-06-04T00:32:38.2737792Z         },
2026-06-04T00:32:38.2738866Z         "impl": {
2026-06-04T00:32:38.2740317Z           "complete": true,
2026-06-04T00:32:38.2741564Z           "evidence": [
2026-06-04T00:32:38.2742794Z             {
2026-06-04T00:32:38.2744086Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2745597Z               "line": 114
2026-06-04T00:32:38.2746780Z             },
2026-06-04T00:32:38.2747895Z             {
2026-06-04T00:32:38.2749319Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2750831Z               "line": 131
2026-06-04T00:32:38.2752038Z             },
2026-06-04T00:32:38.2753213Z             {
2026-06-04T00:32:38.2754548Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2756064Z               "line": 138
2026-06-04T00:32:38.2757237Z             }
2026-06-04T00:32:38.2758349Z           ]
2026-06-04T00:32:38.2759486Z         },
2026-06-04T00:32:38.2760619Z         "int": {
2026-06-04T00:32:38.2762102Z           "complete": false,
2026-06-04T00:32:38.2763397Z           "evidence": []
2026-06-04T00:32:38.2764799Z         },
2026-06-04T00:32:38.2765896Z         "unit": {
2026-06-04T00:32:38.2767138Z           "complete": true,
2026-06-04T00:32:38.2768541Z           "evidence": [
2026-06-04T00:32:38.2769872Z             {
2026-06-04T00:32:38.2771209Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2772719Z               "line": 193
2026-06-04T00:32:38.2773904Z             },
2026-06-04T00:32:38.2775056Z             {
2026-06-04T00:32:38.2776427Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2777922Z               "line": 211
2026-06-04T00:32:38.2779278Z             },
2026-06-04T00:32:38.2780455Z             {
2026-06-04T00:32:38.2781755Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T00:32:38.2783257Z               "line": 224
2026-06-04T00:32:38.2784460Z             }
2026-06-04T00:32:38.2785578Z           ]
2026-06-04T00:32:38.2786656Z         }
2026-06-04T00:32:38.2787704Z       }
2026-06-04T00:32:38.2788424Z     },
2026-06-04T00:32:38.2789183Z     {
2026-06-04T00:32:38.2789882Z       "id": "REQ-EP-3",
2026-06-04T00:32:38.2791645Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-04T00:32:38.2792353Z       "requiredStages": [
2026-06-04T00:32:38.2793001Z         "impl",
2026-06-04T00:32:38.2793642Z         "unit"
2026-06-04T00:32:38.2794269Z       ],
2026-06-04T00:32:38.2794914Z       "stages": {
2026-06-04T00:32:38.2795544Z         "doc": {
2026-06-04T00:32:38.2796230Z           "complete": false,
2026-06-04T00:32:38.2796887Z           "evidence": []
2026-06-04T00:32:38.2797514Z         },
2026-06-04T00:32:38.2798155Z         "impl": {
2026-06-04T00:32:38.2798823Z           "complete": true,
2026-06-04T00:32:38.2799575Z           "evidence": [
2026-06-04T00:32:38.2800213Z             {
2026-06-04T00:32:38.2801046Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2801712Z               "line": 31
2026-06-04T00:32:38.2802341Z             },
2026-06-04T00:32:38.2802983Z             {
2026-06-04T00:32:38.2803792Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2804447Z               "line": 49
2026-06-04T00:32:38.2805105Z             }
2026-06-04T00:32:38.2805737Z           ]
2026-06-04T00:32:38.2806359Z         },
2026-06-04T00:32:38.2806998Z         "int": {
2026-06-04T00:32:38.2807666Z           "complete": false,
2026-06-04T00:32:38.2808319Z           "evidence": []
2026-06-04T00:32:38.2808944Z         },
2026-06-04T00:32:38.2809631Z         "unit": {
2026-06-04T00:32:38.2810313Z           "complete": true,
2026-06-04T00:32:38.2810665Z           "evidence": [
2026-06-04T00:32:38.2811295Z             {
2026-06-04T00:32:38.2812101Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2812758Z               "line": 156
2026-06-04T00:32:38.2813390Z             },
2026-06-04T00:32:38.2814039Z             {
2026-06-04T00:32:38.2814845Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2815530Z               "line": 164
2026-06-04T00:32:38.2816160Z             },
2026-06-04T00:32:38.2816790Z             {
2026-06-04T00:32:38.2817600Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2818268Z               "line": 177
2026-06-04T00:32:38.2818900Z             },
2026-06-04T00:32:38.2819611Z             {
2026-06-04T00:32:38.2820420Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2821085Z               "line": 197
2026-06-04T00:32:38.2821707Z             },
2026-06-04T00:32:38.2822336Z             {
2026-06-04T00:32:38.2823142Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2823803Z               "line": 213
2026-06-04T00:32:38.2824436Z             },
2026-06-04T00:32:38.2825056Z             {
2026-06-04T00:32:38.2825861Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T00:32:38.2826729Z               "line": 227
2026-06-04T00:32:38.2827377Z             }
2026-06-04T00:32:38.2828138Z           ]
2026-06-04T00:32:38.2828774Z         }
2026-06-04T00:32:38.2829481Z       }
2026-06-04T00:32:38.2830114Z     },
2026-06-04T00:32:38.2830731Z     {
2026-06-04T00:32:38.2831396Z       "id": "REQ-EP-4",
2026-06-04T00:32:38.2832329Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-04T00:32:38.2833008Z       "requiredStages": [],
2026-06-04T00:32:38.2833657Z       "stages": {
2026-06-04T00:32:38.2834297Z         "doc": {
2026-06-04T00:32:38.2834973Z           "complete": false,
2026-06-04T00:32:38.2835642Z           "evidence": []
2026-06-04T00:32:38.2836267Z         },
2026-06-04T00:32:38.2836907Z         "impl": {
2026-06-04T00:32:38.2837587Z           "complete": false,
2026-06-04T00:32:38.2838237Z           "evidence": []
2026-06-04T00:32:38.2838864Z         },
2026-06-04T00:32:38.2839587Z         "int": {
2026-06-04T00:32:38.2840272Z           "complete": false,
2026-06-04T00:32:38.2840950Z           "evidence": []
2026-06-04T00:32:38.2841572Z         },
2026-06-04T00:32:38.2842215Z         "unit": {
2026-06-04T00:32:38.2842889Z           "complete": false,
2026-06-04T00:32:38.2843552Z           "evidence": []
2026-06-04T00:32:38.2844174Z         }
2026-06-04T00:32:38.2844792Z       }
2026-06-04T00:32:38.2845416Z     },
2026-06-04T00:32:38.2846031Z     {
2026-06-04T00:32:38.2846675Z       "id": "REQ-EP-5",
2026-06-04T00:32:38.2850111Z       "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-04T00:32:38.2850818Z       "requiredStages": [],
2026-06-04T00:32:38.2851461Z       "stages": {
2026-06-04T00:32:38.2852100Z         "doc": {
2026-06-04T00:32:38.2852768Z           "complete": false,
2026-06-04T00:32:38.2853437Z           "evidence": []
2026-06-04T00:32:38.2854082Z         },
2026-06-04T00:32:38.2854721Z         "impl": {
2026-06-04T00:32:38.2855404Z           "complete": false,
2026-06-04T00:32:38.2856085Z           "evidence": []
2026-06-04T00:32:38.2856706Z         },
2026-06-04T00:32:38.2857342Z         "int": {
2026-06-04T00:32:38.2858012Z           "complete": false,
2026-06-04T00:32:38.2858676Z           "evidence": []
2026-06-04T00:32:38.2859377Z         },
2026-06-04T00:32:38.2860001Z         "unit": {
2026-06-04T00:32:38.2860660Z           "complete": false,
2026-06-04T00:32:38.2861301Z           "evidence": []
2026-06-04T00:32:38.2861918Z         }
2026-06-04T00:32:38.2862523Z       }
2026-06-04T00:32:38.2863117Z     },
2026-06-04T00:32:38.2863718Z     {
2026-06-04T00:32:38.2864372Z       "id": "REQ-FRONT-1",
2026-06-04T00:32:38.2865395Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-04T00:32:38.2866059Z       "requiredStages": [],
2026-06-04T00:32:38.2866678Z       "stages": {
2026-06-04T00:32:38.2867310Z         "doc": {
2026-06-04T00:32:38.2867967Z           "complete": false,
2026-06-04T00:32:38.2868612Z           "evidence": []
2026-06-04T00:32:38.2869292Z         },
2026-06-04T00:32:38.2870256Z         "impl": {
2026-06-04T00:32:38.2870912Z           "complete": false,
2026-06-04T00:32:38.2871560Z           "evidence": []
2026-06-04T00:32:38.2872171Z         },
2026-06-04T00:32:38.2872789Z         "int": {
2026-06-04T00:32:38.2873440Z           "complete": false,
2026-06-04T00:32:38.2874082Z           "evidence": []
2026-06-04T00:32:38.2874695Z         },
2026-06-04T00:32:38.2875306Z         "unit": {
2026-06-04T00:32:38.2875966Z           "complete": false,
2026-06-04T00:32:38.2876604Z           "evidence": []
2026-06-04T00:32:38.2877212Z         }
2026-06-04T00:32:38.2877818Z       }
2026-06-04T00:32:38.2878424Z     },
2026-06-04T00:32:38.2879019Z     {
2026-06-04T00:32:38.2879950Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-04T00:32:38.2881166Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-04T00:32:38.2881874Z       "requiredStages": [
2026-06-04T00:32:38.2882621Z         "impl",
2026-06-04T00:32:38.2883262Z         "unit"
2026-06-04T00:32:38.2883893Z       ],
2026-06-04T00:32:38.2884536Z       "stages": {
2026-06-04T00:32:38.2885171Z         "doc": {
2026-06-04T00:32:38.2885847Z           "complete": false,
2026-06-04T00:32:38.2886493Z           "evidence": []
2026-06-04T00:32:38.2887119Z         },
2026-06-04T00:32:38.2887759Z         "impl": {
2026-06-04T00:32:38.2888431Z           "complete": true,
2026-06-04T00:32:38.2889215Z           "evidence": [
2026-06-04T00:32:38.2889844Z             {
2026-06-04T00:32:38.2890658Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.2891314Z               "line": 60
2026-06-04T00:32:38.2891936Z             },
2026-06-04T00:32:38.2892568Z             {
2026-06-04T00:32:38.2893344Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.2893996Z               "line": 18
2026-06-04T00:32:38.2894646Z             },
2026-06-04T00:32:38.2895275Z             {
2026-06-04T00:32:38.2896059Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.2896713Z               "line": 94
2026-06-04T00:32:38.2897336Z             }
2026-06-04T00:32:38.2897967Z           ]
2026-06-04T00:32:38.2898591Z         },
2026-06-04T00:32:38.2899297Z         "int": {
2026-06-04T00:32:38.2899982Z           "complete": false,
2026-06-04T00:32:38.2900633Z           "evidence": []
2026-06-04T00:32:38.2901279Z         },
2026-06-04T00:32:38.2901912Z         "unit": {
2026-06-04T00:32:38.2902578Z           "complete": true,
2026-06-04T00:32:38.2903226Z           "evidence": [
2026-06-04T00:32:38.2903840Z             {
2026-06-04T00:32:38.2904669Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.2905325Z               "line": 255
2026-06-04T00:32:38.2905947Z             },
2026-06-04T00:32:38.2906576Z             {
2026-06-04T00:32:38.2907387Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.2908007Z               "line": 152
2026-06-04T00:32:38.2908653Z             },
2026-06-04T00:32:38.2909353Z             {
2026-06-04T00:32:38.2910129Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.2910782Z               "line": 188
2026-06-04T00:32:38.2911401Z             }
2026-06-04T00:32:38.2912026Z           ]
2026-06-04T00:32:38.2912649Z         }
2026-06-04T00:32:38.2913261Z       }
2026-06-04T00:32:38.2913872Z     },
2026-06-04T00:32:38.2914482Z     {
2026-06-04T00:32:38.2915195Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-04T00:32:38.2916419Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-04T00:32:38.2917098Z       "requiredStages": [
2026-06-04T00:32:38.2917738Z         "impl",
2026-06-04T00:32:38.2918377Z         "unit"
2026-06-04T00:32:38.2918996Z       ],
2026-06-04T00:32:38.2919737Z       "stages": {
2026-06-04T00:32:38.2920361Z         "doc": {
2026-06-04T00:32:38.2921058Z           "complete": false,
2026-06-04T00:32:38.2921719Z           "evidence": []
2026-06-04T00:32:38.2922353Z         },
2026-06-04T00:32:38.2922991Z         "impl": {
2026-06-04T00:32:38.2923659Z           "complete": true,
2026-06-04T00:32:38.2924316Z           "evidence": [
2026-06-04T00:32:38.2924945Z             {
2026-06-04T00:32:38.2925738Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:32:38.2926397Z               "line": 164
2026-06-04T00:32:38.2927024Z             }
2026-06-04T00:32:38.2927644Z           ]
2026-06-04T00:32:38.2928268Z         },
2026-06-04T00:32:38.2928892Z         "int": {
2026-06-04T00:32:38.2929642Z           "complete": true,
2026-06-04T00:32:38.2930299Z           "evidence": [
2026-06-04T00:32:38.2930917Z             {
2026-06-04T00:32:38.2931685Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T00:32:38.2932335Z               "line": 44
2026-06-04T00:32:38.2932955Z             },
2026-06-04T00:32:38.2933581Z             {
2026-06-04T00:32:38.2934515Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T00:32:38.2935329Z               "line": 66
2026-06-04T00:32:38.2935977Z             }
2026-06-04T00:32:38.2936600Z           ]
2026-06-04T00:32:38.2937231Z         },
2026-06-04T00:32:38.2937864Z         "unit": {
2026-06-04T00:32:38.2938534Z           "complete": true,
2026-06-04T00:32:38.2939274Z           "evidence": [
2026-06-04T00:32:38.2939897Z             {
2026-06-04T00:32:38.2940673Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:32:38.2941334Z               "line": 181
2026-06-04T00:32:38.2941951Z             },
2026-06-04T00:32:38.2942584Z             {
2026-06-04T00:32:38.2943354Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:32:38.2944014Z               "line": 233
2026-06-04T00:32:38.2944648Z             },
2026-06-04T00:32:38.2945268Z             {
2026-06-04T00:32:38.2946041Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T00:32:38.2946709Z               "line": 261
2026-06-04T00:32:38.2947329Z             }
2026-06-04T00:32:38.2947954Z           ]
2026-06-04T00:32:38.2948582Z         }
2026-06-04T00:32:38.2949293Z       }
2026-06-04T00:32:38.2949914Z     },
2026-06-04T00:32:38.2950531Z     {
2026-06-04T00:32:38.2951316Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-04T00:32:38.2953523Z       "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-04T00:32:38.2954204Z       "requiredStages": [
2026-06-04T00:32:38.2954854Z         "impl",
2026-06-04T00:32:38.2955479Z         "unit",
2026-06-04T00:32:38.2956109Z         "int"
2026-06-04T00:32:38.2956730Z       ],
2026-06-04T00:32:38.2957363Z       "stages": {
2026-06-04T00:32:38.2957996Z         "doc": {
2026-06-04T00:32:38.2958660Z           "complete": false,
2026-06-04T00:32:38.2959400Z           "evidence": []
2026-06-04T00:32:38.2960026Z         },
2026-06-04T00:32:38.2960680Z         "impl": {
2026-06-04T00:32:38.2961350Z           "complete": true,
2026-06-04T00:32:38.2962019Z           "evidence": [
2026-06-04T00:32:38.2962644Z             {
2026-06-04T00:32:38.2963462Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2964116Z               "line": 133
2026-06-04T00:32:38.2964748Z             },
2026-06-04T00:32:38.2965375Z             {
2026-06-04T00:32:38.2966178Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2966831Z               "line": 152
2026-06-04T00:32:38.2967457Z             },
2026-06-04T00:32:38.2968074Z             {
2026-06-04T00:32:38.2968845Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.2969568Z               "line": 79
2026-06-04T00:32:38.2970202Z             },
2026-06-04T00:32:38.2970830Z             {
2026-06-04T00:32:38.2971574Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.2972227Z               "line": 51
2026-06-04T00:32:38.2972880Z             },
2026-06-04T00:32:38.2973502Z             {
2026-06-04T00:32:38.2974272Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.2974931Z               "line": 93
2026-06-04T00:32:38.2975561Z             },
2026-06-04T00:32:38.2976189Z             {
2026-06-04T00:32:38.2976981Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.2977635Z               "line": 27
2026-06-04T00:32:38.2978269Z             },
2026-06-04T00:32:38.2978897Z             {
2026-06-04T00:32:38.2979788Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.2980446Z               "line": 79
2026-06-04T00:32:38.2981078Z             },
2026-06-04T00:32:38.2981716Z             {
2026-06-04T00:32:38.2982503Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.2983158Z               "line": 102
2026-06-04T00:32:38.2983783Z             },
2026-06-04T00:32:38.2984415Z             {
2026-06-04T00:32:38.2985379Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.2986063Z               "line": 102
2026-06-04T00:32:38.2986808Z             }
2026-06-04T00:32:38.2987447Z           ]
2026-06-04T00:32:38.2988070Z         },
2026-06-04T00:32:38.2988706Z         "int": {
2026-06-04T00:32:38.2989455Z           "complete": true,
2026-06-04T00:32:38.2990125Z           "evidence": [
2026-06-04T00:32:38.2990754Z             {
2026-06-04T00:32:38.2991581Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T00:32:38.2992236Z               "line": 35
2026-06-04T00:32:38.2992866Z             }
2026-06-04T00:32:38.2993485Z           ]
2026-06-04T00:32:38.2994117Z         },
2026-06-04T00:32:38.2994744Z         "unit": {
2026-06-04T00:32:38.2995420Z           "complete": true,
2026-06-04T00:32:38.2996070Z           "evidence": [
2026-06-04T00:32:38.2996688Z             {
2026-06-04T00:32:38.2997497Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.2998156Z               "line": 467
2026-06-04T00:32:38.2998792Z             },
2026-06-04T00:32:38.2999497Z             {
2026-06-04T00:32:38.3000282Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3000953Z               "line": 212
2026-06-04T00:32:38.3001596Z             },
2026-06-04T00:32:38.3002213Z             {
2026-06-04T00:32:38.3003017Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.3003671Z               "line": 124
2026-06-04T00:32:38.3004299Z             },
2026-06-04T00:32:38.3004942Z             {
2026-06-04T00:32:38.3005734Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.3006401Z               "line": 136
2026-06-04T00:32:38.3007029Z             },
2026-06-04T00:32:38.3007646Z             {
2026-06-04T00:32:38.3008451Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.3009229Z               "line": 146
2026-06-04T00:32:38.3009865Z             },
2026-06-04T00:32:38.3010492Z             {
2026-06-04T00:32:38.3011296Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.3011961Z               "line": 159
2026-06-04T00:32:38.3012606Z             },
2026-06-04T00:32:38.3013218Z             {
2026-06-04T00:32:38.3014016Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T00:32:38.3014676Z               "line": 171
2026-06-04T00:32:38.3015308Z             },
2026-06-04T00:32:38.3015935Z             {
2026-06-04T00:32:38.3016790Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.3017477Z               "line": 201
2026-06-04T00:32:38.3018107Z             }
2026-06-04T00:32:38.3018730Z           ]
2026-06-04T00:32:38.3019446Z         }
2026-06-04T00:32:38.3020075Z       }
2026-06-04T00:32:38.3020703Z     },
2026-06-04T00:32:38.3021321Z     {
2026-06-04T00:32:38.3022110Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-04T00:32:38.3025401Z       "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-04T00:32:38.3026100Z       "requiredStages": [],
2026-06-04T00:32:38.3026739Z       "stages": {
2026-06-04T00:32:38.3027377Z         "doc": {
2026-06-04T00:32:38.3028049Z           "complete": false,
2026-06-04T00:32:38.3028709Z           "evidence": []
2026-06-04T00:32:38.3029413Z         },
2026-06-04T00:32:38.3030050Z         "impl": {
2026-06-04T00:32:38.3030733Z           "complete": false,
2026-06-04T00:32:38.3031394Z           "evidence": []
2026-06-04T00:32:38.3032011Z         },
2026-06-04T00:32:38.3032643Z         "int": {
2026-06-04T00:32:38.3033312Z           "complete": false,
2026-06-04T00:32:38.3033975Z           "evidence": []
2026-06-04T00:32:38.3034608Z         },
2026-06-04T00:32:38.3035237Z         "unit": {
2026-06-04T00:32:38.3035916Z           "complete": false,
2026-06-04T00:32:38.3036575Z           "evidence": []
2026-06-04T00:32:38.3037349Z         }
2026-06-04T00:32:38.3037994Z       }
2026-06-04T00:32:38.3038617Z     },
2026-06-04T00:32:38.3039426Z     {
2026-06-04T00:32:38.3040168Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-04T00:32:38.3041262Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-04T00:32:38.3041952Z       "requiredStages": [
2026-06-04T00:32:38.3042588Z         "impl",
2026-06-04T00:32:38.3043229Z         "unit"
2026-06-04T00:32:38.3043857Z       ],
2026-06-04T00:32:38.3044494Z       "stages": {
2026-06-04T00:32:38.3045128Z         "doc": {
2026-06-04T00:32:38.3045804Z           "complete": false,
2026-06-04T00:32:38.3046457Z           "evidence": []
2026-06-04T00:32:38.3047089Z         },
2026-06-04T00:32:38.3047716Z         "impl": {
2026-06-04T00:32:38.3048385Z           "complete": true,
2026-06-04T00:32:38.3049152Z           "evidence": [
2026-06-04T00:32:38.3049791Z             {
2026-06-04T00:32:38.3050580Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3051252Z               "line": 40
2026-06-04T00:32:38.3051873Z             },
2026-06-04T00:32:38.3052520Z             {
2026-06-04T00:32:38.3053292Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3053943Z               "line": 88
2026-06-04T00:32:38.3054575Z             },
2026-06-04T00:32:38.3055197Z             {
2026-06-04T00:32:38.3055972Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3056620Z               "line": 133
2026-06-04T00:32:38.3057247Z             },
2026-06-04T00:32:38.3057877Z             {
2026-06-04T00:32:38.3058643Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3059373Z               "line": 215
2026-06-04T00:32:38.3060007Z             }
2026-06-04T00:32:38.3060629Z           ]
2026-06-04T00:32:38.3061254Z         },
2026-06-04T00:32:38.3061876Z         "int": {
2026-06-04T00:32:38.3062545Z           "complete": false,
2026-06-04T00:32:38.3063203Z           "evidence": []
2026-06-04T00:32:38.3063831Z         },
2026-06-04T00:32:38.3064464Z         "unit": {
2026-06-04T00:32:38.3065148Z           "complete": true,
2026-06-04T00:32:38.3065792Z           "evidence": [
2026-06-04T00:32:38.3066418Z             {
2026-06-04T00:32:38.3067185Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3067846Z               "line": 250
2026-06-04T00:32:38.3068481Z             },
2026-06-04T00:32:38.3069225Z             {
2026-06-04T00:32:38.3070003Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3070971Z               "line": 296
2026-06-04T00:32:38.3071629Z             },
2026-06-04T00:32:38.3072264Z             {
2026-06-04T00:32:38.3073043Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3073704Z               "line": 337
2026-06-04T00:32:38.3074335Z             },
2026-06-04T00:32:38.3074956Z             {
2026-06-04T00:32:38.3075734Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3076408Z               "line": 356
2026-06-04T00:32:38.3077043Z             }
2026-06-04T00:32:38.3077677Z           ]
2026-06-04T00:32:38.3078302Z         }
2026-06-04T00:32:38.3078936Z       }
2026-06-04T00:32:38.3079622Z     },
2026-06-04T00:32:38.3079936Z     {
2026-06-04T00:32:38.3080728Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-04T00:32:38.3081549Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-04T00:32:38.3082226Z       "requiredStages": [
2026-06-04T00:32:38.3082862Z         "impl",
2026-06-04T00:32:38.3083489Z         "unit"
2026-06-04T00:32:38.3084112Z       ],
2026-06-04T00:32:38.3084753Z       "stages": {
2026-06-04T00:32:38.3085396Z         "doc": {
2026-06-04T00:32:38.3086069Z           "complete": false,
2026-06-04T00:32:38.3086716Z           "evidence": []
2026-06-04T00:32:38.3087339Z         },
2026-06-04T00:32:38.3087978Z         "impl": {
2026-06-04T00:32:38.3088639Z           "complete": true,
2026-06-04T00:32:38.3089376Z           "evidence": [
2026-06-04T00:32:38.3090157Z             {
2026-06-04T00:32:38.3090958Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3091741Z               "line": 101
2026-06-04T00:32:38.3092365Z             },
2026-06-04T00:32:38.3092995Z             {
2026-06-04T00:32:38.3093771Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3094419Z               "line": 126
2026-06-04T00:32:38.3095055Z             }
2026-06-04T00:32:38.3095671Z           ]
2026-06-04T00:32:38.3096292Z         },
2026-06-04T00:32:38.3096925Z         "int": {
2026-06-04T00:32:38.3097587Z           "complete": false,
2026-06-04T00:32:38.3098244Z           "evidence": []
2026-06-04T00:32:38.3098864Z         },
2026-06-04T00:32:38.3099588Z         "unit": {
2026-06-04T00:32:38.3100269Z           "complete": true,
2026-06-04T00:32:38.3100916Z           "evidence": [
2026-06-04T00:32:38.3101556Z             {
2026-06-04T00:32:38.3102329Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3102991Z               "line": 271
2026-06-04T00:32:38.3103621Z             },
2026-06-04T00:32:38.3104240Z             {
2026-06-04T00:32:38.3105066Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.3105725Z               "line": 315
2026-06-04T00:32:38.3106436Z             }
2026-06-04T00:32:38.3107079Z           ]
2026-06-04T00:32:38.3107703Z         }
2026-06-04T00:32:38.3108321Z       }
2026-06-04T00:32:38.3108945Z     },
2026-06-04T00:32:38.3109620Z     {
2026-06-04T00:32:38.3110115Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-04T00:32:38.3111357Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-04T00:32:38.3112031Z       "requiredStages": [
2026-06-04T00:32:38.3112670Z         "impl",
2026-06-04T00:32:38.3113303Z         "unit"
2026-06-04T00:32:38.3113932Z       ],
2026-06-04T00:32:38.3114573Z       "stages": {
2026-06-04T00:32:38.3115203Z         "doc": {
2026-06-04T00:32:38.3115891Z           "complete": false,
2026-06-04T00:32:38.3116563Z           "evidence": []
2026-06-04T00:32:38.3117180Z         },
2026-06-04T00:32:38.3117828Z         "impl": {
2026-06-04T00:32:38.3118487Z           "complete": true,
2026-06-04T00:32:38.3119259Z           "evidence": [
2026-06-04T00:32:38.3119899Z             {
2026-06-04T00:32:38.3120674Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3121329Z               "line": 21
2026-06-04T00:32:38.3121966Z             },
2026-06-04T00:32:38.3122599Z             {
2026-06-04T00:32:38.3123380Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3124037Z               "line": 152
2026-06-04T00:32:38.3124664Z             }
2026-06-04T00:32:38.3125286Z           ]
2026-06-04T00:32:38.3125898Z         },
2026-06-04T00:32:38.3126524Z         "int": {
2026-06-04T00:32:38.3127188Z           "complete": false,
2026-06-04T00:32:38.3127847Z           "evidence": []
2026-06-04T00:32:38.3128471Z         },
2026-06-04T00:32:38.3129177Z         "unit": {
2026-06-04T00:32:38.3129863Z           "complete": true,
2026-06-04T00:32:38.3130518Z           "evidence": [
2026-06-04T00:32:38.3131149Z             {
2026-06-04T00:32:38.3131929Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3132530Z               "line": 169
2026-06-04T00:32:38.3133579Z             },
2026-06-04T00:32:38.3134245Z             {
2026-06-04T00:32:38.3135044Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3135709Z               "line": 176
2026-06-04T00:32:38.3136343Z             },
2026-06-04T00:32:38.3136973Z             {
2026-06-04T00:32:38.3137758Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3138414Z               "line": 185
2026-06-04T00:32:38.3139184Z             },
2026-06-04T00:32:38.3139823Z             {
2026-06-04T00:32:38.3140600Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3141257Z               "line": 194
2026-06-04T00:32:38.3141884Z             },
2026-06-04T00:32:38.3142682Z             {
2026-06-04T00:32:38.3143497Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3144275Z               "line": 203
2026-06-04T00:32:38.3144921Z             },
2026-06-04T00:32:38.3145555Z             {
2026-06-04T00:32:38.3146346Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T00:32:38.3147010Z               "line": 212
2026-06-04T00:32:38.3147634Z             },
2026-06-04T00:32:38.3148266Z             {
2026-06-04T00:32:38.3149118Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.3149778Z               "line": 132
2026-06-04T00:32:38.3150410Z             },
2026-06-04T00:32:38.3151052Z             {
2026-06-04T00:32:38.3151836Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3152495Z               "line": 211
2026-06-04T00:32:38.3153125Z             }
2026-06-04T00:32:38.3153754Z           ]
2026-06-04T00:32:38.3154388Z         }
2026-06-04T00:32:38.3155005Z       }
2026-06-04T00:32:38.3155642Z     },
2026-06-04T00:32:38.3156258Z     {
2026-06-04T00:32:38.3157047Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-04T00:32:38.3158001Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-04T00:32:38.3158673Z       "requiredStages": [
2026-06-04T00:32:38.3159409Z         "impl",
2026-06-04T00:32:38.3160057Z         "unit"
2026-06-04T00:32:38.3160681Z       ],
2026-06-04T00:32:38.3161331Z       "stages": {
2026-06-04T00:32:38.3161968Z         "doc": {
2026-06-04T00:32:38.3162645Z           "complete": false,
2026-06-04T00:32:38.3163304Z           "evidence": []
2026-06-04T00:32:38.3163925Z         },
2026-06-04T00:32:38.3164562Z         "impl": {
2026-06-04T00:32:38.3165233Z           "complete": true,
2026-06-04T00:32:38.3165873Z           "evidence": [
2026-06-04T00:32:38.3166511Z             {
2026-06-04T00:32:38.3167256Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.3167909Z               "line": 25
2026-06-04T00:32:38.3168554Z             },
2026-06-04T00:32:38.3169277Z             {
2026-06-04T00:32:38.3170064Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.3170734Z               "line": 13
2026-06-04T00:32:38.3171353Z             },
2026-06-04T00:32:38.3171975Z             {
2026-06-04T00:32:38.3172738Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.3173387Z               "line": 78
2026-06-04T00:32:38.3174016Z             }
2026-06-04T00:32:38.3174643Z           ]
2026-06-04T00:32:38.3175272Z         },
2026-06-04T00:32:38.3175899Z         "int": {
2026-06-04T00:32:38.3176574Z           "complete": false,
2026-06-04T00:32:38.3177226Z           "evidence": []
2026-06-04T00:32:38.3177844Z         },
2026-06-04T00:32:38.3178485Z         "unit": {
2026-06-04T00:32:38.3179266Z           "complete": true,
2026-06-04T00:32:38.3179916Z           "evidence": [
2026-06-04T00:32:38.3180543Z             {
2026-06-04T00:32:38.3181293Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.3181965Z               "line": 180
2026-06-04T00:32:38.3182592Z             },
2026-06-04T00:32:38.3183225Z             {
2026-06-04T00:32:38.3183987Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.3184646Z               "line": 205
2026-06-04T00:32:38.3185270Z             },
2026-06-04T00:32:38.3185896Z             {
2026-06-04T00:32:38.3186662Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T00:32:38.3187315Z               "line": 96
2026-06-04T00:32:38.3187941Z             }
2026-06-04T00:32:38.3188594Z           ]
2026-06-04T00:32:38.3189302Z         }
2026-06-04T00:32:38.3189943Z       }
2026-06-04T00:32:38.3190556Z     },
2026-06-04T00:32:38.3191169Z     {
2026-06-04T00:32:38.3191921Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-04T00:32:38.3192923Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-04T00:32:38.3193599Z       "requiredStages": [
2026-06-04T00:32:38.3194228Z         "impl",
2026-06-04T00:32:38.3195012Z         "unit"
2026-06-04T00:32:38.3195645Z       ],
2026-06-04T00:32:38.3196295Z       "stages": {
2026-06-04T00:32:38.3197031Z         "doc": {
2026-06-04T00:32:38.3197701Z           "complete": false,
2026-06-04T00:32:38.3198354Z           "evidence": []
2026-06-04T00:32:38.3198984Z         },
2026-06-04T00:32:38.3199722Z         "impl": {
2026-06-04T00:32:38.3200400Z           "complete": true,
2026-06-04T00:32:38.3201042Z           "evidence": [
2026-06-04T00:32:38.3201665Z             {
2026-06-04T00:32:38.3202442Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3203087Z               "line": 48
2026-06-04T00:32:38.3203713Z             },
2026-06-04T00:32:38.3204337Z             {
2026-06-04T00:32:38.3205113Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3205773Z               "line": 55
2026-06-04T00:32:38.3206390Z             },
2026-06-04T00:32:38.3207013Z             {
2026-06-04T00:32:38.3207805Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3208454Z               "line": 74
2026-06-04T00:32:38.3209214Z             },
2026-06-04T00:32:38.3209838Z             {
2026-06-04T00:32:38.3210628Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3211282Z               "line": 91
2026-06-04T00:32:38.3211899Z             }
2026-06-04T00:32:38.3212521Z           ]
2026-06-04T00:32:38.3213150Z         },
2026-06-04T00:32:38.3213775Z         "int": {
2026-06-04T00:32:38.3214448Z           "complete": false,
2026-06-04T00:32:38.3215091Z           "evidence": []
2026-06-04T00:32:38.3215716Z         },
2026-06-04T00:32:38.3216353Z         "unit": {
2026-06-04T00:32:38.3217007Z           "complete": true,
2026-06-04T00:32:38.3217652Z           "evidence": [
2026-06-04T00:32:38.3218277Z             {
2026-06-04T00:32:38.3219121Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3219787Z               "line": 149
2026-06-04T00:32:38.3220410Z             },
2026-06-04T00:32:38.3221051Z             {
2026-06-04T00:32:38.3221837Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3222511Z               "line": 163
2026-06-04T00:32:38.3223141Z             },
2026-06-04T00:32:38.3223768Z             {
2026-06-04T00:32:38.3224540Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3225192Z               "line": 173
2026-06-04T00:32:38.3225811Z             },
2026-06-04T00:32:38.3226435Z             {
2026-06-04T00:32:38.3227213Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3227848Z               "line": 191
2026-06-04T00:32:38.3228464Z             },
2026-06-04T00:32:38.3229140Z             {
2026-06-04T00:32:38.3229923Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.3230569Z               "line": 204
2026-06-04T00:32:38.3231186Z             }
2026-06-04T00:32:38.3231816Z           ]
2026-06-04T00:32:38.3232443Z         }
2026-06-04T00:32:38.3233053Z       }
2026-06-04T00:32:38.3233685Z     },
2026-06-04T00:32:38.3234291Z     {
2026-06-04T00:32:38.3235075Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-04T00:32:38.3236194Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-04T00:32:38.3236866Z       "requiredStages": [
2026-06-04T00:32:38.3237499Z         "impl",
2026-06-04T00:32:38.3238134Z         "unit"
2026-06-04T00:32:38.3238749Z       ],
2026-06-04T00:32:38.3239481Z       "stages": {
2026-06-04T00:32:38.3240114Z         "doc": {
2026-06-04T00:32:38.3240792Z           "complete": false,
2026-06-04T00:32:38.3241442Z           "evidence": []
2026-06-04T00:32:38.3242061Z         },
2026-06-04T00:32:38.3242692Z         "impl": {
2026-06-04T00:32:38.3243351Z           "complete": true,
2026-06-04T00:32:38.3244011Z           "evidence": [
2026-06-04T00:32:38.3244633Z             {
2026-06-04T00:32:38.3245425Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.3246077Z               "line": 264
2026-06-04T00:32:38.3246865Z             },
2026-06-04T00:32:38.3247442Z             {
2026-06-04T00:32:38.3248795Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3249576Z               "line": 26
2026-06-04T00:32:38.3250218Z             }
2026-06-04T00:32:38.3250844Z           ]
2026-06-04T00:32:38.3251458Z         },
2026-06-04T00:32:38.3252083Z         "int": {
2026-06-04T00:32:38.3252757Z           "complete": false,
2026-06-04T00:32:38.3253404Z           "evidence": []
2026-06-04T00:32:38.3254028Z         },
2026-06-04T00:32:38.3254658Z         "unit": {
2026-06-04T00:32:38.3255327Z           "complete": true,
2026-06-04T00:32:38.3255974Z           "evidence": [
2026-06-04T00:32:38.3256591Z             {
2026-06-04T00:32:38.3257370Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3258028Z               "line": 138
2026-06-04T00:32:38.3258651Z             },
2026-06-04T00:32:38.3259359Z             {
2026-06-04T00:32:38.3260157Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3260812Z               "line": 181
2026-06-04T00:32:38.3261446Z             }
2026-06-04T00:32:38.3262060Z           ]
2026-06-04T00:32:38.3262681Z         }
2026-06-04T00:32:38.3263295Z       }
2026-06-04T00:32:38.3263917Z     },
2026-06-04T00:32:38.3264541Z     {
2026-06-04T00:32:38.3265315Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-04T00:32:38.3266268Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-04T00:32:38.3266948Z       "requiredStages": [
2026-06-04T00:32:38.3267579Z         "impl",
2026-06-04T00:32:38.3268211Z         "unit"
2026-06-04T00:32:38.3268828Z       ],
2026-06-04T00:32:38.3269542Z       "stages": {
2026-06-04T00:32:38.3270171Z         "doc": {
2026-06-04T00:32:38.3270836Z           "complete": false,
2026-06-04T00:32:38.3271486Z           "evidence": []
2026-06-04T00:32:38.3272105Z         },
2026-06-04T00:32:38.3272737Z         "impl": {
2026-06-04T00:32:38.3273398Z           "complete": true,
2026-06-04T00:32:38.3274054Z           "evidence": [
2026-06-04T00:32:38.3274677Z             {
2026-06-04T00:32:38.3275489Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3276143Z               "line": 36
2026-06-04T00:32:38.3276764Z             },
2026-06-04T00:32:38.3277374Z             {
2026-06-04T00:32:38.3278166Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3278816Z               "line": 68
2026-06-04T00:32:38.3279511Z             }
2026-06-04T00:32:38.3280147Z           ]
2026-06-04T00:32:38.3280769Z         },
2026-06-04T00:32:38.3281395Z         "int": {
2026-06-04T00:32:38.3282062Z           "complete": false,
2026-06-04T00:32:38.3282708Z           "evidence": []
2026-06-04T00:32:38.3283328Z         },
2026-06-04T00:32:38.3283960Z         "unit": {
2026-06-04T00:32:38.3284746Z           "complete": true,
2026-06-04T00:32:38.3285411Z           "evidence": [
2026-06-04T00:32:38.3286041Z             {
2026-06-04T00:32:38.3286852Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3287509Z               "line": 143
2026-06-04T00:32:38.3288144Z             },
2026-06-04T00:32:38.3288770Z             {
2026-06-04T00:32:38.3289659Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3290312Z               "line": 160
2026-06-04T00:32:38.3290940Z             },
2026-06-04T00:32:38.3291555Z             {
2026-06-04T00:32:38.3292361Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3293015Z               "line": 168
2026-06-04T00:32:38.3293634Z             }
2026-06-04T00:32:38.3294266Z           ]
2026-06-04T00:32:38.3294891Z         }
2026-06-04T00:32:38.3295508Z       }
2026-06-04T00:32:38.3296122Z     },
2026-06-04T00:32:38.3296732Z     {
2026-06-04T00:32:38.3297517Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-04T00:32:38.3298567Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-04T00:32:38.3299672Z       "requiredStages": [
2026-06-04T00:32:38.3300499Z         "impl",
2026-06-04T00:32:38.3301179Z         "unit"
2026-06-04T00:32:38.3301926Z       ],
2026-06-04T00:32:38.3302579Z       "stages": {
2026-06-04T00:32:38.3303211Z         "doc": {
2026-06-04T00:32:38.3303902Z           "complete": false,
2026-06-04T00:32:38.3304603Z           "evidence": []
2026-06-04T00:32:38.3305232Z         },
2026-06-04T00:32:38.3305868Z         "impl": {
2026-06-04T00:32:38.3306531Z           "complete": true,
2026-06-04T00:32:38.3307192Z           "evidence": [
2026-06-04T00:32:38.3307815Z             {
2026-06-04T00:32:38.3308647Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3309473Z               "line": 107
2026-06-04T00:32:38.3310119Z             }
2026-06-04T00:32:38.3310740Z           ]
2026-06-04T00:32:38.3311361Z         },
2026-06-04T00:32:38.3311989Z         "int": {
2026-06-04T00:32:38.3312661Z           "complete": false,
2026-06-04T00:32:38.3313313Z           "evidence": []
2026-06-04T00:32:38.3313951Z         },
2026-06-04T00:32:38.3314591Z         "unit": {
2026-06-04T00:32:38.3315261Z           "complete": true,
2026-06-04T00:32:38.3315919Z           "evidence": [
2026-06-04T00:32:38.3316548Z             {
2026-06-04T00:32:38.3317351Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3318019Z               "line": 184
2026-06-04T00:32:38.3318653Z             },
2026-06-04T00:32:38.3319364Z             {
2026-06-04T00:32:38.3320176Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3320830Z               "line": 193
2026-06-04T00:32:38.3321460Z             },
2026-06-04T00:32:38.3322086Z             {
2026-06-04T00:32:38.3322877Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3323530Z               "line": 201
2026-06-04T00:32:38.3324151Z             },
2026-06-04T00:32:38.3324774Z             {
2026-06-04T00:32:38.3325571Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3326231Z               "line": 210
2026-06-04T00:32:38.3326854Z             },
2026-06-04T00:32:38.3327472Z             {
2026-06-04T00:32:38.3328275Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T00:32:38.3328927Z               "line": 219
2026-06-04T00:32:38.3329632Z             }
2026-06-04T00:32:38.3330258Z           ]
2026-06-04T00:32:38.3330875Z         }
2026-06-04T00:32:38.3331490Z       }
2026-06-04T00:32:38.3332108Z     },
2026-06-04T00:32:38.3332732Z     {
2026-06-04T00:32:38.3333485Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-04T00:32:38.3334462Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-04T00:32:38.3335142Z       "requiredStages": [
2026-06-04T00:32:38.3335777Z         "impl",
2026-06-04T00:32:38.3336407Z         "unit"
2026-06-04T00:32:38.3337017Z       ],
2026-06-04T00:32:38.3337656Z       "stages": {
2026-06-04T00:32:38.3338283Z         "doc": {
2026-06-04T00:32:38.3338954Z           "complete": false,
2026-06-04T00:32:38.3339679Z           "evidence": []
2026-06-04T00:32:38.3340004Z         },
2026-06-04T00:32:38.3340649Z         "impl": {
2026-06-04T00:32:38.3341340Z           "complete": true,
2026-06-04T00:32:38.3341992Z           "evidence": [
2026-06-04T00:32:38.3342619Z             {
2026-06-04T00:32:38.3343361Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.3344006Z               "line": 14
2026-06-04T00:32:38.3344644Z             },
2026-06-04T00:32:38.3345262Z             {
2026-06-04T00:32:38.3346008Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.3346656Z               "line": 62
2026-06-04T00:32:38.3347275Z             }
2026-06-04T00:32:38.3347895Z           ]
2026-06-04T00:32:38.3348523Z         },
2026-06-04T00:32:38.3349232Z         "int": {
2026-06-04T00:32:38.3349910Z           "complete": false,
2026-06-04T00:32:38.3350557Z           "evidence": []
2026-06-04T00:32:38.3351182Z         },
2026-06-04T00:32:38.3351822Z         "unit": {
2026-06-04T00:32:38.3352671Z           "complete": true,
2026-06-04T00:32:38.3353350Z           "evidence": [
2026-06-04T00:32:38.3353972Z             {
2026-06-04T00:32:38.3354829Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.3355493Z               "line": 160
2026-06-04T00:32:38.3356109Z             },
2026-06-04T00:32:38.3356748Z             {
2026-06-04T00:32:38.3357501Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.3358155Z               "line": 197
2026-06-04T00:32:38.3358780Z             },
2026-06-04T00:32:38.3359470Z             {
2026-06-04T00:32:38.3360231Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.3360894Z               "line": 213
2026-06-04T00:32:38.3361513Z             }
2026-06-04T00:32:38.3362141Z           ]
2026-06-04T00:32:38.3362770Z         }
2026-06-04T00:32:38.3363379Z       }
2026-06-04T00:32:38.3363992Z     },
2026-06-04T00:32:38.3364610Z     {
2026-06-04T00:32:38.3365416Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-04T00:32:38.3366676Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-04T00:32:38.3367368Z       "requiredStages": [
2026-06-04T00:32:38.3368011Z         "impl",
2026-06-04T00:32:38.3368638Z         "unit"
2026-06-04T00:32:38.3369363Z       ],
2026-06-04T00:32:38.3370007Z       "stages": {
2026-06-04T00:32:38.3370633Z         "doc": {
2026-06-04T00:32:38.3371307Z           "complete": false,
2026-06-04T00:32:38.3371972Z           "evidence": []
2026-06-04T00:32:38.3372588Z         },
2026-06-04T00:32:38.3373221Z         "impl": {
2026-06-04T00:32:38.3373877Z           "complete": true,
2026-06-04T00:32:38.3374529Z           "evidence": [
2026-06-04T00:32:38.3375150Z             {
2026-06-04T00:32:38.3375918Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3376562Z               "line": 76
2026-06-04T00:32:38.3377195Z             },
2026-06-04T00:32:38.3377803Z             {
2026-06-04T00:32:38.3378570Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3379309Z               "line": 163
2026-06-04T00:32:38.3379954Z             },
2026-06-04T00:32:38.3380588Z             {
2026-06-04T00:32:38.3381356Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3382010Z               "line": 229
2026-06-04T00:32:38.3382635Z             },
2026-06-04T00:32:38.3383260Z             {
2026-06-04T00:32:38.3384030Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3384676Z               "line": 265
2026-06-04T00:32:38.3385432Z             }
2026-06-04T00:32:38.3386062Z           ]
2026-06-04T00:32:38.3386678Z         },
2026-06-04T00:32:38.3387305Z         "int": {
2026-06-04T00:32:38.3387978Z           "complete": false,
2026-06-04T00:32:38.3388638Z           "evidence": []
2026-06-04T00:32:38.3389342Z         },
2026-06-04T00:32:38.3389972Z         "unit": {
2026-06-04T00:32:38.3390641Z           "complete": true,
2026-06-04T00:32:38.3391291Z           "evidence": [
2026-06-04T00:32:38.3391921Z             {
2026-06-04T00:32:38.3392700Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3393360Z               "line": 310
2026-06-04T00:32:38.3393988Z             },
2026-06-04T00:32:38.3394615Z             {
2026-06-04T00:32:38.3395389Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3396041Z               "line": 318
2026-06-04T00:32:38.3396672Z             },
2026-06-04T00:32:38.3397287Z             {
2026-06-04T00:32:38.3398057Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3398707Z               "line": 341
2026-06-04T00:32:38.3399413Z             },
2026-06-04T00:32:38.3400038Z             {
2026-06-04T00:32:38.3400800Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3401454Z               "line": 378
2026-06-04T00:32:38.3402079Z             },
2026-06-04T00:32:38.3402698Z             {
2026-06-04T00:32:38.3403470Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3404268Z               "line": 389
2026-06-04T00:32:38.3404928Z             },
2026-06-04T00:32:38.3405672Z             {
2026-06-04T00:32:38.3406445Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3407109Z               "line": 401
2026-06-04T00:32:38.3407733Z             },
2026-06-04T00:32:38.3408364Z             {
2026-06-04T00:32:38.3409282Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T00:32:38.3409947Z               "line": 413
2026-06-04T00:32:38.3410580Z             }
2026-06-04T00:32:38.3411212Z           ]
2026-06-04T00:32:38.3411826Z         }
2026-06-04T00:32:38.3412446Z       }
2026-06-04T00:32:38.3413049Z     },
2026-06-04T00:32:38.3413662Z     {
2026-06-04T00:32:38.3414376Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-04T00:32:38.3415268Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-04T00:32:38.3415943Z       "requiredStages": [
2026-06-04T00:32:38.3416581Z         "impl",
2026-06-04T00:32:38.3417201Z         "int"
2026-06-04T00:32:38.3417844Z       ],
2026-06-04T00:32:38.3418476Z       "stages": {
2026-06-04T00:32:38.3419201Z         "doc": {
2026-06-04T00:32:38.3419880Z           "complete": false,
2026-06-04T00:32:38.3420538Z           "evidence": []
2026-06-04T00:32:38.3421161Z         },
2026-06-04T00:32:38.3421791Z         "impl": {
2026-06-04T00:32:38.3422463Z           "complete": true,
2026-06-04T00:32:38.3423121Z           "evidence": [
2026-06-04T00:32:38.3423736Z             {
2026-06-04T00:32:38.3424509Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.3425155Z               "line": 22
2026-06-04T00:32:38.3425777Z             }
2026-06-04T00:32:38.3426395Z           ]
2026-06-04T00:32:38.3427005Z         },
2026-06-04T00:32:38.3427652Z         "int": {
2026-06-04T00:32:38.3428315Z           "complete": true,
2026-06-04T00:32:38.3428954Z           "evidence": [
2026-06-04T00:32:38.3429619Z             {
2026-06-04T00:32:38.3430432Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T00:32:38.3431096Z               "line": 18
2026-06-04T00:32:38.3431724Z             }
2026-06-04T00:32:38.3432352Z           ]
2026-06-04T00:32:38.3432972Z         },
2026-06-04T00:32:38.3433604Z         "unit": {
2026-06-04T00:32:38.3434267Z           "complete": false,
2026-06-04T00:32:38.3434918Z           "evidence": []
2026-06-04T00:32:38.3435532Z         }
2026-06-04T00:32:38.3436160Z       }
2026-06-04T00:32:38.3436775Z     },
2026-06-04T00:32:38.3437390Z     {
2026-06-04T00:32:38.3438143Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-04T00:32:38.3439326Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-04T00:32:38.3440004Z       "requiredStages": [
2026-06-04T00:32:38.3440634Z         "impl",
2026-06-04T00:32:38.3441257Z         "unit"
2026-06-04T00:32:38.3441884Z       ],
2026-06-04T00:32:38.3442518Z       "stages": {
2026-06-04T00:32:38.3443137Z         "doc": {
2026-06-04T00:32:38.3443800Z           "complete": false,
2026-06-04T00:32:38.3444476Z           "evidence": []
2026-06-04T00:32:38.3445093Z         },
2026-06-04T00:32:38.3445741Z         "impl": {
2026-06-04T00:32:38.3446399Z           "complete": true,
2026-06-04T00:32:38.3447050Z           "evidence": [
2026-06-04T00:32:38.3447668Z             {
2026-06-04T00:32:38.3448468Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.3449242Z               "line": 263
2026-06-04T00:32:38.3449881Z             },
2026-06-04T00:32:38.3450498Z             {
2026-06-04T00:32:38.3451277Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3451917Z               "line": 27
2026-06-04T00:32:38.3452547Z             }
2026-06-04T00:32:38.3453168Z           ]
2026-06-04T00:32:38.3453782Z         },
2026-06-04T00:32:38.3454409Z         "int": {
2026-06-04T00:32:38.3455073Z           "complete": false,
2026-06-04T00:32:38.3455726Z           "evidence": []
2026-06-04T00:32:38.3456346Z         },
2026-06-04T00:32:38.3456989Z         "unit": {
2026-06-04T00:32:38.3457820Z           "complete": true,
2026-06-04T00:32:38.3458499Z           "evidence": [
2026-06-04T00:32:38.3459313Z             {
2026-06-04T00:32:38.3460142Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.3460801Z               "line": 561
2026-06-04T00:32:38.3461433Z             },
2026-06-04T00:32:38.3462069Z             {
2026-06-04T00:32:38.3462841Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.3463493Z               "line": 163
2026-06-04T00:32:38.3464137Z             }
2026-06-04T00:32:38.3464750Z           ]
2026-06-04T00:32:38.3465370Z         }
2026-06-04T00:32:38.3465983Z       }
2026-06-04T00:32:38.3466600Z     },
2026-06-04T00:32:38.3467215Z     {
2026-06-04T00:32:38.3467992Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-04T00:32:38.3468978Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-04T00:32:38.3469737Z       "requiredStages": [
2026-06-04T00:32:38.3470382Z         "impl",
2026-06-04T00:32:38.3471025Z         "unit"
2026-06-04T00:32:38.3471641Z       ],
2026-06-04T00:32:38.3472294Z       "stages": {
2026-06-04T00:32:38.3472927Z         "doc": {
2026-06-04T00:32:38.3473596Z           "complete": false,
2026-06-04T00:32:38.3474253Z           "evidence": []
2026-06-04T00:32:38.3474872Z         },
2026-06-04T00:32:38.3475507Z         "impl": {
2026-06-04T00:32:38.3476172Z           "complete": true,
2026-06-04T00:32:38.3476814Z           "evidence": [
2026-06-04T00:32:38.3477434Z             {
2026-06-04T00:32:38.3478214Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3478859Z               "line": 20
2026-06-04T00:32:38.3479571Z             },
2026-06-04T00:32:38.3480190Z             {
2026-06-04T00:32:38.3481034Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3481697Z               "line": 94
2026-06-04T00:32:38.3482322Z             },
2026-06-04T00:32:38.3482941Z             {
2026-06-04T00:32:38.3483756Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:32:38.3484408Z               "line": 70
2026-06-04T00:32:38.3485052Z             },
2026-06-04T00:32:38.3485662Z             {
2026-06-04T00:32:38.3486462Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:32:38.3487111Z               "line": 82
2026-06-04T00:32:38.3487728Z             }
2026-06-04T00:32:38.3488348Z           ]
2026-06-04T00:32:38.3488962Z         },
2026-06-04T00:32:38.3489659Z         "int": {
2026-06-04T00:32:38.3490036Z           "complete": false,
2026-06-04T00:32:38.3490701Z           "evidence": []
2026-06-04T00:32:38.3491321Z         },
2026-06-04T00:32:38.3491947Z         "unit": {
2026-06-04T00:32:38.3492615Z           "complete": true,
2026-06-04T00:32:38.3493269Z           "evidence": [
2026-06-04T00:32:38.3493884Z             {
2026-06-04T00:32:38.3494667Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3495319Z               "line": 139
2026-06-04T00:32:38.3495951Z             },
2026-06-04T00:32:38.3496579Z             {
2026-06-04T00:32:38.3497346Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3498017Z               "line": 162
2026-06-04T00:32:38.3498651Z             },
2026-06-04T00:32:38.3499347Z             {
2026-06-04T00:32:38.3500125Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3500776Z               "line": 173
2026-06-04T00:32:38.3501397Z             },
2026-06-04T00:32:38.3502013Z             {
2026-06-04T00:32:38.3502783Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3503446Z               "line": 189
2026-06-04T00:32:38.3504081Z             },
2026-06-04T00:32:38.3504734Z             {
2026-06-04T00:32:38.3505518Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T00:32:38.3506178Z               "line": 200
2026-06-04T00:32:38.3506803Z             },
2026-06-04T00:32:38.3507433Z             {
2026-06-04T00:32:38.3508447Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T00:32:38.3509283Z               "line": 139
2026-06-04T00:32:38.3510038Z             }
2026-06-04T00:32:38.3510668Z           ]
2026-06-04T00:32:38.3511294Z         }
2026-06-04T00:32:38.3511922Z       }
2026-06-04T00:32:38.3512544Z     },
2026-06-04T00:32:38.3513160Z     {
2026-06-04T00:32:38.3513859Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-04T00:32:38.3515244Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-04T00:32:38.3515931Z       "requiredStages": [
2026-06-04T00:32:38.3516567Z         "impl",
2026-06-04T00:32:38.3517199Z         "unit"
2026-06-04T00:32:38.3517823Z       ],
2026-06-04T00:32:38.3518483Z       "stages": {
2026-06-04T00:32:38.3519192Z         "doc": {
2026-06-04T00:32:38.3519858Z           "complete": true,
2026-06-04T00:32:38.3520523Z           "evidence": [
2026-06-04T00:32:38.3521157Z             {
2026-06-04T00:32:38.3521891Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:32:38.3522568Z               "line": 131
2026-06-04T00:32:38.3523189Z             }
2026-06-04T00:32:38.3523834Z           ]
2026-06-04T00:32:38.3524458Z         },
2026-06-04T00:32:38.3525088Z         "impl": {
2026-06-04T00:32:38.3525756Z           "complete": true,
2026-06-04T00:32:38.3526419Z           "evidence": [
2026-06-04T00:32:38.3527040Z             {
2026-06-04T00:32:38.3527805Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.3528451Z               "line": 50
2026-06-04T00:32:38.3529160Z             },
2026-06-04T00:32:38.3529789Z             {
2026-06-04T00:32:38.3530540Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3531189Z               "line": 17
2026-06-04T00:32:38.3531814Z             },
2026-06-04T00:32:38.3532439Z             {
2026-06-04T00:32:38.3533217Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.3533859Z               "line": 171
2026-06-04T00:32:38.3534489Z             },
2026-06-04T00:32:38.3535128Z             {
2026-06-04T00:32:38.3535900Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.3536562Z               "line": 259
2026-06-04T00:32:38.3537180Z             },
2026-06-04T00:32:38.3537808Z             {
2026-06-04T00:32:38.3538565Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T00:32:38.3539288Z               "line": 32
2026-06-04T00:32:38.3539927Z             }
2026-06-04T00:32:38.3540545Z           ]
2026-06-04T00:32:38.3541152Z         },
2026-06-04T00:32:38.3541782Z         "int": {
2026-06-04T00:32:38.3542446Z           "complete": false,
2026-06-04T00:32:38.3543103Z           "evidence": []
2026-06-04T00:32:38.3543730Z         },
2026-06-04T00:32:38.3544354Z         "unit": {
2026-06-04T00:32:38.3545019Z           "complete": true,
2026-06-04T00:32:38.3545661Z           "evidence": [
2026-06-04T00:32:38.3546281Z             {
2026-06-04T00:32:38.3547028Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3547689Z               "line": 94
2026-06-04T00:32:38.3548322Z             },
2026-06-04T00:32:38.3548949Z             {
2026-06-04T00:32:38.3549783Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3550141Z               "line": 111
2026-06-04T00:32:38.3550774Z             },
2026-06-04T00:32:38.3551406Z             {
2026-06-04T00:32:38.3552160Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3552808Z               "line": 124
2026-06-04T00:32:38.3553440Z             },
2026-06-04T00:32:38.3554066Z             {
2026-06-04T00:32:38.3554818Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3555472Z               "line": 134
2026-06-04T00:32:38.3556102Z             },
2026-06-04T00:32:38.3556727Z             {
2026-06-04T00:32:38.3557473Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3558117Z               "line": 142
2026-06-04T00:32:38.3558740Z             },
2026-06-04T00:32:38.3559444Z             {
2026-06-04T00:32:38.3560347Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T00:32:38.3561028Z               "line": 154
2026-06-04T00:32:38.3561762Z             }
2026-06-04T00:32:38.3562392Z           ]
2026-06-04T00:32:38.3563015Z         }
2026-06-04T00:32:38.3563636Z       }
2026-06-04T00:32:38.3564253Z     },
2026-06-04T00:32:38.3564857Z     {
2026-06-04T00:32:38.3565596Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-04T00:32:38.3566446Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-04T00:32:38.3567126Z       "requiredStages": [
2026-06-04T00:32:38.3567755Z         "impl",
2026-06-04T00:32:38.3568382Z         "unit"
2026-06-04T00:32:38.3569002Z       ],
2026-06-04T00:32:38.3569760Z       "stages": {
2026-06-04T00:32:38.3570390Z         "doc": {
2026-06-04T00:32:38.3571070Z           "complete": false,
2026-06-04T00:32:38.3571716Z           "evidence": []
2026-06-04T00:32:38.3572338Z         },
2026-06-04T00:32:38.3572977Z         "impl": {
2026-06-04T00:32:38.3573633Z           "complete": true,
2026-06-04T00:32:38.3574309Z           "evidence": [
2026-06-04T00:32:38.3574940Z             {
2026-06-04T00:32:38.3575726Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.3576370Z               "line": 93
2026-06-04T00:32:38.3576994Z             }
2026-06-04T00:32:38.3577606Z           ]
2026-06-04T00:32:38.3578224Z         },
2026-06-04T00:32:38.3578846Z         "int": {
2026-06-04T00:32:38.3579601Z           "complete": false,
2026-06-04T00:32:38.3580274Z           "evidence": []
2026-06-04T00:32:38.3580887Z         },
2026-06-04T00:32:38.3581520Z         "unit": {
2026-06-04T00:32:38.3582184Z           "complete": true,
2026-06-04T00:32:38.3582838Z           "evidence": [
2026-06-04T00:32:38.3583459Z             {
2026-06-04T00:32:38.3584226Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.3584884Z               "line": 190
2026-06-04T00:32:38.3585516Z             }
2026-06-04T00:32:38.3586132Z           ]
2026-06-04T00:32:38.3586746Z         }
2026-06-04T00:32:38.3587379Z       }
2026-06-04T00:32:38.3588003Z     },
2026-06-04T00:32:38.3588631Z     {
2026-06-04T00:32:38.3589470Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-04T00:32:38.3590400Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-04T00:32:38.3591084Z       "requiredStages": [
2026-06-04T00:32:38.3591716Z         "impl",
2026-06-04T00:32:38.3592339Z         "unit"
2026-06-04T00:32:38.3592951Z       ],
2026-06-04T00:32:38.3593591Z       "stages": {
2026-06-04T00:32:38.3594217Z         "doc": {
2026-06-04T00:32:38.3594877Z           "complete": false,
2026-06-04T00:32:38.3595530Z           "evidence": []
2026-06-04T00:32:38.3596155Z         },
2026-06-04T00:32:38.3596723Z         "impl": {
2026-06-04T00:32:38.3597896Z           "complete": true,
2026-06-04T00:32:38.3598582Z           "evidence": [
2026-06-04T00:32:38.3599324Z             {
2026-06-04T00:32:38.3600109Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3600791Z               "line": 120
2026-06-04T00:32:38.3601423Z             },
2026-06-04T00:32:38.3602054Z             {
2026-06-04T00:32:38.3602845Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3603504Z               "line": 131
2026-06-04T00:32:38.3604130Z             },
2026-06-04T00:32:38.3604774Z             {
2026-06-04T00:32:38.3605547Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3606203Z               "line": 149
2026-06-04T00:32:38.3606830Z             }
2026-06-04T00:32:38.3607448Z           ]
2026-06-04T00:32:38.3608067Z         },
2026-06-04T00:32:38.3608690Z         "int": {
2026-06-04T00:32:38.3609443Z           "complete": false,
2026-06-04T00:32:38.3610102Z           "evidence": []
2026-06-04T00:32:38.3610728Z         },
2026-06-04T00:32:38.3611364Z         "unit": {
2026-06-04T00:32:38.3612036Z           "complete": true,
2026-06-04T00:32:38.3612683Z           "evidence": [
2026-06-04T00:32:38.3613308Z             {
2026-06-04T00:32:38.3614240Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3614915Z               "line": 173
2026-06-04T00:32:38.3615655Z             },
2026-06-04T00:32:38.3616294Z             {
2026-06-04T00:32:38.3617057Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3617711Z               "line": 191
2026-06-04T00:32:38.3618333Z             },
2026-06-04T00:32:38.3618963Z             {
2026-06-04T00:32:38.3619780Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3620129Z               "line": 253
2026-06-04T00:32:38.3620457Z             },
2026-06-04T00:32:38.3621115Z             {
2026-06-04T00:32:38.3621939Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3640056Z               "line": 264
2026-06-04T00:32:38.3641337Z             },
2026-06-04T00:32:38.3642444Z             {
2026-06-04T00:32:38.3643663Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.3645103Z               "line": 277
2026-06-04T00:32:38.3646307Z             }
2026-06-04T00:32:38.3647388Z           ]
2026-06-04T00:32:38.3648465Z         }
2026-06-04T00:32:38.3649593Z       }
2026-06-04T00:32:38.3650633Z     },
2026-06-04T00:32:38.3651664Z     {
2026-06-04T00:32:38.3652792Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-04T00:32:38.3654748Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-04T00:32:38.3656665Z       "requiredStages": [
2026-06-04T00:32:38.3657872Z         "impl",
2026-06-04T00:32:38.3658956Z         "unit"
2026-06-04T00:32:38.3660172Z       ],
2026-06-04T00:32:38.3661218Z       "stages": {
2026-06-04T00:32:38.3662323Z         "doc": {
2026-06-04T00:32:38.3663461Z           "complete": false,
2026-06-04T00:32:38.3664705Z           "evidence": []
2026-06-04T00:32:38.3665866Z         },
2026-06-04T00:32:38.3666924Z         "impl": {
2026-06-04T00:32:38.3668052Z           "complete": true,
2026-06-04T00:32:38.3669351Z           "evidence": [
2026-06-04T00:32:38.3670530Z             {
2026-06-04T00:32:38.3671715Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3673150Z               "line": 14
2026-06-04T00:32:38.3674306Z             },
2026-06-04T00:32:38.3675380Z             {
2026-06-04T00:32:38.3676563Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T00:32:38.3678005Z               "line": 298
2026-06-04T00:32:38.3679264Z             }
2026-06-04T00:32:38.3680337Z           ]
2026-06-04T00:32:38.3681381Z         },
2026-06-04T00:32:38.3682428Z         "int": {
2026-06-04T00:32:38.3683552Z           "complete": false,
2026-06-04T00:32:38.3684797Z           "evidence": []
2026-06-04T00:32:38.3685977Z         },
2026-06-04T00:32:38.3687026Z         "unit": {
2026-06-04T00:32:38.3688151Z           "complete": true,
2026-06-04T00:32:38.3689451Z           "evidence": [
2026-06-04T00:32:38.3690614Z             {
2026-06-04T00:32:38.3691797Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3693235Z               "line": 130
2026-06-04T00:32:38.3694431Z             },
2026-06-04T00:32:38.3695514Z             {
2026-06-04T00:32:38.3696740Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3698168Z               "line": 138
2026-06-04T00:32:38.3699441Z             },
2026-06-04T00:32:38.3700541Z             {
2026-06-04T00:32:38.3701739Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3703144Z               "line": 146
2026-06-04T00:32:38.3704315Z             },
2026-06-04T00:32:38.3705408Z             {
2026-06-04T00:32:38.3706599Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3708034Z               "line": 154
2026-06-04T00:32:38.3709305Z             },
2026-06-04T00:32:38.3710384Z             {
2026-06-04T00:32:38.3711587Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3712998Z               "line": 162
2026-06-04T00:32:38.3714175Z             },
2026-06-04T00:32:38.3715248Z             {
2026-06-04T00:32:38.3716638Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T00:32:38.3718089Z               "line": 170
2026-06-04T00:32:38.3719470Z             }
2026-06-04T00:32:38.3720549Z           ]
2026-06-04T00:32:38.3721590Z         }
2026-06-04T00:32:38.3722624Z       }
2026-06-04T00:32:38.3723641Z     },
2026-06-04T00:32:38.3724663Z     {
2026-06-04T00:32:38.3725795Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-04T00:32:38.3730568Z       "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-04T00:32:38.3734886Z       "requiredStages": [
2026-06-04T00:32:38.3736085Z         "impl",
2026-06-04T00:32:38.3737173Z         "unit"
2026-06-04T00:32:38.3738248Z       ],
2026-06-04T00:32:38.3739375Z       "stages": {
2026-06-04T00:32:38.3740476Z         "doc": {
2026-06-04T00:32:38.3741662Z           "complete": false,
2026-06-04T00:32:38.3761948Z           "evidence": []
2026-06-04T00:32:38.3763460Z         },
2026-06-04T00:32:38.3764566Z         "impl": {
2026-06-04T00:32:38.3765761Z           "complete": true,
2026-06-04T00:32:38.3767030Z           "evidence": [
2026-06-04T00:32:38.3768205Z             {
2026-06-04T00:32:38.3769658Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3771257Z               "line": 34
2026-06-04T00:32:38.3772441Z             }
2026-06-04T00:32:38.3773535Z           ]
2026-06-04T00:32:38.3774614Z         },
2026-06-04T00:32:38.3775675Z         "int": {
2026-06-04T00:32:38.3776826Z           "complete": false,
2026-06-04T00:32:38.3778078Z           "evidence": []
2026-06-04T00:32:38.3779359Z         },
2026-06-04T00:32:38.3780446Z         "unit": {
2026-06-04T00:32:38.3781618Z           "complete": true,
2026-06-04T00:32:38.3782859Z           "evidence": [
2026-06-04T00:32:38.3784005Z             {
2026-06-04T00:32:38.3785384Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3786965Z               "line": 188
2026-06-04T00:32:38.3788150Z             },
2026-06-04T00:32:38.3789339Z             {
2026-06-04T00:32:38.3790699Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3792278Z               "line": 200
2026-06-04T00:32:38.3793466Z             },
2026-06-04T00:32:38.3794558Z             {
2026-06-04T00:32:38.3795901Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3797478Z               "line": 211
2026-06-04T00:32:38.3798655Z             },
2026-06-04T00:32:38.3799893Z             {
2026-06-04T00:32:38.3801236Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3802804Z               "line": 245
2026-06-04T00:32:38.3804003Z             },
2026-06-04T00:32:38.3805127Z             {
2026-06-04T00:32:38.3806465Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3808052Z               "line": 267
2026-06-04T00:32:38.3809308Z             },
2026-06-04T00:32:38.3810349Z             {
2026-06-04T00:32:38.3811911Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3813481Z               "line": 288
2026-06-04T00:32:38.3814656Z             },
2026-06-04T00:32:38.3815743Z             {
2026-06-04T00:32:38.3817080Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T00:32:38.3818634Z               "line": 304
2026-06-04T00:32:38.3819962Z             }
2026-06-04T00:32:38.3821063Z           ]
2026-06-04T00:32:38.3822003Z         }
2026-06-04T00:32:38.3823558Z       }
2026-06-04T00:32:38.3824611Z     },
2026-06-04T00:32:38.3825752Z     {
2026-06-04T00:32:38.3827007Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-04T00:32:38.3830916Z       "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-04T00:32:38.3834352Z       "requiredStages": [
2026-06-04T00:32:38.3835583Z         "impl",
2026-06-04T00:32:38.3836703Z         "unit"
2026-06-04T00:32:38.3837792Z       ],
2026-06-04T00:32:38.3838867Z       "stages": {
2026-06-04T00:32:38.3840076Z         "doc": {
2026-06-04T00:32:38.3841230Z           "complete": false,
2026-06-04T00:32:38.3842472Z           "evidence": []
2026-06-04T00:32:38.3843640Z         },
2026-06-04T00:32:38.3844722Z         "impl": {
2026-06-04T00:32:38.3845878Z           "complete": true,
2026-06-04T00:32:38.3847107Z           "evidence": [
2026-06-04T00:32:38.3848262Z             {
2026-06-04T00:32:38.3849617Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3851089Z               "line": 29
2026-06-04T00:32:38.3852265Z             },
2026-06-04T00:32:38.3853359Z             {
2026-06-04T00:32:38.3854593Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3856075Z               "line": 154
2026-06-04T00:32:38.3857261Z             },
2026-06-04T00:32:38.3858375Z             {
2026-06-04T00:32:38.3859695Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3861167Z               "line": 173
2026-06-04T00:32:38.3862361Z             },
2026-06-04T00:32:38.3863449Z             {
2026-06-04T00:32:38.3864694Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3866146Z               "line": 200
2026-06-04T00:32:38.3867311Z             }
2026-06-04T00:32:38.3868403Z           ]
2026-06-04T00:32:38.3869553Z         },
2026-06-04T00:32:38.3870621Z         "int": {
2026-06-04T00:32:38.3871763Z           "complete": false,
2026-06-04T00:32:38.3873011Z           "evidence": []
2026-06-04T00:32:38.3874184Z         },
2026-06-04T00:32:38.3875264Z         "unit": {
2026-06-04T00:32:38.3876412Z           "complete": true,
2026-06-04T00:32:38.3877643Z           "evidence": [
2026-06-04T00:32:38.3878799Z             {
2026-06-04T00:32:38.3880200Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3881670Z               "line": 276
2026-06-04T00:32:38.3882871Z             },
2026-06-04T00:32:38.3883954Z             {
2026-06-04T00:32:38.3885189Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3886644Z               "line": 291
2026-06-04T00:32:38.3887826Z             },
2026-06-04T00:32:38.3888913Z             {
2026-06-04T00:32:38.3890241Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3891689Z               "line": 310
2026-06-04T00:32:38.3892864Z             },
2026-06-04T00:32:38.3893946Z             {
2026-06-04T00:32:38.3895173Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3896611Z               "line": 326
2026-06-04T00:32:38.3897772Z             },
2026-06-04T00:32:38.3898847Z             {
2026-06-04T00:32:38.3900124Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3901574Z               "line": 376
2026-06-04T00:32:38.3902748Z             },
2026-06-04T00:32:38.3903816Z             {
2026-06-04T00:32:38.3905040Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3906458Z               "line": 390
2026-06-04T00:32:38.3907617Z             },
2026-06-04T00:32:38.3908678Z             {
2026-06-04T00:32:38.3909966Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3911397Z               "line": 401
2026-06-04T00:32:38.3912558Z             },
2026-06-04T00:32:38.3913646Z             {
2026-06-04T00:32:38.3914861Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.3916279Z               "line": 412
2026-06-04T00:32:38.3917438Z             }
2026-06-04T00:32:38.3918504Z           ]
2026-06-04T00:32:38.3919631Z         }
2026-06-04T00:32:38.3920684Z       }
2026-06-04T00:32:38.3921702Z     },
2026-06-04T00:32:38.3922726Z     {
2026-06-04T00:32:38.3923895Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-04T00:32:38.3927848Z       "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-04T00:32:38.3931538Z       "requiredStages": [
2026-06-04T00:32:38.3932746Z         "impl",
2026-06-04T00:32:38.3933825Z         "unit"
2026-06-04T00:32:38.3934903Z       ],
2026-06-04T00:32:38.3935946Z       "stages": {
2026-06-04T00:32:38.3937040Z         "doc": {
2026-06-04T00:32:38.3938164Z           "complete": false,
2026-06-04T00:32:38.3939495Z           "evidence": []
2026-06-04T00:32:38.3940666Z         },
2026-06-04T00:32:38.3941725Z         "impl": {
2026-06-04T00:32:38.3942859Z           "complete": true,
2026-06-04T00:32:38.3944058Z           "evidence": [
2026-06-04T00:32:38.3945195Z             {
2026-06-04T00:32:38.3946491Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3947978Z               "line": 27
2026-06-04T00:32:38.3949288Z             },
2026-06-04T00:32:38.3950374Z             {
2026-06-04T00:32:38.3951713Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3953196Z               "line": 110
2026-06-04T00:32:38.3954363Z             },
2026-06-04T00:32:38.3955428Z             {
2026-06-04T00:32:38.3956702Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3958196Z               "line": 153
2026-06-04T00:32:38.3959440Z             },
2026-06-04T00:32:38.3960528Z             {
2026-06-04T00:32:38.3961817Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3963311Z               "line": 182
2026-06-04T00:32:38.3964470Z             },
2026-06-04T00:32:38.3965537Z             {
2026-06-04T00:32:38.3966857Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.3968428Z               "line": 31
2026-06-04T00:32:38.3969647Z             },
2026-06-04T00:32:38.3970734Z             {
2026-06-04T00:32:38.3972082Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.3973645Z               "line": 113
2026-06-04T00:32:38.3974809Z             },
2026-06-04T00:32:38.3975882Z             {
2026-06-04T00:32:38.3977195Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.3978758Z               "line": 138
2026-06-04T00:32:38.3980041Z             }
2026-06-04T00:32:38.3981113Z           ]
2026-06-04T00:32:38.3982148Z         },
2026-06-04T00:32:38.3983188Z         "int": {
2026-06-04T00:32:38.3984302Z           "complete": false,
2026-06-04T00:32:38.3985536Z           "evidence": []
2026-06-04T00:32:38.3986690Z         },
2026-06-04T00:32:38.3987732Z         "unit": {
2026-06-04T00:32:38.3988850Z           "complete": true,
2026-06-04T00:32:38.3990130Z           "evidence": [
2026-06-04T00:32:38.3991270Z             {
2026-06-04T00:32:38.3992555Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3994049Z               "line": 261
2026-06-04T00:32:38.3995220Z             },
2026-06-04T00:32:38.3996301Z             {
2026-06-04T00:32:38.3997576Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.3999117Z               "line": 276
2026-06-04T00:32:38.4000210Z             },
2026-06-04T00:32:38.4001484Z             {
2026-06-04T00:32:38.4002768Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.4004255Z               "line": 293
2026-06-04T00:32:38.4005438Z             },
2026-06-04T00:32:38.4006507Z             {
2026-06-04T00:32:38.4007793Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.4009373Z               "line": 310
2026-06-04T00:32:38.4010546Z             },
2026-06-04T00:32:38.4011623Z             {
2026-06-04T00:32:38.4012891Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.4014371Z               "line": 327
2026-06-04T00:32:38.4015536Z             },
2026-06-04T00:32:38.4016788Z             {
2026-06-04T00:32:38.4018274Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.4020077Z               "line": 366
2026-06-04T00:32:38.4021263Z             },
2026-06-04T00:32:38.4022341Z             {
2026-06-04T00:32:38.4023687Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4025233Z               "line": 179
2026-06-04T00:32:38.4026407Z             },
2026-06-04T00:32:38.4027470Z             {
2026-06-04T00:32:38.4028781Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4030417Z               "line": 194
2026-06-04T00:32:38.4031571Z             },
2026-06-04T00:32:38.4032627Z             {
2026-06-04T00:32:38.4033945Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4035491Z               "line": 204
2026-06-04T00:32:38.4036650Z             },
2026-06-04T00:32:38.4037713Z             {
2026-06-04T00:32:38.4039117Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4040678Z               "line": 259
2026-06-04T00:32:38.4041843Z             },
2026-06-04T00:32:38.4042907Z             {
2026-06-04T00:32:38.4044223Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4045767Z               "line": 269
2026-06-04T00:32:38.4046918Z             },
2026-06-04T00:32:38.4047976Z             {
2026-06-04T00:32:38.4049365Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.4050918Z               "line": 283
2026-06-04T00:32:38.4052081Z             }
2026-06-04T00:32:38.4053156Z           ]
2026-06-04T00:32:38.4054187Z         }
2026-06-04T00:32:38.4055212Z       }
2026-06-04T00:32:38.4056229Z     },
2026-06-04T00:32:38.4057252Z     {
2026-06-04T00:32:38.4058379Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-04T00:32:38.4060276Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-04T00:32:38.4062069Z       "requiredStages": [],
2026-06-04T00:32:38.4063276Z       "stages": {
2026-06-04T00:32:38.4064387Z         "doc": {
2026-06-04T00:32:38.4065512Z           "complete": false,
2026-06-04T00:32:38.4066756Z           "evidence": []
2026-06-04T00:32:38.4067934Z         },
2026-06-04T00:32:38.4068991Z         "impl": {
2026-06-04T00:32:38.4070190Z           "complete": false,
2026-06-04T00:32:38.4071418Z           "evidence": []
2026-06-04T00:32:38.4072587Z         },
2026-06-04T00:32:38.4073630Z         "int": {
2026-06-04T00:32:38.4074752Z           "complete": false,
2026-06-04T00:32:38.4075976Z           "evidence": []
2026-06-04T00:32:38.4077137Z         },
2026-06-04T00:32:38.4078183Z         "unit": {
2026-06-04T00:32:38.4079393Z           "complete": false,
2026-06-04T00:32:38.4080624Z           "evidence": []
2026-06-04T00:32:38.4081782Z         }
2026-06-04T00:32:38.4082816Z       }
2026-06-04T00:32:38.4083834Z     },
2026-06-04T00:32:38.4084859Z     {
2026-06-04T00:32:38.4086077Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-04T00:32:38.4095301Z       "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-04T00:32:38.4099552Z       "requiredStages": [],
2026-06-04T00:32:38.4100869Z       "stages": {
2026-06-04T00:32:38.4101963Z         "doc": {
2026-06-04T00:32:38.4103102Z           "complete": false,
2026-06-04T00:32:38.4104343Z           "evidence": []
2026-06-04T00:32:38.4105535Z         },
2026-06-04T00:32:38.4106574Z         "impl": {
2026-06-04T00:32:38.4107818Z           "complete": false,
2026-06-04T00:32:38.4109178Z           "evidence": []
2026-06-04T00:32:38.4110342Z         },
2026-06-04T00:32:38.4111376Z         "int": {
2026-06-04T00:32:38.4112503Z           "complete": false,
2026-06-04T00:32:38.4113718Z           "evidence": []
2026-06-04T00:32:38.4115123Z         },
2026-06-04T00:32:38.4116196Z         "unit": {
2026-06-04T00:32:38.4117480Z           "complete": false,
2026-06-04T00:32:38.4118633Z           "evidence": []
2026-06-04T00:32:38.4120113Z         }
2026-06-04T00:32:38.4121153Z       }
2026-06-04T00:32:38.4122177Z     },
2026-06-04T00:32:38.4123195Z     {
2026-06-04T00:32:38.4124345Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-04T00:32:38.4126471Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-04T00:32:38.4128513Z       "requiredStages": [
2026-06-04T00:32:38.4129777Z         "impl",
2026-06-04T00:32:38.4130860Z         "unit"
2026-06-04T00:32:38.4131918Z       ],
2026-06-04T00:32:38.4132956Z       "stages": {
2026-06-04T00:32:38.4134043Z         "doc": {
2026-06-04T00:32:38.4135160Z           "complete": true,
2026-06-04T00:32:38.4136379Z           "evidence": [
2026-06-04T00:32:38.4137510Z             {
2026-06-04T00:32:38.4138692Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:32:38.4140275Z               "line": 137
2026-06-04T00:32:38.4141458Z             }
2026-06-04T00:32:38.4142521Z           ]
2026-06-04T00:32:38.4143559Z         },
2026-06-04T00:32:38.4144602Z         "impl": {
2026-06-04T00:32:38.4145721Z           "complete": true,
2026-06-04T00:32:38.4146921Z           "evidence": [
2026-06-04T00:32:38.4148044Z             {
2026-06-04T00:32:38.4149324Z               "path": "crates/spt-store/src/db.rs",
2026-06-04T00:32:38.4150737Z               "line": 29
2026-06-04T00:32:38.4151888Z             },
2026-06-04T00:32:38.4152949Z             {
2026-06-04T00:32:38.4154174Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4155622Z               "line": 24
2026-06-04T00:32:38.4156780Z             },
2026-06-04T00:32:38.4157861Z             {
2026-06-04T00:32:38.4159142Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T00:32:38.4160577Z               "line": 48
2026-06-04T00:32:38.4161763Z             }
2026-06-04T00:32:38.4162821Z           ]
2026-06-04T00:32:38.4163857Z         },
2026-06-04T00:32:38.4164916Z         "int": {
2026-06-04T00:32:38.4166045Z           "complete": false,
2026-06-04T00:32:38.4167268Z           "evidence": []
2026-06-04T00:32:38.4168421Z         },
2026-06-04T00:32:38.4169547Z         "unit": {
2026-06-04T00:32:38.4170686Z           "complete": true,
2026-06-04T00:32:38.4171913Z           "evidence": [
2026-06-04T00:32:38.4173039Z             {
2026-06-04T00:32:38.4174260Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4175709Z               "line": 146
2026-06-04T00:32:38.4176862Z             }
2026-06-04T00:32:38.4177909Z           ]
2026-06-04T00:32:38.4178944Z         }
2026-06-04T00:32:38.4180099Z       }
2026-06-04T00:32:38.4181120Z     },
2026-06-04T00:32:38.4182129Z     {
2026-06-04T00:32:38.4183284Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-04T00:32:38.4186048Z       "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-04T00:32:38.4188568Z       "requiredStages": [
2026-06-04T00:32:38.4189821Z         "impl",
2026-06-04T00:32:38.4190900Z         "unit"
2026-06-04T00:32:38.4191964Z       ],
2026-06-04T00:32:38.4193000Z       "stages": {
2026-06-04T00:32:38.4194095Z         "doc": {
2026-06-04T00:32:38.4195216Z           "complete": true,
2026-06-04T00:32:38.4196412Z           "evidence": [
2026-06-04T00:32:38.4197551Z             {
2026-06-04T00:32:38.4198713Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T00:32:38.4200077Z               "line": 143
2026-06-04T00:32:38.4201424Z             }
2026-06-04T00:32:38.4202501Z           ]
2026-06-04T00:32:38.4203537Z         },
2026-06-04T00:32:38.4204602Z         "impl": {
2026-06-04T00:32:38.4205735Z           "complete": true,
2026-06-04T00:32:38.4206941Z           "evidence": [
2026-06-04T00:32:38.4208090Z             {
2026-06-04T00:32:38.4209678Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4211177Z               "line": 117
2026-06-04T00:32:38.4212474Z             },
2026-06-04T00:32:38.4213559Z             {
2026-06-04T00:32:38.4214755Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:32:38.4216182Z               "line": 15
2026-06-04T00:32:38.4217357Z             }
2026-06-04T00:32:38.4218444Z           ]
2026-06-04T00:32:38.4219566Z         },
2026-06-04T00:32:38.4220621Z         "int": {
2026-06-04T00:32:38.4221769Z           "complete": false,
2026-06-04T00:32:38.4223003Z           "evidence": []
2026-06-04T00:32:38.4224158Z         },
2026-06-04T00:32:38.4225204Z         "unit": {
2026-06-04T00:32:38.4226322Z           "complete": true,
2026-06-04T00:32:38.4227521Z           "evidence": [
2026-06-04T00:32:38.4228653Z             {
2026-06-04T00:32:38.4230014Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4231468Z               "line": 508
2026-06-04T00:32:38.4232654Z             },
2026-06-04T00:32:38.4233720Z             {
2026-06-04T00:32:38.4234948Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4236409Z               "line": 527
2026-06-04T00:32:38.4237562Z             },
2026-06-04T00:32:38.4238631Z             {
2026-06-04T00:32:38.4239921Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:32:38.4241320Z               "line": 74
2026-06-04T00:32:38.4242461Z             },
2026-06-04T00:32:38.4243519Z             {
2026-06-04T00:32:38.4244716Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:32:38.4246125Z               "line": 88
2026-06-04T00:32:38.4247263Z             },
2026-06-04T00:32:38.4248327Z             {
2026-06-04T00:32:38.4249602Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T00:32:38.4251024Z               "line": 104
2026-06-04T00:32:38.4252172Z             }
2026-06-04T00:32:38.4253240Z           ]
2026-06-04T00:32:38.4254287Z         }
2026-06-04T00:32:38.4255326Z       }
2026-06-04T00:32:38.4256358Z     },
2026-06-04T00:32:38.4257376Z     {
2026-06-04T00:32:38.4258568Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-04T00:32:38.4260576Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-04T00:32:38.4262347Z       "requiredStages": [
2026-06-04T00:32:38.4263528Z         "impl",
2026-06-04T00:32:38.4264626Z         "unit"
2026-06-04T00:32:38.4265690Z       ],
2026-06-04T00:32:38.4266725Z       "stages": {
2026-06-04T00:32:38.4267823Z         "doc": {
2026-06-04T00:32:38.4268939Z           "complete": false,
2026-06-04T00:32:38.4270235Z           "evidence": []
2026-06-04T00:32:38.4271390Z         },
2026-06-04T00:32:38.4272438Z         "impl": {
2026-06-04T00:32:38.4273558Z           "complete": true,
2026-06-04T00:32:38.4274752Z           "evidence": [
2026-06-04T00:32:38.4275887Z             {
2026-06-04T00:32:38.4277078Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:32:38.4278506Z               "line": 15
2026-06-04T00:32:38.4279735Z             },
2026-06-04T00:32:38.4280797Z             {
2026-06-04T00:32:38.4282042Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4283476Z               "line": 49
2026-06-04T00:32:38.4284626Z             },
2026-06-04T00:32:38.4285696Z             {
2026-06-04T00:32:38.4286914Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4288335Z               "line": 56
2026-06-04T00:32:38.4289579Z             },
2026-06-04T00:32:38.4290645Z             {
2026-06-04T00:32:38.4291868Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4293315Z               "line": 101
2026-06-04T00:32:38.4294472Z             },
2026-06-04T00:32:38.4295536Z             {
2026-06-04T00:32:38.4296771Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4298115Z               "line": 122
2026-06-04T00:32:38.4316508Z             }
2026-06-04T00:32:38.4317727Z           ]
2026-06-04T00:32:38.4318560Z         },
2026-06-04T00:32:38.4319335Z         "int": {
2026-06-04T00:32:38.4320170Z           "complete": false,
2026-06-04T00:32:38.4320834Z           "evidence": []
2026-06-04T00:32:38.4321473Z         },
2026-06-04T00:32:38.4322120Z         "unit": {
2026-06-04T00:32:38.4322783Z           "complete": true,
2026-06-04T00:32:38.4323438Z           "evidence": [
2026-06-04T00:32:38.4324082Z             {
2026-06-04T00:32:38.4324862Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:32:38.4325526Z               "line": 113
2026-06-04T00:32:38.4326164Z             },
2026-06-04T00:32:38.4326801Z             {
2026-06-04T00:32:38.4327581Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:32:38.4328236Z               "line": 119
2026-06-04T00:32:38.4328875Z             },
2026-06-04T00:32:38.4329654Z             {
2026-06-04T00:32:38.4330429Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:32:38.4331090Z               "line": 130
2026-06-04T00:32:38.4331734Z             },
2026-06-04T00:32:38.4332373Z             {
2026-06-04T00:32:38.4333194Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4333847Z               "line": 177
2026-06-04T00:32:38.4334483Z             },
2026-06-04T00:32:38.4335116Z             {
2026-06-04T00:32:38.4335906Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4336570Z               "line": 187
2026-06-04T00:32:38.4337198Z             },
2026-06-04T00:32:38.4337835Z             {
2026-06-04T00:32:38.4338635Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4339398Z               "line": 231
2026-06-04T00:32:38.4340052Z             },
2026-06-04T00:32:38.4340692Z             {
2026-06-04T00:32:38.4341486Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4342147Z               "line": 243
2026-06-04T00:32:38.4342775Z             },
2026-06-04T00:32:38.4343406Z             {
2026-06-04T00:32:38.4344218Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.4344872Z               "line": 251
2026-06-04T00:32:38.4345513Z             }
2026-06-04T00:32:38.4346134Z           ]
2026-06-04T00:32:38.4346774Z         }
2026-06-04T00:32:38.4347403Z       }
2026-06-04T00:32:38.4348021Z     },
2026-06-04T00:32:38.4348644Z     {
2026-06-04T00:32:38.4349487Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-04T00:32:38.4350894Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-04T00:32:38.4351579Z       "requiredStages": [
2026-06-04T00:32:38.4352218Z         "impl",
2026-06-04T00:32:38.4352858Z         "unit",
2026-06-04T00:32:38.4353490Z         "int"
2026-06-04T00:32:38.4354107Z       ],
2026-06-04T00:32:38.4354738Z       "stages": {
2026-06-04T00:32:38.4355375Z         "doc": {
2026-06-04T00:32:38.4356039Z           "complete": false,
2026-06-04T00:32:38.4356701Z           "evidence": []
2026-06-04T00:32:38.4357322Z         },
2026-06-04T00:32:38.4357986Z         "impl": {
2026-06-04T00:32:38.4358660Z           "complete": true,
2026-06-04T00:32:38.4359404Z           "evidence": [
2026-06-04T00:32:38.4360036Z             {
2026-06-04T00:32:38.4360809Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.4361474Z               "line": 225
2026-06-04T00:32:38.4362111Z             },
2026-06-04T00:32:38.4362730Z             {
2026-06-04T00:32:38.4363503Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.4364160Z               "line": 459
2026-06-04T00:32:38.4364786Z             },
2026-06-04T00:32:38.4365410Z             {
2026-06-04T00:32:38.4366185Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.4366842Z               "line": 482
2026-06-04T00:32:38.4367469Z             },
2026-06-04T00:32:38.4368087Z             {
2026-06-04T00:32:38.4368853Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.4369592Z               "line": 506
2026-06-04T00:32:38.4370383Z             },
2026-06-04T00:32:38.4371032Z             {
2026-06-04T00:32:38.4371936Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.4372602Z               "line": 426
2026-06-04T00:32:38.4373176Z             },
2026-06-04T00:32:38.4374317Z             {
2026-06-04T00:32:38.4375148Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.4375814Z               "line": 507
2026-06-04T00:32:38.4376440Z             },
2026-06-04T00:32:38.4377069Z             {
2026-06-04T00:32:38.4377844Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.4378502Z               "line": 551
2026-06-04T00:32:38.4379265Z             },
2026-06-04T00:32:38.4379899Z             {
2026-06-04T00:32:38.4380692Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T00:32:38.4381352Z               "line": 594
2026-06-04T00:32:38.4381973Z             },
2026-06-04T00:32:38.4382601Z             {
2026-06-04T00:32:38.4383403Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.4384062Z               "line": 46
2026-06-04T00:32:38.4384706Z             },
2026-06-04T00:32:38.4385324Z             {
2026-06-04T00:32:38.4386118Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.4386775Z               "line": 160
2026-06-04T00:32:38.4387397Z             }
2026-06-04T00:32:38.4388021Z           ]
2026-06-04T00:32:38.4388637Z         },
2026-06-04T00:32:38.4389355Z         "int": {
2026-06-04T00:32:38.4390026Z           "complete": true,
2026-06-04T00:32:38.4390682Z           "evidence": [
2026-06-04T00:32:38.4391317Z             {
2026-06-04T00:32:38.4392142Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-04T00:32:38.4392795Z               "line": 27
2026-06-04T00:32:38.4393421Z             },
2026-06-04T00:32:38.4394039Z             {
2026-06-04T00:32:38.4394857Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T00:32:38.4395534Z               "line": 125
2026-06-04T00:32:38.4396155Z             },
2026-06-04T00:32:38.4396783Z             {
2026-06-04T00:32:38.4397611Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T00:32:38.4398267Z               "line": 189
2026-06-04T00:32:38.4398885Z             }
2026-06-04T00:32:38.4399571Z           ]
2026-06-04T00:32:38.4400202Z         },
2026-06-04T00:32:38.4400834Z         "unit": {
2026-06-04T00:32:38.4401491Z           "complete": true,
2026-06-04T00:32:38.4402149Z           "evidence": [
2026-06-04T00:32:38.4402763Z             {
2026-06-04T00:32:38.4403540Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.4404188Z               "line": 282
2026-06-04T00:32:38.4404811Z             },
2026-06-04T00:32:38.4405433Z             {
2026-06-04T00:32:38.4406220Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.4406872Z               "line": 300
2026-06-04T00:32:38.4407498Z             },
2026-06-04T00:32:38.4408137Z             {
2026-06-04T00:32:38.4408921Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T00:32:38.4409649Z               "line": 318
2026-06-04T00:32:38.4409961Z             }
2026-06-04T00:32:38.4410599Z           ]
2026-06-04T00:32:38.4411225Z         }
2026-06-04T00:32:38.4411848Z       }
2026-06-04T00:32:38.4412472Z     },
2026-06-04T00:32:38.4413083Z     {
2026-06-04T00:32:38.4413836Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-04T00:32:38.4414915Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-04T00:32:38.4415586Z       "requiredStages": [
2026-06-04T00:32:38.4416241Z         "impl",
2026-06-04T00:32:38.4416868Z         "unit"
2026-06-04T00:32:38.4417502Z       ],
2026-06-04T00:32:38.4418144Z       "stages": {
2026-06-04T00:32:38.4418768Z         "doc": {
2026-06-04T00:32:38.4419516Z           "complete": false,
2026-06-04T00:32:38.4420156Z           "evidence": []
2026-06-04T00:32:38.4420765Z         },
2026-06-04T00:32:38.4421557Z         "impl": {
2026-06-04T00:32:38.4422227Z           "complete": true,
2026-06-04T00:32:38.4422977Z           "evidence": [
2026-06-04T00:32:38.4423599Z             {
2026-06-04T00:32:38.4424353Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4424988Z               "line": 33
2026-06-04T00:32:38.4425591Z             },
2026-06-04T00:32:38.4426201Z             {
2026-06-04T00:32:38.4426962Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4427593Z               "line": 61
2026-06-04T00:32:38.4428214Z             },
2026-06-04T00:32:38.4428821Z             {
2026-06-04T00:32:38.4429929Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4430600Z               "line": 70
2026-06-04T00:32:38.4431213Z             },
2026-06-04T00:32:38.4431827Z             {
2026-06-04T00:32:38.4432582Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4433211Z               "line": 79
2026-06-04T00:32:38.4433822Z             },
2026-06-04T00:32:38.4434452Z             {
2026-06-04T00:32:38.4435198Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4435848Z               "line": 88
2026-06-04T00:32:38.4436452Z             },
2026-06-04T00:32:38.4437061Z             {
2026-06-04T00:32:38.4437815Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4438435Z               "line": 96
2026-06-04T00:32:38.4439158Z             },
2026-06-04T00:32:38.4439681Z             {
2026-06-04T00:32:38.4450419Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4451193Z               "line": 105
2026-06-04T00:32:38.4451863Z             },
2026-06-04T00:32:38.4452541Z             {
2026-06-04T00:32:38.4453334Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4454004Z               "line": 112
2026-06-04T00:32:38.4454698Z             },
2026-06-04T00:32:38.4455362Z             {
2026-06-04T00:32:38.4456240Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4456882Z               "line": 119
2026-06-04T00:32:38.4457450Z             },
2026-06-04T00:32:38.4458043Z             {
2026-06-04T00:32:38.4458817Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4459604Z               "line": 186
2026-06-04T00:32:38.4460288Z             },
2026-06-04T00:32:38.4460849Z             {
2026-06-04T00:32:38.4462227Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4463096Z               "line": 198
2026-06-04T00:32:38.4464267Z             },
2026-06-04T00:32:38.4465026Z             {
2026-06-04T00:32:38.4466731Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4468090Z               "line": 285
2026-06-04T00:32:38.4469716Z             }
2026-06-04T00:32:38.4470533Z           ]
2026-06-04T00:32:38.4471768Z         },
2026-06-04T00:32:38.4472557Z         "int": {
2026-06-04T00:32:38.4473731Z           "complete": false,
2026-06-04T00:32:38.4474573Z           "evidence": []
2026-06-04T00:32:38.4475775Z         },
2026-06-04T00:32:38.4476415Z         "unit": {
2026-06-04T00:32:38.4477619Z           "complete": true,
2026-06-04T00:32:38.4477982Z           "evidence": [
2026-06-04T00:32:38.4478625Z             {
2026-06-04T00:32:38.4479484Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4480139Z               "line": 355
2026-06-04T00:32:38.4480745Z             },
2026-06-04T00:32:38.4481407Z             {
2026-06-04T00:32:38.4482166Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4482801Z               "line": 381
2026-06-04T00:32:38.4483413Z             },
2026-06-04T00:32:38.4484027Z             {
2026-06-04T00:32:38.4484773Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4485414Z               "line": 394
2026-06-04T00:32:38.4486023Z             },
2026-06-04T00:32:38.4486631Z             {
2026-06-04T00:32:38.4487383Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4488217Z               "line": 436
2026-06-04T00:32:38.4488852Z             }
2026-06-04T00:32:38.4491415Z           ]
2026-06-04T00:32:38.4491749Z         }
2026-06-04T00:32:38.4492063Z       }
2026-06-04T00:32:38.4492388Z     },
2026-06-04T00:32:38.4492703Z     {
2026-06-04T00:32:38.4493126Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-04T00:32:38.4493898Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-04T00:32:38.4494266Z       "requiredStages": [
2026-06-04T00:32:38.4494595Z         "impl",
2026-06-04T00:32:38.4494914Z         "unit"
2026-06-04T00:32:38.4495237Z       ],
2026-06-04T00:32:38.4495561Z       "stages": {
2026-06-04T00:32:38.4495885Z         "doc": {
2026-06-04T00:32:38.4496295Z           "complete": false,
2026-06-04T00:32:38.4496643Z           "evidence": []
2026-06-04T00:32:38.4496962Z         },
2026-06-04T00:32:38.4497286Z         "impl": {
2026-06-04T00:32:38.4497646Z           "complete": true,
2026-06-04T00:32:38.4498014Z           "evidence": [
2026-06-04T00:32:38.4498365Z             {
2026-06-04T00:32:38.4498835Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.4499393Z               "line": 107
2026-06-04T00:32:38.4499727Z             },
2026-06-04T00:32:38.4500041Z             {
2026-06-04T00:32:38.4500518Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.4500855Z               "line": 59
2026-06-04T00:32:38.4501184Z             }
2026-06-04T00:32:38.4501497Z           ]
2026-06-04T00:32:38.4501818Z         },
2026-06-04T00:32:38.4502153Z         "int": {
2026-06-04T00:32:38.4502507Z           "complete": false,
2026-06-04T00:32:38.4502856Z           "evidence": []
2026-06-04T00:32:38.4503175Z         },
2026-06-04T00:32:38.4503795Z         "unit": {
2026-06-04T00:32:38.4504453Z           "complete": true,
2026-06-04T00:32:38.4505032Z           "evidence": [
2026-06-04T00:32:38.4505426Z             {
2026-06-04T00:32:38.4505865Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.4506232Z               "line": 225
2026-06-04T00:32:38.4506549Z             },
2026-06-04T00:32:38.4506928Z             {
2026-06-04T00:32:38.4507408Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.4507760Z               "line": 237
2026-06-04T00:32:38.4508083Z             },
2026-06-04T00:32:38.4508402Z             {
2026-06-04T00:32:38.4508873Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.4509360Z               "line": 247
2026-06-04T00:32:38.4509686Z             }
2026-06-04T00:32:38.4510004Z           ]
2026-06-04T00:32:38.4510333Z         }
2026-06-04T00:32:38.4510662Z       }
2026-06-04T00:32:38.4510976Z     },
2026-06-04T00:32:38.4511295Z     {
2026-06-04T00:32:38.4511709Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-04T00:32:38.4512247Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-04T00:32:38.4512616Z       "requiredStages": [],
2026-06-04T00:32:38.4512944Z       "stages": {
2026-06-04T00:32:38.4513288Z         "doc": {
2026-06-04T00:32:38.4513678Z           "complete": false,
2026-06-04T00:32:38.4514040Z           "evidence": []
2026-06-04T00:32:38.4514357Z         },
2026-06-04T00:32:38.4514685Z         "impl": {
2026-06-04T00:32:38.4515059Z           "complete": false,
2026-06-04T00:32:38.4515410Z           "evidence": []
2026-06-04T00:32:38.4515729Z         },
2026-06-04T00:32:38.4516048Z         "int": {
2026-06-04T00:32:38.4516411Z           "complete": false,
2026-06-04T00:32:38.4516745Z           "evidence": []
2026-06-04T00:32:38.4517061Z         },
2026-06-04T00:32:38.4517379Z         "unit": {
2026-06-04T00:32:38.4517732Z           "complete": false,
2026-06-04T00:32:38.4518076Z           "evidence": []
2026-06-04T00:32:38.4518620Z         }
2026-06-04T00:32:38.4519263Z       }
2026-06-04T00:32:38.4519808Z     },
2026-06-04T00:32:38.4520263Z     {
2026-06-04T00:32:38.4520732Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-04T00:32:38.4521537Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-04T00:32:38.4521909Z       "requiredStages": [
2026-06-04T00:32:38.4522309Z         "impl",
2026-06-04T00:32:38.4522679Z         "unit"
2026-06-04T00:32:38.4522993Z       ],
2026-06-04T00:32:38.4523324Z       "stages": {
2026-06-04T00:32:38.4523644Z         "doc": {
2026-06-04T00:32:38.4524007Z           "complete": false,
2026-06-04T00:32:38.4524352Z           "evidence": []
2026-06-04T00:32:38.4524667Z         },
2026-06-04T00:32:38.4524998Z         "impl": {
2026-06-04T00:32:38.4525348Z           "complete": true,
2026-06-04T00:32:38.4525694Z           "evidence": [
2026-06-04T00:32:38.4526005Z             {
2026-06-04T00:32:38.4526540Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.4526886Z               "line": 347
2026-06-04T00:32:38.4527196Z             },
2026-06-04T00:32:38.4527521Z             {
2026-06-04T00:32:38.4527978Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.4528323Z               "line": 28
2026-06-04T00:32:38.4528653Z             }
2026-06-04T00:32:38.4528979Z           ]
2026-06-04T00:32:38.4529480Z         },
2026-06-04T00:32:38.4529804Z         "int": {
2026-06-04T00:32:38.4530215Z           "complete": false,
2026-06-04T00:32:38.4530557Z           "evidence": []
2026-06-04T00:32:38.4530878Z         },
2026-06-04T00:32:38.4531204Z         "unit": {
2026-06-04T00:32:38.4531563Z           "complete": true,
2026-06-04T00:32:38.4531911Z           "evidence": [
2026-06-04T00:32:38.4532225Z             {
2026-06-04T00:32:38.4532680Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T00:32:38.4533018Z               "line": 199
2026-06-04T00:32:38.4533339Z             }
2026-06-04T00:32:38.4533652Z           ]
2026-06-04T00:32:38.4533977Z         }
2026-06-04T00:32:38.4534297Z       }
2026-06-04T00:32:38.4534603Z     },
2026-06-04T00:32:38.4534923Z     {
2026-06-04T00:32:38.4535330Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-04T00:32:38.4535878Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-04T00:32:38.4536237Z       "requiredStages": [],
2026-06-04T00:32:38.4536585Z       "stages": {
2026-06-04T00:32:38.4536914Z         "doc": {
2026-06-04T00:32:38.4537540Z           "complete": false,
2026-06-04T00:32:38.4538148Z           "evidence": []
2026-06-04T00:32:38.4538661Z         },
2026-06-04T00:32:38.4539152Z         "impl": {
2026-06-04T00:32:38.4539509Z           "complete": false,
2026-06-04T00:32:38.4539905Z           "evidence": []
2026-06-04T00:32:38.4540231Z         },
2026-06-04T00:32:38.4540552Z         "int": {
2026-06-04T00:32:38.4540922Z           "complete": false,
2026-06-04T00:32:38.4541267Z           "evidence": []
2026-06-04T00:32:38.4541597Z         },
2026-06-04T00:32:38.4541919Z         "unit": {
2026-06-04T00:32:38.4542277Z           "complete": false,
2026-06-04T00:32:38.4542623Z           "evidence": []
2026-06-04T00:32:38.4542942Z         }
2026-06-04T00:32:38.4543262Z       }
2026-06-04T00:32:38.4543949Z     },
2026-06-04T00:32:38.4544625Z     {
2026-06-04T00:32:38.4545364Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-04T00:32:38.4546320Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-04T00:32:38.4547169Z       "requiredStages": [
2026-06-04T00:32:38.4547714Z         "impl",
2026-06-04T00:32:38.4548325Z         "unit"
2026-06-04T00:32:38.4549169Z       ],
2026-06-04T00:32:38.4549789Z       "stages": {
2026-06-04T00:32:38.4550333Z         "doc": {
2026-06-04T00:32:38.4550947Z           "complete": false,
2026-06-04T00:32:38.4551550Z           "evidence": []
2026-06-04T00:32:38.4552697Z         },
2026-06-04T00:32:38.4553275Z         "impl": {
2026-06-04T00:32:38.4553827Z           "complete": true,
2026-06-04T00:32:38.4554882Z           "evidence": [
2026-06-04T00:32:38.4555582Z             {
2026-06-04T00:32:38.4556408Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.4556992Z               "line": 325
2026-06-04T00:32:38.4557531Z             },
2026-06-04T00:32:38.4558265Z             {
2026-06-04T00:32:38.4559203Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.4559931Z               "line": 361
2026-06-04T00:32:38.4560444Z             }
2026-06-04T00:32:38.4560976Z           ]
2026-06-04T00:32:38.4561497Z         },
2026-06-04T00:32:38.4561821Z         "int": {
2026-06-04T00:32:38.4562483Z           "complete": false,
2026-06-04T00:32:38.4563083Z           "evidence": []
2026-06-04T00:32:38.4563431Z         },
2026-06-04T00:32:38.4563758Z         "unit": {
2026-06-04T00:32:38.4564117Z           "complete": true,
2026-06-04T00:32:38.4564461Z           "evidence": [
2026-06-04T00:32:38.4564776Z             {
2026-06-04T00:32:38.4565266Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.4565601Z               "line": 453
2026-06-04T00:32:38.4565925Z             }
2026-06-04T00:32:38.4566354Z           ]
2026-06-04T00:32:38.4566788Z         }
2026-06-04T00:32:38.4567239Z       }
2026-06-04T00:32:38.4567811Z     },
2026-06-04T00:32:38.4568381Z     {
2026-06-04T00:32:38.4568832Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-04T00:32:38.4569605Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-04T00:32:38.4569973Z       "requiredStages": [
2026-06-04T00:32:38.4570309Z         "impl",
2026-06-04T00:32:38.4570806Z         "unit"
2026-06-04T00:32:38.4571123Z       ],
2026-06-04T00:32:38.4571456Z       "stages": {
2026-06-04T00:32:38.4571779Z         "doc": {
2026-06-04T00:32:38.4572142Z           "complete": false,
2026-06-04T00:32:38.4572483Z           "evidence": []
2026-06-04T00:32:38.4572805Z         },
2026-06-04T00:32:38.4573137Z         "impl": {
2026-06-04T00:32:38.4573486Z           "complete": true,
2026-06-04T00:32:38.4573841Z           "evidence": [
2026-06-04T00:32:38.4574159Z             {
2026-06-04T00:32:38.4574653Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.4574989Z               "line": 35
2026-06-04T00:32:38.4576432Z             }
2026-06-04T00:32:38.4595766Z           ]
2026-06-04T00:32:38.4596479Z         },
2026-06-04T00:32:38.4597139Z         "int": {
2026-06-04T00:32:38.4597813Z           "complete": false,
2026-06-04T00:32:38.4598469Z           "evidence": []
2026-06-04T00:32:38.4599269Z         },
2026-06-04T00:32:38.4599912Z         "unit": {
2026-06-04T00:32:38.4600574Z           "complete": true,
2026-06-04T00:32:38.4601207Z           "evidence": [
2026-06-04T00:32:38.4601819Z             {
2026-06-04T00:32:38.4602595Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T00:32:38.4603235Z               "line": 217
2026-06-04T00:32:38.4603851Z             }
2026-06-04T00:32:38.4604493Z           ]
2026-06-04T00:32:38.4605108Z         }
2026-06-04T00:32:38.4605715Z       }
2026-06-04T00:32:38.4606307Z     },
2026-06-04T00:32:38.4606907Z     {
2026-06-04T00:32:38.4607604Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-04T00:32:38.4608993Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-04T00:32:38.4609780Z       "requiredStages": [
2026-06-04T00:32:38.4610434Z         "impl",
2026-06-04T00:32:38.4611080Z         "unit"
2026-06-04T00:32:38.4611707Z       ],
2026-06-04T00:32:38.4612338Z       "stages": {
2026-06-04T00:32:38.4612971Z         "doc": {
2026-06-04T00:32:38.4613637Z           "complete": false,
2026-06-04T00:32:38.4614298Z           "evidence": []
2026-06-04T00:32:38.4614921Z         },
2026-06-04T00:32:38.4615548Z         "impl": {
2026-06-04T00:32:38.4616215Z           "complete": true,
2026-06-04T00:32:38.4616876Z           "evidence": [
2026-06-04T00:32:38.4617503Z             {
2026-06-04T00:32:38.4618299Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.4618946Z               "line": 159
2026-06-04T00:32:38.4619648Z             },
2026-06-04T00:32:38.4619978Z             {
2026-06-04T00:32:38.4620777Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.4621440Z               "line": 150
2026-06-04T00:32:38.4622238Z             }
2026-06-04T00:32:38.4622901Z           ]
2026-06-04T00:32:38.4623676Z         },
2026-06-04T00:32:38.4624311Z         "int": {
2026-06-04T00:32:38.4624983Z           "complete": false,
2026-06-04T00:32:38.4625649Z           "evidence": []
2026-06-04T00:32:38.4626270Z         },
2026-06-04T00:32:38.4626908Z         "unit": {
2026-06-04T00:32:38.4627563Z           "complete": true,
2026-06-04T00:32:38.4628218Z           "evidence": [
2026-06-04T00:32:38.4628846Z             {
2026-06-04T00:32:38.4629723Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.4630382Z               "line": 382
2026-06-04T00:32:38.4631020Z             },
2026-06-04T00:32:38.4631638Z             {
2026-06-04T00:32:38.4632421Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.4633070Z               "line": 393
2026-06-04T00:32:38.4633700Z             },
2026-06-04T00:32:38.4634326Z             {
2026-06-04T00:32:38.4635126Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.4636279Z               "line": 409
2026-06-04T00:32:38.4636954Z             },
2026-06-04T00:32:38.4637598Z             {
2026-06-04T00:32:38.4638397Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.4639158Z               "line": 423
2026-06-04T00:32:38.4639801Z             }
2026-06-04T00:32:38.4640435Z           ]
2026-06-04T00:32:38.4641056Z         }
2026-06-04T00:32:38.4641681Z       }
2026-06-04T00:32:38.4642296Z     },
2026-06-04T00:32:38.4642914Z     {
2026-06-04T00:32:38.4643670Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-04T00:32:38.4644617Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-04T00:32:38.4645289Z       "requiredStages": [
2026-06-04T00:32:38.4645930Z         "impl",
2026-06-04T00:32:38.4646557Z         "unit"
2026-06-04T00:32:38.4647180Z       ],
2026-06-04T00:32:38.4647810Z       "stages": {
2026-06-04T00:32:38.4648442Z         "doc": {
2026-06-04T00:32:38.4649213Z           "complete": false,
2026-06-04T00:32:38.4649868Z           "evidence": []
2026-06-04T00:32:38.4650505Z         },
2026-06-04T00:32:38.4651134Z         "impl": {
2026-06-04T00:32:38.4651794Z           "complete": true,
2026-06-04T00:32:38.4652437Z           "evidence": [
2026-06-04T00:32:38.4653055Z             {
2026-06-04T00:32:38.4653812Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.4654458Z               "line": 92
2026-06-04T00:32:38.4655077Z             },
2026-06-04T00:32:38.4655699Z             {
2026-06-04T00:32:38.4656456Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.4657102Z               "line": 96
2026-06-04T00:32:38.4657718Z             }
2026-06-04T00:32:38.4658332Z           ]
2026-06-04T00:32:38.4658950Z         },
2026-06-04T00:32:38.4659624Z         "int": {
2026-06-04T00:32:38.4660285Z           "complete": false,
2026-06-04T00:32:38.4660940Z           "evidence": []
2026-06-04T00:32:38.4661554Z         },
2026-06-04T00:32:38.4662205Z         "unit": {
2026-06-04T00:32:38.4662874Z           "complete": true,
2026-06-04T00:32:38.4663537Z           "evidence": [
2026-06-04T00:32:38.4664160Z             {
2026-06-04T00:32:38.4664918Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.4665571Z               "line": 235
2026-06-04T00:32:38.4666203Z             },
2026-06-04T00:32:38.4666819Z             {
2026-06-04T00:32:38.4667573Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T00:32:38.4668221Z               "line": 139
2026-06-04T00:32:38.4668842Z             },
2026-06-04T00:32:38.4669551Z             {
2026-06-04T00:32:38.4670309Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.4670960Z               "line": 375
2026-06-04T00:32:38.4671588Z             },
2026-06-04T00:32:38.4672198Z             {
2026-06-04T00:32:38.4672965Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.4673612Z               "line": 405
2026-06-04T00:32:38.4674388Z             }
2026-06-04T00:32:38.4675038Z           ]
2026-06-04T00:32:38.4675759Z         }
2026-06-04T00:32:38.4676385Z       }
2026-06-04T00:32:38.4677006Z     },
2026-06-04T00:32:38.4677614Z     {
2026-06-04T00:32:38.4678333Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-04T00:32:38.4679517Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-04T00:32:38.4680202Z       "requiredStages": [
2026-06-04T00:32:38.4680837Z         "impl",
2026-06-04T00:32:38.4681460Z         "unit"
2026-06-04T00:32:38.4682089Z       ],
2026-06-04T00:32:38.4682736Z       "stages": {
2026-06-04T00:32:38.4683360Z         "doc": {
2026-06-04T00:32:38.4684037Z           "complete": false,
2026-06-04T00:32:38.4684681Z           "evidence": []
2026-06-04T00:32:38.4685309Z         },
2026-06-04T00:32:38.4685946Z         "impl": {
2026-06-04T00:32:38.4686602Z           "complete": true,
2026-06-04T00:32:38.4687244Z           "evidence": [
2026-06-04T00:32:38.4687872Z             {
2026-06-04T00:32:38.4688653Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4689404Z               "line": 142
2026-06-04T00:32:38.4690026Z             },
2026-06-04T00:32:38.4690659Z             {
2026-06-04T00:32:38.4691434Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4692086Z               "line": 187
2026-06-04T00:32:38.4692715Z             },
2026-06-04T00:32:38.4693338Z             {
2026-06-04T00:32:38.4694098Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4694754Z               "line": 199
2026-06-04T00:32:38.4695369Z             }
2026-06-04T00:32:38.4695996Z           ]
2026-06-04T00:32:38.4696615Z         },
2026-06-04T00:32:38.4697235Z         "int": {
2026-06-04T00:32:38.4697904Z           "complete": false,
2026-06-04T00:32:38.4698558Z           "evidence": []
2026-06-04T00:32:38.4699256Z         },
2026-06-04T00:32:38.4699891Z         "unit": {
2026-06-04T00:32:38.4700543Z           "complete": true,
2026-06-04T00:32:38.4701208Z           "evidence": [
2026-06-04T00:32:38.4701831Z             {
2026-06-04T00:32:38.4702618Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4703275Z               "line": 335
2026-06-04T00:32:38.4703898Z             },
2026-06-04T00:32:38.4704554Z             {
2026-06-04T00:32:38.4705317Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.4705967Z               "line": 364
2026-06-04T00:32:38.4706595Z             }
2026-06-04T00:32:38.4707216Z           ]
2026-06-04T00:32:38.4707819Z         }
2026-06-04T00:32:38.4708433Z       }
2026-06-04T00:32:38.4709148Z     },
2026-06-04T00:32:38.4709777Z     {
2026-06-04T00:32:38.4710431Z       "id": "REQ-INFRA-1",
2026-06-04T00:32:38.4711537Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-04T00:32:38.4712229Z       "requiredStages": [],
2026-06-04T00:32:38.4712871Z       "stages": {
2026-06-04T00:32:38.4713488Z         "doc": {
2026-06-04T00:32:38.4714173Z           "complete": false,
2026-06-04T00:32:38.4714826Z           "evidence": []
2026-06-04T00:32:38.4715469Z         },
2026-06-04T00:32:38.4716110Z         "impl": {
2026-06-04T00:32:38.4716767Z           "complete": false,
2026-06-04T00:32:38.4717422Z           "evidence": []
2026-06-04T00:32:38.4718035Z         },
2026-06-04T00:32:38.4718664Z         "int": {
2026-06-04T00:32:38.4719420Z           "complete": false,
2026-06-04T00:32:38.4720074Z           "evidence": []
2026-06-04T00:32:38.4720698Z         },
2026-06-04T00:32:38.4721330Z         "unit": {
2026-06-04T00:32:38.4721991Z           "complete": false,
2026-06-04T00:32:38.4722653Z           "evidence": []
2026-06-04T00:32:38.4723268Z         }
2026-06-04T00:32:38.4723895Z       }
2026-06-04T00:32:38.4724516Z     },
2026-06-04T00:32:38.4725128Z     {
2026-06-04T00:32:38.4725785Z       "id": "REQ-INST-1",
2026-06-04T00:32:38.4726718Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-04T00:32:38.4727605Z       "requiredStages": [],
2026-06-04T00:32:38.4728289Z       "stages": {
2026-06-04T00:32:38.4728928Z         "doc": {
2026-06-04T00:32:38.4729850Z           "complete": false,
2026-06-04T00:32:38.4730515Z           "evidence": []
2026-06-04T00:32:38.4731138Z         },
2026-06-04T00:32:38.4731776Z         "impl": {
2026-06-04T00:32:38.4732440Z           "complete": false,
2026-06-04T00:32:38.4733104Z           "evidence": []
2026-06-04T00:32:38.4733749Z         },
2026-06-04T00:32:38.4734405Z         "int": {
2026-06-04T00:32:38.4735082Z           "complete": false,
2026-06-04T00:32:38.4735745Z           "evidence": []
2026-06-04T00:32:38.4736370Z         },
2026-06-04T00:32:38.4737010Z         "unit": {
2026-06-04T00:32:38.4737678Z           "complete": false,
2026-06-04T00:32:38.4738327Z           "evidence": []
2026-06-04T00:32:38.4738956Z         }
2026-06-04T00:32:38.4739612Z       }
2026-06-04T00:32:38.4740214Z     },
2026-06-04T00:32:38.4740805Z     {
2026-06-04T00:32:38.4741452Z       "id": "REQ-INST-10",
2026-06-04T00:32:38.4742618Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-04T00:32:38.4743288Z       "requiredStages": [
2026-06-04T00:32:38.4743910Z         "impl",
2026-06-04T00:32:38.4744527Z         "unit"
2026-06-04T00:32:38.4745127Z       ],
2026-06-04T00:32:38.4745749Z       "stages": {
2026-06-04T00:32:38.4746348Z         "doc": {
2026-06-04T00:32:38.4747007Z           "complete": false,
2026-06-04T00:32:38.4747645Z           "evidence": []
2026-06-04T00:32:38.4748243Z         },
2026-06-04T00:32:38.4748857Z         "impl": {
2026-06-04T00:32:38.4749611Z           "complete": true,
2026-06-04T00:32:38.4750259Z           "evidence": [
2026-06-04T00:32:38.4750899Z             {
2026-06-04T00:32:38.4751698Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4752352Z               "line": 351
2026-06-04T00:32:38.4752979Z             },
2026-06-04T00:32:38.4753601Z             {
2026-06-04T00:32:38.4754419Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4755079Z               "line": 406
2026-06-04T00:32:38.4755712Z             },
2026-06-04T00:32:38.4756333Z             {
2026-06-04T00:32:38.4757094Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4757743Z               "line": 13
2026-06-04T00:32:38.4758363Z             },
2026-06-04T00:32:38.4758979Z             {
2026-06-04T00:32:38.4759921Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4760573Z               "line": 67
2026-06-04T00:32:38.4761205Z             }
2026-06-04T00:32:38.4761830Z           ]
2026-06-04T00:32:38.4762440Z         },
2026-06-04T00:32:38.4763075Z         "int": {
2026-06-04T00:32:38.4763746Z           "complete": false,
2026-06-04T00:32:38.4764396Z           "evidence": []
2026-06-04T00:32:38.4765018Z         },
2026-06-04T00:32:38.4765644Z         "unit": {
2026-06-04T00:32:38.4766306Z           "complete": true,
2026-06-04T00:32:38.4766953Z           "evidence": [
2026-06-04T00:32:38.4767586Z             {
2026-06-04T00:32:38.4768393Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4769185Z               "line": 550
2026-06-04T00:32:38.4769812Z             },
2026-06-04T00:32:38.4770435Z             {
2026-06-04T00:32:38.4771226Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4771893Z               "line": 559
2026-06-04T00:32:38.4772517Z             },
2026-06-04T00:32:38.4773132Z             {
2026-06-04T00:32:38.4773925Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4774581Z               "line": 567
2026-06-04T00:32:38.4775199Z             },
2026-06-04T00:32:38.4775821Z             {
2026-06-04T00:32:38.4776613Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4777271Z               "line": 580
2026-06-04T00:32:38.4777903Z             },
2026-06-04T00:32:38.4778519Z             {
2026-06-04T00:32:38.4779547Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4780225Z               "line": 593
2026-06-04T00:32:38.4780964Z             },
2026-06-04T00:32:38.4781595Z             {
2026-06-04T00:32:38.4782398Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4783058Z               "line": 609
2026-06-04T00:32:38.4783690Z             },
2026-06-04T00:32:38.4784310Z             {
2026-06-04T00:32:38.4785108Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4785756Z               "line": 838
2026-06-04T00:32:38.4786399Z             },
2026-06-04T00:32:38.4787023Z             {
2026-06-04T00:32:38.4787781Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4788433Z               "line": 121
2026-06-04T00:32:38.4789196Z             },
2026-06-04T00:32:38.4789817Z             {
2026-06-04T00:32:38.4790585Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4791236Z               "line": 142
2026-06-04T00:32:38.4791888Z             },
2026-06-04T00:32:38.4792517Z             {
2026-06-04T00:32:38.4793273Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4793939Z               "line": 150
2026-06-04T00:32:38.4794565Z             },
2026-06-04T00:32:38.4795183Z             {
2026-06-04T00:32:38.4795961Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T00:32:38.4796606Z               "line": 158
2026-06-04T00:32:38.4797237Z             }
2026-06-04T00:32:38.4797859Z           ]
2026-06-04T00:32:38.4798475Z         }
2026-06-04T00:32:38.4799165Z       }
2026-06-04T00:32:38.4799786Z     },
2026-06-04T00:32:38.4800396Z     {
2026-06-04T00:32:38.4801064Z       "id": "REQ-INST-11",
2026-06-04T00:32:38.4802255Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-04T00:32:38.4802934Z       "requiredStages": [
2026-06-04T00:32:38.4803570Z         "impl",
2026-06-04T00:32:38.4804197Z         "unit"
2026-06-04T00:32:38.4804826Z       ],
2026-06-04T00:32:38.4805478Z       "stages": {
2026-06-04T00:32:38.4806113Z         "doc": {
2026-06-04T00:32:38.4806799Z           "complete": false,
2026-06-04T00:32:38.4807445Z           "evidence": []
2026-06-04T00:32:38.4808068Z         },
2026-06-04T00:32:38.4808702Z         "impl": {
2026-06-04T00:32:38.4809442Z           "complete": true,
2026-06-04T00:32:38.4810096Z           "evidence": [
2026-06-04T00:32:38.4810714Z             {
2026-06-04T00:32:38.4811503Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4812158Z               "line": 253
2026-06-04T00:32:38.4812777Z             },
2026-06-04T00:32:38.4813409Z             {
2026-06-04T00:32:38.4814179Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:32:38.4814824Z               "line": 59
2026-06-04T00:32:38.4815449Z             },
2026-06-04T00:32:38.4816069Z             {
2026-06-04T00:32:38.4816791Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.4817443Z               "line": 586
2026-06-04T00:32:38.4818080Z             }
2026-06-04T00:32:38.4818709Z           ]
2026-06-04T00:32:38.4819418Z         },
2026-06-04T00:32:38.4820060Z         "int": {
2026-06-04T00:32:38.4820725Z           "complete": false,
2026-06-04T00:32:38.4821371Z           "evidence": []
2026-06-04T00:32:38.4821994Z         },
2026-06-04T00:32:38.4822624Z         "unit": {
2026-06-04T00:32:38.4823280Z           "complete": true,
2026-06-04T00:32:38.4823929Z           "evidence": [
2026-06-04T00:32:38.4824544Z             {
2026-06-04T00:32:38.4825337Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4825991Z               "line": 702
2026-06-04T00:32:38.4826550Z             },
2026-06-04T00:32:38.4827679Z             {
2026-06-04T00:32:38.4828489Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4829237Z               "line": 725
2026-06-04T00:32:38.4829871Z             },
2026-06-04T00:32:38.4830490Z             {
2026-06-04T00:32:38.4831434Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:32:38.4832111Z               "line": 156
2026-06-04T00:32:38.4832843Z             },
2026-06-04T00:32:38.4833474Z             {
2026-06-04T00:32:38.4834256Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:32:38.4834910Z               "line": 177
2026-06-04T00:32:38.4835542Z             },
2026-06-04T00:32:38.4836105Z             {
2026-06-04T00:32:38.4837356Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T00:32:38.4838047Z               "line": 209
2026-06-04T00:32:38.4838686Z             },
2026-06-04T00:32:38.4839414Z             {
2026-06-04T00:32:38.4840153Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.4840825Z               "line": 635
2026-06-04T00:32:38.4841462Z             }
2026-06-04T00:32:38.4842080Z           ]
2026-06-04T00:32:38.4842709Z         }
2026-06-04T00:32:38.4843339Z       }
2026-06-04T00:32:38.4843954Z     },
2026-06-04T00:32:38.4844576Z     {
2026-06-04T00:32:38.4845265Z       "id": "REQ-INST-12",
2026-06-04T00:32:38.4846774Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-04T00:32:38.4847474Z       "requiredStages": [
2026-06-04T00:32:38.4848111Z         "impl",
2026-06-04T00:32:38.4848754Z         "unit"
2026-06-04T00:32:38.4849476Z       ],
2026-06-04T00:32:38.4850115Z       "stages": {
2026-06-04T00:32:38.4850750Z         "doc": {
2026-06-04T00:32:38.4851420Z           "complete": false,
2026-06-04T00:32:38.4852075Z           "evidence": []
2026-06-04T00:32:38.4852696Z         },
2026-06-04T00:32:38.4853327Z         "impl": {
2026-06-04T00:32:38.4853992Z           "complete": true,
2026-06-04T00:32:38.4854638Z           "evidence": [
2026-06-04T00:32:38.4855271Z             {
2026-06-04T00:32:38.4856069Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4856725Z               "line": 305
2026-06-04T00:32:38.4857362Z             },
2026-06-04T00:32:38.4858004Z             {
2026-06-04T00:32:38.4858796Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4859567Z               "line": 362
2026-06-04T00:32:38.4860200Z             },
2026-06-04T00:32:38.4860823Z             {
2026-06-04T00:32:38.4861621Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4862277Z               "line": 420
2026-06-04T00:32:38.4862903Z             },
2026-06-04T00:32:38.4863523Z             {
2026-06-04T00:32:38.4864293Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.4864941Z               "line": 87
2026-06-04T00:32:38.4865557Z             },
2026-06-04T00:32:38.4866185Z             {
2026-06-04T00:32:38.4866966Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.4867617Z               "line": 216
2026-06-04T00:32:38.4868244Z             },
2026-06-04T00:32:38.4868864Z             {
2026-06-04T00:32:38.4869746Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4870424Z               "line": 132
2026-06-04T00:32:38.4871043Z             }
2026-06-04T00:32:38.4871681Z           ]
2026-06-04T00:32:38.4872295Z         },
2026-06-04T00:32:38.4872918Z         "int": {
2026-06-04T00:32:38.4873587Z           "complete": false,
2026-06-04T00:32:38.4874242Z           "evidence": []
2026-06-04T00:32:38.4874865Z         },
2026-06-04T00:32:38.4875501Z         "unit": {
2026-06-04T00:32:38.4876156Z           "complete": true,
2026-06-04T00:32:38.4876803Z           "evidence": [
2026-06-04T00:32:38.4877425Z             {
2026-06-04T00:32:38.4878220Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4878867Z               "line": 760
2026-06-04T00:32:38.4879571Z             },
2026-06-04T00:32:38.4880201Z             {
2026-06-04T00:32:38.4881000Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4881645Z               "line": 777
2026-06-04T00:32:38.4882272Z             },
2026-06-04T00:32:38.4883058Z             {
2026-06-04T00:32:38.4883889Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.4884683Z               "line": 808
2026-06-04T00:32:38.4885305Z             },
2026-06-04T00:32:38.4885933Z             {
2026-06-04T00:32:38.4886714Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.4887359Z               "line": 350
2026-06-04T00:32:38.4887990Z             },
2026-06-04T00:32:38.4888614Z             {
2026-06-04T00:32:38.4889499Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4890166Z               "line": 169
2026-06-04T00:32:38.4890790Z             },
2026-06-04T00:32:38.4891419Z             {
2026-06-04T00:32:38.4892222Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4892876Z               "line": 181
2026-06-04T00:32:38.4893509Z             },
2026-06-04T00:32:38.4894142Z             {
2026-06-04T00:32:38.4894935Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4895605Z               "line": 198
2026-06-04T00:32:38.4896223Z             }
2026-06-04T00:32:38.4896860Z           ]
2026-06-04T00:32:38.4897481Z         }
2026-06-04T00:32:38.4898099Z       }
2026-06-04T00:32:38.4898709Z     },
2026-06-04T00:32:38.4899406Z     {
2026-06-04T00:32:38.4900090Z       "id": "REQ-INST-13",
2026-06-04T00:32:38.4901144Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-04T00:32:38.4901810Z       "requiredStages": [
2026-06-04T00:32:38.4902448Z         "impl",
2026-06-04T00:32:38.4903080Z         "unit"
2026-06-04T00:32:38.4903694Z       ],
2026-06-04T00:32:38.4904345Z       "stages": {
2026-06-04T00:32:38.4904973Z         "doc": {
2026-06-04T00:32:38.4905652Z           "complete": false,
2026-06-04T00:32:38.4906308Z           "evidence": []
2026-06-04T00:32:38.4906929Z         },
2026-06-04T00:32:38.4907557Z         "impl": {
2026-06-04T00:32:38.4908228Z           "complete": true,
2026-06-04T00:32:38.4908871Z           "evidence": [
2026-06-04T00:32:38.4909596Z             {
2026-06-04T00:32:38.4910400Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4911071Z               "line": 155
2026-06-04T00:32:38.4911694Z             }
2026-06-04T00:32:38.4912308Z           ]
2026-06-04T00:32:38.4912927Z         },
2026-06-04T00:32:38.4913549Z         "int": {
2026-06-04T00:32:38.4914221Z           "complete": false,
2026-06-04T00:32:38.4914870Z           "evidence": []
2026-06-04T00:32:38.4915480Z         },
2026-06-04T00:32:38.4916109Z         "unit": {
2026-06-04T00:32:38.4916765Z           "complete": true,
2026-06-04T00:32:38.4917407Z           "evidence": [
2026-06-04T00:32:38.4918030Z             {
2026-06-04T00:32:38.4918825Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4919566Z               "line": 221
2026-06-04T00:32:38.4920214Z             },
2026-06-04T00:32:38.4920835Z             {
2026-06-04T00:32:38.4921632Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T00:32:38.4922301Z               "line": 233
2026-06-04T00:32:38.4922917Z             }
2026-06-04T00:32:38.4924123Z           ]
2026-06-04T00:32:38.4934114Z         }
2026-06-04T00:32:38.4934783Z       }
2026-06-04T00:32:38.4935432Z     },
2026-06-04T00:32:38.4936058Z     {
2026-06-04T00:32:38.4936752Z       "id": "REQ-INST-14",
2026-06-04T00:32:38.4938617Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-04T00:32:38.4939427Z       "requiredStages": [],
2026-06-04T00:32:38.4940093Z       "stages": {
2026-06-04T00:32:38.4940733Z         "doc": {
2026-06-04T00:32:38.4941413Z           "complete": false,
2026-06-04T00:32:38.4942073Z           "evidence": []
2026-06-04T00:32:38.4942698Z         },
2026-06-04T00:32:38.4943340Z         "impl": {
2026-06-04T00:32:38.4944010Z           "complete": false,
2026-06-04T00:32:38.4944669Z           "evidence": []
2026-06-04T00:32:38.4945295Z         },
2026-06-04T00:32:38.4946103Z         "int": {
2026-06-04T00:32:38.4946801Z           "complete": false,
2026-06-04T00:32:38.4947574Z           "evidence": []
2026-06-04T00:32:38.4948203Z         },
2026-06-04T00:32:38.4948852Z         "unit": {
2026-06-04T00:32:38.4949546Z           "complete": false,
2026-06-04T00:32:38.4955304Z           "evidence": []
2026-06-04T00:32:38.4956662Z         }
2026-06-04T00:32:38.4957213Z       }
2026-06-04T00:32:38.4957755Z     },
2026-06-04T00:32:38.4958288Z     {
2026-06-04T00:32:38.4958901Z       "id": "REQ-INST-15",
2026-06-04T00:32:38.4964433Z       "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-04T00:32:38.4965065Z       "requiredStages": [],
2026-06-04T00:32:38.4965663Z       "stages": {
2026-06-04T00:32:38.4966220Z         "doc": {
2026-06-04T00:32:38.4966865Z           "complete": false,
2026-06-04T00:32:38.4967496Z           "evidence": []
2026-06-04T00:32:38.4968075Z         },
2026-06-04T00:32:38.4968659Z         "impl": {
2026-06-04T00:32:38.4969694Z           "complete": false,
2026-06-04T00:32:38.4970317Z           "evidence": []
2026-06-04T00:32:38.4970891Z         },
2026-06-04T00:32:38.4971460Z         "int": {
2026-06-04T00:32:38.4972132Z           "complete": false,
2026-06-04T00:32:38.4972674Z           "evidence": []
2026-06-04T00:32:38.4973143Z         },
2026-06-04T00:32:38.4973689Z         "unit": {
2026-06-04T00:32:38.4974306Z           "complete": false,
2026-06-04T00:32:38.4974895Z           "evidence": []
2026-06-04T00:32:38.4975429Z         }
2026-06-04T00:32:38.4975970Z       }
2026-06-04T00:32:38.4976500Z     },
2026-06-04T00:32:38.4977033Z     {
2026-06-04T00:32:38.4977621Z       "id": "REQ-INST-2",
2026-06-04T00:32:38.4978444Z       "title": "Per-node files, synced Psyche mind",
2026-06-04T00:32:38.4979216Z       "requiredStages": [],
2026-06-04T00:32:38.4979772Z       "stages": {
2026-06-04T00:32:38.4980342Z         "doc": {
2026-06-04T00:32:38.4980939Z           "complete": false,
2026-06-04T00:32:38.4981541Z           "evidence": []
2026-06-04T00:32:38.4982077Z         },
2026-06-04T00:32:38.4982629Z         "impl": {
2026-06-04T00:32:38.4983243Z           "complete": false,
2026-06-04T00:32:38.4983822Z           "evidence": []
2026-06-04T00:32:38.4984367Z         },
2026-06-04T00:32:38.4984910Z         "int": {
2026-06-04T00:32:38.4985527Z           "complete": false,
2026-06-04T00:32:38.4986109Z           "evidence": []
2026-06-04T00:32:38.4986653Z         },
2026-06-04T00:32:38.4987216Z         "unit": {
2026-06-04T00:32:38.4987824Z           "complete": false,
2026-06-04T00:32:38.4988417Z           "evidence": []
2026-06-04T00:32:38.4988943Z         }
2026-06-04T00:32:38.4989628Z       }
2026-06-04T00:32:38.4989982Z     },
2026-06-04T00:32:38.4990297Z     {
2026-06-04T00:32:38.4990674Z       "id": "REQ-INST-3",
2026-06-04T00:32:38.4991261Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-04T00:32:38.4991640Z       "requiredStages": [],
2026-06-04T00:32:38.4991962Z       "stages": {
2026-06-04T00:32:38.4992289Z         "doc": {
2026-06-04T00:32:38.4992639Z           "complete": false,
2026-06-04T00:32:38.5005000Z           "evidence": []
2026-06-04T00:32:38.5005635Z         },
2026-06-04T00:32:38.5005980Z         "impl": {
2026-06-04T00:32:38.5006343Z           "complete": false,
2026-06-04T00:32:38.5006706Z           "evidence": []
2026-06-04T00:32:38.5007023Z         },
2026-06-04T00:32:38.5007346Z         "int": {
2026-06-04T00:32:38.5007703Z           "complete": false,
2026-06-04T00:32:38.5008052Z           "evidence": []
2026-06-04T00:32:38.5008365Z         },
2026-06-04T00:32:38.5008697Z         "unit": {
2026-06-04T00:32:38.5009221Z           "complete": false,
2026-06-04T00:32:38.5009571Z           "evidence": []
2026-06-04T00:32:38.5009898Z         }
2026-06-04T00:32:38.5010392Z       }
2026-06-04T00:32:38.5010715Z     },
2026-06-04T00:32:38.5011025Z     {
2026-06-04T00:32:38.5011456Z       "id": "REQ-INST-4",
2026-06-04T00:32:38.5012174Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-04T00:32:38.5012534Z       "requiredStages": [],
2026-06-04T00:32:38.5012865Z       "stages": {
2026-06-04T00:32:38.5013179Z         "doc": {
2026-06-04T00:32:38.5013543Z           "complete": false,
2026-06-04T00:32:38.5013883Z           "evidence": []
2026-06-04T00:32:38.5014201Z         },
2026-06-04T00:32:38.5014550Z         "impl": {
2026-06-04T00:32:38.5014901Z           "complete": false,
2026-06-04T00:32:38.5015243Z           "evidence": []
2026-06-04T00:32:38.5015554Z         },
2026-06-04T00:32:38.5015879Z         "int": {
2026-06-04T00:32:38.5016225Z           "complete": false,
2026-06-04T00:32:38.5016564Z           "evidence": []
2026-06-04T00:32:38.5016880Z         },
2026-06-04T00:32:38.5017207Z         "unit": {
2026-06-04T00:32:38.5017579Z           "complete": false,
2026-06-04T00:32:38.5017916Z           "evidence": []
2026-06-04T00:32:38.5018243Z         }
2026-06-04T00:32:38.5018552Z       }
2026-06-04T00:32:38.5018865Z     },
2026-06-04T00:32:38.5019264Z     {
2026-06-04T00:32:38.5019608Z       "id": "REQ-INST-5",
2026-06-04T00:32:38.5020321Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-04T00:32:38.5020683Z       "requiredStages": [],
2026-06-04T00:32:38.5021013Z       "stages": {
2026-06-04T00:32:38.5021330Z         "doc": {
2026-06-04T00:32:38.5021694Z           "complete": false,
2026-06-04T00:32:38.5022042Z           "evidence": []
2026-06-04T00:32:38.5022354Z         },
2026-06-04T00:32:38.5022681Z         "impl": {
2026-06-04T00:32:38.5023033Z           "complete": false,
2026-06-04T00:32:38.5023383Z           "evidence": []
2026-06-04T00:32:38.5025521Z         },
2026-06-04T00:32:38.5025840Z         "int": {
2026-06-04T00:32:38.5026195Z           "complete": false,
2026-06-04T00:32:38.5026541Z           "evidence": []
2026-06-04T00:32:38.5026860Z         },
2026-06-04T00:32:38.5027178Z         "unit": {
2026-06-04T00:32:38.5027543Z           "complete": false,
2026-06-04T00:32:38.5027884Z           "evidence": []
2026-06-04T00:32:38.5028195Z         }
2026-06-04T00:32:38.5028515Z       }
2026-06-04T00:32:38.5028823Z     },
2026-06-04T00:32:38.5029198Z     {
2026-06-04T00:32:38.5029540Z       "id": "REQ-INST-6",
2026-06-04T00:32:38.5030280Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-04T00:32:38.5030649Z       "requiredStages": [],
2026-06-04T00:32:38.5030976Z       "stages": {
2026-06-04T00:32:38.5031300Z         "doc": {
2026-06-04T00:32:38.5031656Z           "complete": false,
2026-06-04T00:32:38.5032003Z           "evidence": []
2026-06-04T00:32:38.5032315Z         },
2026-06-04T00:32:38.5032651Z         "impl": {
2026-06-04T00:32:38.5033006Z           "complete": false,
2026-06-04T00:32:38.5033349Z           "evidence": []
2026-06-04T00:32:38.5033681Z         },
2026-06-04T00:32:38.5033997Z         "int": {
2026-06-04T00:32:38.5034357Z           "complete": false,
2026-06-04T00:32:38.5034710Z           "evidence": []
2026-06-04T00:32:38.5035029Z         },
2026-06-04T00:32:38.5035346Z         "unit": {
2026-06-04T00:32:38.5035700Z           "complete": false,
2026-06-04T00:32:38.5036043Z           "evidence": []
2026-06-04T00:32:38.5036351Z         }
2026-06-04T00:32:38.5036668Z       }
2026-06-04T00:32:38.5036974Z     },
2026-06-04T00:32:38.5037288Z     {
2026-06-04T00:32:38.5037631Z       "id": "REQ-INST-7",
2026-06-04T00:32:38.5038171Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-04T00:32:38.5038530Z       "requiredStages": [
2026-06-04T00:32:38.5038853Z         "impl",
2026-06-04T00:32:38.5039430Z         "unit"
2026-06-04T00:32:38.5039750Z       ],
2026-06-04T00:32:38.5040082Z       "stages": {
2026-06-04T00:32:38.5040397Z         "doc": {
2026-06-04T00:32:38.5040760Z           "complete": false,
2026-06-04T00:32:38.5041246Z           "evidence": []
2026-06-04T00:32:38.5041567Z         },
2026-06-04T00:32:38.5041991Z         "impl": {
2026-06-04T00:32:38.5042340Z           "complete": true,
2026-06-04T00:32:38.5042682Z           "evidence": [
2026-06-04T00:32:38.5042987Z             {
2026-06-04T00:32:38.5043468Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5043806Z               "line": 41
2026-06-04T00:32:38.5044121Z             },
2026-06-04T00:32:38.5044444Z             {
2026-06-04T00:32:38.5044904Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T00:32:38.5045250Z               "line": 123
2026-06-04T00:32:38.5045563Z             }
2026-06-04T00:32:38.5045882Z           ]
2026-06-04T00:32:38.5046201Z         },
2026-06-04T00:32:38.5046516Z         "int": {
2026-06-04T00:32:38.5046884Z           "complete": false,
2026-06-04T00:32:38.5047228Z           "evidence": []
2026-06-04T00:32:38.5047550Z         },
2026-06-04T00:32:38.5047871Z         "unit": {
2026-06-04T00:32:38.5048241Z           "complete": true,
2026-06-04T00:32:38.5048588Z           "evidence": [
2026-06-04T00:32:38.5048914Z             {
2026-06-04T00:32:38.5049466Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5049807Z               "line": 475
2026-06-04T00:32:38.5050129Z             },
2026-06-04T00:32:38.5050442Z             {
2026-06-04T00:32:38.5050920Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5051266Z               "line": 486
2026-06-04T00:32:38.5051583Z             },
2026-06-04T00:32:38.5051900Z             {
2026-06-04T00:32:38.5052362Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5052703Z               "line": 495
2026-06-04T00:32:38.5053025Z             }
2026-06-04T00:32:38.5053336Z           ]
2026-06-04T00:32:38.5053654Z         }
2026-06-04T00:32:38.5053966Z       }
2026-06-04T00:32:38.5054277Z     },
2026-06-04T00:32:38.5054586Z     {
2026-06-04T00:32:38.5054937Z       "id": "REQ-INST-8",
2026-06-04T00:32:38.5055533Z       "title": "Remote-control mode distinct from local operation",
2026-06-04T00:32:38.5055907Z       "requiredStages": [],
2026-06-04T00:32:38.5056237Z       "stages": {
2026-06-04T00:32:38.5056554Z         "doc": {
2026-06-04T00:32:38.5056911Z           "complete": false,
2026-06-04T00:32:38.5057247Z           "evidence": []
2026-06-04T00:32:38.5057563Z         },
2026-06-04T00:32:38.5057882Z         "impl": {
2026-06-04T00:32:38.5058234Z           "complete": false,
2026-06-04T00:32:38.5058576Z           "evidence": []
2026-06-04T00:32:38.5058887Z         },
2026-06-04T00:32:38.5059262Z         "int": {
2026-06-04T00:32:38.5059617Z           "complete": false,
2026-06-04T00:32:38.5059956Z           "evidence": []
2026-06-04T00:32:38.5060267Z         },
2026-06-04T00:32:38.5060586Z         "unit": {
2026-06-04T00:32:38.5060943Z           "complete": false,
2026-06-04T00:32:38.5061283Z           "evidence": []
2026-06-04T00:32:38.5061599Z         }
2026-06-04T00:32:38.5061915Z       }
2026-06-04T00:32:38.5062227Z     },
2026-06-04T00:32:38.5062533Z     {
2026-06-04T00:32:38.5062894Z       "id": "REQ-INST-9",
2026-06-04T00:32:38.5063624Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-04T00:32:38.5063977Z       "requiredStages": [
2026-06-04T00:32:38.5064302Z         "impl",
2026-06-04T00:32:38.5064616Z         "unit"
2026-06-04T00:32:38.5064933Z       ],
2026-06-04T00:32:38.5065264Z       "stages": {
2026-06-04T00:32:38.5065583Z         "doc": {
2026-06-04T00:32:38.5065940Z           "complete": false,
2026-06-04T00:32:38.5066281Z           "evidence": []
2026-06-04T00:32:38.5066599Z         },
2026-06-04T00:32:38.5066918Z         "impl": {
2026-06-04T00:32:38.5067274Z           "complete": true,
2026-06-04T00:32:38.5067607Z           "evidence": [
2026-06-04T00:32:38.5067923Z             {
2026-06-04T00:32:38.5068399Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5068734Z               "line": 191
2026-06-04T00:32:38.5070003Z             }
2026-06-04T00:32:38.5070325Z           ]
2026-06-04T00:32:38.5070712Z         },
2026-06-04T00:32:38.5071029Z         "int": {
2026-06-04T00:32:38.5071386Z           "complete": false,
2026-06-04T00:32:38.5071731Z           "evidence": []
2026-06-04T00:32:38.5072040Z         },
2026-06-04T00:32:38.5072363Z         "unit": {
2026-06-04T00:32:38.5072711Z           "complete": true,
2026-06-04T00:32:38.5073053Z           "evidence": [
2026-06-04T00:32:38.5073367Z             {
2026-06-04T00:32:38.5073845Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5074186Z               "line": 626
2026-06-04T00:32:38.5074497Z             },
2026-06-04T00:32:38.5074818Z             {
2026-06-04T00:32:38.5075288Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5075624Z               "line": 635
2026-06-04T00:32:38.5075943Z             },
2026-06-04T00:32:38.5076267Z             {
2026-06-04T00:32:38.5076750Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5077083Z               "line": 649
2026-06-04T00:32:38.5077417Z             },
2026-06-04T00:32:38.5077731Z             {
2026-06-04T00:32:38.5078207Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5078547Z               "line": 659
2026-06-04T00:32:38.5078861Z             },
2026-06-04T00:32:38.5079383Z             {
2026-06-04T00:32:38.5079867Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T00:32:38.5080211Z               "line": 678
2026-06-04T00:32:38.5080523Z             }
2026-06-04T00:32:38.5080837Z           ]
2026-06-04T00:32:38.5081153Z         }
2026-06-04T00:32:38.5081461Z       }
2026-06-04T00:32:38.5081772Z     },
2026-06-04T00:32:38.5082079Z     {
2026-06-04T00:32:38.5082443Z       "id": "REQ-INSTALL-1",
2026-06-04T00:32:38.5083198Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-04T00:32:38.5083567Z       "requiredStages": [],
2026-06-04T00:32:38.5083913Z       "stages": {
2026-06-04T00:32:38.5084229Z         "doc": {
2026-06-04T00:32:38.5084602Z           "complete": false,
2026-06-04T00:32:38.5085016Z           "evidence": []
2026-06-04T00:32:38.5085388Z         },
2026-06-04T00:32:38.5085717Z         "impl": {
2026-06-04T00:32:38.5086072Z           "complete": false,
2026-06-04T00:32:38.5086416Z           "evidence": []
2026-06-04T00:32:38.5086734Z         },
2026-06-04T00:32:38.5087055Z         "int": {
2026-06-04T00:32:38.5087404Z           "complete": false,
2026-06-04T00:32:38.5087750Z           "evidence": []
2026-06-04T00:32:38.5088060Z         },
2026-06-04T00:32:38.5088387Z         "unit": {
2026-06-04T00:32:38.5088758Z           "complete": false,
2026-06-04T00:32:38.5089302Z           "evidence": []
2026-06-04T00:32:38.5089646Z         }
2026-06-04T00:32:38.5089957Z       }
2026-06-04T00:32:38.5090273Z     },
2026-06-04T00:32:38.5090584Z     {
2026-06-04T00:32:38.5090959Z       "id": "REQ-INSTALL-2",
2026-06-04T00:32:38.5091506Z       "title": "Marketplace-repackaging-friendly install",
2026-06-04T00:32:38.5091891Z       "requiredStages": [],
2026-06-04T00:32:38.5092229Z       "stages": {
2026-06-04T00:32:38.5092552Z         "doc": {
2026-06-04T00:32:38.5092912Z           "complete": false,
2026-06-04T00:32:38.5093247Z           "evidence": []
2026-06-04T00:32:38.5093566Z         },
2026-06-04T00:32:38.5093887Z         "impl": {
2026-06-04T00:32:38.5094249Z           "complete": false,
2026-06-04T00:32:38.5094588Z           "evidence": []
2026-06-04T00:32:38.5094900Z         },
2026-06-04T00:32:38.5095221Z         "int": {
2026-06-04T00:32:38.5095567Z           "complete": false,
2026-06-04T00:32:38.5095913Z           "evidence": []
2026-06-04T00:32:38.5096223Z         },
2026-06-04T00:32:38.5096550Z         "unit": {
2026-06-04T00:32:38.5096908Z           "complete": false,
2026-06-04T00:32:38.5097252Z           "evidence": []
2026-06-04T00:32:38.5097569Z         }
2026-06-04T00:32:38.5097869Z       }
2026-06-04T00:32:38.5098308Z     },
2026-06-04T00:32:38.5098621Z     {
2026-06-04T00:32:38.5098980Z       "id": "REQ-INSTALL-3",
2026-06-04T00:32:38.5099672Z       "title": "Idempotent + interactive-optional first run",
2026-06-04T00:32:38.5100023Z       "requiredStages": [],
2026-06-04T00:32:38.5100360Z       "stages": {
2026-06-04T00:32:38.5100678Z         "doc": {
2026-06-04T00:32:38.5101035Z           "complete": false,
2026-06-04T00:32:38.5101370Z           "evidence": []
2026-06-04T00:32:38.5101686Z         },
2026-06-04T00:32:38.5102016Z         "impl": {
2026-06-04T00:32:38.5102365Z           "complete": false,
2026-06-04T00:32:38.5102712Z           "evidence": []
2026-06-04T00:32:38.5103021Z         },
2026-06-04T00:32:38.5103345Z         "int": {
2026-06-04T00:32:38.5103694Z           "complete": false,
2026-06-04T00:32:38.5104037Z           "evidence": []
2026-06-04T00:32:38.5104377Z         },
2026-06-04T00:32:38.5104698Z         "unit": {
2026-06-04T00:32:38.5105054Z           "complete": false,
2026-06-04T00:32:38.5105406Z           "evidence": []
2026-06-04T00:32:38.5105719Z         }
2026-06-04T00:32:38.5106035Z       }
2026-06-04T00:32:38.5106354Z     },
2026-06-04T00:32:38.5106667Z     {
2026-06-04T00:32:38.5107021Z       "id": "REQ-INSTALL-4",
2026-06-04T00:32:38.5128720Z       "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-04T00:32:38.5129544Z       "requiredStages": [],
2026-06-04T00:32:38.5130029Z       "stages": {
2026-06-04T00:32:38.5130521Z         "doc": {
2026-06-04T00:32:38.5131048Z           "complete": false,
2026-06-04T00:32:38.5131603Z           "evidence": []
2026-06-04T00:32:38.5132107Z         },
2026-06-04T00:32:38.5132650Z         "impl": {
2026-06-04T00:32:38.5133257Z           "complete": false,
2026-06-04T00:32:38.5133856Z           "evidence": []
2026-06-04T00:32:38.5134401Z         },
2026-06-04T00:32:38.5134906Z         "int": {
2026-06-04T00:32:38.5135458Z           "complete": false,
2026-06-04T00:32:38.5136000Z           "evidence": []
2026-06-04T00:32:38.5136472Z         },
2026-06-04T00:32:38.5136972Z         "unit": {
2026-06-04T00:32:38.5137544Z           "complete": false,
2026-06-04T00:32:38.5138108Z           "evidence": []
2026-06-04T00:32:38.5138611Z         }
2026-06-04T00:32:38.5139325Z       }
2026-06-04T00:32:38.5139821Z     },
2026-06-04T00:32:38.5140319Z     {
2026-06-04T00:32:38.5140919Z       "id": "REQ-MANIFEST-1",
2026-06-04T00:32:38.5142212Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-04T00:32:38.5142803Z       "requiredStages": [
2026-06-04T00:32:38.5143318Z         "doc",
2026-06-04T00:32:38.5143858Z         "impl",
2026-06-04T00:32:38.5144353Z         "unit"
2026-06-04T00:32:38.5144839Z       ],
2026-06-04T00:32:38.5145387Z       "stages": {
2026-06-04T00:32:38.5145922Z         "doc": {
2026-06-04T00:32:38.5146544Z           "complete": true,
2026-06-04T00:32:38.5147115Z           "evidence": [
2026-06-04T00:32:38.5147641Z             {
2026-06-04T00:32:38.5148287Z               "path": "docs/MANIFEST.md",
2026-06-04T00:32:38.5148862Z               "line": 19
2026-06-04T00:32:38.5149621Z             }
2026-06-04T00:32:38.5150160Z           ]
2026-06-04T00:32:38.5150696Z         },
2026-06-04T00:32:38.5151243Z         "impl": {
2026-06-04T00:32:38.5151859Z           "complete": true,
2026-06-04T00:32:38.5152393Z           "evidence": [
2026-06-04T00:32:38.5152905Z             {
2026-06-04T00:32:38.5153709Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5154278Z               "line": 18
2026-06-04T00:32:38.5154806Z             }
2026-06-04T00:32:38.5155301Z           ]
2026-06-04T00:32:38.5155838Z         },
2026-06-04T00:32:38.5156381Z         "int": {
2026-06-04T00:32:38.5156977Z           "complete": false,
2026-06-04T00:32:38.5157552Z           "evidence": []
2026-06-04T00:32:38.5158089Z         },
2026-06-04T00:32:38.5158856Z         "unit": {
2026-06-04T00:32:38.5159612Z           "complete": true,
2026-06-04T00:32:38.5160351Z           "evidence": [
2026-06-04T00:32:38.5160796Z             {
2026-06-04T00:32:38.5161570Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5162086Z               "line": 695
2026-06-04T00:32:38.5162585Z             },
2026-06-04T00:32:38.5163089Z             {
2026-06-04T00:32:38.5163949Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5164517Z               "line": 791
2026-06-04T00:32:38.5165058Z             },
2026-06-04T00:32:38.5165592Z             {
2026-06-04T00:32:38.5166379Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5166873Z               "line": 803
2026-06-04T00:32:38.5167374Z             },
2026-06-04T00:32:38.5167878Z             {
2026-06-04T00:32:38.5168695Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5169425Z               "line": 811
2026-06-04T00:32:38.5169975Z             },
2026-06-04T00:32:38.5170470Z             {
2026-06-04T00:32:38.5171336Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5171888Z               "line": 828
2026-06-04T00:32:38.5172420Z             },
2026-06-04T00:32:38.5172971Z             {
2026-06-04T00:32:38.5173780Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5174356Z               "line": 842
2026-06-04T00:32:38.5174881Z             },
2026-06-04T00:32:38.5175414Z             {
2026-06-04T00:32:38.5176217Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5176828Z               "line": 857
2026-06-04T00:32:38.5177368Z             },
2026-06-04T00:32:38.5177910Z             {
2026-06-04T00:32:38.5178763Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5179461Z               "line": 872
2026-06-04T00:32:38.5179970Z             },
2026-06-04T00:32:38.5180462Z             {
2026-06-04T00:32:38.5181211Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5181772Z               "line": 887
2026-06-04T00:32:38.5182278Z             },
2026-06-04T00:32:38.5182790Z             {
2026-06-04T00:32:38.5183590Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5184140Z               "line": 898
2026-06-04T00:32:38.5184653Z             }
2026-06-04T00:32:38.5185168Z           ]
2026-06-04T00:32:38.5185692Z         }
2026-06-04T00:32:38.5186198Z       }
2026-06-04T00:32:38.5186714Z     },
2026-06-04T00:32:38.5187220Z     {
2026-06-04T00:32:38.5187832Z       "id": "REQ-MIGRATE-1",
2026-06-04T00:32:38.5188976Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-04T00:32:38.5189685Z       "requiredStages": [],
2026-06-04T00:32:38.5190213Z       "stages": {
2026-06-04T00:32:38.5190749Z         "doc": {
2026-06-04T00:32:38.5191356Z           "complete": false,
2026-06-04T00:32:38.5191908Z           "evidence": []
2026-06-04T00:32:38.5192466Z         },
2026-06-04T00:32:38.5192995Z         "impl": {
2026-06-04T00:32:38.5193615Z           "complete": false,
2026-06-04T00:32:38.5194198Z           "evidence": []
2026-06-04T00:32:38.5194695Z         },
2026-06-04T00:32:38.5195218Z         "int": {
2026-06-04T00:32:38.5195802Z           "complete": false,
2026-06-04T00:32:38.5196384Z           "evidence": []
2026-06-04T00:32:38.5196910Z         },
2026-06-04T00:32:38.5197428Z         "unit": {
2026-06-04T00:32:38.5197973Z           "complete": false,
2026-06-04T00:32:38.5198536Z           "evidence": []
2026-06-04T00:32:38.5199199Z         }
2026-06-04T00:32:38.5199726Z       }
2026-06-04T00:32:38.5200235Z     },
2026-06-04T00:32:38.5200798Z     {
2026-06-04T00:32:38.5201390Z       "id": "REQ-MSG-1",
2026-06-04T00:32:38.5204625Z       "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-04T00:32:38.5205431Z       "requiredStages": [
2026-06-04T00:32:38.5205991Z         "impl",
2026-06-04T00:32:38.5206684Z         "unit",
2026-06-04T00:32:38.5207192Z         "int"
2026-06-04T00:32:38.5207710Z       ],
2026-06-04T00:32:38.5208205Z       "stages": {
2026-06-04T00:32:38.5208878Z         "doc": {
2026-06-04T00:32:38.5209545Z           "complete": false,
2026-06-04T00:32:38.5210113Z           "evidence": []
2026-06-04T00:32:38.5210636Z         },
2026-06-04T00:32:38.5211170Z         "impl": {
2026-06-04T00:32:38.5211736Z           "complete": true,
2026-06-04T00:32:38.5212285Z           "evidence": [
2026-06-04T00:32:38.5212788Z             {
2026-06-04T00:32:38.5213456Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5214004Z               "line": 28
2026-06-04T00:32:38.5214525Z             },
2026-06-04T00:32:38.5215042Z             {
2026-06-04T00:32:38.5215801Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5216363Z               "line": 91
2026-06-04T00:32:38.5216859Z             },
2026-06-04T00:32:38.5217311Z             {
2026-06-04T00:32:38.5218079Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5218623Z               "line": 134
2026-06-04T00:32:38.5219281Z             },
2026-06-04T00:32:38.5219796Z             {
2026-06-04T00:32:38.5220521Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5221000Z               "line": 159
2026-06-04T00:32:38.5221509Z             },
2026-06-04T00:32:38.5222008Z             {
2026-06-04T00:32:38.5222742Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5223246Z               "line": 18
2026-06-04T00:32:38.5223787Z             },
2026-06-04T00:32:38.5224289Z             {
2026-06-04T00:32:38.5225018Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.5225582Z               "line": 13
2026-06-04T00:32:38.5226063Z             },
2026-06-04T00:32:38.5226578Z             {
2026-06-04T00:32:38.5227268Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.5227815Z               "line": 61
2026-06-04T00:32:38.5228320Z             },
2026-06-04T00:32:38.5228832Z             {
2026-06-04T00:32:38.5229693Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:32:38.5230266Z               "line": 10
2026-06-04T00:32:38.5230807Z             }
2026-06-04T00:32:38.5231346Z           ]
2026-06-04T00:32:38.5231888Z         },
2026-06-04T00:32:38.5232438Z         "int": {
2026-06-04T00:32:38.5233018Z           "complete": true,
2026-06-04T00:32:38.5233573Z           "evidence": [
2026-06-04T00:32:38.5234075Z             {
2026-06-04T00:32:38.5234893Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:32:38.5235409Z               "line": 9
2026-06-04T00:32:38.5235931Z             },
2026-06-04T00:32:38.5236458Z             {
2026-06-04T00:32:38.5237330Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:32:38.5237873Z               "line": 66
2026-06-04T00:32:38.5238430Z             },
2026-06-04T00:32:38.5238958Z             {
2026-06-04T00:32:38.5239959Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:32:38.5240521Z               "line": 116
2026-06-04T00:32:38.5241003Z             }
2026-06-04T00:32:38.5241517Z           ]
2026-06-04T00:32:38.5242034Z         },
2026-06-04T00:32:38.5242561Z         "unit": {
2026-06-04T00:32:38.5243164Z           "complete": true,
2026-06-04T00:32:38.5243726Z           "evidence": [
2026-06-04T00:32:38.5244243Z             {
2026-06-04T00:32:38.5244952Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5245502Z               "line": 188
2026-06-04T00:32:38.5245999Z             },
2026-06-04T00:32:38.5246488Z             {
2026-06-04T00:32:38.5247223Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5247820Z               "line": 217
2026-06-04T00:32:38.5248339Z             },
2026-06-04T00:32:38.5248810Z             {
2026-06-04T00:32:38.5249921Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5250616Z               "line": 262
2026-06-04T00:32:38.5251137Z             },
2026-06-04T00:32:38.5251672Z             {
2026-06-04T00:32:38.5252391Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5252949Z               "line": 285
2026-06-04T00:32:38.5253464Z             },
2026-06-04T00:32:38.5253992Z             {
2026-06-04T00:32:38.5254734Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T00:32:38.5255275Z               "line": 307
2026-06-04T00:32:38.5255861Z             },
2026-06-04T00:32:38.5256384Z             {
2026-06-04T00:32:38.5257139Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5257710Z               "line": 203
2026-06-04T00:32:38.5258269Z             },
2026-06-04T00:32:38.5258781Z             {
2026-06-04T00:32:38.5259624Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5260198Z               "line": 233
2026-06-04T00:32:38.5260729Z             },
2026-06-04T00:32:38.5261264Z             {
2026-06-04T00:32:38.5262029Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5262588Z               "line": 247
2026-06-04T00:32:38.5263125Z             },
2026-06-04T00:32:38.5263658Z             {
2026-06-04T00:32:38.5264422Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5265032Z               "line": 259
2026-06-04T00:32:38.5265593Z             },
2026-06-04T00:32:38.5266111Z             {
2026-06-04T00:32:38.5266817Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.5267380Z               "line": 158
2026-06-04T00:32:38.5267905Z             },
2026-06-04T00:32:38.5268430Z             {
2026-06-04T00:32:38.5269172Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T00:32:38.5269735Z               "line": 235
2026-06-04T00:32:38.5270244Z             },
2026-06-04T00:32:38.5270763Z             {
2026-06-04T00:32:38.5271491Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:32:38.5272019Z               "line": 68
2026-06-04T00:32:38.5272557Z             },
2026-06-04T00:32:38.5273060Z             {
2026-06-04T00:32:38.5273760Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:32:38.5274305Z               "line": 74
2026-06-04T00:32:38.5274823Z             },
2026-06-04T00:32:38.5275344Z             {
2026-06-04T00:32:38.5276019Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:32:38.5276563Z               "line": 80
2026-06-04T00:32:38.5277060Z             },
2026-06-04T00:32:38.5277570Z             {
2026-06-04T00:32:38.5278263Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T00:32:38.5278791Z               "line": 99
2026-06-04T00:32:38.5279407Z             }
2026-06-04T00:32:38.5279907Z           ]
2026-06-04T00:32:38.5280401Z         }
2026-06-04T00:32:38.5280914Z       }
2026-06-04T00:32:38.5281432Z     },
2026-06-04T00:32:38.5281945Z     {
2026-06-04T00:32:38.5282548Z       "id": "REQ-MSG-2",
2026-06-04T00:32:38.5284247Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-04T00:32:38.5284833Z       "requiredStages": [
2026-06-04T00:32:38.5285361Z         "impl",
2026-06-04T00:32:38.5285875Z         "unit"
2026-06-04T00:32:38.5286384Z       ],
2026-06-04T00:32:38.5286936Z       "stages": {
2026-06-04T00:32:38.5287484Z         "doc": {
2026-06-04T00:32:38.5288065Z           "complete": false,
2026-06-04T00:32:38.5288651Z           "evidence": []
2026-06-04T00:32:38.5289306Z         },
2026-06-04T00:32:38.5289863Z         "impl": {
2026-06-04T00:32:38.5290426Z           "complete": true,
2026-06-04T00:32:38.5290979Z           "evidence": [
2026-06-04T00:32:38.5291530Z             {
2026-06-04T00:32:38.5292198Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5292748Z               "line": 11
2026-06-04T00:32:38.5293278Z             },
2026-06-04T00:32:38.5293806Z             {
2026-06-04T00:32:38.5294735Z               "path": "crates/spt/src/main.rs",
2026-06-04T00:32:38.5295413Z               "line": 8
2026-06-04T00:32:38.5295947Z             }
2026-06-04T00:32:38.5296492Z           ]
2026-06-04T00:32:38.5297030Z         },
2026-06-04T00:32:38.5297574Z         "int": {
2026-06-04T00:32:38.5298166Z           "complete": false,
2026-06-04T00:32:38.5298743Z           "evidence": []
2026-06-04T00:32:38.5299383Z         },
2026-06-04T00:32:38.5299907Z         "unit": {
2026-06-04T00:32:38.5300515Z           "complete": true,
2026-06-04T00:32:38.5301079Z           "evidence": [
2026-06-04T00:32:38.5301597Z             {
2026-06-04T00:32:38.5302286Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5302885Z               "line": 622
2026-06-04T00:32:38.5303439Z             },
2026-06-04T00:32:38.5303951Z             {
2026-06-04T00:32:38.5304681Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5305236Z               "line": 659
2026-06-04T00:32:38.5305765Z             },
2026-06-04T00:32:38.5306225Z             {
2026-06-04T00:32:38.5306908Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5307532Z               "line": 668
2026-06-04T00:32:38.5308061Z             },
2026-06-04T00:32:38.5308617Z             {
2026-06-04T00:32:38.5309426Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5310014Z               "line": 680
2026-06-04T00:32:38.5310552Z             }
2026-06-04T00:32:38.5311047Z           ]
2026-06-04T00:32:38.5311598Z         }
2026-06-04T00:32:38.5312164Z       }
2026-06-04T00:32:38.5312711Z     },
2026-06-04T00:32:38.5313237Z     {
2026-06-04T00:32:38.5313823Z       "id": "REQ-MSG-3",
2026-06-04T00:32:38.5316340Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-04T00:32:38.5316973Z       "requiredStages": [
2026-06-04T00:32:38.5317495Z         "impl",
2026-06-04T00:32:38.5317998Z         "unit",
2026-06-04T00:32:38.5318515Z         "int"
2026-06-04T00:32:38.5319027Z       ],
2026-06-04T00:32:38.5319699Z       "stages": {
2026-06-04T00:32:38.5320212Z         "doc": {
2026-06-04T00:32:38.5320811Z           "complete": false,
2026-06-04T00:32:38.5321383Z           "evidence": []
2026-06-04T00:32:38.5321892Z         },
2026-06-04T00:32:38.5322445Z         "impl": {
2026-06-04T00:32:38.5323041Z           "complete": true,
2026-06-04T00:32:38.5323616Z           "evidence": [
2026-06-04T00:32:38.5324156Z             {
2026-06-04T00:32:38.5324926Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T00:32:38.5325459Z               "line": 19
2026-06-04T00:32:38.5325963Z             },
2026-06-04T00:32:38.5326463Z             {
2026-06-04T00:32:38.5327153Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5327704Z               "line": 21
2026-06-04T00:32:38.5328217Z             },
2026-06-04T00:32:38.5328734Z             {
2026-06-04T00:32:38.5329560Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5330096Z               "line": 48
2026-06-04T00:32:38.5330632Z             },
2026-06-04T00:32:38.5331153Z             {
2026-06-04T00:32:38.5331865Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5332425Z               "line": 106
2026-06-04T00:32:38.5332884Z             }
2026-06-04T00:32:38.5333361Z           ]
2026-06-04T00:32:38.5333875Z         },
2026-06-04T00:32:38.5334403Z         "int": {
2026-06-04T00:32:38.5334996Z           "complete": true,
2026-06-04T00:32:38.5335554Z           "evidence": [
2026-06-04T00:32:38.5336066Z             {
2026-06-04T00:32:38.5336969Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:32:38.5337534Z               "line": 10
2026-06-04T00:32:38.5338044Z             },
2026-06-04T00:32:38.5338502Z             {
2026-06-04T00:32:38.5339463Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T00:32:38.5340027Z               "line": 66
2026-06-04T00:32:38.5340752Z             }
2026-06-04T00:32:38.5341269Z           ]
2026-06-04T00:32:38.5341890Z         },
2026-06-04T00:32:38.5342405Z         "unit": {
2026-06-04T00:32:38.5342952Z           "complete": true,
2026-06-04T00:32:38.5343429Z           "evidence": [
2026-06-04T00:32:38.5343847Z             {
2026-06-04T00:32:38.5344475Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5344969Z               "line": 160
2026-06-04T00:32:38.5345423Z             },
2026-06-04T00:32:38.5345887Z             {
2026-06-04T00:32:38.5346480Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5346957Z               "line": 179
2026-06-04T00:32:38.5347407Z             },
2026-06-04T00:32:38.5347825Z             {
2026-06-04T00:32:38.5348401Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T00:32:38.5348888Z               "line": 198
2026-06-04T00:32:38.5349678Z             }
2026-06-04T00:32:38.5350153Z           ]
2026-06-04T00:32:38.5350601Z         }
2026-06-04T00:32:38.5351068Z       }
2026-06-04T00:32:38.5351521Z     },
2026-06-04T00:32:38.5351999Z     {
2026-06-04T00:32:38.5352512Z       "id": "REQ-NET-1",
2026-06-04T00:32:38.5353305Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-04T00:32:38.5353826Z       "requiredStages": [
2026-06-04T00:32:38.5354302Z         "impl",
2026-06-04T00:32:38.5354782Z         "unit"
2026-06-04T00:32:38.5355249Z       ],
2026-06-04T00:32:38.5355740Z       "stages": {
2026-06-04T00:32:38.5356230Z         "doc": {
2026-06-04T00:32:38.5356736Z           "complete": false,
2026-06-04T00:32:38.5357223Z           "evidence": []
2026-06-04T00:32:38.5357676Z         },
2026-06-04T00:32:38.5358081Z         "impl": {
2026-06-04T00:32:38.5358455Z           "complete": true,
2026-06-04T00:32:38.5358835Z           "evidence": [
2026-06-04T00:32:38.5359343Z             {
2026-06-04T00:32:38.5359886Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5360321Z               "line": 65
2026-06-04T00:32:38.5360672Z             },
2026-06-04T00:32:38.5361004Z             {
2026-06-04T00:32:38.5361447Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5361776Z               "line": 122
2026-06-04T00:32:38.5362069Z             },
2026-06-04T00:32:38.5362357Z             {
2026-06-04T00:32:38.5362812Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5363096Z               "line": 138
2026-06-04T00:32:38.5363392Z             },
2026-06-04T00:32:38.5363662Z             {
2026-06-04T00:32:38.5364104Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5364433Z               "line": 153
2026-06-04T00:32:38.5364714Z             },
2026-06-04T00:32:38.5365002Z             {
2026-06-04T00:32:38.5365436Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5365767Z               "line": 207
2026-06-04T00:32:38.5366067Z             },
2026-06-04T00:32:38.5366390Z             {
2026-06-04T00:32:38.5366828Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5367146Z               "line": 238
2026-06-04T00:32:38.5367439Z             },
2026-06-04T00:32:38.5367692Z             {
2026-06-04T00:32:38.5368094Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5368404Z               "line": 244
2026-06-04T00:32:38.5368661Z             },
2026-06-04T00:32:38.5368936Z             {
2026-06-04T00:32:38.5369682Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5370016Z               "line": 260
2026-06-04T00:32:38.5370290Z             }
2026-06-04T00:32:38.5370580Z           ]
2026-06-04T00:32:38.5370871Z         },
2026-06-04T00:32:38.5371161Z         "int": {
2026-06-04T00:32:38.5371515Z           "complete": false,
2026-06-04T00:32:38.5371831Z           "evidence": []
2026-06-04T00:32:38.5372108Z         },
2026-06-04T00:32:38.5372396Z         "unit": {
2026-06-04T00:32:38.5372966Z           "complete": true,
2026-06-04T00:32:38.5373296Z           "evidence": [
2026-06-04T00:32:38.5373696Z             {
2026-06-04T00:32:38.5374174Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5374493Z               "line": 321
2026-06-04T00:32:38.5374792Z             },
2026-06-04T00:32:38.5375074Z             {
2026-06-04T00:32:38.5375513Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5375837Z               "line": 335
2026-06-04T00:32:38.5376122Z             },
2026-06-04T00:32:38.5376418Z             {
2026-06-04T00:32:38.5376860Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5377181Z               "line": 354
2026-06-04T00:32:38.5377449Z             }
2026-06-04T00:32:38.5377748Z           ]
2026-06-04T00:32:38.5378033Z         }
2026-06-04T00:32:38.5378311Z       }
2026-06-04T00:32:38.5378587Z     },
2026-06-04T00:32:38.5378823Z     {
2026-06-04T00:32:38.5379294Z       "id": "REQ-NET-2",
2026-06-04T00:32:38.5379916Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-04T00:32:38.5380255Z       "requiredStages": [
2026-06-04T00:32:38.5380534Z         "impl"
2026-06-04T00:32:38.5380809Z       ],
2026-06-04T00:32:38.5381106Z       "stages": {
2026-06-04T00:32:38.5381381Z         "doc": {
2026-06-04T00:32:38.5381711Z           "complete": false,
2026-06-04T00:32:38.5382020Z           "evidence": []
2026-06-04T00:32:38.5382303Z         },
2026-06-04T00:32:38.5382587Z         "impl": {
2026-06-04T00:32:38.5382903Z           "complete": true,
2026-06-04T00:32:38.5383191Z           "evidence": [
2026-06-04T00:32:38.5383468Z             {
2026-06-04T00:32:38.5383914Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.5384215Z               "line": 40
2026-06-04T00:32:38.5384494Z             },
2026-06-04T00:32:38.5384794Z             {
2026-06-04T00:32:38.5385254Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5385588Z               "line": 39
2026-06-04T00:32:38.5385872Z             },
2026-06-04T00:32:38.5386162Z             {
2026-06-04T00:32:38.5386632Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5386939Z               "line": 49
2026-06-04T00:32:38.5387228Z             },
2026-06-04T00:32:38.5387477Z             {
2026-06-04T00:32:38.5387916Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5388214Z               "line": 122
2026-06-04T00:32:38.5388518Z             },
2026-06-04T00:32:38.5388769Z             {
2026-06-04T00:32:38.5389481Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5389817Z               "line": 138
2026-06-04T00:32:38.5390110Z             },
2026-06-04T00:32:38.5390397Z             {
2026-06-04T00:32:38.5390825Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T00:32:38.5391144Z               "line": 153
2026-06-04T00:32:38.5391428Z             }
2026-06-04T00:32:38.5391710Z           ]
2026-06-04T00:32:38.5392017Z         },
2026-06-04T00:32:38.5392324Z         "int": {
2026-06-04T00:32:38.5392674Z           "complete": false,
2026-06-04T00:32:38.5392959Z           "evidence": []
2026-06-04T00:32:38.5393204Z         },
2026-06-04T00:32:38.5393460Z         "unit": {
2026-06-04T00:32:38.5393765Z           "complete": true,
2026-06-04T00:32:38.5394058Z           "evidence": [
2026-06-04T00:32:38.5394319Z             {
2026-06-04T00:32:38.5394714Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.5394979Z               "line": 229
2026-06-04T00:32:38.5395236Z             }
2026-06-04T00:32:38.5395479Z           ]
2026-06-04T00:32:38.5395722Z         }
2026-06-04T00:32:38.5395958Z       }
2026-06-04T00:32:38.5396193Z     },
2026-06-04T00:32:38.5396430Z     {
2026-06-04T00:32:38.5396706Z       "id": "REQ-NET-3",
2026-06-04T00:32:38.5397231Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-04T00:32:38.5397496Z       "requiredStages": [],
2026-06-04T00:32:38.5397961Z       "stages": {
2026-06-04T00:32:38.5398206Z         "doc": {
2026-06-04T00:32:38.5398559Z           "complete": false,
2026-06-04T00:32:38.5398814Z           "evidence": []
2026-06-04T00:32:38.5399022Z         },
2026-06-04T00:32:38.5399414Z         "impl": {
2026-06-04T00:32:38.5399687Z           "complete": false,
2026-06-04T00:32:38.5399942Z           "evidence": []
2026-06-04T00:32:38.5400168Z         },
2026-06-04T00:32:38.5400398Z         "int": {
2026-06-04T00:32:38.5400677Z           "complete": false,
2026-06-04T00:32:38.5400918Z           "evidence": []
2026-06-04T00:32:38.5401141Z         },
2026-06-04T00:32:38.5401358Z         "unit": {
2026-06-04T00:32:38.5401628Z           "complete": false,
2026-06-04T00:32:38.5401885Z           "evidence": []
2026-06-04T00:32:38.5402097Z         }
2026-06-04T00:32:38.5402326Z       }
2026-06-04T00:32:38.5402541Z     },
2026-06-04T00:32:38.5402757Z     {
2026-06-04T00:32:38.5403030Z       "id": "REQ-NODE-IDENTITY",
2026-06-04T00:32:38.5403726Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-04T00:32:38.5404012Z       "requiredStages": [
2026-06-04T00:32:38.5404238Z         "impl",
2026-06-04T00:32:38.5404530Z         "unit"
2026-06-04T00:32:38.5404747Z       ],
2026-06-04T00:32:38.5404979Z       "stages": {
2026-06-04T00:32:38.5405191Z         "doc": {
2026-06-04T00:32:38.5405460Z           "complete": false,
2026-06-04T00:32:38.5405713Z           "evidence": []
2026-06-04T00:32:38.5405927Z         },
2026-06-04T00:32:38.5406162Z         "impl": {
2026-06-04T00:32:38.5406413Z           "complete": true,
2026-06-04T00:32:38.5406652Z           "evidence": [
2026-06-04T00:32:38.5406858Z             {
2026-06-04T00:32:38.5407219Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5407399Z               "line": 60
2026-06-04T00:32:38.5407547Z             },
2026-06-04T00:32:38.5407716Z             {
2026-06-04T00:32:38.5408043Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5408237Z               "line": 68
2026-06-04T00:32:38.5408400Z             },
2026-06-04T00:32:38.5408565Z             {
2026-06-04T00:32:38.5408870Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5409311Z               "line": 86
2026-06-04T00:32:38.5409505Z             },
2026-06-04T00:32:38.5409669Z             {
2026-06-04T00:32:38.5409994Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5410201Z               "line": 120
2026-06-04T00:32:38.5410399Z             },
2026-06-04T00:32:38.5410588Z             {
2026-06-04T00:32:38.5410906Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5411122Z               "line": 127
2026-06-04T00:32:38.5411294Z             },
2026-06-04T00:32:38.5411469Z             {
2026-06-04T00:32:38.5411757Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5411969Z               "line": 143
2026-06-04T00:32:38.5412172Z             },
2026-06-04T00:32:38.5412348Z             {
2026-06-04T00:32:38.5412648Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:32:38.5412859Z               "line": 16
2026-06-04T00:32:38.5413058Z             }
2026-06-04T00:32:38.5413235Z           ]
2026-06-04T00:32:38.5413420Z         },
2026-06-04T00:32:38.5413610Z         "int": {
2026-06-04T00:32:38.5413813Z           "complete": false,
2026-06-04T00:32:38.5414009Z           "evidence": []
2026-06-04T00:32:38.5414191Z         },
2026-06-04T00:32:38.5414385Z         "unit": {
2026-06-04T00:32:38.5414590Z           "complete": true,
2026-06-04T00:32:38.5414795Z           "evidence": [
2026-06-04T00:32:38.5414980Z             {
2026-06-04T00:32:38.5415299Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5415508Z               "line": 199
2026-06-04T00:32:38.5415684Z             },
2026-06-04T00:32:38.5415868Z             {
2026-06-04T00:32:38.5416455Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5416673Z               "line": 218
2026-06-04T00:32:38.5416960Z             },
2026-06-04T00:32:38.5417138Z             {
2026-06-04T00:32:38.5417463Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5417660Z               "line": 232
2026-06-04T00:32:38.5417843Z             },
2026-06-04T00:32:38.5418035Z             {
2026-06-04T00:32:38.5418345Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T00:32:38.5418547Z               "line": 248
2026-06-04T00:32:38.5418720Z             },
2026-06-04T00:32:38.5418910Z             {
2026-06-04T00:32:38.5419316Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:32:38.5419530Z               "line": 107
2026-06-04T00:32:38.5419715Z             },
2026-06-04T00:32:38.5419891Z             {
2026-06-04T00:32:38.5420193Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:32:38.5420384Z               "line": 123
2026-06-04T00:32:38.5420560Z             },
2026-06-04T00:32:38.5420764Z             {
2026-06-04T00:32:38.5421072Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T00:32:38.5421299Z               "line": 135
2026-06-04T00:32:38.5421484Z             }
2026-06-04T00:32:38.5421672Z           ]
2026-06-04T00:32:38.5421848Z         }
2026-06-04T00:32:38.5422039Z       }
2026-06-04T00:32:38.5422211Z     },
2026-06-04T00:32:38.5422393Z     {
2026-06-04T00:32:38.5422598Z       "id": "REQ-NOTIF-1",
2026-06-04T00:32:38.5423502Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-04T00:32:38.5423721Z       "requiredStages": [],
2026-06-04T00:32:38.5423908Z       "stages": {
2026-06-04T00:32:38.5424097Z         "doc": {
2026-06-04T00:32:38.5424312Z           "complete": false,
2026-06-04T00:32:38.5424504Z           "evidence": []
2026-06-04T00:32:38.5424663Z         },
2026-06-04T00:32:38.5424826Z         "impl": {
2026-06-04T00:32:38.5425036Z           "complete": false,
2026-06-04T00:32:38.5425206Z           "evidence": []
2026-06-04T00:32:38.5425386Z         },
2026-06-04T00:32:38.5425539Z         "int": {
2026-06-04T00:32:38.5425731Z           "complete": false,
2026-06-04T00:32:38.5425919Z           "evidence": []
2026-06-04T00:32:38.5426081Z         },
2026-06-04T00:32:38.5426252Z         "unit": {
2026-06-04T00:32:38.5426456Z           "complete": false,
2026-06-04T00:32:38.5426653Z           "evidence": []
2026-06-04T00:32:38.5426823Z         }
2026-06-04T00:32:38.5426994Z       }
2026-06-04T00:32:38.5427160Z     },
2026-06-04T00:32:38.5427315Z     {
2026-06-04T00:32:38.5427529Z       "id": "REQ-NOTIF-2",
2026-06-04T00:32:38.5428155Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-04T00:32:38.5428379Z       "requiredStages": [],
2026-06-04T00:32:38.5428568Z       "stages": {
2026-06-04T00:32:38.5428761Z         "doc": {
2026-06-04T00:32:38.5428998Z           "complete": false,
2026-06-04T00:32:38.5429369Z           "evidence": []
2026-06-04T00:32:38.5429552Z         },
2026-06-04T00:32:38.5429746Z         "impl": {
2026-06-04T00:32:38.5429953Z           "complete": false,
2026-06-04T00:32:38.5430150Z           "evidence": []
2026-06-04T00:32:38.5430327Z         },
2026-06-04T00:32:38.5430506Z         "int": {
2026-06-04T00:32:38.5430709Z           "complete": false,
2026-06-04T00:32:38.5430909Z           "evidence": []
2026-06-04T00:32:38.5431081Z         },
2026-06-04T00:32:38.5431267Z         "unit": {
2026-06-04T00:32:38.5431465Z           "complete": false,
2026-06-04T00:32:38.5431669Z           "evidence": []
2026-06-04T00:32:38.5431850Z         }
2026-06-04T00:32:38.5432019Z       }
2026-06-04T00:32:38.5432190Z     },
2026-06-04T00:32:38.5432352Z     {
2026-06-04T00:32:38.5432568Z       "id": "REQ-PAIR-1",
2026-06-04T00:32:38.5432828Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-04T00:32:38.5433034Z       "requiredStages": [
2026-06-04T00:32:38.5433429Z         "impl",
2026-06-04T00:32:38.5433623Z         "unit"
2026-06-04T00:32:38.5433799Z       ],
2026-06-04T00:32:38.5434099Z       "stages": {
2026-06-04T00:32:38.5434272Z         "doc": {
2026-06-04T00:32:38.5434471Z           "complete": false,
2026-06-04T00:32:38.5434666Z           "evidence": []
2026-06-04T00:32:38.5434836Z         },
2026-06-04T00:32:38.5434999Z         "impl": {
2026-06-04T00:32:38.5435180Z           "complete": true,
2026-06-04T00:32:38.5435348Z           "evidence": [
2026-06-04T00:32:38.5435507Z             {
2026-06-04T00:32:38.5435808Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5435995Z               "line": 27
2026-06-04T00:32:38.5436162Z             },
2026-06-04T00:32:38.5436311Z             {
2026-06-04T00:32:38.5436612Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5436791Z               "line": 88
2026-06-04T00:32:38.5436971Z             },
2026-06-04T00:32:38.5437128Z             {
2026-06-04T00:32:38.5437436Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5437655Z               "line": 110
2026-06-04T00:32:38.5437818Z             },
2026-06-04T00:32:38.5437999Z             {
2026-06-04T00:32:38.5438289Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5438482Z               "line": 153
2026-06-04T00:32:38.5438654Z             },
2026-06-04T00:32:38.5438828Z             {
2026-06-04T00:32:38.5439301Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5439507Z               "line": 182
2026-06-04T00:32:38.5439695Z             },
2026-06-04T00:32:38.5439899Z             {
2026-06-04T00:32:38.5440226Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5440417Z               "line": 29
2026-06-04T00:32:38.5440600Z             },
2026-06-04T00:32:38.5440784Z             {
2026-06-04T00:32:38.5441117Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T00:32:38.5441336Z               "line": 31
2026-06-04T00:32:38.5441512Z             },
2026-06-04T00:32:38.5441702Z             {
2026-06-04T00:32:38.5442005Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5442209Z               "line": 40
2026-06-04T00:32:38.5442385Z             },
2026-06-04T00:32:38.5442552Z             {
2026-06-04T00:32:38.5442861Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5443060Z               "line": 131
2026-06-04T00:32:38.5443237Z             },
2026-06-04T00:32:38.5443405Z             {
2026-06-04T00:32:38.5443712Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5443915Z               "line": 306
2026-06-04T00:32:38.5444088Z             }
2026-06-04T00:32:38.5444271Z           ]
2026-06-04T00:32:38.5444440Z         },
2026-06-04T00:32:38.5444635Z         "int": {
2026-06-04T00:32:38.5444844Z           "complete": false,
2026-06-04T00:32:38.5445048Z           "evidence": []
2026-06-04T00:32:38.5445233Z         },
2026-06-04T00:32:38.5445392Z         "unit": {
2026-06-04T00:32:38.5445609Z           "complete": true,
2026-06-04T00:32:38.5445791Z           "evidence": [
2026-06-04T00:32:38.5445964Z             {
2026-06-04T00:32:38.5446304Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5446470Z               "line": 236
2026-06-04T00:32:38.5446626Z             },
2026-06-04T00:32:38.5446777Z             {
2026-06-04T00:32:38.5447061Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T00:32:38.5447243Z               "line": 349
2026-06-04T00:32:38.5447409Z             },
2026-06-04T00:32:38.5447577Z             {
2026-06-04T00:32:38.5447850Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5448028Z               "line": 194
2026-06-04T00:32:38.5448176Z             },
2026-06-04T00:32:38.5448372Z             {
2026-06-04T00:32:38.5448996Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5449431Z               "line": 216
2026-06-04T00:32:38.5449752Z             },
2026-06-04T00:32:38.5449943Z             {
2026-06-04T00:32:38.5450279Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5450488Z               "line": 230
2026-06-04T00:32:38.5450696Z             },
2026-06-04T00:32:38.5450886Z             {
2026-06-04T00:32:38.5451214Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5451425Z               "line": 242
2026-06-04T00:32:38.5451577Z             },
2026-06-04T00:32:38.5451738Z             {
2026-06-04T00:32:38.5452016Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5452218Z               "line": 256
2026-06-04T00:32:38.5452381Z             },
2026-06-04T00:32:38.5452553Z             {
2026-06-04T00:32:38.5452845Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5453027Z               "line": 270
2026-06-04T00:32:38.5453227Z             },
2026-06-04T00:32:38.5453386Z             {
2026-06-04T00:32:38.5453699Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5453890Z               "line": 277
2026-06-04T00:32:38.5454048Z             },
2026-06-04T00:32:38.5454222Z             {
2026-06-04T00:32:38.5454516Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T00:32:38.5454716Z               "line": 295
2026-06-04T00:32:38.5454878Z             },
2026-06-04T00:32:38.5455049Z             {
2026-06-04T00:32:38.5455338Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5455524Z               "line": 696
2026-06-04T00:32:38.5455697Z             },
2026-06-04T00:32:38.5455849Z             {
2026-06-04T00:32:38.5456122Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5456318Z               "line": 757
2026-06-04T00:32:38.5456482Z             },
2026-06-04T00:32:38.5456649Z             {
2026-06-04T00:32:38.5456925Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5457139Z               "line": 814
2026-06-04T00:32:38.5457304Z             },
2026-06-04T00:32:38.5457475Z             {
2026-06-04T00:32:38.5457745Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5457939Z               "line": 868
2026-06-04T00:32:38.5458100Z             },
2026-06-04T00:32:38.5458259Z             {
2026-06-04T00:32:38.5458542Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5458721Z               "line": 920
2026-06-04T00:32:38.5458891Z             },
2026-06-04T00:32:38.5459200Z             {
2026-06-04T00:32:38.5459484Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5459689Z               "line": 1084
2026-06-04T00:32:38.5459853Z             }
2026-06-04T00:32:38.5460030Z           ]
2026-06-04T00:32:38.5460196Z         }
2026-06-04T00:32:38.5460366Z       }
2026-06-04T00:32:38.5460561Z     },
2026-06-04T00:32:38.5460726Z     {
2026-06-04T00:32:38.5460964Z       "id": "REQ-PAIR-2",
2026-06-04T00:32:38.5461315Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-04T00:32:38.5461526Z       "requiredStages": [
2026-06-04T00:32:38.5461694Z         "impl",
2026-06-04T00:32:38.5461878Z         "unit"
2026-06-04T00:32:38.5462041Z       ],
2026-06-04T00:32:38.5462226Z       "stages": {
2026-06-04T00:32:38.5462395Z         "doc": {
2026-06-04T00:32:38.5462599Z           "complete": false,
2026-06-04T00:32:38.5462794Z           "evidence": []
2026-06-04T00:32:38.5462958Z         },
2026-06-04T00:32:38.5463134Z         "impl": {
2026-06-04T00:32:38.5463327Z           "complete": true,
2026-06-04T00:32:38.5463521Z           "evidence": [
2026-06-04T00:32:38.5463694Z             {
2026-06-04T00:32:38.5463966Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5464151Z               "line": 42
2026-06-04T00:32:38.5464318Z             },
2026-06-04T00:32:38.5464693Z             {
2026-06-04T00:32:38.5464944Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5465282Z               "line": 151
2026-06-04T00:32:38.5465451Z             },
2026-06-04T00:32:38.5465608Z             {
2026-06-04T00:32:38.5465862Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5466033Z               "line": 171
2026-06-04T00:32:38.5466200Z             },
2026-06-04T00:32:38.5466370Z             {
2026-06-04T00:32:38.5466635Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5466827Z               "line": 209
2026-06-04T00:32:38.5466983Z             },
2026-06-04T00:32:38.5467155Z             {
2026-06-04T00:32:38.5467399Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5467590Z               "line": 232
2026-06-04T00:32:38.5467771Z             }
2026-06-04T00:32:38.5467956Z           ]
2026-06-04T00:32:38.5468143Z         },
2026-06-04T00:32:38.5468333Z         "int": {
2026-06-04T00:32:38.5468589Z           "complete": false,
2026-06-04T00:32:38.5468795Z           "evidence": []
2026-06-04T00:32:38.5468996Z         },
2026-06-04T00:32:38.5469454Z         "unit": {
2026-06-04T00:32:38.5469704Z           "complete": true,
2026-06-04T00:32:38.5469922Z           "evidence": [
2026-06-04T00:32:38.5470088Z             {
2026-06-04T00:32:38.5470368Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5470581Z               "line": 253
2026-06-04T00:32:38.5470784Z             },
2026-06-04T00:32:38.5470977Z             {
2026-06-04T00:32:38.5471271Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5471498Z               "line": 272
2026-06-04T00:32:38.5471690Z             },
2026-06-04T00:32:38.5471889Z             {
2026-06-04T00:32:38.5472174Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5472401Z               "line": 284
2026-06-04T00:32:38.5472608Z             },
2026-06-04T00:32:38.5472820Z             {
2026-06-04T00:32:38.5473117Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5473320Z               "line": 303
2026-06-04T00:32:38.5473508Z             },
2026-06-04T00:32:38.5473694Z             {
2026-06-04T00:32:38.5473966Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5474168Z               "line": 319
2026-06-04T00:32:38.5474351Z             },
2026-06-04T00:32:38.5474543Z             {
2026-06-04T00:32:38.5474802Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5475008Z               "line": 331
2026-06-04T00:32:38.5475194Z             },
2026-06-04T00:32:38.5475382Z             {
2026-06-04T00:32:38.5475663Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5475861Z               "line": 343
2026-06-04T00:32:38.5476045Z             },
2026-06-04T00:32:38.5476220Z             {
2026-06-04T00:32:38.5476492Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5476709Z               "line": 356
2026-06-04T00:32:38.5476896Z             },
2026-06-04T00:32:38.5477088Z             {
2026-06-04T00:32:38.5477353Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T00:32:38.5477545Z               "line": 370
2026-06-04T00:32:38.5477722Z             }
2026-06-04T00:32:38.5477898Z           ]
2026-06-04T00:32:38.5478066Z         }
2026-06-04T00:32:38.5478231Z       }
2026-06-04T00:32:38.5478407Z     },
2026-06-04T00:32:38.5478580Z     {
2026-06-04T00:32:38.5478796Z       "id": "REQ-PAIR-3",
2026-06-04T00:32:38.5479305Z       "title": "Fetch current pairing code from any paired node",
2026-06-04T00:32:38.5479537Z       "requiredStages": [
2026-06-04T00:32:38.5479724Z         "impl",
2026-06-04T00:32:38.5479910Z         "unit"
2026-06-04T00:32:38.5480089Z       ],
2026-06-04T00:32:38.5480270Z       "stages": {
2026-06-04T00:32:38.5480447Z         "doc": {
2026-06-04T00:32:38.5480658Z           "complete": false,
2026-06-04T00:32:38.5480857Z           "evidence": []
2026-06-04T00:32:38.5481243Z         },
2026-06-04T00:32:38.5481457Z         "impl": {
2026-06-04T00:32:38.5481796Z           "complete": true,
2026-06-04T00:32:38.5481996Z           "evidence": [
2026-06-04T00:32:38.5482167Z             {
2026-06-04T00:32:38.5482410Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5482611Z               "line": 464
2026-06-04T00:32:38.5482772Z             },
2026-06-04T00:32:38.5482949Z             {
2026-06-04T00:32:38.5483191Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5483351Z               "line": 500
2026-06-04T00:32:38.5483501Z             },
2026-06-04T00:32:38.5483640Z             {
2026-06-04T00:32:38.5483854Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5484028Z               "line": 560
2026-06-04T00:32:38.5484199Z             }
2026-06-04T00:32:38.5484373Z           ]
2026-06-04T00:32:38.5484549Z         },
2026-06-04T00:32:38.5484743Z         "int": {
2026-06-04T00:32:38.5484981Z           "complete": false,
2026-06-04T00:32:38.5485174Z           "evidence": []
2026-06-04T00:32:38.5485340Z         },
2026-06-04T00:32:38.5485533Z         "unit": {
2026-06-04T00:32:38.5485740Z           "complete": true,
2026-06-04T00:32:38.5485924Z           "evidence": [
2026-06-04T00:32:38.5486104Z             {
2026-06-04T00:32:38.5486349Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5486545Z               "line": 696
2026-06-04T00:32:38.5486713Z             },
2026-06-04T00:32:38.5486906Z             {
2026-06-04T00:32:38.5487149Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5487346Z               "line": 713
2026-06-04T00:32:38.5487527Z             },
2026-06-04T00:32:38.5487697Z             {
2026-06-04T00:32:38.5487923Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5488101Z               "line": 727
2026-06-04T00:32:38.5488256Z             },
2026-06-04T00:32:38.5488411Z             {
2026-06-04T00:32:38.5488635Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5488808Z               "line": 743
2026-06-04T00:32:38.5488959Z             },
2026-06-04T00:32:38.5489308Z             {
2026-06-04T00:32:38.5489536Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5489732Z               "line": 764
2026-06-04T00:32:38.5489903Z             },
2026-06-04T00:32:38.5490063Z             {
2026-06-04T00:32:38.5490293Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5490476Z               "line": 780
2026-06-04T00:32:38.5490645Z             },
2026-06-04T00:32:38.5490806Z             {
2026-06-04T00:32:38.5491033Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5491223Z               "line": 793
2026-06-04T00:32:38.5491382Z             },
2026-06-04T00:32:38.5491538Z             {
2026-06-04T00:32:38.5491749Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5491930Z               "line": 802
2026-06-04T00:32:38.5492074Z             }
2026-06-04T00:32:38.5492229Z           ]
2026-06-04T00:32:38.5492409Z         }
2026-06-04T00:32:38.5492566Z       }
2026-06-04T00:32:38.5492750Z     },
2026-06-04T00:32:38.5492900Z     {
2026-06-04T00:32:38.5493101Z       "id": "REQ-PAIR-4",
2026-06-04T00:32:38.5493336Z       "title": "Subnet naming on first pairing",
2026-06-04T00:32:38.5493529Z       "requiredStages": [
2026-06-04T00:32:38.5493700Z         "impl",
2026-06-04T00:32:38.5493863Z         "unit"
2026-06-04T00:32:38.5494026Z       ],
2026-06-04T00:32:38.5494185Z       "stages": {
2026-06-04T00:32:38.5494347Z         "doc": {
2026-06-04T00:32:38.5494528Z           "complete": false,
2026-06-04T00:32:38.5494709Z           "evidence": []
2026-06-04T00:32:38.5494873Z         },
2026-06-04T00:32:38.5495032Z         "impl": {
2026-06-04T00:32:38.5495218Z           "complete": true,
2026-06-04T00:32:38.5495378Z           "evidence": [
2026-06-04T00:32:38.5495571Z             {
2026-06-04T00:32:38.5495856Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T00:32:38.5496381Z               "line": 154
2026-06-04T00:32:38.5496553Z             }
2026-06-04T00:32:38.5496714Z           ]
2026-06-04T00:32:38.5497009Z         },
2026-06-04T00:32:38.5497165Z         "int": {
2026-06-04T00:32:38.5497358Z           "complete": false,
2026-06-04T00:32:38.5497530Z           "evidence": []
2026-06-04T00:32:38.5497691Z         },
2026-06-04T00:32:38.5497864Z         "unit": {
2026-06-04T00:32:38.5498051Z           "complete": true,
2026-06-04T00:32:38.5498237Z           "evidence": [
2026-06-04T00:32:38.5498390Z             {
2026-06-04T00:32:38.5498692Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5498857Z               "line": 972
2026-06-04T00:32:38.5499015Z             }
2026-06-04T00:32:38.5499322Z           ]
2026-06-04T00:32:38.5499486Z         }
2026-06-04T00:32:38.5499637Z       }
2026-06-04T00:32:38.5499782Z     },
2026-06-04T00:32:38.5499936Z     {
2026-06-04T00:32:38.5500118Z       "id": "REQ-PAIR-5",
2026-06-04T00:32:38.5500832Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-04T00:32:38.5501064Z       "requiredStages": [
2026-06-04T00:32:38.5501238Z         "impl",
2026-06-04T00:32:38.5501399Z         "unit"
2026-06-04T00:32:38.5501553Z       ],
2026-06-04T00:32:38.5501716Z       "stages": {
2026-06-04T00:32:38.5501860Z         "doc": {
2026-06-04T00:32:38.5502045Z           "complete": false,
2026-06-04T00:32:38.5502222Z           "evidence": []
2026-06-04T00:32:38.5502373Z         },
2026-06-04T00:32:38.5502547Z         "impl": {
2026-06-04T00:32:38.5502725Z           "complete": true,
2026-06-04T00:32:38.5502896Z           "evidence": [
2026-06-04T00:32:38.5503069Z             {
2026-06-04T00:32:38.5503390Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5503569Z               "line": 33
2026-06-04T00:32:38.5503722Z             },
2026-06-04T00:32:38.5503883Z             {
2026-06-04T00:32:38.5504206Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5504446Z               "line": 45
2026-06-04T00:32:38.5504609Z             },
2026-06-04T00:32:38.5504782Z             {
2026-06-04T00:32:38.5505096Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5505275Z               "line": 59
2026-06-04T00:32:38.5505443Z             },
2026-06-04T00:32:38.5505587Z             {
2026-06-04T00:32:38.5505899Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5506080Z               "line": 306
2026-06-04T00:32:38.5506262Z             }
2026-06-04T00:32:38.5506440Z           ]
2026-06-04T00:32:38.5506609Z         },
2026-06-04T00:32:38.5506790Z         "int": {
2026-06-04T00:32:38.5507010Z           "complete": false,
2026-06-04T00:32:38.5507224Z           "evidence": []
2026-06-04T00:32:38.5507398Z         },
2026-06-04T00:32:38.5507611Z         "unit": {
2026-06-04T00:32:38.5507836Z           "complete": true,
2026-06-04T00:32:38.5508064Z           "evidence": [
2026-06-04T00:32:38.5508257Z             {
2026-06-04T00:32:38.5508607Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5508826Z               "line": 72
2026-06-04T00:32:38.5508979Z             },
2026-06-04T00:32:38.5509414Z             {
2026-06-04T00:32:38.5509773Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5509964Z               "line": 82
2026-06-04T00:32:38.5510140Z             },
2026-06-04T00:32:38.5510318Z             {
2026-06-04T00:32:38.5510601Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5510770Z               "line": 92
2026-06-04T00:32:38.5510897Z             },
2026-06-04T00:32:38.5511027Z             {
2026-06-04T00:32:38.5511288Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5511471Z               "line": 102
2026-06-04T00:32:38.5511630Z             },
2026-06-04T00:32:38.5512008Z             {
2026-06-04T00:32:38.5512332Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T00:32:38.5512633Z               "line": 117
2026-06-04T00:32:38.5512810Z             },
2026-06-04T00:32:38.5512973Z             {
2026-06-04T00:32:38.5513257Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5513431Z               "line": 750
2026-06-04T00:32:38.5513609Z             },
2026-06-04T00:32:38.5513760Z             {
2026-06-04T00:32:38.5514033Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5514227Z               "line": 806
2026-06-04T00:32:38.5514390Z             },
2026-06-04T00:32:38.5514548Z             {
2026-06-04T00:32:38.5514832Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T00:32:38.5515022Z               "line": 1026
2026-06-04T00:32:38.5515198Z             }
2026-06-04T00:32:38.5515352Z           ]
2026-06-04T00:32:38.5515511Z         }
2026-06-04T00:32:38.5515661Z       }
2026-06-04T00:32:38.5515841Z     },
2026-06-04T00:32:38.5515998Z     {
2026-06-04T00:32:38.5516211Z       "id": "REQ-PAIR-6",
2026-06-04T00:32:38.5516804Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-04T00:32:38.5516983Z       "requiredStages": [
2026-06-04T00:32:38.5517155Z         "impl",
2026-06-04T00:32:38.5517317Z         "unit"
2026-06-04T00:32:38.5517481Z       ],
2026-06-04T00:32:38.5517649Z       "stages": {
2026-06-04T00:32:38.5517815Z         "doc": {
2026-06-04T00:32:38.5518020Z           "complete": false,
2026-06-04T00:32:38.5518200Z           "evidence": []
2026-06-04T00:32:38.5518373Z         },
2026-06-04T00:32:38.5518536Z         "impl": {
2026-06-04T00:32:38.5518724Z           "complete": true,
2026-06-04T00:32:38.5518896Z           "evidence": [
2026-06-04T00:32:38.5519205Z             {
2026-06-04T00:32:38.5519456Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5519634Z               "line": 500
2026-06-04T00:32:38.5519814Z             },
2026-06-04T00:32:38.5519975Z             {
2026-06-04T00:32:38.5520222Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5520403Z               "line": 560
2026-06-04T00:32:38.5520587Z             },
2026-06-04T00:32:38.5520773Z             {
2026-06-04T00:32:38.5521026Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:32:38.5521201Z               "line": 18
2026-06-04T00:32:38.5521361Z             },
2026-06-04T00:32:38.5521527Z             {
2026-06-04T00:32:38.5521764Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:32:38.5521945Z               "line": 49
2026-06-04T00:32:38.5522114Z             },
2026-06-04T00:32:38.5522269Z             {
2026-06-04T00:32:38.5522526Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:32:38.5522702Z               "line": 70
2026-06-04T00:32:38.5522875Z             }
2026-06-04T00:32:38.5523044Z           ]
2026-06-04T00:32:38.5523228Z         },
2026-06-04T00:32:38.5523428Z         "int": {
2026-06-04T00:32:38.5523643Z           "complete": false,
2026-06-04T00:32:38.5523870Z           "evidence": []
2026-06-04T00:32:38.5524043Z         },
2026-06-04T00:32:38.5524240Z         "unit": {
2026-06-04T00:32:38.5524432Z           "complete": true,
2026-06-04T00:32:38.5524623Z           "evidence": [
2026-06-04T00:32:38.5524797Z             {
2026-06-04T00:32:38.5525030Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5525240Z               "line": 815
2026-06-04T00:32:38.5525387Z             },
2026-06-04T00:32:38.5525549Z             {
2026-06-04T00:32:38.5525765Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5525945Z               "line": 832
2026-06-04T00:32:38.5526102Z             },
2026-06-04T00:32:38.5526273Z             {
2026-06-04T00:32:38.5526539Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:32:38.5526705Z               "line": 132
2026-06-04T00:32:38.5526870Z             },
2026-06-04T00:32:38.5527221Z             {
2026-06-04T00:32:38.5527497Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T00:32:38.5527788Z               "line": 141
2026-06-04T00:32:38.5527953Z             }
2026-06-04T00:32:38.5528141Z           ]
2026-06-04T00:32:38.5528320Z         }
2026-06-04T00:32:38.5528514Z       }
2026-06-04T00:32:38.5528689Z     },
2026-06-04T00:32:38.5528850Z     {
2026-06-04T00:32:38.5529207Z       "id": "REQ-PAIR-7",
2026-06-04T00:32:38.5529718Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-04T00:32:38.5529938Z       "requiredStages": [],
2026-06-04T00:32:38.5530114Z       "stages": {
2026-06-04T00:32:38.5530276Z         "doc": {
2026-06-04T00:32:38.5530458Z           "complete": false,
2026-06-04T00:32:38.5530642Z           "evidence": []
2026-06-04T00:32:38.5530805Z         },
2026-06-04T00:32:38.5530977Z         "impl": {
2026-06-04T00:32:38.5531175Z           "complete": false,
2026-06-04T00:32:38.5531352Z           "evidence": []
2026-06-04T00:32:38.5531535Z         },
2026-06-04T00:32:38.5531704Z         "int": {
2026-06-04T00:32:38.5531908Z           "complete": false,
2026-06-04T00:32:38.5532091Z           "evidence": []
2026-06-04T00:32:38.5532250Z         },
2026-06-04T00:32:38.5532421Z         "unit": {
2026-06-04T00:32:38.5532603Z           "complete": false,
2026-06-04T00:32:38.5532797Z           "evidence": []
2026-06-04T00:32:38.5532962Z         }
2026-06-04T00:32:38.5533129Z       }
2026-06-04T00:32:38.5533293Z     },
2026-06-04T00:32:38.5533455Z     {
2026-06-04T00:32:38.5533656Z       "id": "REQ-REACH-1",
2026-06-04T00:32:38.5533991Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-04T00:32:38.5534190Z       "requiredStages": [],
2026-06-04T00:32:38.5534357Z       "stages": {
2026-06-04T00:32:38.5534532Z         "doc": {
2026-06-04T00:32:38.5534731Z           "complete": false,
2026-06-04T00:32:38.5534918Z           "evidence": []
2026-06-04T00:32:38.5535088Z         },
2026-06-04T00:32:38.5535246Z         "impl": {
2026-06-04T00:32:38.5535458Z           "complete": false,
2026-06-04T00:32:38.5535634Z           "evidence": []
2026-06-04T00:32:38.5535812Z         },
2026-06-04T00:32:38.5535965Z         "int": {
2026-06-04T00:32:38.5536134Z           "complete": false,
2026-06-04T00:32:38.5536311Z           "evidence": []
2026-06-04T00:32:38.5536456Z         },
2026-06-04T00:32:38.5536630Z         "unit": {
2026-06-04T00:32:38.5536809Z           "complete": false,
2026-06-04T00:32:38.5536999Z           "evidence": []
2026-06-04T00:32:38.5537176Z         }
2026-06-04T00:32:38.5537334Z       }
2026-06-04T00:32:38.5537501Z     },
2026-06-04T00:32:38.5537652Z     {
2026-06-04T00:32:38.5537851Z       "id": "REQ-REACH-2",
2026-06-04T00:32:38.5538184Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-04T00:32:38.5538389Z       "requiredStages": [],
2026-06-04T00:32:38.5538558Z       "stages": {
2026-06-04T00:32:38.5538718Z         "doc": {
2026-06-04T00:32:38.5538919Z           "complete": false,
2026-06-04T00:32:38.5539285Z           "evidence": []
2026-06-04T00:32:38.5539472Z         },
2026-06-04T00:32:38.5539658Z         "impl": {
2026-06-04T00:32:38.5539868Z           "complete": false,
2026-06-04T00:32:38.5540072Z           "evidence": []
2026-06-04T00:32:38.5540241Z         },
2026-06-04T00:32:38.5540421Z         "int": {
2026-06-04T00:32:38.5540613Z           "complete": false,
2026-06-04T00:32:38.5540805Z           "evidence": []
2026-06-04T00:32:38.5540969Z         },
2026-06-04T00:32:38.5541148Z         "unit": {
2026-06-04T00:32:38.5541345Z           "complete": false,
2026-06-04T00:32:38.5541530Z           "evidence": []
2026-06-04T00:32:38.5541705Z         }
2026-06-04T00:32:38.5541874Z       }
2026-06-04T00:32:38.5542042Z     },
2026-06-04T00:32:38.5542193Z     {
2026-06-04T00:32:38.5542423Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-04T00:32:38.5542823Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-04T00:32:38.5543027Z       "requiredStages": [
2026-06-04T00:32:38.5543460Z         "impl",
2026-06-04T00:32:38.5543643Z         "unit"
2026-06-04T00:32:38.5543908Z       ],
2026-06-04T00:32:38.5544094Z       "stages": {
2026-06-04T00:32:38.5544274Z         "doc": {
2026-06-04T00:32:38.5544486Z           "complete": false,
2026-06-04T00:32:38.5544680Z           "evidence": []
2026-06-04T00:32:38.5544865Z         },
2026-06-04T00:32:38.5545057Z         "impl": {
2026-06-04T00:32:38.5545268Z           "complete": true,
2026-06-04T00:32:38.5545463Z           "evidence": [
2026-06-04T00:32:38.5545648Z             {
2026-06-04T00:32:38.5545944Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5546147Z               "line": 18
2026-06-04T00:32:38.5546344Z             },
2026-06-04T00:32:38.5546502Z             {
2026-06-04T00:32:38.5546792Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5546958Z               "line": 35
2026-06-04T00:32:38.5547135Z             },
2026-06-04T00:32:38.5547306Z             {
2026-06-04T00:32:38.5547572Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5547775Z               "line": 65
2026-06-04T00:32:38.5547952Z             }
2026-06-04T00:32:38.5548131Z           ]
2026-06-04T00:32:38.5548306Z         },
2026-06-04T00:32:38.5548498Z         "int": {
2026-06-04T00:32:38.5548701Z           "complete": false,
2026-06-04T00:32:38.5548895Z           "evidence": []
2026-06-04T00:32:38.5549307Z         },
2026-06-04T00:32:38.5549514Z         "unit": {
2026-06-04T00:32:38.5549734Z           "complete": true,
2026-06-04T00:32:38.5549929Z           "evidence": [
2026-06-04T00:32:38.5550117Z             {
2026-06-04T00:32:38.5550393Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5550588Z               "line": 170
2026-06-04T00:32:38.5550778Z             },
2026-06-04T00:32:38.5550950Z             {
2026-06-04T00:32:38.5551228Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5551421Z               "line": 184
2026-06-04T00:32:38.5551614Z             },
2026-06-04T00:32:38.5551790Z             {
2026-06-04T00:32:38.5552070Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5552263Z               "line": 193
2026-06-04T00:32:38.5552430Z             }
2026-06-04T00:32:38.5552615Z           ]
2026-06-04T00:32:38.5552787Z         }
2026-06-04T00:32:38.5552967Z       }
2026-06-04T00:32:38.5553143Z     },
2026-06-04T00:32:38.5553309Z     {
2026-06-04T00:32:38.5553542Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-04T00:32:38.5553872Z       "title": "Hostable endpoint-types capability declaration",
2026-06-04T00:32:38.5554085Z       "requiredStages": [
2026-06-04T00:32:38.5554261Z         "impl",
2026-06-04T00:32:38.5554442Z         "unit"
2026-06-04T00:32:38.5554621Z       ],
2026-06-04T00:32:38.5554802Z       "stages": {
2026-06-04T00:32:38.5554988Z         "doc": {
2026-06-04T00:32:38.5555190Z           "complete": false,
2026-06-04T00:32:38.5555380Z           "evidence": []
2026-06-04T00:32:38.5555567Z         },
2026-06-04T00:32:38.5555761Z         "impl": {
2026-06-04T00:32:38.5555980Z           "complete": true,
2026-06-04T00:32:38.5556167Z           "evidence": [
2026-06-04T00:32:38.5556350Z             {
2026-06-04T00:32:38.5556639Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.5556818Z               "line": 186
2026-06-04T00:32:38.5556988Z             }
2026-06-04T00:32:38.5557168Z           ]
2026-06-04T00:32:38.5557353Z         },
2026-06-04T00:32:38.5557532Z         "int": {
2026-06-04T00:32:38.5557734Z           "complete": false,
2026-06-04T00:32:38.5557917Z           "evidence": []
2026-06-04T00:32:38.5558101Z         },
2026-06-04T00:32:38.5558278Z         "unit": {
2026-06-04T00:32:38.5558486Z           "complete": true,
2026-06-04T00:32:38.5558691Z           "evidence": [
2026-06-04T00:32:38.5558865Z             {
2026-06-04T00:32:38.5559300Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.5559473Z               "line": 301
2026-06-04T00:32:38.5559852Z             }
2026-06-04T00:32:38.5560037Z           ]
2026-06-04T00:32:38.5560301Z         }
2026-06-04T00:32:38.5560476Z       }
2026-06-04T00:32:38.5560635Z     },
2026-06-04T00:32:38.5560810Z     {
2026-06-04T00:32:38.5561032Z       "id": "REQ-SEAM-HISTORY",
2026-06-04T00:32:38.5561405Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-04T00:32:38.5561608Z       "requiredStages": [
2026-06-04T00:32:38.5561768Z         "impl",
2026-06-04T00:32:38.5561926Z         "unit",
2026-06-04T00:32:38.5562088Z         "int"
2026-06-04T00:32:38.5562256Z       ],
2026-06-04T00:32:38.5562420Z       "stages": {
2026-06-04T00:32:38.5562585Z         "doc": {
2026-06-04T00:32:38.5562771Z           "complete": false,
2026-06-04T00:32:38.5562957Z           "evidence": []
2026-06-04T00:32:38.5563134Z         },
2026-06-04T00:32:38.5563323Z         "impl": {
2026-06-04T00:32:38.5563526Z           "complete": true,
2026-06-04T00:32:38.5563704Z           "evidence": [
2026-06-04T00:32:38.5563888Z             {
2026-06-04T00:32:38.5564129Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.5564335Z               "line": 24
2026-06-04T00:32:38.5564497Z             },
2026-06-04T00:32:38.5564650Z             {
2026-06-04T00:32:38.5564931Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5565123Z               "line": 22
2026-06-04T00:32:38.5565304Z             }
2026-06-04T00:32:38.5565485Z           ]
2026-06-04T00:32:38.5565675Z         },
2026-06-04T00:32:38.5565870Z         "int": {
2026-06-04T00:32:38.5566078Z           "complete": true,
2026-06-04T00:32:38.5566278Z           "evidence": [
2026-06-04T00:32:38.5566445Z             {
2026-06-04T00:32:38.5566729Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.5566926Z               "line": 202
2026-06-04T00:32:38.5567118Z             }
2026-06-04T00:32:38.5567304Z           ]
2026-06-04T00:32:38.5567480Z         },
2026-06-04T00:32:38.5567692Z         "unit": {
2026-06-04T00:32:38.5567899Z           "complete": true,
2026-06-04T00:32:38.5568120Z           "evidence": [
2026-06-04T00:32:38.5568301Z             {
2026-06-04T00:32:38.5568582Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.5568787Z               "line": 163
2026-06-04T00:32:38.5568949Z             },
2026-06-04T00:32:38.5569405Z             {
2026-06-04T00:32:38.5569677Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.5569890Z               "line": 186
2026-06-04T00:32:38.5570071Z             },
2026-06-04T00:32:38.5570260Z             {
2026-06-04T00:32:38.5570520Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T00:32:38.5570711Z               "line": 195
2026-06-04T00:32:38.5570903Z             },
2026-06-04T00:32:38.5571073Z             {
2026-06-04T00:32:38.5571339Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5571526Z               "line": 195
2026-06-04T00:32:38.5571737Z             },
2026-06-04T00:32:38.5571919Z             {
2026-06-04T00:32:38.5572187Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5572429Z               "line": 209
2026-06-04T00:32:38.5572610Z             },
2026-06-04T00:32:38.5572807Z             {
2026-06-04T00:32:38.5573068Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5573272Z               "line": 228
2026-06-04T00:32:38.5573461Z             },
2026-06-04T00:32:38.5573643Z             {
2026-06-04T00:32:38.5573940Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5574144Z               "line": 248
2026-06-04T00:32:38.5574344Z             },
2026-06-04T00:32:38.5574532Z             {
2026-06-04T00:32:38.5574830Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5575044Z               "line": 264
2026-06-04T00:32:38.5575236Z             },
2026-06-04T00:32:38.5575436Z             {
2026-06-04T00:32:38.5576056Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T00:32:38.5576273Z               "line": 279
2026-06-04T00:32:38.5576563Z             }
2026-06-04T00:32:38.5576749Z           ]
2026-06-04T00:32:38.5576940Z         }
2026-06-04T00:32:38.5577119Z       }
2026-06-04T00:32:38.5577302Z     },
2026-06-04T00:32:38.5577473Z     {
2026-06-04T00:32:38.5577710Z       "id": "REQ-SEAM-INJECT",
2026-06-04T00:32:38.5578092Z       "title": "inject-input methods configurable per activity-state",
2026-06-04T00:32:38.5578288Z       "requiredStages": [
2026-06-04T00:32:38.5578483Z         "impl",
2026-06-04T00:32:38.5578663Z         "unit"
2026-06-04T00:32:38.5578852Z       ],
2026-06-04T00:32:38.5579184Z       "stages": {
2026-06-04T00:32:38.5579382Z         "doc": {
2026-06-04T00:32:38.5579584Z           "complete": false,
2026-06-04T00:32:38.5579788Z           "evidence": []
2026-06-04T00:32:38.5579979Z         },
2026-06-04T00:32:38.5580167Z         "impl": {
2026-06-04T00:32:38.5580383Z           "complete": true,
2026-06-04T00:32:38.5580582Z           "evidence": [
2026-06-04T00:32:38.5580773Z             {
2026-06-04T00:32:38.5581003Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5581167Z               "line": 19
2026-06-04T00:32:38.5581325Z             },
2026-06-04T00:32:38.5581471Z             {
2026-06-04T00:32:38.5581705Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5581877Z               "line": 104
2026-06-04T00:32:38.5582033Z             }
2026-06-04T00:32:38.5582193Z           ]
2026-06-04T00:32:38.5582344Z         },
2026-06-04T00:32:38.5582519Z         "int": {
2026-06-04T00:32:38.5582707Z           "complete": false,
2026-06-04T00:32:38.5582914Z           "evidence": []
2026-06-04T00:32:38.5583097Z         },
2026-06-04T00:32:38.5583298Z         "unit": {
2026-06-04T00:32:38.5583482Z           "complete": true,
2026-06-04T00:32:38.5583694Z           "evidence": [
2026-06-04T00:32:38.5583891Z             {
2026-06-04T00:32:38.5584191Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5584404Z               "line": 222
2026-06-04T00:32:38.5584580Z             },
2026-06-04T00:32:38.5584746Z             {
2026-06-04T00:32:38.5585003Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T00:32:38.5585173Z               "line": 236
2026-06-04T00:32:38.5585344Z             }
2026-06-04T00:32:38.5585503Z           ]
2026-06-04T00:32:38.5585676Z         }
2026-06-04T00:32:38.5585838Z       }
2026-06-04T00:32:38.5586017Z     },
2026-06-04T00:32:38.5586168Z     {
2026-06-04T00:32:38.5586392Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-04T00:32:38.5586692Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-04T00:32:38.5586883Z       "requiredStages": [
2026-06-04T00:32:38.5587062Z         "impl",
2026-06-04T00:32:38.5587249Z         "unit"
2026-06-04T00:32:38.5587444Z       ],
2026-06-04T00:32:38.5587644Z       "stages": {
2026-06-04T00:32:38.5587847Z         "doc": {
2026-06-04T00:32:38.5588053Z           "complete": false,
2026-06-04T00:32:38.5588281Z           "evidence": []
2026-06-04T00:32:38.5588483Z         },
2026-06-04T00:32:38.5588694Z         "impl": {
2026-06-04T00:32:38.5588917Z           "complete": true,
2026-06-04T00:32:38.5589354Z           "evidence": [
2026-06-04T00:32:38.5589559Z             {
2026-06-04T00:32:38.5589835Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5590023Z               "line": 18
2026-06-04T00:32:38.5590211Z             },
2026-06-04T00:32:38.5590370Z             {
2026-06-04T00:32:38.5590640Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5590833Z               "line": 257
2026-06-04T00:32:38.5591003Z             }
2026-06-04T00:32:38.5591174Z           ]
2026-06-04T00:32:38.5591335Z         },
2026-06-04T00:32:38.5591509Z         "int": {
2026-06-04T00:32:38.5591698Z           "complete": false,
2026-06-04T00:32:38.5591892Z           "evidence": []
2026-06-04T00:32:38.5592046Z         },
2026-06-04T00:32:38.5592221Z         "unit": {
2026-06-04T00:32:38.5592635Z           "complete": true,
2026-06-04T00:32:38.5592836Z           "evidence": [
2026-06-04T00:32:38.5593107Z             {
2026-06-04T00:32:38.5593365Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5593545Z               "line": 420
2026-06-04T00:32:38.5593703Z             },
2026-06-04T00:32:38.5593845Z             {
2026-06-04T00:32:38.5594079Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5594243Z               "line": 430
2026-06-04T00:32:38.5594401Z             }
2026-06-04T00:32:38.5594555Z           ]
2026-06-04T00:32:38.5594717Z         }
2026-06-04T00:32:38.5594864Z       }
2026-06-04T00:32:38.5595017Z     },
2026-06-04T00:32:38.5595198Z     {
2026-06-04T00:32:38.5595385Z       "id": "REQ-SEAM-PSYCHE",
2026-06-04T00:32:38.5595692Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-04T00:32:38.5595879Z       "requiredStages": [
2026-06-04T00:32:38.5596042Z         "impl",
2026-06-04T00:32:38.5596223Z         "unit",
2026-06-04T00:32:38.5596382Z         "int"
2026-06-04T00:32:38.5596543Z       ],
2026-06-04T00:32:38.5596715Z       "stages": {
2026-06-04T00:32:38.5596878Z         "doc": {
2026-06-04T00:32:38.5597061Z           "complete": false,
2026-06-04T00:32:38.5597234Z           "evidence": []
2026-06-04T00:32:38.5597379Z         },
2026-06-04T00:32:38.5597549Z         "impl": {
2026-06-04T00:32:38.5597736Z           "complete": true,
2026-06-04T00:32:38.5597904Z           "evidence": [
2026-06-04T00:32:38.5598063Z             {
2026-06-04T00:32:38.5598318Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:32:38.5598509Z               "line": 19
2026-06-04T00:32:38.5598678Z             },
2026-06-04T00:32:38.5598863Z             {
2026-06-04T00:32:38.5599275Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T00:32:38.5599464Z               "line": 12
2026-06-04T00:32:38.5599644Z             },
2026-06-04T00:32:38.5599821Z             {
2026-06-04T00:32:38.5600114Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5600307Z               "line": 164
2026-06-04T00:32:38.5600487Z             }
2026-06-04T00:32:38.5600668Z           ]
2026-06-04T00:32:38.5600816Z         },
2026-06-04T00:32:38.5601002Z         "int": {
2026-06-04T00:32:38.5601201Z           "complete": true,
2026-06-04T00:32:38.5601397Z           "evidence": [
2026-06-04T00:32:38.5601568Z             {
2026-06-04T00:32:38.5601858Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.5602058Z               "line": 201
2026-06-04T00:32:38.5602223Z             }
2026-06-04T00:32:38.5602411Z           ]
2026-06-04T00:32:38.5602574Z         },
2026-06-04T00:32:38.5602762Z         "unit": {
2026-06-04T00:32:38.5602958Z           "complete": true,
2026-06-04T00:32:38.5603152Z           "evidence": [
2026-06-04T00:32:38.5603340Z             {
2026-06-04T00:32:38.5603609Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:32:38.5603814Z               "line": 161
2026-06-04T00:32:38.5603986Z             },
2026-06-04T00:32:38.5604167Z             {
2026-06-04T00:32:38.5604516Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:32:38.5604711Z               "line": 168
2026-06-04T00:32:38.5604902Z             },
2026-06-04T00:32:38.5605077Z             {
2026-06-04T00:32:38.5605352Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T00:32:38.5605533Z               "line": 191
2026-06-04T00:32:38.5605719Z             },
2026-06-04T00:32:38.5605898Z             {
2026-06-04T00:32:38.5606147Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:32:38.5606323Z               "line": 105
2026-06-04T00:32:38.5606473Z             },
2026-06-04T00:32:38.5606635Z             {
2026-06-04T00:32:38.5606877Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:32:38.5607062Z               "line": 122
2026-06-04T00:32:38.5607234Z             },
2026-06-04T00:32:38.5607385Z             {
2026-06-04T00:32:38.5607843Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T00:32:38.5608022Z               "line": 136
2026-06-04T00:32:38.5608289Z             }
2026-06-04T00:32:38.5608444Z           ]
2026-06-04T00:32:38.5608604Z         }
2026-06-04T00:32:38.5608766Z       }
2026-06-04T00:32:38.5608919Z     },
2026-06-04T00:32:38.5609235Z     {
2026-06-04T00:32:38.5609447Z       "id": "REQ-SEAM-RESUME",
2026-06-04T00:32:38.5609876Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-04T00:32:38.5610067Z       "requiredStages": [
2026-06-04T00:32:38.5610252Z         "impl",
2026-06-04T00:32:38.5610421Z         "unit"
2026-06-04T00:32:38.5610582Z       ],
2026-06-04T00:32:38.5610768Z       "stages": {
2026-06-04T00:32:38.5610933Z         "doc": {
2026-06-04T00:32:38.5611132Z           "complete": false,
2026-06-04T00:32:38.5611310Z           "evidence": []
2026-06-04T00:32:38.5611481Z         },
2026-06-04T00:32:38.5611663Z         "impl": {
2026-06-04T00:32:38.5611870Z           "complete": true,
2026-06-04T00:32:38.5612073Z           "evidence": [
2026-06-04T00:32:38.5612261Z             {
2026-06-04T00:32:38.5612553Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:32:38.5612757Z               "line": 19
2026-06-04T00:32:38.5612932Z             }
2026-06-04T00:32:38.5613119Z           ]
2026-06-04T00:32:38.5613310Z         },
2026-06-04T00:32:38.5613512Z         "int": {
2026-06-04T00:32:38.5613730Z           "complete": false,
2026-06-04T00:32:38.5613940Z           "evidence": []
2026-06-04T00:32:38.5614109Z         },
2026-06-04T00:32:38.5614300Z         "unit": {
2026-06-04T00:32:38.5614523Z           "complete": true,
2026-06-04T00:32:38.5614727Z           "evidence": [
2026-06-04T00:32:38.5614926Z             {
2026-06-04T00:32:38.5615204Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:32:38.5615415Z               "line": 145
2026-06-04T00:32:38.5615606Z             },
2026-06-04T00:32:38.5615804Z             {
2026-06-04T00:32:38.5616106Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:32:38.5616294Z               "line": 164
2026-06-04T00:32:38.5616480Z             },
2026-06-04T00:32:38.5616644Z             {
2026-06-04T00:32:38.5616917Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:32:38.5617107Z               "line": 182
2026-06-04T00:32:38.5617285Z             },
2026-06-04T00:32:38.5617463Z             {
2026-06-04T00:32:38.5617705Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T00:32:38.5617895Z               "line": 206
2026-06-04T00:32:38.5618064Z             }
2026-06-04T00:32:38.5618239Z           ]
2026-06-04T00:32:38.5618399Z         }
2026-06-04T00:32:38.5618571Z       }
2026-06-04T00:32:38.5618747Z     },
2026-06-04T00:32:38.5618901Z     {
2026-06-04T00:32:38.5619272Z       "id": "REQ-SEAM-SPAWN",
2026-06-04T00:32:38.5619498Z       "title": "spawn-session seam",
2026-06-04T00:32:38.5619710Z       "requiredStages": [
2026-06-04T00:32:38.5619886Z         "impl",
2026-06-04T00:32:38.5620072Z         "unit"
2026-06-04T00:32:38.5620248Z       ],
2026-06-04T00:32:38.5620434Z       "stages": {
2026-06-04T00:32:38.5620621Z         "doc": {
2026-06-04T00:32:38.5620823Z           "complete": false,
2026-06-04T00:32:38.5621021Z           "evidence": []
2026-06-04T00:32:38.5621191Z         },
2026-06-04T00:32:38.5621379Z         "impl": {
2026-06-04T00:32:38.5621581Z           "complete": true,
2026-06-04T00:32:38.5621766Z           "evidence": [
2026-06-04T00:32:38.5621949Z             {
2026-06-04T00:32:38.5622235Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5622428Z               "line": 20
2026-06-04T00:32:38.5622591Z             }
2026-06-04T00:32:38.5622768Z           ]
2026-06-04T00:32:38.5622955Z         },
2026-06-04T00:32:38.5623126Z         "int": {
2026-06-04T00:32:38.5623333Z           "complete": false,
2026-06-04T00:32:38.5623516Z           "evidence": []
2026-06-04T00:32:38.5623686Z         },
2026-06-04T00:32:38.5624080Z         "unit": {
2026-06-04T00:32:38.5624293Z           "complete": true,
2026-06-04T00:32:38.5624584Z           "evidence": [
2026-06-04T00:32:38.5624757Z             {
2026-06-04T00:32:38.5625066Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5625249Z               "line": 397
2026-06-04T00:32:38.5625429Z             },
2026-06-04T00:32:38.5625603Z             {
2026-06-04T00:32:38.5625889Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5626087Z               "line": 404
2026-06-04T00:32:38.5626260Z             },
2026-06-04T00:32:38.5626431Z             {
2026-06-04T00:32:38.5626694Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5626884Z               "line": 414
2026-06-04T00:32:38.5627051Z             },
2026-06-04T00:32:38.5627212Z             {
2026-06-04T00:32:38.5627486Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5627667Z               "line": 420
2026-06-04T00:32:38.5627832Z             },
2026-06-04T00:32:38.5627983Z             {
2026-06-04T00:32:38.5628232Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5628412Z               "line": 440
2026-06-04T00:32:38.5628576Z             },
2026-06-04T00:32:38.5628742Z             {
2026-06-04T00:32:38.5628995Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T00:32:38.5629330Z               "line": 473
2026-06-04T00:32:38.5629501Z             }
2026-06-04T00:32:38.5629674Z           ]
2026-06-04T00:32:38.5629830Z         }
2026-06-04T00:32:38.5630004Z       }
2026-06-04T00:32:38.5630176Z     },
2026-06-04T00:32:38.5630340Z     {
2026-06-04T00:32:38.5630553Z       "id": "REQ-SEAM-UPDATE",
2026-06-04T00:32:38.5630934Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-04T00:32:38.5631133Z       "requiredStages": [
2026-06-04T00:32:38.5631302Z         "impl",
2026-06-04T00:32:38.5631473Z         "unit"
2026-06-04T00:32:38.5631646Z       ],
2026-06-04T00:32:38.5631844Z       "stages": {
2026-06-04T00:32:38.5632014Z         "doc": {
2026-06-04T00:32:38.5632204Z           "complete": false,
2026-06-04T00:32:38.5632386Z           "evidence": []
2026-06-04T00:32:38.5632538Z         },
2026-06-04T00:32:38.5632732Z         "impl": {
2026-06-04T00:32:38.5632913Z           "complete": true,
2026-06-04T00:32:38.5633070Z           "evidence": [
2026-06-04T00:32:38.5633220Z             {
2026-06-04T00:32:38.5633497Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5633675Z               "line": 28
2026-06-04T00:32:38.5633826Z             },
2026-06-04T00:32:38.5633991Z             {
2026-06-04T00:32:38.5634276Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5634445Z               "line": 83
2026-06-04T00:32:38.5634611Z             }
2026-06-04T00:32:38.5634760Z           ]
2026-06-04T00:32:38.5634917Z         },
2026-06-04T00:32:38.5635077Z         "int": {
2026-06-04T00:32:38.5635290Z           "complete": false,
2026-06-04T00:32:38.5635473Z           "evidence": []
2026-06-04T00:32:38.5635629Z         },
2026-06-04T00:32:38.5635794Z         "unit": {
2026-06-04T00:32:38.5635972Z           "complete": true,
2026-06-04T00:32:38.5636152Z           "evidence": [
2026-06-04T00:32:38.5636315Z             {
2026-06-04T00:32:38.5636616Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5636805Z               "line": 248
2026-06-04T00:32:38.5636962Z             },
2026-06-04T00:32:38.5637126Z             {
2026-06-04T00:32:38.5637412Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5637601Z               "line": 259
2026-06-04T00:32:38.5637769Z             }
2026-06-04T00:32:38.5637936Z           ]
2026-06-04T00:32:38.5638093Z         }
2026-06-04T00:32:38.5638245Z       }
2026-06-04T00:32:38.5638401Z     },
2026-06-04T00:32:38.5638554Z     {
2026-06-04T00:32:38.5638749Z       "id": "REQ-SEC-1",
2026-06-04T00:32:38.5640027Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-04T00:32:38.5646102Z       "requiredStages": [],
2026-06-04T00:32:38.5646340Z       "stages": {
2026-06-04T00:32:38.5646502Z         "doc": {
2026-06-04T00:32:38.5646699Z           "complete": false,
2026-06-04T00:32:38.5646862Z           "evidence": []
2026-06-04T00:32:38.5647017Z         },
2026-06-04T00:32:38.5647174Z         "impl": {
2026-06-04T00:32:38.5647354Z           "complete": false,
2026-06-04T00:32:38.5647534Z           "evidence": []
2026-06-04T00:32:38.5647688Z         },
2026-06-04T00:32:38.5647846Z         "int": {
2026-06-04T00:32:38.5648022Z           "complete": false,
2026-06-04T00:32:38.5648196Z           "evidence": []
2026-06-04T00:32:38.5648355Z         },
2026-06-04T00:32:38.5648516Z         "unit": {
2026-06-04T00:32:38.5648703Z           "complete": false,
2026-06-04T00:32:38.5648881Z           "evidence": []
2026-06-04T00:32:38.5649216Z         }
2026-06-04T00:32:38.5649393Z       }
2026-06-04T00:32:38.5649569Z     },
2026-06-04T00:32:38.5649746Z     {
2026-06-04T00:32:38.5649935Z       "id": "REQ-START-1",
2026-06-04T00:32:38.5650386Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-04T00:32:38.5650594Z       "requiredStages": [
2026-06-04T00:32:38.5650769Z         "impl",
2026-06-04T00:32:38.5650928Z         "unit"
2026-06-04T00:32:38.5651103Z       ],
2026-06-04T00:32:38.5651270Z       "stages": {
2026-06-04T00:32:38.5651443Z         "doc": {
2026-06-04T00:32:38.5651633Z           "complete": false,
2026-06-04T00:32:38.5651828Z           "evidence": []
2026-06-04T00:32:38.5652005Z         },
2026-06-04T00:32:38.5652175Z         "impl": {
2026-06-04T00:32:38.5652378Z           "complete": true,
2026-06-04T00:32:38.5652558Z           "evidence": [
2026-06-04T00:32:38.5652725Z             {
2026-06-04T00:32:38.5652996Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:32:38.5653206Z               "line": 16
2026-06-04T00:32:38.5653382Z             }
2026-06-04T00:32:38.5653554Z           ]
2026-06-04T00:32:38.5653727Z         },
2026-06-04T00:32:38.5653900Z         "int": {
2026-06-04T00:32:38.5654107Z           "complete": false,
2026-06-04T00:32:38.5654295Z           "evidence": []
2026-06-04T00:32:38.5654468Z         },
2026-06-04T00:32:38.5654646Z         "unit": {
2026-06-04T00:32:38.5654823Z           "complete": true,
2026-06-04T00:32:38.5655007Z           "evidence": [
2026-06-04T00:32:38.5655173Z             {
2026-06-04T00:32:38.5655456Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:32:38.5655642Z               "line": 43
2026-06-04T00:32:38.5655827Z             },
2026-06-04T00:32:38.5656006Z             {
2026-06-04T00:32:38.5656269Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T00:32:38.5656451Z               "line": 59
2026-06-04T00:32:38.5656623Z             }
2026-06-04T00:32:38.5656792Z           ]
2026-06-04T00:32:38.5656977Z         }
2026-06-04T00:32:38.5657157Z       }
2026-06-04T00:32:38.5657322Z     },
2026-06-04T00:32:38.5657499Z     {
2026-06-04T00:32:38.5657703Z       "id": "REQ-START-2",
2026-06-04T00:32:38.5658036Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-04T00:32:38.5658234Z       "requiredStages": [
2026-06-04T00:32:38.5658400Z         "impl",
2026-06-04T00:32:38.5658586Z         "unit",
2026-06-04T00:32:38.5658775Z         "int"
2026-06-04T00:32:38.5658940Z       ],
2026-06-04T00:32:38.5659265Z       "stages": {
2026-06-04T00:32:38.5659451Z         "doc": {
2026-06-04T00:32:38.5659671Z           "complete": false,
2026-06-04T00:32:38.5659863Z           "evidence": []
2026-06-04T00:32:38.5660048Z         },
2026-06-04T00:32:38.5660244Z         "impl": {
2026-06-04T00:32:38.5660445Z           "complete": true,
2026-06-04T00:32:38.5660647Z           "evidence": [
2026-06-04T00:32:38.5660811Z             {
2026-06-04T00:32:38.5661090Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5661490Z               "line": 16
2026-06-04T00:32:38.5661679Z             },
2026-06-04T00:32:38.5661979Z             {
2026-06-04T00:32:38.5662252Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5662444Z               "line": 94
2026-06-04T00:32:38.5662603Z             },
2026-06-04T00:32:38.5662780Z             {
2026-06-04T00:32:38.5663008Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5663195Z               "line": 163
2026-06-04T00:32:38.5663348Z             }
2026-06-04T00:32:38.5663508Z           ]
2026-06-04T00:32:38.5663688Z         },
2026-06-04T00:32:38.5663855Z         "int": {
2026-06-04T00:32:38.5664051Z           "complete": true,
2026-06-04T00:32:38.5664220Z           "evidence": [
2026-06-04T00:32:38.5664383Z             {
2026-06-04T00:32:38.5664652Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.5664827Z               "line": 150
2026-06-04T00:32:38.5664993Z             }
2026-06-04T00:32:38.5665176Z           ]
2026-06-04T00:32:38.5665348Z         },
2026-06-04T00:32:38.5665527Z         "unit": {
2026-06-04T00:32:38.5665720Z           "complete": true,
2026-06-04T00:32:38.5665912Z           "evidence": [
2026-06-04T00:32:38.5666080Z             {
2026-06-04T00:32:38.5666343Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5666527Z               "line": 354
2026-06-04T00:32:38.5666701Z             },
2026-06-04T00:32:38.5666856Z             {
2026-06-04T00:32:38.5667117Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5667312Z               "line": 387
2026-06-04T00:32:38.5667479Z             }
2026-06-04T00:32:38.5667646Z           ]
2026-06-04T00:32:38.5667814Z         }
2026-06-04T00:32:38.5667991Z       }
2026-06-04T00:32:38.5668154Z     },
2026-06-04T00:32:38.5668327Z     {
2026-06-04T00:32:38.5668543Z       "id": "REQ-START-3",
2026-06-04T00:32:38.5668936Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-04T00:32:38.5669308Z       "requiredStages": [
2026-06-04T00:32:38.5669490Z         "impl",
2026-06-04T00:32:38.5669683Z         "unit",
2026-06-04T00:32:38.5669856Z         "int"
2026-06-04T00:32:38.5670036Z       ],
2026-06-04T00:32:38.5670230Z       "stages": {
2026-06-04T00:32:38.5670400Z         "doc": {
2026-06-04T00:32:38.5670612Z           "complete": false,
2026-06-04T00:32:38.5670797Z           "evidence": []
2026-06-04T00:32:38.5670966Z         },
2026-06-04T00:32:38.5671141Z         "impl": {
2026-06-04T00:32:38.5671345Z           "complete": true,
2026-06-04T00:32:38.5671539Z           "evidence": [
2026-06-04T00:32:38.5671709Z             {
2026-06-04T00:32:38.5672000Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5672187Z               "line": 23
2026-06-04T00:32:38.5672362Z             },
2026-06-04T00:32:38.5672524Z             {
2026-06-04T00:32:38.5672813Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5673022Z               "line": 167
2026-06-04T00:32:38.5673184Z             },
2026-06-04T00:32:38.5673372Z             {
2026-06-04T00:32:38.5673654Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5673842Z               "line": 180
2026-06-04T00:32:38.5674020Z             },
2026-06-04T00:32:38.5674198Z             {
2026-06-04T00:32:38.5674480Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5674669Z               "line": 17
2026-06-04T00:32:38.5674844Z             },
2026-06-04T00:32:38.5675001Z             {
2026-06-04T00:32:38.5675270Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5675467Z               "line": 43
2026-06-04T00:32:38.5675643Z             },
2026-06-04T00:32:38.5675806Z             {
2026-06-04T00:32:38.5676065Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5676252Z               "line": 95
2026-06-04T00:32:38.5676421Z             }
2026-06-04T00:32:38.5676602Z           ]
2026-06-04T00:32:38.5676966Z         },
2026-06-04T00:32:38.5677130Z         "int": {
2026-06-04T00:32:38.5677435Z           "complete": true,
2026-06-04T00:32:38.5677619Z           "evidence": [
2026-06-04T00:32:38.5677792Z             {
2026-06-04T00:32:38.5678060Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T00:32:38.5678239Z               "line": 316
2026-06-04T00:32:38.5678409Z             }
2026-06-04T00:32:38.5678566Z           ]
2026-06-04T00:32:38.5678737Z         },
2026-06-04T00:32:38.5678910Z         "unit": {
2026-06-04T00:32:38.5679260Z           "complete": true,
2026-06-04T00:32:38.5679454Z           "evidence": [
2026-06-04T00:32:38.5679633Z             {
2026-06-04T00:32:38.5679915Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5680096Z               "line": 245
2026-06-04T00:32:38.5680277Z             },
2026-06-04T00:32:38.5680446Z             {
2026-06-04T00:32:38.5680722Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5680932Z               "line": 263
2026-06-04T00:32:38.5681103Z             },
2026-06-04T00:32:38.5681291Z             {
2026-06-04T00:32:38.5681563Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T00:32:38.5681769Z               "line": 273
2026-06-04T00:32:38.5681946Z             },
2026-06-04T00:32:38.5682131Z             {
2026-06-04T00:32:38.5682405Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5682610Z               "line": 355
2026-06-04T00:32:38.5682782Z             },
2026-06-04T00:32:38.5682943Z             {
2026-06-04T00:32:38.5683215Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5683404Z               "line": 388
2026-06-04T00:32:38.5683590Z             },
2026-06-04T00:32:38.5683767Z             {
2026-06-04T00:32:38.5684038Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T00:32:38.5684233Z               "line": 396
2026-06-04T00:32:38.5684400Z             }
2026-06-04T00:32:38.5684581Z           ]
2026-06-04T00:32:38.5684761Z         }
2026-06-04T00:32:38.5684931Z       }
2026-06-04T00:32:38.5685109Z     },
2026-06-04T00:32:38.5685268Z     {
2026-06-04T00:32:38.5685472Z       "id": "REQ-START-4",
2026-06-04T00:32:38.5685789Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-04T00:32:38.5685997Z       "requiredStages": [
2026-06-04T00:32:38.5686168Z         "impl",
2026-06-04T00:32:38.5686342Z         "unit"
2026-06-04T00:32:38.5686509Z       ],
2026-06-04T00:32:38.5686697Z       "stages": {
2026-06-04T00:32:38.5686876Z         "doc": {
2026-06-04T00:32:38.5687074Z           "complete": false,
2026-06-04T00:32:38.5687271Z           "evidence": []
2026-06-04T00:32:38.5687443Z         },
2026-06-04T00:32:38.5687628Z         "impl": {
2026-06-04T00:32:38.5687823Z           "complete": true,
2026-06-04T00:32:38.5688005Z           "evidence": [
2026-06-04T00:32:38.5688177Z             {
2026-06-04T00:32:38.5688457Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.5688673Z               "line": 173
2026-06-04T00:32:38.5688843Z             }
2026-06-04T00:32:38.5689027Z           ]
2026-06-04T00:32:38.5689352Z         },
2026-06-04T00:32:38.5689546Z         "int": {
2026-06-04T00:32:38.5689753Z           "complete": false,
2026-06-04T00:32:38.5689936Z           "evidence": []
2026-06-04T00:32:38.5690114Z         },
2026-06-04T00:32:38.5690288Z         "unit": {
2026-06-04T00:32:38.5690491Z           "complete": true,
2026-06-04T00:32:38.5690678Z           "evidence": [
2026-06-04T00:32:38.5690861Z             {
2026-06-04T00:32:38.5691151Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T00:32:38.5691336Z               "line": 314
2026-06-04T00:32:38.5691504Z             }
2026-06-04T00:32:38.5691673Z           ]
2026-06-04T00:32:38.5691851Z         }
2026-06-04T00:32:38.5692016Z       }
2026-06-04T00:32:38.5692191Z     },
2026-06-04T00:32:38.5692361Z     {
2026-06-04T00:32:38.5692561Z       "id": "REQ-STORE-1",
2026-06-04T00:32:38.5694785Z       "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-04T00:32:38.5695155Z       "requiredStages": [],
2026-06-04T00:32:38.5695324Z       "stages": {
2026-06-04T00:32:38.5695489Z         "doc": {
2026-06-04T00:32:38.5695663Z           "complete": false,
2026-06-04T00:32:38.5695844Z           "evidence": []
2026-06-04T00:32:38.5695994Z         },
2026-06-04T00:32:38.5696159Z         "impl": {
2026-06-04T00:32:38.5696330Z           "complete": false,
2026-06-04T00:32:38.5696509Z           "evidence": []
2026-06-04T00:32:38.5696685Z         },
2026-06-04T00:32:38.5696839Z         "int": {
2026-06-04T00:32:38.5697023Z           "complete": false,
2026-06-04T00:32:38.5697196Z           "evidence": []
2026-06-04T00:32:38.5697358Z         },
2026-06-04T00:32:38.5697537Z         "unit": {
2026-06-04T00:32:38.5697731Z           "complete": false,
2026-06-04T00:32:38.5697935Z           "evidence": []
2026-06-04T00:32:38.5698091Z         }
2026-06-04T00:32:38.5698264Z       }
2026-06-04T00:32:38.5698414Z     },
2026-06-04T00:32:38.5698586Z     {
2026-06-04T00:32:38.5698790Z       "id": "REQ-TERM-1",
2026-06-04T00:32:38.5699368Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-04T00:32:38.5699595Z       "requiredStages": [
2026-06-04T00:32:38.5699769Z         "impl",
2026-06-04T00:32:38.5699950Z         "unit"
2026-06-04T00:32:38.5700129Z       ],
2026-06-04T00:32:38.5700323Z       "stages": {
2026-06-04T00:32:38.5700495Z         "doc": {
2026-06-04T00:32:38.5700692Z           "complete": false,
2026-06-04T00:32:38.5700887Z           "evidence": []
2026-06-04T00:32:38.5701049Z         },
2026-06-04T00:32:38.5701228Z         "impl": {
2026-06-04T00:32:38.5701425Z           "complete": true,
2026-06-04T00:32:38.5701634Z           "evidence": [
2026-06-04T00:32:38.5701798Z             {
2026-06-04T00:32:38.5702085Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T00:32:38.5702278Z               "line": 61
2026-06-04T00:32:38.5702445Z             },
2026-06-04T00:32:38.5702617Z             {
2026-06-04T00:32:38.5702869Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T00:32:38.5703055Z               "line": 169
2026-06-04T00:32:38.5703220Z             },
2026-06-04T00:32:38.5703389Z             {
2026-06-04T00:32:38.5703665Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:32:38.5703851Z               "line": 95
2026-06-04T00:32:38.5704028Z             }
2026-06-04T00:32:38.5704194Z           ]
2026-06-04T00:32:38.5704357Z         },
2026-06-04T00:32:38.5704585Z         "int": {
2026-06-04T00:32:38.5704782Z           "complete": false,
2026-06-04T00:32:38.5704964Z           "evidence": []
2026-06-04T00:32:38.5705117Z         },
2026-06-04T00:32:38.5705293Z         "unit": {
2026-06-04T00:32:38.5705519Z           "complete": true,
2026-06-04T00:32:38.5705706Z           "evidence": [
2026-06-04T00:32:38.5705881Z             {
2026-06-04T00:32:38.5706174Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T00:32:38.5706368Z               "line": 28
2026-06-04T00:32:38.5706542Z             },
2026-06-04T00:32:38.5706723Z             {
2026-06-04T00:32:38.5707011Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T00:32:38.5707216Z               "line": 60
2026-06-04T00:32:38.5707396Z             }
2026-06-04T00:32:38.5707591Z           ]
2026-06-04T00:32:38.5707781Z         }
2026-06-04T00:32:38.5707945Z       }
2026-06-04T00:32:38.5708108Z     },
2026-06-04T00:32:38.5708264Z     {
2026-06-04T00:32:38.5708463Z       "id": "REQ-TERM-2",
2026-06-04T00:32:38.5708875Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-04T00:32:38.5710087Z       "requiredStages": [
2026-06-04T00:32:38.5710316Z         "impl",
2026-06-04T00:32:38.5710683Z         "unit"
2026-06-04T00:32:38.5710860Z       ],
2026-06-04T00:32:38.5711125Z       "stages": {
2026-06-04T00:32:38.5711283Z         "doc": {
2026-06-04T00:32:38.5711466Z           "complete": false,
2026-06-04T00:32:38.5711653Z           "evidence": []
2026-06-04T00:32:38.5711818Z         },
2026-06-04T00:32:38.5711977Z         "impl": {
2026-06-04T00:32:38.5712167Z           "complete": true,
2026-06-04T00:32:38.5712341Z           "evidence": [
2026-06-04T00:32:38.5712503Z             {
2026-06-04T00:32:38.5712755Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:32:38.5712931Z               "line": 112
2026-06-04T00:32:38.5713108Z             },
2026-06-04T00:32:38.5713255Z             {
2026-06-04T00:32:38.5713511Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T00:32:38.5713688Z               "line": 122
2026-06-04T00:32:38.5713867Z             }
2026-06-04T00:32:38.5714053Z           ]
2026-06-04T00:32:38.5714208Z         },
2026-06-04T00:32:38.5714400Z         "int": {
2026-06-04T00:32:38.5714606Z           "complete": false,
2026-06-04T00:32:38.5714817Z           "evidence": []
2026-06-04T00:32:38.5714998Z         },
2026-06-04T00:32:38.5715185Z         "unit": {
2026-06-04T00:32:38.5715384Z           "complete": true,
2026-06-04T00:32:38.5715573Z           "evidence": [
2026-06-04T00:32:38.5715751Z             {
2026-06-04T00:32:38.5716032Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T00:32:38.5716236Z               "line": 46
2026-06-04T00:32:38.5716415Z             },
2026-06-04T00:32:38.5716602Z             {
2026-06-04T00:32:38.5716902Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T00:32:38.5717098Z               "line": 71
2026-06-04T00:32:38.5717284Z             }
2026-06-04T00:32:38.5717448Z           ]
2026-06-04T00:32:38.5717620Z         }
2026-06-04T00:32:38.5717775Z       }
2026-06-04T00:32:38.5717935Z     },
2026-06-04T00:32:38.5718111Z     {
2026-06-04T00:32:38.5718315Z       "id": "REQ-TERM-3",
2026-06-04T00:32:38.5718655Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-04T00:32:38.5718877Z       "requiredStages": [
2026-06-04T00:32:38.5719192Z         "impl",
2026-06-04T00:32:38.5719361Z         "unit"
2026-06-04T00:32:38.5719539Z       ],
2026-06-04T00:32:38.5719738Z       "stages": {
2026-06-04T00:32:38.5719907Z         "doc": {
2026-06-04T00:32:38.5720111Z           "complete": false,
2026-06-04T00:32:38.5720300Z           "evidence": []
2026-06-04T00:32:38.5720478Z         },
2026-06-04T00:32:38.5720655Z         "impl": {
2026-06-04T00:32:38.5720851Z           "complete": true,
2026-06-04T00:32:38.5721042Z           "evidence": [
2026-06-04T00:32:38.5721209Z             {
2026-06-04T00:32:38.5721488Z               "path": "crates/spt-term/src/stream.rs",
2026-06-04T00:32:38.5721666Z               "line": 71
2026-06-04T00:32:38.5721841Z             }
2026-06-04T00:32:38.5721998Z           ]
2026-06-04T00:32:38.5722154Z         },
2026-06-04T00:32:38.5722336Z         "int": {
2026-06-04T00:32:38.5722521Z           "complete": false,
2026-06-04T00:32:38.5722717Z           "evidence": []
2026-06-04T00:32:38.5722878Z         },
2026-06-04T00:32:38.5723054Z         "unit": {
2026-06-04T00:32:38.5723235Z           "complete": true,
2026-06-04T00:32:38.5723421Z           "evidence": [
2026-06-04T00:32:38.5723592Z             {
2026-06-04T00:32:38.5723869Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T00:32:38.5724057Z               "line": 37
2026-06-04T00:32:38.5724219Z             },
2026-06-04T00:32:38.5724385Z             {
2026-06-04T00:32:38.5724626Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T00:32:38.5724798Z               "line": 67
2026-06-04T00:32:38.5724954Z             }
2026-06-04T00:32:38.5725114Z           ]
2026-06-04T00:32:38.5725277Z         }
2026-06-04T00:32:38.5725439Z       }
2026-06-04T00:32:38.5725597Z     },
2026-06-04T00:32:38.5725756Z     {
2026-06-04T00:32:38.5725956Z       "id": "REQ-TERM-4",
2026-06-04T00:32:38.5726980Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-04T00:32:38.5727304Z       "requiredStages": [
2026-06-04T00:32:38.5727491Z         "impl",
2026-06-04T00:32:38.5727656Z         "unit",
2026-06-04T00:32:38.5727835Z         "int"
2026-06-04T00:32:38.5727993Z       ],
2026-06-04T00:32:38.5728168Z       "stages": {
2026-06-04T00:32:38.5728339Z         "doc": {
2026-06-04T00:32:38.5728521Z           "complete": true,
2026-06-04T00:32:38.5728689Z           "evidence": [
2026-06-04T00:32:38.5728831Z             {
2026-06-04T00:32:38.5729221Z               "path": "docs/MANIFEST.md",
2026-06-04T00:32:38.5729425Z               "line": 106
2026-06-04T00:32:38.5729625Z             }
2026-06-04T00:32:38.5729830Z           ]
2026-06-04T00:32:38.5729996Z         },
2026-06-04T00:32:38.5730194Z         "impl": {
2026-06-04T00:32:38.5730409Z           "complete": true,
2026-06-04T00:32:38.5730644Z           "evidence": [
2026-06-04T00:32:38.5730836Z             {
2026-06-04T00:32:38.5731140Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T00:32:38.5731325Z               "line": 416
2026-06-04T00:32:38.5731486Z             },
2026-06-04T00:32:38.5731652Z             {
2026-06-04T00:32:38.5731902Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5732084Z               "line": 41
2026-06-04T00:32:38.5732237Z             },
2026-06-04T00:32:38.5732388Z             {
2026-06-04T00:32:38.5732632Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5732794Z               "line": 91
2026-06-04T00:32:38.5732951Z             },
2026-06-04T00:32:38.5733102Z             {
2026-06-04T00:32:38.5733356Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5733538Z               "line": 152
2026-06-04T00:32:38.5733720Z             },
2026-06-04T00:32:38.5733888Z             {
2026-06-04T00:32:38.5734153Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5734340Z               "line": 212
2026-06-04T00:32:38.5734514Z             },
2026-06-04T00:32:38.5734689Z             {
2026-06-04T00:32:38.5734978Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5735176Z               "line": 20
2026-06-04T00:32:38.5735364Z             },
2026-06-04T00:32:38.5735542Z             {
2026-06-04T00:32:38.5735834Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5736027Z               "line": 212
2026-06-04T00:32:38.5736218Z             },
2026-06-04T00:32:38.5736385Z             {
2026-06-04T00:32:38.5736683Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5736873Z               "line": 226
2026-06-04T00:32:38.5737039Z             },
2026-06-04T00:32:38.5737206Z             {
2026-06-04T00:32:38.5737476Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5737670Z               "line": 574
2026-06-04T00:32:38.5737848Z             },
2026-06-04T00:32:38.5738036Z             {
2026-06-04T00:32:38.5738330Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5738524Z               "line": 157
2026-06-04T00:32:38.5738709Z             },
2026-06-04T00:32:38.5738893Z             {
2026-06-04T00:32:38.5739358Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5739562Z               "line": 199
2026-06-04T00:32:38.5739744Z             },
2026-06-04T00:32:38.5739941Z             {
2026-06-04T00:32:38.5740217Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5740416Z               "line": 226
2026-06-04T00:32:38.5740591Z             },
2026-06-04T00:32:38.5740771Z             {
2026-06-04T00:32:38.5741022Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5741216Z               "line": 176
2026-06-04T00:32:38.5741395Z             }
2026-06-04T00:32:38.5741569Z           ]
2026-06-04T00:32:38.5741743Z         },
2026-06-04T00:32:38.5742124Z         "int": {
2026-06-04T00:32:38.5742336Z           "complete": true,
2026-06-04T00:32:38.5742624Z           "evidence": [
2026-06-04T00:32:38.5742793Z             {
2026-06-04T00:32:38.5743082Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-04T00:32:38.5743264Z               "line": 18
2026-06-04T00:32:38.5743429Z             }
2026-06-04T00:32:38.5743596Z           ]
2026-06-04T00:32:38.5743774Z         },
2026-06-04T00:32:38.5743954Z         "unit": {
2026-06-04T00:32:38.5744149Z           "complete": true,
2026-06-04T00:32:38.5744339Z           "evidence": [
2026-06-04T00:32:38.5744511Z             {
2026-06-04T00:32:38.5744785Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5744967Z               "line": 250
2026-06-04T00:32:38.5745149Z             },
2026-06-04T00:32:38.5745324Z             {
2026-06-04T00:32:38.5745590Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5745778Z               "line": 263
2026-06-04T00:32:38.5745963Z             },
2026-06-04T00:32:38.5746125Z             {
2026-06-04T00:32:38.5746402Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5746601Z               "line": 275
2026-06-04T00:32:38.5746779Z             },
2026-06-04T00:32:38.5746940Z             {
2026-06-04T00:32:38.5747228Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5747419Z               "line": 290
2026-06-04T00:32:38.5747609Z             },
2026-06-04T00:32:38.5747783Z             {
2026-06-04T00:32:38.5748037Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5748227Z               "line": 305
2026-06-04T00:32:38.5748396Z             },
2026-06-04T00:32:38.5748565Z             {
2026-06-04T00:32:38.5748817Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5748999Z               "line": 327
2026-06-04T00:32:38.5749306Z             },
2026-06-04T00:32:38.5749465Z             {
2026-06-04T00:32:38.5749732Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5749902Z               "line": 337
2026-06-04T00:32:38.5750072Z             },
2026-06-04T00:32:38.5750227Z             {
2026-06-04T00:32:38.5750483Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T00:32:38.5750654Z               "line": 364
2026-06-04T00:32:38.5750808Z             },
2026-06-04T00:32:38.5750961Z             {
2026-06-04T00:32:38.5751226Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5751406Z               "line": 338
2026-06-04T00:32:38.5751556Z             },
2026-06-04T00:32:38.5751713Z             {
2026-06-04T00:32:38.5751976Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5752158Z               "line": 350
2026-06-04T00:32:38.5752321Z             },
2026-06-04T00:32:38.5752482Z             {
2026-06-04T00:32:38.5752738Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5752926Z               "line": 367
2026-06-04T00:32:38.5753096Z             },
2026-06-04T00:32:38.5753246Z             {
2026-06-04T00:32:38.5753520Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T00:32:38.5753707Z               "line": 378
2026-06-04T00:32:38.5753871Z             },
2026-06-04T00:32:38.5754041Z             {
2026-06-04T00:32:38.5754310Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5754506Z               "line": 759
2026-06-04T00:32:38.5754696Z             },
2026-06-04T00:32:38.5754874Z             {
2026-06-04T00:32:38.5755178Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5755355Z               "line": 766
2026-06-04T00:32:38.5755526Z             },
2026-06-04T00:32:38.5755697Z             {
2026-06-04T00:32:38.5755955Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5756148Z               "line": 781
2026-06-04T00:32:38.5756319Z             },
2026-06-04T00:32:38.5756494Z             {
2026-06-04T00:32:38.5756948Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5757263Z               "line": 381
2026-06-04T00:32:38.5757409Z             },
2026-06-04T00:32:38.5757562Z             {
2026-06-04T00:32:38.5757811Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5757984Z               "line": 402
2026-06-04T00:32:38.5758144Z             },
2026-06-04T00:32:38.5758294Z             {
2026-06-04T00:32:38.5758540Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5758720Z               "line": 415
2026-06-04T00:32:38.5758889Z             },
2026-06-04T00:32:38.5759208Z             {
2026-06-04T00:32:38.5759470Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5759662Z               "line": 434
2026-06-04T00:32:38.5759838Z             },
2026-06-04T00:32:38.5760014Z             {
2026-06-04T00:32:38.5760261Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T00:32:38.5760471Z               "line": 461
2026-06-04T00:32:38.5760645Z             },
2026-06-04T00:32:38.5760798Z             {
2026-06-04T00:32:38.5761079Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-04T00:32:38.5761265Z               "line": 32
2026-06-04T00:32:38.5761464Z             },
2026-06-04T00:32:38.5761631Z             {
2026-06-04T00:32:38.5761873Z               "path": "crates/spt/src/cli.rs",
2026-06-04T00:32:38.5762054Z               "line": 646
2026-06-04T00:32:38.5762212Z             }
2026-06-04T00:32:38.5762389Z           ]
2026-06-04T00:32:38.5762539Z         }
2026-06-04T00:32:38.5762704Z       }
2026-06-04T00:32:38.5762857Z     },
2026-06-04T00:32:38.5763024Z     {
2026-06-04T00:32:38.5763230Z       "id": "REQ-UPD-1",
2026-06-04T00:32:38.5763515Z       "title": "Peer-propagated update over P2P",
2026-06-04T00:32:38.5763725Z       "requiredStages": [],
2026-06-04T00:32:38.5763900Z       "stages": {
2026-06-04T00:32:38.5764066Z         "doc": {
2026-06-04T00:32:38.5764286Z           "complete": false,
2026-06-04T00:32:38.5764462Z           "evidence": []
2026-06-04T00:32:38.5764643Z         },
2026-06-04T00:32:38.5764802Z         "impl": {
2026-06-04T00:32:38.5764994Z           "complete": false,
2026-06-04T00:32:38.5765190Z           "evidence": []
2026-06-04T00:32:38.5765365Z         },
2026-06-04T00:32:38.5765533Z         "int": {
2026-06-04T00:32:38.5765712Z           "complete": false,
2026-06-04T00:32:38.5765895Z           "evidence": []
2026-06-04T00:32:38.5766050Z         },
2026-06-04T00:32:38.5766230Z         "unit": {
2026-06-04T00:32:38.5766414Z           "complete": false,
2026-06-04T00:32:38.5766593Z           "evidence": []
2026-06-04T00:32:38.5766731Z         }
2026-06-04T00:32:38.5766888Z       }
2026-06-04T00:32:38.5767048Z     },
2026-06-04T00:32:38.5767196Z     {
2026-06-04T00:32:38.5767384Z       "id": "REQ-UPD-2",
2026-06-04T00:32:38.5767714Z       "title": "All binaries signature-verified before handoff",
2026-06-04T00:32:38.5767909Z       "requiredStages": [
2026-06-04T00:32:38.5768080Z         "impl",
2026-06-04T00:32:38.5768253Z         "unit"
2026-06-04T00:32:38.5768427Z       ],
2026-06-04T00:32:38.5768595Z       "stages": {
2026-06-04T00:32:38.5768761Z         "doc": {
2026-06-04T00:32:38.5768943Z           "complete": false,
2026-06-04T00:32:38.5769280Z           "evidence": []
2026-06-04T00:32:38.5769447Z         },
2026-06-04T00:32:38.5769622Z         "impl": {
2026-06-04T00:32:38.5769813Z           "complete": true,
2026-06-04T00:32:38.5769982Z           "evidence": [
2026-06-04T00:32:38.5770144Z             {
2026-06-04T00:32:38.5770418Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5770605Z               "line": 29
2026-06-04T00:32:38.5770765Z             },
2026-06-04T00:32:38.5770929Z             {
2026-06-04T00:32:38.5771199Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5771379Z               "line": 158
2026-06-04T00:32:38.5771552Z             },
2026-06-04T00:32:38.5771719Z             {
2026-06-04T00:32:38.5772211Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5772515Z               "line": 239
2026-06-04T00:32:38.5772713Z             },
2026-06-04T00:32:38.5772879Z             {
2026-06-04T00:32:38.5773139Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5773335Z               "line": 149
2026-06-04T00:32:38.5773495Z             }
2026-06-04T00:32:38.5773655Z           ]
2026-06-04T00:32:38.5773847Z         },
2026-06-04T00:32:38.5774003Z         "int": {
2026-06-04T00:32:38.5774180Z           "complete": false,
2026-06-04T00:32:38.5774340Z           "evidence": []
2026-06-04T00:32:38.5774493Z         },
2026-06-04T00:32:38.5774648Z         "unit": {
2026-06-04T00:32:38.5774832Z           "complete": true,
2026-06-04T00:32:38.5774996Z           "evidence": [
2026-06-04T00:32:38.5775154Z             {
2026-06-04T00:32:38.5775408Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5775578Z               "line": 336
2026-06-04T00:32:38.5775776Z             },
2026-06-04T00:32:38.5775955Z             {
2026-06-04T00:32:38.5776233Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5776411Z               "line": 350
2026-06-04T00:32:38.5776590Z             },
2026-06-04T00:32:38.5776767Z             {
2026-06-04T00:32:38.5777046Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5777262Z               "line": 361
2026-06-04T00:32:38.5777438Z             },
2026-06-04T00:32:38.5777612Z             {
2026-06-04T00:32:38.5777862Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5778042Z               "line": 437
2026-06-04T00:32:38.5778200Z             },
2026-06-04T00:32:38.5778351Z             {
2026-06-04T00:32:38.5778609Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5778779Z               "line": 326
2026-06-04T00:32:38.5778941Z             },
2026-06-04T00:32:38.5779269Z             {
2026-06-04T00:32:38.5779557Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5779762Z               "line": 339
2026-06-04T00:32:38.5779925Z             }
2026-06-04T00:32:38.5780091Z           ]
2026-06-04T00:32:38.5780250Z         }
2026-06-04T00:32:38.5780416Z       }
2026-06-04T00:32:38.5780590Z     },
2026-06-04T00:32:38.5780754Z     {
2026-06-04T00:32:38.5780951Z       "id": "REQ-UPD-3",
2026-06-04T00:32:38.5781349Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-04T00:32:38.5781549Z       "requiredStages": [
2026-06-04T00:32:38.5781714Z         "impl",
2026-06-04T00:32:38.5781882Z         "unit",
2026-06-04T00:32:38.5782044Z         "int"
2026-06-04T00:32:38.5782200Z       ],
2026-06-04T00:32:38.5782376Z       "stages": {
2026-06-04T00:32:38.5782539Z         "doc": {
2026-06-04T00:32:38.5782734Z           "complete": false,
2026-06-04T00:32:38.5782912Z           "evidence": []
2026-06-04T00:32:38.5783075Z         },
2026-06-04T00:32:38.5783267Z         "impl": {
2026-06-04T00:32:38.5783473Z           "complete": true,
2026-06-04T00:32:38.5783655Z           "evidence": [
2026-06-04T00:32:38.5783831Z             {
2026-06-04T00:32:38.5784107Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5784283Z               "line": 26
2026-06-04T00:32:38.5784439Z             },
2026-06-04T00:32:38.5784595Z             {
2026-06-04T00:32:38.5784838Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5785018Z               "line": 111
2026-06-04T00:32:38.5785164Z             },
2026-06-04T00:32:38.5785316Z             {
2026-06-04T00:32:38.5785552Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5785728Z               "line": 213
2026-06-04T00:32:38.5785895Z             }
2026-06-04T00:32:38.5786049Z           ]
2026-06-04T00:32:38.5786218Z         },
2026-06-04T00:32:38.5786378Z         "int": {
2026-06-04T00:32:38.5786573Z           "complete": true,
2026-06-04T00:32:38.5786958Z           "evidence": [
2026-06-04T00:32:38.5787135Z             {
2026-06-04T00:32:38.5787421Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-04T00:32:38.5787709Z               "line": 23
2026-06-04T00:32:38.5787879Z             }
2026-06-04T00:32:38.5788047Z           ]
2026-06-04T00:32:38.5788215Z         },
2026-06-04T00:32:38.5788377Z         "unit": {
2026-06-04T00:32:38.5788560Z           "complete": true,
2026-06-04T00:32:38.5788722Z           "evidence": [
2026-06-04T00:32:38.5788870Z             {
2026-06-04T00:32:38.5789313Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5789491Z               "line": 238
2026-06-04T00:32:38.5789641Z             },
2026-06-04T00:32:38.5789796Z             {
2026-06-04T00:32:38.5790057Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5790217Z               "line": 262
2026-06-04T00:32:38.5790393Z             },
2026-06-04T00:32:38.5790573Z             {
2026-06-04T00:32:38.5790848Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5791028Z               "line": 273
2026-06-04T00:32:38.5791202Z             },
2026-06-04T00:32:38.5791372Z             {
2026-06-04T00:32:38.5791645Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T00:32:38.5791836Z               "line": 286
2026-06-04T00:32:38.5792026Z             }
2026-06-04T00:32:38.5792201Z           ]
2026-06-04T00:32:38.5792391Z         }
2026-06-04T00:32:38.5792552Z       }
2026-06-04T00:32:38.5792703Z     },
2026-06-04T00:32:38.5792863Z     {
2026-06-04T00:32:38.5793051Z       "id": "REQ-UPD-4",
2026-06-04T00:32:38.5793456Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-04T00:32:38.5793663Z       "requiredStages": [
2026-06-04T00:32:38.5793847Z         "impl",
2026-06-04T00:32:38.5794019Z         "unit"
2026-06-04T00:32:38.5794202Z       ],
2026-06-04T00:32:38.5794399Z       "stages": {
2026-06-04T00:32:38.5794567Z         "doc": {
2026-06-04T00:32:38.5794786Z           "complete": false,
2026-06-04T00:32:38.5794979Z           "evidence": []
2026-06-04T00:32:38.5795175Z         },
2026-06-04T00:32:38.5795366Z         "impl": {
2026-06-04T00:32:38.5795557Z           "complete": true,
2026-06-04T00:32:38.5795745Z           "evidence": [
2026-06-04T00:32:38.5795904Z             {
2026-06-04T00:32:38.5796180Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5796358Z               "line": 23
2026-06-04T00:32:38.5796528Z             },
2026-06-04T00:32:38.5796687Z             {
2026-06-04T00:32:38.5796963Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5797155Z               "line": 60
2026-06-04T00:32:38.5797311Z             },
2026-06-04T00:32:38.5797477Z             {
2026-06-04T00:32:38.5797741Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5797929Z               "line": 79
2026-06-04T00:32:38.5798096Z             },
2026-06-04T00:32:38.5798258Z             {
2026-06-04T00:32:38.5798556Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T00:32:38.5798748Z               "line": 162
2026-06-04T00:32:38.5798917Z             },
2026-06-04T00:32:38.5799223Z             {
2026-06-04T00:32:38.5799480Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.5799663Z               "line": 106
2026-06-04T00:32:38.5799834Z             }
2026-06-04T00:32:38.5800009Z           ]
2026-06-04T00:32:38.5800175Z         },
2026-06-04T00:32:38.5800350Z         "int": {
2026-06-04T00:32:38.5800542Z           "complete": false,
2026-06-04T00:32:38.5800731Z           "evidence": []
2026-06-04T00:32:38.5800896Z         },
2026-06-04T00:32:38.5801069Z         "unit": {
2026-06-04T00:32:38.5801267Z           "complete": true,
2026-06-04T00:32:38.5801430Z           "evidence": [
2026-06-04T00:32:38.5801584Z             {
2026-06-04T00:32:38.5801827Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T00:32:38.5802007Z               "line": 217
2026-06-04T00:32:38.5802440Z             },
2026-06-04T00:32:38.5802619Z             {
2026-06-04T00:32:38.5802988Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5803174Z               "line": 118
2026-06-04T00:32:38.5803345Z             },
2026-06-04T00:32:38.5803508Z             {
2026-06-04T00:32:38.5803776Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5803947Z               "line": 133
2026-06-04T00:32:38.5804120Z             },
2026-06-04T00:32:38.5804287Z             {
2026-06-04T00:32:38.5804611Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T00:32:38.5804802Z               "line": 152
2026-06-04T00:32:38.5804966Z             },
2026-06-04T00:32:38.5805135Z             {
2026-06-04T00:32:38.5805383Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T00:32:38.5805576Z               "line": 234
2026-06-04T00:32:38.5805748Z             },
2026-06-04T00:32:38.5805915Z             {
2026-06-04T00:32:38.5806196Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T00:32:38.5806370Z               "line": 407
2026-06-04T00:32:38.5806546Z             }
2026-06-04T00:32:38.5806694Z           ]
2026-06-04T00:32:38.5806842Z         }
2026-06-04T00:32:38.5806991Z       }
2026-06-04T00:32:38.5807143Z     },
2026-06-04T00:32:38.5807299Z     {
2026-06-04T00:32:38.5807479Z       "id": "REQ-UPD-5",
2026-06-04T00:32:38.5807789Z       "title": "spt-core ripple-updates registered adapters",
2026-06-04T00:32:38.5807974Z       "requiredStages": [
2026-06-04T00:32:38.5808145Z         "impl",
2026-06-04T00:32:38.5808305Z         "unit"
2026-06-04T00:32:38.5808450Z       ],
2026-06-04T00:32:38.5808612Z       "stages": {
2026-06-04T00:32:38.5808763Z         "doc": {
2026-06-04T00:32:38.5808954Z           "complete": false,
2026-06-04T00:32:38.5809278Z           "evidence": []
2026-06-04T00:32:38.5809456Z         },
2026-06-04T00:32:38.5809640Z         "impl": {
2026-06-04T00:32:38.5809834Z           "complete": true,
2026-06-04T00:32:38.5810046Z           "evidence": [
2026-06-04T00:32:38.5810197Z             {
2026-06-04T00:32:38.5810496Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5810661Z               "line": 27
2026-06-04T00:32:38.5810824Z             },
2026-06-04T00:32:38.5810989Z             {
2026-06-04T00:32:38.5811266Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5811461Z               "line": 82
2026-06-04T00:32:38.5811617Z             },
2026-06-04T00:32:38.5811791Z             {
2026-06-04T00:32:38.5812112Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5812326Z               "line": 134
2026-06-04T00:32:38.5812521Z             },
2026-06-04T00:32:38.5812699Z             {
2026-06-04T00:32:38.5812960Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5813135Z               "line": 198
2026-06-04T00:32:38.5813300Z             },
2026-06-04T00:32:38.5813473Z             {
2026-06-04T00:32:38.5813745Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T00:32:38.5813951Z               "line": 226
2026-06-04T00:32:38.5814126Z             }
2026-06-04T00:32:38.5814292Z           ]
2026-06-04T00:32:38.5814453Z         },
2026-06-04T00:32:38.5814616Z         "int": {
2026-06-04T00:32:38.5814829Z           "complete": false,
2026-06-04T00:32:38.5815000Z           "evidence": []
2026-06-04T00:32:38.5815184Z         },
2026-06-04T00:32:38.5815333Z         "unit": {
2026-06-04T00:32:38.5815510Z           "complete": true,
2026-06-04T00:32:38.5815670Z           "evidence": [
2026-06-04T00:32:38.5815834Z             {
2026-06-04T00:32:38.5816141Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5816320Z               "line": 194
2026-06-04T00:32:38.5816484Z             },
2026-06-04T00:32:38.5816632Z             {
2026-06-04T00:32:38.5816913Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5817285Z               "line": 208
2026-06-04T00:32:38.5817456Z             },
2026-06-04T00:32:38.5817750Z             {
2026-06-04T00:32:38.5818016Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5818190Z               "line": 222
2026-06-04T00:32:38.5818335Z             },
2026-06-04T00:32:38.5818484Z             {
2026-06-04T00:32:38.5818748Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5818920Z               "line": 236
2026-06-04T00:32:38.5819226Z             },
2026-06-04T00:32:38.5819383Z             {
2026-06-04T00:32:38.5819666Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T00:32:38.5819844Z               "line": 270
2026-06-04T00:32:38.5820019Z             },
2026-06-04T00:32:38.5820173Z             {
2026-06-04T00:32:38.5820442Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T00:32:38.5820624Z               "line": 729
2026-06-04T00:32:38.5820777Z             }
2026-06-04T00:32:38.5820966Z           ]
2026-06-04T00:32:38.5821120Z         }
2026-06-04T00:32:38.5821282Z       }
2026-06-04T00:32:38.5821448Z     }
2026-06-04T00:32:38.5821612Z   ],
2026-06-04T00:32:38.5821795Z   "findings": []
2026-06-04T00:32:38.5821947Z }
2026-06-04T00:32:38.5868496Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T00:32:38.5868754Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T00:32:38.5896794Z shell: /usr/bin/bash -e {0}
2026-06-04T00:32:38.5897005Z ##[endgroup]
2026-06-04T00:32:38.6074329Z Requirement quality findings (15); 126 requirements queued for agent review:
2026-06-04T00:32:38.6075899Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6077333Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T00:32:38.6078757Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6080278Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6081443Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T00:32:38.6083058Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T00:32:38.6084251Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6085422Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6086372Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T00:32:38.6087104Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T00:32:38.6087869Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:32:38.6088901Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6089910Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T00:32:38.6104686Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T00:32:38.6105169Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T00:32:38.6105255Z 
2026-06-04T00:32:38.6105461Z # Requirement quality review
2026-06-04T00:32:38.6105536Z 
2026-06-04T00:32:38.6105868Z You are reviewing 126 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T00:32:38.6106196Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T00:32:38.6106514Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T00:32:38.6107016Z this command's output. Your task is the rubric items below.
2026-06-04T00:32:38.6107090Z 
2026-06-04T00:32:38.6107267Z ## Rubric
2026-06-04T00:32:38.6107341Z 
2026-06-04T00:32:38.6107767Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T00:32:38.6108135Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T00:32:38.6108507Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T00:32:38.6108795Z - **active-voice** — clear subject and active verb.
2026-06-04T00:32:38.6108894Z 
2026-06-04T00:32:38.6110030Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T00:32:38.6110343Z clear concerns.
2026-06-04T00:32:38.6110388Z 
2026-06-04T00:32:38.6110567Z ## Requirements
2026-06-04T00:32:38.6110847Z 
2026-06-04T00:32:38.6111079Z ### REQ-ARCH-1
2026-06-04T00:32:38.6111361Z - Title: Many small acyclically-layered crates
2026-06-04T00:32:38.6111572Z - Required stages: impl
2026-06-04T00:32:38.6111586Z 
2026-06-04T00:32:38.6111993Z ### REQ-ARCH-2
2026-06-04T00:32:38.6112350Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T00:32:38.6112557Z - Required stages: impl
2026-06-04T00:32:38.6112571Z 
2026-06-04T00:32:38.6112753Z ### REQ-ARCH-3
2026-06-04T00:32:38.6113191Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T00:32:38.6113410Z - Required stages: impl, unit
2026-06-04T00:32:38.6113422Z 
2026-06-04T00:32:38.6113576Z ### REQ-ARCH-4
2026-06-04T00:32:38.6113810Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T00:32:38.6113932Z - Required stages: impl, unit
2026-06-04T00:32:38.6113940Z 
2026-06-04T00:32:38.6114050Z ### REQ-DAEMON-1
2026-06-04T00:32:38.6114253Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T00:32:38.6114378Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6114393Z 
2026-06-04T00:32:38.6114506Z ### REQ-DAEMON-2
2026-06-04T00:32:38.6114672Z - Title: Broker/brain split for seamless self-update
2026-06-04T00:32:38.6114800Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6114808Z 
2026-06-04T00:32:38.6114917Z ### REQ-DAEMON-3
2026-06-04T00:32:38.6115239Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T00:32:38.6115369Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6115377Z 
2026-06-04T00:32:38.6115480Z ### REQ-DAEMON-4
2026-06-04T00:32:38.6115626Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T00:32:38.6115755Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6115763Z 
2026-06-04T00:32:38.6115867Z ### REQ-STORE-1
2026-06-04T00:32:38.6116963Z - 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-04T00:32:38.6117078Z - Required stages: 
2026-06-04T00:32:38.6117100Z 
2026-06-04T00:32:38.6117211Z ### REQ-MANIFEST-1
2026-06-04T00:32:38.6117433Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T00:32:38.6117554Z - Required stages: doc, impl, unit
2026-06-04T00:32:38.6117563Z 
2026-06-04T00:32:38.6117679Z ### REQ-SEAM-SPAWN
2026-06-04T00:32:38.6117800Z - Title: spawn-session seam
2026-06-04T00:32:38.6117928Z - Required stages: impl, unit
2026-06-04T00:32:38.6117936Z 
2026-06-04T00:32:38.6118056Z ### REQ-SEAM-POSTSPAWN
2026-06-04T00:32:38.6118215Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T00:32:38.6118344Z - Required stages: impl, unit
2026-06-04T00:32:38.6118352Z 
2026-06-04T00:32:38.6118466Z ### REQ-SEAM-PSYCHE
2026-06-04T00:32:38.6118639Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T00:32:38.6118767Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6118875Z 
2026-06-04T00:32:38.6118985Z ### REQ-SEAM-HISTORY
2026-06-04T00:32:38.6119410Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T00:32:38.6119535Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6119544Z 
2026-06-04T00:32:38.6119663Z ### REQ-SEAM-ACTIVITY
2026-06-04T00:32:38.6119881Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T00:32:38.6120000Z - Required stages: impl, unit
2026-06-04T00:32:38.6120008Z 
2026-06-04T00:32:38.6120133Z ### REQ-SEAM-INJECT
2026-06-04T00:32:38.6120324Z - Title: inject-input methods configurable per activity-state
2026-06-04T00:32:38.6120453Z - Required stages: impl, unit
2026-06-04T00:32:38.6120461Z 
2026-06-04T00:32:38.6120581Z ### REQ-SEAM-RESUME
2026-06-04T00:32:38.6120797Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T00:32:38.6120932Z - Required stages: impl, unit
2026-06-04T00:32:38.6120940Z 
2026-06-04T00:32:38.6121058Z ### REQ-SEAM-CAPABILITY
2026-06-04T00:32:38.6121245Z - Title: Hostable endpoint-types capability declaration
2026-06-04T00:32:38.6121363Z - Required stages: impl, unit
2026-06-04T00:32:38.6121465Z 
2026-06-04T00:32:38.6121576Z ### REQ-SEAM-UPDATE
2026-06-04T00:32:38.6121775Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T00:32:38.6121892Z - Required stages: impl, unit
2026-06-04T00:32:38.6121901Z 
2026-06-04T00:32:38.6122008Z ### REQ-API-1
2026-06-04T00:32:38.6122200Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T00:32:38.6122327Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6122335Z 
2026-06-04T00:32:38.6122440Z ### REQ-API-2
2026-06-04T00:32:38.6122685Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T00:32:38.6122820Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6122829Z 
2026-06-04T00:32:38.6122935Z ### REQ-API-3
2026-06-04T00:32:38.6123106Z - Title: commune/signoff are file-drops, not commands
2026-06-04T00:32:38.6123236Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6123244Z 
2026-06-04T00:32:38.6123346Z ### REQ-START-1
2026-06-04T00:32:38.6123584Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T00:32:38.6123705Z - Required stages: impl, unit
2026-06-04T00:32:38.6123713Z 
2026-06-04T00:32:38.6123828Z ### REQ-START-2
2026-06-04T00:32:38.6123997Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T00:32:38.6124115Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6124124Z 
2026-06-04T00:32:38.6124235Z ### REQ-START-3
2026-06-04T00:32:38.6124433Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T00:32:38.6124558Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6124567Z 
2026-06-04T00:32:38.6124677Z ### REQ-START-4
2026-06-04T00:32:38.6124837Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T00:32:38.6124958Z - Required stages: impl, unit
2026-06-04T00:32:38.6124967Z 
2026-06-04T00:32:38.6125067Z ### REQ-EP-1
2026-06-04T00:32:38.6125233Z - Title: Day-one endpoint types; open type system
2026-06-04T00:32:38.6125354Z - Required stages: impl, unit
2026-06-04T00:32:38.6125367Z 
2026-06-04T00:32:38.6125466Z ### REQ-EP-2
2026-06-04T00:32:38.6125662Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T00:32:38.6125776Z - Required stages: impl, unit
2026-06-04T00:32:38.6125784Z 
2026-06-04T00:32:38.6125889Z ### REQ-EP-3
2026-06-04T00:32:38.6126102Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T00:32:38.6126223Z - Required stages: impl, unit
2026-06-04T00:32:38.6126230Z 
2026-06-04T00:32:38.6126332Z ### REQ-EP-4
2026-06-04T00:32:38.6126502Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T00:32:38.6126620Z - Required stages: 
2026-06-04T00:32:38.6126629Z 
2026-06-04T00:32:38.6126725Z ### REQ-EP-5
2026-06-04T00:32:38.6127537Z - 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-04T00:32:38.6127722Z - Required stages: 
2026-06-04T00:32:38.6127731Z 
2026-06-04T00:32:38.6127835Z ### REQ-INST-1
2026-06-04T00:32:38.6128023Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T00:32:38.6128128Z - Required stages: 
2026-06-04T00:32:38.6128136Z 
2026-06-04T00:32:38.6128245Z ### REQ-INST-2
2026-06-04T00:32:38.6128386Z - Title: Per-node files, synced Psyche mind
2026-06-04T00:32:38.6128491Z - Required stages: 
2026-06-04T00:32:38.6128499Z 
2026-06-04T00:32:38.6128611Z ### REQ-INST-3
2026-06-04T00:32:38.6128785Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T00:32:38.6128900Z - Required stages: 
2026-06-04T00:32:38.6128908Z 
2026-06-04T00:32:38.6129015Z ### REQ-INST-4
2026-06-04T00:32:38.6129494Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T00:32:38.6129691Z - Required stages: 
2026-06-04T00:32:38.6129710Z 
2026-06-04T00:32:38.6129891Z ### REQ-INST-5
2026-06-04T00:32:38.6130380Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T00:32:38.6130571Z - Required stages: 
2026-06-04T00:32:38.6130594Z 
2026-06-04T00:32:38.6130774Z ### REQ-INST-6
2026-06-04T00:32:38.6131166Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T00:32:38.6131346Z - Required stages: 
2026-06-04T00:32:38.6131360Z 
2026-06-04T00:32:38.6131536Z ### REQ-INST-7
2026-06-04T00:32:38.6131811Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T00:32:38.6132010Z - Required stages: impl, unit
2026-06-04T00:32:38.6132022Z 
2026-06-04T00:32:38.6132147Z ### REQ-INST-8
2026-06-04T00:32:38.6132319Z - Title: Remote-control mode distinct from local operation
2026-06-04T00:32:38.6132434Z - Required stages: 
2026-06-04T00:32:38.6132442Z 
2026-06-04T00:32:38.6132544Z ### REQ-INST-9
2026-06-04T00:32:38.6132772Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T00:32:38.6132902Z - Required stages: impl, unit
2026-06-04T00:32:38.6132911Z 
2026-06-04T00:32:38.6133016Z ### REQ-INST-10
2026-06-04T00:32:38.6133267Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T00:32:38.6133382Z - Required stages: impl, unit
2026-06-04T00:32:38.6133389Z 
2026-06-04T00:32:38.6133500Z ### REQ-INST-11
2026-06-04T00:32:38.6133755Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T00:32:38.6133872Z - Required stages: impl, unit
2026-06-04T00:32:38.6133879Z 
2026-06-04T00:32:38.6133987Z ### REQ-INST-12
2026-06-04T00:32:38.6134328Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T00:32:38.6134455Z - Required stages: impl, unit
2026-06-04T00:32:38.6134463Z 
2026-06-04T00:32:38.6134574Z ### REQ-INST-13
2026-06-04T00:32:38.6134785Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T00:32:38.6134912Z - Required stages: impl, unit
2026-06-04T00:32:38.6134920Z 
2026-06-04T00:32:38.6135021Z ### REQ-INST-14
2026-06-04T00:32:38.6135470Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T00:32:38.6135582Z - Required stages: 
2026-06-04T00:32:38.6135590Z 
2026-06-04T00:32:38.6135689Z ### REQ-INST-15
2026-06-04T00:32:38.6136562Z - 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-04T00:32:38.6136665Z - Required stages: 
2026-06-04T00:32:38.6136673Z 
2026-06-04T00:32:38.6136779Z ### REQ-REACH-1
2026-06-04T00:32:38.6136956Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T00:32:38.6137061Z - Required stages: 
2026-06-04T00:32:38.6137069Z 
2026-06-04T00:32:38.6137242Z ### REQ-REACH-2
2026-06-04T00:32:38.6137420Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T00:32:38.6137539Z - Required stages: 
2026-06-04T00:32:38.6137549Z 
2026-06-04T00:32:38.6137653Z ### REQ-MSG-1
2026-06-04T00:32:38.6138183Z - 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-04T00:32:38.6138313Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6138322Z 
2026-06-04T00:32:38.6138419Z ### REQ-MSG-2
2026-06-04T00:32:38.6138730Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T00:32:38.6138852Z - Required stages: impl, unit
2026-06-04T00:32:38.6138859Z 
2026-06-04T00:32:38.6138958Z ### REQ-MSG-3
2026-06-04T00:32:38.6139562Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T00:32:38.6139690Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6139698Z 
2026-06-04T00:32:38.6139887Z ### REQ-NODE-IDENTITY
2026-06-04T00:32:38.6140158Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T00:32:38.6140279Z - Required stages: impl, unit
2026-06-04T00:32:38.6140288Z 
2026-06-04T00:32:38.6140395Z ### REQ-NET-1
2026-06-04T00:32:38.6140604Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T00:32:38.6140728Z - Required stages: impl, unit
2026-06-04T00:32:38.6140735Z 
2026-06-04T00:32:38.6140841Z ### REQ-NET-2
2026-06-04T00:32:38.6141042Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T00:32:38.6141160Z - Required stages: impl
2026-06-04T00:32:38.6141167Z 
2026-06-04T00:32:38.6141265Z ### REQ-NET-3
2026-06-04T00:32:38.6141460Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T00:32:38.6141571Z - Required stages: 
2026-06-04T00:32:38.6141582Z 
2026-06-04T00:32:38.6141691Z ### REQ-PAIR-1
2026-06-04T00:32:38.6141827Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T00:32:38.6141944Z - Required stages: impl, unit
2026-06-04T00:32:38.6141953Z 
2026-06-04T00:32:38.6142064Z ### REQ-PAIR-2
2026-06-04T00:32:38.6142225Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T00:32:38.6142347Z - Required stages: impl, unit
2026-06-04T00:32:38.6142354Z 
2026-06-04T00:32:38.6142460Z ### REQ-PAIR-3
2026-06-04T00:32:38.6142629Z - Title: Fetch current pairing code from any paired node
2026-06-04T00:32:38.6142750Z - Required stages: impl, unit
2026-06-04T00:32:38.6142757Z 
2026-06-04T00:32:38.6142863Z ### REQ-PAIR-4
2026-06-04T00:32:38.6143005Z - Title: Subnet naming on first pairing
2026-06-04T00:32:38.6143127Z - Required stages: impl, unit
2026-06-04T00:32:38.6143135Z 
2026-06-04T00:32:38.6143239Z ### REQ-PAIR-5
2026-06-04T00:32:38.6143603Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T00:32:38.6143852Z - Required stages: impl, unit
2026-06-04T00:32:38.6143865Z 
2026-06-04T00:32:38.6144028Z ### REQ-PAIR-6
2026-06-04T00:32:38.6144505Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T00:32:38.6145436Z - Required stages: impl, unit
2026-06-04T00:32:38.6145745Z 
2026-06-04T00:32:38.6145943Z ### REQ-PAIR-7
2026-06-04T00:32:38.6146377Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T00:32:38.6146883Z - Required stages: 
2026-06-04T00:32:38.6147128Z 
2026-06-04T00:32:38.6147298Z ### REQ-SEC-1
2026-06-04T00:32:38.6148270Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T00:32:38.6149374Z - Required stages: 
2026-06-04T00:32:38.6149572Z 
2026-06-04T00:32:38.6149710Z ### REQ-NOTIF-1
2026-06-04T00:32:38.6150502Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T00:32:38.6151709Z - Required stages: 
2026-06-04T00:32:38.6151941Z 
2026-06-04T00:32:38.6152138Z ### REQ-NOTIF-2
2026-06-04T00:32:38.6152928Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T00:32:38.6153713Z - Required stages: 
2026-06-04T00:32:38.6153945Z 
2026-06-04T00:32:38.6154107Z ### REQ-UPD-1
2026-06-04T00:32:38.6154569Z - Title: Peer-propagated update over P2P
2026-06-04T00:32:38.6155126Z - Required stages: 
2026-06-04T00:32:38.6155362Z 
2026-06-04T00:32:38.6155520Z ### REQ-UPD-2
2026-06-04T00:32:38.6156013Z - Title: All binaries signature-verified before handoff
2026-06-04T00:32:38.6156637Z - Required stages: impl, unit
2026-06-04T00:32:38.6156977Z 
2026-06-04T00:32:38.6157147Z ### REQ-UPD-3
2026-06-04T00:32:38.6157698Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T00:32:38.6158393Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6158759Z 
2026-06-04T00:32:38.6158926Z ### REQ-UPD-4
2026-06-04T00:32:38.6159792Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T00:32:38.6160551Z - Required stages: impl, unit
2026-06-04T00:32:38.6160895Z 
2026-06-04T00:32:38.6161060Z ### REQ-UPD-5
2026-06-04T00:32:38.6161560Z - Title: spt-core ripple-updates registered adapters
2026-06-04T00:32:38.6162013Z - Required stages: impl, unit
2026-06-04T00:32:38.6162196Z 
2026-06-04T00:32:38.6162298Z ### REQ-TERM-1
2026-06-04T00:32:38.6162648Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T00:32:38.6163037Z - Required stages: impl, unit
2026-06-04T00:32:38.6163215Z 
2026-06-04T00:32:38.6163323Z ### REQ-TERM-2
2026-06-04T00:32:38.6163661Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T00:32:38.6164054Z - Required stages: impl, unit
2026-06-04T00:32:38.6164228Z 
2026-06-04T00:32:38.6164334Z ### REQ-TERM-3
2026-06-04T00:32:38.6164630Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T00:32:38.6164988Z - Required stages: impl, unit
2026-06-04T00:32:38.6165163Z 
2026-06-04T00:32:38.6165284Z ### REQ-TERM-4
2026-06-04T00:32:38.6165845Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T00:32:38.6166456Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6166650Z 
2026-06-04T00:32:38.6166759Z ### REQ-FRONT-1
2026-06-04T00:32:38.6167099Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T00:32:38.6167480Z - Required stages: 
2026-06-04T00:32:38.6167623Z 
2026-06-04T00:32:38.6167735Z ### REQ-INSTALL-1
2026-06-04T00:32:38.6168103Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T00:32:38.6168510Z - Required stages: 
2026-06-04T00:32:38.6168661Z 
2026-06-04T00:32:38.6168764Z ### REQ-INSTALL-2
2026-06-04T00:32:38.6169269Z - Title: Marketplace-repackaging-friendly install
2026-06-04T00:32:38.6169657Z - Required stages: 
2026-06-04T00:32:38.6169805Z 
2026-06-04T00:32:38.6169918Z ### REQ-INSTALL-3
2026-06-04T00:32:38.6170224Z - Title: Idempotent + interactive-optional first run
2026-06-04T00:32:38.6170561Z - Required stages: 
2026-06-04T00:32:38.6170708Z 
2026-06-04T00:32:38.6170812Z ### REQ-INSTALL-4
2026-06-04T00:32:38.6171710Z - 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-04T00:32:38.6172644Z - Required stages: 
2026-06-04T00:32:38.6172782Z 
2026-06-04T00:32:38.6172891Z ### REQ-MIGRATE-1
2026-06-04T00:32:38.6173219Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T00:32:38.6173589Z - Required stages: 
2026-06-04T00:32:38.6173736Z 
2026-06-04T00:32:38.6173837Z ### REQ-INFRA-1
2026-06-04T00:32:38.6174176Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T00:32:38.6174721Z - Required stages: 
2026-06-04T00:32:38.6174868Z 
2026-06-04T00:32:38.6174978Z ### REQ-DOCS-1
2026-06-04T00:32:38.6175357Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T00:32:38.6175771Z - Required stages: 
2026-06-04T00:32:38.6175913Z 
2026-06-04T00:32:38.6176022Z ### REQ-DOCS-2
2026-06-04T00:32:38.6176341Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T00:32:38.6176712Z - Required stages: 
2026-06-04T00:32:38.6176864Z 
2026-06-04T00:32:38.6176964Z ### REQ-DOCS-3
2026-06-04T00:32:38.6177434Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T00:32:38.6177777Z - Required stages: 
2026-06-04T00:32:38.6177917Z 
2026-06-04T00:32:38.6178029Z ### REQ-DOCS-4
2026-06-04T00:32:38.6178386Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T00:32:38.6178795Z - Required stages: 
2026-06-04T00:32:38.6178948Z 
2026-06-04T00:32:38.6179190Z ### REQ-DOCS-5
2026-06-04T00:32:38.6179572Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T00:32:38.6179986Z - Required stages: 
2026-06-04T00:32:38.6180135Z 
2026-06-04T00:32:38.6180414Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T00:32:38.6180842Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T00:32:38.6181265Z - Required stages: impl, unit
2026-06-04T00:32:38.6181459Z 
2026-06-04T00:32:38.6181591Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T00:32:38.6181965Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T00:32:38.6182340Z - Required stages: impl, unit
2026-06-04T00:32:38.6182526Z 
2026-06-04T00:32:38.6182659Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T00:32:38.6182995Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T00:32:38.6183336Z - Required stages: 
2026-06-04T00:32:38.6183477Z 
2026-06-04T00:32:38.6183600Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T00:32:38.6183984Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T00:32:38.6184394Z - Required stages: impl, unit
2026-06-04T00:32:38.6184576Z 
2026-06-04T00:32:38.6184697Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T00:32:38.6185079Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T00:32:38.6185476Z - Required stages: impl, unit
2026-06-04T00:32:38.6185649Z 
2026-06-04T00:32:38.6185785Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T00:32:38.6186185Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T00:32:38.6186585Z - Required stages: 
2026-06-04T00:32:38.6186733Z 
2026-06-04T00:32:38.6186855Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T00:32:38.6187181Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T00:32:38.6187520Z - Required stages: 
2026-06-04T00:32:38.6187666Z 
2026-06-04T00:32:38.6187802Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T00:32:38.6188183Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T00:32:38.6188563Z - Required stages: impl, unit
2026-06-04T00:32:38.6188745Z 
2026-06-04T00:32:38.6188866Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T00:32:38.6189417Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T00:32:38.6189791Z - Required stages: impl, int
2026-06-04T00:32:38.6189972Z 
2026-06-04T00:32:38.6190111Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T00:32:38.6190485Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T00:32:38.6190864Z - Required stages: impl, unit
2026-06-04T00:32:38.6191041Z 
2026-06-04T00:32:38.6191184Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T00:32:38.6191586Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T00:32:38.6191975Z - Required stages: impl, unit
2026-06-04T00:32:38.6192158Z 
2026-06-04T00:32:38.6192287Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T00:32:38.6192706Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T00:32:38.6193114Z - Required stages: impl, unit
2026-06-04T00:32:38.6193288Z 
2026-06-04T00:32:38.6193523Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T00:32:38.6193910Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T00:32:38.6194280Z - Required stages: impl, unit
2026-06-04T00:32:38.6194458Z 
2026-06-04T00:32:38.6194590Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T00:32:38.6194990Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T00:32:38.6195393Z - Required stages: impl, unit
2026-06-04T00:32:38.6195568Z 
2026-06-04T00:32:38.6195708Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T00:32:38.6196171Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T00:32:38.6196613Z - Required stages: impl, unit
2026-06-04T00:32:38.6196792Z 
2026-06-04T00:32:38.6196907Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T00:32:38.6197367Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T00:32:38.6197857Z - Required stages: impl, unit
2026-06-04T00:32:38.6198039Z 
2026-06-04T00:32:38.6198182Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T00:32:38.6198653Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T00:32:38.6199186Z - Required stages: impl, unit
2026-06-04T00:32:38.6199368Z 
2026-06-04T00:32:38.6199503Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T00:32:38.6199995Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T00:32:38.6200491Z - Required stages: impl, unit
2026-06-04T00:32:38.6200671Z 
2026-06-04T00:32:38.6200809Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T00:32:38.6201570Z - 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-04T00:32:38.6202184Z - Required stages: impl, unit
2026-06-04T00:32:38.6202355Z 
2026-06-04T00:32:38.6202498Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T00:32:38.6202853Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T00:32:38.6203183Z - Required stages: impl, unit
2026-06-04T00:32:38.6203374Z 
2026-06-04T00:32:38.6203497Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T00:32:38.6203848Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T00:32:38.6204190Z - Required stages: impl, unit
2026-06-04T00:32:38.6204358Z 
2026-06-04T00:32:38.6204491Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T00:32:38.6204895Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T00:32:38.6205266Z - Required stages: impl, unit
2026-06-04T00:32:38.6205446Z 
2026-06-04T00:32:38.6205566Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T00:32:38.6205932Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T00:32:38.6206321Z - Required stages: impl, unit
2026-06-04T00:32:38.6206492Z 
2026-06-04T00:32:38.6206628Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T00:32:38.6206985Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T00:32:38.6207350Z - Required stages: impl, unit
2026-06-04T00:32:38.6207530Z 
2026-06-04T00:32:38.6207652Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T00:32:38.6208005Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T00:32:38.6208374Z - Required stages: impl, unit
2026-06-04T00:32:38.6208551Z 
2026-06-04T00:32:38.6208684Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T00:32:38.6209240Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T00:32:38.6209666Z - Required stages: impl, unit
2026-06-04T00:32:38.6209839Z 
2026-06-04T00:32:38.6209965Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T00:32:38.6210369Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T00:32:38.6210783Z - Required stages: impl, unit
2026-06-04T00:32:38.6210964Z 
2026-06-04T00:32:38.6211091Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T00:32:38.6211493Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T00:32:38.6211894Z - Required stages: impl, unit
2026-06-04T00:32:38.6212072Z 
2026-06-04T00:32:38.6212222Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T00:32:38.6212707Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T00:32:38.6213087Z - Required stages: impl, unit
2026-06-04T00:32:38.6213270Z 
2026-06-04T00:32:38.6213407Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T00:32:38.6213868Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T00:32:38.6214319Z - Required stages: impl, unit
2026-06-04T00:32:38.6214493Z 
2026-06-04T00:32:38.6214617Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T00:32:38.6215028Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T00:32:38.6215468Z - Required stages: impl, unit
2026-06-04T00:32:38.6215645Z 
2026-06-04T00:32:38.6215765Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T00:32:38.6216182Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T00:32:38.6216629Z - Required stages: impl, unit
2026-06-04T00:32:38.6216797Z 
2026-06-04T00:32:38.6216930Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T00:32:38.6217487Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T00:32:38.6217999Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6218188Z 
2026-06-04T00:32:38.6218312Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T00:32:38.6218787Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T00:32:38.6219429Z - Required stages: impl, unit
2026-06-04T00:32:38.6219612Z 
2026-06-04T00:32:38.6219755Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T00:32:38.6220471Z - 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-04T00:32:38.6221154Z - Required stages: impl, unit, int
2026-06-04T00:32:38.6221348Z 
2026-06-04T00:32:38.6221479Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T00:32:38.6222754Z - 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-04T00:32:38.6223762Z - Required stages: 
2026-06-04T00:32:38.6223912Z 
2026-06-04T00:32:38.6224062Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T00:32:38.6225053Z - 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-04T00:32:38.6225988Z - Required stages: 
2026-06-04T00:32:38.6226143Z 
2026-06-04T00:32:38.6226279Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T00:32:38.6227266Z - 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-04T00:32:38.6228133Z - Required stages: impl, unit
2026-06-04T00:32:38.6228308Z 
2026-06-04T00:32:38.6228446Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T00:32:38.6229423Z - 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-04T00:32:38.6230235Z - Required stages: impl, unit
2026-06-04T00:32:38.6230421Z 
2026-06-04T00:32:38.6230549Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T00:32:38.6231811Z - 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-04T00:32:38.6232882Z - Required stages: impl, unit
2026-06-04T00:32:38.6233058Z 
2026-06-04T00:32:38.6233178Z ## How to report back
2026-06-04T00:32:38.6233339Z 
2026-06-04T00:32:38.6233639Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T00:32:38.6233938Z 
2026-06-04T00:32:38.6234044Z     {
2026-06-04T00:32:38.6234318Z       "code": "requirement_quality",
2026-06-04T00:32:38.6234647Z       "requirementId": "REQ-...",
2026-06-04T00:32:38.6235044Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T00:32:38.6235446Z       "message": "<short reason>",
2026-06-04T00:32:38.6235771Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T00:32:38.6236083Z     }
2026-06-04T00:32:38.6236209Z 
2026-06-04T00:32:38.6236431Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T00:32:38.6236899Z deterministic findings above don't need to be repeated.
2026-06-04T00:32:38.6324349Z Post job cleanup.
2026-06-04T00:32:38.7295074Z [command]/usr/bin/git version
2026-06-04T00:32:38.7331267Z git version 2.54.0
2026-06-04T00:32:38.7380422Z Temporarily overriding HOME='/home/runner/work/_temp/013d6065-c2ca-4125-9580-c0fed0deb4bc' before making global git config changes
2026-06-04T00:32:38.7382290Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T00:32:38.7384627Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/spt-core/spt-core
2026-06-04T00:32:38.7422399Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T00:32:38.7452600Z [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-04T00:32:38.7635989Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T00:32:38.7659684Z http.https://github.com/.extraheader
2026-06-04T00:32:38.7671318Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-04T00:32:38.7701581Z [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-04T00:32:38.7874283Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T00:32:38.7899022Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T00:32:38.8183539Z Cleaning up orphan processes
2026-06-04T00:32:38.8405065Z ##[warning]Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
