{
  "status": "PREP-ONLY unvalidated draft complete. No compilation, tests, executable probes, formatters, linters, or trace CLI run.",
  "files": [
    "crates/spt-store/tests/serving_registry_two_process_int.rs",
    "crates/spt-store/tests/fixtures/serving_registry_worker.rs",
    "crates/spt-store/Cargo.toml"
  ],
  "design": [
    "Three cases: loaded reaper followed by registrar; loaded registrar followed by reaper; registrar force-killed while holding its published transaction guard, followed by reaper completion.",
    "Two real fixture processes communicate exclusively through per-child temporary-directory readiness/command files. All barrier/status polling has deadlines; polling delays do not establish ordering.",
    "Waiter independently opens the fully appended .lock sentinel and requires fs2's actual contention error both before and after holder publication. The second witness detects locking the atomically replaced registry inode or releasing the guard before publication completes.",
    "Asserts expired registry entry and snapshot removal, new registration survival, exact source ownership, and suffix continuity across retirement/save/reload: historical owner reclaims ~1, new owner reclaims ~2, unrelated source receives ~3.",
    "Tags placed on integration cases: REQ-HAZARD-SERVE-REGISTRY-LOST-UPDATE, REQ-WEB-SERVING-REGISTRY, REQ-WEB-ATTACHMENT-PULL."
  ],
  "mutation_sensitivity": [
    "Removing the public helper's locking or locking the wrong sentinel makes the direct exclusion witness fail; extension-bearing registry paths also detect replacing rather than appending the extension.",
    "Moving the fixture transaction's load above acquire() deterministically captures pre-publication state because the witness/barrier lives inside acquire(): stale registrar resurrects expired entry; stale reaper loses the acknowledged registration.",
    "Discarding allocation ownership/history breaks future reclaim and next-suffix assertions.",
    "Failure to release the OS lock on process death prevents waiter readiness/completion within its deadline."
  ],
  "cleanup": "RegistryWorker owns its Child immediately after spawn. Drop force-kills and boundedly reaps that exact child on assertion/error; already-exited children are collected with try_wait. Exceptional OS kill/reap failures are reported without double-panicking. No piped I/O or spawned descendants. Temporary directories outlive child guards.",
  "scope_limit": "This is storage-contract fixture evidence, not invocation of production broker/brain callsites. Daemon-callsite-only lock removal/reordering still needs Main's runtime/E2E coverage."
}