﻿2026-06-04T02:01:19.8694546Z Current runner version: '2.334.0'
2026-06-04T02:01:19.8704329Z Runner name: 'gravity'
2026-06-04T02:01:19.8705505Z Runner group name: 'Default'
2026-06-04T02:01:19.8706879Z Machine name: 'gravity-linux'
2026-06-04T02:01:19.8711108Z ##[group]GITHUB_TOKEN Permissions
2026-06-04T02:01:19.8715080Z Contents: read
2026-06-04T02:01:19.8715909Z Metadata: read
2026-06-04T02:01:19.8716669Z Packages: read
2026-06-04T02:01:19.8717661Z ##[endgroup]
2026-06-04T02:01:19.8721216Z Secret source: Actions
2026-06-04T02:01:19.8722433Z Prepare workflow directory
2026-06-04T02:01:19.9490273Z Prepare all required actions
2026-06-04T02:01:19.9551234Z Getting action download info
2026-06-04T02:01:20.5167020Z Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
2026-06-04T02:01:21.3094957Z Complete job name: traceability
2026-06-04T02:01:21.4487824Z ##[group]Run actions/checkout@v4
2026-06-04T02:01:21.4489823Z with:
2026-06-04T02:01:21.4490663Z   repository: SaberMage/spt-core
2026-06-04T02:01:21.4498686Z   token: ***
2026-06-04T02:01:21.4499530Z   ssh-strict: true
2026-06-04T02:01:21.4500329Z   ssh-user: git
2026-06-04T02:01:21.4501141Z   persist-credentials: true
2026-06-04T02:01:21.4502017Z   clean: true
2026-06-04T02:01:21.4502812Z   sparse-checkout-cone-mode: true
2026-06-04T02:01:21.4503774Z   fetch-depth: 1
2026-06-04T02:01:21.4504562Z   fetch-tags: false
2026-06-04T02:01:21.4505392Z   show-progress: true
2026-06-04T02:01:21.4506207Z   lfs: false
2026-06-04T02:01:21.4506976Z   submodules: false
2026-06-04T02:01:21.4507827Z   set-safe-directory: true
2026-06-04T02:01:21.4509327Z ##[endgroup]
2026-06-04T02:01:21.6228427Z Syncing repository: SaberMage/spt-core
2026-06-04T02:01:21.6232410Z ##[group]Getting Git version info
2026-06-04T02:01:21.6234152Z Working directory is '/home/david/actions-runner/_work/spt-core/spt-core'
2026-06-04T02:01:21.6236369Z [command]/usr/bin/git version
2026-06-04T02:01:21.6237396Z git version 2.34.1
2026-06-04T02:01:21.6255229Z ##[endgroup]
2026-06-04T02:01:21.6274748Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/a7329bf1-4f79-4ef9-9fe4-27d31983ef0e/.gitconfig'
2026-06-04T02:01:21.6306973Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/a7329bf1-4f79-4ef9-9fe4-27d31983ef0e' before making global git config changes
2026-06-04T02:01:21.6309958Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T02:01:21.6332994Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-04T02:01:21.6380470Z [command]/usr/bin/git config --local --get remote.origin.url
2026-06-04T02:01:21.6406623Z https://github.com/SaberMage/spt-core
2026-06-04T02:01:21.6431353Z ##[group]Removing previously created refs, to avoid conflicts
2026-06-04T02:01:21.6436595Z [command]/usr/bin/git rev-parse --symbolic-full-name --verify --quiet HEAD
2026-06-04T02:01:21.6467773Z refs/heads/dev-freeform
2026-06-04T02:01:21.6482040Z [command]/usr/bin/git checkout --detach
2026-06-04T02:01:21.6533698Z HEAD is now at 1b89bc2 feat(net): M4-D4c PresenceChannel broker seam (REQ-EP-4)
2026-06-04T02:01:21.6600035Z [command]/usr/bin/git branch --delete --force dev-freeform
2026-06-04T02:01:21.6641926Z Deleted branch dev-freeform (was 1b89bc2).
2026-06-04T02:01:21.6691143Z ##[endgroup]
2026-06-04T02:01:21.6695132Z [command]/usr/bin/git submodule status
2026-06-04T02:01:21.6931522Z ##[group]Cleaning the repository
2026-06-04T02:01:21.6936838Z [command]/usr/bin/git clean -ffdx
2026-06-04T02:01:22.3550675Z Removing target/
2026-06-04T02:01:22.3563600Z [command]/usr/bin/git reset --hard HEAD
2026-06-04T02:01:22.3626182Z HEAD is now at 1b89bc2 feat(net): M4-D4c PresenceChannel broker seam (REQ-EP-4)
2026-06-04T02:01:22.3633779Z ##[endgroup]
2026-06-04T02:01:22.3636424Z ##[group]Disabling automatic garbage collection
2026-06-04T02:01:22.3641997Z [command]/usr/bin/git config --local gc.auto 0
2026-06-04T02:01:22.3680997Z ##[endgroup]
2026-06-04T02:01:22.3682991Z ##[group]Setting up auth
2026-06-04T02:01:22.3690049Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T02:01:22.3736058Z [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-04T02:01:22.4000769Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T02:01:22.4045977Z [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-04T02:01:22.4291618Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T02:01:22.4333431Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T02:01:22.4577625Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-06-04T02:01:22.4636484Z ##[endgroup]
2026-06-04T02:01:22.4639030Z ##[group]Fetching the repository
2026-06-04T02:01:22.4652900Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +237b1bb42a59cd7e112c8bf00badb4078ed7133c:refs/remotes/origin/dev-freeform
2026-06-04T02:01:23.0389833Z From https://github.com/SaberMage/spt-core
2026-06-04T02:01:23.0394046Z  + 1b89bc2...237b1bb 237b1bb42a59cd7e112c8bf00badb4078ed7133c -> origin/dev-freeform  (forced update)
2026-06-04T02:01:23.0425708Z ##[endgroup]
2026-06-04T02:01:23.0428207Z ##[group]Determining the checkout info
2026-06-04T02:01:23.0431132Z ##[endgroup]
2026-06-04T02:01:23.0432844Z [command]/usr/bin/git sparse-checkout disable
2026-06-04T02:01:23.0477354Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-06-04T02:01:23.0513809Z ##[group]Checking out the ref
2026-06-04T02:01:23.0518658Z [command]/usr/bin/git checkout --progress --force -B dev-freeform refs/remotes/origin/dev-freeform
2026-06-04T02:01:23.0575028Z Warning: you are leaving 1 commit behind, not connected to
2026-06-04T02:01:23.0577739Z any of your branches:
2026-06-04T02:01:23.0578885Z 
2026-06-04T02:01:23.0580439Z   1b89bc2 feat(net): M4-D4c PresenceChannel broker seam (REQ-EP-4)
2026-06-04T02:01:23.0582156Z 
2026-06-04T02:01:23.0583419Z If you want to keep it by creating a new branch, this may be a good time
2026-06-04T02:01:23.0585894Z to do so with:
2026-06-04T02:01:23.0586675Z 
2026-06-04T02:01:23.0587351Z  git branch <new-branch-name> 1b89bc2
2026-06-04T02:01:23.0588529Z 
2026-06-04T02:01:23.0589339Z Switched to a new branch 'dev-freeform'
2026-06-04T02:01:23.0592002Z Branch 'dev-freeform' set up to track remote branch 'dev-freeform' from 'origin'.
2026-06-04T02:01:23.0597639Z ##[endgroup]
2026-06-04T02:01:23.0781235Z [command]/usr/bin/git log -1 --format=%H
2026-06-04T02:01:23.0783549Z 237b1bb42a59cd7e112c8bf00badb4078ed7133c
2026-06-04T02:01:23.1060831Z ##[group]Run if command -v traceable-reqs >/dev/null; then
2026-06-04T02:01:23.1063183Z [36;1mif command -v traceable-reqs >/dev/null; then[0m
2026-06-04T02:01:23.1065390Z [36;1m  ln -sf "$(command -v traceable-reqs)" ./traceable-reqs[0m
2026-06-04T02:01:23.1067278Z [36;1melse[0m
2026-06-04T02:01:23.1068891Z [36;1m  gh release download --repo BigscreenVR/traceable-reqs \[0m
2026-06-04T02:01:23.1071821Z [36;1m    --pattern '*linux-x86_64' --output traceable-reqs[0m
2026-06-04T02:01:23.1073733Z [36;1m  chmod +x traceable-reqs[0m
2026-06-04T02:01:23.1075146Z [36;1mfi[0m
2026-06-04T02:01:23.1106038Z shell: /usr/bin/bash -e {0}
2026-06-04T02:01:23.1107532Z env:
2026-06-04T02:01:23.1111176Z   GH_TOKEN: ***
2026-06-04T02:01:23.1112374Z ##[endgroup]
2026-06-04T02:01:23.1346961Z ##[group]Run ./traceable-reqs check --json
2026-06-04T02:01:23.1349050Z [36;1m./traceable-reqs check --json[0m
2026-06-04T02:01:23.1375801Z shell: /usr/bin/bash -e {0}
2026-06-04T02:01:23.1377687Z ##[endgroup]
2026-06-04T02:01:23.1550411Z {
2026-06-04T02:01:23.1551645Z   "schemaVersion": 1,
2026-06-04T02:01:23.1553077Z   "summary": {
2026-06-04T02:01:23.1554488Z     "requirementCount": 126,
2026-06-04T02:01:23.1556036Z     "completeCount": 126,
2026-06-04T02:01:23.1557510Z     "incompleteCount": 0,
2026-06-04T02:01:23.1558901Z     "findingCount": 0
2026-06-04T02:01:23.1560198Z   },
2026-06-04T02:01:23.1561262Z   "requirements": [
2026-06-04T02:01:23.1562420Z     {
2026-06-04T02:01:23.1563513Z       "id": "REQ-API-1",
2026-06-04T02:01:23.1565413Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-04T02:01:23.1567605Z       "requiredStages": [
2026-06-04T02:01:23.1568899Z         "impl",
2026-06-04T02:01:23.1570085Z         "unit",
2026-06-04T02:01:23.1571315Z         "int"
2026-06-04T02:01:23.1572429Z       ],
2026-06-04T02:01:23.1573475Z       "stages": {
2026-06-04T02:01:23.1574616Z         "doc": {
2026-06-04T02:01:23.1575791Z           "complete": false,
2026-06-04T02:01:23.1577191Z           "evidence": []
2026-06-04T02:01:23.1578451Z         },
2026-06-04T02:01:23.1590976Z         "impl": {
2026-06-04T02:01:23.1592484Z           "complete": true,
2026-06-04T02:01:23.1593899Z           "evidence": [
2026-06-04T02:01:23.1595180Z             {
2026-06-04T02:01:23.1596485Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.1598174Z               "line": 15
2026-06-04T02:01:23.1599519Z             }
2026-06-04T02:01:23.1600691Z           ]
2026-06-04T02:01:23.1602658Z         },
2026-06-04T02:01:23.1603739Z         "int": {
2026-06-04T02:01:23.1604907Z           "complete": true,
2026-06-04T02:01:23.1606255Z           "evidence": [
2026-06-04T02:01:23.1609399Z             {
2026-06-04T02:01:23.1611010Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.1612849Z               "line": 13
2026-06-04T02:01:23.1614138Z             }
2026-06-04T02:01:23.1615225Z           ]
2026-06-04T02:01:23.1616249Z         },
2026-06-04T02:01:23.1617323Z         "unit": {
2026-06-04T02:01:23.1618490Z           "complete": true,
2026-06-04T02:01:23.1619874Z           "evidence": [
2026-06-04T02:01:23.1621112Z             {
2026-06-04T02:01:23.1622345Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.1624000Z               "line": 329
2026-06-04T02:01:23.1625238Z             },
2026-06-04T02:01:23.1626312Z             {
2026-06-04T02:01:23.1627551Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.1629953Z               "line": 335
2026-06-04T02:01:23.1631418Z             },
2026-06-04T02:01:23.1632578Z             {
2026-06-04T02:01:23.1633906Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.1635669Z               "line": 346
2026-06-04T02:01:23.1636996Z             }
2026-06-04T02:01:23.1638101Z           ]
2026-06-04T02:01:23.1639247Z         }
2026-06-04T02:01:23.1640403Z       }
2026-06-04T02:01:23.1641426Z     },
2026-06-04T02:01:23.1642481Z     {
2026-06-04T02:01:23.1643574Z       "id": "REQ-API-2",
2026-06-04T02:01:23.1645893Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-04T02:01:23.1648541Z       "requiredStages": [
2026-06-04T02:01:23.1649998Z         "impl",
2026-06-04T02:01:23.1651153Z         "unit",
2026-06-04T02:01:23.1652357Z         "int"
2026-06-04T02:01:23.1653510Z       ],
2026-06-04T02:01:23.1659528Z       "stages": {
2026-06-04T02:01:23.1660860Z         "doc": {
2026-06-04T02:01:23.1662044Z           "complete": false,
2026-06-04T02:01:23.1663402Z           "evidence": []
2026-06-04T02:01:23.1664641Z         },
2026-06-04T02:01:23.1665682Z         "impl": {
2026-06-04T02:01:23.1666867Z           "complete": true,
2026-06-04T02:01:23.1668209Z           "evidence": [
2026-06-04T02:01:23.1669961Z             {
2026-06-04T02:01:23.1671382Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T02:01:23.1673110Z               "line": 15
2026-06-04T02:01:23.1674333Z             },
2026-06-04T02:01:23.1675648Z             {
2026-06-04T02:01:23.1676955Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.1678663Z               "line": 20
2026-06-04T02:01:23.1679968Z             },
2026-06-04T02:01:23.1681044Z             {
2026-06-04T02:01:23.1682343Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.1684058Z               "line": 125
2026-06-04T02:01:23.1685291Z             },
2026-06-04T02:01:23.1686367Z             {
2026-06-04T02:01:23.1687681Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1689448Z               "line": 21
2026-06-04T02:01:23.1690679Z             },
2026-06-04T02:01:23.1691767Z             {
2026-06-04T02:01:23.1693093Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1694827Z               "line": 36
2026-06-04T02:01:23.1696051Z             },
2026-06-04T02:01:23.1697125Z             {
2026-06-04T02:01:23.1698440Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1700274Z               "line": 101
2026-06-04T02:01:23.1701505Z             },
2026-06-04T02:01:23.1702583Z             {
2026-06-04T02:01:23.1703910Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1705636Z               "line": 123
2026-06-04T02:01:23.1706873Z             },
2026-06-04T02:01:23.1707953Z             {
2026-06-04T02:01:23.1709328Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1711073Z               "line": 147
2026-06-04T02:01:23.1712365Z             },
2026-06-04T02:01:23.1713459Z             {
2026-06-04T02:01:23.1714735Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1716418Z               "line": 17
2026-06-04T02:01:23.1739790Z             },
2026-06-04T02:01:23.1741177Z             {
2026-06-04T02:01:23.1742414Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1744036Z               "line": 30
2026-06-04T02:01:23.1745218Z             },
2026-06-04T02:01:23.1746245Z             {
2026-06-04T02:01:23.1747490Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1749112Z               "line": 63
2026-06-04T02:01:23.1750816Z             },
2026-06-04T02:01:23.1751850Z             {
2026-06-04T02:01:23.1753073Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1754696Z               "line": 76
2026-06-04T02:01:23.1755861Z             }
2026-06-04T02:01:23.1756874Z           ]
2026-06-04T02:01:23.1757858Z         },
2026-06-04T02:01:23.1758855Z         "int": {
2026-06-04T02:01:23.1760421Z           "complete": true,
2026-06-04T02:01:23.1761691Z           "evidence": [
2026-06-04T02:01:23.1762845Z             {
2026-06-04T02:01:23.1764121Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.1765811Z               "line": 14
2026-06-04T02:01:23.1766989Z             },
2026-06-04T02:01:23.1768013Z             {
2026-06-04T02:01:23.1772240Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.1773979Z               "line": 151
2026-06-04T02:01:23.1775177Z             }
2026-06-04T02:01:23.1776199Z           ]
2026-06-04T02:01:23.1777188Z         },
2026-06-04T02:01:23.1778183Z         "unit": {
2026-06-04T02:01:23.1779360Z           "complete": true,
2026-06-04T02:01:23.1781030Z           "evidence": [
2026-06-04T02:01:23.1782189Z             {
2026-06-04T02:01:23.1783492Z               "path": "crates/spt-store/src/history.rs",
2026-06-04T02:01:23.1785176Z               "line": 42
2026-06-04T02:01:23.1786356Z             },
2026-06-04T02:01:23.1787401Z             {
2026-06-04T02:01:23.1788671Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.1790735Z               "line": 204
2026-06-04T02:01:23.1791928Z             },
2026-06-04T02:01:23.1793514Z             {
2026-06-04T02:01:23.1794872Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1796566Z               "line": 220
2026-06-04T02:01:23.1797776Z             },
2026-06-04T02:01:23.1799012Z             {
2026-06-04T02:01:23.1800728Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1802489Z               "line": 231
2026-06-04T02:01:23.1803687Z             },
2026-06-04T02:01:23.1804728Z             {
2026-06-04T02:01:23.1806023Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1807718Z               "line": 267
2026-06-04T02:01:23.1808920Z             },
2026-06-04T02:01:23.1810036Z             {
2026-06-04T02:01:23.1811344Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1813030Z               "line": 279
2026-06-04T02:01:23.1814234Z             },
2026-06-04T02:01:23.1815272Z             {
2026-06-04T02:01:23.1816525Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1818210Z               "line": 137
2026-06-04T02:01:23.1819434Z             },
2026-06-04T02:01:23.1820465Z             {
2026-06-04T02:01:23.1821705Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.1823381Z               "line": 172
2026-06-04T02:01:23.1824549Z             }
2026-06-04T02:01:23.1825550Z           ]
2026-06-04T02:01:23.1826528Z         }
2026-06-04T02:01:23.1827487Z       }
2026-06-04T02:01:23.1828438Z     },
2026-06-04T02:01:23.1829423Z     {
2026-06-04T02:01:23.1830429Z       "id": "REQ-API-3",
2026-06-04T02:01:23.1832010Z       "title": "commune/signoff are file-drops, not commands",
2026-06-04T02:01:23.1833848Z       "requiredStages": [
2026-06-04T02:01:23.1835051Z         "impl",
2026-06-04T02:01:23.1836085Z         "unit",
2026-06-04T02:01:23.1837104Z         "int"
2026-06-04T02:01:23.1838097Z       ],
2026-06-04T02:01:23.1839067Z       "stages": {
2026-06-04T02:01:23.1840222Z         "doc": {
2026-06-04T02:01:23.1841317Z           "complete": false,
2026-06-04T02:01:23.1842610Z           "evidence": []
2026-06-04T02:01:23.1843775Z         },
2026-06-04T02:01:23.1844742Z         "impl": {
2026-06-04T02:01:23.1845889Z           "complete": true,
2026-06-04T02:01:23.1847139Z           "evidence": [
2026-06-04T02:01:23.1848291Z             {
2026-06-04T02:01:23.1849568Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.1851176Z               "line": 14
2026-06-04T02:01:23.1852338Z             },
2026-06-04T02:01:23.1853367Z             {
2026-06-04T02:01:23.1854634Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1856279Z               "line": 157
2026-06-04T02:01:23.1857446Z             }
2026-06-04T02:01:23.1858444Z           ]
2026-06-04T02:01:23.1859461Z         },
2026-06-04T02:01:23.1860431Z         "int": {
2026-06-04T02:01:23.1861530Z           "complete": true,
2026-06-04T02:01:23.1862773Z           "evidence": [
2026-06-04T02:01:23.1863928Z             {
2026-06-04T02:01:23.1865194Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.1866850Z               "line": 203
2026-06-04T02:01:23.1868022Z             }
2026-06-04T02:01:23.1869029Z           ]
2026-06-04T02:01:23.1870050Z         },
2026-06-04T02:01:23.1871053Z         "unit": {
2026-06-04T02:01:23.1872152Z           "complete": true,
2026-06-04T02:01:23.1873409Z           "evidence": [
2026-06-04T02:01:23.1874539Z             {
2026-06-04T02:01:23.1875756Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.1877364Z               "line": 117
2026-06-04T02:01:23.1878528Z             },
2026-06-04T02:01:23.1879591Z             {
2026-06-04T02:01:23.1880851Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.1882498Z               "line": 288
2026-06-04T02:01:23.1883670Z             }
2026-06-04T02:01:23.1884663Z           ]
2026-06-04T02:01:23.1885632Z         }
2026-06-04T02:01:23.1886577Z       }
2026-06-04T02:01:23.1887526Z     },
2026-06-04T02:01:23.1888469Z     {
2026-06-04T02:01:23.1889771Z       "id": "REQ-ARCH-1",
2026-06-04T02:01:23.1891396Z       "title": "Many small acyclically-layered crates",
2026-06-04T02:01:23.1893086Z       "requiredStages": [
2026-06-04T02:01:23.1894295Z         "impl"
2026-06-04T02:01:23.1895528Z       ],
2026-06-04T02:01:23.1896503Z       "stages": {
2026-06-04T02:01:23.1897557Z         "doc": {
2026-06-04T02:01:23.1898656Z           "complete": false,
2026-06-04T02:01:23.1900001Z           "evidence": []
2026-06-04T02:01:23.1901258Z         },
2026-06-04T02:01:23.1902235Z         "impl": {
2026-06-04T02:01:23.1903329Z           "complete": true,
2026-06-04T02:01:23.1904576Z           "evidence": [
2026-06-04T02:01:23.1905715Z             {
2026-06-04T02:01:23.1906897Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-04T02:01:23.1908466Z               "line": 16
2026-06-04T02:01:23.1909663Z             },
2026-06-04T02:01:23.1910665Z             {
2026-06-04T02:01:23.1911876Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-04T02:01:23.1913481Z               "line": 12
2026-06-04T02:01:23.1914641Z             },
2026-06-04T02:01:23.1915647Z             {
2026-06-04T02:01:23.1916853Z               "path": "crates/spt-store/src/lib.rs",
2026-06-04T02:01:23.1918436Z               "line": 12
2026-06-04T02:01:23.1919628Z             }
2026-06-04T02:01:23.1920618Z           ]
2026-06-04T02:01:23.1921644Z         },
2026-06-04T02:01:23.1922616Z         "int": {
2026-06-04T02:01:23.1923709Z           "complete": false,
2026-06-04T02:01:23.1925010Z           "evidence": []
2026-06-04T02:01:23.1926167Z         },
2026-06-04T02:01:23.1927146Z         "unit": {
2026-06-04T02:01:23.1928253Z           "complete": false,
2026-06-04T02:01:23.1929587Z           "evidence": []
2026-06-04T02:01:23.1930740Z         }
2026-06-04T02:01:23.1931698Z       }
2026-06-04T02:01:23.1932633Z     },
2026-06-04T02:01:23.1933585Z     {
2026-06-04T02:01:23.1934595Z       "id": "REQ-ARCH-2",
2026-06-04T02:01:23.1936356Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-04T02:01:23.1938369Z       "requiredStages": [
2026-06-04T02:01:23.1939625Z         "impl"
2026-06-04T02:01:23.1940634Z       ],
2026-06-04T02:01:23.1941631Z       "stages": {
2026-06-04T02:01:23.1942704Z         "doc": {
2026-06-04T02:01:23.1943791Z           "complete": false,
2026-06-04T02:01:23.1945114Z           "evidence": []
2026-06-04T02:01:23.1946270Z         },
2026-06-04T02:01:23.1947250Z         "impl": {
2026-06-04T02:01:23.1948339Z           "complete": true,
2026-06-04T02:01:23.1949628Z           "evidence": [
2026-06-04T02:01:23.1950758Z             {
2026-06-04T02:01:23.1951967Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-04T02:01:23.1953558Z               "line": 18
2026-06-04T02:01:23.1954721Z             }
2026-06-04T02:01:23.1955722Z           ]
2026-06-04T02:01:23.1956687Z         },
2026-06-04T02:01:23.1957663Z         "int": {
2026-06-04T02:01:23.1958757Z           "complete": false,
2026-06-04T02:01:23.1960101Z           "evidence": []
2026-06-04T02:01:23.1961269Z         },
2026-06-04T02:01:23.1962241Z         "unit": {
2026-06-04T02:01:23.1963334Z           "complete": false,
2026-06-04T02:01:23.1964614Z           "evidence": []
2026-06-04T02:01:23.1965783Z         }
2026-06-04T02:01:23.1966736Z       }
2026-06-04T02:01:23.1967675Z     },
2026-06-04T02:01:23.1968616Z     {
2026-06-04T02:01:23.1969660Z       "id": "REQ-ARCH-3",
2026-06-04T02:01:23.1971694Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-04T02:01:23.1974020Z       "requiredStages": [
2026-06-04T02:01:23.1975225Z         "impl",
2026-06-04T02:01:23.1976270Z         "unit"
2026-06-04T02:01:23.1977286Z       ],
2026-06-04T02:01:23.1978250Z       "stages": {
2026-06-04T02:01:23.1979337Z         "doc": {
2026-06-04T02:01:23.1980472Z           "complete": false,
2026-06-04T02:01:23.1981735Z           "evidence": []
2026-06-04T02:01:23.1982887Z         },
2026-06-04T02:01:23.1983864Z         "impl": {
2026-06-04T02:01:23.1985160Z           "complete": true,
2026-06-04T02:01:23.1986452Z           "evidence": [
2026-06-04T02:01:23.1987586Z             {
2026-06-04T02:01:23.1988858Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:01:23.1990760Z               "line": 34
2026-06-04T02:01:23.1991914Z             },
2026-06-04T02:01:23.1992927Z             {
2026-06-04T02:01:23.1994195Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:01:23.1995820Z               "line": 41
2026-06-04T02:01:23.1996984Z             }
2026-06-04T02:01:23.1997978Z           ]
2026-06-04T02:01:23.1998954Z         },
2026-06-04T02:01:23.1999971Z         "int": {
2026-06-04T02:01:23.2001079Z           "complete": false,
2026-06-04T02:01:23.2002364Z           "evidence": []
2026-06-04T02:01:23.2003524Z         },
2026-06-04T02:01:23.2004504Z         "unit": {
2026-06-04T02:01:23.2005607Z           "complete": true,
2026-06-04T02:01:23.2006864Z           "evidence": [
2026-06-04T02:01:23.2007982Z             {
2026-06-04T02:01:23.2009292Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:01:23.2010914Z               "line": 51
2026-06-04T02:01:23.2012071Z             },
2026-06-04T02:01:23.2013083Z             {
2026-06-04T02:01:23.2014356Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:01:23.2015975Z               "line": 65
2026-06-04T02:01:23.2017135Z             },
2026-06-04T02:01:23.2018134Z             {
2026-06-04T02:01:23.2019439Z               "path": "crates/spt-proto/src/version.rs",
2026-06-04T02:01:23.2021067Z               "line": 74
2026-06-04T02:01:23.2022218Z             }
2026-06-04T02:01:23.2023210Z           ]
2026-06-04T02:01:23.2024177Z         }
2026-06-04T02:01:23.2025124Z       }
2026-06-04T02:01:23.2026051Z     },
2026-06-04T02:01:23.2026998Z     {
2026-06-04T02:01:23.2027979Z       "id": "REQ-ARCH-4",
2026-06-04T02:01:23.2029804Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-04T02:01:23.2031881Z       "requiredStages": [
2026-06-04T02:01:23.2033081Z         "impl",
2026-06-04T02:01:23.2034105Z         "unit"
2026-06-04T02:01:23.2035115Z       ],
2026-06-04T02:01:23.2036078Z       "stages": {
2026-06-04T02:01:23.2037123Z         "doc": {
2026-06-04T02:01:23.2038244Z           "complete": false,
2026-06-04T02:01:23.2039552Z           "evidence": []
2026-06-04T02:01:23.2040755Z         },
2026-06-04T02:01:23.2052444Z         "impl": {
2026-06-04T02:01:23.2053810Z           "complete": true,
2026-06-04T02:01:23.2055043Z           "evidence": [
2026-06-04T02:01:23.2056169Z             {
2026-06-04T02:01:23.2057394Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2058991Z               "line": 32
2026-06-04T02:01:23.2060221Z             },
2026-06-04T02:01:23.2061225Z             {
2026-06-04T02:01:23.2062432Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2064018Z               "line": 46
2026-06-04T02:01:23.2065165Z             },
2026-06-04T02:01:23.2066229Z             {
2026-06-04T02:01:23.2067443Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2069038Z               "line": 66
2026-06-04T02:01:23.2070241Z             },
2026-06-04T02:01:23.2071247Z             {
2026-06-04T02:01:23.2072476Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2074058Z               "line": 81
2026-06-04T02:01:23.2075195Z             },
2026-06-04T02:01:23.2076190Z             {
2026-06-04T02:01:23.2077405Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2078993Z               "line": 131
2026-06-04T02:01:23.2080282Z             }
2026-06-04T02:01:23.2081267Z           ]
2026-06-04T02:01:23.2082228Z         },
2026-06-04T02:01:23.2083180Z         "int": {
2026-06-04T02:01:23.2084268Z           "complete": false,
2026-06-04T02:01:23.2085539Z           "evidence": []
2026-06-04T02:01:23.2086679Z         },
2026-06-04T02:01:23.2087638Z         "unit": {
2026-06-04T02:01:23.2089022Z           "complete": true,
2026-06-04T02:01:23.2090480Z           "evidence": [
2026-06-04T02:01:23.2091600Z             {
2026-06-04T02:01:23.2092809Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2094388Z               "line": 195
2026-06-04T02:01:23.2095713Z             },
2026-06-04T02:01:23.2096710Z             {
2026-06-04T02:01:23.2097923Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2099570Z               "line": 205
2026-06-04T02:01:23.2100847Z             },
2026-06-04T02:01:23.2101862Z             {
2026-06-04T02:01:23.2103079Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2104679Z               "line": 216
2026-06-04T02:01:23.2105836Z             },
2026-06-04T02:01:23.2106845Z             {
2026-06-04T02:01:23.2108051Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2109670Z               "line": 227
2026-06-04T02:01:23.2110836Z             },
2026-06-04T02:01:23.2111836Z             {
2026-06-04T02:01:23.2113065Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2114662Z               "line": 239
2026-06-04T02:01:23.2115808Z             },
2026-06-04T02:01:23.2116817Z             {
2026-06-04T02:01:23.2118044Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2119685Z               "line": 252
2026-06-04T02:01:23.2120863Z             },
2026-06-04T02:01:23.2121890Z             {
2026-06-04T02:01:23.2123098Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2124683Z               "line": 263
2026-06-04T02:01:23.2125835Z             },
2026-06-04T02:01:23.2126826Z             {
2026-06-04T02:01:23.2128037Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2131174Z               "line": 277
2026-06-04T02:01:23.2132391Z             },
2026-06-04T02:01:23.2133411Z             {
2026-06-04T02:01:23.2134624Z               "path": "crates/spt-proto/src/event.rs",
2026-06-04T02:01:23.2136207Z               "line": 286
2026-06-04T02:01:23.2137392Z             }
2026-06-04T02:01:23.2138379Z           ]
2026-06-04T02:01:23.2139421Z         }
2026-06-04T02:01:23.2140664Z       }
2026-06-04T02:01:23.2141594Z     },
2026-06-04T02:01:23.2142532Z     {
2026-06-04T02:01:23.2143557Z       "id": "REQ-DAEMON-1",
2026-06-04T02:01:23.2145329Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-04T02:01:23.2147342Z       "requiredStages": [
2026-06-04T02:01:23.2148540Z         "impl",
2026-06-04T02:01:23.2149796Z         "unit",
2026-06-04T02:01:23.2150958Z         "int"
2026-06-04T02:01:23.2151949Z       ],
2026-06-04T02:01:23.2152948Z       "stages": {
2026-06-04T02:01:23.2154088Z         "doc": {
2026-06-04T02:01:23.2162417Z           "complete": false,
2026-06-04T02:01:23.2163881Z           "evidence": []
2026-06-04T02:01:23.2165040Z         },
2026-06-04T02:01:23.2166009Z         "impl": {
2026-06-04T02:01:23.2167113Z           "complete": true,
2026-06-04T02:01:23.2168339Z           "evidence": [
2026-06-04T02:01:23.2169869Z             {
2026-06-04T02:01:23.2171265Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2172870Z               "line": 12
2026-06-04T02:01:23.2174006Z             },
2026-06-04T02:01:23.2175068Z             {
2026-06-04T02:01:23.2176337Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2178228Z               "line": 16
2026-06-04T02:01:23.2179878Z             },
2026-06-04T02:01:23.2180908Z             {
2026-06-04T02:01:23.2182370Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:01:23.2184032Z               "line": 15
2026-06-04T02:01:23.2185226Z             },
2026-06-04T02:01:23.2186268Z             {
2026-06-04T02:01:23.2187486Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T02:01:23.2189104Z               "line": 13
2026-06-04T02:01:23.2190469Z             }
2026-06-04T02:01:23.2191451Z           ]
2026-06-04T02:01:23.2192410Z         },
2026-06-04T02:01:23.2193371Z         "int": {
2026-06-04T02:01:23.2194858Z           "complete": true,
2026-06-04T02:01:23.2196148Z           "evidence": [
2026-06-04T02:01:23.2197277Z             {
2026-06-04T02:01:23.2198585Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:01:23.2200829Z               "line": 32
2026-06-04T02:01:23.2201970Z             }
2026-06-04T02:01:23.2202964Z           ]
2026-06-04T02:01:23.2203936Z         },
2026-06-04T02:01:23.2204918Z         "unit": {
2026-06-04T02:01:23.2206006Z           "complete": true,
2026-06-04T02:01:23.2207242Z           "evidence": [
2026-06-04T02:01:23.2208358Z             {
2026-06-04T02:01:23.2209815Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2211490Z               "line": 173
2026-06-04T02:01:23.2212680Z             },
2026-06-04T02:01:23.2213706Z             {
2026-06-04T02:01:23.2214985Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2216641Z               "line": 181
2026-06-04T02:01:23.2217844Z             },
2026-06-04T02:01:23.2218909Z             {
2026-06-04T02:01:23.2220489Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2222211Z               "line": 194
2026-06-04T02:01:23.2223551Z             },
2026-06-04T02:01:23.2224626Z             {
2026-06-04T02:01:23.2225977Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2227824Z               "line": 202
2026-06-04T02:01:23.2229042Z             },
2026-06-04T02:01:23.2230692Z             {
2026-06-04T02:01:23.2232082Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2233921Z               "line": 451
2026-06-04T02:01:23.2235157Z             },
2026-06-04T02:01:23.2236234Z             {
2026-06-04T02:01:23.2237577Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2239719Z               "line": 510
2026-06-04T02:01:23.2241388Z             },
2026-06-04T02:01:23.2242571Z             {
2026-06-04T02:01:23.2243940Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:01:23.2245604Z               "line": 100
2026-06-04T02:01:23.2246845Z             },
2026-06-04T02:01:23.2247895Z             {
2026-06-04T02:01:23.2249148Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-04T02:01:23.2250960Z               "line": 125
2026-06-04T02:01:23.2252122Z             }
2026-06-04T02:01:23.2253278Z           ]
2026-06-04T02:01:23.2254283Z         }
2026-06-04T02:01:23.2255255Z       }
2026-06-04T02:01:23.2256226Z     },
2026-06-04T02:01:23.2257181Z     {
2026-06-04T02:01:23.2258203Z       "id": "REQ-DAEMON-2",
2026-06-04T02:01:23.2260117Z       "title": "Broker/brain split for seamless self-update",
2026-06-04T02:01:23.2261877Z       "requiredStages": [
2026-06-04T02:01:23.2263052Z         "impl",
2026-06-04T02:01:23.2272939Z         "unit",
2026-06-04T02:01:23.2274019Z         "int"
2026-06-04T02:01:23.2275003Z       ],
2026-06-04T02:01:23.2275955Z       "stages": {
2026-06-04T02:01:23.2276993Z         "doc": {
2026-06-04T02:01:23.2278109Z           "complete": false,
2026-06-04T02:01:23.2279584Z           "evidence": []
2026-06-04T02:01:23.2280929Z         },
2026-06-04T02:01:23.2281884Z         "impl": {
2026-06-04T02:01:23.2282966Z           "complete": true,
2026-06-04T02:01:23.2284193Z           "evidence": [
2026-06-04T02:01:23.2285296Z             {
2026-06-04T02:01:23.2286490Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.2288038Z               "line": 23
2026-06-04T02:01:23.2289153Z             },
2026-06-04T02:01:23.2290713Z             {
2026-06-04T02:01:23.2291923Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.2293477Z               "line": 474
2026-06-04T02:01:23.2294611Z             },
2026-06-04T02:01:23.2295593Z             {
2026-06-04T02:01:23.2296785Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.2298344Z               "line": 584
2026-06-04T02:01:23.2299509Z             },
2026-06-04T02:01:23.2300494Z             {
2026-06-04T02:01:23.2302199Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.2303819Z               "line": 32
2026-06-04T02:01:23.2304950Z             },
2026-06-04T02:01:23.2305925Z             {
2026-06-04T02:01:23.2307371Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.2308966Z               "line": 187
2026-06-04T02:01:23.2310144Z             },
2026-06-04T02:01:23.2311136Z             {
2026-06-04T02:01:23.2312358Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.2313949Z               "line": 485
2026-06-04T02:01:23.2315083Z             },
2026-06-04T02:01:23.2316077Z             {
2026-06-04T02:01:23.2317296Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.2318896Z               "line": 654
2026-06-04T02:01:23.2320125Z             },
2026-06-04T02:01:23.2321105Z             {
2026-06-04T02:01:23.2322297Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:01:23.2323925Z               "line": 11
2026-06-04T02:01:23.2325056Z             },
2026-06-04T02:01:23.2326053Z             {
2026-06-04T02:01:23.2327268Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:01:23.2328859Z               "line": 53
2026-06-04T02:01:23.2330036Z             },
2026-06-04T02:01:23.2331027Z             {
2026-06-04T02:01:23.2332211Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2333762Z               "line": 13
2026-06-04T02:01:23.2334880Z             },
2026-06-04T02:01:23.2335868Z             {
2026-06-04T02:01:23.2337091Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2338664Z               "line": 27
2026-06-04T02:01:23.2339841Z             },
2026-06-04T02:01:23.2340833Z             {
2026-06-04T02:01:23.2342058Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2343654Z               "line": 94
2026-06-04T02:01:23.2344783Z             },
2026-06-04T02:01:23.2345768Z             {
2026-06-04T02:01:23.2346999Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2348595Z               "line": 383
2026-06-04T02:01:23.2349768Z             },
2026-06-04T02:01:23.2350751Z             {
2026-06-04T02:01:23.2351993Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2353601Z               "line": 450
2026-06-04T02:01:23.2354753Z             },
2026-06-04T02:01:23.2355737Z             {
2026-06-04T02:01:23.2356961Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2358557Z               "line": 484
2026-06-04T02:01:23.2359749Z             },
2026-06-04T02:01:23.2360733Z             {
2026-06-04T02:01:23.2361951Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2363552Z               "line": 526
2026-06-04T02:01:23.2364706Z             },
2026-06-04T02:01:23.2365696Z             {
2026-06-04T02:01:23.2366910Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2368515Z               "line": 570
2026-06-04T02:01:23.2369699Z             },
2026-06-04T02:01:23.2370688Z             {
2026-06-04T02:01:23.2371940Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:01:23.2373580Z               "line": 10
2026-06-04T02:01:23.2381818Z             }
2026-06-04T02:01:23.2382840Z           ]
2026-06-04T02:01:23.2383791Z         },
2026-06-04T02:01:23.2384736Z         "int": {
2026-06-04T02:01:23.2385804Z           "complete": true,
2026-06-04T02:01:23.2387014Z           "evidence": [
2026-06-04T02:01:23.2388105Z             {
2026-06-04T02:01:23.2389398Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-04T02:01:23.2391015Z               "line": 17
2026-06-04T02:01:23.2392156Z             },
2026-06-04T02:01:23.2393137Z             {
2026-06-04T02:01:23.2394412Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:01:23.2396052Z               "line": 33
2026-06-04T02:01:23.2397171Z             },
2026-06-04T02:01:23.2398466Z             {
2026-06-04T02:01:23.2400099Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T02:01:23.2401869Z               "line": 19
2026-06-04T02:01:23.2402998Z             },
2026-06-04T02:01:23.2404169Z             {
2026-06-04T02:01:23.2405435Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:01:23.2407068Z               "line": 70
2026-06-04T02:01:23.2408183Z             },
2026-06-04T02:01:23.2409199Z             {
2026-06-04T02:01:23.2410574Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:01:23.2412199Z               "line": 90
2026-06-04T02:01:23.2413316Z             },
2026-06-04T02:01:23.2414317Z             {
2026-06-04T02:01:23.2415613Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:01:23.2417249Z               "line": 160
2026-06-04T02:01:23.2418384Z             },
2026-06-04T02:01:23.2419555Z             {
2026-06-04T02:01:23.2420896Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:01:23.2422588Z               "line": 196
2026-06-04T02:01:23.2423758Z             },
2026-06-04T02:01:23.2424796Z             {
2026-06-04T02:01:23.2426189Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T02:01:23.2428115Z               "line": 121
2026-06-04T02:01:23.2429505Z             }
2026-06-04T02:01:23.2430654Z           ]
2026-06-04T02:01:23.2431782Z         },
2026-06-04T02:01:23.2432843Z         "unit": {
2026-06-04T02:01:23.2433975Z           "complete": true,
2026-06-04T02:01:23.2435243Z           "evidence": [
2026-06-04T02:01:23.2436381Z             {
2026-06-04T02:01:23.2437610Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:01:23.2439296Z               "line": 62
2026-06-04T02:01:23.2440579Z             },
2026-06-04T02:01:23.2441600Z             {
2026-06-04T02:01:23.2442833Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:01:23.2444450Z               "line": 76
2026-06-04T02:01:23.2445639Z             },
2026-06-04T02:01:23.2446685Z             {
2026-06-04T02:01:23.2447929Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-04T02:01:23.2449577Z               "line": 88
2026-06-04T02:01:23.2450752Z             },
2026-06-04T02:01:23.2451790Z             {
2026-06-04T02:01:23.2453045Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.2454678Z               "line": 264
2026-06-04T02:01:23.2455844Z             },
2026-06-04T02:01:23.2456877Z             {
2026-06-04T02:01:23.2458101Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2459872Z               "line": 471
2026-06-04T02:01:23.2461008Z             },
2026-06-04T02:01:23.2461993Z             {
2026-06-04T02:01:23.2463164Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2464697Z               "line": 479
2026-06-04T02:01:23.2465824Z             },
2026-06-04T02:01:23.2466811Z             {
2026-06-04T02:01:23.2468012Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2469760Z               "line": 496
2026-06-04T02:01:23.2471046Z             },
2026-06-04T02:01:23.2472033Z             {
2026-06-04T02:01:23.2473205Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2474763Z               "line": 541
2026-06-04T02:01:23.2475890Z             },
2026-06-04T02:01:23.2476880Z             {
2026-06-04T02:01:23.2478116Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2480089Z               "line": 637
2026-06-04T02:01:23.2481226Z             },
2026-06-04T02:01:23.2482259Z             {
2026-06-04T02:01:23.2483482Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2493445Z               "line": 649
2026-06-04T02:01:23.2494786Z             },
2026-06-04T02:01:23.2495772Z             {
2026-06-04T02:01:23.2497020Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:01:23.2498636Z               "line": 112
2026-06-04T02:01:23.2500570Z             }
2026-06-04T02:01:23.2501577Z           ]
2026-06-04T02:01:23.2502522Z         }
2026-06-04T02:01:23.2503445Z       }
2026-06-04T02:01:23.2504357Z     },
2026-06-04T02:01:23.2505281Z     {
2026-06-04T02:01:23.2506267Z       "id": "REQ-DAEMON-3",
2026-06-04T02:01:23.2508091Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-04T02:01:23.2510512Z       "requiredStages": [
2026-06-04T02:01:23.2511677Z         "impl",
2026-06-04T02:01:23.2512683Z         "unit",
2026-06-04T02:01:23.2513684Z         "int"
2026-06-04T02:01:23.2514646Z       ],
2026-06-04T02:01:23.2515577Z       "stages": {
2026-06-04T02:01:23.2516609Z         "doc": {
2026-06-04T02:01:23.2517677Z           "complete": false,
2026-06-04T02:01:23.2518925Z           "evidence": []
2026-06-04T02:01:23.2520543Z         },
2026-06-04T02:01:23.2521480Z         "impl": {
2026-06-04T02:01:23.2522561Z           "complete": true,
2026-06-04T02:01:23.2523758Z           "evidence": [
2026-06-04T02:01:23.2524850Z             {
2026-06-04T02:01:23.2526079Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:01:23.2527653Z               "line": 14
2026-06-04T02:01:23.2528780Z             },
2026-06-04T02:01:23.2530311Z             {
2026-06-04T02:01:23.2531560Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-04T02:01:23.2533138Z               "line": 11
2026-06-04T02:01:23.2534249Z             },
2026-06-04T02:01:23.2535243Z             {
2026-06-04T02:01:23.2536381Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.2537882Z               "line": 203
2026-06-04T02:01:23.2539015Z             },
2026-06-04T02:01:23.2540048Z             {
2026-06-04T02:01:23.2541151Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.2542619Z               "line": 233
2026-06-04T02:01:23.2543744Z             }
2026-06-04T02:01:23.2544709Z           ]
2026-06-04T02:01:23.2545650Z         },
2026-06-04T02:01:23.2546602Z         "int": {
2026-06-04T02:01:23.2547677Z           "complete": true,
2026-06-04T02:01:23.2548901Z           "evidence": [
2026-06-04T02:01:23.2550034Z             {
2026-06-04T02:01:23.2551244Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.2552811Z               "line": 43
2026-06-04T02:01:23.2553946Z             },
2026-06-04T02:01:23.2554927Z             {
2026-06-04T02:01:23.2556123Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.2557703Z               "line": 315
2026-06-04T02:01:23.2558841Z             }
2026-06-04T02:01:23.2559969Z           ]
2026-06-04T02:01:23.2560903Z         },
2026-06-04T02:01:23.2561840Z         "unit": {
2026-06-04T02:01:23.2562893Z           "complete": true,
2026-06-04T02:01:23.2564096Z           "evidence": [
2026-06-04T02:01:23.2565190Z             {
2026-06-04T02:01:23.2566391Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-04T02:01:23.2567951Z               "line": 217
2026-06-04T02:01:23.2569081Z             }
2026-06-04T02:01:23.2570081Z           ]
2026-06-04T02:01:23.2571033Z         }
2026-06-04T02:01:23.2571968Z       }
2026-06-04T02:01:23.2572878Z     },
2026-06-04T02:01:23.2573793Z     {
2026-06-04T02:01:23.2574758Z       "id": "REQ-DAEMON-4",
2026-06-04T02:01:23.2576183Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-04T02:01:23.2577777Z       "requiredStages": [
2026-06-04T02:01:23.2578952Z         "impl",
2026-06-04T02:01:23.2580004Z         "unit",
2026-06-04T02:01:23.2581035Z         "int"
2026-06-04T02:01:23.2581999Z       ],
2026-06-04T02:01:23.2582937Z       "stages": {
2026-06-04T02:01:23.2583963Z         "doc": {
2026-06-04T02:01:23.2585023Z           "complete": false,
2026-06-04T02:01:23.2586245Z           "evidence": []
2026-06-04T02:01:23.2587360Z         },
2026-06-04T02:01:23.2588318Z         "impl": {
2026-06-04T02:01:23.2596175Z           "complete": true,
2026-06-04T02:01:23.2597518Z           "evidence": [
2026-06-04T02:01:23.2598625Z             {
2026-06-04T02:01:23.2600256Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2601887Z               "line": 262
2026-06-04T02:01:23.2603023Z             },
2026-06-04T02:01:23.2604012Z             {
2026-06-04T02:01:23.2605240Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2607017Z               "line": 324
2026-06-04T02:01:23.2608146Z             },
2026-06-04T02:01:23.2609126Z             {
2026-06-04T02:01:23.2610405Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2612012Z               "line": 346
2026-06-04T02:01:23.2613131Z             }
2026-06-04T02:01:23.2614088Z           ]
2026-06-04T02:01:23.2615016Z         },
2026-06-04T02:01:23.2615968Z         "int": {
2026-06-04T02:01:23.2617016Z           "complete": true,
2026-06-04T02:01:23.2618209Z           "evidence": [
2026-06-04T02:01:23.2619329Z             {
2026-06-04T02:01:23.2620692Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:01:23.2622309Z               "line": 34
2026-06-04T02:01:23.2623426Z             }
2026-06-04T02:01:23.2624385Z           ]
2026-06-04T02:01:23.2625325Z         },
2026-06-04T02:01:23.2626274Z         "unit": {
2026-06-04T02:01:23.2627329Z           "complete": true,
2026-06-04T02:01:23.2628533Z           "evidence": [
2026-06-04T02:01:23.2629655Z             {
2026-06-04T02:01:23.2630865Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.2632428Z               "line": 248
2026-06-04T02:01:23.2633554Z             },
2026-06-04T02:01:23.2634521Z             {
2026-06-04T02:01:23.2635749Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2637346Z               "line": 533
2026-06-04T02:01:23.2638468Z             },
2026-06-04T02:01:23.2639474Z             {
2026-06-04T02:01:23.2640708Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2642314Z               "line": 584
2026-06-04T02:01:23.2643433Z             },
2026-06-04T02:01:23.2644412Z             {
2026-06-04T02:01:23.2645659Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2647281Z               "line": 608
2026-06-04T02:01:23.2648401Z             },
2026-06-04T02:01:23.2649398Z             {
2026-06-04T02:01:23.2650693Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.2652286Z               "line": 638
2026-06-04T02:01:23.2653405Z             }
2026-06-04T02:01:23.2654365Z           ]
2026-06-04T02:01:23.2655304Z         }
2026-06-04T02:01:23.2656226Z       }
2026-06-04T02:01:23.2657123Z     },
2026-06-04T02:01:23.2658048Z     {
2026-06-04T02:01:23.2659000Z       "id": "REQ-DOCS-1",
2026-06-04T02:01:23.2660949Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-04T02:01:23.2663111Z       "requiredStages": [],
2026-06-04T02:01:23.2664291Z       "stages": {
2026-06-04T02:01:23.2665311Z         "doc": {
2026-06-04T02:01:23.2666362Z           "complete": false,
2026-06-04T02:01:23.2667588Z           "evidence": []
2026-06-04T02:01:23.2668715Z         },
2026-06-04T02:01:23.2669694Z         "impl": {
2026-06-04T02:01:23.2670755Z           "complete": false,
2026-06-04T02:01:23.2671986Z           "evidence": []
2026-06-04T02:01:23.2673094Z         },
2026-06-04T02:01:23.2674053Z         "int": {
2026-06-04T02:01:23.2675108Z           "complete": false,
2026-06-04T02:01:23.2676343Z           "evidence": []
2026-06-04T02:01:23.2677449Z         },
2026-06-04T02:01:23.2678391Z         "unit": {
2026-06-04T02:01:23.2679491Z           "complete": false,
2026-06-04T02:01:23.2680704Z           "evidence": []
2026-06-04T02:01:23.2681825Z         }
2026-06-04T02:01:23.2682744Z       }
2026-06-04T02:01:23.2683646Z     },
2026-06-04T02:01:23.2684551Z     {
2026-06-04T02:01:23.2685519Z       "id": "REQ-DOCS-2",
2026-06-04T02:01:23.2687151Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-04T02:01:23.2689032Z       "requiredStages": [],
2026-06-04T02:01:23.2690254Z       "stages": {
2026-06-04T02:01:23.2691513Z         "doc": {
2026-06-04T02:01:23.2692592Z           "complete": false,
2026-06-04T02:01:23.2700410Z           "evidence": []
2026-06-04T02:01:23.2701575Z         },
2026-06-04T02:01:23.2702529Z         "impl": {
2026-06-04T02:01:23.2703880Z           "complete": false,
2026-06-04T02:01:23.2705094Z           "evidence": []
2026-06-04T02:01:23.2706206Z         },
2026-06-04T02:01:23.2707135Z         "int": {
2026-06-04T02:01:23.2708184Z           "complete": false,
2026-06-04T02:01:23.2709439Z           "evidence": []
2026-06-04T02:01:23.2710570Z         },
2026-06-04T02:01:23.2711496Z         "unit": {
2026-06-04T02:01:23.2712571Z           "complete": false,
2026-06-04T02:01:23.2713794Z           "evidence": []
2026-06-04T02:01:23.2714895Z         }
2026-06-04T02:01:23.2715804Z       }
2026-06-04T02:01:23.2716707Z     },
2026-06-04T02:01:23.2717628Z     {
2026-06-04T02:01:23.2718587Z       "id": "REQ-DOCS-3",
2026-06-04T02:01:23.2720675Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-04T02:01:23.2722473Z       "requiredStages": [],
2026-06-04T02:01:23.2723663Z       "stages": {
2026-06-04T02:01:23.2724668Z         "doc": {
2026-06-04T02:01:23.2725717Z           "complete": false,
2026-06-04T02:01:23.2726952Z           "evidence": []
2026-06-04T02:01:23.2728059Z         },
2026-06-04T02:01:23.2728999Z         "impl": {
2026-06-04T02:01:23.2730117Z           "complete": false,
2026-06-04T02:01:23.2731330Z           "evidence": []
2026-06-04T02:01:23.2732453Z         },
2026-06-04T02:01:23.2733388Z         "int": {
2026-06-04T02:01:23.2734438Z           "complete": false,
2026-06-04T02:01:23.2735648Z           "evidence": []
2026-06-04T02:01:23.2736751Z         },
2026-06-04T02:01:23.2737697Z         "unit": {
2026-06-04T02:01:23.2738751Z           "complete": false,
2026-06-04T02:01:23.2739996Z           "evidence": []
2026-06-04T02:01:23.2741101Z         }
2026-06-04T02:01:23.2742029Z       }
2026-06-04T02:01:23.2742926Z     },
2026-06-04T02:01:23.2743829Z     {
2026-06-04T02:01:23.2744806Z       "id": "REQ-DOCS-4",
2026-06-04T02:01:23.2746698Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-04T02:01:23.2748832Z       "requiredStages": [],
2026-06-04T02:01:23.2750062Z       "stages": {
2026-06-04T02:01:23.2751075Z         "doc": {
2026-06-04T02:01:23.2752222Z           "complete": false,
2026-06-04T02:01:23.2753436Z           "evidence": []
2026-06-04T02:01:23.2754532Z         },
2026-06-04T02:01:23.2755478Z         "impl": {
2026-06-04T02:01:23.2756535Z           "complete": false,
2026-06-04T02:01:23.2757738Z           "evidence": []
2026-06-04T02:01:23.2758839Z         },
2026-06-04T02:01:23.2759820Z         "int": {
2026-06-04T02:01:23.2760870Z           "complete": false,
2026-06-04T02:01:23.2762092Z           "evidence": []
2026-06-04T02:01:23.2763206Z         },
2026-06-04T02:01:23.2764147Z         "unit": {
2026-06-04T02:01:23.2765194Z           "complete": false,
2026-06-04T02:01:23.2766402Z           "evidence": []
2026-06-04T02:01:23.2767521Z         }
2026-06-04T02:01:23.2768434Z       }
2026-06-04T02:01:23.2769359Z     },
2026-06-04T02:01:23.2770269Z     {
2026-06-04T02:01:23.2771223Z       "id": "REQ-DOCS-5",
2026-06-04T02:01:23.2773112Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-04T02:01:23.2775259Z       "requiredStages": [],
2026-06-04T02:01:23.2776438Z       "stages": {
2026-06-04T02:01:23.2777451Z         "doc": {
2026-06-04T02:01:23.2778495Z           "complete": false,
2026-06-04T02:01:23.2779874Z           "evidence": []
2026-06-04T02:01:23.2780987Z         },
2026-06-04T02:01:23.2781931Z         "impl": {
2026-06-04T02:01:23.2782993Z           "complete": false,
2026-06-04T02:01:23.2784210Z           "evidence": []
2026-06-04T02:01:23.2785311Z         },
2026-06-04T02:01:23.2786236Z         "int": {
2026-06-04T02:01:23.2787286Z           "complete": false,
2026-06-04T02:01:23.2788513Z           "evidence": []
2026-06-04T02:01:23.2789659Z         },
2026-06-04T02:01:23.2790820Z         "unit": {
2026-06-04T02:01:23.2791918Z           "complete": false,
2026-06-04T02:01:23.2793123Z           "evidence": []
2026-06-04T02:01:23.2801194Z         }
2026-06-04T02:01:23.2802166Z       }
2026-06-04T02:01:23.2803345Z     },
2026-06-04T02:01:23.2804258Z     {
2026-06-04T02:01:23.2805200Z       "id": "REQ-EP-1",
2026-06-04T02:01:23.2806607Z       "title": "Day-one endpoint types; open type system",
2026-06-04T02:01:23.2808260Z       "requiredStages": [
2026-06-04T02:01:23.2809679Z         "impl",
2026-06-04T02:01:23.2811067Z         "unit"
2026-06-04T02:01:23.2812038Z       ],
2026-06-04T02:01:23.2812975Z       "stages": {
2026-06-04T02:01:23.2813984Z         "doc": {
2026-06-04T02:01:23.2815032Z           "complete": false,
2026-06-04T02:01:23.2816253Z           "evidence": []
2026-06-04T02:01:23.2817370Z         },
2026-06-04T02:01:23.2818308Z         "impl": {
2026-06-04T02:01:23.2819426Z           "complete": true,
2026-06-04T02:01:23.2820620Z           "evidence": [
2026-06-04T02:01:23.2821732Z             {
2026-06-04T02:01:23.2822939Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2824527Z               "line": 77
2026-06-04T02:01:23.2825627Z             },
2026-06-04T02:01:23.2826608Z             {
2026-06-04T02:01:23.2827814Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2829425Z               "line": 94
2026-06-04T02:01:23.2830664Z             }
2026-06-04T02:01:23.2831621Z           ]
2026-06-04T02:01:23.2832547Z         },
2026-06-04T02:01:23.2833482Z         "int": {
2026-06-04T02:01:23.2834528Z           "complete": false,
2026-06-04T02:01:23.2835744Z           "evidence": []
2026-06-04T02:01:23.2836853Z         },
2026-06-04T02:01:23.2837792Z         "unit": {
2026-06-04T02:01:23.2838863Z           "complete": true,
2026-06-04T02:01:23.2840088Z           "evidence": [
2026-06-04T02:01:23.2841176Z             {
2026-06-04T02:01:23.2842432Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2844004Z               "line": 161
2026-06-04T02:01:23.2845115Z             },
2026-06-04T02:01:23.2846081Z             {
2026-06-04T02:01:23.2847294Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2848890Z               "line": 178
2026-06-04T02:01:23.2850061Z             }
2026-06-04T02:01:23.2851010Z           ]
2026-06-04T02:01:23.2851943Z         }
2026-06-04T02:01:23.2852857Z       }
2026-06-04T02:01:23.2853748Z     },
2026-06-04T02:01:23.2854649Z     {
2026-06-04T02:01:23.2855599Z       "id": "REQ-EP-2",
2026-06-04T02:01:23.2857211Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-04T02:01:23.2859138Z       "requiredStages": [
2026-06-04T02:01:23.2860394Z         "impl",
2026-06-04T02:01:23.2861401Z         "unit"
2026-06-04T02:01:23.2862364Z       ],
2026-06-04T02:01:23.2863288Z       "stages": {
2026-06-04T02:01:23.2864294Z         "doc": {
2026-06-04T02:01:23.2865333Z           "complete": false,
2026-06-04T02:01:23.2866563Z           "evidence": []
2026-06-04T02:01:23.2867689Z         },
2026-06-04T02:01:23.2868636Z         "impl": {
2026-06-04T02:01:23.2869733Z           "complete": true,
2026-06-04T02:01:23.2870918Z           "evidence": [
2026-06-04T02:01:23.2872062Z             {
2026-06-04T02:01:23.2873266Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2874835Z               "line": 114
2026-06-04T02:01:23.2875951Z             },
2026-06-04T02:01:23.2876931Z             {
2026-06-04T02:01:23.2878140Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2879730Z               "line": 131
2026-06-04T02:01:23.2880846Z             },
2026-06-04T02:01:23.2881806Z             {
2026-06-04T02:01:23.2883003Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2884561Z               "line": 138
2026-06-04T02:01:23.2885673Z             }
2026-06-04T02:01:23.2886627Z           ]
2026-06-04T02:01:23.2887557Z         },
2026-06-04T02:01:23.2888488Z         "int": {
2026-06-04T02:01:23.2889806Z           "complete": false,
2026-06-04T02:01:23.2891051Z           "evidence": []
2026-06-04T02:01:23.2892160Z         },
2026-06-04T02:01:23.2893092Z         "unit": {
2026-06-04T02:01:23.2901272Z           "complete": true,
2026-06-04T02:01:23.2902794Z           "evidence": [
2026-06-04T02:01:23.2903901Z             {
2026-06-04T02:01:23.2905128Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2906692Z               "line": 193
2026-06-04T02:01:23.2907809Z             },
2026-06-04T02:01:23.2908779Z             {
2026-06-04T02:01:23.2910042Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2911624Z               "line": 211
2026-06-04T02:01:23.2912741Z             },
2026-06-04T02:01:23.2913722Z             {
2026-06-04T02:01:23.2914944Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-04T02:01:23.2916502Z               "line": 224
2026-06-04T02:01:23.2917620Z             }
2026-06-04T02:01:23.2918608Z           ]
2026-06-04T02:01:23.2919583Z         }
2026-06-04T02:01:23.2920504Z       }
2026-06-04T02:01:23.2921395Z     },
2026-06-04T02:01:23.2922297Z     {
2026-06-04T02:01:23.2922746Z       "id": "REQ-EP-3",
2026-06-04T02:01:23.2923846Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-04T02:01:23.2924328Z       "requiredStages": [
2026-06-04T02:01:23.2924755Z         "impl",
2026-06-04T02:01:23.2925162Z         "unit"
2026-06-04T02:01:23.2925571Z       ],
2026-06-04T02:01:23.2925992Z       "stages": {
2026-06-04T02:01:23.2926412Z         "doc": {
2026-06-04T02:01:23.2926874Z           "complete": false,
2026-06-04T02:01:23.2927330Z           "evidence": []
2026-06-04T02:01:23.2927745Z         },
2026-06-04T02:01:23.2928167Z         "impl": {
2026-06-04T02:01:23.2928633Z           "complete": true,
2026-06-04T02:01:23.2929072Z           "evidence": [
2026-06-04T02:01:23.2929518Z             {
2026-06-04T02:01:23.2930181Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2930623Z               "line": 31
2026-06-04T02:01:23.2931048Z             },
2026-06-04T02:01:23.2931455Z             {
2026-06-04T02:01:23.2932109Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2932554Z               "line": 49
2026-06-04T02:01:23.2932967Z             }
2026-06-04T02:01:23.2933370Z           ]
2026-06-04T02:01:23.2933774Z         },
2026-06-04T02:01:23.2934190Z         "int": {
2026-06-04T02:01:23.2934652Z           "complete": false,
2026-06-04T02:01:23.2935102Z           "evidence": []
2026-06-04T02:01:23.2935506Z         },
2026-06-04T02:01:23.2935928Z         "unit": {
2026-06-04T02:01:23.2936390Z           "complete": true,
2026-06-04T02:01:23.2936830Z           "evidence": [
2026-06-04T02:01:23.2937241Z             {
2026-06-04T02:01:23.2937886Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2938333Z               "line": 156
2026-06-04T02:01:23.2938738Z             },
2026-06-04T02:01:23.2939194Z             {
2026-06-04T02:01:23.2939848Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2940301Z               "line": 164
2026-06-04T02:01:23.2940711Z             },
2026-06-04T02:01:23.2941186Z             {
2026-06-04T02:01:23.2941849Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2942284Z               "line": 177
2026-06-04T02:01:23.2942700Z             },
2026-06-04T02:01:23.2943104Z             {
2026-06-04T02:01:23.2943753Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2944200Z               "line": 197
2026-06-04T02:01:23.2944610Z             },
2026-06-04T02:01:23.2945016Z             {
2026-06-04T02:01:23.2945652Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2946101Z               "line": 213
2026-06-04T02:01:23.2946520Z             },
2026-06-04T02:01:23.2946922Z             {
2026-06-04T02:01:23.2947577Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-04T02:01:23.2948191Z               "line": 227
2026-06-04T02:01:23.2948626Z             }
2026-06-04T02:01:23.2949029Z           ]
2026-06-04T02:01:23.2949482Z         }
2026-06-04T02:01:23.2949899Z       }
2026-06-04T02:01:23.2950301Z     },
2026-06-04T02:01:23.2950844Z     {
2026-06-04T02:01:23.2951286Z       "id": "REQ-EP-4",
2026-06-04T02:01:23.2952114Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-04T02:01:23.2952579Z       "requiredStages": [
2026-06-04T02:01:23.2953009Z         "impl",
2026-06-04T02:01:23.2953432Z         "unit"
2026-06-04T02:01:23.2953834Z       ],
2026-06-04T02:01:23.2954269Z       "stages": {
2026-06-04T02:01:23.2954689Z         "doc": {
2026-06-04T02:01:23.2955158Z           "complete": false,
2026-06-04T02:01:23.2955601Z           "evidence": []
2026-06-04T02:01:23.2956010Z         },
2026-06-04T02:01:23.2956426Z         "impl": {
2026-06-04T02:01:23.2956898Z           "complete": true,
2026-06-04T02:01:23.2957340Z           "evidence": [
2026-06-04T02:01:23.2957761Z             {
2026-06-04T02:01:23.2958380Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.2958818Z               "line": 404
2026-06-04T02:01:23.2959276Z             },
2026-06-04T02:01:23.2959698Z             {
2026-06-04T02:01:23.2960390Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.2960878Z               "line": 603
2026-06-04T02:01:23.2961287Z             },
2026-06-04T02:01:23.2961701Z             {
2026-06-04T02:01:23.2962345Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.2962800Z               "line": 671
2026-06-04T02:01:23.2963219Z             },
2026-06-04T02:01:23.2963620Z             {
2026-06-04T02:01:23.2964222Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2964660Z               "line": 83
2026-06-04T02:01:23.2965080Z             },
2026-06-04T02:01:23.2965493Z             {
2026-06-04T02:01:23.2966103Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2966573Z               "line": 372
2026-06-04T02:01:23.2966985Z             },
2026-06-04T02:01:23.2967403Z             {
2026-06-04T02:01:23.2967997Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2968461Z               "line": 443
2026-06-04T02:01:23.2968866Z             },
2026-06-04T02:01:23.2969320Z             {
2026-06-04T02:01:23.2969983Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2970431Z               "line": 181
2026-06-04T02:01:23.2970843Z             },
2026-06-04T02:01:23.2971258Z             {
2026-06-04T02:01:23.2971909Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2972350Z               "line": 300
2026-06-04T02:01:23.2972767Z             },
2026-06-04T02:01:23.2973180Z             {
2026-06-04T02:01:23.2973820Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-04T02:01:23.2974269Z               "line": 602
2026-06-04T02:01:23.2974670Z             }
2026-06-04T02:01:23.2975100Z           ]
2026-06-04T02:01:23.2975502Z         },
2026-06-04T02:01:23.2975921Z         "int": {
2026-06-04T02:01:23.2976387Z           "complete": false,
2026-06-04T02:01:23.2976834Z           "evidence": []
2026-06-04T02:01:23.2977263Z         },
2026-06-04T02:01:23.2977676Z         "unit": {
2026-06-04T02:01:23.2978134Z           "complete": true,
2026-06-04T02:01:23.2978574Z           "evidence": [
2026-06-04T02:01:23.2978984Z             {
2026-06-04T02:01:23.2979638Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-04T02:01:23.2980080Z               "line": 516
2026-06-04T02:01:23.2980520Z             },
2026-06-04T02:01:23.2980921Z             {
2026-06-04T02:01:23.2981617Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-04T02:01:23.2988640Z               "line": 75
2026-06-04T02:01:23.2989378Z             },
2026-06-04T02:01:23.2989812Z             {
2026-06-04T02:01:23.2990535Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-04T02:01:23.2991290Z               "line": 131
2026-06-04T02:01:23.2991721Z             }
2026-06-04T02:01:23.2992129Z           ]
2026-06-04T02:01:23.2992535Z         }
2026-06-04T02:01:23.2992948Z       }
2026-06-04T02:01:23.2993354Z     },
2026-06-04T02:01:23.2993913Z     {
2026-06-04T02:01:23.2994374Z       "id": "REQ-EP-5",
2026-06-04T02:01:23.2998918Z       "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-04T02:01:23.2999460Z       "requiredStages": [],
2026-06-04T02:01:23.2999892Z       "stages": {
2026-06-04T02:01:23.3000306Z         "doc": {
2026-06-04T02:01:23.3000779Z           "complete": false,
2026-06-04T02:01:23.3001223Z           "evidence": []
2026-06-04T02:01:23.3001633Z         },
2026-06-04T02:01:23.3002054Z         "impl": {
2026-06-04T02:01:23.3002523Z           "complete": false,
2026-06-04T02:01:23.3002991Z           "evidence": []
2026-06-04T02:01:23.3003396Z         },
2026-06-04T02:01:23.3003811Z         "int": {
2026-06-04T02:01:23.3004268Z           "complete": false,
2026-06-04T02:01:23.3004714Z           "evidence": []
2026-06-04T02:01:23.3005127Z         },
2026-06-04T02:01:23.3005551Z         "unit": {
2026-06-04T02:01:23.3006028Z           "complete": false,
2026-06-04T02:01:23.3006471Z           "evidence": []
2026-06-04T02:01:23.3006878Z         }
2026-06-04T02:01:23.3007276Z       }
2026-06-04T02:01:23.3007676Z     },
2026-06-04T02:01:23.3008068Z     {
2026-06-04T02:01:23.3008540Z       "id": "REQ-FRONT-1",
2026-06-04T02:01:23.3009599Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-04T02:01:23.3010076Z       "requiredStages": [],
2026-06-04T02:01:23.3010500Z       "stages": {
2026-06-04T02:01:23.3010912Z         "doc": {
2026-06-04T02:01:23.3011376Z           "complete": false,
2026-06-04T02:01:23.3011814Z           "evidence": []
2026-06-04T02:01:23.3012232Z         },
2026-06-04T02:01:23.3012654Z         "impl": {
2026-06-04T02:01:23.3013117Z           "complete": false,
2026-06-04T02:01:23.3013592Z           "evidence": []
2026-06-04T02:01:23.3014012Z         },
2026-06-04T02:01:23.3014450Z         "int": {
2026-06-04T02:01:23.3014905Z           "complete": false,
2026-06-04T02:01:23.3015358Z           "evidence": []
2026-06-04T02:01:23.3015765Z         },
2026-06-04T02:01:23.3016175Z         "unit": {
2026-06-04T02:01:23.3016646Z           "complete": false,
2026-06-04T02:01:23.3017085Z           "evidence": []
2026-06-04T02:01:23.3017496Z         }
2026-06-04T02:01:23.3017898Z       }
2026-06-04T02:01:23.3018318Z     },
2026-06-04T02:01:23.3018713Z     {
2026-06-04T02:01:23.3019362Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-04T02:01:23.3020388Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-04T02:01:23.3020872Z       "requiredStages": [
2026-06-04T02:01:23.3021307Z         "impl",
2026-06-04T02:01:23.3021744Z         "unit"
2026-06-04T02:01:23.3022176Z       ],
2026-06-04T02:01:23.3022617Z       "stages": {
2026-06-04T02:01:23.3023047Z         "doc": {
2026-06-04T02:01:23.3023529Z           "complete": false,
2026-06-04T02:01:23.3024003Z           "evidence": []
2026-06-04T02:01:23.3024426Z         },
2026-06-04T02:01:23.3024859Z         "impl": {
2026-06-04T02:01:23.3025341Z           "complete": true,
2026-06-04T02:01:23.3025804Z           "evidence": [
2026-06-04T02:01:23.3026222Z             {
2026-06-04T02:01:23.3026888Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.3027337Z               "line": 60
2026-06-04T02:01:23.3027799Z             },
2026-06-04T02:01:23.3028249Z             {
2026-06-04T02:01:23.3029438Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.3029984Z               "line": 18
2026-06-04T02:01:23.3030490Z             },
2026-06-04T02:01:23.3030978Z             {
2026-06-04T02:01:23.3032012Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.3032502Z               "line": 94
2026-06-04T02:01:23.3032924Z             }
2026-06-04T02:01:23.3033352Z           ]
2026-06-04T02:01:23.3033779Z         },
2026-06-04T02:01:23.3034210Z         "int": {
2026-06-04T02:01:23.3034858Z           "complete": false,
2026-06-04T02:01:23.3035317Z           "evidence": []
2026-06-04T02:01:23.3035748Z         },
2026-06-04T02:01:23.3036189Z         "unit": {
2026-06-04T02:01:23.3036678Z           "complete": true,
2026-06-04T02:01:23.3037139Z           "evidence": [
2026-06-04T02:01:23.3037560Z             {
2026-06-04T02:01:23.3038230Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.3038691Z               "line": 255
2026-06-04T02:01:23.3039128Z             },
2026-06-04T02:01:23.3039613Z             {
2026-06-04T02:01:23.3040244Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.3040709Z               "line": 152
2026-06-04T02:01:23.3041128Z             },
2026-06-04T02:01:23.3041650Z             {
2026-06-04T02:01:23.3042273Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.3042735Z               "line": 188
2026-06-04T02:01:23.3043165Z             }
2026-06-04T02:01:23.3043625Z           ]
2026-06-04T02:01:23.3044057Z         }
2026-06-04T02:01:23.3044472Z       }
2026-06-04T02:01:23.3044890Z     },
2026-06-04T02:01:23.3045300Z     {
2026-06-04T02:01:23.3045845Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-04T02:01:23.3047165Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-04T02:01:23.3047657Z       "requiredStages": [
2026-06-04T02:01:23.3048101Z         "impl",
2026-06-04T02:01:23.3048525Z         "unit"
2026-06-04T02:01:23.3048949Z       ],
2026-06-04T02:01:23.3049424Z       "stages": {
2026-06-04T02:01:23.3049862Z         "doc": {
2026-06-04T02:01:23.3050348Z           "complete": false,
2026-06-04T02:01:23.3050853Z           "evidence": []
2026-06-04T02:01:23.3051279Z         },
2026-06-04T02:01:23.3051723Z         "impl": {
2026-06-04T02:01:23.3052210Z           "complete": true,
2026-06-04T02:01:23.3052659Z           "evidence": [
2026-06-04T02:01:23.3053086Z             {
2026-06-04T02:01:23.3053711Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:01:23.3054196Z               "line": 164
2026-06-04T02:01:23.3054630Z             }
2026-06-04T02:01:23.3055048Z           ]
2026-06-04T02:01:23.3055477Z         },
2026-06-04T02:01:23.3055900Z         "int": {
2026-06-04T02:01:23.3056379Z           "complete": true,
2026-06-04T02:01:23.3056835Z           "evidence": [
2026-06-04T02:01:23.3057265Z             {
2026-06-04T02:01:23.3057891Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T02:01:23.3058336Z               "line": 44
2026-06-04T02:01:23.3058767Z             },
2026-06-04T02:01:23.3059221Z             {
2026-06-04T02:01:23.3059839Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-04T02:01:23.3060288Z               "line": 66
2026-06-04T02:01:23.3060820Z             }
2026-06-04T02:01:23.3061246Z           ]
2026-06-04T02:01:23.3061670Z         },
2026-06-04T02:01:23.3062117Z         "unit": {
2026-06-04T02:01:23.3062591Z           "complete": true,
2026-06-04T02:01:23.3063071Z           "evidence": [
2026-06-04T02:01:23.3063499Z             {
2026-06-04T02:01:23.3064123Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:01:23.3064594Z               "line": 181
2026-06-04T02:01:23.3065017Z             },
2026-06-04T02:01:23.3065440Z             {
2026-06-04T02:01:23.3066060Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:01:23.3066524Z               "line": 233
2026-06-04T02:01:23.3066945Z             },
2026-06-04T02:01:23.3067379Z             {
2026-06-04T02:01:23.3068006Z               "path": "crates/spt-term/src/reader.rs",
2026-06-04T02:01:23.3068460Z               "line": 261
2026-06-04T02:01:23.3068890Z             }
2026-06-04T02:01:23.3069348Z           ]
2026-06-04T02:01:23.3069779Z         }
2026-06-04T02:01:23.3070357Z       }
2026-06-04T02:01:23.3070799Z     },
2026-06-04T02:01:23.3071226Z     {
2026-06-04T02:01:23.3079441Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-04T02:01:23.3082424Z       "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-04T02:01:23.3083214Z       "requiredStages": [
2026-06-04T02:01:23.3083659Z         "impl",
2026-06-04T02:01:23.3084087Z         "unit",
2026-06-04T02:01:23.3084519Z         "int"
2026-06-04T02:01:23.3084939Z       ],
2026-06-04T02:01:23.3085373Z       "stages": {
2026-06-04T02:01:23.3085809Z         "doc": {
2026-06-04T02:01:23.3086291Z           "complete": false,
2026-06-04T02:01:23.3086766Z           "evidence": []
2026-06-04T02:01:23.3087186Z         },
2026-06-04T02:01:23.3087625Z         "impl": {
2026-06-04T02:01:23.3088106Z           "complete": true,
2026-06-04T02:01:23.3088553Z           "evidence": [
2026-06-04T02:01:23.3088998Z             {
2026-06-04T02:01:23.3089738Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3090204Z               "line": 133
2026-06-04T02:01:23.3090628Z             },
2026-06-04T02:01:23.3091068Z             {
2026-06-04T02:01:23.3091766Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3092216Z               "line": 152
2026-06-04T02:01:23.3092646Z             },
2026-06-04T02:01:23.3093067Z             {
2026-06-04T02:01:23.3093697Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.3094146Z               "line": 79
2026-06-04T02:01:23.3094584Z             },
2026-06-04T02:01:23.3095016Z             {
2026-06-04T02:01:23.3095604Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3096067Z               "line": 51
2026-06-04T02:01:23.3096487Z             },
2026-06-04T02:01:23.3096915Z             {
2026-06-04T02:01:23.3097524Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3097994Z               "line": 93
2026-06-04T02:01:23.3098429Z             },
2026-06-04T02:01:23.3098842Z             {
2026-06-04T02:01:23.3099539Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3100002Z               "line": 27
2026-06-04T02:01:23.3100429Z             },
2026-06-04T02:01:23.3100855Z             {
2026-06-04T02:01:23.3101507Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3101960Z               "line": 79
2026-06-04T02:01:23.3102377Z             },
2026-06-04T02:01:23.3102797Z             {
2026-06-04T02:01:23.3103454Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3103920Z               "line": 102
2026-06-04T02:01:23.3104345Z             },
2026-06-04T02:01:23.3104761Z             {
2026-06-04T02:01:23.3105424Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3105880Z               "line": 102
2026-06-04T02:01:23.3106304Z             }
2026-06-04T02:01:23.3106726Z           ]
2026-06-04T02:01:23.3107153Z         },
2026-06-04T02:01:23.3107586Z         "int": {
2026-06-04T02:01:23.3108061Z           "complete": true,
2026-06-04T02:01:23.3108521Z           "evidence": [
2026-06-04T02:01:23.3108948Z             {
2026-06-04T02:01:23.3109703Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-04T02:01:23.3110149Z               "line": 35
2026-06-04T02:01:23.3110571Z             }
2026-06-04T02:01:23.3110991Z           ]
2026-06-04T02:01:23.3111405Z         },
2026-06-04T02:01:23.3111837Z         "unit": {
2026-06-04T02:01:23.3112308Z           "complete": true,
2026-06-04T02:01:23.3112771Z           "evidence": [
2026-06-04T02:01:23.3113185Z             {
2026-06-04T02:01:23.3113863Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3114327Z               "line": 467
2026-06-04T02:01:23.3114752Z             },
2026-06-04T02:01:23.3115184Z             {
2026-06-04T02:01:23.3115960Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3116435Z               "line": 212
2026-06-04T02:01:23.3116862Z             },
2026-06-04T02:01:23.3117287Z             {
2026-06-04T02:01:23.3117948Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3118540Z               "line": 124
2026-06-04T02:01:23.3118970Z             },
2026-06-04T02:01:23.3119424Z             {
2026-06-04T02:01:23.3120086Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3120541Z               "line": 136
2026-06-04T02:01:23.3120967Z             },
2026-06-04T02:01:23.3121393Z             {
2026-06-04T02:01:23.3122052Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3122514Z               "line": 146
2026-06-04T02:01:23.3122932Z             },
2026-06-04T02:01:23.3123355Z             {
2026-06-04T02:01:23.3124003Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3124466Z               "line": 159
2026-06-04T02:01:23.3124905Z             },
2026-06-04T02:01:23.3125323Z             {
2026-06-04T02:01:23.3125986Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-04T02:01:23.3126435Z               "line": 171
2026-06-04T02:01:23.3126859Z             },
2026-06-04T02:01:23.3127286Z             {
2026-06-04T02:01:23.3127945Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3128403Z               "line": 201
2026-06-04T02:01:23.3128818Z             }
2026-06-04T02:01:23.3129275Z           ]
2026-06-04T02:01:23.3129689Z         }
2026-06-04T02:01:23.3130111Z       }
2026-06-04T02:01:23.3130520Z     },
2026-06-04T02:01:23.3131042Z     {
2026-06-04T02:01:23.3131710Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-04T02:01:23.3136163Z       "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-04T02:01:23.3136681Z       "requiredStages": [],
2026-06-04T02:01:23.3137110Z       "stages": {
2026-06-04T02:01:23.3137549Z         "doc": {
2026-06-04T02:01:23.3138025Z           "complete": false,
2026-06-04T02:01:23.3138487Z           "evidence": []
2026-06-04T02:01:23.3138914Z         },
2026-06-04T02:01:23.3139378Z         "impl": {
2026-06-04T02:01:23.3139856Z           "complete": false,
2026-06-04T02:01:23.3140307Z           "evidence": []
2026-06-04T02:01:23.3140735Z         },
2026-06-04T02:01:23.3141166Z         "int": {
2026-06-04T02:01:23.3141639Z           "complete": false,
2026-06-04T02:01:23.3142107Z           "evidence": []
2026-06-04T02:01:23.3142525Z         },
2026-06-04T02:01:23.3142962Z         "unit": {
2026-06-04T02:01:23.3143439Z           "complete": false,
2026-06-04T02:01:23.3143902Z           "evidence": []
2026-06-04T02:01:23.3144325Z         }
2026-06-04T02:01:23.3144736Z       }
2026-06-04T02:01:23.3145155Z     },
2026-06-04T02:01:23.3145561Z     {
2026-06-04T02:01:23.3146127Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-04T02:01:23.3147221Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-04T02:01:23.3147713Z       "requiredStages": [
2026-06-04T02:01:23.3148159Z         "impl",
2026-06-04T02:01:23.3148581Z         "unit"
2026-06-04T02:01:23.3148998Z       ],
2026-06-04T02:01:23.3149471Z       "stages": {
2026-06-04T02:01:23.3149905Z         "doc": {
2026-06-04T02:01:23.3150378Z           "complete": false,
2026-06-04T02:01:23.3150841Z           "evidence": []
2026-06-04T02:01:23.3151264Z         },
2026-06-04T02:01:23.3151695Z         "impl": {
2026-06-04T02:01:23.3152171Z           "complete": true,
2026-06-04T02:01:23.3152624Z           "evidence": [
2026-06-04T02:01:23.3153083Z             {
2026-06-04T02:01:23.3153764Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3154240Z               "line": 40
2026-06-04T02:01:23.3154674Z             },
2026-06-04T02:01:23.3155099Z             {
2026-06-04T02:01:23.3155909Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3156373Z               "line": 88
2026-06-04T02:01:23.3156801Z             },
2026-06-04T02:01:23.3157219Z             {
2026-06-04T02:01:23.3158028Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3158494Z               "line": 133
2026-06-04T02:01:23.3158914Z             },
2026-06-04T02:01:23.3159395Z             {
2026-06-04T02:01:23.3160014Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3160477Z               "line": 215
2026-06-04T02:01:23.3160893Z             }
2026-06-04T02:01:23.3161316Z           ]
2026-06-04T02:01:23.3161743Z         },
2026-06-04T02:01:23.3162172Z         "int": {
2026-06-04T02:01:23.3162650Z           "complete": false,
2026-06-04T02:01:23.3163104Z           "evidence": []
2026-06-04T02:01:23.3163530Z         },
2026-06-04T02:01:23.3163958Z         "unit": {
2026-06-04T02:01:23.3171114Z           "complete": true,
2026-06-04T02:01:23.3171732Z           "evidence": [
2026-06-04T02:01:23.3172165Z             {
2026-06-04T02:01:23.3172806Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3173257Z               "line": 250
2026-06-04T02:01:23.3173697Z             },
2026-06-04T02:01:23.3174113Z             {
2026-06-04T02:01:23.3174737Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3175195Z               "line": 296
2026-06-04T02:01:23.3175612Z             },
2026-06-04T02:01:23.3176036Z             {
2026-06-04T02:01:23.3176648Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3177104Z               "line": 337
2026-06-04T02:01:23.3177524Z             },
2026-06-04T02:01:23.3177949Z             {
2026-06-04T02:01:23.3178572Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3179027Z               "line": 356
2026-06-04T02:01:23.3179520Z             }
2026-06-04T02:01:23.3179942Z           ]
2026-06-04T02:01:23.3180365Z         }
2026-06-04T02:01:23.3180786Z       }
2026-06-04T02:01:23.3181204Z     },
2026-06-04T02:01:23.3181618Z     {
2026-06-04T02:01:23.3182248Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-04T02:01:23.3182932Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-04T02:01:23.3183424Z       "requiredStages": [
2026-06-04T02:01:23.3183860Z         "impl",
2026-06-04T02:01:23.3184283Z         "unit"
2026-06-04T02:01:23.3184702Z       ],
2026-06-04T02:01:23.3185141Z       "stages": {
2026-06-04T02:01:23.3185561Z         "doc": {
2026-06-04T02:01:23.3186038Z           "complete": false,
2026-06-04T02:01:23.3186491Z           "evidence": []
2026-06-04T02:01:23.3186914Z         },
2026-06-04T02:01:23.3187340Z         "impl": {
2026-06-04T02:01:23.3187821Z           "complete": true,
2026-06-04T02:01:23.3188273Z           "evidence": [
2026-06-04T02:01:23.3188692Z             {
2026-06-04T02:01:23.3189356Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3189820Z               "line": 101
2026-06-04T02:01:23.3190250Z             },
2026-06-04T02:01:23.3190658Z             {
2026-06-04T02:01:23.3191279Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3191734Z               "line": 126
2026-06-04T02:01:23.3192163Z             }
2026-06-04T02:01:23.3192585Z           ]
2026-06-04T02:01:23.3193002Z         },
2026-06-04T02:01:23.3193433Z         "int": {
2026-06-04T02:01:23.3193910Z           "complete": false,
2026-06-04T02:01:23.3194384Z           "evidence": []
2026-06-04T02:01:23.3194806Z         },
2026-06-04T02:01:23.3195229Z         "unit": {
2026-06-04T02:01:23.3195705Z           "complete": true,
2026-06-04T02:01:23.3196154Z           "evidence": [
2026-06-04T02:01:23.3196581Z             {
2026-06-04T02:01:23.3197204Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3197669Z               "line": 271
2026-06-04T02:01:23.3198100Z             },
2026-06-04T02:01:23.3198517Z             {
2026-06-04T02:01:23.3199435Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3199917Z               "line": 315
2026-06-04T02:01:23.3200347Z             }
2026-06-04T02:01:23.3200763Z           ]
2026-06-04T02:01:23.3201181Z         }
2026-06-04T02:01:23.3201746Z       }
2026-06-04T02:01:23.3202158Z     },
2026-06-04T02:01:23.3202576Z     {
2026-06-04T02:01:23.3203219Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-04T02:01:23.3204533Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-04T02:01:23.3205015Z       "requiredStages": [
2026-06-04T02:01:23.3205451Z         "impl",
2026-06-04T02:01:23.3205882Z         "unit"
2026-06-04T02:01:23.3206294Z       ],
2026-06-04T02:01:23.3206737Z       "stages": {
2026-06-04T02:01:23.3207161Z         "doc": {
2026-06-04T02:01:23.3207640Z           "complete": false,
2026-06-04T02:01:23.3208095Z           "evidence": []
2026-06-04T02:01:23.3208518Z         },
2026-06-04T02:01:23.3208956Z         "impl": {
2026-06-04T02:01:23.3209665Z           "complete": true,
2026-06-04T02:01:23.3210508Z           "evidence": [
2026-06-04T02:01:23.3211004Z             {
2026-06-04T02:01:23.3211763Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3212336Z               "line": 21
2026-06-04T02:01:23.3212882Z             },
2026-06-04T02:01:23.3213413Z             {
2026-06-04T02:01:23.3214144Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3214674Z               "line": 152
2026-06-04T02:01:23.3215152Z             }
2026-06-04T02:01:23.3215661Z           ]
2026-06-04T02:01:23.3216144Z         },
2026-06-04T02:01:23.3216638Z         "int": {
2026-06-04T02:01:23.3217186Z           "complete": false,
2026-06-04T02:01:23.3217675Z           "evidence": []
2026-06-04T02:01:23.3218132Z         },
2026-06-04T02:01:23.3218595Z         "unit": {
2026-06-04T02:01:23.3219094Z           "complete": true,
2026-06-04T02:01:23.3219819Z           "evidence": [
2026-06-04T02:01:23.3220264Z             {
2026-06-04T02:01:23.3220978Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3221473Z               "line": 169
2026-06-04T02:01:23.3221938Z             },
2026-06-04T02:01:23.3222379Z             {
2026-06-04T02:01:23.3223134Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3223614Z               "line": 176
2026-06-04T02:01:23.3224054Z             },
2026-06-04T02:01:23.3224480Z             {
2026-06-04T02:01:23.3225117Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3225575Z               "line": 185
2026-06-04T02:01:23.3225994Z             },
2026-06-04T02:01:23.3226418Z             {
2026-06-04T02:01:23.3227044Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3227501Z               "line": 194
2026-06-04T02:01:23.3227920Z             },
2026-06-04T02:01:23.3228348Z             {
2026-06-04T02:01:23.3228976Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3229496Z               "line": 203
2026-06-04T02:01:23.3229936Z             },
2026-06-04T02:01:23.3230356Z             {
2026-06-04T02:01:23.3230987Z               "path": "crates/spt-live/src/context.rs",
2026-06-04T02:01:23.3231442Z               "line": 212
2026-06-04T02:01:23.3231893Z             },
2026-06-04T02:01:23.3232319Z             {
2026-06-04T02:01:23.3232930Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.3233389Z               "line": 132
2026-06-04T02:01:23.3233810Z             },
2026-06-04T02:01:23.3234234Z             {
2026-06-04T02:01:23.3234855Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3235315Z               "line": 211
2026-06-04T02:01:23.3235739Z             }
2026-06-04T02:01:23.3236154Z           ]
2026-06-04T02:01:23.3236580Z         }
2026-06-04T02:01:23.3236997Z       }
2026-06-04T02:01:23.3237410Z     },
2026-06-04T02:01:23.3237814Z     {
2026-06-04T02:01:23.3238475Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-04T02:01:23.3239651Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-04T02:01:23.3240172Z       "requiredStages": [
2026-06-04T02:01:23.3240616Z         "impl",
2026-06-04T02:01:23.3241039Z         "unit"
2026-06-04T02:01:23.3241621Z       ],
2026-06-04T02:01:23.3242050Z       "stages": {
2026-06-04T02:01:23.3242481Z         "doc": {
2026-06-04T02:01:23.3242959Z           "complete": false,
2026-06-04T02:01:23.3243410Z           "evidence": []
2026-06-04T02:01:23.3243830Z         },
2026-06-04T02:01:23.3244260Z         "impl": {
2026-06-04T02:01:23.3244740Z           "complete": true,
2026-06-04T02:01:23.3245203Z           "evidence": [
2026-06-04T02:01:23.3245633Z             {
2026-06-04T02:01:23.3246240Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.3246688Z               "line": 25
2026-06-04T02:01:23.3247119Z             },
2026-06-04T02:01:23.3247536Z             {
2026-06-04T02:01:23.3248158Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.3248617Z               "line": 13
2026-06-04T02:01:23.3249045Z             },
2026-06-04T02:01:23.3257113Z             {
2026-06-04T02:01:23.3257859Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.3258365Z               "line": 78
2026-06-04T02:01:23.3258783Z             }
2026-06-04T02:01:23.3259287Z           ]
2026-06-04T02:01:23.3259704Z         },
2026-06-04T02:01:23.3260138Z         "int": {
2026-06-04T02:01:23.3260624Z           "complete": false,
2026-06-04T02:01:23.3261078Z           "evidence": []
2026-06-04T02:01:23.3261502Z         },
2026-06-04T02:01:23.3261928Z         "unit": {
2026-06-04T02:01:23.3262410Z           "complete": true,
2026-06-04T02:01:23.3262860Z           "evidence": [
2026-06-04T02:01:23.3263286Z             {
2026-06-04T02:01:23.3263894Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.3264344Z               "line": 180
2026-06-04T02:01:23.3264773Z             },
2026-06-04T02:01:23.3265189Z             {
2026-06-04T02:01:23.3265812Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.3266267Z               "line": 205
2026-06-04T02:01:23.3266696Z             },
2026-06-04T02:01:23.3267119Z             {
2026-06-04T02:01:23.3267746Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-04T02:01:23.3268204Z               "line": 96
2026-06-04T02:01:23.3268621Z             }
2026-06-04T02:01:23.3269039Z           ]
2026-06-04T02:01:23.3269489Z         }
2026-06-04T02:01:23.3269918Z       }
2026-06-04T02:01:23.3270334Z     },
2026-06-04T02:01:23.3270741Z     {
2026-06-04T02:01:23.3271297Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-04T02:01:23.3272262Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-04T02:01:23.3272751Z       "requiredStages": [
2026-06-04T02:01:23.3273181Z         "impl",
2026-06-04T02:01:23.3273619Z         "unit"
2026-06-04T02:01:23.3274048Z       ],
2026-06-04T02:01:23.3274476Z       "stages": {
2026-06-04T02:01:23.3274923Z         "doc": {
2026-06-04T02:01:23.3275397Z           "complete": false,
2026-06-04T02:01:23.3275862Z           "evidence": []
2026-06-04T02:01:23.3276276Z         },
2026-06-04T02:01:23.3276719Z         "impl": {
2026-06-04T02:01:23.3277207Z           "complete": true,
2026-06-04T02:01:23.3277662Z           "evidence": [
2026-06-04T02:01:23.3278101Z             {
2026-06-04T02:01:23.3278726Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3279215Z               "line": 48
2026-06-04T02:01:23.3279639Z             },
2026-06-04T02:01:23.3280065Z             {
2026-06-04T02:01:23.3280707Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3281152Z               "line": 55
2026-06-04T02:01:23.3281586Z             },
2026-06-04T02:01:23.3282003Z             {
2026-06-04T02:01:23.3282646Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3283093Z               "line": 74
2026-06-04T02:01:23.3283518Z             },
2026-06-04T02:01:23.3284205Z             {
2026-06-04T02:01:23.3284869Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3285330Z               "line": 91
2026-06-04T02:01:23.3285744Z             }
2026-06-04T02:01:23.3286167Z           ]
2026-06-04T02:01:23.3286728Z         },
2026-06-04T02:01:23.3287168Z         "int": {
2026-06-04T02:01:23.3287656Z           "complete": false,
2026-06-04T02:01:23.3288117Z           "evidence": []
2026-06-04T02:01:23.3288544Z         },
2026-06-04T02:01:23.3288969Z         "unit": {
2026-06-04T02:01:23.3289491Z           "complete": true,
2026-06-04T02:01:23.3289943Z           "evidence": [
2026-06-04T02:01:23.3290374Z             {
2026-06-04T02:01:23.3291016Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3291469Z               "line": 149
2026-06-04T02:01:23.3291898Z             },
2026-06-04T02:01:23.3292312Z             {
2026-06-04T02:01:23.3292956Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3293424Z               "line": 163
2026-06-04T02:01:23.3293857Z             },
2026-06-04T02:01:23.3294287Z             {
2026-06-04T02:01:23.3294912Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3295375Z               "line": 173
2026-06-04T02:01:23.3295806Z             },
2026-06-04T02:01:23.3296233Z             {
2026-06-04T02:01:23.3296855Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3297309Z               "line": 191
2026-06-04T02:01:23.3297733Z             },
2026-06-04T02:01:23.3298143Z             {
2026-06-04T02:01:23.3298774Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.3299260Z               "line": 204
2026-06-04T02:01:23.3299692Z             }
2026-06-04T02:01:23.3300115Z           ]
2026-06-04T02:01:23.3300530Z         }
2026-06-04T02:01:23.3300950Z       }
2026-06-04T02:01:23.3301357Z     },
2026-06-04T02:01:23.3301778Z     {
2026-06-04T02:01:23.3302414Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-04T02:01:23.3303540Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-04T02:01:23.3304034Z       "requiredStages": [
2026-06-04T02:01:23.3304461Z         "impl",
2026-06-04T02:01:23.3304899Z         "unit"
2026-06-04T02:01:23.3305329Z       ],
2026-06-04T02:01:23.3305773Z       "stages": {
2026-06-04T02:01:23.3306206Z         "doc": {
2026-06-04T02:01:23.3306690Z           "complete": false,
2026-06-04T02:01:23.3307155Z           "evidence": []
2026-06-04T02:01:23.3307564Z         },
2026-06-04T02:01:23.3307995Z         "impl": {
2026-06-04T02:01:23.3308461Z           "complete": true,
2026-06-04T02:01:23.3308919Z           "evidence": [
2026-06-04T02:01:23.3309367Z             {
2026-06-04T02:01:23.3310058Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3310513Z               "line": 264
2026-06-04T02:01:23.3310933Z             },
2026-06-04T02:01:23.3311360Z             {
2026-06-04T02:01:23.3311997Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3312454Z               "line": 26
2026-06-04T02:01:23.3312870Z             }
2026-06-04T02:01:23.3313293Z           ]
2026-06-04T02:01:23.3313714Z         },
2026-06-04T02:01:23.3314134Z         "int": {
2026-06-04T02:01:23.3314631Z           "complete": false,
2026-06-04T02:01:23.3315088Z           "evidence": []
2026-06-04T02:01:23.3315515Z         },
2026-06-04T02:01:23.3315937Z         "unit": {
2026-06-04T02:01:23.3316412Z           "complete": true,
2026-06-04T02:01:23.3316874Z           "evidence": [
2026-06-04T02:01:23.3317287Z             {
2026-06-04T02:01:23.3317924Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3318372Z               "line": 138
2026-06-04T02:01:23.3318801Z             },
2026-06-04T02:01:23.3319408Z             {
2026-06-04T02:01:23.3320073Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3320538Z               "line": 181
2026-06-04T02:01:23.3320954Z             }
2026-06-04T02:01:23.3321557Z           ]
2026-06-04T02:01:23.3321984Z         }
2026-06-04T02:01:23.3322403Z       }
2026-06-04T02:01:23.3322810Z     },
2026-06-04T02:01:23.3323221Z     {
2026-06-04T02:01:23.3323869Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-04T02:01:23.3324973Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-04T02:01:23.3325464Z       "requiredStages": [
2026-06-04T02:01:23.3325888Z         "impl",
2026-06-04T02:01:23.3326314Z         "unit"
2026-06-04T02:01:23.3326726Z       ],
2026-06-04T02:01:23.3327174Z       "stages": {
2026-06-04T02:01:23.3327610Z         "doc": {
2026-06-04T02:01:23.3328077Z           "complete": false,
2026-06-04T02:01:23.3328543Z           "evidence": []
2026-06-04T02:01:23.3328958Z         },
2026-06-04T02:01:23.3329554Z         "impl": {
2026-06-04T02:01:23.3330025Z           "complete": true,
2026-06-04T02:01:23.3330485Z           "evidence": [
2026-06-04T02:01:23.3330913Z             {
2026-06-04T02:01:23.3331598Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3332064Z               "line": 36
2026-06-04T02:01:23.3332483Z             },
2026-06-04T02:01:23.3332903Z             {
2026-06-04T02:01:23.3333561Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3334029Z               "line": 68
2026-06-04T02:01:23.3334455Z             }
2026-06-04T02:01:23.3334867Z           ]
2026-06-04T02:01:23.3335287Z         },
2026-06-04T02:01:23.3335704Z         "int": {
2026-06-04T02:01:23.3336188Z           "complete": false,
2026-06-04T02:01:23.3336642Z           "evidence": []
2026-06-04T02:01:23.3337067Z         },
2026-06-04T02:01:23.3337509Z         "unit": {
2026-06-04T02:01:23.3337975Z           "complete": true,
2026-06-04T02:01:23.3338435Z           "evidence": [
2026-06-04T02:01:23.3338848Z             {
2026-06-04T02:01:23.3346115Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3346682Z               "line": 143
2026-06-04T02:01:23.3347114Z             },
2026-06-04T02:01:23.3347573Z             {
2026-06-04T02:01:23.3348254Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3348717Z               "line": 160
2026-06-04T02:01:23.3349135Z             },
2026-06-04T02:01:23.3349655Z             {
2026-06-04T02:01:23.3350317Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3350781Z               "line": 168
2026-06-04T02:01:23.3351198Z             }
2026-06-04T02:01:23.3351622Z           ]
2026-06-04T02:01:23.3352042Z         }
2026-06-04T02:01:23.3352453Z       }
2026-06-04T02:01:23.3352870Z     },
2026-06-04T02:01:23.3353276Z     {
2026-06-04T02:01:23.3353926Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-04T02:01:23.3354939Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-04T02:01:23.3355427Z       "requiredStages": [
2026-06-04T02:01:23.3355860Z         "impl",
2026-06-04T02:01:23.3356281Z         "unit"
2026-06-04T02:01:23.3356706Z       ],
2026-06-04T02:01:23.3357151Z       "stages": {
2026-06-04T02:01:23.3357584Z         "doc": {
2026-06-04T02:01:23.3358058Z           "complete": false,
2026-06-04T02:01:23.3358524Z           "evidence": []
2026-06-04T02:01:23.3358954Z         },
2026-06-04T02:01:23.3359451Z         "impl": {
2026-06-04T02:01:23.3360102Z           "complete": true,
2026-06-04T02:01:23.3360736Z           "evidence": [
2026-06-04T02:01:23.3361164Z             {
2026-06-04T02:01:23.3361823Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3362291Z               "line": 107
2026-06-04T02:01:23.3362713Z             }
2026-06-04T02:01:23.3363125Z           ]
2026-06-04T02:01:23.3363554Z         },
2026-06-04T02:01:23.3363980Z         "int": {
2026-06-04T02:01:23.3364465Z           "complete": false,
2026-06-04T02:01:23.3364924Z           "evidence": []
2026-06-04T02:01:23.3365358Z         },
2026-06-04T02:01:23.3365797Z         "unit": {
2026-06-04T02:01:23.3366266Z           "complete": true,
2026-06-04T02:01:23.3366982Z           "evidence": [
2026-06-04T02:01:23.3367422Z             {
2026-06-04T02:01:23.3368094Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3368542Z               "line": 184
2026-06-04T02:01:23.3369120Z             },
2026-06-04T02:01:23.3369948Z             {
2026-06-04T02:01:23.3370614Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3371080Z               "line": 193
2026-06-04T02:01:23.3371497Z             },
2026-06-04T02:01:23.3371922Z             {
2026-06-04T02:01:23.3372580Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3373045Z               "line": 201
2026-06-04T02:01:23.3373469Z             },
2026-06-04T02:01:23.3373881Z             {
2026-06-04T02:01:23.3374554Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3375005Z               "line": 210
2026-06-04T02:01:23.3375431Z             },
2026-06-04T02:01:23.3375843Z             {
2026-06-04T02:01:23.3376534Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-04T02:01:23.3377006Z               "line": 219
2026-06-04T02:01:23.3377423Z             }
2026-06-04T02:01:23.3377852Z           ]
2026-06-04T02:01:23.3378269Z         }
2026-06-04T02:01:23.3378701Z       }
2026-06-04T02:01:23.3379110Z     },
2026-06-04T02:01:23.3379775Z     {
2026-06-04T02:01:23.3380542Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-04T02:01:23.3381466Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-04T02:01:23.3381961Z       "requiredStages": [
2026-06-04T02:01:23.3382387Z         "impl",
2026-06-04T02:01:23.3382814Z         "unit"
2026-06-04T02:01:23.3383227Z       ],
2026-06-04T02:01:23.3383674Z       "stages": {
2026-06-04T02:01:23.3384111Z         "doc": {
2026-06-04T02:01:23.3384590Z           "complete": false,
2026-06-04T02:01:23.3385060Z           "evidence": []
2026-06-04T02:01:23.3385475Z         },
2026-06-04T02:01:23.3385915Z         "impl": {
2026-06-04T02:01:23.3386400Z           "complete": true,
2026-06-04T02:01:23.3386864Z           "evidence": [
2026-06-04T02:01:23.3387283Z             {
2026-06-04T02:01:23.3387874Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3388326Z               "line": 14
2026-06-04T02:01:23.3388760Z             },
2026-06-04T02:01:23.3389220Z             {
2026-06-04T02:01:23.3390140Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3390599Z               "line": 62
2026-06-04T02:01:23.3391022Z             }
2026-06-04T02:01:23.3391435Z           ]
2026-06-04T02:01:23.3391854Z         },
2026-06-04T02:01:23.3392279Z         "int": {
2026-06-04T02:01:23.3392762Z           "complete": false,
2026-06-04T02:01:23.3393213Z           "evidence": []
2026-06-04T02:01:23.3393642Z         },
2026-06-04T02:01:23.3394076Z         "unit": {
2026-06-04T02:01:23.3394544Z           "complete": true,
2026-06-04T02:01:23.3395003Z           "evidence": [
2026-06-04T02:01:23.3395427Z             {
2026-06-04T02:01:23.3396045Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3396502Z               "line": 160
2026-06-04T02:01:23.3396934Z             },
2026-06-04T02:01:23.3397361Z             {
2026-06-04T02:01:23.3397938Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3398410Z               "line": 197
2026-06-04T02:01:23.3398830Z             },
2026-06-04T02:01:23.3399294Z             {
2026-06-04T02:01:23.3400072Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.3400540Z               "line": 213
2026-06-04T02:01:23.3400977Z             }
2026-06-04T02:01:23.3401402Z           ]
2026-06-04T02:01:23.3401839Z         }
2026-06-04T02:01:23.3402266Z       }
2026-06-04T02:01:23.3402699Z     },
2026-06-04T02:01:23.3403188Z     {
2026-06-04T02:01:23.3403895Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-04T02:01:23.3405463Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-04T02:01:23.3406133Z       "requiredStages": [
2026-06-04T02:01:23.3406605Z         "impl",
2026-06-04T02:01:23.3407030Z         "unit"
2026-06-04T02:01:23.3407458Z       ],
2026-06-04T02:01:23.3407889Z       "stages": {
2026-06-04T02:01:23.3408329Z         "doc": {
2026-06-04T02:01:23.3408974Z           "complete": false,
2026-06-04T02:01:23.3409490Z           "evidence": []
2026-06-04T02:01:23.3409920Z         },
2026-06-04T02:01:23.3410351Z         "impl": {
2026-06-04T02:01:23.3410835Z           "complete": true,
2026-06-04T02:01:23.3411286Z           "evidence": [
2026-06-04T02:01:23.3411718Z             {
2026-06-04T02:01:23.3412353Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3412798Z               "line": 76
2026-06-04T02:01:23.3413223Z             },
2026-06-04T02:01:23.3413641Z             {
2026-06-04T02:01:23.3414268Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3414718Z               "line": 163
2026-06-04T02:01:23.3415145Z             },
2026-06-04T02:01:23.3415570Z             {
2026-06-04T02:01:23.3416210Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3416676Z               "line": 229
2026-06-04T02:01:23.3417098Z             },
2026-06-04T02:01:23.3417528Z             {
2026-06-04T02:01:23.3418156Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3418624Z               "line": 265
2026-06-04T02:01:23.3419052Z             }
2026-06-04T02:01:23.3419507Z           ]
2026-06-04T02:01:23.3419939Z         },
2026-06-04T02:01:23.3420480Z         "int": {
2026-06-04T02:01:23.3420962Z           "complete": false,
2026-06-04T02:01:23.3421424Z           "evidence": []
2026-06-04T02:01:23.3421860Z         },
2026-06-04T02:01:23.3422301Z         "unit": {
2026-06-04T02:01:23.3422773Z           "complete": true,
2026-06-04T02:01:23.3423233Z           "evidence": [
2026-06-04T02:01:23.3423653Z             {
2026-06-04T02:01:23.3424287Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3424757Z               "line": 310
2026-06-04T02:01:23.3425190Z             },
2026-06-04T02:01:23.3425621Z             {
2026-06-04T02:01:23.3426242Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3426704Z               "line": 318
2026-06-04T02:01:23.3433719Z             },
2026-06-04T02:01:23.3434255Z             {
2026-06-04T02:01:23.3434901Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3435348Z               "line": 341
2026-06-04T02:01:23.3435757Z             },
2026-06-04T02:01:23.3436160Z             {
2026-06-04T02:01:23.3436777Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3437219Z               "line": 378
2026-06-04T02:01:23.3437626Z             },
2026-06-04T02:01:23.3438037Z             {
2026-06-04T02:01:23.3438641Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3439088Z               "line": 389
2026-06-04T02:01:23.3439562Z             },
2026-06-04T02:01:23.3439984Z             {
2026-06-04T02:01:23.3440628Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3441081Z               "line": 401
2026-06-04T02:01:23.3441487Z             },
2026-06-04T02:01:23.3441883Z             {
2026-06-04T02:01:23.3442497Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-04T02:01:23.3442948Z               "line": 413
2026-06-04T02:01:23.3443360Z             }
2026-06-04T02:01:23.3443756Z           ]
2026-06-04T02:01:23.3444164Z         }
2026-06-04T02:01:23.3444563Z       }
2026-06-04T02:01:23.3444980Z     },
2026-06-04T02:01:23.3445383Z     {
2026-06-04T02:01:23.3445907Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-04T02:01:23.3446713Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-04T02:01:23.3447178Z       "requiredStages": [
2026-06-04T02:01:23.3447595Z         "impl",
2026-06-04T02:01:23.3448005Z         "int"
2026-06-04T02:01:23.3448407Z       ],
2026-06-04T02:01:23.3448842Z       "stages": {
2026-06-04T02:01:23.3449296Z         "doc": {
2026-06-04T02:01:23.3450001Z           "complete": false,
2026-06-04T02:01:23.3450464Z           "evidence": []
2026-06-04T02:01:23.3450868Z         },
2026-06-04T02:01:23.3451289Z         "impl": {
2026-06-04T02:01:23.3451737Z           "complete": true,
2026-06-04T02:01:23.3452333Z           "evidence": [
2026-06-04T02:01:23.3452730Z             {
2026-06-04T02:01:23.3453354Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.3453793Z               "line": 22
2026-06-04T02:01:23.3454199Z             }
2026-06-04T02:01:23.3454610Z           ]
2026-06-04T02:01:23.3455008Z         },
2026-06-04T02:01:23.3455421Z         "int": {
2026-06-04T02:01:23.3455879Z           "complete": true,
2026-06-04T02:01:23.3456323Z           "evidence": [
2026-06-04T02:01:23.3456722Z             {
2026-06-04T02:01:23.3457387Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-04T02:01:23.3457827Z               "line": 18
2026-06-04T02:01:23.3458235Z             }
2026-06-04T02:01:23.3458644Z           ]
2026-06-04T02:01:23.3459056Z         },
2026-06-04T02:01:23.3459525Z         "unit": {
2026-06-04T02:01:23.3459984Z           "complete": false,
2026-06-04T02:01:23.3460439Z           "evidence": []
2026-06-04T02:01:23.3460842Z         }
2026-06-04T02:01:23.3461248Z       }
2026-06-04T02:01:23.3461644Z     },
2026-06-04T02:01:23.3462037Z     {
2026-06-04T02:01:23.3462643Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-04T02:01:23.3463745Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-04T02:01:23.3464229Z       "requiredStages": [
2026-06-04T02:01:23.3464646Z         "impl",
2026-06-04T02:01:23.3465051Z         "unit"
2026-06-04T02:01:23.3465455Z       ],
2026-06-04T02:01:23.3465877Z       "stages": {
2026-06-04T02:01:23.3466295Z         "doc": {
2026-06-04T02:01:23.3466754Z           "complete": false,
2026-06-04T02:01:23.3467206Z           "evidence": []
2026-06-04T02:01:23.3467620Z         },
2026-06-04T02:01:23.3468024Z         "impl": {
2026-06-04T02:01:23.3468499Z           "complete": true,
2026-06-04T02:01:23.3468936Z           "evidence": [
2026-06-04T02:01:23.3469386Z             {
2026-06-04T02:01:23.3470054Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3470504Z               "line": 263
2026-06-04T02:01:23.3470916Z             },
2026-06-04T02:01:23.3471309Z             {
2026-06-04T02:01:23.3471925Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3472350Z               "line": 27
2026-06-04T02:01:23.3472756Z             }
2026-06-04T02:01:23.3473152Z           ]
2026-06-04T02:01:23.3473560Z         },
2026-06-04T02:01:23.3473976Z         "int": {
2026-06-04T02:01:23.3474433Z           "complete": false,
2026-06-04T02:01:23.3474880Z           "evidence": []
2026-06-04T02:01:23.3475277Z         },
2026-06-04T02:01:23.3475696Z         "unit": {
2026-06-04T02:01:23.3476147Z           "complete": true,
2026-06-04T02:01:23.3476595Z           "evidence": [
2026-06-04T02:01:23.3477015Z             {
2026-06-04T02:01:23.3477674Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.3478114Z               "line": 561
2026-06-04T02:01:23.3478523Z             },
2026-06-04T02:01:23.3478927Z             {
2026-06-04T02:01:23.3479597Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.3480043Z               "line": 163
2026-06-04T02:01:23.3480452Z             }
2026-06-04T02:01:23.3480850Z           ]
2026-06-04T02:01:23.3481261Z         }
2026-06-04T02:01:23.3481656Z       }
2026-06-04T02:01:23.3482053Z     },
2026-06-04T02:01:23.3482440Z     {
2026-06-04T02:01:23.3483034Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-04T02:01:23.3483954Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-04T02:01:23.3484419Z       "requiredStages": [
2026-06-04T02:01:23.3484831Z         "impl",
2026-06-04T02:01:23.3485251Z         "unit"
2026-06-04T02:01:23.3485680Z       ],
2026-06-04T02:01:23.3486109Z       "stages": {
2026-06-04T02:01:23.3486744Z         "doc": {
2026-06-04T02:01:23.3487231Z           "complete": false,
2026-06-04T02:01:23.3487673Z           "evidence": []
2026-06-04T02:01:23.3488078Z         },
2026-06-04T02:01:23.3488493Z         "impl": {
2026-06-04T02:01:23.3489093Z           "complete": true,
2026-06-04T02:01:23.3489584Z           "evidence": [
2026-06-04T02:01:23.3489996Z             {
2026-06-04T02:01:23.3490624Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3491060Z               "line": 20
2026-06-04T02:01:23.3491471Z             },
2026-06-04T02:01:23.3491873Z             {
2026-06-04T02:01:23.3492494Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3492917Z               "line": 94
2026-06-04T02:01:23.3493331Z             },
2026-06-04T02:01:23.3493740Z             {
2026-06-04T02:01:23.3494404Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:01:23.3494843Z               "line": 70
2026-06-04T02:01:23.3495249Z             },
2026-06-04T02:01:23.3495669Z             {
2026-06-04T02:01:23.3496328Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:01:23.3496767Z               "line": 82
2026-06-04T02:01:23.3497173Z             }
2026-06-04T02:01:23.3497586Z           ]
2026-06-04T02:01:23.3497995Z         },
2026-06-04T02:01:23.3498402Z         "int": {
2026-06-04T02:01:23.3498870Z           "complete": false,
2026-06-04T02:01:23.3499346Z           "evidence": []
2026-06-04T02:01:23.3499765Z         },
2026-06-04T02:01:23.3500183Z         "unit": {
2026-06-04T02:01:23.3500630Z           "complete": true,
2026-06-04T02:01:23.3501069Z           "evidence": [
2026-06-04T02:01:23.3501467Z             {
2026-06-04T02:01:23.3502086Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3502525Z               "line": 139
2026-06-04T02:01:23.3502935Z             },
2026-06-04T02:01:23.3503344Z             {
2026-06-04T02:01:23.3503956Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3504412Z               "line": 162
2026-06-04T02:01:23.3504813Z             },
2026-06-04T02:01:23.3505224Z             {
2026-06-04T02:01:23.3505831Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3506293Z               "line": 173
2026-06-04T02:01:23.3506697Z             },
2026-06-04T02:01:23.3507094Z             {
2026-06-04T02:01:23.3507709Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3508149Z               "line": 189
2026-06-04T02:01:23.3508552Z             },
2026-06-04T02:01:23.3508949Z             {
2026-06-04T02:01:23.3509611Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-04T02:01:23.3510058Z               "line": 200
2026-06-04T02:01:23.3510459Z             },
2026-06-04T02:01:23.3510869Z             {
2026-06-04T02:01:23.3511533Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-04T02:01:23.3518299Z               "line": 139
2026-06-04T02:01:23.3518814Z             }
2026-06-04T02:01:23.3519415Z           ]
2026-06-04T02:01:23.3519835Z         }
2026-06-04T02:01:23.3520238Z       }
2026-06-04T02:01:23.3520631Z     },
2026-06-04T02:01:23.3521029Z     {
2026-06-04T02:01:23.3521556Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-04T02:01:23.3523110Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-04T02:01:23.3523586Z       "requiredStages": [
2026-06-04T02:01:23.3523998Z         "impl",
2026-06-04T02:01:23.3524406Z         "unit"
2026-06-04T02:01:23.3524800Z       ],
2026-06-04T02:01:23.3525224Z       "stages": {
2026-06-04T02:01:23.3525637Z         "doc": {
2026-06-04T02:01:23.3526090Z           "complete": true,
2026-06-04T02:01:23.3526525Z           "evidence": [
2026-06-04T02:01:23.3526920Z             {
2026-06-04T02:01:23.3527479Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:01:23.3527904Z               "line": 131
2026-06-04T02:01:23.3528308Z             }
2026-06-04T02:01:23.3528716Z           ]
2026-06-04T02:01:23.3529398Z         },
2026-06-04T02:01:23.3529843Z         "impl": {
2026-06-04T02:01:23.3530295Z           "complete": true,
2026-06-04T02:01:23.3530740Z           "evidence": [
2026-06-04T02:01:23.3531143Z             {
2026-06-04T02:01:23.3531875Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.3532311Z               "line": 50
2026-06-04T02:01:23.3532713Z             },
2026-06-04T02:01:23.3533114Z             {
2026-06-04T02:01:23.3533691Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3534134Z               "line": 17
2026-06-04T02:01:23.3534540Z             },
2026-06-04T02:01:23.3534942Z             {
2026-06-04T02:01:23.3535551Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.3535980Z               "line": 171
2026-06-04T02:01:23.3536389Z             },
2026-06-04T02:01:23.3536786Z             {
2026-06-04T02:01:23.3537404Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.3537858Z               "line": 259
2026-06-04T02:01:23.3538271Z             },
2026-06-04T02:01:23.3538670Z             {
2026-06-04T02:01:23.3539309Z               "path": "crates/spt/src/api/worker.rs",
2026-06-04T02:01:23.3539763Z               "line": 32
2026-06-04T02:01:23.3540194Z             }
2026-06-04T02:01:23.3540602Z           ]
2026-06-04T02:01:23.3541014Z         },
2026-06-04T02:01:23.3541423Z         "int": {
2026-06-04T02:01:23.3541885Z           "complete": false,
2026-06-04T02:01:23.3542320Z           "evidence": []
2026-06-04T02:01:23.3542721Z         },
2026-06-04T02:01:23.3543132Z         "unit": {
2026-06-04T02:01:23.3543593Z           "complete": true,
2026-06-04T02:01:23.3544025Z           "evidence": [
2026-06-04T02:01:23.3544432Z             {
2026-06-04T02:01:23.3545012Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3545441Z               "line": 94
2026-06-04T02:01:23.3545851Z             },
2026-06-04T02:01:23.3546248Z             {
2026-06-04T02:01:23.3546841Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3547284Z               "line": 111
2026-06-04T02:01:23.3547688Z             },
2026-06-04T02:01:23.3548101Z             {
2026-06-04T02:01:23.3548678Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3549131Z               "line": 124
2026-06-04T02:01:23.3549568Z             },
2026-06-04T02:01:23.3549977Z             {
2026-06-04T02:01:23.3550561Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3551000Z               "line": 134
2026-06-04T02:01:23.3551411Z             },
2026-06-04T02:01:23.3551809Z             {
2026-06-04T02:01:23.3552386Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3552817Z               "line": 142
2026-06-04T02:01:23.3553222Z             },
2026-06-04T02:01:23.3553631Z             {
2026-06-04T02:01:23.3554202Z               "path": "crates/spt-proto/src/id.rs",
2026-06-04T02:01:23.3554650Z               "line": 154
2026-06-04T02:01:23.3555060Z             }
2026-06-04T02:01:23.3555469Z           ]
2026-06-04T02:01:23.3555871Z         }
2026-06-04T02:01:23.3556285Z       }
2026-06-04T02:01:23.3556688Z     },
2026-06-04T02:01:23.3557076Z     {
2026-06-04T02:01:23.3557613Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-04T02:01:23.3558330Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-04T02:01:23.3558797Z       "requiredStages": [
2026-06-04T02:01:23.3559249Z         "impl",
2026-06-04T02:01:23.3559664Z         "unit"
2026-06-04T02:01:23.3560070Z       ],
2026-06-04T02:01:23.3560478Z       "stages": {
2026-06-04T02:01:23.3560889Z         "doc": {
2026-06-04T02:01:23.3561341Z           "complete": false,
2026-06-04T02:01:23.3561791Z           "evidence": []
2026-06-04T02:01:23.3562186Z         },
2026-06-04T02:01:23.3562611Z         "impl": {
2026-06-04T02:01:23.3563067Z           "complete": true,
2026-06-04T02:01:23.3563502Z           "evidence": [
2026-06-04T02:01:23.3563912Z             {
2026-06-04T02:01:23.3564686Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.3565155Z               "line": 93
2026-06-04T02:01:23.3565561Z             }
2026-06-04T02:01:23.3565972Z           ]
2026-06-04T02:01:23.3566379Z         },
2026-06-04T02:01:23.3566930Z         "int": {
2026-06-04T02:01:23.3567391Z           "complete": false,
2026-06-04T02:01:23.3567833Z           "evidence": []
2026-06-04T02:01:23.3568240Z         },
2026-06-04T02:01:23.3568649Z         "unit": {
2026-06-04T02:01:23.3569106Z           "complete": true,
2026-06-04T02:01:23.3569586Z           "evidence": [
2026-06-04T02:01:23.3569983Z             {
2026-06-04T02:01:23.3570608Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.3571045Z               "line": 190
2026-06-04T02:01:23.3571455Z             }
2026-06-04T02:01:23.3571854Z           ]
2026-06-04T02:01:23.3572257Z         }
2026-06-04T02:01:23.3572665Z       }
2026-06-04T02:01:23.3573056Z     },
2026-06-04T02:01:23.3573455Z     {
2026-06-04T02:01:23.3574042Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-04T02:01:23.3574889Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-04T02:01:23.3575354Z       "requiredStages": [
2026-06-04T02:01:23.3575764Z         "impl",
2026-06-04T02:01:23.3576193Z         "unit"
2026-06-04T02:01:23.3576588Z       ],
2026-06-04T02:01:23.3577009Z       "stages": {
2026-06-04T02:01:23.3577411Z         "doc": {
2026-06-04T02:01:23.3577881Z           "complete": false,
2026-06-04T02:01:23.3578328Z           "evidence": []
2026-06-04T02:01:23.3578735Z         },
2026-06-04T02:01:23.3579183Z         "impl": {
2026-06-04T02:01:23.3579639Z           "complete": true,
2026-06-04T02:01:23.3580077Z           "evidence": [
2026-06-04T02:01:23.3580474Z             {
2026-06-04T02:01:23.3581076Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3581610Z               "line": 120
2026-06-04T02:01:23.3582016Z             },
2026-06-04T02:01:23.3582419Z             {
2026-06-04T02:01:23.3583026Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3583465Z               "line": 131
2026-06-04T02:01:23.3583861Z             },
2026-06-04T02:01:23.3584264Z             {
2026-06-04T02:01:23.3584854Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3585317Z               "line": 149
2026-06-04T02:01:23.3585727Z             }
2026-06-04T02:01:23.3586124Z           ]
2026-06-04T02:01:23.3586526Z         },
2026-06-04T02:01:23.3586934Z         "int": {
2026-06-04T02:01:23.3587397Z           "complete": false,
2026-06-04T02:01:23.3587835Z           "evidence": []
2026-06-04T02:01:23.3588243Z         },
2026-06-04T02:01:23.3588667Z         "unit": {
2026-06-04T02:01:23.3589118Z           "complete": true,
2026-06-04T02:01:23.3589598Z           "evidence": [
2026-06-04T02:01:23.3590002Z             {
2026-06-04T02:01:23.3590602Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3591035Z               "line": 173
2026-06-04T02:01:23.3591459Z             },
2026-06-04T02:01:23.3591869Z             {
2026-06-04T02:01:23.3592461Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3592905Z               "line": 191
2026-06-04T02:01:23.3593301Z             },
2026-06-04T02:01:23.3599825Z             {
2026-06-04T02:01:23.3600528Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3600989Z               "line": 253
2026-06-04T02:01:23.3601402Z             },
2026-06-04T02:01:23.3601798Z             {
2026-06-04T02:01:23.3602399Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3602832Z               "line": 264
2026-06-04T02:01:23.3603245Z             },
2026-06-04T02:01:23.3603653Z             {
2026-06-04T02:01:23.3604246Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.3604686Z               "line": 277
2026-06-04T02:01:23.3605086Z             }
2026-06-04T02:01:23.3605494Z           ]
2026-06-04T02:01:23.3605886Z         }
2026-06-04T02:01:23.3606293Z       }
2026-06-04T02:01:23.3606970Z     },
2026-06-04T02:01:23.3607377Z     {
2026-06-04T02:01:23.3607922Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-04T02:01:23.3609312Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-04T02:01:23.3609938Z       "requiredStages": [
2026-06-04T02:01:23.3610347Z         "impl",
2026-06-04T02:01:23.3610762Z         "unit"
2026-06-04T02:01:23.3611171Z       ],
2026-06-04T02:01:23.3611585Z       "stages": {
2026-06-04T02:01:23.3611998Z         "doc": {
2026-06-04T02:01:23.3612453Z           "complete": false,
2026-06-04T02:01:23.3612904Z           "evidence": []
2026-06-04T02:01:23.3613302Z         },
2026-06-04T02:01:23.3613718Z         "impl": {
2026-06-04T02:01:23.3614178Z           "complete": true,
2026-06-04T02:01:23.3614609Z           "evidence": [
2026-06-04T02:01:23.3615017Z             {
2026-06-04T02:01:23.3615596Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3616029Z               "line": 14
2026-06-04T02:01:23.3616447Z             },
2026-06-04T02:01:23.3616854Z             {
2026-06-04T02:01:23.3617427Z               "path": "crates/spt/src/api/mod.rs",
2026-06-04T02:01:23.3617860Z               "line": 298
2026-06-04T02:01:23.3618283Z             }
2026-06-04T02:01:23.3618677Z           ]
2026-06-04T02:01:23.3619075Z         },
2026-06-04T02:01:23.3619518Z         "int": {
2026-06-04T02:01:23.3619985Z           "complete": false,
2026-06-04T02:01:23.3620526Z           "evidence": []
2026-06-04T02:01:23.3620918Z         },
2026-06-04T02:01:23.3621331Z         "unit": {
2026-06-04T02:01:23.3621777Z           "complete": true,
2026-06-04T02:01:23.3622219Z           "evidence": [
2026-06-04T02:01:23.3622611Z             {
2026-06-04T02:01:23.3623186Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3623630Z               "line": 130
2026-06-04T02:01:23.3624024Z             },
2026-06-04T02:01:23.3624433Z             {
2026-06-04T02:01:23.3625013Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3625454Z               "line": 138
2026-06-04T02:01:23.3625853Z             },
2026-06-04T02:01:23.3626262Z             {
2026-06-04T02:01:23.3626834Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3627282Z               "line": 146
2026-06-04T02:01:23.3627693Z             },
2026-06-04T02:01:23.3628093Z             {
2026-06-04T02:01:23.3628665Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3629098Z               "line": 154
2026-06-04T02:01:23.3629542Z             },
2026-06-04T02:01:23.3629950Z             {
2026-06-04T02:01:23.3630515Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3630956Z               "line": 162
2026-06-04T02:01:23.3631357Z             },
2026-06-04T02:01:23.3631759Z             {
2026-06-04T02:01:23.3632324Z               "path": "crates/spt/src/api/auth.rs",
2026-06-04T02:01:23.3632762Z               "line": 170
2026-06-04T02:01:23.3633175Z             }
2026-06-04T02:01:23.3633595Z           ]
2026-06-04T02:01:23.3633999Z         }
2026-06-04T02:01:23.3634395Z       }
2026-06-04T02:01:23.3634791Z     },
2026-06-04T02:01:23.3635179Z     {
2026-06-04T02:01:23.3635739Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-04T02:01:23.3641457Z       "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-04T02:01:23.3641938Z       "requiredStages": [
2026-06-04T02:01:23.3642361Z         "impl",
2026-06-04T02:01:23.3642765Z         "unit"
2026-06-04T02:01:23.3643166Z       ],
2026-06-04T02:01:23.3643588Z       "stages": {
2026-06-04T02:01:23.3643991Z         "doc": {
2026-06-04T02:01:23.3644450Z           "complete": false,
2026-06-04T02:01:23.3644889Z           "evidence": []
2026-06-04T02:01:23.3645295Z         },
2026-06-04T02:01:23.3645948Z         "impl": {
2026-06-04T02:01:23.3646428Z           "complete": true,
2026-06-04T02:01:23.3646868Z           "evidence": [
2026-06-04T02:01:23.3647266Z             {
2026-06-04T02:01:23.3648054Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3648636Z               "line": 34
2026-06-04T02:01:23.3649051Z             }
2026-06-04T02:01:23.3649494Z           ]
2026-06-04T02:01:23.3649898Z         },
2026-06-04T02:01:23.3650312Z         "int": {
2026-06-04T02:01:23.3650778Z           "complete": false,
2026-06-04T02:01:23.3651229Z           "evidence": []
2026-06-04T02:01:23.3651630Z         },
2026-06-04T02:01:23.3652052Z         "unit": {
2026-06-04T02:01:23.3652507Z           "complete": true,
2026-06-04T02:01:23.3652950Z           "evidence": [
2026-06-04T02:01:23.3653362Z             {
2026-06-04T02:01:23.3654142Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3654586Z               "line": 188
2026-06-04T02:01:23.3655006Z             },
2026-06-04T02:01:23.3655414Z             {
2026-06-04T02:01:23.3656190Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3656630Z               "line": 200
2026-06-04T02:01:23.3657047Z             },
2026-06-04T02:01:23.3657448Z             {
2026-06-04T02:01:23.3658223Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3658654Z               "line": 211
2026-06-04T02:01:23.3659064Z             },
2026-06-04T02:01:23.3659495Z             {
2026-06-04T02:01:23.3660282Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3660719Z               "line": 245
2026-06-04T02:01:23.3661117Z             },
2026-06-04T02:01:23.3661622Z             {
2026-06-04T02:01:23.3662399Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3662842Z               "line": 267
2026-06-04T02:01:23.3663241Z             },
2026-06-04T02:01:23.3663654Z             {
2026-06-04T02:01:23.3664445Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3664884Z               "line": 288
2026-06-04T02:01:23.3665292Z             },
2026-06-04T02:01:23.3665690Z             {
2026-06-04T02:01:23.3666486Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-04T02:01:23.3666932Z               "line": 304
2026-06-04T02:01:23.3667346Z             }
2026-06-04T02:01:23.3667748Z           ]
2026-06-04T02:01:23.3668142Z         }
2026-06-04T02:01:23.3668544Z       }
2026-06-04T02:01:23.3668940Z     },
2026-06-04T02:01:23.3669371Z     {
2026-06-04T02:01:23.3669942Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-04T02:01:23.3673542Z       "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-04T02:01:23.3674035Z       "requiredStages": [
2026-06-04T02:01:23.3674475Z         "impl",
2026-06-04T02:01:23.3674905Z         "unit"
2026-06-04T02:01:23.3675316Z       ],
2026-06-04T02:01:23.3675753Z       "stages": {
2026-06-04T02:01:23.3676187Z         "doc": {
2026-06-04T02:01:23.3676672Z           "complete": false,
2026-06-04T02:01:23.3677141Z           "evidence": []
2026-06-04T02:01:23.3677556Z         },
2026-06-04T02:01:23.3677987Z         "impl": {
2026-06-04T02:01:23.3678452Z           "complete": true,
2026-06-04T02:01:23.3678909Z           "evidence": [
2026-06-04T02:01:23.3679372Z             {
2026-06-04T02:01:23.3680040Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3680520Z               "line": 29
2026-06-04T02:01:23.3680942Z             },
2026-06-04T02:01:23.3681365Z             {
2026-06-04T02:01:23.3681992Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3682443Z               "line": 154
2026-06-04T02:01:23.3682867Z             },
2026-06-04T02:01:23.3683281Z             {
2026-06-04T02:01:23.3684087Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3684551Z               "line": 173
2026-06-04T02:01:23.3684980Z             },
2026-06-04T02:01:23.3685397Z             {
2026-06-04T02:01:23.3686177Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3686640Z               "line": 200
2026-06-04T02:01:23.3687061Z             }
2026-06-04T02:01:23.3693616Z           ]
2026-06-04T02:01:23.3694131Z         },
2026-06-04T02:01:23.3694561Z         "int": {
2026-06-04T02:01:23.3695037Z           "complete": false,
2026-06-04T02:01:23.3695484Z           "evidence": []
2026-06-04T02:01:23.3695883Z         },
2026-06-04T02:01:23.3696304Z         "unit": {
2026-06-04T02:01:23.3696769Z           "complete": true,
2026-06-04T02:01:23.3697212Z           "evidence": [
2026-06-04T02:01:23.3697617Z             {
2026-06-04T02:01:23.3698249Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3698697Z               "line": 276
2026-06-04T02:01:23.3699140Z             },
2026-06-04T02:01:23.3699637Z             {
2026-06-04T02:01:23.3700273Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3700714Z               "line": 291
2026-06-04T02:01:23.3701129Z             },
2026-06-04T02:01:23.3701532Z             {
2026-06-04T02:01:23.3702147Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3702581Z               "line": 310
2026-06-04T02:01:23.3702993Z             },
2026-06-04T02:01:23.3703386Z             {
2026-06-04T02:01:23.3703999Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3704427Z               "line": 326
2026-06-04T02:01:23.3704837Z             },
2026-06-04T02:01:23.3705251Z             {
2026-06-04T02:01:23.3705856Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3706296Z               "line": 376
2026-06-04T02:01:23.3706693Z             },
2026-06-04T02:01:23.3707100Z             {
2026-06-04T02:01:23.3707717Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3708161Z               "line": 390
2026-06-04T02:01:23.3708573Z             },
2026-06-04T02:01:23.3708971Z             {
2026-06-04T02:01:23.3709632Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3710078Z               "line": 401
2026-06-04T02:01:23.3710485Z             },
2026-06-04T02:01:23.3710884Z             {
2026-06-04T02:01:23.3711514Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.3711955Z               "line": 412
2026-06-04T02:01:23.3712352Z             }
2026-06-04T02:01:23.3712753Z           ]
2026-06-04T02:01:23.3713151Z         }
2026-06-04T02:01:23.3713550Z       }
2026-06-04T02:01:23.3713943Z     },
2026-06-04T02:01:23.3714351Z     {
2026-06-04T02:01:23.3714974Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-04T02:01:23.3719001Z       "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-04T02:01:23.3719527Z       "requiredStages": [
2026-06-04T02:01:23.3719944Z         "impl",
2026-06-04T02:01:23.3720352Z         "unit"
2026-06-04T02:01:23.3720781Z       ],
2026-06-04T02:01:23.3721197Z       "stages": {
2026-06-04T02:01:23.3721614Z         "doc": {
2026-06-04T02:01:23.3722066Z           "complete": false,
2026-06-04T02:01:23.3722505Z           "evidence": []
2026-06-04T02:01:23.3722899Z         },
2026-06-04T02:01:23.3723312Z         "impl": {
2026-06-04T02:01:23.3723767Z           "complete": true,
2026-06-04T02:01:23.3724195Z           "evidence": [
2026-06-04T02:01:23.3724597Z             {
2026-06-04T02:01:23.3725312Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3725756Z               "line": 27
2026-06-04T02:01:23.3726160Z             },
2026-06-04T02:01:23.3726566Z             {
2026-06-04T02:01:23.3727540Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3728003Z               "line": 110
2026-06-04T02:01:23.3728419Z             },
2026-06-04T02:01:23.3728818Z             {
2026-06-04T02:01:23.3729659Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3730268Z               "line": 153
2026-06-04T02:01:23.3730686Z             },
2026-06-04T02:01:23.3731094Z             {
2026-06-04T02:01:23.3731801Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3732246Z               "line": 182
2026-06-04T02:01:23.3732660Z             },
2026-06-04T02:01:23.3733064Z             {
2026-06-04T02:01:23.3733858Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3734292Z               "line": 31
2026-06-04T02:01:23.3734702Z             },
2026-06-04T02:01:23.3735097Z             {
2026-06-04T02:01:23.3735900Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3736347Z               "line": 113
2026-06-04T02:01:23.3736757Z             },
2026-06-04T02:01:23.3737167Z             {
2026-06-04T02:01:23.3737961Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3738399Z               "line": 138
2026-06-04T02:01:23.3738814Z             }
2026-06-04T02:01:23.3739264Z           ]
2026-06-04T02:01:23.3739663Z         },
2026-06-04T02:01:23.3740072Z         "int": {
2026-06-04T02:01:23.3740538Z           "complete": false,
2026-06-04T02:01:23.3740982Z           "evidence": []
2026-06-04T02:01:23.3741388Z         },
2026-06-04T02:01:23.3741794Z         "unit": {
2026-06-04T02:01:23.3742256Z           "complete": true,
2026-06-04T02:01:23.3742685Z           "evidence": [
2026-06-04T02:01:23.3743094Z             {
2026-06-04T02:01:23.3743819Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3744261Z               "line": 261
2026-06-04T02:01:23.3744675Z             },
2026-06-04T02:01:23.3745076Z             {
2026-06-04T02:01:23.3745817Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3746251Z               "line": 276
2026-06-04T02:01:23.3746662Z             },
2026-06-04T02:01:23.3747067Z             {
2026-06-04T02:01:23.3747784Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3748227Z               "line": 293
2026-06-04T02:01:23.3748625Z             },
2026-06-04T02:01:23.3749028Z             {
2026-06-04T02:01:23.3749773Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3750213Z               "line": 310
2026-06-04T02:01:23.3750623Z             },
2026-06-04T02:01:23.3751019Z             {
2026-06-04T02:01:23.3751737Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3752168Z               "line": 327
2026-06-04T02:01:23.3752578Z             },
2026-06-04T02:01:23.3752982Z             {
2026-06-04T02:01:23.3753695Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.3754155Z               "line": 366
2026-06-04T02:01:23.3754561Z             },
2026-06-04T02:01:23.3754970Z             {
2026-06-04T02:01:23.3755757Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3756211Z               "line": 179
2026-06-04T02:01:23.3756616Z             },
2026-06-04T02:01:23.3757027Z             {
2026-06-04T02:01:23.3757829Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3758262Z               "line": 194
2026-06-04T02:01:23.3758673Z             },
2026-06-04T02:01:23.3759074Z             {
2026-06-04T02:01:23.3759902Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3760345Z               "line": 204
2026-06-04T02:01:23.3760749Z             },
2026-06-04T02:01:23.3761158Z             {
2026-06-04T02:01:23.3761958Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3762398Z               "line": 259
2026-06-04T02:01:23.3762937Z             },
2026-06-04T02:01:23.3763357Z             {
2026-06-04T02:01:23.3764147Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3764578Z               "line": 269
2026-06-04T02:01:23.3765155Z             },
2026-06-04T02:01:23.3765549Z             {
2026-06-04T02:01:23.3766347Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.3766774Z               "line": 283
2026-06-04T02:01:23.3767183Z             }
2026-06-04T02:01:23.3767589Z           ]
2026-06-04T02:01:23.3767984Z         }
2026-06-04T02:01:23.3768385Z       }
2026-06-04T02:01:23.3768771Z     },
2026-06-04T02:01:23.3769214Z     {
2026-06-04T02:01:23.3769781Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-04T02:01:23.3770889Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-04T02:01:23.3771370Z       "requiredStages": [],
2026-06-04T02:01:23.3771787Z       "stages": {
2026-06-04T02:01:23.3772219Z         "doc": {
2026-06-04T02:01:23.3772682Z           "complete": false,
2026-06-04T02:01:23.3773135Z           "evidence": []
2026-06-04T02:01:23.3773530Z         },
2026-06-04T02:01:23.3773955Z         "impl": {
2026-06-04T02:01:23.3774436Z           "complete": false,
2026-06-04T02:01:23.3774872Z           "evidence": []
2026-06-04T02:01:23.3775276Z         },
2026-06-04T02:01:23.3775682Z         "int": {
2026-06-04T02:01:23.3782183Z           "complete": false,
2026-06-04T02:01:23.3782740Z           "evidence": []
2026-06-04T02:01:23.3783140Z         },
2026-06-04T02:01:23.3783562Z         "unit": {
2026-06-04T02:01:23.3784029Z           "complete": false,
2026-06-04T02:01:23.3784469Z           "evidence": []
2026-06-04T02:01:23.3784874Z         }
2026-06-04T02:01:23.3785268Z       }
2026-06-04T02:01:23.3785671Z     },
2026-06-04T02:01:23.3786071Z     {
2026-06-04T02:01:23.3786732Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-04T02:01:23.3799307Z       "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-04T02:01:23.3799873Z       "requiredStages": [],
2026-06-04T02:01:23.3800309Z       "stages": {
2026-06-04T02:01:23.3800725Z         "doc": {
2026-06-04T02:01:23.3801195Z           "complete": false,
2026-06-04T02:01:23.3801650Z           "evidence": []
2026-06-04T02:01:23.3802049Z         },
2026-06-04T02:01:23.3802475Z         "impl": {
2026-06-04T02:01:23.3802930Z           "complete": false,
2026-06-04T02:01:23.3803375Z           "evidence": []
2026-06-04T02:01:23.3803773Z         },
2026-06-04T02:01:23.3804184Z         "int": {
2026-06-04T02:01:23.3804649Z           "complete": false,
2026-06-04T02:01:23.3805082Z           "evidence": []
2026-06-04T02:01:23.3805489Z         },
2026-06-04T02:01:23.3805896Z         "unit": {
2026-06-04T02:01:23.3806357Z           "complete": false,
2026-06-04T02:01:23.3806828Z           "evidence": []
2026-06-04T02:01:23.3807237Z         }
2026-06-04T02:01:23.3807644Z       }
2026-06-04T02:01:23.3808034Z     },
2026-06-04T02:01:23.3808433Z     {
2026-06-04T02:01:23.3809015Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-04T02:01:23.3810643Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-04T02:01:23.3811115Z       "requiredStages": [
2026-06-04T02:01:23.3811532Z         "impl",
2026-06-04T02:01:23.3811945Z         "unit"
2026-06-04T02:01:23.3812345Z       ],
2026-06-04T02:01:23.3812768Z       "stages": {
2026-06-04T02:01:23.3813171Z         "doc": {
2026-06-04T02:01:23.3813633Z           "complete": true,
2026-06-04T02:01:23.3814065Z           "evidence": [
2026-06-04T02:01:23.3814477Z             {
2026-06-04T02:01:23.3815037Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:01:23.3815471Z               "line": 137
2026-06-04T02:01:23.3815882Z             }
2026-06-04T02:01:23.3816641Z           ]
2026-06-04T02:01:23.3817072Z         },
2026-06-04T02:01:23.3817495Z         "impl": {
2026-06-04T02:01:23.3817952Z           "complete": true,
2026-06-04T02:01:23.3818397Z           "evidence": [
2026-06-04T02:01:23.3818956Z             {
2026-06-04T02:01:23.3819596Z               "path": "crates/spt-store/src/db.rs",
2026-06-04T02:01:23.3820028Z               "line": 29
2026-06-04T02:01:23.3820441Z             },
2026-06-04T02:01:23.3820929Z             {
2026-06-04T02:01:23.3821581Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3822020Z               "line": 24
2026-06-04T02:01:23.3822425Z             },
2026-06-04T02:01:23.3822831Z             {
2026-06-04T02:01:23.3823434Z               "path": "crates/spt-store/src/spool.rs",
2026-06-04T02:01:23.3823876Z               "line": 48
2026-06-04T02:01:23.3824276Z             }
2026-06-04T02:01:23.3824687Z           ]
2026-06-04T02:01:23.3825110Z         },
2026-06-04T02:01:23.3825530Z         "int": {
2026-06-04T02:01:23.3826019Z           "complete": false,
2026-06-04T02:01:23.3826461Z           "evidence": []
2026-06-04T02:01:23.3826868Z         },
2026-06-04T02:01:23.3827283Z         "unit": {
2026-06-04T02:01:23.3827742Z           "complete": true,
2026-06-04T02:01:23.3828193Z           "evidence": [
2026-06-04T02:01:23.3828591Z             {
2026-06-04T02:01:23.3829278Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3829827Z               "line": 146
2026-06-04T02:01:23.3830238Z             }
2026-06-04T02:01:23.3830642Z           ]
2026-06-04T02:01:23.3831049Z         }
2026-06-04T02:01:23.3831457Z       }
2026-06-04T02:01:23.3831853Z     },
2026-06-04T02:01:23.3832255Z     {
2026-06-04T02:01:23.3832858Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-04T02:01:23.3835412Z       "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-04T02:01:23.3835903Z       "requiredStages": [
2026-06-04T02:01:23.3836325Z         "impl",
2026-06-04T02:01:23.3836736Z         "unit"
2026-06-04T02:01:23.3837129Z       ],
2026-06-04T02:01:23.3837549Z       "stages": {
2026-06-04T02:01:23.3837956Z         "doc": {
2026-06-04T02:01:23.3838430Z           "complete": true,
2026-06-04T02:01:23.3838866Z           "evidence": [
2026-06-04T02:01:23.3839314Z             {
2026-06-04T02:01:23.3839876Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-04T02:01:23.3840313Z               "line": 143
2026-06-04T02:01:23.3840717Z             }
2026-06-04T02:01:23.3841112Z           ]
2026-06-04T02:01:23.3841515Z         },
2026-06-04T02:01:23.3841928Z         "impl": {
2026-06-04T02:01:23.3842394Z           "complete": true,
2026-06-04T02:01:23.3842833Z           "evidence": [
2026-06-04T02:01:23.3843237Z             {
2026-06-04T02:01:23.3843904Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.3844340Z               "line": 117
2026-06-04T02:01:23.3844765Z             },
2026-06-04T02:01:23.3845163Z             {
2026-06-04T02:01:23.3845774Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:01:23.3846212Z               "line": 15
2026-06-04T02:01:23.3846613Z             }
2026-06-04T02:01:23.3847034Z           ]
2026-06-04T02:01:23.3847429Z         },
2026-06-04T02:01:23.3847840Z         "int": {
2026-06-04T02:01:23.3848293Z           "complete": false,
2026-06-04T02:01:23.3848742Z           "evidence": []
2026-06-04T02:01:23.3849145Z         },
2026-06-04T02:01:23.3849639Z         "unit": {
2026-06-04T02:01:23.3850106Z           "complete": true,
2026-06-04T02:01:23.3850543Z           "evidence": [
2026-06-04T02:01:23.3850952Z             {
2026-06-04T02:01:23.3851641Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-04T02:01:23.3852089Z               "line": 87
2026-06-04T02:01:23.3852497Z             },
2026-06-04T02:01:23.3852893Z             {
2026-06-04T02:01:23.3853728Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.3854193Z               "line": 508
2026-06-04T02:01:23.3854608Z             },
2026-06-04T02:01:23.3855011Z             {
2026-06-04T02:01:23.3855672Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.3856278Z               "line": 527
2026-06-04T02:01:23.3856684Z             },
2026-06-04T02:01:23.3857092Z             {
2026-06-04T02:01:23.3857762Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.3858204Z               "line": 181
2026-06-04T02:01:23.3858608Z             },
2026-06-04T02:01:23.3859024Z             {
2026-06-04T02:01:23.3859679Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:01:23.3860106Z               "line": 74
2026-06-04T02:01:23.3860516Z             },
2026-06-04T02:01:23.3860910Z             {
2026-06-04T02:01:23.3861519Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:01:23.3861958Z               "line": 88
2026-06-04T02:01:23.3862363Z             },
2026-06-04T02:01:23.3862788Z             {
2026-06-04T02:01:23.3863397Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-04T02:01:23.3863839Z               "line": 104
2026-06-04T02:01:23.3864237Z             }
2026-06-04T02:01:23.3864663Z           ]
2026-06-04T02:01:23.3865075Z         }
2026-06-04T02:01:23.3865471Z       }
2026-06-04T02:01:23.3865868Z     },
2026-06-04T02:01:23.3866255Z     {
2026-06-04T02:01:23.3866877Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-04T02:01:23.3867986Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-04T02:01:23.3868465Z       "requiredStages": [
2026-06-04T02:01:23.3868886Z         "impl",
2026-06-04T02:01:23.3869340Z         "unit"
2026-06-04T02:01:23.3869764Z       ],
2026-06-04T02:01:23.3870196Z       "stages": {
2026-06-04T02:01:23.3870608Z         "doc": {
2026-06-04T02:01:23.3871065Z           "complete": false,
2026-06-04T02:01:23.3871519Z           "evidence": []
2026-06-04T02:01:23.3871925Z         },
2026-06-04T02:01:23.3872354Z         "impl": {
2026-06-04T02:01:23.3872817Z           "complete": true,
2026-06-04T02:01:23.3873256Z           "evidence": [
2026-06-04T02:01:23.3873665Z             {
2026-06-04T02:01:23.3882018Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:01:23.3882996Z               "line": 15
2026-06-04T02:01:23.3883622Z             },
2026-06-04T02:01:23.3884878Z             {
2026-06-04T02:01:23.3886153Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3887777Z               "line": 49
2026-06-04T02:01:23.3888964Z             },
2026-06-04T02:01:23.3890547Z             {
2026-06-04T02:01:23.3892072Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3893940Z               "line": 56
2026-06-04T02:01:23.3895255Z             },
2026-06-04T02:01:23.3896484Z             {
2026-06-04T02:01:23.3897864Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3899697Z               "line": 101
2026-06-04T02:01:23.3901143Z             },
2026-06-04T02:01:23.3902333Z             {
2026-06-04T02:01:23.3903555Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3905496Z               "line": 122
2026-06-04T02:01:23.3906648Z             }
2026-06-04T02:01:23.3907815Z           ]
2026-06-04T02:01:23.3908945Z         },
2026-06-04T02:01:23.3910017Z         "int": {
2026-06-04T02:01:23.3911314Z           "complete": false,
2026-06-04T02:01:23.3912929Z           "evidence": []
2026-06-04T02:01:23.3914060Z         },
2026-06-04T02:01:23.3915025Z         "unit": {
2026-06-04T02:01:23.3916099Z           "complete": true,
2026-06-04T02:01:23.3917288Z           "evidence": [
2026-06-04T02:01:23.3918389Z             {
2026-06-04T02:01:23.3919609Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:01:23.3921148Z               "line": 113
2026-06-04T02:01:23.3922282Z             },
2026-06-04T02:01:23.3923273Z             {
2026-06-04T02:01:23.3924776Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:01:23.3926357Z               "line": 119
2026-06-04T02:01:23.3927810Z             },
2026-06-04T02:01:23.3928799Z             {
2026-06-04T02:01:23.3930015Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:01:23.3931744Z               "line": 130
2026-06-04T02:01:23.3932904Z             },
2026-06-04T02:01:23.3933890Z             {
2026-06-04T02:01:23.3935104Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3936678Z               "line": 177
2026-06-04T02:01:23.3937813Z             },
2026-06-04T02:01:23.3938814Z             {
2026-06-04T02:01:23.3940075Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3941658Z               "line": 187
2026-06-04T02:01:23.3942790Z             },
2026-06-04T02:01:23.3943798Z             {
2026-06-04T02:01:23.3945013Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3946577Z               "line": 231
2026-06-04T02:01:23.3947731Z             },
2026-06-04T02:01:23.3948729Z             {
2026-06-04T02:01:23.3949997Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3951610Z               "line": 243
2026-06-04T02:01:23.3952764Z             },
2026-06-04T02:01:23.3953781Z             {
2026-06-04T02:01:23.3955001Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.3956566Z               "line": 251
2026-06-04T02:01:23.3957697Z             }
2026-06-04T02:01:23.3958679Z           ]
2026-06-04T02:01:23.3959659Z         }
2026-06-04T02:01:23.3960679Z       }
2026-06-04T02:01:23.3961602Z     },
2026-06-04T02:01:23.3962532Z     {
2026-06-04T02:01:23.3963641Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-04T02:01:23.3966317Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-04T02:01:23.3968923Z       "requiredStages": [
2026-06-04T02:01:23.3970151Z         "impl",
2026-06-04T02:01:23.3971166Z         "unit",
2026-06-04T02:01:23.3972185Z         "int"
2026-06-04T02:01:23.3973176Z       ],
2026-06-04T02:01:23.3974123Z       "stages": {
2026-06-04T02:01:23.3975158Z         "doc": {
2026-06-04T02:01:23.3976231Z           "complete": false,
2026-06-04T02:01:23.3977480Z           "evidence": []
2026-06-04T02:01:23.3987297Z         },
2026-06-04T02:01:23.3988507Z         "impl": {
2026-06-04T02:01:23.3989711Z           "complete": true,
2026-06-04T02:01:23.3990909Z           "evidence": [
2026-06-04T02:01:23.3991997Z             {
2026-06-04T02:01:23.3993176Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.3994731Z               "line": 236
2026-06-04T02:01:23.3995873Z             },
2026-06-04T02:01:23.3996870Z             {
2026-06-04T02:01:23.3998063Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.3999660Z               "line": 491
2026-06-04T02:01:23.4000830Z             },
2026-06-04T02:01:23.4001828Z             {
2026-06-04T02:01:23.4003080Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.4004641Z               "line": 514
2026-06-04T02:01:23.4005782Z             },
2026-06-04T02:01:23.4006787Z             {
2026-06-04T02:01:23.4007978Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.4009577Z               "line": 538
2026-06-04T02:01:23.4010723Z             },
2026-06-04T02:01:23.4011716Z             {
2026-06-04T02:01:23.4012927Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.4014478Z               "line": 438
2026-06-04T02:01:23.4015608Z             },
2026-06-04T02:01:23.4016607Z             {
2026-06-04T02:01:23.4017818Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.4019414Z               "line": 519
2026-06-04T02:01:23.4020545Z             },
2026-06-04T02:01:23.4021533Z             {
2026-06-04T02:01:23.4022744Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.4024302Z               "line": 563
2026-06-04T02:01:23.4025860Z             },
2026-06-04T02:01:23.4026910Z             {
2026-06-04T02:01:23.4028135Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-04T02:01:23.4029740Z               "line": 606
2026-06-04T02:01:23.4031047Z             },
2026-06-04T02:01:23.4032050Z             {
2026-06-04T02:01:23.4033271Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.4034823Z               "line": 46
2026-06-04T02:01:23.4035942Z             },
2026-06-04T02:01:23.4036934Z             {
2026-06-04T02:01:23.4038162Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.4039750Z               "line": 160
2026-06-04T02:01:23.4040884Z             }
2026-06-04T02:01:23.4041848Z           ]
2026-06-04T02:01:23.4042807Z         },
2026-06-04T02:01:23.4043763Z         "int": {
2026-06-04T02:01:23.4044822Z           "complete": true,
2026-06-04T02:01:23.4046027Z           "evidence": [
2026-06-04T02:01:23.4047137Z             {
2026-06-04T02:01:23.4048439Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-04T02:01:23.4050201Z               "line": 27
2026-06-04T02:01:23.4051325Z             },
2026-06-04T02:01:23.4052315Z             {
2026-06-04T02:01:23.4053574Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-04T02:01:23.4055213Z               "line": 125
2026-06-04T02:01:23.4056348Z             },
2026-06-04T02:01:23.4057345Z             {
2026-06-04T02:01:23.4058618Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-04T02:01:23.4060279Z               "line": 189
2026-06-04T02:01:23.4061399Z             }
2026-06-04T02:01:23.4062374Z           ]
2026-06-04T02:01:23.4063316Z         },
2026-06-04T02:01:23.4064274Z         "unit": {
2026-06-04T02:01:23.4065358Z           "complete": true,
2026-06-04T02:01:23.4066606Z           "evidence": [
2026-06-04T02:01:23.4067722Z             {
2026-06-04T02:01:23.4068922Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.4070548Z               "line": 282
2026-06-04T02:01:23.4071690Z             },
2026-06-04T02:01:23.4072683Z             {
2026-06-04T02:01:23.4073895Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.4075454Z               "line": 300
2026-06-04T02:01:23.4076610Z             },
2026-06-04T02:01:23.4077612Z             {
2026-06-04T02:01:23.4078828Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-04T02:01:23.4080426Z               "line": 318
2026-06-04T02:01:23.4081568Z             }
2026-06-04T02:01:23.4082547Z           ]
2026-06-04T02:01:23.4083494Z         }
2026-06-04T02:01:23.4084424Z       }
2026-06-04T02:01:23.4085345Z     },
2026-06-04T02:01:23.4086281Z     {
2026-06-04T02:01:23.4087407Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-04T02:01:23.4089553Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-04T02:01:23.4091618Z       "requiredStages": [
2026-06-04T02:01:23.4092779Z         "impl",
2026-06-04T02:01:23.4093803Z         "unit"
2026-06-04T02:01:23.4094797Z       ],
2026-06-04T02:01:23.4095753Z       "stages": {
2026-06-04T02:01:23.4096787Z         "doc": {
2026-06-04T02:01:23.4097855Z           "complete": false,
2026-06-04T02:01:23.4099103Z           "evidence": []
2026-06-04T02:01:23.4100287Z         },
2026-06-04T02:01:23.4101271Z         "impl": {
2026-06-04T02:01:23.4102331Z           "complete": true,
2026-06-04T02:01:23.4103537Z           "evidence": [
2026-06-04T02:01:23.4104634Z             {
2026-06-04T02:01:23.4105808Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4107333Z               "line": 33
2026-06-04T02:01:23.4108470Z             },
2026-06-04T02:01:23.4116010Z             {
2026-06-04T02:01:23.4117357Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4118899Z               "line": 61
2026-06-04T02:01:23.4120143Z             },
2026-06-04T02:01:23.4121140Z             {
2026-06-04T02:01:23.4122323Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4124124Z               "line": 70
2026-06-04T02:01:23.4125287Z             },
2026-06-04T02:01:23.4126272Z             {
2026-06-04T02:01:23.4127452Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4129201Z               "line": 79
2026-06-04T02:01:23.4130324Z             },
2026-06-04T02:01:23.4131318Z             {
2026-06-04T02:01:23.4132489Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4134000Z               "line": 88
2026-06-04T02:01:23.4135110Z             },
2026-06-04T02:01:23.4136092Z             {
2026-06-04T02:01:23.4137272Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4138790Z               "line": 96
2026-06-04T02:01:23.4139957Z             },
2026-06-04T02:01:23.4140943Z             {
2026-06-04T02:01:23.4142146Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4143673Z               "line": 105
2026-06-04T02:01:23.4144797Z             },
2026-06-04T02:01:23.4145803Z             {
2026-06-04T02:01:23.4146975Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4148494Z               "line": 112
2026-06-04T02:01:23.4149671Z             },
2026-06-04T02:01:23.4150654Z             {
2026-06-04T02:01:23.4151839Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4153368Z               "line": 119
2026-06-04T02:01:23.4154500Z             },
2026-06-04T02:01:23.4155494Z             {
2026-06-04T02:01:23.4156666Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4158181Z               "line": 186
2026-06-04T02:01:23.4159340Z             },
2026-06-04T02:01:23.4160345Z             {
2026-06-04T02:01:23.4161530Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4163066Z               "line": 198
2026-06-04T02:01:23.4165053Z             },
2026-06-04T02:01:23.4166128Z             {
2026-06-04T02:01:23.4167314Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4168867Z               "line": 285
2026-06-04T02:01:23.4170152Z             }
2026-06-04T02:01:23.4171160Z           ]
2026-06-04T02:01:23.4172105Z         },
2026-06-04T02:01:23.4173059Z         "int": {
2026-06-04T02:01:23.4174138Z           "complete": false,
2026-06-04T02:01:23.4175374Z           "evidence": []
2026-06-04T02:01:23.4176510Z         },
2026-06-04T02:01:23.4177465Z         "unit": {
2026-06-04T02:01:23.4178522Z           "complete": true,
2026-06-04T02:01:23.4179767Z           "evidence": [
2026-06-04T02:01:23.4180876Z             {
2026-06-04T02:01:23.4182057Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4183598Z               "line": 355
2026-06-04T02:01:23.4184737Z             },
2026-06-04T02:01:23.4185725Z             {
2026-06-04T02:01:23.4186898Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4188428Z               "line": 381
2026-06-04T02:01:23.4189604Z             },
2026-06-04T02:01:23.4190602Z             {
2026-06-04T02:01:23.4191799Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4193331Z               "line": 394
2026-06-04T02:01:23.4194462Z             },
2026-06-04T02:01:23.4195447Z             {
2026-06-04T02:01:23.4196631Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4198162Z               "line": 436
2026-06-04T02:01:23.4199318Z             }
2026-06-04T02:01:23.4200312Z           ]
2026-06-04T02:01:23.4201257Z         }
2026-06-04T02:01:23.4202188Z       }
2026-06-04T02:01:23.4203110Z     },
2026-06-04T02:01:23.4204031Z     {
2026-06-04T02:01:23.4205077Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-04T02:01:23.4207140Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-04T02:01:23.4209258Z       "requiredStages": [
2026-06-04T02:01:23.4210444Z         "impl",
2026-06-04T02:01:23.4211471Z         "unit"
2026-06-04T02:01:23.4212450Z       ],
2026-06-04T02:01:23.4213387Z       "stages": {
2026-06-04T02:01:23.4214644Z         "doc": {
2026-06-04T02:01:23.4221682Z           "complete": false,
2026-06-04T02:01:23.4223023Z           "evidence": []
2026-06-04T02:01:23.4224159Z         },
2026-06-04T02:01:23.4225116Z         "impl": {
2026-06-04T02:01:23.4226449Z           "complete": true,
2026-06-04T02:01:23.4227657Z           "evidence": [
2026-06-04T02:01:23.4228753Z             {
2026-06-04T02:01:23.4229962Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.4231468Z               "line": 107
2026-06-04T02:01:23.4232602Z             },
2026-06-04T02:01:23.4233595Z             {
2026-06-04T02:01:23.4234812Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.4236354Z               "line": 59
2026-06-04T02:01:23.4237476Z             }
2026-06-04T02:01:23.4238456Z           ]
2026-06-04T02:01:23.4239439Z         },
2026-06-04T02:01:23.4240383Z         "int": {
2026-06-04T02:01:23.4241449Z           "complete": false,
2026-06-04T02:01:23.4242670Z           "evidence": []
2026-06-04T02:01:23.4243808Z         },
2026-06-04T02:01:23.4244773Z         "unit": {
2026-06-04T02:01:23.4245834Z           "complete": true,
2026-06-04T02:01:23.4247035Z           "evidence": [
2026-06-04T02:01:23.4248118Z             {
2026-06-04T02:01:23.4249321Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.4250831Z               "line": 225
2026-06-04T02:01:23.4251965Z             },
2026-06-04T02:01:23.4252955Z             {
2026-06-04T02:01:23.4254158Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.4255707Z               "line": 237
2026-06-04T02:01:23.4256838Z             },
2026-06-04T02:01:23.4257835Z             {
2026-06-04T02:01:23.4259038Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.4262495Z               "line": 247
2026-06-04T02:01:23.4263642Z             }
2026-06-04T02:01:23.4264621Z           ]
2026-06-04T02:01:23.4265562Z         }
2026-06-04T02:01:23.4266494Z       }
2026-06-04T02:01:23.4267410Z     },
2026-06-04T02:01:23.4268361Z     {
2026-06-04T02:01:23.4269487Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-04T02:01:23.4271209Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-04T02:01:23.4272875Z       "requiredStages": [],
2026-06-04T02:01:23.4274081Z       "stages": {
2026-06-04T02:01:23.4275110Z         "doc": {
2026-06-04T02:01:23.4276171Z           "complete": false,
2026-06-04T02:01:23.4277400Z           "evidence": []
2026-06-04T02:01:23.4278525Z         },
2026-06-04T02:01:23.4279511Z         "impl": {
2026-06-04T02:01:23.4280590Z           "complete": false,
2026-06-04T02:01:23.4281823Z           "evidence": []
2026-06-04T02:01:23.4282947Z         },
2026-06-04T02:01:23.4283909Z         "int": {
2026-06-04T02:01:23.4284983Z           "complete": false,
2026-06-04T02:01:23.4286210Z           "evidence": []
2026-06-04T02:01:23.4287333Z         },
2026-06-04T02:01:23.4288298Z         "unit": {
2026-06-04T02:01:23.4289400Z           "complete": false,
2026-06-04T02:01:23.4290638Z           "evidence": []
2026-06-04T02:01:23.4291749Z         }
2026-06-04T02:01:23.4292675Z       }
2026-06-04T02:01:23.4293583Z     },
2026-06-04T02:01:23.4294502Z     {
2026-06-04T02:01:23.4295639Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-04T02:01:23.4297665Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-04T02:01:23.4299628Z       "requiredStages": [
2026-06-04T02:01:23.4300787Z         "impl",
2026-06-04T02:01:23.4301804Z         "unit"
2026-06-04T02:01:23.4302796Z       ],
2026-06-04T02:01:23.4303740Z       "stages": {
2026-06-04T02:01:23.4304754Z         "doc": {
2026-06-04T02:01:23.4305810Z           "complete": false,
2026-06-04T02:01:23.4307024Z           "evidence": []
2026-06-04T02:01:23.4308146Z         },
2026-06-04T02:01:23.4309093Z         "impl": {
2026-06-04T02:01:23.4310195Z           "complete": true,
2026-06-04T02:01:23.4311386Z           "evidence": [
2026-06-04T02:01:23.4312483Z             {
2026-06-04T02:01:23.4313945Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.4321954Z               "line": 347
2026-06-04T02:01:23.4323238Z             },
2026-06-04T02:01:23.4324226Z             {
2026-06-04T02:01:23.4325418Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.4327239Z               "line": 28
2026-06-04T02:01:23.4328346Z             }
2026-06-04T02:01:23.4329369Z           ]
2026-06-04T02:01:23.4330314Z         },
2026-06-04T02:01:23.4331264Z         "int": {
2026-06-04T02:01:23.4332317Z           "complete": false,
2026-06-04T02:01:23.4333530Z           "evidence": []
2026-06-04T02:01:23.4334651Z         },
2026-06-04T02:01:23.4335588Z         "unit": {
2026-06-04T02:01:23.4336634Z           "complete": true,
2026-06-04T02:01:23.4337819Z           "evidence": [
2026-06-04T02:01:23.4338894Z             {
2026-06-04T02:01:23.4340123Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-04T02:01:23.4341661Z               "line": 199
2026-06-04T02:01:23.4342809Z             }
2026-06-04T02:01:23.4343777Z           ]
2026-06-04T02:01:23.4344720Z         }
2026-06-04T02:01:23.4345634Z       }
2026-06-04T02:01:23.4346541Z     },
2026-06-04T02:01:23.4347455Z     {
2026-06-04T02:01:23.4348511Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-04T02:01:23.4350296Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-04T02:01:23.4351967Z       "requiredStages": [],
2026-06-04T02:01:23.4353150Z       "stages": {
2026-06-04T02:01:23.4354165Z         "doc": {
2026-06-04T02:01:23.4355231Z           "complete": false,
2026-06-04T02:01:23.4356459Z           "evidence": []
2026-06-04T02:01:23.4357574Z         },
2026-06-04T02:01:23.4358521Z         "impl": {
2026-06-04T02:01:23.4359634Z           "complete": false,
2026-06-04T02:01:23.4360851Z           "evidence": []
2026-06-04T02:01:23.4361964Z         },
2026-06-04T02:01:23.4362910Z         "int": {
2026-06-04T02:01:23.4363975Z           "complete": false,
2026-06-04T02:01:23.4365201Z           "evidence": []
2026-06-04T02:01:23.4366329Z         },
2026-06-04T02:01:23.4367280Z         "unit": {
2026-06-04T02:01:23.4368341Z           "complete": false,
2026-06-04T02:01:23.4369598Z           "evidence": []
2026-06-04T02:01:23.4370708Z         }
2026-06-04T02:01:23.4371742Z       }
2026-06-04T02:01:23.4372650Z     },
2026-06-04T02:01:23.4373576Z     {
2026-06-04T02:01:23.4374660Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-04T02:01:23.4376503Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-04T02:01:23.4378259Z       "requiredStages": [
2026-06-04T02:01:23.4379449Z         "impl",
2026-06-04T02:01:23.4380451Z         "unit"
2026-06-04T02:01:23.4381433Z       ],
2026-06-04T02:01:23.4382376Z       "stages": {
2026-06-04T02:01:23.4383401Z         "doc": {
2026-06-04T02:01:23.4384475Z           "complete": false,
2026-06-04T02:01:23.4385694Z           "evidence": []
2026-06-04T02:01:23.4386800Z         },
2026-06-04T02:01:23.4387755Z         "impl": {
2026-06-04T02:01:23.4388822Z           "complete": true,
2026-06-04T02:01:23.4390050Z           "evidence": [
2026-06-04T02:01:23.4391140Z             {
2026-06-04T02:01:23.4392393Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.4393964Z               "line": 325
2026-06-04T02:01:23.4395103Z             },
2026-06-04T02:01:23.4396083Z             {
2026-06-04T02:01:23.4397302Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.4398881Z               "line": 361
2026-06-04T02:01:23.4400051Z             }
2026-06-04T02:01:23.4401026Z           ]
2026-06-04T02:01:23.4401964Z         },
2026-06-04T02:01:23.4402904Z         "int": {
2026-06-04T02:01:23.4403973Z           "complete": false,
2026-06-04T02:01:23.4405198Z           "evidence": []
2026-06-04T02:01:23.4406313Z         },
2026-06-04T02:01:23.4407259Z         "unit": {
2026-06-04T02:01:23.4408320Z           "complete": true,
2026-06-04T02:01:23.4409545Z           "evidence": [
2026-06-04T02:01:23.4410635Z             {
2026-06-04T02:01:23.4412112Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.4413710Z               "line": 453
2026-06-04T02:01:23.4414834Z             }
2026-06-04T02:01:23.4421835Z           ]
2026-06-04T02:01:23.4423137Z         }
2026-06-04T02:01:23.4424049Z       }
2026-06-04T02:01:23.4424935Z     },
2026-06-04T02:01:23.4425822Z     {
2026-06-04T02:01:23.4426869Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-04T02:01:23.4428671Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-04T02:01:23.4430523Z       "requiredStages": [
2026-06-04T02:01:23.4431647Z         "impl",
2026-06-04T02:01:23.4432611Z         "unit"
2026-06-04T02:01:23.4433562Z       ],
2026-06-04T02:01:23.4434472Z       "stages": {
2026-06-04T02:01:23.4435460Z         "doc": {
2026-06-04T02:01:23.4436477Z           "complete": false,
2026-06-04T02:01:23.4437665Z           "evidence": []
2026-06-04T02:01:23.4438755Z         },
2026-06-04T02:01:23.4439735Z         "impl": {
2026-06-04T02:01:23.4440784Z           "complete": true,
2026-06-04T02:01:23.4441951Z           "evidence": [
2026-06-04T02:01:23.4443006Z             {
2026-06-04T02:01:23.4444143Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.4445647Z               "line": 35
2026-06-04T02:01:23.4446730Z             }
2026-06-04T02:01:23.4447658Z           ]
2026-06-04T02:01:23.4448574Z         },
2026-06-04T02:01:23.4449522Z         "int": {
2026-06-04T02:01:23.4450548Z           "complete": false,
2026-06-04T02:01:23.4451736Z           "evidence": []
2026-06-04T02:01:23.4452822Z         },
2026-06-04T02:01:23.4453738Z         "unit": {
2026-06-04T02:01:23.4454773Z           "complete": true,
2026-06-04T02:01:23.4455936Z           "evidence": [
2026-06-04T02:01:23.4456987Z             {
2026-06-04T02:01:23.4458131Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-04T02:01:23.4459675Z               "line": 217
2026-06-04T02:01:23.4460771Z             }
2026-06-04T02:01:23.4461704Z           ]
2026-06-04T02:01:23.4462629Z         }
2026-06-04T02:01:23.4463522Z       }
2026-06-04T02:01:23.4464403Z     },
2026-06-04T02:01:23.4465292Z     {
2026-06-04T02:01:23.4466315Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-04T02:01:23.4468862Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-04T02:01:23.4471422Z       "requiredStages": [
2026-06-04T02:01:23.4472551Z         "impl",
2026-06-04T02:01:23.4473518Z         "unit"
2026-06-04T02:01:23.4474458Z       ],
2026-06-04T02:01:23.4475361Z       "stages": {
2026-06-04T02:01:23.4476346Z         "doc": {
2026-06-04T02:01:23.4477366Z           "complete": false,
2026-06-04T02:01:23.4478568Z           "evidence": []
2026-06-04T02:01:23.4479689Z         },
2026-06-04T02:01:23.4480615Z         "impl": {
2026-06-04T02:01:23.4481651Z           "complete": true,
2026-06-04T02:01:23.4482810Z           "evidence": [
2026-06-04T02:01:23.4483862Z             {
2026-06-04T02:01:23.4485044Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.4486578Z               "line": 159
2026-06-04T02:01:23.4487757Z             },
2026-06-04T02:01:23.4488727Z             {
2026-06-04T02:01:23.4489949Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.4491494Z               "line": 150
2026-06-04T02:01:23.4492584Z             }
2026-06-04T02:01:23.4493521Z           ]
2026-06-04T02:01:23.4494432Z         },
2026-06-04T02:01:23.4495346Z         "int": {
2026-06-04T02:01:23.4496378Z           "complete": false,
2026-06-04T02:01:23.4497572Z           "evidence": []
2026-06-04T02:01:23.4498657Z         },
2026-06-04T02:01:23.4499604Z         "unit": {
2026-06-04T02:01:23.4500630Z           "complete": true,
2026-06-04T02:01:23.4501796Z           "evidence": [
2026-06-04T02:01:23.4502848Z             {
2026-06-04T02:01:23.4504020Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.4505541Z               "line": 382
2026-06-04T02:01:23.4506627Z             },
2026-06-04T02:01:23.4507788Z             {
2026-06-04T02:01:23.4508993Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.4510561Z               "line": 393
2026-06-04T02:01:23.4511650Z             },
2026-06-04T02:01:23.4512757Z             {
2026-06-04T02:01:23.4513935Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.4521647Z               "line": 409
2026-06-04T02:01:23.4522790Z             },
2026-06-04T02:01:23.4523204Z             {
2026-06-04T02:01:23.4523845Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.4524277Z               "line": 423
2026-06-04T02:01:23.4524681Z             }
2026-06-04T02:01:23.4525079Z           ]
2026-06-04T02:01:23.4525481Z         }
2026-06-04T02:01:23.4525879Z       }
2026-06-04T02:01:23.4526285Z     },
2026-06-04T02:01:23.4526684Z     {
2026-06-04T02:01:23.4527263Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-04T02:01:23.4528186Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-04T02:01:23.4528648Z       "requiredStages": [
2026-06-04T02:01:23.4529064Z         "impl",
2026-06-04T02:01:23.4529521Z         "unit"
2026-06-04T02:01:23.4529924Z       ],
2026-06-04T02:01:23.4530361Z       "stages": {
2026-06-04T02:01:23.4530769Z         "doc": {
2026-06-04T02:01:23.4531232Z           "complete": false,
2026-06-04T02:01:23.4531671Z           "evidence": []
2026-06-04T02:01:23.4532082Z         },
2026-06-04T02:01:23.4532489Z         "impl": {
2026-06-04T02:01:23.4532941Z           "complete": true,
2026-06-04T02:01:23.4533381Z           "evidence": [
2026-06-04T02:01:23.4533779Z             {
2026-06-04T02:01:23.4534382Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.4534806Z               "line": 92
2026-06-04T02:01:23.4535216Z             },
2026-06-04T02:01:23.4535615Z             {
2026-06-04T02:01:23.4536224Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.4536668Z               "line": 96
2026-06-04T02:01:23.4537076Z             }
2026-06-04T02:01:23.4537485Z           ]
2026-06-04T02:01:23.4537886Z         },
2026-06-04T02:01:23.4538293Z         "int": {
2026-06-04T02:01:23.4538745Z           "complete": false,
2026-06-04T02:01:23.4539252Z           "evidence": []
2026-06-04T02:01:23.4539669Z         },
2026-06-04T02:01:23.4540106Z         "unit": {
2026-06-04T02:01:23.4540562Z           "complete": true,
2026-06-04T02:01:23.4540998Z           "evidence": [
2026-06-04T02:01:23.4541405Z             {
2026-06-04T02:01:23.4542000Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.4542437Z               "line": 235
2026-06-04T02:01:23.4542844Z             },
2026-06-04T02:01:23.4543243Z             {
2026-06-04T02:01:23.4543839Z               "path": "crates/spt-store/src/proc.rs",
2026-06-04T02:01:23.4544270Z               "line": 139
2026-06-04T02:01:23.4544677Z             },
2026-06-04T02:01:23.4545085Z             {
2026-06-04T02:01:23.4545707Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.4546141Z               "line": 375
2026-06-04T02:01:23.4546542Z             },
2026-06-04T02:01:23.4546945Z             {
2026-06-04T02:01:23.4547537Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.4547990Z               "line": 405
2026-06-04T02:01:23.4548389Z             }
2026-06-04T02:01:23.4548797Z           ]
2026-06-04T02:01:23.4549237Z         }
2026-06-04T02:01:23.4549635Z       }
2026-06-04T02:01:23.4550035Z     },
2026-06-04T02:01:23.4550424Z     {
2026-06-04T02:01:23.4550946Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-04T02:01:23.4551975Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-04T02:01:23.4552444Z       "requiredStages": [
2026-06-04T02:01:23.4552860Z         "impl",
2026-06-04T02:01:23.4553263Z         "unit"
2026-06-04T02:01:23.4553670Z       ],
2026-06-04T02:01:23.4554083Z       "stages": {
2026-06-04T02:01:23.4554490Z         "doc": {
2026-06-04T02:01:23.4555184Z           "complete": false,
2026-06-04T02:01:23.4555662Z           "evidence": []
2026-06-04T02:01:23.4556067Z         },
2026-06-04T02:01:23.4556484Z         "impl": {
2026-06-04T02:01:23.4556939Z           "complete": true,
2026-06-04T02:01:23.4557516Z           "evidence": [
2026-06-04T02:01:23.4557926Z             {
2026-06-04T02:01:23.4558535Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4558977Z               "line": 142
2026-06-04T02:01:23.4559474Z             },
2026-06-04T02:01:23.4559888Z             {
2026-06-04T02:01:23.4560498Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4560932Z               "line": 187
2026-06-04T02:01:23.4561349Z             },
2026-06-04T02:01:23.4561748Z             {
2026-06-04T02:01:23.4562346Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4562792Z               "line": 199
2026-06-04T02:01:23.4563198Z             }
2026-06-04T02:01:23.4563603Z           ]
2026-06-04T02:01:23.4564016Z         },
2026-06-04T02:01:23.4564447Z         "int": {
2026-06-04T02:01:23.4564902Z           "complete": false,
2026-06-04T02:01:23.4565346Z           "evidence": []
2026-06-04T02:01:23.4565750Z         },
2026-06-04T02:01:23.4566164Z         "unit": {
2026-06-04T02:01:23.4566621Z           "complete": true,
2026-06-04T02:01:23.4567050Z           "evidence": [
2026-06-04T02:01:23.4567460Z             {
2026-06-04T02:01:23.4568058Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4568493Z               "line": 335
2026-06-04T02:01:23.4568904Z             },
2026-06-04T02:01:23.4569338Z             {
2026-06-04T02:01:23.4569944Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.4570382Z               "line": 364
2026-06-04T02:01:23.4570837Z             }
2026-06-04T02:01:23.4571240Z           ]
2026-06-04T02:01:23.4571638Z         }
2026-06-04T02:01:23.4572043Z       }
2026-06-04T02:01:23.4572431Z     },
2026-06-04T02:01:23.4572827Z     {
2026-06-04T02:01:23.4573286Z       "id": "REQ-INFRA-1",
2026-06-04T02:01:23.4574316Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-04T02:01:23.4574794Z       "requiredStages": [],
2026-06-04T02:01:23.4575204Z       "stages": {
2026-06-04T02:01:23.4575628Z         "doc": {
2026-06-04T02:01:23.4576079Z           "complete": false,
2026-06-04T02:01:23.4576522Z           "evidence": []
2026-06-04T02:01:23.4576922Z         },
2026-06-04T02:01:23.4577346Z         "impl": {
2026-06-04T02:01:23.4577798Z           "complete": false,
2026-06-04T02:01:23.4578247Z           "evidence": []
2026-06-04T02:01:23.4578649Z         },
2026-06-04T02:01:23.4579049Z         "int": {
2026-06-04T02:01:23.4579549Z           "complete": false,
2026-06-04T02:01:23.4579986Z           "evidence": []
2026-06-04T02:01:23.4580387Z         },
2026-06-04T02:01:23.4580793Z         "unit": {
2026-06-04T02:01:23.4581259Z           "complete": false,
2026-06-04T02:01:23.4581705Z           "evidence": []
2026-06-04T02:01:23.4582120Z         }
2026-06-04T02:01:23.4582528Z       }
2026-06-04T02:01:23.4582915Z     },
2026-06-04T02:01:23.4583315Z     {
2026-06-04T02:01:23.4583761Z       "id": "REQ-INST-1",
2026-06-04T02:01:23.4584633Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-04T02:01:23.4585126Z       "requiredStages": [],
2026-06-04T02:01:23.4585535Z       "stages": {
2026-06-04T02:01:23.4585948Z         "doc": {
2026-06-04T02:01:23.4586396Z           "complete": false,
2026-06-04T02:01:23.4586842Z           "evidence": []
2026-06-04T02:01:23.4587237Z         },
2026-06-04T02:01:23.4587657Z         "impl": {
2026-06-04T02:01:23.4588117Z           "complete": false,
2026-06-04T02:01:23.4588552Z           "evidence": []
2026-06-04T02:01:23.4588959Z         },
2026-06-04T02:01:23.4589403Z         "int": {
2026-06-04T02:01:23.4589869Z           "complete": false,
2026-06-04T02:01:23.4590302Z           "evidence": []
2026-06-04T02:01:23.4590713Z         },
2026-06-04T02:01:23.4591129Z         "unit": {
2026-06-04T02:01:23.4591743Z           "complete": false,
2026-06-04T02:01:23.4592195Z           "evidence": []
2026-06-04T02:01:23.4592600Z         }
2026-06-04T02:01:23.4593012Z       }
2026-06-04T02:01:23.4593398Z     },
2026-06-04T02:01:23.4593977Z     {
2026-06-04T02:01:23.4594444Z       "id": "REQ-INST-10",
2026-06-04T02:01:23.4595687Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-04T02:01:23.4596157Z       "requiredStages": [
2026-06-04T02:01:23.4596562Z         "impl",
2026-06-04T02:01:23.4602739Z         "unit"
2026-06-04T02:01:23.4603213Z       ],
2026-06-04T02:01:23.4603650Z       "stages": {
2026-06-04T02:01:23.4604065Z         "doc": {
2026-06-04T02:01:23.4604524Z           "complete": false,
2026-06-04T02:01:23.4604986Z           "evidence": []
2026-06-04T02:01:23.4605384Z         },
2026-06-04T02:01:23.4605807Z         "impl": {
2026-06-04T02:01:23.4606256Z           "complete": true,
2026-06-04T02:01:23.4606699Z           "evidence": [
2026-06-04T02:01:23.4607145Z             {
2026-06-04T02:01:23.4607808Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4608249Z               "line": 351
2026-06-04T02:01:23.4608652Z             },
2026-06-04T02:01:23.4609077Z             {
2026-06-04T02:01:23.4609791Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4610238Z               "line": 406
2026-06-04T02:01:23.4610651Z             },
2026-06-04T02:01:23.4611050Z             {
2026-06-04T02:01:23.4611651Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4612084Z               "line": 13
2026-06-04T02:01:23.4612494Z             },
2026-06-04T02:01:23.4612891Z             {
2026-06-04T02:01:23.4613495Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4613930Z               "line": 67
2026-06-04T02:01:23.4614329Z             }
2026-06-04T02:01:23.4614731Z           ]
2026-06-04T02:01:23.4615126Z         },
2026-06-04T02:01:23.4615545Z         "int": {
2026-06-04T02:01:23.4616000Z           "complete": false,
2026-06-04T02:01:23.4616448Z           "evidence": []
2026-06-04T02:01:23.4616849Z         },
2026-06-04T02:01:23.4617258Z         "unit": {
2026-06-04T02:01:23.4617727Z           "complete": true,
2026-06-04T02:01:23.4618155Z           "evidence": [
2026-06-04T02:01:23.4618560Z             {
2026-06-04T02:01:23.4619246Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4619693Z               "line": 550
2026-06-04T02:01:23.4620096Z             },
2026-06-04T02:01:23.4620496Z             {
2026-06-04T02:01:23.4621139Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4621566Z               "line": 559
2026-06-04T02:01:23.4621974Z             },
2026-06-04T02:01:23.4622386Z             {
2026-06-04T02:01:23.4623030Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4623464Z               "line": 567
2026-06-04T02:01:23.4623864Z             },
2026-06-04T02:01:23.4624284Z             {
2026-06-04T02:01:23.4624925Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4625358Z               "line": 580
2026-06-04T02:01:23.4625770Z             },
2026-06-04T02:01:23.4626179Z             {
2026-06-04T02:01:23.4626830Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4627261Z               "line": 593
2026-06-04T02:01:23.4627670Z             },
2026-06-04T02:01:23.4628065Z             {
2026-06-04T02:01:23.4628709Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4629152Z               "line": 609
2026-06-04T02:01:23.4629595Z             },
2026-06-04T02:01:23.4630006Z             {
2026-06-04T02:01:23.4630637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4631075Z               "line": 838
2026-06-04T02:01:23.4631485Z             },
2026-06-04T02:01:23.4631891Z             {
2026-06-04T02:01:23.4632721Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4633178Z               "line": 121
2026-06-04T02:01:23.4633588Z             },
2026-06-04T02:01:23.4633991Z             {
2026-06-04T02:01:23.4634593Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4635166Z               "line": 142
2026-06-04T02:01:23.4635571Z             },
2026-06-04T02:01:23.4635974Z             {
2026-06-04T02:01:23.4636582Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4637018Z               "line": 150
2026-06-04T02:01:23.4637419Z             },
2026-06-04T02:01:23.4637822Z             {
2026-06-04T02:01:23.4638403Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-04T02:01:23.4638842Z               "line": 158
2026-06-04T02:01:23.4639293Z             }
2026-06-04T02:01:23.4639693Z           ]
2026-06-04T02:01:23.4640096Z         }
2026-06-04T02:01:23.4640491Z       }
2026-06-04T02:01:23.4640889Z     },
2026-06-04T02:01:23.4641274Z     {
2026-06-04T02:01:23.4641727Z       "id": "REQ-INST-11",
2026-06-04T02:01:23.4643018Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-04T02:01:23.4643482Z       "requiredStages": [
2026-06-04T02:01:23.4643896Z         "impl",
2026-06-04T02:01:23.4644308Z         "unit"
2026-06-04T02:01:23.4644714Z       ],
2026-06-04T02:01:23.4645125Z       "stages": {
2026-06-04T02:01:23.4645533Z         "doc": {
2026-06-04T02:01:23.4645991Z           "complete": false,
2026-06-04T02:01:23.4646430Z           "evidence": []
2026-06-04T02:01:23.4646835Z         },
2026-06-04T02:01:23.4647244Z         "impl": {
2026-06-04T02:01:23.4647696Z           "complete": true,
2026-06-04T02:01:23.4648121Z           "evidence": [
2026-06-04T02:01:23.4648527Z             {
2026-06-04T02:01:23.4649228Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4649661Z               "line": 253
2026-06-04T02:01:23.4650067Z             },
2026-06-04T02:01:23.4650464Z             {
2026-06-04T02:01:23.4651089Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:01:23.4651525Z               "line": 59
2026-06-04T02:01:23.4651936Z             },
2026-06-04T02:01:23.4652347Z             {
2026-06-04T02:01:23.4652874Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.4653326Z               "line": 586
2026-06-04T02:01:23.4653719Z             }
2026-06-04T02:01:23.4654123Z           ]
2026-06-04T02:01:23.4654515Z         },
2026-06-04T02:01:23.4654921Z         "int": {
2026-06-04T02:01:23.4655382Z           "complete": false,
2026-06-04T02:01:23.4655818Z           "evidence": []
2026-06-04T02:01:23.4656212Z         },
2026-06-04T02:01:23.4656613Z         "unit": {
2026-06-04T02:01:23.4657070Z           "complete": true,
2026-06-04T02:01:23.4657497Z           "evidence": [
2026-06-04T02:01:23.4657911Z             {
2026-06-04T02:01:23.4658556Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4658986Z               "line": 702
2026-06-04T02:01:23.4659431Z             },
2026-06-04T02:01:23.4659844Z             {
2026-06-04T02:01:23.4660488Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4660916Z               "line": 725
2026-06-04T02:01:23.4661328Z             },
2026-06-04T02:01:23.4661745Z             {
2026-06-04T02:01:23.4662345Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:01:23.4662785Z               "line": 156
2026-06-04T02:01:23.4663185Z             },
2026-06-04T02:01:23.4663590Z             {
2026-06-04T02:01:23.4664205Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:01:23.4664631Z               "line": 177
2026-06-04T02:01:23.4665040Z             },
2026-06-04T02:01:23.4665438Z             {
2026-06-04T02:01:23.4666045Z               "path": "crates/spt-store/src/rename.rs",
2026-06-04T02:01:23.4666475Z               "line": 209
2026-06-04T02:01:23.4666882Z             },
2026-06-04T02:01:23.4667287Z             {
2026-06-04T02:01:23.4667980Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.4668435Z               "line": 635
2026-06-04T02:01:23.4668830Z             }
2026-06-04T02:01:23.4669278Z           ]
2026-06-04T02:01:23.4669671Z         }
2026-06-04T02:01:23.4670067Z       }
2026-06-04T02:01:23.4670611Z     },
2026-06-04T02:01:23.4671001Z     {
2026-06-04T02:01:23.4671455Z       "id": "REQ-INST-12",
2026-06-04T02:01:23.4673268Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-04T02:01:23.4673740Z       "requiredStages": [
2026-06-04T02:01:23.4674145Z         "impl",
2026-06-04T02:01:23.4674556Z         "unit"
2026-06-04T02:01:23.4674955Z       ],
2026-06-04T02:01:23.4675366Z       "stages": {
2026-06-04T02:01:23.4675776Z         "doc": {
2026-06-04T02:01:23.4676223Z           "complete": false,
2026-06-04T02:01:23.4676663Z           "evidence": []
2026-06-04T02:01:23.4677056Z         },
2026-06-04T02:01:23.4677473Z         "impl": {
2026-06-04T02:01:23.4677941Z           "complete": true,
2026-06-04T02:01:23.4678370Z           "evidence": [
2026-06-04T02:01:23.4684294Z             {
2026-06-04T02:01:23.4685052Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4685498Z               "line": 305
2026-06-04T02:01:23.4685946Z             },
2026-06-04T02:01:23.4686357Z             {
2026-06-04T02:01:23.4687013Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4687443Z               "line": 362
2026-06-04T02:01:23.4687852Z             },
2026-06-04T02:01:23.4688249Z             {
2026-06-04T02:01:23.4688899Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4689403Z               "line": 420
2026-06-04T02:01:23.4689819Z             },
2026-06-04T02:01:23.4690226Z             {
2026-06-04T02:01:23.4690833Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.4691271Z               "line": 87
2026-06-04T02:01:23.4691667Z             },
2026-06-04T02:01:23.4692072Z             {
2026-06-04T02:01:23.4692682Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.4693121Z               "line": 216
2026-06-04T02:01:23.4693524Z             },
2026-06-04T02:01:23.4693915Z             {
2026-06-04T02:01:23.4694581Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4695016Z               "line": 132
2026-06-04T02:01:23.4695416Z             }
2026-06-04T02:01:23.4695809Z           ]
2026-06-04T02:01:23.4696212Z         },
2026-06-04T02:01:23.4696627Z         "int": {
2026-06-04T02:01:23.4697079Z           "complete": false,
2026-06-04T02:01:23.4697523Z           "evidence": []
2026-06-04T02:01:23.4697914Z         },
2026-06-04T02:01:23.4698328Z         "unit": {
2026-06-04T02:01:23.4698776Z           "complete": true,
2026-06-04T02:01:23.4699253Z           "evidence": [
2026-06-04T02:01:23.4699657Z             {
2026-06-04T02:01:23.4700298Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4700756Z               "line": 760
2026-06-04T02:01:23.4701152Z             },
2026-06-04T02:01:23.4701560Z             {
2026-06-04T02:01:23.4702202Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4702639Z               "line": 777
2026-06-04T02:01:23.4703079Z             },
2026-06-04T02:01:23.4703693Z             {
2026-06-04T02:01:23.4704712Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4705314Z               "line": 808
2026-06-04T02:01:23.4705722Z             },
2026-06-04T02:01:23.4706119Z             {
2026-06-04T02:01:23.4706732Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.4707168Z               "line": 350
2026-06-04T02:01:23.4707570Z             },
2026-06-04T02:01:23.4707980Z             {
2026-06-04T02:01:23.4708627Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4709072Z               "line": 169
2026-06-04T02:01:23.4709515Z             },
2026-06-04T02:01:23.4709924Z             {
2026-06-04T02:01:23.4710857Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4711318Z               "line": 181
2026-06-04T02:01:23.4711729Z             },
2026-06-04T02:01:23.4712124Z             {
2026-06-04T02:01:23.4712969Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4713486Z               "line": 198
2026-06-04T02:01:23.4714236Z             }
2026-06-04T02:01:23.4714854Z           ]
2026-06-04T02:01:23.4715328Z         }
2026-06-04T02:01:23.4715816Z       }
2026-06-04T02:01:23.4716294Z     },
2026-06-04T02:01:23.4716825Z     {
2026-06-04T02:01:23.4717380Z       "id": "REQ-INST-13",
2026-06-04T02:01:23.4718639Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-04T02:01:23.4719123Z       "requiredStages": [
2026-06-04T02:01:23.4719628Z         "impl",
2026-06-04T02:01:23.4720045Z         "unit"
2026-06-04T02:01:23.4720440Z       ],
2026-06-04T02:01:23.4720876Z       "stages": {
2026-06-04T02:01:23.4721338Z         "doc": {
2026-06-04T02:01:23.4721810Z           "complete": false,
2026-06-04T02:01:23.4722253Z           "evidence": []
2026-06-04T02:01:23.4722649Z         },
2026-06-04T02:01:23.4723067Z         "impl": {
2026-06-04T02:01:23.4723535Z           "complete": true,
2026-06-04T02:01:23.4723975Z           "evidence": [
2026-06-04T02:01:23.4724374Z             {
2026-06-04T02:01:23.4725038Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4725638Z               "line": 155
2026-06-04T02:01:23.4726349Z             }
2026-06-04T02:01:23.4726814Z           ]
2026-06-04T02:01:23.4727383Z         },
2026-06-04T02:01:23.4727807Z         "int": {
2026-06-04T02:01:23.4728265Z           "complete": false,
2026-06-04T02:01:23.4728715Z           "evidence": []
2026-06-04T02:01:23.4729626Z         },
2026-06-04T02:01:23.4730089Z         "unit": {
2026-06-04T02:01:23.4730702Z           "complete": true,
2026-06-04T02:01:23.4731138Z           "evidence": [
2026-06-04T02:01:23.4731568Z             {
2026-06-04T02:01:23.4732260Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4732707Z               "line": 221
2026-06-04T02:01:23.4733117Z             },
2026-06-04T02:01:23.4733516Z             {
2026-06-04T02:01:23.4734482Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-04T02:01:23.4734927Z               "line": 233
2026-06-04T02:01:23.4735338Z             }
2026-06-04T02:01:23.4735750Z           ]
2026-06-04T02:01:23.4736151Z         }
2026-06-04T02:01:23.4736557Z       }
2026-06-04T02:01:23.4736953Z     },
2026-06-04T02:01:23.4737359Z     {
2026-06-04T02:01:23.4737810Z       "id": "REQ-INST-14",
2026-06-04T02:01:23.4740602Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-04T02:01:23.4741148Z       "requiredStages": [],
2026-06-04T02:01:23.4741563Z       "stages": {
2026-06-04T02:01:23.4741977Z         "doc": {
2026-06-04T02:01:23.4742438Z           "complete": false,
2026-06-04T02:01:23.4742883Z           "evidence": []
2026-06-04T02:01:23.4743286Z         },
2026-06-04T02:01:23.4743706Z         "impl": {
2026-06-04T02:01:23.4744179Z           "complete": false,
2026-06-04T02:01:23.4744620Z           "evidence": []
2026-06-04T02:01:23.4745027Z         },
2026-06-04T02:01:23.4745745Z         "int": {
2026-06-04T02:01:23.4746212Z           "complete": false,
2026-06-04T02:01:23.4746651Z           "evidence": []
2026-06-04T02:01:23.4747062Z         },
2026-06-04T02:01:23.4747477Z         "unit": {
2026-06-04T02:01:23.4747926Z           "complete": false,
2026-06-04T02:01:23.4748686Z           "evidence": []
2026-06-04T02:01:23.4749294Z         }
2026-06-04T02:01:23.4749750Z       }
2026-06-04T02:01:23.4750295Z     },
2026-06-04T02:01:23.4750704Z     {
2026-06-04T02:01:23.4751171Z       "id": "REQ-INST-15",
2026-06-04T02:01:23.4756206Z       "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-04T02:01:23.4756728Z       "requiredStages": [],
2026-06-04T02:01:23.4757350Z       "stages": {
2026-06-04T02:01:23.4757768Z         "doc": {
2026-06-04T02:01:23.4758234Z           "complete": false,
2026-06-04T02:01:23.4758692Z           "evidence": []
2026-06-04T02:01:23.4759099Z         },
2026-06-04T02:01:23.4759570Z         "impl": {
2026-06-04T02:01:23.4760045Z           "complete": false,
2026-06-04T02:01:23.4760479Z           "evidence": []
2026-06-04T02:01:23.4760884Z         },
2026-06-04T02:01:23.4761284Z         "int": {
2026-06-04T02:01:23.4761756Z           "complete": false,
2026-06-04T02:01:23.4762203Z           "evidence": []
2026-06-04T02:01:23.4762598Z         },
2026-06-04T02:01:23.4763015Z         "unit": {
2026-06-04T02:01:23.4763476Z           "complete": false,
2026-06-04T02:01:23.4763951Z           "evidence": []
2026-06-04T02:01:23.4764352Z         }
2026-06-04T02:01:23.4764760Z       }
2026-06-04T02:01:23.4765166Z     },
2026-06-04T02:01:23.4765558Z     {
2026-06-04T02:01:23.4766018Z       "id": "REQ-INST-2",
2026-06-04T02:01:23.4766660Z       "title": "Per-node files, synced Psyche mind",
2026-06-04T02:01:23.4767138Z       "requiredStages": [],
2026-06-04T02:01:23.4767557Z       "stages": {
2026-06-04T02:01:23.4767978Z         "doc": {
2026-06-04T02:01:23.4768440Z           "complete": false,
2026-06-04T02:01:23.4768875Z           "evidence": []
2026-06-04T02:01:23.4769327Z         },
2026-06-04T02:01:23.4769740Z         "impl": {
2026-06-04T02:01:23.4770203Z           "complete": false,
2026-06-04T02:01:23.4778049Z           "evidence": []
2026-06-04T02:01:23.4778611Z         },
2026-06-04T02:01:23.4779053Z         "int": {
2026-06-04T02:01:23.4779629Z           "complete": false,
2026-06-04T02:01:23.4780083Z           "evidence": []
2026-06-04T02:01:23.4780484Z         },
2026-06-04T02:01:23.4780941Z         "unit": {
2026-06-04T02:01:23.4781408Z           "complete": false,
2026-06-04T02:01:23.4781860Z           "evidence": []
2026-06-04T02:01:23.4782266Z         }
2026-06-04T02:01:23.4782664Z       }
2026-06-04T02:01:23.4783079Z     },
2026-06-04T02:01:23.4783469Z     {
2026-06-04T02:01:23.4783925Z       "id": "REQ-INST-3",
2026-06-04T02:01:23.4784756Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-04T02:01:23.4785237Z       "requiredStages": [],
2026-06-04T02:01:23.4785664Z       "stages": {
2026-06-04T02:01:23.4786074Z         "doc": {
2026-06-04T02:01:23.4786539Z           "complete": false,
2026-06-04T02:01:23.4786979Z           "evidence": []
2026-06-04T02:01:23.4787386Z         },
2026-06-04T02:01:23.4787798Z         "impl": {
2026-06-04T02:01:23.4788260Z           "complete": false,
2026-06-04T02:01:23.4788709Z           "evidence": []
2026-06-04T02:01:23.4789109Z         },
2026-06-04T02:01:23.4789573Z         "int": {
2026-06-04T02:01:23.4790038Z           "complete": false,
2026-06-04T02:01:23.4790487Z           "evidence": []
2026-06-04T02:01:23.4790882Z         },
2026-06-04T02:01:23.4791300Z         "unit": {
2026-06-04T02:01:23.4791772Z           "complete": false,
2026-06-04T02:01:23.4792222Z           "evidence": []
2026-06-04T02:01:23.4792631Z         }
2026-06-04T02:01:23.4793026Z       }
2026-06-04T02:01:23.4793426Z     },
2026-06-04T02:01:23.4793814Z     {
2026-06-04T02:01:23.4794268Z       "id": "REQ-INST-4",
2026-06-04T02:01:23.4795262Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-04T02:01:23.4795729Z       "requiredStages": [],
2026-06-04T02:01:23.4796151Z       "stages": {
2026-06-04T02:01:23.4796560Z         "doc": {
2026-06-04T02:01:23.4797013Z           "complete": false,
2026-06-04T02:01:23.4797448Z           "evidence": []
2026-06-04T02:01:23.4797851Z         },
2026-06-04T02:01:23.4798274Z         "impl": {
2026-06-04T02:01:23.4798721Z           "complete": false,
2026-06-04T02:01:23.4799476Z           "evidence": []
2026-06-04T02:01:23.4799915Z         },
2026-06-04T02:01:23.4800333Z         "int": {
2026-06-04T02:01:23.4800788Z           "complete": false,
2026-06-04T02:01:23.4801238Z           "evidence": []
2026-06-04T02:01:23.4801791Z         },
2026-06-04T02:01:23.4802208Z         "unit": {
2026-06-04T02:01:23.4802678Z           "complete": false,
2026-06-04T02:01:23.4803116Z           "evidence": []
2026-06-04T02:01:23.4803520Z         }
2026-06-04T02:01:23.4803914Z       }
2026-06-04T02:01:23.4804316Z     },
2026-06-04T02:01:23.4804726Z     {
2026-06-04T02:01:23.4805174Z       "id": "REQ-INST-5",
2026-06-04T02:01:23.4806196Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-04T02:01:23.4806659Z       "requiredStages": [],
2026-06-04T02:01:23.4807085Z       "stages": {
2026-06-04T02:01:23.4807493Z         "doc": {
2026-06-04T02:01:23.4807954Z           "complete": false,
2026-06-04T02:01:23.4808400Z           "evidence": []
2026-06-04T02:01:23.4808794Z         },
2026-06-04T02:01:23.4809270Z         "impl": {
2026-06-04T02:01:23.4809728Z           "complete": false,
2026-06-04T02:01:23.4810174Z           "evidence": []
2026-06-04T02:01:23.4810570Z         },
2026-06-04T02:01:23.4810984Z         "int": {
2026-06-04T02:01:23.4811458Z           "complete": false,
2026-06-04T02:01:23.4811895Z           "evidence": []
2026-06-04T02:01:23.4812298Z         },
2026-06-04T02:01:23.4812705Z         "unit": {
2026-06-04T02:01:23.4813168Z           "complete": false,
2026-06-04T02:01:23.4813599Z           "evidence": []
2026-06-04T02:01:23.4814005Z         }
2026-06-04T02:01:23.4814403Z       }
2026-06-04T02:01:23.4814794Z     },
2026-06-04T02:01:23.4815190Z     {
2026-06-04T02:01:23.4815632Z       "id": "REQ-INST-6",
2026-06-04T02:01:23.4816707Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-04T02:01:23.4817172Z       "requiredStages": [],
2026-06-04T02:01:23.4817607Z       "stages": {
2026-06-04T02:01:23.4818020Z         "doc": {
2026-06-04T02:01:23.4818481Z           "complete": false,
2026-06-04T02:01:23.4818926Z           "evidence": []
2026-06-04T02:01:23.4819358Z         },
2026-06-04T02:01:23.4819781Z         "impl": {
2026-06-04T02:01:23.4820232Z           "complete": false,
2026-06-04T02:01:23.4820689Z           "evidence": []
2026-06-04T02:01:23.4821092Z         },
2026-06-04T02:01:23.4821494Z         "int": {
2026-06-04T02:01:23.4821951Z           "complete": false,
2026-06-04T02:01:23.4822385Z           "evidence": []
2026-06-04T02:01:23.4822804Z         },
2026-06-04T02:01:23.4823229Z         "unit": {
2026-06-04T02:01:23.4823695Z           "complete": false,
2026-06-04T02:01:23.4824146Z           "evidence": []
2026-06-04T02:01:23.4824542Z         }
2026-06-04T02:01:23.4824953Z       }
2026-06-04T02:01:23.4825343Z     },
2026-06-04T02:01:23.4825746Z     {
2026-06-04T02:01:23.4826192Z       "id": "REQ-INST-7",
2026-06-04T02:01:23.4826983Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-04T02:01:23.4827496Z       "requiredStages": [
2026-06-04T02:01:23.4827913Z         "impl",
2026-06-04T02:01:23.4828325Z         "unit"
2026-06-04T02:01:23.4828722Z       ],
2026-06-04T02:01:23.4829140Z       "stages": {
2026-06-04T02:01:23.4829583Z         "doc": {
2026-06-04T02:01:23.4830086Z           "complete": false,
2026-06-04T02:01:23.4830523Z           "evidence": []
2026-06-04T02:01:23.4830932Z         },
2026-06-04T02:01:23.4831348Z         "impl": {
2026-06-04T02:01:23.4831799Z           "complete": true,
2026-06-04T02:01:23.4832246Z           "evidence": [
2026-06-04T02:01:23.4832641Z             {
2026-06-04T02:01:23.4833299Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4833739Z               "line": 41
2026-06-04T02:01:23.4834148Z             },
2026-06-04T02:01:23.4834547Z             {
2026-06-04T02:01:23.4835207Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4835639Z               "line": 31
2026-06-04T02:01:23.4836040Z             },
2026-06-04T02:01:23.4836611Z             {
2026-06-04T02:01:23.4837298Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4837729Z               "line": 78
2026-06-04T02:01:23.4838148Z             },
2026-06-04T02:01:23.4838678Z             {
2026-06-04T02:01:23.4839396Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4839837Z               "line": 101
2026-06-04T02:01:23.4840254Z             },
2026-06-04T02:01:23.4840661Z             {
2026-06-04T02:01:23.4841294Z               "path": "crates/spt-store/src/registry.rs",
2026-06-04T02:01:23.4841735Z               "line": 123
2026-06-04T02:01:23.4842135Z             }
2026-06-04T02:01:23.4842540Z           ]
2026-06-04T02:01:23.4842939Z         },
2026-06-04T02:01:23.4843349Z         "int": {
2026-06-04T02:01:23.4843812Z           "complete": false,
2026-06-04T02:01:23.4844247Z           "evidence": []
2026-06-04T02:01:23.4844650Z         },
2026-06-04T02:01:23.4845054Z         "unit": {
2026-06-04T02:01:23.4845526Z           "complete": true,
2026-06-04T02:01:23.4845951Z           "evidence": [
2026-06-04T02:01:23.4846362Z             {
2026-06-04T02:01:23.4847061Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-04T02:01:23.4847498Z               "line": 83
2026-06-04T02:01:23.4847915Z             },
2026-06-04T02:01:23.4848314Z             {
2026-06-04T02:01:23.4848973Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4849441Z               "line": 475
2026-06-04T02:01:23.4849851Z             },
2026-06-04T02:01:23.4850256Z             {
2026-06-04T02:01:23.4850902Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4851341Z               "line": 486
2026-06-04T02:01:23.4851737Z             },
2026-06-04T02:01:23.4852146Z             {
2026-06-04T02:01:23.4852786Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4859439Z               "line": 495
2026-06-04T02:01:23.4859962Z             },
2026-06-04T02:01:23.4860406Z             {
2026-06-04T02:01:23.4861110Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4861545Z               "line": 123
2026-06-04T02:01:23.4861960Z             },
2026-06-04T02:01:23.4862379Z             {
2026-06-04T02:01:23.4863052Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4863493Z               "line": 138
2026-06-04T02:01:23.4863893Z             },
2026-06-04T02:01:23.4864299Z             {
2026-06-04T02:01:23.4864967Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-04T02:01:23.4865407Z               "line": 164
2026-06-04T02:01:23.4865807Z             }
2026-06-04T02:01:23.4866214Z           ]
2026-06-04T02:01:23.4866618Z         }
2026-06-04T02:01:23.4867013Z       }
2026-06-04T02:01:23.4867412Z     },
2026-06-04T02:01:23.4867804Z     {
2026-06-04T02:01:23.4868258Z       "id": "REQ-INST-8",
2026-06-04T02:01:23.4869090Z       "title": "Remote-control mode distinct from local operation",
2026-06-04T02:01:23.4869630Z       "requiredStages": [],
2026-06-04T02:01:23.4870064Z       "stages": {
2026-06-04T02:01:23.4870467Z         "doc": {
2026-06-04T02:01:23.4870933Z           "complete": false,
2026-06-04T02:01:23.4871380Z           "evidence": []
2026-06-04T02:01:23.4871780Z         },
2026-06-04T02:01:23.4872191Z         "impl": {
2026-06-04T02:01:23.4872654Z           "complete": false,
2026-06-04T02:01:23.4873096Z           "evidence": []
2026-06-04T02:01:23.4873496Z         },
2026-06-04T02:01:23.4873916Z         "int": {
2026-06-04T02:01:23.4874371Z           "complete": false,
2026-06-04T02:01:23.4874812Z           "evidence": []
2026-06-04T02:01:23.4875201Z         },
2026-06-04T02:01:23.4875616Z         "unit": {
2026-06-04T02:01:23.4876076Z           "complete": false,
2026-06-04T02:01:23.4876511Z           "evidence": []
2026-06-04T02:01:23.4876915Z         }
2026-06-04T02:01:23.4877300Z       }
2026-06-04T02:01:23.4877694Z     },
2026-06-04T02:01:23.4878077Z     {
2026-06-04T02:01:23.4878755Z       "id": "REQ-INST-9",
2026-06-04T02:01:23.4879889Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-04T02:01:23.4880352Z       "requiredStages": [
2026-06-04T02:01:23.4880765Z         "impl",
2026-06-04T02:01:23.4881308Z         "unit"
2026-06-04T02:01:23.4881712Z       ],
2026-06-04T02:01:23.4882124Z       "stages": {
2026-06-04T02:01:23.4882534Z         "doc": {
2026-06-04T02:01:23.4882997Z           "complete": false,
2026-06-04T02:01:23.4883438Z           "evidence": []
2026-06-04T02:01:23.4883845Z         },
2026-06-04T02:01:23.4884254Z         "impl": {
2026-06-04T02:01:23.4884717Z           "complete": true,
2026-06-04T02:01:23.4885151Z           "evidence": [
2026-06-04T02:01:23.4885557Z             {
2026-06-04T02:01:23.4886221Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4886661Z               "line": 191
2026-06-04T02:01:23.4887068Z             }
2026-06-04T02:01:23.4887463Z           ]
2026-06-04T02:01:23.4887874Z         },
2026-06-04T02:01:23.4888280Z         "int": {
2026-06-04T02:01:23.4888742Z           "complete": false,
2026-06-04T02:01:23.4889220Z           "evidence": []
2026-06-04T02:01:23.4889620Z         },
2026-06-04T02:01:23.4890048Z         "unit": {
2026-06-04T02:01:23.4890501Z           "complete": true,
2026-06-04T02:01:23.4890941Z           "evidence": [
2026-06-04T02:01:23.4891338Z             {
2026-06-04T02:01:23.4891997Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4892444Z               "line": 626
2026-06-04T02:01:23.4892842Z             },
2026-06-04T02:01:23.4893250Z             {
2026-06-04T02:01:23.4893900Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4894334Z               "line": 635
2026-06-04T02:01:23.4894732Z             },
2026-06-04T02:01:23.4895134Z             {
2026-06-04T02:01:23.4895784Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4896216Z               "line": 649
2026-06-04T02:01:23.4896639Z             },
2026-06-04T02:01:23.4897035Z             {
2026-06-04T02:01:23.4897693Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4898122Z               "line": 659
2026-06-04T02:01:23.4898543Z             },
2026-06-04T02:01:23.4898954Z             {
2026-06-04T02:01:23.4899637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-04T02:01:23.4900079Z               "line": 678
2026-06-04T02:01:23.4900476Z             }
2026-06-04T02:01:23.4900882Z           ]
2026-06-04T02:01:23.4901277Z         }
2026-06-04T02:01:23.4901681Z       }
2026-06-04T02:01:23.4902077Z     },
2026-06-04T02:01:23.4902468Z     {
2026-06-04T02:01:23.4902937Z       "id": "REQ-INSTALL-1",
2026-06-04T02:01:23.4904045Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-04T02:01:23.4904519Z       "requiredStages": [],
2026-06-04T02:01:23.4904931Z       "stages": {
2026-06-04T02:01:23.4905343Z         "doc": {
2026-06-04T02:01:23.4905822Z           "complete": false,
2026-06-04T02:01:23.4906259Z           "evidence": []
2026-06-04T02:01:23.4906663Z         },
2026-06-04T02:01:23.4907072Z         "impl": {
2026-06-04T02:01:23.4907535Z           "complete": false,
2026-06-04T02:01:23.4907988Z           "evidence": []
2026-06-04T02:01:23.4908401Z         },
2026-06-04T02:01:23.4908812Z         "int": {
2026-06-04T02:01:23.4909303Z           "complete": false,
2026-06-04T02:01:23.4909757Z           "evidence": []
2026-06-04T02:01:23.4910156Z         },
2026-06-04T02:01:23.4910576Z         "unit": {
2026-06-04T02:01:23.4911031Z           "complete": false,
2026-06-04T02:01:23.4911475Z           "evidence": []
2026-06-04T02:01:23.4911883Z         }
2026-06-04T02:01:23.4912276Z       }
2026-06-04T02:01:23.4912672Z     },
2026-06-04T02:01:23.4913059Z     {
2026-06-04T02:01:23.4913527Z       "id": "REQ-INSTALL-2",
2026-06-04T02:01:23.4914270Z       "title": "Marketplace-repackaging-friendly install",
2026-06-04T02:01:23.4914957Z       "requiredStages": [],
2026-06-04T02:01:23.4915396Z       "stages": {
2026-06-04T02:01:23.4915803Z         "doc": {
2026-06-04T02:01:23.4916268Z           "complete": false,
2026-06-04T02:01:23.4916708Z           "evidence": []
2026-06-04T02:01:23.4917249Z         },
2026-06-04T02:01:23.4917659Z         "impl": {
2026-06-04T02:01:23.4918122Z           "complete": false,
2026-06-04T02:01:23.4918572Z           "evidence": []
2026-06-04T02:01:23.4918965Z         },
2026-06-04T02:01:23.4919416Z         "int": {
2026-06-04T02:01:23.4919876Z           "complete": false,
2026-06-04T02:01:23.4920356Z           "evidence": []
2026-06-04T02:01:23.4920750Z         },
2026-06-04T02:01:23.4921167Z         "unit": {
2026-06-04T02:01:23.4921632Z           "complete": false,
2026-06-04T02:01:23.4922065Z           "evidence": []
2026-06-04T02:01:23.4922472Z         }
2026-06-04T02:01:23.4922862Z       }
2026-06-04T02:01:23.4923259Z     },
2026-06-04T02:01:23.4923650Z     {
2026-06-04T02:01:23.4924118Z       "id": "REQ-INSTALL-3",
2026-06-04T02:01:23.4924908Z       "title": "Idempotent + interactive-optional first run",
2026-06-04T02:01:23.4925374Z       "requiredStages": [],
2026-06-04T02:01:23.4925799Z       "stages": {
2026-06-04T02:01:23.4926206Z         "doc": {
2026-06-04T02:01:23.4926679Z           "complete": false,
2026-06-04T02:01:23.4927111Z           "evidence": []
2026-06-04T02:01:23.4927514Z         },
2026-06-04T02:01:23.4927938Z         "impl": {
2026-06-04T02:01:23.4928392Z           "complete": false,
2026-06-04T02:01:23.4928834Z           "evidence": []
2026-06-04T02:01:23.4929264Z         },
2026-06-04T02:01:23.4929681Z         "int": {
2026-06-04T02:01:23.4930131Z           "complete": false,
2026-06-04T02:01:23.4930572Z           "evidence": []
2026-06-04T02:01:23.4930977Z         },
2026-06-04T02:01:23.4931387Z         "unit": {
2026-06-04T02:01:23.4931852Z           "complete": false,
2026-06-04T02:01:23.4932284Z           "evidence": []
2026-06-04T02:01:23.4932694Z         }
2026-06-04T02:01:23.4933090Z       }
2026-06-04T02:01:23.4933497Z     },
2026-06-04T02:01:23.4942357Z     {
2026-06-04T02:01:23.4943032Z       "id": "REQ-INSTALL-4",
2026-06-04T02:01:23.4947342Z       "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-04T02:01:23.4947864Z       "requiredStages": [],
2026-06-04T02:01:23.4948288Z       "stages": {
2026-06-04T02:01:23.4948700Z         "doc": {
2026-06-04T02:01:23.4949287Z           "complete": false,
2026-06-04T02:01:23.4949847Z           "evidence": []
2026-06-04T02:01:23.4950257Z         },
2026-06-04T02:01:23.4950683Z         "impl": {
2026-06-04T02:01:23.4951133Z           "complete": false,
2026-06-04T02:01:23.4951577Z           "evidence": []
2026-06-04T02:01:23.4951970Z         },
2026-06-04T02:01:23.4952382Z         "int": {
2026-06-04T02:01:23.4952837Z           "complete": false,
2026-06-04T02:01:23.4953295Z           "evidence": []
2026-06-04T02:01:23.4953700Z         },
2026-06-04T02:01:23.4954105Z         "unit": {
2026-06-04T02:01:23.4954576Z           "complete": false,
2026-06-04T02:01:23.4955007Z           "evidence": []
2026-06-04T02:01:23.4955421Z         }
2026-06-04T02:01:23.4955822Z       }
2026-06-04T02:01:23.4956213Z     },
2026-06-04T02:01:23.4956614Z     {
2026-06-04T02:01:23.4957074Z       "id": "REQ-MANIFEST-1",
2026-06-04T02:01:23.4958181Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-04T02:01:23.4958650Z       "requiredStages": [
2026-06-04T02:01:23.4959067Z         "doc",
2026-06-04T02:01:23.4959528Z         "impl",
2026-06-04T02:01:23.4960239Z         "unit"
2026-06-04T02:01:23.4960663Z       ],
2026-06-04T02:01:23.4961081Z       "stages": {
2026-06-04T02:01:23.4961494Z         "doc": {
2026-06-04T02:01:23.4961943Z           "complete": true,
2026-06-04T02:01:23.4962386Z           "evidence": [
2026-06-04T02:01:23.4962794Z             {
2026-06-04T02:01:23.4963565Z               "path": "docs/MANIFEST.md",
2026-06-04T02:01:23.4964031Z               "line": 19
2026-06-04T02:01:23.4964435Z             }
2026-06-04T02:01:23.4964843Z           ]
2026-06-04T02:01:23.4965366Z         },
2026-06-04T02:01:23.4965794Z         "impl": {
2026-06-04T02:01:23.4966250Z           "complete": true,
2026-06-04T02:01:23.4966684Z           "evidence": [
2026-06-04T02:01:23.4967087Z             {
2026-06-04T02:01:23.4967752Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4968188Z               "line": 18
2026-06-04T02:01:23.4968589Z             }
2026-06-04T02:01:23.4968996Z           ]
2026-06-04T02:01:23.4969453Z         },
2026-06-04T02:01:23.4969860Z         "int": {
2026-06-04T02:01:23.4970330Z           "complete": false,
2026-06-04T02:01:23.4970769Z           "evidence": []
2026-06-04T02:01:23.4971177Z         },
2026-06-04T02:01:23.4971585Z         "unit": {
2026-06-04T02:01:23.4972040Z           "complete": true,
2026-06-04T02:01:23.4972495Z           "evidence": [
2026-06-04T02:01:23.4972900Z             {
2026-06-04T02:01:23.4973574Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4974015Z               "line": 695
2026-06-04T02:01:23.4974449Z             },
2026-06-04T02:01:23.4974845Z             {
2026-06-04T02:01:23.4975510Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4975952Z               "line": 791
2026-06-04T02:01:23.4976352Z             },
2026-06-04T02:01:23.4976762Z             {
2026-06-04T02:01:23.4977422Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4977865Z               "line": 803
2026-06-04T02:01:23.4978273Z             },
2026-06-04T02:01:23.4978680Z             {
2026-06-04T02:01:23.4979388Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4979825Z               "line": 811
2026-06-04T02:01:23.4980234Z             },
2026-06-04T02:01:23.4980630Z             {
2026-06-04T02:01:23.4981310Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4981753Z               "line": 828
2026-06-04T02:01:23.4982157Z             },
2026-06-04T02:01:23.4982561Z             {
2026-06-04T02:01:23.4983226Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4983665Z               "line": 842
2026-06-04T02:01:23.4984069Z             },
2026-06-04T02:01:23.4984477Z             {
2026-06-04T02:01:23.4985148Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4985582Z               "line": 857
2026-06-04T02:01:23.4985987Z             },
2026-06-04T02:01:23.4986386Z             {
2026-06-04T02:01:23.4987054Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4987493Z               "line": 872
2026-06-04T02:01:23.4987902Z             },
2026-06-04T02:01:23.4988313Z             {
2026-06-04T02:01:23.4988964Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4989450Z               "line": 887
2026-06-04T02:01:23.4989868Z             },
2026-06-04T02:01:23.4990279Z             {
2026-06-04T02:01:23.4990935Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.4991393Z               "line": 898
2026-06-04T02:01:23.4991798Z             }
2026-06-04T02:01:23.4992195Z           ]
2026-06-04T02:01:23.4992590Z         }
2026-06-04T02:01:23.4992984Z       }
2026-06-04T02:01:23.4993385Z     },
2026-06-04T02:01:23.4993769Z     {
2026-06-04T02:01:23.4994235Z       "id": "REQ-MIGRATE-1",
2026-06-04T02:01:23.4995215Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-04T02:01:23.4995683Z       "requiredStages": [],
2026-06-04T02:01:23.4996109Z       "stages": {
2026-06-04T02:01:23.4996515Z         "doc": {
2026-06-04T02:01:23.4996981Z           "complete": false,
2026-06-04T02:01:23.4997424Z           "evidence": []
2026-06-04T02:01:23.4997834Z         },
2026-06-04T02:01:23.4998251Z         "impl": {
2026-06-04T02:01:23.4998858Z           "complete": false,
2026-06-04T02:01:23.4999411Z           "evidence": []
2026-06-04T02:01:23.4999821Z         },
2026-06-04T02:01:23.5000235Z         "int": {
2026-06-04T02:01:23.5000689Z           "complete": false,
2026-06-04T02:01:23.5001264Z           "evidence": []
2026-06-04T02:01:23.5001667Z         },
2026-06-04T02:01:23.5002076Z         "unit": {
2026-06-04T02:01:23.5002541Z           "complete": false,
2026-06-04T02:01:23.5002977Z           "evidence": []
2026-06-04T02:01:23.5003381Z         }
2026-06-04T02:01:23.5003775Z       }
2026-06-04T02:01:23.5004177Z     },
2026-06-04T02:01:23.5004577Z     {
2026-06-04T02:01:23.5005029Z       "id": "REQ-MSG-1",
2026-06-04T02:01:23.5007970Z       "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-04T02:01:23.5008436Z       "requiredStages": [
2026-06-04T02:01:23.5008851Z         "impl",
2026-06-04T02:01:23.5009311Z         "unit",
2026-06-04T02:01:23.5009728Z         "int"
2026-06-04T02:01:23.5010131Z       ],
2026-06-04T02:01:23.5010552Z       "stages": {
2026-06-04T02:01:23.5010960Z         "doc": {
2026-06-04T02:01:23.5011415Z           "complete": false,
2026-06-04T02:01:23.5011874Z           "evidence": []
2026-06-04T02:01:23.5012273Z         },
2026-06-04T02:01:23.5012694Z         "impl": {
2026-06-04T02:01:23.5013151Z           "complete": true,
2026-06-04T02:01:23.5013581Z           "evidence": [
2026-06-04T02:01:23.5013991Z             {
2026-06-04T02:01:23.5014590Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5015022Z               "line": 28
2026-06-04T02:01:23.5015418Z             },
2026-06-04T02:01:23.5015821Z             {
2026-06-04T02:01:23.5016430Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5016849Z               "line": 91
2026-06-04T02:01:23.5017260Z             },
2026-06-04T02:01:23.5017658Z             {
2026-06-04T02:01:23.5018275Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5018711Z               "line": 134
2026-06-04T02:01:23.5019129Z             },
2026-06-04T02:01:23.5019564Z             {
2026-06-04T02:01:23.5020176Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5020611Z               "line": 159
2026-06-04T02:01:23.5021013Z             },
2026-06-04T02:01:23.5021420Z             {
2026-06-04T02:01:23.5022029Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5022465Z               "line": 18
2026-06-04T02:01:23.5022877Z             },
2026-06-04T02:01:23.5023271Z             {
2026-06-04T02:01:23.5023841Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.5024267Z               "line": 13
2026-06-04T02:01:23.5031128Z             },
2026-06-04T02:01:23.5031631Z             {
2026-06-04T02:01:23.5032249Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.5032704Z               "line": 61
2026-06-04T02:01:23.5033165Z             },
2026-06-04T02:01:23.5033594Z             {
2026-06-04T02:01:23.5034176Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:01:23.5034628Z               "line": 10
2026-06-04T02:01:23.5035067Z             }
2026-06-04T02:01:23.5035484Z           ]
2026-06-04T02:01:23.5035903Z         },
2026-06-04T02:01:23.5036327Z         "int": {
2026-06-04T02:01:23.5036803Z           "complete": true,
2026-06-04T02:01:23.5037250Z           "evidence": [
2026-06-04T02:01:23.5037670Z             {
2026-06-04T02:01:23.5038430Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:01:23.5038869Z               "line": 9
2026-06-04T02:01:23.5039351Z             },
2026-06-04T02:01:23.5039768Z             {
2026-06-04T02:01:23.5040531Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:01:23.5040971Z               "line": 66
2026-06-04T02:01:23.5041395Z             },
2026-06-04T02:01:23.5041811Z             {
2026-06-04T02:01:23.5042804Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:01:23.5043286Z               "line": 116
2026-06-04T02:01:23.5043701Z             }
2026-06-04T02:01:23.5044128Z           ]
2026-06-04T02:01:23.5044668Z         },
2026-06-04T02:01:23.5045098Z         "unit": {
2026-06-04T02:01:23.5045577Z           "complete": true,
2026-06-04T02:01:23.5046024Z           "evidence": [
2026-06-04T02:01:23.5046452Z             {
2026-06-04T02:01:23.5047072Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5047532Z               "line": 188
2026-06-04T02:01:23.5047947Z             },
2026-06-04T02:01:23.5048373Z             {
2026-06-04T02:01:23.5048997Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5049511Z               "line": 217
2026-06-04T02:01:23.5049938Z             },
2026-06-04T02:01:23.5050347Z             {
2026-06-04T02:01:23.5050973Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5051428Z               "line": 262
2026-06-04T02:01:23.5051853Z             },
2026-06-04T02:01:23.5052274Z             {
2026-06-04T02:01:23.5052883Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5053337Z               "line": 285
2026-06-04T02:01:23.5053764Z             },
2026-06-04T02:01:23.5054186Z             {
2026-06-04T02:01:23.5054792Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-04T02:01:23.5055244Z               "line": 307
2026-06-04T02:01:23.5055675Z             },
2026-06-04T02:01:23.5056088Z             {
2026-06-04T02:01:23.5056720Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5057166Z               "line": 203
2026-06-04T02:01:23.5057587Z             },
2026-06-04T02:01:23.5057997Z             {
2026-06-04T02:01:23.5058626Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5059082Z               "line": 233
2026-06-04T02:01:23.5059720Z             },
2026-06-04T02:01:23.5060313Z             {
2026-06-04T02:01:23.5060945Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5061402Z               "line": 247
2026-06-04T02:01:23.5061822Z             },
2026-06-04T02:01:23.5062241Z             {
2026-06-04T02:01:23.5062882Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5063326Z               "line": 259
2026-06-04T02:01:23.5063745Z             },
2026-06-04T02:01:23.5064160Z             {
2026-06-04T02:01:23.5064755Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.5065214Z               "line": 158
2026-06-04T02:01:23.5065630Z             },
2026-06-04T02:01:23.5066052Z             {
2026-06-04T02:01:23.5066626Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-04T02:01:23.5067084Z               "line": 235
2026-06-04T02:01:23.5067500Z             },
2026-06-04T02:01:23.5067920Z             {
2026-06-04T02:01:23.5068501Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:01:23.5068950Z               "line": 68
2026-06-04T02:01:23.5069407Z             },
2026-06-04T02:01:23.5070053Z             {
2026-06-04T02:01:23.5070641Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:01:23.5071082Z               "line": 74
2026-06-04T02:01:23.5071516Z             },
2026-06-04T02:01:23.5071932Z             {
2026-06-04T02:01:23.5072507Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:01:23.5072951Z               "line": 80
2026-06-04T02:01:23.5073370Z             },
2026-06-04T02:01:23.5073793Z             {
2026-06-04T02:01:23.5074367Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-04T02:01:23.5074819Z               "line": 99
2026-06-04T02:01:23.5075241Z             }
2026-06-04T02:01:23.5075652Z           ]
2026-06-04T02:01:23.5076077Z         }
2026-06-04T02:01:23.5076490Z       }
2026-06-04T02:01:23.5076904Z     },
2026-06-04T02:01:23.5077305Z     {
2026-06-04T02:01:23.5077762Z       "id": "REQ-MSG-2",
2026-06-04T02:01:23.5079594Z       "title": "spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes",
2026-06-04T02:01:23.5080092Z       "requiredStages": [
2026-06-04T02:01:23.5080524Z         "impl",
2026-06-04T02:01:23.5080946Z         "unit"
2026-06-04T02:01:23.5081540Z       ],
2026-06-04T02:01:23.5081974Z       "stages": {
2026-06-04T02:01:23.5082410Z         "doc": {
2026-06-04T02:01:23.5082892Z           "complete": false,
2026-06-04T02:01:23.5083347Z           "evidence": []
2026-06-04T02:01:23.5083773Z         },
2026-06-04T02:01:23.5084210Z         "impl": {
2026-06-04T02:01:23.5084680Z           "complete": true,
2026-06-04T02:01:23.5085126Z           "evidence": [
2026-06-04T02:01:23.5085545Z             {
2026-06-04T02:01:23.5086103Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5086549Z               "line": 11
2026-06-04T02:01:23.5086972Z             },
2026-06-04T02:01:23.5087383Z             {
2026-06-04T02:01:23.5087941Z               "path": "crates/spt/src/main.rs",
2026-06-04T02:01:23.5088389Z               "line": 8
2026-06-04T02:01:23.5088818Z             }
2026-06-04T02:01:23.5089291Z           ]
2026-06-04T02:01:23.5089706Z         },
2026-06-04T02:01:23.5090142Z         "int": {
2026-06-04T02:01:23.5090609Z           "complete": false,
2026-06-04T02:01:23.5091149Z           "evidence": []
2026-06-04T02:01:23.5091560Z         },
2026-06-04T02:01:23.5091990Z         "unit": {
2026-06-04T02:01:23.5092465Z           "complete": true,
2026-06-04T02:01:23.5092912Z           "evidence": [
2026-06-04T02:01:23.5093337Z             {
2026-06-04T02:01:23.5093887Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5094342Z               "line": 622
2026-06-04T02:01:23.5094759Z             },
2026-06-04T02:01:23.5095175Z             {
2026-06-04T02:01:23.5095722Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5096169Z               "line": 659
2026-06-04T02:01:23.5096592Z             },
2026-06-04T02:01:23.5097008Z             {
2026-06-04T02:01:23.5097578Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5098024Z               "line": 668
2026-06-04T02:01:23.5098448Z             },
2026-06-04T02:01:23.5098868Z             {
2026-06-04T02:01:23.5099446Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5099908Z               "line": 680
2026-06-04T02:01:23.5100316Z             }
2026-06-04T02:01:23.5100740Z           ]
2026-06-04T02:01:23.5101148Z         }
2026-06-04T02:01:23.5101564Z       }
2026-06-04T02:01:23.5101975Z     },
2026-06-04T02:01:23.5102377Z     {
2026-06-04T02:01:23.5102834Z       "id": "REQ-MSG-3",
2026-06-04T02:01:23.5105271Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-04T02:01:23.5105757Z       "requiredStages": [
2026-06-04T02:01:23.5106181Z         "impl",
2026-06-04T02:01:23.5106607Z         "unit",
2026-06-04T02:01:23.5107035Z         "int"
2026-06-04T02:01:23.5107472Z       ],
2026-06-04T02:01:23.5107953Z       "stages": {
2026-06-04T02:01:23.5108390Z         "doc": {
2026-06-04T02:01:23.5108879Z           "complete": false,
2026-06-04T02:01:23.5109365Z           "evidence": []
2026-06-04T02:01:23.5109791Z         },
2026-06-04T02:01:23.5110238Z         "impl": {
2026-06-04T02:01:23.5110699Z           "complete": true,
2026-06-04T02:01:23.5116917Z           "evidence": [
2026-06-04T02:01:23.5117436Z             {
2026-06-04T02:01:23.5118096Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-04T02:01:23.5118543Z               "line": 19
2026-06-04T02:01:23.5118971Z             },
2026-06-04T02:01:23.5119504Z             {
2026-06-04T02:01:23.5120100Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5120620Z               "line": 21
2026-06-04T02:01:23.5121035Z             },
2026-06-04T02:01:23.5121455Z             {
2026-06-04T02:01:23.5122048Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5122502Z               "line": 48
2026-06-04T02:01:23.5123184Z             },
2026-06-04T02:01:23.5123621Z             {
2026-06-04T02:01:23.5124227Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5124677Z               "line": 106
2026-06-04T02:01:23.5125236Z             }
2026-06-04T02:01:23.5125654Z           ]
2026-06-04T02:01:23.5126075Z         },
2026-06-04T02:01:23.5126507Z         "int": {
2026-06-04T02:01:23.5126972Z           "complete": true,
2026-06-04T02:01:23.5127431Z           "evidence": [
2026-06-04T02:01:23.5127846Z             {
2026-06-04T02:01:23.5128613Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:01:23.5129053Z               "line": 10
2026-06-04T02:01:23.5129523Z             },
2026-06-04T02:01:23.5129945Z             {
2026-06-04T02:01:23.5130704Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-04T02:01:23.5131247Z               "line": 66
2026-06-04T02:01:23.5131664Z             }
2026-06-04T02:01:23.5132089Z           ]
2026-06-04T02:01:23.5132518Z         },
2026-06-04T02:01:23.5132956Z         "unit": {
2026-06-04T02:01:23.5133429Z           "complete": true,
2026-06-04T02:01:23.5133875Z           "evidence": [
2026-06-04T02:01:23.5134300Z             {
2026-06-04T02:01:23.5134903Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5135361Z               "line": 160
2026-06-04T02:01:23.5135771Z             },
2026-06-04T02:01:23.5136187Z             {
2026-06-04T02:01:23.5136779Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5137223Z               "line": 179
2026-06-04T02:01:23.5137646Z             },
2026-06-04T02:01:23.5138060Z             {
2026-06-04T02:01:23.5138658Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-04T02:01:23.5139102Z               "line": 198
2026-06-04T02:01:23.5139557Z             }
2026-06-04T02:01:23.5139979Z           ]
2026-06-04T02:01:23.5140382Z         }
2026-06-04T02:01:23.5140843Z       }
2026-06-04T02:01:23.5141248Z     },
2026-06-04T02:01:23.5141676Z     {
2026-06-04T02:01:23.5142135Z       "id": "REQ-NET-1",
2026-06-04T02:01:23.5143204Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-04T02:01:23.5143689Z       "requiredStages": [
2026-06-04T02:01:23.5144127Z         "impl",
2026-06-04T02:01:23.5144548Z         "unit"
2026-06-04T02:01:23.5144961Z       ],
2026-06-04T02:01:23.5145404Z       "stages": {
2026-06-04T02:01:23.5145820Z         "doc": {
2026-06-04T02:01:23.5146297Z           "complete": false,
2026-06-04T02:01:23.5146752Z           "evidence": []
2026-06-04T02:01:23.5147167Z         },
2026-06-04T02:01:23.5147601Z         "impl": {
2026-06-04T02:01:23.5148068Z           "complete": true,
2026-06-04T02:01:23.5148521Z           "evidence": [
2026-06-04T02:01:23.5148935Z             {
2026-06-04T02:01:23.5149651Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5150104Z               "line": 65
2026-06-04T02:01:23.5150522Z             },
2026-06-04T02:01:23.5150959Z             {
2026-06-04T02:01:23.5151625Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5152080Z               "line": 122
2026-06-04T02:01:23.5152494Z             },
2026-06-04T02:01:23.5152916Z             {
2026-06-04T02:01:23.5153598Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5154043Z               "line": 138
2026-06-04T02:01:23.5154467Z             },
2026-06-04T02:01:23.5154879Z             {
2026-06-04T02:01:23.5155547Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5156004Z               "line": 153
2026-06-04T02:01:23.5156421Z             },
2026-06-04T02:01:23.5156845Z             {
2026-06-04T02:01:23.5157516Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5157969Z               "line": 207
2026-06-04T02:01:23.5158387Z             },
2026-06-04T02:01:23.5158809Z             {
2026-06-04T02:01:23.5159514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5160113Z               "line": 242
2026-06-04T02:01:23.5160558Z             },
2026-06-04T02:01:23.5160970Z             {
2026-06-04T02:01:23.5161643Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5162220Z               "line": 248
2026-06-04T02:01:23.5162647Z             },
2026-06-04T02:01:23.5163073Z             {
2026-06-04T02:01:23.5163732Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5164183Z               "line": 254
2026-06-04T02:01:23.5164603Z             },
2026-06-04T02:01:23.5165030Z             {
2026-06-04T02:01:23.5165723Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5166181Z               "line": 270
2026-06-04T02:01:23.5166601Z             }
2026-06-04T02:01:23.5167014Z           ]
2026-06-04T02:01:23.5167433Z         },
2026-06-04T02:01:23.5167851Z         "int": {
2026-06-04T02:01:23.5168330Z           "complete": false,
2026-06-04T02:01:23.5168786Z           "evidence": []
2026-06-04T02:01:23.5169265Z         },
2026-06-04T02:01:23.5169708Z         "unit": {
2026-06-04T02:01:23.5170174Z           "complete": true,
2026-06-04T02:01:23.5170626Z           "evidence": [
2026-06-04T02:01:23.5171033Z             {
2026-06-04T02:01:23.5171712Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5172159Z               "line": 331
2026-06-04T02:01:23.5172579Z             },
2026-06-04T02:01:23.5173002Z             {
2026-06-04T02:01:23.5173656Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5174112Z               "line": 345
2026-06-04T02:01:23.5174534Z             },
2026-06-04T02:01:23.5174955Z             {
2026-06-04T02:01:23.5175614Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5176072Z               "line": 364
2026-06-04T02:01:23.5176499Z             }
2026-06-04T02:01:23.5176913Z           ]
2026-06-04T02:01:23.5177335Z         }
2026-06-04T02:01:23.5177750Z       }
2026-06-04T02:01:23.5178179Z     },
2026-06-04T02:01:23.5178581Z     {
2026-06-04T02:01:23.5179044Z       "id": "REQ-NET-2",
2026-06-04T02:01:23.5180127Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-04T02:01:23.5180624Z       "requiredStages": [
2026-06-04T02:01:23.5181058Z         "impl"
2026-06-04T02:01:23.5181475Z       ],
2026-06-04T02:01:23.5181915Z       "stages": {
2026-06-04T02:01:23.5182342Z         "doc": {
2026-06-04T02:01:23.5182823Z           "complete": false,
2026-06-04T02:01:23.5183282Z           "evidence": []
2026-06-04T02:01:23.5183691Z         },
2026-06-04T02:01:23.5184121Z         "impl": {
2026-06-04T02:01:23.5184585Z           "complete": true,
2026-06-04T02:01:23.5185035Z           "evidence": [
2026-06-04T02:01:23.5185444Z             {
2026-06-04T02:01:23.5186096Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.5186545Z               "line": 40
2026-06-04T02:01:23.5186968Z             },
2026-06-04T02:01:23.5187387Z             {
2026-06-04T02:01:23.5188066Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5188521Z               "line": 39
2026-06-04T02:01:23.5188936Z             },
2026-06-04T02:01:23.5189390Z             {
2026-06-04T02:01:23.5190077Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5190519Z               "line": 49
2026-06-04T02:01:23.5190943Z             },
2026-06-04T02:01:23.5191354Z             {
2026-06-04T02:01:23.5192012Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5192457Z               "line": 122
2026-06-04T02:01:23.5192883Z             },
2026-06-04T02:01:23.5193307Z             {
2026-06-04T02:01:23.5193967Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5194421Z               "line": 138
2026-06-04T02:01:23.5194837Z             },
2026-06-04T02:01:23.5195254Z             {
2026-06-04T02:01:23.5201542Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-04T02:01:23.5202368Z               "line": 153
2026-06-04T02:01:23.5202817Z             }
2026-06-04T02:01:23.5203236Z           ]
2026-06-04T02:01:23.5203659Z         },
2026-06-04T02:01:23.5204084Z         "int": {
2026-06-04T02:01:23.5204704Z           "complete": false,
2026-06-04T02:01:23.5205164Z           "evidence": []
2026-06-04T02:01:23.5205583Z         },
2026-06-04T02:01:23.5206015Z         "unit": {
2026-06-04T02:01:23.5206483Z           "complete": true,
2026-06-04T02:01:23.5206937Z           "evidence": [
2026-06-04T02:01:23.5207350Z             {
2026-06-04T02:01:23.5208010Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.5208465Z               "line": 229
2026-06-04T02:01:23.5208895Z             }
2026-06-04T02:01:23.5209375Z           ]
2026-06-04T02:01:23.5209788Z         }
2026-06-04T02:01:23.5210206Z       }
2026-06-04T02:01:23.5210611Z     },
2026-06-04T02:01:23.5211023Z     {
2026-06-04T02:01:23.5211475Z       "id": "REQ-NET-3",
2026-06-04T02:01:23.5212457Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-04T02:01:23.5212944Z       "requiredStages": [],
2026-06-04T02:01:23.5213374Z       "stages": {
2026-06-04T02:01:23.5213804Z         "doc": {
2026-06-04T02:01:23.5214283Z           "complete": false,
2026-06-04T02:01:23.5214743Z           "evidence": []
2026-06-04T02:01:23.5215156Z         },
2026-06-04T02:01:23.5215591Z         "impl": {
2026-06-04T02:01:23.5216070Z           "complete": false,
2026-06-04T02:01:23.5216521Z           "evidence": []
2026-06-04T02:01:23.5216951Z         },
2026-06-04T02:01:23.5217372Z         "int": {
2026-06-04T02:01:23.5217848Z           "complete": false,
2026-06-04T02:01:23.5218301Z           "evidence": []
2026-06-04T02:01:23.5218720Z         },
2026-06-04T02:01:23.5219201Z         "unit": {
2026-06-04T02:01:23.5219680Z           "complete": false,
2026-06-04T02:01:23.5220179Z           "evidence": []
2026-06-04T02:01:23.5220587Z         }
2026-06-04T02:01:23.5221001Z       }
2026-06-04T02:01:23.5221412Z     },
2026-06-04T02:01:23.5221832Z     {
2026-06-04T02:01:23.5222337Z       "id": "REQ-NODE-IDENTITY",
2026-06-04T02:01:23.5223700Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-04T02:01:23.5224195Z       "requiredStages": [
2026-06-04T02:01:23.5224617Z         "impl",
2026-06-04T02:01:23.5225041Z         "unit"
2026-06-04T02:01:23.5225448Z       ],
2026-06-04T02:01:23.5225881Z       "stages": {
2026-06-04T02:01:23.5226309Z         "doc": {
2026-06-04T02:01:23.5226779Z           "complete": false,
2026-06-04T02:01:23.5227236Z           "evidence": []
2026-06-04T02:01:23.5227646Z         },
2026-06-04T02:01:23.5228077Z         "impl": {
2026-06-04T02:01:23.5228534Z           "complete": true,
2026-06-04T02:01:23.5228985Z           "evidence": [
2026-06-04T02:01:23.5229442Z             {
2026-06-04T02:01:23.5230094Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5230540Z               "line": 60
2026-06-04T02:01:23.5230967Z             },
2026-06-04T02:01:23.5231390Z             {
2026-06-04T02:01:23.5232040Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5232486Z               "line": 68
2026-06-04T02:01:23.5232916Z             },
2026-06-04T02:01:23.5233329Z             {
2026-06-04T02:01:23.5233985Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5234426Z               "line": 86
2026-06-04T02:01:23.5235689Z             },
2026-06-04T02:01:23.5236170Z             {
2026-06-04T02:01:23.5236842Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5237304Z               "line": 120
2026-06-04T02:01:23.5237722Z             },
2026-06-04T02:01:23.5238143Z             {
2026-06-04T02:01:23.5238796Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5239344Z               "line": 127
2026-06-04T02:01:23.5239797Z             },
2026-06-04T02:01:23.5240233Z             {
2026-06-04T02:01:23.5241126Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5241597Z               "line": 143
2026-06-04T02:01:23.5242020Z             },
2026-06-04T02:01:23.5242436Z             {
2026-06-04T02:01:23.5243062Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:01:23.5243646Z               "line": 16
2026-06-04T02:01:23.5244062Z             }
2026-06-04T02:01:23.5244488Z           ]
2026-06-04T02:01:23.5244902Z         },
2026-06-04T02:01:23.5245331Z         "int": {
2026-06-04T02:01:23.5245800Z           "complete": false,
2026-06-04T02:01:23.5246263Z           "evidence": []
2026-06-04T02:01:23.5246690Z         },
2026-06-04T02:01:23.5247120Z         "unit": {
2026-06-04T02:01:23.5247596Z           "complete": true,
2026-06-04T02:01:23.5248047Z           "evidence": [
2026-06-04T02:01:23.5248464Z             {
2026-06-04T02:01:23.5249125Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5249636Z               "line": 199
2026-06-04T02:01:23.5250082Z             },
2026-06-04T02:01:23.5250503Z             {
2026-06-04T02:01:23.5251166Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5251613Z               "line": 218
2026-06-04T02:01:23.5252042Z             },
2026-06-04T02:01:23.5252472Z             {
2026-06-04T02:01:23.5253133Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5253593Z               "line": 232
2026-06-04T02:01:23.5254016Z             },
2026-06-04T02:01:23.5254444Z             {
2026-06-04T02:01:23.5255095Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-04T02:01:23.5255553Z               "line": 248
2026-06-04T02:01:23.5255966Z             },
2026-06-04T02:01:23.5256382Z             {
2026-06-04T02:01:23.5257011Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:01:23.5257457Z               "line": 107
2026-06-04T02:01:23.5257882Z             },
2026-06-04T02:01:23.5258296Z             {
2026-06-04T02:01:23.5258935Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:01:23.5259438Z               "line": 123
2026-06-04T02:01:23.5259864Z             },
2026-06-04T02:01:23.5260283Z             {
2026-06-04T02:01:23.5260959Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-04T02:01:23.5261430Z               "line": 135
2026-06-04T02:01:23.5261846Z             }
2026-06-04T02:01:23.5262265Z           ]
2026-06-04T02:01:23.5262674Z         }
2026-06-04T02:01:23.5263090Z       }
2026-06-04T02:01:23.5263500Z     },
2026-06-04T02:01:23.5263905Z     {
2026-06-04T02:01:23.5264375Z       "id": "REQ-NOTIF-1",
2026-06-04T02:01:23.5266732Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-04T02:01:23.5267231Z       "requiredStages": [],
2026-06-04T02:01:23.5267659Z       "stages": {
2026-06-04T02:01:23.5268089Z         "doc": {
2026-06-04T02:01:23.5268560Z           "complete": false,
2026-06-04T02:01:23.5269028Z           "evidence": []
2026-06-04T02:01:23.5269498Z         },
2026-06-04T02:01:23.5269929Z         "impl": {
2026-06-04T02:01:23.5270406Z           "complete": false,
2026-06-04T02:01:23.5270855Z           "evidence": []
2026-06-04T02:01:23.5271291Z         },
2026-06-04T02:01:23.5271718Z         "int": {
2026-06-04T02:01:23.5272183Z           "complete": false,
2026-06-04T02:01:23.5272639Z           "evidence": []
2026-06-04T02:01:23.5273047Z         },
2026-06-04T02:01:23.5273479Z         "unit": {
2026-06-04T02:01:23.5273944Z           "complete": false,
2026-06-04T02:01:23.5274399Z           "evidence": []
2026-06-04T02:01:23.5274822Z         }
2026-06-04T02:01:23.5275233Z       }
2026-06-04T02:01:23.5275646Z     },
2026-06-04T02:01:23.5276054Z     {
2026-06-04T02:01:23.5276525Z       "id": "REQ-NOTIF-2",
2026-06-04T02:01:23.5278151Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-04T02:01:23.5278639Z       "requiredStages": [],
2026-06-04T02:01:23.5279271Z       "stages": {
2026-06-04T02:01:23.5279805Z         "doc": {
2026-06-04T02:01:23.5280314Z           "complete": false,
2026-06-04T02:01:23.5280768Z           "evidence": []
2026-06-04T02:01:23.5281191Z         },
2026-06-04T02:01:23.5281760Z         "impl": {
2026-06-04T02:01:23.5282247Z           "complete": false,
2026-06-04T02:01:23.5282708Z           "evidence": []
2026-06-04T02:01:23.5288920Z         },
2026-06-04T02:01:23.5289616Z         "int": {
2026-06-04T02:01:23.5290104Z           "complete": false,
2026-06-04T02:01:23.5290566Z           "evidence": []
2026-06-04T02:01:23.5290978Z         },
2026-06-04T02:01:23.5291420Z         "unit": {
2026-06-04T02:01:23.5291898Z           "complete": false,
2026-06-04T02:01:23.5292351Z           "evidence": []
2026-06-04T02:01:23.5292770Z         }
2026-06-04T02:01:23.5293179Z       }
2026-06-04T02:01:23.5293592Z     },
2026-06-04T02:01:23.5293999Z     {
2026-06-04T02:01:23.5294469Z       "id": "REQ-PAIR-1",
2026-06-04T02:01:23.5295086Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-04T02:01:23.5295569Z       "requiredStages": [
2026-06-04T02:01:23.5296001Z         "impl",
2026-06-04T02:01:23.5296418Z         "unit"
2026-06-04T02:01:23.5296832Z       ],
2026-06-04T02:01:23.5297275Z       "stages": {
2026-06-04T02:01:23.5297702Z         "doc": {
2026-06-04T02:01:23.5298177Z           "complete": false,
2026-06-04T02:01:23.5298629Z           "evidence": []
2026-06-04T02:01:23.5299049Z         },
2026-06-04T02:01:23.5299513Z         "impl": {
2026-06-04T02:01:23.5299989Z           "complete": true,
2026-06-04T02:01:23.5300431Z           "evidence": [
2026-06-04T02:01:23.5300854Z             {
2026-06-04T02:01:23.5301591Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5302033Z               "line": 27
2026-06-04T02:01:23.5302451Z             },
2026-06-04T02:01:23.5302871Z             {
2026-06-04T02:01:23.5303595Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5304051Z               "line": 88
2026-06-04T02:01:23.5304477Z             },
2026-06-04T02:01:23.5304895Z             {
2026-06-04T02:01:23.5305613Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5306280Z               "line": 110
2026-06-04T02:01:23.5307040Z             },
2026-06-04T02:01:23.5307537Z             {
2026-06-04T02:01:23.5308325Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5308854Z               "line": 153
2026-06-04T02:01:23.5309360Z             },
2026-06-04T02:01:23.5309953Z             {
2026-06-04T02:01:23.5310718Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5311215Z               "line": 182
2026-06-04T02:01:23.5311669Z             },
2026-06-04T02:01:23.5312098Z             {
2026-06-04T02:01:23.5312902Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5313400Z               "line": 29
2026-06-04T02:01:23.5313889Z             },
2026-06-04T02:01:23.5314347Z             {
2026-06-04T02:01:23.5315246Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-04T02:01:23.5315714Z               "line": 31
2026-06-04T02:01:23.5316145Z             },
2026-06-04T02:01:23.5316612Z             {
2026-06-04T02:01:23.5317357Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5317840Z               "line": 40
2026-06-04T02:01:23.5318313Z             },
2026-06-04T02:01:23.5318773Z             {
2026-06-04T02:01:23.5319824Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5320335Z               "line": 131
2026-06-04T02:01:23.5320817Z             },
2026-06-04T02:01:23.5321303Z             {
2026-06-04T02:01:23.5322148Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5322724Z               "line": 306
2026-06-04T02:01:23.5323219Z             }
2026-06-04T02:01:23.5323681Z           ]
2026-06-04T02:01:23.5324124Z         },
2026-06-04T02:01:23.5324983Z         "int": {
2026-06-04T02:01:23.5325546Z           "complete": false,
2026-06-04T02:01:23.5326019Z           "evidence": []
2026-06-04T02:01:23.5326459Z         },
2026-06-04T02:01:23.5326908Z         "unit": {
2026-06-04T02:01:23.5327611Z           "complete": true,
2026-06-04T02:01:23.5328111Z           "evidence": [
2026-06-04T02:01:23.5328548Z             {
2026-06-04T02:01:23.5329524Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5329994Z               "line": 236
2026-06-04T02:01:23.5330419Z             },
2026-06-04T02:01:23.5330845Z             {
2026-06-04T02:01:23.5331584Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-04T02:01:23.5332218Z               "line": 349
2026-06-04T02:01:23.5332668Z             },
2026-06-04T02:01:23.5333117Z             {
2026-06-04T02:01:23.5333885Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5334365Z               "line": 194
2026-06-04T02:01:23.5334828Z             },
2026-06-04T02:01:23.5335271Z             {
2026-06-04T02:01:23.5336012Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5336480Z               "line": 216
2026-06-04T02:01:23.5336935Z             },
2026-06-04T02:01:23.5337372Z             {
2026-06-04T02:01:23.5338101Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5338577Z               "line": 230
2026-06-04T02:01:23.5339013Z             },
2026-06-04T02:01:23.5339638Z             {
2026-06-04T02:01:23.5340349Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5340970Z               "line": 242
2026-06-04T02:01:23.5341543Z             },
2026-06-04T02:01:23.5341961Z             {
2026-06-04T02:01:23.5342678Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5343134Z               "line": 256
2026-06-04T02:01:23.5343721Z             },
2026-06-04T02:01:23.5344173Z             {
2026-06-04T02:01:23.5344947Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5345428Z               "line": 270
2026-06-04T02:01:23.5345863Z             },
2026-06-04T02:01:23.5346305Z             {
2026-06-04T02:01:23.5347040Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5347522Z               "line": 277
2026-06-04T02:01:23.5347955Z             },
2026-06-04T02:01:23.5348395Z             {
2026-06-04T02:01:23.5349141Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-04T02:01:23.5349782Z               "line": 295
2026-06-04T02:01:23.5350211Z             },
2026-06-04T02:01:23.5350626Z             {
2026-06-04T02:01:23.5351339Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5351786Z               "line": 696
2026-06-04T02:01:23.5352216Z             },
2026-06-04T02:01:23.5352644Z             {
2026-06-04T02:01:23.5353346Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5353817Z               "line": 757
2026-06-04T02:01:23.5354231Z             },
2026-06-04T02:01:23.5354659Z             {
2026-06-04T02:01:23.5355366Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5355836Z               "line": 814
2026-06-04T02:01:23.5356260Z             },
2026-06-04T02:01:23.5356672Z             {
2026-06-04T02:01:23.5357375Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5357825Z               "line": 868
2026-06-04T02:01:23.5358248Z             },
2026-06-04T02:01:23.5358680Z             {
2026-06-04T02:01:23.5359754Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5360382Z               "line": 920
2026-06-04T02:01:23.5360805Z             },
2026-06-04T02:01:23.5361228Z             {
2026-06-04T02:01:23.5361933Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5362399Z               "line": 1084
2026-06-04T02:01:23.5362998Z             }
2026-06-04T02:01:23.5363432Z           ]
2026-06-04T02:01:23.5363855Z         }
2026-06-04T02:01:23.5364268Z       }
2026-06-04T02:01:23.5364686Z     },
2026-06-04T02:01:23.5365092Z     {
2026-06-04T02:01:23.5365571Z       "id": "REQ-PAIR-2",
2026-06-04T02:01:23.5366492Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-04T02:01:23.5366967Z       "requiredStages": [
2026-06-04T02:01:23.5367399Z         "impl",
2026-06-04T02:01:23.5367822Z         "unit"
2026-06-04T02:01:23.5368244Z       ],
2026-06-04T02:01:23.5368673Z       "stages": {
2026-06-04T02:01:23.5369108Z         "doc": {
2026-06-04T02:01:23.5370137Z           "complete": false,
2026-06-04T02:01:23.5370596Z           "evidence": []
2026-06-04T02:01:23.5371019Z         },
2026-06-04T02:01:23.5371446Z         "impl": {
2026-06-04T02:01:23.5379971Z           "complete": true,
2026-06-04T02:01:23.5380584Z           "evidence": [
2026-06-04T02:01:23.5381019Z             {
2026-06-04T02:01:23.5381705Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5382162Z               "line": 42
2026-06-04T02:01:23.5382588Z             },
2026-06-04T02:01:23.5383009Z             {
2026-06-04T02:01:23.5383635Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5384096Z               "line": 151
2026-06-04T02:01:23.5384525Z             },
2026-06-04T02:01:23.5384948Z             {
2026-06-04T02:01:23.5385559Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5386020Z               "line": 171
2026-06-04T02:01:23.5386435Z             },
2026-06-04T02:01:23.5386865Z             {
2026-06-04T02:01:23.5387479Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5387941Z               "line": 209
2026-06-04T02:01:23.5388372Z             },
2026-06-04T02:01:23.5388791Z             {
2026-06-04T02:01:23.5389659Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5390286Z               "line": 232
2026-06-04T02:01:23.5390712Z             }
2026-06-04T02:01:23.5391138Z           ]
2026-06-04T02:01:23.5391565Z         },
2026-06-04T02:01:23.5391999Z         "int": {
2026-06-04T02:01:23.5392484Z           "complete": false,
2026-06-04T02:01:23.5393004Z           "evidence": []
2026-06-04T02:01:23.5393447Z         },
2026-06-04T02:01:23.5393911Z         "unit": {
2026-06-04T02:01:23.5394403Z           "complete": true,
2026-06-04T02:01:23.5394893Z           "evidence": [
2026-06-04T02:01:23.5395344Z             {
2026-06-04T02:01:23.5396007Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5396493Z               "line": 253
2026-06-04T02:01:23.5396922Z             },
2026-06-04T02:01:23.5397360Z             {
2026-06-04T02:01:23.5397983Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5398454Z               "line": 272
2026-06-04T02:01:23.5398886Z             },
2026-06-04T02:01:23.5399516Z             {
2026-06-04T02:01:23.5400358Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5400862Z               "line": 284
2026-06-04T02:01:23.5401386Z             },
2026-06-04T02:01:23.5401818Z             {
2026-06-04T02:01:23.5402481Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5402978Z               "line": 303
2026-06-04T02:01:23.5403403Z             },
2026-06-04T02:01:23.5403844Z             {
2026-06-04T02:01:23.5404484Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5404976Z               "line": 319
2026-06-04T02:01:23.5405436Z             },
2026-06-04T02:01:23.5405890Z             {
2026-06-04T02:01:23.5406532Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5406993Z               "line": 331
2026-06-04T02:01:23.5407427Z             },
2026-06-04T02:01:23.5407850Z             {
2026-06-04T02:01:23.5408500Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5408975Z               "line": 343
2026-06-04T02:01:23.5409661Z             },
2026-06-04T02:01:23.5410764Z             {
2026-06-04T02:01:23.5411489Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5411972Z               "line": 356
2026-06-04T02:01:23.5412430Z             },
2026-06-04T02:01:23.5412998Z             {
2026-06-04T02:01:23.5413867Z               "path": "crates/spt-store/src/trust.rs",
2026-06-04T02:01:23.5414395Z               "line": 370
2026-06-04T02:01:23.5414891Z             }
2026-06-04T02:01:23.5415366Z           ]
2026-06-04T02:01:23.5415848Z         }
2026-06-04T02:01:23.5416296Z       }
2026-06-04T02:01:23.5416781Z     },
2026-06-04T02:01:23.5417231Z     {
2026-06-04T02:01:23.5417751Z       "id": "REQ-PAIR-3",
2026-06-04T02:01:23.5418699Z       "title": "Fetch current pairing code from any paired node",
2026-06-04T02:01:23.5419438Z       "requiredStages": [
2026-06-04T02:01:23.5420107Z         "impl",
2026-06-04T02:01:23.5420579Z         "unit"
2026-06-04T02:01:23.5421057Z       ],
2026-06-04T02:01:23.5421530Z       "stages": {
2026-06-04T02:01:23.5422055Z         "doc": {
2026-06-04T02:01:23.5422614Z           "complete": false,
2026-06-04T02:01:23.5423094Z           "evidence": []
2026-06-04T02:01:23.5423557Z         },
2026-06-04T02:01:23.5424047Z         "impl": {
2026-06-04T02:01:23.5424604Z           "complete": true,
2026-06-04T02:01:23.5425067Z           "evidence": [
2026-06-04T02:01:23.5425560Z             {
2026-06-04T02:01:23.5426198Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5426676Z               "line": 464
2026-06-04T02:01:23.5427125Z             },
2026-06-04T02:01:23.5427571Z             {
2026-06-04T02:01:23.5428182Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5428680Z               "line": 500
2026-06-04T02:01:23.5429191Z             },
2026-06-04T02:01:23.5429944Z             {
2026-06-04T02:01:23.5430557Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5431045Z               "line": 560
2026-06-04T02:01:23.5431503Z             }
2026-06-04T02:01:23.5431991Z           ]
2026-06-04T02:01:23.5432485Z         },
2026-06-04T02:01:23.5432966Z         "int": {
2026-06-04T02:01:23.5433459Z           "complete": false,
2026-06-04T02:01:23.5433947Z           "evidence": []
2026-06-04T02:01:23.5434411Z         },
2026-06-04T02:01:23.5434874Z         "unit": {
2026-06-04T02:01:23.5435384Z           "complete": true,
2026-06-04T02:01:23.5435853Z           "evidence": [
2026-06-04T02:01:23.5436295Z             {
2026-06-04T02:01:23.5436894Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5437363Z               "line": 696
2026-06-04T02:01:23.5437812Z             },
2026-06-04T02:01:23.5438250Z             {
2026-06-04T02:01:23.5438828Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5439516Z               "line": 713
2026-06-04T02:01:23.5440192Z             },
2026-06-04T02:01:23.5440656Z             {
2026-06-04T02:01:23.5441251Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5441849Z               "line": 727
2026-06-04T02:01:23.5442310Z             },
2026-06-04T02:01:23.5442765Z             {
2026-06-04T02:01:23.5443339Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5443797Z               "line": 743
2026-06-04T02:01:23.5444244Z             },
2026-06-04T02:01:23.5444676Z             {
2026-06-04T02:01:23.5445252Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5445718Z               "line": 764
2026-06-04T02:01:23.5446154Z             },
2026-06-04T02:01:23.5446598Z             {
2026-06-04T02:01:23.5447152Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5447634Z               "line": 780
2026-06-04T02:01:23.5448083Z             },
2026-06-04T02:01:23.5448524Z             {
2026-06-04T02:01:23.5449092Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5449986Z               "line": 793
2026-06-04T02:01:23.5450456Z             },
2026-06-04T02:01:23.5450882Z             {
2026-06-04T02:01:23.5451457Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5452364Z               "line": 802
2026-06-04T02:01:23.5452861Z             }
2026-06-04T02:01:23.5453300Z           ]
2026-06-04T02:01:23.5453740Z         }
2026-06-04T02:01:23.5454185Z       }
2026-06-04T02:01:23.5454619Z     },
2026-06-04T02:01:23.5455241Z     {
2026-06-04T02:01:23.5455742Z       "id": "REQ-PAIR-4",
2026-06-04T02:01:23.5456374Z       "title": "Subnet naming on first pairing",
2026-06-04T02:01:23.5456890Z       "requiredStages": [
2026-06-04T02:01:23.5457362Z         "impl",
2026-06-04T02:01:23.5457828Z         "unit"
2026-06-04T02:01:23.5458260Z       ],
2026-06-04T02:01:23.5458720Z       "stages": {
2026-06-04T02:01:23.5459152Z         "doc": {
2026-06-04T02:01:23.5460088Z           "complete": false,
2026-06-04T02:01:23.5460550Z           "evidence": []
2026-06-04T02:01:23.5460980Z         },
2026-06-04T02:01:23.5461419Z         "impl": {
2026-06-04T02:01:23.5461905Z           "complete": true,
2026-06-04T02:01:23.5462368Z           "evidence": [
2026-06-04T02:01:23.5462803Z             {
2026-06-04T02:01:23.5463448Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-04T02:01:23.5463908Z               "line": 154
2026-06-04T02:01:23.5464348Z             }
2026-06-04T02:01:23.5464785Z           ]
2026-06-04T02:01:23.5473672Z         },
2026-06-04T02:01:23.5474128Z         "int": {
2026-06-04T02:01:23.5474610Z           "complete": false,
2026-06-04T02:01:23.5475086Z           "evidence": []
2026-06-04T02:01:23.5475510Z         },
2026-06-04T02:01:23.5475958Z         "unit": {
2026-06-04T02:01:23.5476444Z           "complete": true,
2026-06-04T02:01:23.5476919Z           "evidence": [
2026-06-04T02:01:23.5477353Z             {
2026-06-04T02:01:23.5478083Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5478553Z               "line": 972
2026-06-04T02:01:23.5478974Z             }
2026-06-04T02:01:23.5479678Z           ]
2026-06-04T02:01:23.5480209Z         }
2026-06-04T02:01:23.5480671Z       }
2026-06-04T02:01:23.5481121Z     },
2026-06-04T02:01:23.5481568Z     {
2026-06-04T02:01:23.5482098Z       "id": "REQ-PAIR-5",
2026-06-04T02:01:23.5484100Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-04T02:01:23.5484642Z       "requiredStages": [
2026-06-04T02:01:23.5485118Z         "impl",
2026-06-04T02:01:23.5485566Z         "unit"
2026-06-04T02:01:23.5486006Z       ],
2026-06-04T02:01:23.5486458Z       "stages": {
2026-06-04T02:01:23.5486917Z         "doc": {
2026-06-04T02:01:23.5487404Z           "complete": false,
2026-06-04T02:01:23.5487918Z           "evidence": []
2026-06-04T02:01:23.5488523Z         },
2026-06-04T02:01:23.5488981Z         "impl": {
2026-06-04T02:01:23.5489525Z           "complete": true,
2026-06-04T02:01:23.5490046Z           "evidence": [
2026-06-04T02:01:23.5490475Z             {
2026-06-04T02:01:23.5491287Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5491760Z               "line": 33
2026-06-04T02:01:23.5492216Z             },
2026-06-04T02:01:23.5492648Z             {
2026-06-04T02:01:23.5493462Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5493908Z               "line": 45
2026-06-04T02:01:23.5494360Z             },
2026-06-04T02:01:23.5494792Z             {
2026-06-04T02:01:23.5495599Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5496052Z               "line": 59
2026-06-04T02:01:23.5496473Z             },
2026-06-04T02:01:23.5496898Z             {
2026-06-04T02:01:23.5497611Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5498077Z               "line": 306
2026-06-04T02:01:23.5498501Z             }
2026-06-04T02:01:23.5498919Z           ]
2026-06-04T02:01:23.5499409Z         },
2026-06-04T02:01:23.5499849Z         "int": {
2026-06-04T02:01:23.5500337Z           "complete": false,
2026-06-04T02:01:23.5500816Z           "evidence": []
2026-06-04T02:01:23.5501253Z         },
2026-06-04T02:01:23.5502186Z         "unit": {
2026-06-04T02:01:23.5502758Z           "complete": true,
2026-06-04T02:01:23.5503229Z           "evidence": [
2026-06-04T02:01:23.5503656Z             {
2026-06-04T02:01:23.5504481Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5505136Z               "line": 72
2026-06-04T02:01:23.5505594Z             },
2026-06-04T02:01:23.5506015Z             {
2026-06-04T02:01:23.5506835Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5507302Z               "line": 82
2026-06-04T02:01:23.5507724Z             },
2026-06-04T02:01:23.5508153Z             {
2026-06-04T02:01:23.5508954Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5509485Z               "line": 92
2026-06-04T02:01:23.5509910Z             },
2026-06-04T02:01:23.5510407Z             {
2026-06-04T02:01:23.5511220Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5511699Z               "line": 102
2026-06-04T02:01:23.5512118Z             },
2026-06-04T02:01:23.5512540Z             {
2026-06-04T02:01:23.5513367Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-04T02:01:23.5513841Z               "line": 117
2026-06-04T02:01:23.5514292Z             },
2026-06-04T02:01:23.5514723Z             {
2026-06-04T02:01:23.5515443Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5515905Z               "line": 750
2026-06-04T02:01:23.5516326Z             },
2026-06-04T02:01:23.5516758Z             {
2026-06-04T02:01:23.5517481Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5517938Z               "line": 806
2026-06-04T02:01:23.5518372Z             },
2026-06-04T02:01:23.5518825Z             {
2026-06-04T02:01:23.5519868Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-04T02:01:23.5520439Z               "line": 1026
2026-06-04T02:01:23.5521094Z             }
2026-06-04T02:01:23.5521596Z           ]
2026-06-04T02:01:23.5522196Z         }
2026-06-04T02:01:23.5522671Z       }
2026-06-04T02:01:23.5523086Z     },
2026-06-04T02:01:23.5523508Z     {
2026-06-04T02:01:23.5524004Z       "id": "REQ-PAIR-6",
2026-06-04T02:01:23.5525643Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-04T02:01:23.5526167Z       "requiredStages": [
2026-06-04T02:01:23.5526626Z         "impl",
2026-06-04T02:01:23.5527084Z         "unit"
2026-06-04T02:01:23.5527522Z       ],
2026-06-04T02:01:23.5527978Z       "stages": {
2026-06-04T02:01:23.5528409Z         "doc": {
2026-06-04T02:01:23.5528908Z           "complete": false,
2026-06-04T02:01:23.5529624Z           "evidence": []
2026-06-04T02:01:23.5530355Z         },
2026-06-04T02:01:23.5530800Z         "impl": {
2026-06-04T02:01:23.5531286Z           "complete": true,
2026-06-04T02:01:23.5531754Z           "evidence": [
2026-06-04T02:01:23.5532181Z             {
2026-06-04T02:01:23.5532966Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5533535Z               "line": 500
2026-06-04T02:01:23.5534067Z             },
2026-06-04T02:01:23.5534611Z             {
2026-06-04T02:01:23.5535279Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5535795Z               "line": 560
2026-06-04T02:01:23.5536252Z             },
2026-06-04T02:01:23.5536711Z             {
2026-06-04T02:01:23.5537369Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:01:23.5537844Z               "line": 18
2026-06-04T02:01:23.5538298Z             },
2026-06-04T02:01:23.5538747Z             {
2026-06-04T02:01:23.5539465Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:01:23.5540094Z               "line": 49
2026-06-04T02:01:23.5540530Z             },
2026-06-04T02:01:23.5540968Z             {
2026-06-04T02:01:23.5541567Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:01:23.5542027Z               "line": 70
2026-06-04T02:01:23.5542792Z             }
2026-06-04T02:01:23.5543461Z           ]
2026-06-04T02:01:23.5543949Z         },
2026-06-04T02:01:23.5544446Z         "int": {
2026-06-04T02:01:23.5544978Z           "complete": false,
2026-06-04T02:01:23.5545710Z           "evidence": []
2026-06-04T02:01:23.5546156Z         },
2026-06-04T02:01:23.5546598Z         "unit": {
2026-06-04T02:01:23.5547103Z           "complete": true,
2026-06-04T02:01:23.5547562Z           "evidence": [
2026-06-04T02:01:23.5547994Z             {
2026-06-04T02:01:23.5548601Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5549080Z               "line": 815
2026-06-04T02:01:23.5549780Z             },
2026-06-04T02:01:23.5550215Z             {
2026-06-04T02:01:23.5550802Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.5551297Z               "line": 832
2026-06-04T02:01:23.5551753Z             },
2026-06-04T02:01:23.5552209Z             {
2026-06-04T02:01:23.5552983Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:01:23.5553461Z               "line": 132
2026-06-04T02:01:23.5553893Z             },
2026-06-04T02:01:23.5554328Z             {
2026-06-04T02:01:23.5554936Z               "path": "crates/spt/src/elevation.rs",
2026-06-04T02:01:23.5555417Z               "line": 141
2026-06-04T02:01:23.5555851Z             }
2026-06-04T02:01:23.5556263Z           ]
2026-06-04T02:01:23.5556680Z         }
2026-06-04T02:01:23.5557084Z       }
2026-06-04T02:01:23.5557496Z     },
2026-06-04T02:01:23.5557907Z     {
2026-06-04T02:01:23.5558391Z       "id": "REQ-PAIR-7",
2026-06-04T02:01:23.5559562Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-04T02:01:23.5560218Z       "requiredStages": [],
2026-06-04T02:01:23.5560671Z       "stages": {
2026-06-04T02:01:23.5561101Z         "doc": {
2026-06-04T02:01:23.5569640Z           "complete": false,
2026-06-04T02:01:23.5570376Z           "evidence": []
2026-06-04T02:01:23.5570790Z         },
2026-06-04T02:01:23.5571225Z         "impl": {
2026-06-04T02:01:23.5571728Z           "complete": false,
2026-06-04T02:01:23.5572185Z           "evidence": []
2026-06-04T02:01:23.5572593Z         },
2026-06-04T02:01:23.5573018Z         "int": {
2026-06-04T02:01:23.5573488Z           "complete": false,
2026-06-04T02:01:23.5573960Z           "evidence": []
2026-06-04T02:01:23.5574376Z         },
2026-06-04T02:01:23.5574787Z         "unit": {
2026-06-04T02:01:23.5575259Z           "complete": false,
2026-06-04T02:01:23.5575716Z           "evidence": []
2026-06-04T02:01:23.5576136Z         }
2026-06-04T02:01:23.5576544Z       }
2026-06-04T02:01:23.5576961Z     },
2026-06-04T02:01:23.5577376Z     {
2026-06-04T02:01:23.5577842Z       "id": "REQ-REACH-1",
2026-06-04T02:01:23.5578675Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-04T02:01:23.5579143Z       "requiredStages": [],
2026-06-04T02:01:23.5579802Z       "stages": {
2026-06-04T02:01:23.5580364Z         "doc": {
2026-06-04T02:01:23.5580827Z           "complete": false,
2026-06-04T02:01:23.5581294Z           "evidence": []
2026-06-04T02:01:23.5581802Z         },
2026-06-04T02:01:23.5582228Z         "impl": {
2026-06-04T02:01:23.5582682Z           "complete": false,
2026-06-04T02:01:23.5583128Z           "evidence": []
2026-06-04T02:01:23.5583545Z         },
2026-06-04T02:01:23.5583966Z         "int": {
2026-06-04T02:01:23.5584439Z           "complete": false,
2026-06-04T02:01:23.5584878Z           "evidence": []
2026-06-04T02:01:23.5585283Z         },
2026-06-04T02:01:23.5585692Z         "unit": {
2026-06-04T02:01:23.5586161Z           "complete": false,
2026-06-04T02:01:23.5586590Z           "evidence": []
2026-06-04T02:01:23.5586991Z         }
2026-06-04T02:01:23.5587395Z       }
2026-06-04T02:01:23.5587785Z     },
2026-06-04T02:01:23.5588210Z     {
2026-06-04T02:01:23.5588686Z       "id": "REQ-REACH-2",
2026-06-04T02:01:23.5590063Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-04T02:01:23.5590549Z       "requiredStages": [],
2026-06-04T02:01:23.5591397Z       "stages": {
2026-06-04T02:01:23.5591873Z         "doc": {
2026-06-04T02:01:23.5592358Z           "complete": false,
2026-06-04T02:01:23.5592818Z           "evidence": []
2026-06-04T02:01:23.5593222Z         },
2026-06-04T02:01:23.5593813Z         "impl": {
2026-06-04T02:01:23.5594273Z           "complete": false,
2026-06-04T02:01:23.5594713Z           "evidence": []
2026-06-04T02:01:23.5595118Z         },
2026-06-04T02:01:23.5595521Z         "int": {
2026-06-04T02:01:23.5595986Z           "complete": false,
2026-06-04T02:01:23.5596428Z           "evidence": []
2026-06-04T02:01:23.5596832Z         },
2026-06-04T02:01:23.5597243Z         "unit": {
2026-06-04T02:01:23.5597715Z           "complete": false,
2026-06-04T02:01:23.5598165Z           "evidence": []
2026-06-04T02:01:23.5598566Z         }
2026-06-04T02:01:23.5598970Z       }
2026-06-04T02:01:23.5599587Z     },
2026-06-04T02:01:23.5600140Z     {
2026-06-04T02:01:23.5600643Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-04T02:01:23.5601696Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-04T02:01:23.5602175Z       "requiredStages": [
2026-06-04T02:01:23.5602586Z         "impl",
2026-06-04T02:01:23.5603010Z         "unit"
2026-06-04T02:01:23.5603423Z       ],
2026-06-04T02:01:23.5603866Z       "stages": {
2026-06-04T02:01:23.5604317Z         "doc": {
2026-06-04T02:01:23.5604797Z           "complete": false,
2026-06-04T02:01:23.5605244Z           "evidence": []
2026-06-04T02:01:23.5605658Z         },
2026-06-04T02:01:23.5606091Z         "impl": {
2026-06-04T02:01:23.5606544Z           "complete": true,
2026-06-04T02:01:23.5606982Z           "evidence": [
2026-06-04T02:01:23.5607380Z             {
2026-06-04T02:01:23.5608004Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5608435Z               "line": 18
2026-06-04T02:01:23.5608848Z             },
2026-06-04T02:01:23.5609459Z             {
2026-06-04T02:01:23.5610241Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5610708Z               "line": 35
2026-06-04T02:01:23.5611114Z             },
2026-06-04T02:01:23.5611530Z             {
2026-06-04T02:01:23.5612151Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5612607Z               "line": 65
2026-06-04T02:01:23.5613019Z             }
2026-06-04T02:01:23.5613412Z           ]
2026-06-04T02:01:23.5613821Z         },
2026-06-04T02:01:23.5614230Z         "int": {
2026-06-04T02:01:23.5614694Z           "complete": false,
2026-06-04T02:01:23.5615138Z           "evidence": []
2026-06-04T02:01:23.5615541Z         },
2026-06-04T02:01:23.5615961Z         "unit": {
2026-06-04T02:01:23.5616408Z           "complete": true,
2026-06-04T02:01:23.5616852Z           "evidence": [
2026-06-04T02:01:23.5617255Z             {
2026-06-04T02:01:23.5617875Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5618325Z               "line": 170
2026-06-04T02:01:23.5618732Z             },
2026-06-04T02:01:23.5619137Z             {
2026-06-04T02:01:23.5620121Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5620579Z               "line": 184
2026-06-04T02:01:23.5620993Z             },
2026-06-04T02:01:23.5621520Z             {
2026-06-04T02:01:23.5622163Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5622593Z               "line": 193
2026-06-04T02:01:23.5623012Z             }
2026-06-04T02:01:23.5623408Z           ]
2026-06-04T02:01:23.5623829Z         }
2026-06-04T02:01:23.5624229Z       }
2026-06-04T02:01:23.5624648Z     },
2026-06-04T02:01:23.5625069Z     {
2026-06-04T02:01:23.5625596Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-04T02:01:23.5626414Z       "title": "Hostable endpoint-types capability declaration",
2026-06-04T02:01:23.5626878Z       "requiredStages": [
2026-06-04T02:01:23.5627305Z         "impl",
2026-06-04T02:01:23.5627716Z         "unit"
2026-06-04T02:01:23.5628135Z       ],
2026-06-04T02:01:23.5628571Z       "stages": {
2026-06-04T02:01:23.5628981Z         "doc": {
2026-06-04T02:01:23.5630005Z           "complete": false,
2026-06-04T02:01:23.5630488Z           "evidence": []
2026-06-04T02:01:23.5630912Z         },
2026-06-04T02:01:23.5631329Z         "impl": {
2026-06-04T02:01:23.5631793Z           "complete": true,
2026-06-04T02:01:23.5632381Z           "evidence": [
2026-06-04T02:01:23.5632784Z             {
2026-06-04T02:01:23.5633436Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.5633872Z               "line": 186
2026-06-04T02:01:23.5634283Z             }
2026-06-04T02:01:23.5634691Z           ]
2026-06-04T02:01:23.5635121Z         },
2026-06-04T02:01:23.5635543Z         "int": {
2026-06-04T02:01:23.5636025Z           "complete": false,
2026-06-04T02:01:23.5636469Z           "evidence": []
2026-06-04T02:01:23.5636866Z         },
2026-06-04T02:01:23.5637290Z         "unit": {
2026-06-04T02:01:23.5637772Z           "complete": true,
2026-06-04T02:01:23.5638231Z           "evidence": [
2026-06-04T02:01:23.5638636Z             {
2026-06-04T02:01:23.5639669Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.5640281Z               "line": 301
2026-06-04T02:01:23.5640681Z             }
2026-06-04T02:01:23.5641097Z           ]
2026-06-04T02:01:23.5641504Z         }
2026-06-04T02:01:23.5641922Z       }
2026-06-04T02:01:23.5642308Z     },
2026-06-04T02:01:23.5642711Z     {
2026-06-04T02:01:23.5643200Z       "id": "REQ-SEAM-HISTORY",
2026-06-04T02:01:23.5644250Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-04T02:01:23.5644732Z       "requiredStages": [
2026-06-04T02:01:23.5645150Z         "impl",
2026-06-04T02:01:23.5645578Z         "unit",
2026-06-04T02:01:23.5645984Z         "int"
2026-06-04T02:01:23.5646400Z       ],
2026-06-04T02:01:23.5646831Z       "stages": {
2026-06-04T02:01:23.5647236Z         "doc": {
2026-06-04T02:01:23.5647701Z           "complete": false,
2026-06-04T02:01:23.5656418Z           "evidence": []
2026-06-04T02:01:23.5656970Z         },
2026-06-04T02:01:23.5657469Z         "impl": {
2026-06-04T02:01:23.5657959Z           "complete": true,
2026-06-04T02:01:23.5658419Z           "evidence": [
2026-06-04T02:01:23.5658829Z             {
2026-06-04T02:01:23.5659674Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.5660458Z               "line": 24
2026-06-04T02:01:23.5660892Z             },
2026-06-04T02:01:23.5661313Z             {
2026-06-04T02:01:23.5661971Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5662444Z               "line": 22
2026-06-04T02:01:23.5662864Z             }
2026-06-04T02:01:23.5663286Z           ]
2026-06-04T02:01:23.5663700Z         },
2026-06-04T02:01:23.5664133Z         "int": {
2026-06-04T02:01:23.5664596Z           "complete": true,
2026-06-04T02:01:23.5665060Z           "evidence": [
2026-06-04T02:01:23.5665483Z             {
2026-06-04T02:01:23.5666124Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.5666574Z               "line": 202
2026-06-04T02:01:23.5667002Z             }
2026-06-04T02:01:23.5667433Z           ]
2026-06-04T02:01:23.5667839Z         },
2026-06-04T02:01:23.5668280Z         "unit": {
2026-06-04T02:01:23.5668764Z           "complete": true,
2026-06-04T02:01:23.5669318Z           "evidence": [
2026-06-04T02:01:23.5669751Z             {
2026-06-04T02:01:23.5670348Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.5670910Z               "line": 163
2026-06-04T02:01:23.5671320Z             },
2026-06-04T02:01:23.5671738Z             {
2026-06-04T02:01:23.5672342Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.5672790Z               "line": 186
2026-06-04T02:01:23.5673208Z             },
2026-06-04T02:01:23.5673622Z             {
2026-06-04T02:01:23.5674231Z               "path": "crates/spt-live/src/echo.rs",
2026-06-04T02:01:23.5674695Z               "line": 195
2026-06-04T02:01:23.5675124Z             },
2026-06-04T02:01:23.5675556Z             {
2026-06-04T02:01:23.5676696Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5677272Z               "line": 195
2026-06-04T02:01:23.5677720Z             },
2026-06-04T02:01:23.5678168Z             {
2026-06-04T02:01:23.5678801Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5679529Z               "line": 209
2026-06-04T02:01:23.5679972Z             },
2026-06-04T02:01:23.5680394Z             {
2026-06-04T02:01:23.5681150Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5681615Z               "line": 228
2026-06-04T02:01:23.5682046Z             },
2026-06-04T02:01:23.5682473Z             {
2026-06-04T02:01:23.5683102Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5683574Z               "line": 248
2026-06-04T02:01:23.5684019Z             },
2026-06-04T02:01:23.5684471Z             {
2026-06-04T02:01:23.5685131Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5685611Z               "line": 264
2026-06-04T02:01:23.5686067Z             },
2026-06-04T02:01:23.5686508Z             {
2026-06-04T02:01:23.5687160Z               "path": "crates/spt-live/src/history.rs",
2026-06-04T02:01:23.5687625Z               "line": 279
2026-06-04T02:01:23.5688062Z             }
2026-06-04T02:01:23.5688492Z           ]
2026-06-04T02:01:23.5688920Z         }
2026-06-04T02:01:23.5689750Z       }
2026-06-04T02:01:23.5690213Z     },
2026-06-04T02:01:23.5690677Z     {
2026-06-04T02:01:23.5691194Z       "id": "REQ-SEAM-INJECT",
2026-06-04T02:01:23.5692166Z       "title": "inject-input methods configurable per activity-state",
2026-06-04T02:01:23.5692676Z       "requiredStages": [
2026-06-04T02:01:23.5693129Z         "impl",
2026-06-04T02:01:23.5693568Z         "unit"
2026-06-04T02:01:23.5693995Z       ],
2026-06-04T02:01:23.5694453Z       "stages": {
2026-06-04T02:01:23.5694894Z         "doc": {
2026-06-04T02:01:23.5695404Z           "complete": false,
2026-06-04T02:01:23.5695882Z           "evidence": []
2026-06-04T02:01:23.5696325Z         },
2026-06-04T02:01:23.5696798Z         "impl": {
2026-06-04T02:01:23.5697304Z           "complete": true,
2026-06-04T02:01:23.5697782Z           "evidence": [
2026-06-04T02:01:23.5698203Z             {
2026-06-04T02:01:23.5698877Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5699447Z               "line": 19
2026-06-04T02:01:23.5700062Z             },
2026-06-04T02:01:23.5700486Z             {
2026-06-04T02:01:23.5701109Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5701571Z               "line": 104
2026-06-04T02:01:23.5701995Z             }
2026-06-04T02:01:23.5702428Z           ]
2026-06-04T02:01:23.5702835Z         },
2026-06-04T02:01:23.5703272Z         "int": {
2026-06-04T02:01:23.5703769Z           "complete": false,
2026-06-04T02:01:23.5704211Z           "evidence": []
2026-06-04T02:01:23.5704641Z         },
2026-06-04T02:01:23.5705083Z         "unit": {
2026-06-04T02:01:23.5705616Z           "complete": true,
2026-06-04T02:01:23.5706130Z           "evidence": [
2026-06-04T02:01:23.5706602Z             {
2026-06-04T02:01:23.5707298Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5707763Z               "line": 222
2026-06-04T02:01:23.5708192Z             },
2026-06-04T02:01:23.5708625Z             {
2026-06-04T02:01:23.5709657Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-04T02:01:23.5710300Z               "line": 236
2026-06-04T02:01:23.5710760Z             }
2026-06-04T02:01:23.5711217Z           ]
2026-06-04T02:01:23.5711647Z         }
2026-06-04T02:01:23.5712071Z       }
2026-06-04T02:01:23.5712485Z     },
2026-06-04T02:01:23.5712917Z     {
2026-06-04T02:01:23.5713433Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-04T02:01:23.5714184Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-04T02:01:23.5714665Z       "requiredStages": [
2026-06-04T02:01:23.5715089Z         "impl",
2026-06-04T02:01:23.5715532Z         "unit"
2026-06-04T02:01:23.5715944Z       ],
2026-06-04T02:01:23.5716733Z       "stages": {
2026-06-04T02:01:23.5717230Z         "doc": {
2026-06-04T02:01:23.5717720Z           "complete": false,
2026-06-04T02:01:23.5718199Z           "evidence": []
2026-06-04T02:01:23.5718629Z         },
2026-06-04T02:01:23.5719699Z         "impl": {
2026-06-04T02:01:23.5720373Z           "complete": true,
2026-06-04T02:01:23.5720873Z           "evidence": [
2026-06-04T02:01:23.5721299Z             {
2026-06-04T02:01:23.5721953Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5722429Z               "line": 18
2026-06-04T02:01:23.5722902Z             },
2026-06-04T02:01:23.5723353Z             {
2026-06-04T02:01:23.5723985Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5724504Z               "line": 257
2026-06-04T02:01:23.5724931Z             }
2026-06-04T02:01:23.5725362Z           ]
2026-06-04T02:01:23.5725780Z         },
2026-06-04T02:01:23.5726198Z         "int": {
2026-06-04T02:01:23.5726666Z           "complete": false,
2026-06-04T02:01:23.5727135Z           "evidence": []
2026-06-04T02:01:23.5727574Z         },
2026-06-04T02:01:23.5727988Z         "unit": {
2026-06-04T02:01:23.5728455Z           "complete": true,
2026-06-04T02:01:23.5728910Z           "evidence": [
2026-06-04T02:01:23.5729555Z             {
2026-06-04T02:01:23.5730485Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5730926Z               "line": 420
2026-06-04T02:01:23.5731355Z             },
2026-06-04T02:01:23.5731762Z             {
2026-06-04T02:01:23.5732391Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5732851Z               "line": 430
2026-06-04T02:01:23.5733260Z             }
2026-06-04T02:01:23.5733673Z           ]
2026-06-04T02:01:23.5734094Z         }
2026-06-04T02:01:23.5734525Z       }
2026-06-04T02:01:23.5734935Z     },
2026-06-04T02:01:23.5735360Z     {
2026-06-04T02:01:23.5735879Z       "id": "REQ-SEAM-PSYCHE",
2026-06-04T02:01:23.5736689Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-04T02:01:23.5737227Z       "requiredStages": [
2026-06-04T02:01:23.5737696Z         "impl",
2026-06-04T02:01:23.5738133Z         "unit",
2026-06-04T02:01:23.5738549Z         "int"
2026-06-04T02:01:23.5747683Z       ],
2026-06-04T02:01:23.5748355Z       "stages": {
2026-06-04T02:01:23.5748779Z         "doc": {
2026-06-04T02:01:23.5749650Z           "complete": false,
2026-06-04T02:01:23.5750273Z           "evidence": []
2026-06-04T02:01:23.5750700Z         },
2026-06-04T02:01:23.5751128Z         "impl": {
2026-06-04T02:01:23.5751612Z           "complete": true,
2026-06-04T02:01:23.5752151Z           "evidence": [
2026-06-04T02:01:23.5752567Z             {
2026-06-04T02:01:23.5753209Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:01:23.5753665Z               "line": 19
2026-06-04T02:01:23.5754093Z             },
2026-06-04T02:01:23.5754506Z             {
2026-06-04T02:01:23.5755112Z               "path": "crates/spt/src/api/live.rs",
2026-06-04T02:01:23.5755598Z               "line": 12
2026-06-04T02:01:23.5756031Z             },
2026-06-04T02:01:23.5756467Z             {
2026-06-04T02:01:23.5757083Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5757535Z               "line": 164
2026-06-04T02:01:23.5757964Z             }
2026-06-04T02:01:23.5758396Z           ]
2026-06-04T02:01:23.5758814Z         },
2026-06-04T02:01:23.5759315Z         "int": {
2026-06-04T02:01:23.5759798Z           "complete": true,
2026-06-04T02:01:23.5760282Z           "evidence": [
2026-06-04T02:01:23.5760709Z             {
2026-06-04T02:01:23.5761376Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.5761852Z               "line": 201
2026-06-04T02:01:23.5762276Z             }
2026-06-04T02:01:23.5762701Z           ]
2026-06-04T02:01:23.5763130Z         },
2026-06-04T02:01:23.5763553Z         "unit": {
2026-06-04T02:01:23.5764014Z           "complete": true,
2026-06-04T02:01:23.5764464Z           "evidence": [
2026-06-04T02:01:23.5764905Z             {
2026-06-04T02:01:23.5765997Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:01:23.5766529Z               "line": 161
2026-06-04T02:01:23.5766953Z             },
2026-06-04T02:01:23.5767365Z             {
2026-06-04T02:01:23.5768165Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:01:23.5768611Z               "line": 168
2026-06-04T02:01:23.5769044Z             },
2026-06-04T02:01:23.5769722Z             {
2026-06-04T02:01:23.5770512Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-04T02:01:23.5770981Z               "line": 191
2026-06-04T02:01:23.5771393Z             },
2026-06-04T02:01:23.5771813Z             {
2026-06-04T02:01:23.5772417Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:01:23.5772891Z               "line": 105
2026-06-04T02:01:23.5773323Z             },
2026-06-04T02:01:23.5773763Z             {
2026-06-04T02:01:23.5774411Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:01:23.5774881Z               "line": 122
2026-06-04T02:01:23.5775318Z             },
2026-06-04T02:01:23.5775735Z             {
2026-06-04T02:01:23.5776356Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-04T02:01:23.5776825Z               "line": 136
2026-06-04T02:01:23.5777255Z             }
2026-06-04T02:01:23.5777676Z           ]
2026-06-04T02:01:23.5778079Z         }
2026-06-04T02:01:23.5778490Z       }
2026-06-04T02:01:23.5778885Z     },
2026-06-04T02:01:23.5779541Z     {
2026-06-04T02:01:23.5780208Z       "id": "REQ-SEAM-RESUME",
2026-06-04T02:01:23.5781309Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-04T02:01:23.5781820Z       "requiredStages": [
2026-06-04T02:01:23.5782266Z         "impl",
2026-06-04T02:01:23.5782716Z         "unit"
2026-06-04T02:01:23.5783184Z       ],
2026-06-04T02:01:23.5783653Z       "stages": {
2026-06-04T02:01:23.5784095Z         "doc": {
2026-06-04T02:01:23.5784570Z           "complete": false,
2026-06-04T02:01:23.5785044Z           "evidence": []
2026-06-04T02:01:23.5785483Z         },
2026-06-04T02:01:23.5785944Z         "impl": {
2026-06-04T02:01:23.5786445Z           "complete": true,
2026-06-04T02:01:23.5786919Z           "evidence": [
2026-06-04T02:01:23.5787375Z             {
2026-06-04T02:01:23.5788013Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:01:23.5788474Z               "line": 19
2026-06-04T02:01:23.5788896Z             }
2026-06-04T02:01:23.5789533Z           ]
2026-06-04T02:01:23.5790125Z         },
2026-06-04T02:01:23.5790586Z         "int": {
2026-06-04T02:01:23.5791076Z           "complete": false,
2026-06-04T02:01:23.5791527Z           "evidence": []
2026-06-04T02:01:23.5791933Z         },
2026-06-04T02:01:23.5792345Z         "unit": {
2026-06-04T02:01:23.5792811Z           "complete": true,
2026-06-04T02:01:23.5793260Z           "evidence": [
2026-06-04T02:01:23.5793680Z             {
2026-06-04T02:01:23.5794307Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:01:23.5794770Z               "line": 145
2026-06-04T02:01:23.5795199Z             },
2026-06-04T02:01:23.5795619Z             {
2026-06-04T02:01:23.5796231Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:01:23.5796684Z               "line": 164
2026-06-04T02:01:23.5797138Z             },
2026-06-04T02:01:23.5797578Z             {
2026-06-04T02:01:23.5798214Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:01:23.5798681Z               "line": 182
2026-06-04T02:01:23.5799114Z             },
2026-06-04T02:01:23.5799796Z             {
2026-06-04T02:01:23.5800599Z               "path": "crates/spt-live/src/resume.rs",
2026-06-04T02:01:23.5801179Z               "line": 206
2026-06-04T02:01:23.5801611Z             }
2026-06-04T02:01:23.5802038Z           ]
2026-06-04T02:01:23.5802465Z         }
2026-06-04T02:01:23.5802878Z       }
2026-06-04T02:01:23.5803303Z     },
2026-06-04T02:01:23.5803717Z     {
2026-06-04T02:01:23.5804227Z       "id": "REQ-SEAM-SPAWN",
2026-06-04T02:01:23.5805128Z       "title": "spawn-session seam",
2026-06-04T02:01:23.5805677Z       "requiredStages": [
2026-06-04T02:01:23.5806115Z         "impl",
2026-06-04T02:01:23.5806531Z         "unit"
2026-06-04T02:01:23.5806952Z       ],
2026-06-04T02:01:23.5807556Z       "stages": {
2026-06-04T02:01:23.5807985Z         "doc": {
2026-06-04T02:01:23.5808459Z           "complete": false,
2026-06-04T02:01:23.5808911Z           "evidence": []
2026-06-04T02:01:23.5809557Z         },
2026-06-04T02:01:23.5810154Z         "impl": {
2026-06-04T02:01:23.5810632Z           "complete": true,
2026-06-04T02:01:23.5811077Z           "evidence": [
2026-06-04T02:01:23.5811511Z             {
2026-06-04T02:01:23.5812223Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5812690Z               "line": 20
2026-06-04T02:01:23.5813118Z             }
2026-06-04T02:01:23.5813538Z           ]
2026-06-04T02:01:23.5813966Z         },
2026-06-04T02:01:23.5814396Z         "int": {
2026-06-04T02:01:23.5814909Z           "complete": false,
2026-06-04T02:01:23.5815403Z           "evidence": []
2026-06-04T02:01:23.5815821Z         },
2026-06-04T02:01:23.5816249Z         "unit": {
2026-06-04T02:01:23.5816717Z           "complete": true,
2026-06-04T02:01:23.5817177Z           "evidence": [
2026-06-04T02:01:23.5817631Z             {
2026-06-04T02:01:23.5818354Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5818833Z               "line": 397
2026-06-04T02:01:23.5819469Z             },
2026-06-04T02:01:23.5820065Z             {
2026-06-04T02:01:23.5820753Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5821220Z               "line": 404
2026-06-04T02:01:23.5821744Z             },
2026-06-04T02:01:23.5822169Z             {
2026-06-04T02:01:23.5822837Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5823283Z               "line": 414
2026-06-04T02:01:23.5823706Z             },
2026-06-04T02:01:23.5824272Z             {
2026-06-04T02:01:23.5825021Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5825490Z               "line": 420
2026-06-04T02:01:23.5825931Z             },
2026-06-04T02:01:23.5826352Z             {
2026-06-04T02:01:23.5827027Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5827516Z               "line": 440
2026-06-04T02:01:23.5827943Z             },
2026-06-04T02:01:23.5828381Z             {
2026-06-04T02:01:23.5829416Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-04T02:01:23.5830075Z               "line": 473
2026-06-04T02:01:23.5838875Z             }
2026-06-04T02:01:23.5839601Z           ]
2026-06-04T02:01:23.5840044Z         }
2026-06-04T02:01:23.5840450Z       }
2026-06-04T02:01:23.5840866Z     },
2026-06-04T02:01:23.5841264Z     {
2026-06-04T02:01:23.5841776Z       "id": "REQ-SEAM-UPDATE",
2026-06-04T02:01:23.5842714Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-04T02:01:23.5843186Z       "requiredStages": [
2026-06-04T02:01:23.5843655Z         "impl",
2026-06-04T02:01:23.5844073Z         "unit"
2026-06-04T02:01:23.5844492Z       ],
2026-06-04T02:01:23.5844952Z       "stages": {
2026-06-04T02:01:23.5845403Z         "doc": {
2026-06-04T02:01:23.5845922Z           "complete": false,
2026-06-04T02:01:23.5846387Z           "evidence": []
2026-06-04T02:01:23.5846814Z         },
2026-06-04T02:01:23.5847257Z         "impl": {
2026-06-04T02:01:23.5847751Z           "complete": true,
2026-06-04T02:01:23.5848218Z           "evidence": [
2026-06-04T02:01:23.5848671Z             {
2026-06-04T02:01:23.5849684Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.5850321Z               "line": 28
2026-06-04T02:01:23.5850738Z             },
2026-06-04T02:01:23.5851158Z             {
2026-06-04T02:01:23.5851901Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.5852361Z               "line": 83
2026-06-04T02:01:23.5852791Z             }
2026-06-04T02:01:23.5853329Z           ]
2026-06-04T02:01:23.5854158Z         },
2026-06-04T02:01:23.5854640Z         "int": {
2026-06-04T02:01:23.5855125Z           "complete": false,
2026-06-04T02:01:23.5855598Z           "evidence": []
2026-06-04T02:01:23.5856005Z         },
2026-06-04T02:01:23.5856641Z         "unit": {
2026-06-04T02:01:23.5857124Z           "complete": true,
2026-06-04T02:01:23.5857569Z           "evidence": [
2026-06-04T02:01:23.5857997Z             {
2026-06-04T02:01:23.5858735Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.5859256Z               "line": 248
2026-06-04T02:01:23.5859990Z             },
2026-06-04T02:01:23.5860428Z             {
2026-06-04T02:01:23.5861193Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.5861666Z               "line": 259
2026-06-04T02:01:23.5862087Z             }
2026-06-04T02:01:23.5862509Z           ]
2026-06-04T02:01:23.5862933Z         }
2026-06-04T02:01:23.5863355Z       }
2026-06-04T02:01:23.5863763Z     },
2026-06-04T02:01:23.5864212Z     {
2026-06-04T02:01:23.5864683Z       "id": "REQ-SEC-1",
2026-06-04T02:01:23.5867283Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-04T02:01:23.5867816Z       "requiredStages": [],
2026-06-04T02:01:23.5868258Z       "stages": {
2026-06-04T02:01:23.5868698Z         "doc": {
2026-06-04T02:01:23.5869220Z           "complete": false,
2026-06-04T02:01:23.5869878Z           "evidence": []
2026-06-04T02:01:23.5870596Z         },
2026-06-04T02:01:23.5871045Z         "impl": {
2026-06-04T02:01:23.5871515Z           "complete": false,
2026-06-04T02:01:23.5871986Z           "evidence": []
2026-06-04T02:01:23.5872421Z         },
2026-06-04T02:01:23.5872847Z         "int": {
2026-06-04T02:01:23.5873342Z           "complete": false,
2026-06-04T02:01:23.5873799Z           "evidence": []
2026-06-04T02:01:23.5874215Z         },
2026-06-04T02:01:23.5874635Z         "unit": {
2026-06-04T02:01:23.5875130Z           "complete": false,
2026-06-04T02:01:23.5875605Z           "evidence": []
2026-06-04T02:01:23.5876015Z         }
2026-06-04T02:01:23.5876430Z       }
2026-06-04T02:01:23.5876836Z     },
2026-06-04T02:01:23.5877270Z     {
2026-06-04T02:01:23.5877735Z       "id": "REQ-START-1",
2026-06-04T02:01:23.5878902Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-04T02:01:23.5879655Z       "requiredStages": [
2026-06-04T02:01:23.5880259Z         "impl",
2026-06-04T02:01:23.5880701Z         "unit"
2026-06-04T02:01:23.5881129Z       ],
2026-06-04T02:01:23.5881583Z       "stages": {
2026-06-04T02:01:23.5881996Z         "doc": {
2026-06-04T02:01:23.5882476Z           "complete": false,
2026-06-04T02:01:23.5882948Z           "evidence": []
2026-06-04T02:01:23.5883358Z         },
2026-06-04T02:01:23.5883789Z         "impl": {
2026-06-04T02:01:23.5884253Z           "complete": true,
2026-06-04T02:01:23.5884700Z           "evidence": [
2026-06-04T02:01:23.5885121Z             {
2026-06-04T02:01:23.5885747Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:01:23.5886207Z               "line": 16
2026-06-04T02:01:23.5886636Z             }
2026-06-04T02:01:23.5887080Z           ]
2026-06-04T02:01:23.5887497Z         },
2026-06-04T02:01:23.5887928Z         "int": {
2026-06-04T02:01:23.5888412Z           "complete": false,
2026-06-04T02:01:23.5888885Z           "evidence": []
2026-06-04T02:01:23.5889563Z         },
2026-06-04T02:01:23.5890157Z         "unit": {
2026-06-04T02:01:23.5890632Z           "complete": true,
2026-06-04T02:01:23.5891075Z           "evidence": [
2026-06-04T02:01:23.5891507Z             {
2026-06-04T02:01:23.5892121Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:01:23.5892601Z               "line": 43
2026-06-04T02:01:23.5893033Z             },
2026-06-04T02:01:23.5893442Z             {
2026-06-04T02:01:23.5894042Z               "path": "crates/spt-store/src/seed.rs",
2026-06-04T02:01:23.5894837Z               "line": 59
2026-06-04T02:01:23.5895326Z             }
2026-06-04T02:01:23.5895779Z           ]
2026-06-04T02:01:23.5896237Z         }
2026-06-04T02:01:23.5896679Z       }
2026-06-04T02:01:23.5897096Z     },
2026-06-04T02:01:23.5897725Z     {
2026-06-04T02:01:23.5898218Z       "id": "REQ-START-2",
2026-06-04T02:01:23.5899049Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-04T02:01:23.5899925Z       "requiredStages": [
2026-06-04T02:01:23.5900373Z         "impl",
2026-06-04T02:01:23.5900831Z         "unit",
2026-06-04T02:01:23.5901253Z         "int"
2026-06-04T02:01:23.5901682Z       ],
2026-06-04T02:01:23.5902115Z       "stages": {
2026-06-04T02:01:23.5902666Z         "doc": {
2026-06-04T02:01:23.5903134Z           "complete": false,
2026-06-04T02:01:23.5903777Z           "evidence": []
2026-06-04T02:01:23.5904267Z         },
2026-06-04T02:01:23.5904792Z         "impl": {
2026-06-04T02:01:23.5905356Z           "complete": true,
2026-06-04T02:01:23.5905840Z           "evidence": [
2026-06-04T02:01:23.5906318Z             {
2026-06-04T02:01:23.5906984Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5907480Z               "line": 16
2026-06-04T02:01:23.5907916Z             },
2026-06-04T02:01:23.5908374Z             {
2026-06-04T02:01:23.5909028Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5909581Z               "line": 94
2026-06-04T02:01:23.5910172Z             },
2026-06-04T02:01:23.5910596Z             {
2026-06-04T02:01:23.5911227Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5911701Z               "line": 163
2026-06-04T02:01:23.5912117Z             }
2026-06-04T02:01:23.5912544Z           ]
2026-06-04T02:01:23.5912959Z         },
2026-06-04T02:01:23.5913383Z         "int": {
2026-06-04T02:01:23.5913850Z           "complete": true,
2026-06-04T02:01:23.5914307Z           "evidence": [
2026-06-04T02:01:23.5914737Z             {
2026-06-04T02:01:23.5915395Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.5915863Z               "line": 150
2026-06-04T02:01:23.5916273Z             }
2026-06-04T02:01:23.5916686Z           ]
2026-06-04T02:01:23.5917089Z         },
2026-06-04T02:01:23.5917519Z         "unit": {
2026-06-04T02:01:23.5917998Z           "complete": true,
2026-06-04T02:01:23.5918444Z           "evidence": [
2026-06-04T02:01:23.5918875Z             {
2026-06-04T02:01:23.5919567Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5920154Z               "line": 354
2026-06-04T02:01:23.5920586Z             },
2026-06-04T02:01:23.5921013Z             {
2026-06-04T02:01:23.5921647Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5922118Z               "line": 387
2026-06-04T02:01:23.5922554Z             }
2026-06-04T02:01:23.5922971Z           ]
2026-06-04T02:01:23.5932035Z         }
2026-06-04T02:01:23.5932600Z       }
2026-06-04T02:01:23.5933028Z     },
2026-06-04T02:01:23.5933436Z     {
2026-06-04T02:01:23.5933982Z       "id": "REQ-START-3",
2026-06-04T02:01:23.5934998Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-04T02:01:23.5935478Z       "requiredStages": [
2026-06-04T02:01:23.5935914Z         "impl",
2026-06-04T02:01:23.5936348Z         "unit",
2026-06-04T02:01:23.5936783Z         "int"
2026-06-04T02:01:23.5937204Z       ],
2026-06-04T02:01:23.5937634Z       "stages": {
2026-06-04T02:01:23.5938068Z         "doc": {
2026-06-04T02:01:23.5938544Z           "complete": false,
2026-06-04T02:01:23.5939006Z           "evidence": []
2026-06-04T02:01:23.5939651Z         },
2026-06-04T02:01:23.5940121Z         "impl": {
2026-06-04T02:01:23.5940592Z           "complete": true,
2026-06-04T02:01:23.5941060Z           "evidence": [
2026-06-04T02:01:23.5941483Z             {
2026-06-04T02:01:23.5942168Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5942630Z               "line": 23
2026-06-04T02:01:23.5943168Z             },
2026-06-04T02:01:23.5944072Z             {
2026-06-04T02:01:23.5944827Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5945308Z               "line": 167
2026-06-04T02:01:23.5945763Z             },
2026-06-04T02:01:23.5946215Z             {
2026-06-04T02:01:23.5947127Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5947600Z               "line": 180
2026-06-04T02:01:23.5948047Z             },
2026-06-04T02:01:23.5948487Z             {
2026-06-04T02:01:23.5949136Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5949828Z               "line": 17
2026-06-04T02:01:23.5950254Z             },
2026-06-04T02:01:23.5950681Z             {
2026-06-04T02:01:23.5951394Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5951855Z               "line": 43
2026-06-04T02:01:23.5952276Z             },
2026-06-04T02:01:23.5952694Z             {
2026-06-04T02:01:23.5953365Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5953845Z               "line": 95
2026-06-04T02:01:23.5954294Z             }
2026-06-04T02:01:23.5954709Z           ]
2026-06-04T02:01:23.5955128Z         },
2026-06-04T02:01:23.5955567Z         "int": {
2026-06-04T02:01:23.5956044Z           "complete": true,
2026-06-04T02:01:23.5956530Z           "evidence": [
2026-06-04T02:01:23.5956952Z             {
2026-06-04T02:01:23.5957622Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-04T02:01:23.5958098Z               "line": 316
2026-06-04T02:01:23.5958537Z             }
2026-06-04T02:01:23.5958966Z           ]
2026-06-04T02:01:23.5959610Z         },
2026-06-04T02:01:23.5960093Z         "unit": {
2026-06-04T02:01:23.5960586Z           "complete": true,
2026-06-04T02:01:23.5961067Z           "evidence": [
2026-06-04T02:01:23.5961508Z             {
2026-06-04T02:01:23.5962211Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5962703Z               "line": 245
2026-06-04T02:01:23.5963156Z             },
2026-06-04T02:01:23.5963653Z             {
2026-06-04T02:01:23.5964384Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5964859Z               "line": 263
2026-06-04T02:01:23.5965295Z             },
2026-06-04T02:01:23.5965743Z             {
2026-06-04T02:01:23.5966454Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-04T02:01:23.5966931Z               "line": 273
2026-06-04T02:01:23.5967378Z             },
2026-06-04T02:01:23.5967806Z             {
2026-06-04T02:01:23.5968461Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5968924Z               "line": 355
2026-06-04T02:01:23.5969441Z             },
2026-06-04T02:01:23.5970042Z             {
2026-06-04T02:01:23.5970650Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5971105Z               "line": 388
2026-06-04T02:01:23.5971528Z             },
2026-06-04T02:01:23.5971960Z             {
2026-06-04T02:01:23.5972575Z               "path": "crates/spt/src/api/startup.rs",
2026-06-04T02:01:23.5973056Z               "line": 396
2026-06-04T02:01:23.5973474Z             }
2026-06-04T02:01:23.5973894Z           ]
2026-06-04T02:01:23.5974312Z         }
2026-06-04T02:01:23.5974732Z       }
2026-06-04T02:01:23.5975149Z     },
2026-06-04T02:01:23.5975552Z     {
2026-06-04T02:01:23.5976015Z       "id": "REQ-START-4",
2026-06-04T02:01:23.5976796Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-04T02:01:23.5977263Z       "requiredStages": [
2026-06-04T02:01:23.5977688Z         "impl",
2026-06-04T02:01:23.5978097Z         "unit"
2026-06-04T02:01:23.5978520Z       ],
2026-06-04T02:01:23.5978972Z       "stages": {
2026-06-04T02:01:23.5979640Z         "doc": {
2026-06-04T02:01:23.5980415Z           "complete": false,
2026-06-04T02:01:23.5980850Z           "evidence": []
2026-06-04T02:01:23.5981250Z         },
2026-06-04T02:01:23.5981675Z         "impl": {
2026-06-04T02:01:23.5982168Z           "complete": true,
2026-06-04T02:01:23.5982610Z           "evidence": [
2026-06-04T02:01:23.5983380Z             {
2026-06-04T02:01:23.5984120Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.5984566Z               "line": 173
2026-06-04T02:01:23.5985003Z             }
2026-06-04T02:01:23.5985615Z           ]
2026-06-04T02:01:23.5986043Z         },
2026-06-04T02:01:23.5986496Z         "int": {
2026-06-04T02:01:23.5987014Z           "complete": false,
2026-06-04T02:01:23.5987488Z           "evidence": []
2026-06-04T02:01:23.5987916Z         },
2026-06-04T02:01:23.5988367Z         "unit": {
2026-06-04T02:01:23.5988836Z           "complete": true,
2026-06-04T02:01:23.5989509Z           "evidence": [
2026-06-04T02:01:23.5990066Z             {
2026-06-04T02:01:23.5990728Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-04T02:01:23.5991176Z               "line": 314
2026-06-04T02:01:23.5991585Z             }
2026-06-04T02:01:23.5992016Z           ]
2026-06-04T02:01:23.5992440Z         }
2026-06-04T02:01:23.5992852Z       }
2026-06-04T02:01:23.5993259Z     },
2026-06-04T02:01:23.5993678Z     {
2026-06-04T02:01:23.5994154Z       "id": "REQ-STORE-1",
2026-06-04T02:01:23.6000509Z       "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-04T02:01:23.6001061Z       "requiredStages": [],
2026-06-04T02:01:23.6001495Z       "stages": {
2026-06-04T02:01:23.6001934Z         "doc": {
2026-06-04T02:01:23.6002420Z           "complete": false,
2026-06-04T02:01:23.6002877Z           "evidence": []
2026-06-04T02:01:23.6003301Z         },
2026-06-04T02:01:23.6003725Z         "impl": {
2026-06-04T02:01:23.6004202Z           "complete": false,
2026-06-04T02:01:23.6004668Z           "evidence": []
2026-06-04T02:01:23.6005088Z         },
2026-06-04T02:01:23.6005517Z         "int": {
2026-06-04T02:01:23.6005996Z           "complete": false,
2026-06-04T02:01:23.6006452Z           "evidence": []
2026-06-04T02:01:23.6006873Z         },
2026-06-04T02:01:23.6007314Z         "unit": {
2026-06-04T02:01:23.6007790Z           "complete": false,
2026-06-04T02:01:23.6008262Z           "evidence": []
2026-06-04T02:01:23.6008681Z         }
2026-06-04T02:01:23.6009085Z       }
2026-06-04T02:01:23.6009863Z     },
2026-06-04T02:01:23.6010431Z     {
2026-06-04T02:01:23.6010894Z       "id": "REQ-TERM-1",
2026-06-04T02:01:23.6011879Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-04T02:01:23.6012374Z       "requiredStages": [
2026-06-04T02:01:23.6012816Z         "impl",
2026-06-04T02:01:23.6013222Z         "unit"
2026-06-04T02:01:23.6013629Z       ],
2026-06-04T02:01:23.6014062Z       "stages": {
2026-06-04T02:01:23.6014497Z         "doc": {
2026-06-04T02:01:23.6014959Z           "complete": false,
2026-06-04T02:01:23.6015419Z           "evidence": []
2026-06-04T02:01:23.6015861Z         },
2026-06-04T02:01:23.6016317Z         "impl": {
2026-06-04T02:01:23.6016799Z           "complete": true,
2026-06-04T02:01:23.6017249Z           "evidence": [
2026-06-04T02:01:23.6017672Z             {
2026-06-04T02:01:23.6018273Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T02:01:23.6018745Z               "line": 61
2026-06-04T02:01:23.6027470Z             },
2026-06-04T02:01:23.6028015Z             {
2026-06-04T02:01:23.6028638Z               "path": "crates/spt-term/src/pty.rs",
2026-06-04T02:01:23.6029088Z               "line": 169
2026-06-04T02:01:23.6029894Z             },
2026-06-04T02:01:23.6030312Z             {
2026-06-04T02:01:23.6030952Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:01:23.6031402Z               "line": 95
2026-06-04T02:01:23.6031816Z             }
2026-06-04T02:01:23.6032238Z           ]
2026-06-04T02:01:23.6032643Z         },
2026-06-04T02:01:23.6033078Z         "int": {
2026-06-04T02:01:23.6033560Z           "complete": false,
2026-06-04T02:01:23.6034479Z           "evidence": []
2026-06-04T02:01:23.6034939Z         },
2026-06-04T02:01:23.6035389Z         "unit": {
2026-06-04T02:01:23.6035880Z           "complete": true,
2026-06-04T02:01:23.6036321Z           "evidence": [
2026-06-04T02:01:23.6036959Z             {
2026-06-04T02:01:23.6037647Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T02:01:23.6038118Z               "line": 28
2026-06-04T02:01:23.6038555Z             },
2026-06-04T02:01:23.6038978Z             {
2026-06-04T02:01:23.6040180Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-04T02:01:23.6040637Z               "line": 60
2026-06-04T02:01:23.6041068Z             }
2026-06-04T02:01:23.6041491Z           ]
2026-06-04T02:01:23.6041918Z         }
2026-06-04T02:01:23.6042334Z       }
2026-06-04T02:01:23.6042757Z     },
2026-06-04T02:01:23.6043186Z     {
2026-06-04T02:01:23.6043662Z       "id": "REQ-TERM-2",
2026-06-04T02:01:23.6044748Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-04T02:01:23.6045238Z       "requiredStages": [
2026-06-04T02:01:23.6045676Z         "impl",
2026-06-04T02:01:23.6046109Z         "unit"
2026-06-04T02:01:23.6046532Z       ],
2026-06-04T02:01:23.6046981Z       "stages": {
2026-06-04T02:01:23.6047416Z         "doc": {
2026-06-04T02:01:23.6047901Z           "complete": false,
2026-06-04T02:01:23.6048337Z           "evidence": []
2026-06-04T02:01:23.6048760Z         },
2026-06-04T02:01:23.6049269Z         "impl": {
2026-06-04T02:01:23.6049945Z           "complete": true,
2026-06-04T02:01:23.6050726Z           "evidence": [
2026-06-04T02:01:23.6051153Z             {
2026-06-04T02:01:23.6051817Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:01:23.6052284Z               "line": 112
2026-06-04T02:01:23.6052722Z             },
2026-06-04T02:01:23.6053143Z             {
2026-06-04T02:01:23.6053771Z               "path": "crates/spt-term/src/surface.rs",
2026-06-04T02:01:23.6054241Z               "line": 122
2026-06-04T02:01:23.6054675Z             }
2026-06-04T02:01:23.6055102Z           ]
2026-06-04T02:01:23.6055509Z         },
2026-06-04T02:01:23.6055930Z         "int": {
2026-06-04T02:01:23.6056404Z           "complete": false,
2026-06-04T02:01:23.6056871Z           "evidence": []
2026-06-04T02:01:23.6057300Z         },
2026-06-04T02:01:23.6057738Z         "unit": {
2026-06-04T02:01:23.6058231Z           "complete": true,
2026-06-04T02:01:23.6058707Z           "evidence": [
2026-06-04T02:01:23.6059148Z             {
2026-06-04T02:01:23.6060374Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T02:01:23.6060831Z               "line": 46
2026-06-04T02:01:23.6061267Z             },
2026-06-04T02:01:23.6061720Z             {
2026-06-04T02:01:23.6062405Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-04T02:01:23.6062860Z               "line": 71
2026-06-04T02:01:23.6063299Z             }
2026-06-04T02:01:23.6063721Z           ]
2026-06-04T02:01:23.6064141Z         }
2026-06-04T02:01:23.6064570Z       }
2026-06-04T02:01:23.6064978Z     },
2026-06-04T02:01:23.6065418Z     {
2026-06-04T02:01:23.6065905Z       "id": "REQ-TERM-3",
2026-06-04T02:01:23.6066716Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-04T02:01:23.6067229Z       "requiredStages": [
2026-06-04T02:01:23.6067662Z         "impl",
2026-06-04T02:01:23.6068105Z         "unit"
2026-06-04T02:01:23.6068512Z       ],
2026-06-04T02:01:23.6068957Z       "stages": {
2026-06-04T02:01:23.6069761Z         "doc": {
2026-06-04T02:01:23.6070425Z           "complete": false,
2026-06-04T02:01:23.6070892Z           "evidence": []
2026-06-04T02:01:23.6071307Z         },
2026-06-04T02:01:23.6071746Z         "impl": {
2026-06-04T02:01:23.6072219Z           "complete": true,
2026-06-04T02:01:23.6072696Z           "evidence": [
2026-06-04T02:01:23.6073124Z             {
2026-06-04T02:01:23.6073772Z               "path": "crates/spt-term/src/stream.rs",
2026-06-04T02:01:23.6074238Z               "line": 71
2026-06-04T02:01:23.6075019Z             }
2026-06-04T02:01:23.6075509Z           ]
2026-06-04T02:01:23.6075931Z         },
2026-06-04T02:01:23.6076369Z         "int": {
2026-06-04T02:01:23.6076839Z           "complete": false,
2026-06-04T02:01:23.6077329Z           "evidence": []
2026-06-04T02:01:23.6077969Z         },
2026-06-04T02:01:23.6078416Z         "unit": {
2026-06-04T02:01:23.6078895Z           "complete": true,
2026-06-04T02:01:23.6079580Z           "evidence": [
2026-06-04T02:01:23.6080178Z             {
2026-06-04T02:01:23.6080842Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T02:01:23.6081334Z               "line": 37
2026-06-04T02:01:23.6081776Z             },
2026-06-04T02:01:23.6082202Z             {
2026-06-04T02:01:23.6082872Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-04T02:01:23.6083345Z               "line": 67
2026-06-04T02:01:23.6083777Z             }
2026-06-04T02:01:23.6084197Z           ]
2026-06-04T02:01:23.6084625Z         }
2026-06-04T02:01:23.6085055Z       }
2026-06-04T02:01:23.6085474Z     },
2026-06-04T02:01:23.6085902Z     {
2026-06-04T02:01:23.6086368Z       "id": "REQ-TERM-4",
2026-06-04T02:01:23.6088682Z       "title": "Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log",
2026-06-04T02:01:23.6089268Z       "requiredStages": [
2026-06-04T02:01:23.6089872Z         "impl",
2026-06-04T02:01:23.6090464Z         "unit",
2026-06-04T02:01:23.6090890Z         "int"
2026-06-04T02:01:23.6091332Z       ],
2026-06-04T02:01:23.6091778Z       "stages": {
2026-06-04T02:01:23.6092347Z         "doc": {
2026-06-04T02:01:23.6092833Z           "complete": true,
2026-06-04T02:01:23.6093310Z           "evidence": [
2026-06-04T02:01:23.6093735Z             {
2026-06-04T02:01:23.6094254Z               "path": "docs/MANIFEST.md",
2026-06-04T02:01:23.6094725Z               "line": 106
2026-06-04T02:01:23.6095145Z             }
2026-06-04T02:01:23.6095570Z           ]
2026-06-04T02:01:23.6095985Z         },
2026-06-04T02:01:23.6096458Z         "impl": {
2026-06-04T02:01:23.6096959Z           "complete": true,
2026-06-04T02:01:23.6097433Z           "evidence": [
2026-06-04T02:01:23.6097865Z             {
2026-06-04T02:01:23.6098491Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-04T02:01:23.6098965Z               "line": 448
2026-06-04T02:01:23.6099620Z             },
2026-06-04T02:01:23.6100234Z             {
2026-06-04T02:01:23.6100895Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6101354Z               "line": 41
2026-06-04T02:01:23.6101809Z             },
2026-06-04T02:01:23.6102258Z             {
2026-06-04T02:01:23.6102926Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6103393Z               "line": 91
2026-06-04T02:01:23.6103800Z             },
2026-06-04T02:01:23.6104227Z             {
2026-06-04T02:01:23.6104873Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6105333Z               "line": 152
2026-06-04T02:01:23.6105757Z             },
2026-06-04T02:01:23.6106181Z             {
2026-06-04T02:01:23.6106840Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6107286Z               "line": 212
2026-06-04T02:01:23.6107737Z             },
2026-06-04T02:01:23.6108152Z             {
2026-06-04T02:01:23.6108829Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6109529Z               "line": 20
2026-06-04T02:01:23.6110141Z             },
2026-06-04T02:01:23.6110582Z             {
2026-06-04T02:01:23.6111341Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6111798Z               "line": 212
2026-06-04T02:01:23.6121286Z             },
2026-06-04T02:01:23.6121994Z             {
2026-06-04T02:01:23.6122689Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6123144Z               "line": 226
2026-06-04T02:01:23.6123570Z             },
2026-06-04T02:01:23.6123985Z             {
2026-06-04T02:01:23.6125197Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.6125708Z               "line": 574
2026-06-04T02:01:23.6126140Z             },
2026-06-04T02:01:23.6126550Z             {
2026-06-04T02:01:23.6127426Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6127884Z               "line": 157
2026-06-04T02:01:23.6128302Z             },
2026-06-04T02:01:23.6128724Z             {
2026-06-04T02:01:23.6129606Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6130289Z               "line": 199
2026-06-04T02:01:23.6130719Z             },
2026-06-04T02:01:23.6131256Z             {
2026-06-04T02:01:23.6131884Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6132333Z               "line": 226
2026-06-04T02:01:23.6132892Z             },
2026-06-04T02:01:23.6133321Z             {
2026-06-04T02:01:23.6133885Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.6134342Z               "line": 176
2026-06-04T02:01:23.6134799Z             }
2026-06-04T02:01:23.6135243Z           ]
2026-06-04T02:01:23.6135661Z         },
2026-06-04T02:01:23.6136098Z         "int": {
2026-06-04T02:01:23.6136570Z           "complete": true,
2026-06-04T02:01:23.6137048Z           "evidence": [
2026-06-04T02:01:23.6137458Z             {
2026-06-04T02:01:23.6138122Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-04T02:01:23.6138568Z               "line": 18
2026-06-04T02:01:23.6138993Z             }
2026-06-04T02:01:23.6139649Z           ]
2026-06-04T02:01:23.6140209Z         },
2026-06-04T02:01:23.6140641Z         "unit": {
2026-06-04T02:01:23.6141161Z           "complete": true,
2026-06-04T02:01:23.6141615Z           "evidence": [
2026-06-04T02:01:23.6142034Z             {
2026-06-04T02:01:23.6142663Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6143109Z               "line": 250
2026-06-04T02:01:23.6143522Z             },
2026-06-04T02:01:23.6143937Z             {
2026-06-04T02:01:23.6144583Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6145042Z               "line": 263
2026-06-04T02:01:23.6145469Z             },
2026-06-04T02:01:23.6145887Z             {
2026-06-04T02:01:23.6146532Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6146974Z               "line": 275
2026-06-04T02:01:23.6147408Z             },
2026-06-04T02:01:23.6147828Z             {
2026-06-04T02:01:23.6148482Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6148952Z               "line": 290
2026-06-04T02:01:23.6149578Z             },
2026-06-04T02:01:23.6150154Z             {
2026-06-04T02:01:23.6150803Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6151274Z               "line": 305
2026-06-04T02:01:23.6151721Z             },
2026-06-04T02:01:23.6152149Z             {
2026-06-04T02:01:23.6152809Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6153267Z               "line": 327
2026-06-04T02:01:23.6153706Z             },
2026-06-04T02:01:23.6154122Z             {
2026-06-04T02:01:23.6154783Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6155241Z               "line": 337
2026-06-04T02:01:23.6155675Z             },
2026-06-04T02:01:23.6156121Z             {
2026-06-04T02:01:23.6156760Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-04T02:01:23.6157218Z               "line": 364
2026-06-04T02:01:23.6157626Z             },
2026-06-04T02:01:23.6158050Z             {
2026-06-04T02:01:23.6158717Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6159218Z               "line": 338
2026-06-04T02:01:23.6159953Z             },
2026-06-04T02:01:23.6160362Z             {
2026-06-04T02:01:23.6161039Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6161500Z               "line": 350
2026-06-04T02:01:23.6161928Z             },
2026-06-04T02:01:23.6162344Z             {
2026-06-04T02:01:23.6163345Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6163849Z               "line": 367
2026-06-04T02:01:23.6164271Z             },
2026-06-04T02:01:23.6164693Z             {
2026-06-04T02:01:23.6165517Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-04T02:01:23.6165961Z               "line": 378
2026-06-04T02:01:23.6166382Z             },
2026-06-04T02:01:23.6166788Z             {
2026-06-04T02:01:23.6167454Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.6167900Z               "line": 759
2026-06-04T02:01:23.6168335Z             },
2026-06-04T02:01:23.6168744Z             {
2026-06-04T02:01:23.6169634Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.6170268Z               "line": 766
2026-06-04T02:01:23.6170689Z             },
2026-06-04T02:01:23.6171106Z             {
2026-06-04T02:01:23.6171885Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.6172375Z               "line": 781
2026-06-04T02:01:23.6172804Z             },
2026-06-04T02:01:23.6173255Z             {
2026-06-04T02:01:23.6173900Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6174367Z               "line": 381
2026-06-04T02:01:23.6174797Z             },
2026-06-04T02:01:23.6175215Z             {
2026-06-04T02:01:23.6175841Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6176303Z               "line": 402
2026-06-04T02:01:23.6176725Z             },
2026-06-04T02:01:23.6177146Z             {
2026-06-04T02:01:23.6177767Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6178221Z               "line": 415
2026-06-04T02:01:23.6178642Z             },
2026-06-04T02:01:23.6179071Z             {
2026-06-04T02:01:23.6180149Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6180634Z               "line": 434
2026-06-04T02:01:23.6181148Z             },
2026-06-04T02:01:23.6181575Z             {
2026-06-04T02:01:23.6182204Z               "path": "crates/spt-term/src/digest.rs",
2026-06-04T02:01:23.6182696Z               "line": 461
2026-06-04T02:01:23.6183125Z             },
2026-06-04T02:01:23.6183542Z             {
2026-06-04T02:01:23.6184201Z               "path": "crates/spt-term/tests/digest.rs",
2026-06-04T02:01:23.6184646Z               "line": 32
2026-06-04T02:01:23.6185057Z             },
2026-06-04T02:01:23.6185478Z             {
2026-06-04T02:01:23.6186022Z               "path": "crates/spt/src/cli.rs",
2026-06-04T02:01:23.6186476Z               "line": 646
2026-06-04T02:01:23.6186898Z             }
2026-06-04T02:01:23.6187313Z           ]
2026-06-04T02:01:23.6187727Z         }
2026-06-04T02:01:23.6188148Z       }
2026-06-04T02:01:23.6188569Z     },
2026-06-04T02:01:23.6188980Z     {
2026-06-04T02:01:23.6189698Z       "id": "REQ-UPD-1",
2026-06-04T02:01:23.6190525Z       "title": "Peer-propagated update over P2P",
2026-06-04T02:01:23.6191023Z       "requiredStages": [],
2026-06-04T02:01:23.6191483Z       "stages": {
2026-06-04T02:01:23.6191914Z         "doc": {
2026-06-04T02:01:23.6192394Z           "complete": false,
2026-06-04T02:01:23.6192841Z           "evidence": []
2026-06-04T02:01:23.6193276Z         },
2026-06-04T02:01:23.6193736Z         "impl": {
2026-06-04T02:01:23.6194209Z           "complete": false,
2026-06-04T02:01:23.6194671Z           "evidence": []
2026-06-04T02:01:23.6195082Z         },
2026-06-04T02:01:23.6195513Z         "int": {
2026-06-04T02:01:23.6195976Z           "complete": false,
2026-06-04T02:01:23.6196431Z           "evidence": []
2026-06-04T02:01:23.6196848Z         },
2026-06-04T02:01:23.6197267Z         "unit": {
2026-06-04T02:01:23.6197777Z           "complete": false,
2026-06-04T02:01:23.6198259Z           "evidence": []
2026-06-04T02:01:23.6198689Z         }
2026-06-04T02:01:23.6199110Z       }
2026-06-04T02:01:23.6199781Z     },
2026-06-04T02:01:23.6200549Z     {
2026-06-04T02:01:23.6201015Z       "id": "REQ-UPD-2",
2026-06-04T02:01:23.6202188Z       "title": "All binaries signature-verified before handoff",
2026-06-04T02:01:23.6202731Z       "requiredStages": [
2026-06-04T02:01:23.6203170Z         "impl",
2026-06-04T02:01:23.6203590Z         "unit"
2026-06-04T02:01:23.6204263Z       ],
2026-06-04T02:01:23.6204733Z       "stages": {
2026-06-04T02:01:23.6213947Z         "doc": {
2026-06-04T02:01:23.6214632Z           "complete": false,
2026-06-04T02:01:23.6215091Z           "evidence": []
2026-06-04T02:01:23.6215518Z         },
2026-06-04T02:01:23.6215957Z         "impl": {
2026-06-04T02:01:23.6216441Z           "complete": true,
2026-06-04T02:01:23.6216885Z           "evidence": [
2026-06-04T02:01:23.6217306Z             {
2026-06-04T02:01:23.6217988Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6218443Z               "line": 29
2026-06-04T02:01:23.6218862Z             },
2026-06-04T02:01:23.6219505Z             {
2026-06-04T02:01:23.6220346Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6220839Z               "line": 158
2026-06-04T02:01:23.6221252Z             },
2026-06-04T02:01:23.6221668Z             {
2026-06-04T02:01:23.6222333Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6222816Z               "line": 239
2026-06-04T02:01:23.6223233Z             },
2026-06-04T02:01:23.6223652Z             {
2026-06-04T02:01:23.6224309Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6224754Z               "line": 149
2026-06-04T02:01:23.6225190Z             }
2026-06-04T02:01:23.6225602Z           ]
2026-06-04T02:01:23.6226018Z         },
2026-06-04T02:01:23.6226442Z         "int": {
2026-06-04T02:01:23.6226921Z           "complete": false,
2026-06-04T02:01:23.6227378Z           "evidence": []
2026-06-04T02:01:23.6227782Z         },
2026-06-04T02:01:23.6228215Z         "unit": {
2026-06-04T02:01:23.6228699Z           "complete": true,
2026-06-04T02:01:23.6229262Z           "evidence": [
2026-06-04T02:01:23.6229893Z             {
2026-06-04T02:01:23.6230685Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6231386Z               "line": 336
2026-06-04T02:01:23.6231904Z             },
2026-06-04T02:01:23.6232424Z             {
2026-06-04T02:01:23.6233190Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6233720Z               "line": 350
2026-06-04T02:01:23.6234187Z             },
2026-06-04T02:01:23.6234669Z             {
2026-06-04T02:01:23.6235449Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6235968Z               "line": 361
2026-06-04T02:01:23.6236469Z             },
2026-06-04T02:01:23.6236928Z             {
2026-06-04T02:01:23.6237695Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6238200Z               "line": 437
2026-06-04T02:01:23.6238686Z             },
2026-06-04T02:01:23.6239145Z             {
2026-06-04T02:01:23.6240293Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6240811Z               "line": 326
2026-06-04T02:01:23.6241295Z             },
2026-06-04T02:01:23.6241828Z             {
2026-06-04T02:01:23.6242646Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6243182Z               "line": 339
2026-06-04T02:01:23.6243682Z             }
2026-06-04T02:01:23.6244151Z           ]
2026-06-04T02:01:23.6244619Z         }
2026-06-04T02:01:23.6245109Z       }
2026-06-04T02:01:23.6245562Z     },
2026-06-04T02:01:23.6246003Z     {
2026-06-04T02:01:23.6246526Z       "id": "REQ-UPD-3",
2026-06-04T02:01:23.6247638Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-04T02:01:23.6248184Z       "requiredStages": [
2026-06-04T02:01:23.6248670Z         "impl",
2026-06-04T02:01:23.6249151Z         "unit",
2026-06-04T02:01:23.6249729Z         "int"
2026-06-04T02:01:23.6250176Z       ],
2026-06-04T02:01:23.6250643Z       "stages": {
2026-06-04T02:01:23.6251080Z         "doc": {
2026-06-04T02:01:23.6251592Z           "complete": false,
2026-06-04T02:01:23.6252502Z           "evidence": []
2026-06-04T02:01:23.6252989Z         },
2026-06-04T02:01:23.6253443Z         "impl": {
2026-06-04T02:01:23.6253924Z           "complete": true,
2026-06-04T02:01:23.6254390Z           "evidence": [
2026-06-04T02:01:23.6255002Z             {
2026-06-04T02:01:23.6255691Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6256163Z               "line": 26
2026-06-04T02:01:23.6256595Z             },
2026-06-04T02:01:23.6257023Z             {
2026-06-04T02:01:23.6257724Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6258232Z               "line": 111
2026-06-04T02:01:23.6258680Z             },
2026-06-04T02:01:23.6259127Z             {
2026-06-04T02:01:23.6259950Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6260472Z               "line": 213
2026-06-04T02:01:23.6260940Z             }
2026-06-04T02:01:23.6261383Z           ]
2026-06-04T02:01:23.6261842Z         },
2026-06-04T02:01:23.6262324Z         "int": {
2026-06-04T02:01:23.6262844Z           "complete": true,
2026-06-04T02:01:23.6263336Z           "evidence": [
2026-06-04T02:01:23.6263800Z             {
2026-06-04T02:01:23.6264588Z               "path": "crates/spt-daemon/tests/brain_swap.rs",
2026-06-04T02:01:23.6265103Z               "line": 23
2026-06-04T02:01:23.6265589Z             }
2026-06-04T02:01:23.6266071Z           ]
2026-06-04T02:01:23.6266563Z         },
2026-06-04T02:01:23.6267091Z         "unit": {
2026-06-04T02:01:23.6267624Z           "complete": true,
2026-06-04T02:01:23.6268120Z           "evidence": [
2026-06-04T02:01:23.6268571Z             {
2026-06-04T02:01:23.6269390Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6269893Z               "line": 238
2026-06-04T02:01:23.6270331Z             },
2026-06-04T02:01:23.6270845Z             {
2026-06-04T02:01:23.6271504Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6271975Z               "line": 262
2026-06-04T02:01:23.6272406Z             },
2026-06-04T02:01:23.6272831Z             {
2026-06-04T02:01:23.6273484Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6273952Z               "line": 273
2026-06-04T02:01:23.6274419Z             },
2026-06-04T02:01:23.6274828Z             {
2026-06-04T02:01:23.6275483Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-04T02:01:23.6275933Z               "line": 286
2026-06-04T02:01:23.6276355Z             }
2026-06-04T02:01:23.6276769Z           ]
2026-06-04T02:01:23.6277191Z         }
2026-06-04T02:01:23.6277613Z       }
2026-06-04T02:01:23.6278013Z     },
2026-06-04T02:01:23.6278422Z     {
2026-06-04T02:01:23.6278872Z       "id": "REQ-UPD-4",
2026-06-04T02:01:23.6280003Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-04T02:01:23.6280477Z       "requiredStages": [
2026-06-04T02:01:23.6280908Z         "impl",
2026-06-04T02:01:23.6281395Z         "unit"
2026-06-04T02:01:23.6281815Z       ],
2026-06-04T02:01:23.6282257Z       "stages": {
2026-06-04T02:01:23.6282679Z         "doc": {
2026-06-04T02:01:23.6283165Z           "complete": false,
2026-06-04T02:01:23.6283614Z           "evidence": []
2026-06-04T02:01:23.6284044Z         },
2026-06-04T02:01:23.6284485Z         "impl": {
2026-06-04T02:01:23.6284961Z           "complete": true,
2026-06-04T02:01:23.6285418Z           "evidence": [
2026-06-04T02:01:23.6285833Z             {
2026-06-04T02:01:23.6286498Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6286945Z               "line": 23
2026-06-04T02:01:23.6287369Z             },
2026-06-04T02:01:23.6287792Z             {
2026-06-04T02:01:23.6288449Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6288902Z               "line": 60
2026-06-04T02:01:23.6289375Z             },
2026-06-04T02:01:23.6289972Z             {
2026-06-04T02:01:23.6290601Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6291339Z               "line": 79
2026-06-04T02:01:23.6291791Z             },
2026-06-04T02:01:23.6300772Z             {
2026-06-04T02:01:23.6301688Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-04T02:01:23.6302130Z               "line": 162
2026-06-04T02:01:23.6302831Z             },
2026-06-04T02:01:23.6303229Z             {
2026-06-04T02:01:23.6303826Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.6304264Z               "line": 106
2026-06-04T02:01:23.6304668Z             }
2026-06-04T02:01:23.6305069Z           ]
2026-06-04T02:01:23.6305463Z         },
2026-06-04T02:01:23.6305902Z         "int": {
2026-06-04T02:01:23.6306354Z           "complete": false,
2026-06-04T02:01:23.6306801Z           "evidence": []
2026-06-04T02:01:23.6307208Z         },
2026-06-04T02:01:23.6307618Z         "unit": {
2026-06-04T02:01:23.6308076Z           "complete": true,
2026-06-04T02:01:23.6308506Z           "evidence": [
2026-06-04T02:01:23.6308912Z             {
2026-06-04T02:01:23.6309967Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-04T02:01:23.6310413Z               "line": 217
2026-06-04T02:01:23.6310831Z             },
2026-06-04T02:01:23.6311230Z             {
2026-06-04T02:01:23.6311876Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6312315Z               "line": 118
2026-06-04T02:01:23.6312720Z             },
2026-06-04T02:01:23.6313121Z             {
2026-06-04T02:01:23.6313758Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6314202Z               "line": 133
2026-06-04T02:01:23.6314601Z             },
2026-06-04T02:01:23.6315011Z             {
2026-06-04T02:01:23.6315640Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-04T02:01:23.6316078Z               "line": 152
2026-06-04T02:01:23.6316479Z             },
2026-06-04T02:01:23.6316893Z             {
2026-06-04T02:01:23.6317487Z               "path": "crates/spt-store/src/info.rs",
2026-06-04T02:01:23.6317923Z               "line": 234
2026-06-04T02:01:23.6318340Z             },
2026-06-04T02:01:23.6318738Z             {
2026-06-04T02:01:23.6319560Z               "path": "crates/spt-store/src/perch.rs",
2026-06-04T02:01:23.6320171Z               "line": 407
2026-06-04T02:01:23.6320577Z             }
2026-06-04T02:01:23.6320984Z           ]
2026-06-04T02:01:23.6321376Z         }
2026-06-04T02:01:23.6321787Z       }
2026-06-04T02:01:23.6322177Z     },
2026-06-04T02:01:23.6322574Z     {
2026-06-04T02:01:23.6323020Z       "id": "REQ-UPD-5",
2026-06-04T02:01:23.6323793Z       "title": "spt-core ripple-updates registered adapters",
2026-06-04T02:01:23.6324265Z       "requiredStages": [
2026-06-04T02:01:23.6324672Z         "impl",
2026-06-04T02:01:23.6325090Z         "unit"
2026-06-04T02:01:23.6325491Z       ],
2026-06-04T02:01:23.6325915Z       "stages": {
2026-06-04T02:01:23.6326320Z         "doc": {
2026-06-04T02:01:23.6326785Z           "complete": false,
2026-06-04T02:01:23.6327228Z           "evidence": []
2026-06-04T02:01:23.6327637Z         },
2026-06-04T02:01:23.6328058Z         "impl": {
2026-06-04T02:01:23.6328509Z           "complete": true,
2026-06-04T02:01:23.6328950Z           "evidence": [
2026-06-04T02:01:23.6329556Z             {
2026-06-04T02:01:23.6330487Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6330923Z               "line": 27
2026-06-04T02:01:23.6331325Z             },
2026-06-04T02:01:23.6331728Z             {
2026-06-04T02:01:23.6332433Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6332870Z               "line": 82
2026-06-04T02:01:23.6333275Z             },
2026-06-04T02:01:23.6333687Z             {
2026-06-04T02:01:23.6334403Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6334839Z               "line": 134
2026-06-04T02:01:23.6335249Z             },
2026-06-04T02:01:23.6335647Z             {
2026-06-04T02:01:23.6336297Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6336931Z               "line": 198
2026-06-04T02:01:23.6337348Z             },
2026-06-04T02:01:23.6337758Z             {
2026-06-04T02:01:23.6338387Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-04T02:01:23.6338957Z               "line": 226
2026-06-04T02:01:23.6339403Z             }
2026-06-04T02:01:23.6339813Z           ]
2026-06-04T02:01:23.6340225Z         },
2026-06-04T02:01:23.6340632Z         "int": {
2026-06-04T02:01:23.6341101Z           "complete": false,
2026-06-04T02:01:23.6341539Z           "evidence": []
2026-06-04T02:01:23.6341945Z         },
2026-06-04T02:01:23.6342356Z         "unit": {
2026-06-04T02:01:23.6342814Z           "complete": true,
2026-06-04T02:01:23.6343252Z           "evidence": [
2026-06-04T02:01:23.6343645Z             {
2026-06-04T02:01:23.6344366Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6344799Z               "line": 194
2026-06-04T02:01:23.6345208Z             },
2026-06-04T02:01:23.6345607Z             {
2026-06-04T02:01:23.6346340Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6346777Z               "line": 208
2026-06-04T02:01:23.6347183Z             },
2026-06-04T02:01:23.6347588Z             {
2026-06-04T02:01:23.6348300Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6348742Z               "line": 222
2026-06-04T02:01:23.6349143Z             },
2026-06-04T02:01:23.6349581Z             {
2026-06-04T02:01:23.6350293Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6350733Z               "line": 236
2026-06-04T02:01:23.6351150Z             },
2026-06-04T02:01:23.6351551Z             {
2026-06-04T02:01:23.6352267Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-04T02:01:23.6352731Z               "line": 270
2026-06-04T02:01:23.6353146Z             },
2026-06-04T02:01:23.6353554Z             {
2026-06-04T02:01:23.6354215Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-04T02:01:23.6354657Z               "line": 729
2026-06-04T02:01:23.6355052Z             }
2026-06-04T02:01:23.6355455Z           ]
2026-06-04T02:01:23.6355854Z         }
2026-06-04T02:01:23.6356260Z       }
2026-06-04T02:01:23.6356674Z     }
2026-06-04T02:01:23.6357063Z   ],
2026-06-04T02:01:23.6357493Z   "findings": []
2026-06-04T02:01:23.6357882Z }
2026-06-04T02:01:23.6457291Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T02:01:23.6458922Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T02:01:23.6482911Z shell: /usr/bin/bash -e {0}
2026-06-04T02:01:23.6484120Z ##[endgroup]
2026-06-04T02:01:23.6665606Z Requirement quality findings (15); 126 requirements queued for agent review:
2026-06-04T02:01:23.6670638Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6675197Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T02:01:23.6680242Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6685518Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6690365Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T02:01:23.6694243Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T02:01:23.6698856Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6704531Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6709417Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T02:01:23.6713164Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T02:01:23.6716304Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:01:23.6721029Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6725481Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T02:01:23.6729475Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T02:01:23.6732917Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T02:01:23.6734670Z 
2026-06-04T02:01:23.6735168Z # Requirement quality review
2026-06-04T02:01:23.6735940Z 
2026-06-04T02:01:23.6737444Z You are reviewing 126 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T02:01:23.6740552Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T02:01:23.6743287Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T02:01:23.6745727Z this command's output. Your task is the rubric items below.
2026-06-04T02:01:23.6746953Z 
2026-06-04T02:01:23.6747365Z ## Rubric
2026-06-04T02:01:23.6747872Z 
2026-06-04T02:01:23.6749236Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T02:01:23.6752126Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T02:01:23.6754741Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T02:01:23.6756871Z - **active-voice** — clear subject and active verb.
2026-06-04T02:01:23.6757971Z 
2026-06-04T02:01:23.6759134Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T02:01:23.6761656Z clear concerns.
2026-06-04T02:01:23.6762247Z 
2026-06-04T02:01:23.6762681Z ## Requirements
2026-06-04T02:01:23.6763260Z 
2026-06-04T02:01:23.6763687Z ### REQ-ARCH-1
2026-06-04T02:01:23.6764879Z - Title: Many small acyclically-layered crates
2026-06-04T02:01:23.6778158Z - Required stages: impl
2026-06-04T02:01:23.6778900Z 
2026-06-04T02:01:23.6780209Z ### REQ-ARCH-2
2026-06-04T02:01:23.6781637Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T02:01:23.6783353Z - Required stages: impl
2026-06-04T02:01:23.6784030Z 
2026-06-04T02:01:23.6784455Z ### REQ-ARCH-3
2026-06-04T02:01:23.6786103Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T02:01:23.6788120Z - Required stages: impl, unit
2026-06-04T02:01:23.6788914Z 
2026-06-04T02:01:23.6789379Z ### REQ-ARCH-4
2026-06-04T02:01:23.6791349Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T02:01:23.6793169Z - Required stages: impl, unit
2026-06-04T02:01:23.6793961Z 
2026-06-04T02:01:23.6794394Z ### REQ-DAEMON-1
2026-06-04T02:01:23.6795820Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T02:01:23.6797601Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6798485Z 
2026-06-04T02:01:23.6798905Z ### REQ-DAEMON-2
2026-06-04T02:01:23.6800701Z - Title: Broker/brain split for seamless self-update
2026-06-04T02:01:23.6802300Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6803163Z 
2026-06-04T02:01:23.6803600Z ### REQ-DAEMON-3
2026-06-04T02:01:23.6804946Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T02:01:23.6806661Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6807514Z 
2026-06-04T02:01:23.6807945Z ### REQ-DAEMON-4
2026-06-04T02:01:23.6809091Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T02:01:23.6811076Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6811940Z 
2026-06-04T02:01:23.6812356Z ### REQ-STORE-1
2026-06-04T02:01:23.6818461Z - 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-04T02:01:23.6825326Z - Required stages: 
2026-06-04T02:01:23.6825972Z 
2026-06-04T02:01:23.6826408Z ### REQ-MANIFEST-1
2026-06-04T02:01:23.6827962Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T02:01:23.6830233Z - Required stages: doc, impl, unit
2026-06-04T02:01:23.6831112Z 
2026-06-04T02:01:23.6831567Z ### REQ-SEAM-SPAWN
2026-06-04T02:01:23.6832645Z - Title: spawn-session seam
2026-06-04T02:01:23.6833867Z - Required stages: impl, unit
2026-06-04T02:01:23.6834656Z 
2026-06-04T02:01:23.6835125Z ### REQ-SEAM-POSTSPAWN
2026-06-04T02:01:23.6836429Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T02:01:23.6837986Z - Required stages: impl, unit
2026-06-04T02:01:23.6838777Z 
2026-06-04T02:01:23.6839244Z ### REQ-SEAM-PSYCHE
2026-06-04T02:01:23.6840816Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T02:01:23.6842432Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6843300Z 
2026-06-04T02:01:23.6843745Z ### REQ-SEAM-HISTORY
2026-06-04T02:01:23.6845311Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T02:01:23.6847219Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6848082Z 
2026-06-04T02:01:23.6848519Z ### REQ-SEAM-ACTIVITY
2026-06-04T02:01:23.6850425Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T02:01:23.6852318Z - Required stages: impl, unit
2026-06-04T02:01:23.6853102Z 
2026-06-04T02:01:23.6853543Z ### REQ-SEAM-INJECT
2026-06-04T02:01:23.6854957Z - Title: inject-input methods configurable per activity-state
2026-06-04T02:01:23.6856703Z - Required stages: impl, unit
2026-06-04T02:01:23.6857486Z 
2026-06-04T02:01:23.6857921Z ### REQ-SEAM-RESUME
2026-06-04T02:01:23.6859676Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T02:01:23.6861798Z - Required stages: impl, unit
2026-06-04T02:01:23.6862584Z 
2026-06-04T02:01:23.6863047Z ### REQ-SEAM-CAPABILITY
2026-06-04T02:01:23.6864443Z - Title: Hostable endpoint-types capability declaration
2026-06-04T02:01:23.6866072Z - Required stages: impl, unit
2026-06-04T02:01:23.6867063Z 
2026-06-04T02:01:23.6867537Z ### REQ-SEAM-UPDATE
2026-06-04T02:01:23.6868972Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T02:01:23.6871281Z - Required stages: impl, unit
2026-06-04T02:01:23.6872080Z 
2026-06-04T02:01:23.6872495Z ### REQ-API-1
2026-06-04T02:01:23.6873913Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T02:01:23.6875723Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6876576Z 
2026-06-04T02:01:23.6876998Z ### REQ-API-2
2026-06-04T02:01:23.6878635Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T02:01:23.6880736Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6881594Z 
2026-06-04T02:01:23.6882007Z ### REQ-API-3
2026-06-04T02:01:23.6883214Z - Title: commune/signoff are file-drops, not commands
2026-06-04T02:01:23.6884827Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6885690Z 
2026-06-04T02:01:23.6886121Z ### REQ-START-1
2026-06-04T02:01:23.6887712Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T02:01:23.6889714Z - Required stages: impl, unit
2026-06-04T02:01:23.6890511Z 
2026-06-04T02:01:23.6890926Z ### REQ-START-2
2026-06-04T02:01:23.6892160Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T02:01:23.6893768Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6894627Z 
2026-06-04T02:01:23.6895040Z ### REQ-START-3
2026-06-04T02:01:23.6896480Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T02:01:23.6898290Z - Required stages: impl, unit, int
2026-06-04T02:01:23.6899132Z 
2026-06-04T02:01:23.6899607Z ### REQ-START-4
2026-06-04T02:01:23.6900825Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T02:01:23.6902400Z - Required stages: impl, unit
2026-06-04T02:01:23.6903195Z 
2026-06-04T02:01:23.6903602Z ### REQ-EP-1
2026-06-04T02:01:23.6904932Z - Title: Day-one endpoint types; open type system
2026-06-04T02:01:23.6906484Z - Required stages: impl, unit
2026-06-04T02:01:23.6907276Z 
2026-06-04T02:01:23.6907689Z ### REQ-EP-2
2026-06-04T02:01:23.6909062Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T02:01:23.6910872Z - Required stages: impl, unit
2026-06-04T02:01:23.6911672Z 
2026-06-04T02:01:23.6912077Z ### REQ-EP-3
2026-06-04T02:01:23.6913579Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T02:01:23.6915469Z - Required stages: impl, unit
2026-06-04T02:01:23.6916263Z 
2026-06-04T02:01:23.6916681Z ### REQ-EP-4
2026-06-04T02:01:23.6917933Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T02:01:23.6919595Z - Required stages: impl, unit
2026-06-04T02:01:23.6920381Z 
2026-06-04T02:01:23.6920801Z ### REQ-EP-5
2026-06-04T02:01:23.6925577Z - 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-04T02:01:23.6931028Z - Required stages: 
2026-06-04T02:01:23.6931674Z 
2026-06-04T02:01:23.6932103Z ### REQ-INST-1
2026-06-04T02:01:23.6933448Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T02:01:23.6935104Z - Required stages: 
2026-06-04T02:01:23.6935713Z 
2026-06-04T02:01:23.6936137Z ### REQ-INST-2
2026-06-04T02:01:23.6937247Z - Title: Per-node files, synced Psyche mind
2026-06-04T02:01:23.6938648Z - Required stages: 
2026-06-04T02:01:23.6939318Z 
2026-06-04T02:01:23.6939781Z ### REQ-INST-3
2026-06-04T02:01:23.6941067Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T02:01:23.6942665Z - Required stages: 
2026-06-04T02:01:23.6943278Z 
2026-06-04T02:01:23.6943700Z ### REQ-INST-4
2026-06-04T02:01:23.6945150Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T02:01:23.6946943Z - Required stages: 
2026-06-04T02:01:23.6947584Z 
2026-06-04T02:01:23.6947998Z ### REQ-INST-5
2026-06-04T02:01:23.6949666Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T02:01:23.6951490Z - Required stages: 
2026-06-04T02:01:23.6952126Z 
2026-06-04T02:01:23.6952550Z ### REQ-INST-6
2026-06-04T02:01:23.6954063Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T02:01:23.6955922Z - Required stages: 
2026-06-04T02:01:23.6956538Z 
2026-06-04T02:01:23.6956964Z ### REQ-INST-7
2026-06-04T02:01:23.6958163Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T02:01:23.6959843Z - Required stages: impl, unit
2026-06-04T02:01:23.6960638Z 
2026-06-04T02:01:23.6961047Z ### REQ-INST-8
2026-06-04T02:01:23.6962364Z - Title: Remote-control mode distinct from local operation
2026-06-04T02:01:23.6963983Z - Required stages: 
2026-06-04T02:01:23.6964601Z 
2026-06-04T02:01:23.6965037Z ### REQ-INST-9
2026-06-04T02:01:23.6966557Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T02:01:23.6968478Z - Required stages: impl, unit
2026-06-04T02:01:23.6969319Z 
2026-06-04T02:01:23.6969746Z ### REQ-INST-10
2026-06-04T02:01:23.6971435Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T02:01:23.6973512Z - Required stages: impl, unit
2026-06-04T02:01:23.6974294Z 
2026-06-04T02:01:23.6974718Z ### REQ-INST-11
2026-06-04T02:01:23.6976408Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T02:01:23.6978495Z - Required stages: impl, unit
2026-06-04T02:01:23.6979342Z 
2026-06-04T02:01:23.6979759Z ### REQ-INST-12
2026-06-04T02:01:23.6981978Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T02:01:23.6984562Z - Required stages: impl, unit
2026-06-04T02:01:23.6985366Z 
2026-06-04T02:01:23.6985792Z ### REQ-INST-13
2026-06-04T02:01:23.6987302Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T02:01:23.6989443Z - Required stages: impl, unit
2026-06-04T02:01:23.6990224Z 
2026-06-04T02:01:23.6990702Z ### REQ-INST-14
2026-06-04T02:01:23.6993488Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T02:01:23.6996595Z - Required stages: 
2026-06-04T02:01:23.6997223Z 
2026-06-04T02:01:23.6997635Z ### REQ-INST-15
2026-06-04T02:01:23.7002800Z - 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-04T02:01:23.7008162Z - Required stages: 
2026-06-04T02:01:23.7008787Z 
2026-06-04T02:01:23.7009258Z ### REQ-REACH-1
2026-06-04T02:01:23.7010636Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T02:01:23.7012231Z - Required stages: 
2026-06-04T02:01:23.7012869Z 
2026-06-04T02:01:23.7013299Z ### REQ-REACH-2
2026-06-04T02:01:23.7014629Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T02:01:23.7016268Z - Required stages: 
2026-06-04T02:01:23.7016885Z 
2026-06-04T02:01:23.7017308Z ### REQ-MSG-1
2026-06-04T02:01:23.7020658Z - 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-04T02:01:23.7024283Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7025136Z 
2026-06-04T02:01:23.7025548Z ### REQ-MSG-2
2026-06-04T02:01:23.7027592Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T02:01:23.7030281Z - Required stages: impl, unit
2026-06-04T02:01:23.7031167Z 
2026-06-04T02:01:23.7031662Z ### REQ-MSG-3
2026-06-04T02:01:23.7034644Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T02:01:23.7038014Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7038918Z 
2026-06-04T02:01:23.7039942Z ### REQ-NODE-IDENTITY
2026-06-04T02:01:23.7041833Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T02:01:23.7044034Z - Required stages: impl, unit
2026-06-04T02:01:23.7044976Z 
2026-06-04T02:01:23.7045431Z ### REQ-NET-1
2026-06-04T02:01:23.7047118Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T02:01:23.7049014Z - Required stages: impl, unit
2026-06-04T02:01:23.7049904Z 
2026-06-04T02:01:23.7050311Z ### REQ-NET-2
2026-06-04T02:01:23.7051764Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T02:01:23.7053584Z - Required stages: impl
2026-06-04T02:01:23.7054279Z 
2026-06-04T02:01:23.7054697Z ### REQ-NET-3
2026-06-04T02:01:23.7056077Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T02:01:23.7058286Z - Required stages: 
2026-06-04T02:01:23.7059074Z 
2026-06-04T02:01:23.7059685Z ### REQ-PAIR-1
2026-06-04T02:01:23.7060941Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T02:01:23.7062497Z - Required stages: impl, unit
2026-06-04T02:01:23.7063331Z 
2026-06-04T02:01:23.7063862Z ### REQ-PAIR-2
2026-06-04T02:01:23.7074595Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T02:01:23.7076213Z - Required stages: impl, unit
2026-06-04T02:01:23.7077012Z 
2026-06-04T02:01:23.7077435Z ### REQ-PAIR-3
2026-06-04T02:01:23.7078715Z - Title: Fetch current pairing code from any paired node
2026-06-04T02:01:23.7080440Z - Required stages: impl, unit
2026-06-04T02:01:23.7081224Z 
2026-06-04T02:01:23.7081658Z ### REQ-PAIR-4
2026-06-04T02:01:23.7082731Z - Title: Subnet naming on first pairing
2026-06-04T02:01:23.7084111Z - Required stages: impl, unit
2026-06-04T02:01:23.7084905Z 
2026-06-04T02:01:23.7085324Z ### REQ-PAIR-5
2026-06-04T02:01:23.7087603Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T02:01:23.7090644Z - Required stages: impl, unit
2026-06-04T02:01:23.7091444Z 
2026-06-04T02:01:23.7091872Z ### REQ-PAIR-6
2026-06-04T02:01:23.7093875Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T02:01:23.7096249Z - Required stages: impl, unit
2026-06-04T02:01:23.7097028Z 
2026-06-04T02:01:23.7097461Z ### REQ-PAIR-7
2026-06-04T02:01:23.7098807Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T02:01:23.7100541Z - Required stages: 
2026-06-04T02:01:23.7101169Z 
2026-06-04T02:01:23.7101574Z ### REQ-SEC-1
2026-06-04T02:01:23.7104476Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T02:01:23.7107683Z - Required stages: 
2026-06-04T02:01:23.7108294Z 
2026-06-04T02:01:23.7108721Z ### REQ-NOTIF-1
2026-06-04T02:01:23.7111602Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T02:01:23.7114628Z - Required stages: 
2026-06-04T02:01:23.7115253Z 
2026-06-04T02:01:23.7115677Z ### REQ-NOTIF-2
2026-06-04T02:01:23.7117741Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T02:01:23.7120163Z - Required stages: 
2026-06-04T02:01:23.7120780Z 
2026-06-04T02:01:23.7121198Z ### REQ-UPD-1
2026-06-04T02:01:23.7122283Z - Title: Peer-propagated update over P2P
2026-06-04T02:01:23.7123660Z - Required stages: 
2026-06-04T02:01:23.7124279Z 
2026-06-04T02:01:23.7124684Z ### REQ-UPD-2
2026-06-04T02:01:23.7125924Z - Title: All binaries signature-verified before handoff
2026-06-04T02:01:23.7127534Z - Required stages: impl, unit
2026-06-04T02:01:23.7128332Z 
2026-06-04T02:01:23.7128758Z ### REQ-UPD-3
2026-06-04T02:01:23.7130223Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T02:01:23.7132060Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7132924Z 
2026-06-04T02:01:23.7133349Z ### REQ-UPD-4
2026-06-04T02:01:23.7134987Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T02:01:23.7136879Z - Required stages: impl, unit
2026-06-04T02:01:23.7137673Z 
2026-06-04T02:01:23.7138089Z ### REQ-UPD-5
2026-06-04T02:01:23.7139346Z - Title: spt-core ripple-updates registered adapters
2026-06-04T02:01:23.7141172Z - Required stages: impl, unit
2026-06-04T02:01:23.7142100Z 
2026-06-04T02:01:23.7142592Z ### REQ-TERM-1
2026-06-04T02:01:23.7144192Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T02:01:23.7146210Z - Required stages: impl, unit
2026-06-04T02:01:23.7147111Z 
2026-06-04T02:01:23.7147586Z ### REQ-TERM-2
2026-06-04T02:01:23.7149344Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T02:01:23.7151611Z - Required stages: impl, unit
2026-06-04T02:01:23.7152434Z 
2026-06-04T02:01:23.7152899Z ### REQ-TERM-3
2026-06-04T02:01:23.7154193Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T02:01:23.7155916Z - Required stages: impl, unit
2026-06-04T02:01:23.7156968Z 
2026-06-04T02:01:23.7157476Z ### REQ-TERM-4
2026-06-04T02:01:23.7160659Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T02:01:23.7163986Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7164880Z 
2026-06-04T02:01:23.7165325Z ### REQ-FRONT-1
2026-06-04T02:01:23.7166815Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T02:01:23.7168649Z - Required stages: 
2026-06-04T02:01:23.7169335Z 
2026-06-04T02:01:23.7169903Z ### REQ-INSTALL-1
2026-06-04T02:01:23.7171536Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T02:01:23.7173445Z - Required stages: 
2026-06-04T02:01:23.7174061Z 
2026-06-04T02:01:23.7174489Z ### REQ-INSTALL-2
2026-06-04T02:01:23.7175731Z - Title: Marketplace-repackaging-friendly install
2026-06-04T02:01:23.7177266Z - Required stages: 
2026-06-04T02:01:23.7178248Z 
2026-06-04T02:01:23.7178677Z ### REQ-INSTALL-3
2026-06-04T02:01:23.7180260Z - Title: Idempotent + interactive-optional first run
2026-06-04T02:01:23.7181844Z - Required stages: 
2026-06-04T02:01:23.7182467Z 
2026-06-04T02:01:23.7182899Z ### REQ-INSTALL-4
2026-06-04T02:01:23.7187469Z - 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-04T02:01:23.7192343Z - Required stages: 
2026-06-04T02:01:23.7192967Z 
2026-06-04T02:01:23.7193394Z ### REQ-MIGRATE-1
2026-06-04T02:01:23.7194834Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T02:01:23.7196574Z - Required stages: 
2026-06-04T02:01:23.7197199Z 
2026-06-04T02:01:23.7197609Z ### REQ-INFRA-1
2026-06-04T02:01:23.7199112Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T02:01:23.7201506Z - Required stages: 
2026-06-04T02:01:23.7202122Z 
2026-06-04T02:01:23.7202547Z ### REQ-DOCS-1
2026-06-04T02:01:23.7204156Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T02:01:23.7206099Z - Required stages: 
2026-06-04T02:01:23.7206719Z 
2026-06-04T02:01:23.7207127Z ### REQ-DOCS-2
2026-06-04T02:01:23.7208490Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T02:01:23.7218861Z - Required stages: 
2026-06-04T02:01:23.7220042Z 
2026-06-04T02:01:23.7220633Z ### REQ-DOCS-3
2026-06-04T02:01:23.7222205Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T02:01:23.7223760Z - Required stages: 
2026-06-04T02:01:23.7224391Z 
2026-06-04T02:01:23.7224809Z ### REQ-DOCS-4
2026-06-04T02:01:23.7226928Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T02:01:23.7228946Z - Required stages: 
2026-06-04T02:01:23.7229783Z 
2026-06-04T02:01:23.7230215Z ### REQ-DOCS-5
2026-06-04T02:01:23.7231815Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T02:01:23.7233824Z - Required stages: 
2026-06-04T02:01:23.7234775Z 
2026-06-04T02:01:23.7235346Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T02:01:23.7237228Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T02:01:23.7239225Z - Required stages: impl, unit
2026-06-04T02:01:23.7240378Z 
2026-06-04T02:01:23.7241058Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T02:01:23.7242876Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T02:01:23.7244685Z - Required stages: impl, unit
2026-06-04T02:01:23.7245522Z 
2026-06-04T02:01:23.7246058Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T02:01:23.7247561Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T02:01:23.7249135Z - Required stages: 
2026-06-04T02:01:23.7249976Z 
2026-06-04T02:01:23.7250469Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T02:01:23.7252307Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T02:01:23.7254760Z - Required stages: impl, unit
2026-06-04T02:01:23.7255703Z 
2026-06-04T02:01:23.7256197Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T02:01:23.7257884Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T02:01:23.7259848Z - Required stages: impl, unit
2026-06-04T02:01:23.7260777Z 
2026-06-04T02:01:23.7261309Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T02:01:23.7263307Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T02:01:23.7265742Z - Required stages: 
2026-06-04T02:01:23.7266390Z 
2026-06-04T02:01:23.7266896Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T02:01:23.7268333Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T02:01:23.7269904Z - Required stages: 
2026-06-04T02:01:23.7270525Z 
2026-06-04T02:01:23.7271068Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T02:01:23.7272766Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T02:01:23.7274525Z - Required stages: impl, unit
2026-06-04T02:01:23.7275759Z 
2026-06-04T02:01:23.7276290Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T02:01:23.7277876Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T02:01:23.7279867Z - Required stages: impl, int
2026-06-04T02:01:23.7280664Z 
2026-06-04T02:01:23.7281196Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T02:01:23.7282852Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T02:01:23.7284802Z - Required stages: impl, unit
2026-06-04T02:01:23.7285653Z 
2026-06-04T02:01:23.7286220Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T02:01:23.7288046Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T02:01:23.7290083Z - Required stages: impl, unit
2026-06-04T02:01:23.7290977Z 
2026-06-04T02:01:23.7291505Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T02:01:23.7293376Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T02:01:23.7295324Z - Required stages: impl, unit
2026-06-04T02:01:23.7296123Z 
2026-06-04T02:01:23.7296666Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T02:01:23.7298356Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T02:01:23.7300130Z - Required stages: impl, unit
2026-06-04T02:01:23.7300941Z 
2026-06-04T02:01:23.7301483Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T02:01:23.7303269Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T02:01:23.7305111Z - Required stages: impl, unit
2026-06-04T02:01:23.7305911Z 
2026-06-04T02:01:23.7306436Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T02:01:23.7308489Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T02:01:23.7310632Z - Required stages: impl, unit
2026-06-04T02:01:23.7311447Z 
2026-06-04T02:01:23.7311916Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T02:01:23.7313995Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T02:01:23.7316313Z - Required stages: impl, unit
2026-06-04T02:01:23.7317104Z 
2026-06-04T02:01:23.7317646Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T02:01:23.7319903Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T02:01:23.7322085Z - Required stages: impl, unit
2026-06-04T02:01:23.7322888Z 
2026-06-04T02:01:23.7323417Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T02:01:23.7325729Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T02:01:23.7328135Z - Required stages: impl, unit
2026-06-04T02:01:23.7328927Z 
2026-06-04T02:01:23.7329654Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T02:01:23.7333158Z - 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-04T02:01:23.7336301Z - Required stages: impl, unit
2026-06-04T02:01:23.7337118Z 
2026-06-04T02:01:23.7337661Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T02:01:23.7339256Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T02:01:23.7340791Z - Required stages: impl, unit
2026-06-04T02:01:23.7341639Z 
2026-06-04T02:01:23.7342145Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T02:01:23.7343607Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T02:01:23.7345178Z - Required stages: impl, unit
2026-06-04T02:01:23.7345983Z 
2026-06-04T02:01:23.7346509Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T02:01:23.7348175Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T02:01:23.7349928Z - Required stages: impl, unit
2026-06-04T02:01:23.7350732Z 
2026-06-04T02:01:23.7351223Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T02:01:23.7352816Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T02:01:23.7354599Z - Required stages: impl, unit
2026-06-04T02:01:23.7355410Z 
2026-06-04T02:01:23.7355935Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T02:01:23.7357519Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T02:01:23.7366975Z - Required stages: impl, unit
2026-06-04T02:01:23.7367952Z 
2026-06-04T02:01:23.7368780Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T02:01:23.7370468Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T02:01:23.7372177Z - Required stages: impl, unit
2026-06-04T02:01:23.7372970Z 
2026-06-04T02:01:23.7373523Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T02:01:23.7375346Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T02:01:23.7377267Z - Required stages: impl, unit
2026-06-04T02:01:23.7378068Z 
2026-06-04T02:01:23.7378546Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T02:01:23.7380340Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T02:01:23.7382308Z - Required stages: impl, unit
2026-06-04T02:01:23.7383092Z 
2026-06-04T02:01:23.7383618Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T02:01:23.7385348Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T02:01:23.7387171Z - Required stages: impl, unit
2026-06-04T02:01:23.7387974Z 
2026-06-04T02:01:23.7388523Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T02:01:23.7390229Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T02:01:23.7391876Z - Required stages: impl, unit
2026-06-04T02:01:23.7392662Z 
2026-06-04T02:01:23.7393231Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T02:01:23.7395336Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T02:01:23.7397460Z - Required stages: impl, unit
2026-06-04T02:01:23.7398252Z 
2026-06-04T02:01:23.7398726Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T02:01:23.7400720Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T02:01:23.7402823Z - Required stages: impl, unit
2026-06-04T02:01:23.7403620Z 
2026-06-04T02:01:23.7404122Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T02:01:23.7406048Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T02:01:23.7408133Z - Required stages: impl, unit
2026-06-04T02:01:23.7408916Z 
2026-06-04T02:01:23.7409478Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T02:01:23.7412053Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T02:01:23.7414551Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7415416Z 
2026-06-04T02:01:23.7415920Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T02:01:23.7418172Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T02:01:23.7420616Z - Required stages: impl, unit
2026-06-04T02:01:23.7421397Z 
2026-06-04T02:01:23.7421955Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T02:01:23.7425431Z - 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-04T02:01:23.7428916Z - Required stages: impl, unit, int
2026-06-04T02:01:23.7429815Z 
2026-06-04T02:01:23.7430351Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T02:01:23.7435957Z - 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-04T02:01:23.7441080Z - Required stages: 
2026-06-04T02:01:23.7441696Z 
2026-06-04T02:01:23.7442255Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T02:01:23.7447333Z - 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-04T02:01:23.7452306Z - Required stages: 
2026-06-04T02:01:23.7452937Z 
2026-06-04T02:01:23.7453473Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T02:01:23.7458023Z - 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-04T02:01:23.7462617Z - Required stages: impl, unit
2026-06-04T02:01:23.7463405Z 
2026-06-04T02:01:23.7463954Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T02:01:23.7468111Z - 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-04T02:01:23.7472333Z - Required stages: impl, unit
2026-06-04T02:01:23.7473124Z 
2026-06-04T02:01:23.7473633Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T02:01:23.7479509Z - 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-04T02:01:23.7485129Z - Required stages: impl, unit
2026-06-04T02:01:23.7485921Z 
2026-06-04T02:01:23.7486356Z ## How to report back
2026-06-04T02:01:23.7487006Z 
2026-06-04T02:01:23.7487909Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T02:01:23.7489281Z 
2026-06-04T02:01:23.7489710Z     {
2026-06-04T02:01:23.7490721Z       "code": "requirement_quality",
2026-06-04T02:01:23.7492085Z       "requirementId": "REQ-...",
2026-06-04T02:01:23.7493766Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T02:01:23.7495593Z       "message": "<short reason>",
2026-06-04T02:01:23.7496987Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T02:01:23.7498385Z     }
2026-06-04T02:01:23.7498887Z 
2026-06-04T02:01:23.7499925Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T02:01:23.7502102Z deterministic findings above don't need to be repeated.
2026-06-04T02:01:23.7794237Z Post job cleanup.
2026-06-04T02:01:23.9314307Z [command]/usr/bin/git version
2026-06-04T02:01:23.9369748Z git version 2.34.1
2026-06-04T02:01:23.9426091Z Copying '/home/david/.gitconfig' to '/home/david/actions-runner/_work/_temp/e0ebe2d8-c9e9-40b0-bcea-627461dfbd83/.gitconfig'
2026-06-04T02:01:23.9442291Z Temporarily overriding HOME='/home/david/actions-runner/_work/_temp/e0ebe2d8-c9e9-40b0-bcea-627461dfbd83' before making global git config changes
2026-06-04T02:01:23.9446760Z Adding repository directory to the temporary git global config as a safe directory
2026-06-04T02:01:23.9451927Z [command]/usr/bin/git config --global --add safe.directory /home/david/actions-runner/_work/spt-core/spt-core
2026-06-04T02:01:23.9500495Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-06-04T02:01:23.9556253Z [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-04T02:01:23.9804694Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-06-04T02:01:23.9833799Z http.https://github.com/.extraheader
2026-06-04T02:01:23.9852658Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-06-04T02:01:23.9896688Z [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-04T02:01:24.0151539Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-06-04T02:01:24.0195332Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-06-04T02:01:24.0631203Z Cleaning up orphan processes
2026-06-04T02:01:24.1481177Z ##[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/
