{
  "summary": "Complete read-only accounting: 43 assigned entries, IR-55–IR-97 inclusive. Leading lines 3001–3021 are CI-RIDER history belonging to the first scout, not a split IR. Preserve built work; propose driver/capacity prerequisites and narrowly seam-triggered riders for REMOTE-FRICTION, pending operator grill. No commands, edits, builds or tests executed.",
  "files": [
    {
      "path": "docs/INFRA-REGISTER.md:3022-5900",
      "description": "All 43 assigned IR bodies, amendments, triggers and residuals read."
    },
    {
      "path": "docs/INFRA-REGISTER.md:1-61",
      "description": "Authoritative prior release-close reconciliation and next-intake composition; supersedes stale historical build/owner prose."
    },
    {
      "path": ".spt/preserved/infra-close069-20260911/audit.json",
      "description": "Previous SHA-pinned full-register audit and parent rulings; consulted assigned-range report and implementation receipts."
    },
    {
      "path": "docs/instruments/ir59/STATUS.md",
      "description": "Existing disk-floor instrument, flags, adoption contract and instant-not-headroom limitation."
    },
    {
      "path": "crates/xtask/src/main.rs:69-70",
      "description": "pick-audit and disk-floor already wired; do not dispatch their implementation again."
    },
    {
      "path": "crates/xtask/src/brainread.rs:194-203,295-320",
      "description": "IR-94 still has name-shaped stream predicate and three-file population."
    },
    {
      "path": "crates/spt-store/src/proc.rs:430",
      "description": "kill_pid_tree still accepts bare numeric root; existing tree machinery is not identity-required primitive enforcement."
    },
    {
      "path": "crates/spt-daemon/src/daemon.rs:474-476",
      "description": "Direct pidfile overwrite remains; IR-82 predecessor preservation not built."
    },
    {
      "path": "crates/spt-daemon/src/docshost.rs:90-102",
      "description": "Ephemeral advisory flag still silently returns zero before explicit docs-port resolution."
    },
    {
      "path": "crates/spt/tests/common/reap.rs:1-100",
      "description": "Authenticated breadcrumb reaper substrate already exists, including birth/image checks and refusal semantics."
    },
    {
      "path": "crates/spt/tests/common/mod.rs:1-60",
      "description": "Shared reaper export and existing test support; adoption should reuse this seam."
    },
    {
      "path": "crates/spt/tests/projindex_writer_e2e.rs; crates/spt/tests/projindex_reader_e2e.rs; crates/spt/tests/brain_split.rs; crates/spt/tests/brain_respawn_rename.rs",
      "description": "IR-79 first-wave sites retain local kill helpers and end-of-body teardown; existing authenticated reaper is not equivalent to these sites having adopted lifetime guards."
    },
    {
      "path": "https://github.com/BigscreenVR/spt-bs-releases/issues/304",
      "description": "Current milestone intake explicitly forbids implementation before grill; includes original bag and adjacent RC/serving requests."
    }
  ],
  "architecture": "Separate four obligations: built mechanism, caller/driver adoption, box/operator configuration, and incident diagnosis. Broker/brain custody, IO publication, HTTP serving and shared-runner control are different seams. Similar 5–10s or 900s durations do not establish a common cause. Infrastructure remains in the register, even when its remedy touches product code.",
  "report": "## Scope and evidence key\nAssigned population is exactly IR-55, IR-56, IR-57, IR-58, IR-59, IR-60, IR-61, IR-62, IR-63, IR-64, IR-65, IR-66, IR-67, IR-68, IR-69, IR-70, IR-71, IR-72, IR-73, IR-74, IR-75, IR-76, IR-77, IR-78, IR-79, IR-80, IR-81, IR-82, IR-83, IR-84, IR-85, IR-86, IR-87, IR-88, IR-89, IR-90, IR-91, IR-92, IR-93, IR-94, IR-95, IR-96, IR-97: 43 consecutive, unique IDs. First IR opens at 3022. The first scout independently confirmed ownership of continuing CI-RIDER history through 3021. No IR spans the assignment boundary.\n\nFIRED means a qualifying historical event or standing intake opportunity is evidenced, not that #304 has already edited that seam. UNKNOWN means no qualifying new event/source touch established; it is not NOT-FIRED or closure. Prospective #304 seam connections below are explicitly conditional until grill/final wave shape. Prior close record is dated 2026-09-11 and source-pinned e5a2fed9; dates are reported as written. Targeted working-tree reads corroborate several unbuilt residuals but are not runtime acceptance.\n\n## Full compressed enumeration\n| ID / opening line | Status / remaining obligation | Trigger and evidence verdict | Recommended disposition / dependency |\n|---|---|---|---|\n| IR-55 / 3022 | OPEN, ARMED-FOR-CAPTURE; leak unidentified | FIRED standing unfiltered spt-bin battery trigger. Historical wedge twice; nextest 653 pass and five bare 663-pass settles are containment/negative observations, not discharge. No fresh wedge in intake. | Carry armed in lifecycle package; preserve environment + before/during census before cleanup; no new bisect merely because RC freezes. |\n| IR-56 / 3148 | BUILT cross-worktree claim refusal and explicit foreign-pool takeover | FIRED historically, SIGNET build evidence recorded. | Keep built. IR-42 admission adjudication remains separate; no duplicate pool-claim lane. |\n| IR-57 / 3189 | OPEN living assembly procedure; pick-audit BUILT | FIRED historical assemblies, two real LOSS catches. #304 assembly remains future. | Adopt existing command over full pick chain; retain compilation and repaired-suite obligations at actual gate time. Do not rebuild tool. |\n| IR-58 / 3248 | OPEN duplicate-target enumeration check; original nonexistent-bin claim RETRACTED | FIRED prior brainread/xtask work; next xtask check touch remains rider seam. | Tooling rider using Cargo target enumeration, not manifest-stanza grep. Never resurrect withdrawn prose fix. |\n| IR-59 / 3283 | OPEN capacity/adoption; disk-floor BUILT | FIRED gate/CI arc and release-close resource reds: 3167 units passed before END floor refused 15,360,114,688 < 34,359,738,368 B. | Compose driver/capacity adoption with IR-46/76/86/90; pool budget/reclaim per wave. No new instrument, no reboot remedy, no causal attribution to unavailable earlier logs. |\n| IR-60 / 3417 | OPEN truthful producer-status capture | FIRED v0.69 recurrence: wrapper NEXTEST_EXIT=0 measured tail while Cargo returned 101. | Driver rider: capture inside producer shell immediately, write and propagate actual leg status; distinguish raw Summary from missing exit. |\n| IR-61 / 3466 | OPEN accepted duplicated literal-state trackers | UNKNOWN substantive spacerun scanning touch; unrelated xtask work insufficient. | Carry until new skip/literal/tracker change, then unify rather than add third tracker. |\n| IR-62 / 3499 | BUILT docs collision remedy; other bind surfaces residual | FIRED historical second collision, PR158 measured port-held arm and ephemeral fix. | Keep built; retain non-docs co-diagnostic caveat. Not whole-rig network isolation and not #297 TCP admission. |\n| IR-63 / 3540 | OPEN cleanup adopted, producer teardown not closed | FIRED historical rig work/leaked daemon and conhost CWD pins; queued lane not proof of landing. | Compose IR-79/80/97 lifetime/accounting work. Reuse safe reap machinery; historical random victims do not diagnose new stalls. |\n| IR-64 / 3579 | OPEN operator-owned capacity reservoir | FIRED IR-86 in-job floor despite pool discipline, explicitly recorded. New operator ruling UNKNOWN. | Separate operator move/expand/accept-tax decision. Old 845GB bulk is historical census, not current measurement; agents cannot touch it. |\n| IR-65 / 3601 | REMEDIATED-AT-BOX, OPEN reset recheck | UNKNOWN tailscale snap/auditd update or reimage. New Tailscale incident does not establish reset of kitsubito audit configuration. | Carry named recheck triggers; do not rerun box probes or reopen remediation from symptom similarity. |\n| IR-66 / 3627 | CLOSED / BUILT delayed needles | FIRED historical two-platform rider gates; previous close explicitly reconciled. | Keep closed. No redispatch of two test edits. |\n| IR-67 / 3660 | BUILT explicit integration-suite battery template | FIRED historical IO-PARSER waves and intake template adoption. | Keep built; --bins still must never be described as integration coverage. |\n| IR-68 / 3682 | OPEN ingest-cause investigation | UNKNOWN new PSYCHE_INGEST_FAIL sighting/dedicated probe slot. Planted nonempty index locks did not block ingest. | Carry capture-first; COMMUNE_FAIL now names reason. Do not reinstate refuted index-lock attribution. |\n| IR-69 / 3710 | OPEN #243 conversion/generator/zero-recensus and anchored consumers; original emission fix LANDED | FIRED historical residual recensus: 338 cli sites plus 2 main sites missed. | Keep #243 dependency and separate test-side anchored IDLE/DISPATCH/BUSY/BOUND rider. No redo of landed emission or already-converted delivery sites. IO/USER_INPUT work may touch consumer seam, not automatically satisfy entire residual population. |\n| IR-70 / 3802 | OPEN assembly-point enforcement; witnessed publisher correction shipped | UNKNOWN actual IoBus construction/API or sink-registration touch. #300 USER_INPUT integration makes seam plausible, not established. | Conditional #300/IR-92 companion only if construction/sink seam touched; reuse default_bus and real publish path. No assumption all event work fires construction trigger. |\n| IR-71 / 3829 | OPEN persisted controller-release breadcrumb | UNKNOWN actual controller lifecycle/breadcrumb touch or barrier timeout. #302 freezes and added #251 viewer detach do not themselves prove controller-release failure. | Conditional lifecycle rider after RCA/role distinction; record after persisted clear, not merely detach event. |\n| IR-72 / 3853 | OPEN named-perch/seat custody read surface | UNKNOWN actual roster/status read-model change; #299 explicitly opens roster diagnosis but remedy not selected. | Strong conditional #299 rider if read model changes; inspect holder identity/role without new bare-pid oracle. Do not add a broad RC diagnostic product implicitly. |\n| IR-73 / 3887 | CLOSED / BUILT eight post-checkout floor sites plus docs rereads | FIRED and reconciled prior close with source and IR-86 live catch. | Keep closed; sizing/dependency coupling remains IR-86. |\n| IR-74 / 3911 | OPEN /tmp lifetime bounding | FIRED between-milestone audit opportunity; current Linux cleanup/touch UNKNOWN. Historical 21,643 homes not fresh census. | Linux audit rider with counted bounded cleanup/retention; not a Windows reap claim. |\n| IR-75 / 3925 | OPEN Linux treqs install-or-explicit-omit decision | UNKNOWN new Linux driver touch; current audit opportunity available. Recorded leg 127, not green. | Pair IR-74 box audit; verify state before eventual action, install or explicitly use identical-tree Windows scan coverage. Do not reopen unrelated IR-37. |\n| IR-76 / 3940 | OPEN driver enforcement/compiler-load census; quiet-window documentation exists | FIRED historical driver/workflow arc and overlapping loads; no #304 run authorized. | Compose required quiet-window gate, truthful three-state meter, compiler-load census. Reuse docs/GOLDEN-CI contract from prior close, not competing policy. No contention attribution from overlap alone. |\n| IR-77 / 3984 | OPEN child-entry to ready timing | UNKNOWN boot/ready-stamp or named test-family touch. RC hitches on existing local sessions are not proof of boot delay. | Conditional boot/ready instrumentation rider only if RCA opens seam. Do not retune deadlines. |\n| IR-78 / 4016 | OPEN explicit docs-port silently overridden | FIRED historical both-variable incident; fresh #304 docshost touch UNKNOWN. Current docshost:99 returns zero silently. #301 and adjacent #282 make this a natural conditional rider. | Tiny notice naming both inputs if docshost touched; preserve chosen precedence, no redesign or claimed schtasks coverage. |\n| IR-79 / 4044 | OPEN lifetime-guard adoption, not lack of all reaper machinery | UNKNOWN new common-module touch; historical exposure established. Current common/reap.rs has authenticated primitives, while first-wave four still use local kills/end teardown. | Compose guard adoption starting projindex_writer, projindex_reader, brain_split, brain_respawn_rename; arm before work. Must distinguish unwinding from hard process kill: Drop alone cannot guarantee timeout/SIGKILL cleanup. |\n| IR-80 / 4125 | OPEN residual 12-cell leak union; ENV tool and scoped fixture findings already established | FIRED historical free-slot investigation. Brainproc shell-wrapper fixture cause scoped; direct production spawn excludes that specific escalation, not all causes. | Caller/fixture adoption and classify remaining members with identity/tree evidence. Reuse existing tree-kill machinery; LEAK counts are not improvement rates. |\n| IR-81 / 4407 | OPEN primitive-required identity and core script gate; adapter arm CLOSED | FIRED historical proc/xtask opportunity. Current kill_pid_tree(root:u32) remains expressible; previous close says #285 repaired site, not primitive. | Carry product primitive and test/CI gate separately, coordinating IR-79 adoption. Adapter fix remains closed. Do not reopen daemon-death causality. |\n| IR-82 / 4532 | RULED, predecessor record still UNBUILT | FIRED historical #285/lifecycle opportunity; current daemon.rs directly overwrites pidfile. | Carry product-side read-before-write/one-generation/age/liveness record; do not infer completion from #285. No liveness-semantic change. |\n| IR-83 / 4638 | OPEN reverse-direction witness enforcement; old universal LAN-only remedy SUPERSEDED | FIRED historical missing inbound coverage and applied-layer proof. #297 incident resolved as Tailscale config, not this guard proving execution. | Keep independent real reverse witness, never-ran/vacuous/blocked distinctions. No new box changes; do not require LAN universally. Coordinate IR-89 exact-step acceptance. |\n| IR-84 / 4775 | OPEN enforcement residual; missing timestamp emit half BUILT | FIRED historical unstamped arm/filer lane. Extra stall arithmetic not solved by adding stamps; IR-89 later explains its own scoped helper class. | Reuse stamped instrumentation in relevant pump RCA; conditional every-arm stamp enforcement. Do not re-add timestamp or transfer old helper cause to local RC freezes. |\n| IR-85 / 4825 | OPEN diagnostic arm; caps 80/40 mitigation only | FIRED arm1 opportunity; comparable rerun never completed. Operator-specific arms UNKNOWN. Old sha slowdown means head growth not necessary, not apportioned cause. | Defer comparison until IR-90/76/97 prerequisites; alternate AB/BA with timestamps and passing-output margins. No Defender/torrent/disk diagnosis of #299/#302. |\n| IR-86 / 4985 | OPEN start-capacity derivation and independent docs prerequisites | FIRED golden/workflow arc; 67.4GiB historical footprint exceeds 32GiB start floor; live docs gate skipped. | Workflow rider: measured capacity + end reserve, run footprint reporting, docs depend only on real prerequisites. IR-73 reorder/reread already done. |\n| IR-87 / 5024 | OPEN cross-runner rendezvous/queue clock | FIRED exact recurrence: golden's own PR took Windows; B terminal 07:36:16, A starts 07:48:07. | Schedule/barrier rider includes self-PR interference, not only other lanes. Preserve raw job conclusions beside VOID scoring; 900s symptom not firewall diagnosis. |\n| IR-88 / 5077 | OPEN durable teardown recipe adoption; prebuilt method proven | FIRED historical release-after-reap regrowth; next pool/runbook touch is adoption seam. | Adopt prebuilt release before delete. Do not propose guard inside verb as protection against Cargo rebuild that happens before verb starts. |\n| IR-89 / 5106 | BOX APPLIED, WORKFLOW BUILT/LANDED; exact golden-step acceptance OPEN | FIRED next-golden trigger: later goldens exist. Exact probe-step exercised/skipped/failed remains UNKNOWN in prior close and this sweep. | Reconcile retained step receipts, not implement another probe or renew spent operator permission. Box/ACL reset remains future recheck. #297 TCP bootstrap is distinct from CI UDP probe. |\n| IR-90 / 5262 | OPEN rig resource refusal + failure context | FIRED ripe-now historical 0.018GiB incident. Existing disk-floor is substrate, not both requested placements. | Driver/rig prerequisite: actual temp/target volumes plus mid-failure free-space context. No loaded comparisons until adopted. No inference a monotonic last-tick sample proves sustained recovery. |\n| IR-91 / 5351 | CLOSED root scratch classification/preservation | FIRED historically and shipped with entry. | Keep closed; retain cited artifacts at established paths and manifests. No new root cleanup sweep. |\n| IR-92 / 5405 | OPEN successful inject lacks MSG_IN; docs rider shipped only | FIRED prior product/IO intake, carried explicitly by close. #300 USER_INPUT funnel work is adjacent but a different event contract. | Compose successful-inject observation at single chokepoint, refused inject none; keep Path-A publish-before-present, Path-B allowed bounded log wait and exact-once per msg-id separate. Never reinterpret USER_INPUT requirement as MSG_OUT or replace it with MSG_IN repair. |\n| IR-93 / 5537 | OPEN symbol packaging decision | UNKNOWN actual installer/release packaging touch. #297 bootstrap may touch installer but start-only remedy not yet ruled. | Put size/profile/distribution decision before operator during grill if packaging opens; release-build success is not installed matching-PDB evidence. No silent product-diagnostics expansion. |\n| IR-94 / 5566 | OPEN behavioral census/fail-unclassified gate | FIRED newly added brainread gate; current three-file/name-shaped code corroborated. Mandatory before bounded serve_sync carrier migration; #299/#302 may or may not reach it. | Small tooling rider with explicit population; ensure mandatory dependency if RCA chooses carrier change. Independent gate defect, not established sync or RC cause. |\n| IR-95 / 5596 | OPEN selected poll instrumentation + producer trace; census/diagnostic measurements exist, patch not shipped | FIRED releases#294 comparison. Census estimate 317 blind/321 with slop and 15 outside detector, not exact repo-wide floor. | Prioritize touched diagnostic waits for #299/#302 only if meaningful; no bulk 304-site conversion. Separately version exchange-correlated producer create/retire trace if needed. Preserve budgets and quantify instrumentation scope; final filtered snapshot not continuous absence. |\n| IR-96 / 5851 | OPEN cause-unclassified convoy red | NOT-FIRED on supplied intake for its specific new events: no convoy source touch, candidate golden red, or matched candidate local-HEAVY run established. Previous cheap discriminator remains unrun. | Carry scoped diagnostic continuation after IR-97/90/76. 0/1 candidate CI vs 3/3 diagnostic HEAVY does not exonerate product or isolate instrumentation. |\n| IR-97 / 5875 | OPEN enforce between-run accounting | FIRED prior repeated-run experiment: retained cohort 0/6/12 across B1/B2/B3. Future #304 repeated runs not yet designed/authorized. | Mandatory harness census between runs plus identity-scoped cleanup, not retrospective limitation paragraph. Counts are not measured load; 18 seen vs 15 killed does not prove self-exit. |\n\n## Proposed riders and ordering — proposals only\n1. **Required before a new loaded/repeated diagnostic campaign:** carry prior-close driver package IR-59/60/76/86/87/90/97 (join first scout's IR-31/46). Capacity, correct producer verdict, existing quiet-window contract, partner scheduling and between-run identities are separate acceptance obligations, not one generic preflight. IR-88 is proven recipe adoption; IR-64 remains separate operator decision. No execution authorized by intake.\n2. **Most direct #304 seam candidates:** IR-78 alongside #301/#282 if docshost touched; IR-72 alongside #299 if roster read-model changes; IR-94 mandatory if any chosen stall remedy puts serve_sync on a bounded carrier; IR-95 selective margins for newly investigated waits. IR-93 requires explicit packaging decision if #297 touches installer, not automatic PDB approval.\n3. **IO package:** IR-92 is already owed, useful near #300, but USER_INPUT-triggered file intent/provenance and MSG_IN inject observation are distinct. IR-70 only if construction/API/sinks change. IR-69 anchored-consumer rider separate from #243 conversion/generator work. Do not expand into general IO rewrite.\n4. **Lifecycle test package:** IR-55/63/79/80, joining earlier-range lifetime entries. Reuse common authenticated reaper and existing tree kill rather than introduce duplicate primitives; identity-required API IR-81 is separate product obligation, IR-82 predecessor record remains separate unbuilt rider. Hard-death cleanup must not be sold as ordinary Drop coverage.\n5. **Acceptance-only reconciliation:** IR-83/89 reverse direction witness and exact probe step receipts; no box/config changes. IR-56/62/66/67/73/91 built/closed states stand. IR-57/59/84 implemented halves stand; only adoption/enforcement residuals remain.\n6. **Carry deferred/conditional:** IR-61/65/68/71/77 and untriggered IR-96 event; Linux IR-74/75 at box-audit slot; IR-85 diagnostic continuation behind prerequisites. Small tooling IR-58 may compose with first scout's seam-rider package. No offline owner becomes executing from a historic assignment.\n\n## Current intake evidence that constrains the grill\nRead issue304 and original five issues directly. #304 is BACKLOG, explicitly intake-only; comment adds #251/#282/#288/#230/#49/#267, retains #49 joint-ship ruling with #42, excludes #296 and CUT #303. No broad networking cleanup or new RC diagnostics implicitly authorized.\n- #297 comment records operator-confirmed Tailscale incident resolution and independently observed HTTP200. Separately source-verified missing TCP bootstrap admission remains; do not call that the incident cause or reapply IR-89 CI UDP rules.\n- #299 complete byte-identical 2497-byte roster at 3822/10120/10105ms, rc0, is accepted evidence. Network deadline, coordinator contention and local metadata costs remain alternatives; no partial/empty output workaround.\n- #300 operator correction is authoritative: USER_INPUT, not MSG_OUT. Preserve authenticated controller/user-node origin and committed input/path intent, 24h reference, receiving-agent audience, once-per-input/path helper. Raw PTY bytes do not equal USER_INPUT.\n- #301 demands public docs at node root; no requirement for Served Resources landing.\n- #302 occurs both local and remote on v0.69.0, input and PTY stall together then queued input drains. Tailnet-only or remote-network explanation cannot cover the reported local occurrences without further evidence.\n\n## Verification limits\nRead-only file/search/issue tools only. No validation commands, process probes, builds, tests, formatting, git changes, register edits or board mutations. Required orientation entry points read, plus relevant golden ADR. Prior close results are cited as existing evidence, never fresh execution. Full change-history and golden-step receipts not re-audited; exact unknown trigger/acceptance states remain explicit."
}