# Memory index — spt-claude-code

> THIS root (`.claude-spt\accounts\alt\projects\…`) is the live memory for `claude-spt:alt`, migrated 2026-08-23 from `.ccs\instances\bigscreen\projects\…` (75 files, authoritative superset). Legacy roots still load on their own sessions — name-diff before concluding a memory is missing.

- [Backtick suppression is per-scanner](backtick-suppression-is-per-scanner.md) — 2026-09-13. ⭐⭐ spt markers ARE suppressed by backticks; traceable-reqs tags are NOT — prose that MENTIONS a tag mints live evidence, so a req can read COVERED because someone wrote about covering it.
- [Precheck admission discipline](precheck-admission-discipline.md) — 2026-09-12 #300 D1/D2 ran + CLOSED (receipt `8cfeb83`, bytes archived). ⭐⭐ A CONTROL THAT CANNOT FIRE IS WORSE THAN NONE — this trace routinely records ONLY UserPromptSubmit, so no trace-side instrument-presence witness exists; the TRANSCRIPT is the second instrument and it is what worked.
- [CC acceptance surface / input provenance](cc-acceptance-surface-provenance.md) — 2026-09-12 #300. ⭐⭐ `UserPromptSubmit` fires at ENQUEUE — MEASURED n=3 (+0.5–1.0s after Enter, turn still running, ONE fire per submission). ⭐⭐ I twice called it "needs an operator" — wrong: spt's own PTY delivery IS keystrokes, so I could generate the population myself.
- [v0.41.0 hook deadline visible](v0410-hook-deadline-visible.md) — 2026-09-10 SHIPPED + FIELD-VERIFIED. ⭐⭐ The trace built to catch timeouts COULD NOT SEE ONE — every distribution was SURVIVORSHIP-BIASED; fix is a pairable BEGIN line.
- [v0.40.0 echo-race workaround retired](v0400-echo-race-workaround-retired.md) — 2026-09-09 SHIPPED (#37); floor 0.68.0 RULED CORRECT by doyle. ⭐⭐ A SERVED DOC PAGE IS NOT EVIDENCE ABOUT WHAT A VERSION SHIPPED — only the release TAG is.
- [v0.39.1 profile string resolution](v0391-profile-string-resolution.md) — 2026-09-09 SHIPPED + FIELD-VERIFIED: #36 passed the BARE adapter name to `get-string`, so every profile overlay was inert. ⭐⭐ Replay the io-funnel to see what a BOUNDARY emitted.
- [v0.39.0 recharge + trust seed + trace retention](v0390-recharge-trust-trace.md) — 2026-09-09 SHIPPED + FIELD-VERIFIED. ⭐ Trace retention is 4.2h, not days — harvest EVERY session.
- [commune /clear loop + stale briefs](commune-loop-and-stale-brief-task.md) — 0.38.8 SHIPPED + FIELD-VERIFIED 2026-09-07.
- [CI cleanup kill-scoping](ci-kill-scoping.md) — 2026-09-07 SHIPPED (9c87372): a cleanup killed EVERY claude-spt.exe on the shared runner. ⭐ Grep for the offender AND the sites already doing it right.
- [v0.38.7 legacy wake retired](v0387-legacy-wake-retired.md) — 2026-09-06: `!!checkpoint!!` + legacy envelopes refused. ⭐ Grep ci/ and tests/ for a wire token before retiring it, not just src/.
- [Brief rule scoped to its mechanism](brief-rule-scoped-to-mechanism.md) — 2026-09-06 operator correction, v0.38.6.
- [v0.38.4/0.38.5 commune frame replay](v0384-commune-frame-replay.md) — 2026-09-06 SHIPPED + FIELD-VERIFIED: io-funnel `seq` is NOT unique, so a low cursor replayed week-old frames. ⭐ A cursor is only a position if the numbering is monotone.
- [Wrong-direction refutation](wrong-direction-refutation.md) — 2026-09-06: refuted a CORRECT hypothesis by probing a HIGH cursor when the hazard ran LOW.
- [v0.38.3 echo-commune authorship](v0383-echo-commune-authorship.md) — 2026-09-06 SHIPPED + FIELD-VERIFIED.
- [v0.37.0 across-commune drop detect](v0370-commune-drop-detect.md) — 2026-09-06 SHIPPED then FIELD-FAILED (ingest 2.8-5.8s, not >15s).
- [pacer 0.7.0 boundary frames](pacer-0700-boundary-frames.md) — 2026-08-30 SHIPPED + FIELD-VERIFIED; claude-spt needed NO change. ⭐ Grep your own code for PENDING TRIGGERS when a dependency ships.
- [v0.36.0 io compliance](v0360-io-compliance-parser-deleted.md) — 2026-08-29 SHIPPED + FIELD-VERIFIED; #22 closed (read remote state back — I once recorded a close I never issued).
- [v0.35.0 mid-turn spans](v0350-midturn-spans-disjointness.md) — 2026-08-29 SHIPPED + FIELD-VERIFIED; the real work was a second cursor-blind transcript reader.
- [v0.34.0 now-signal PreToolUse leg](v0340-nowsignal-pretool-agent-output.md) — 2026-08-29 SHIPPED + FIELD-VERIFIED: agent_output-triggered monics/hints had NEVER fired.
- [v0.33.0 IO funnel — compliance HELD](v0330-io-funnel-hold.md) — 2026-08-28. ⭐ Shortform parses off the STATE PAYLOAD, not now-signal — find which CALL carries the text.
- [IO funnel wave: 0.32.0 + pacer 0.6.0](io-funnel-two-release-wave.md) — 2026-08-28 SHIPPED BOTH + FIELD-VERIFIED. ⭐ A PUBLISHED kind is not an EMITTED kind — find the code that PRODUCES the data.
- [v0.31.0 attr pass-through](v0310-attr-passthrough.md) — 2026-08-26 SHIPPED: generic carry closes a 3-time by-name recurrence.
- [Node-local book gate](node-local-book-gate.md) — docs at localhost:5474 come from THIS node's bundle, and it skews BOTH ways. ⭐⭐ A served page is NEVER evidence about what a VERSION SHIPPED — only the release TAG dates behaviour.
- [v0.30.0 seal carry](v0300-seal-carry.md) — 2026-08-25: 3rd attribute lost at ONE seam. ⭐ The seam is the hazard, not the attribute.
- [v0.29.4/0.29.5 turn-end confirm + canonical root](v0294-0295-turnend-confirm-and-canonical-root.md) — 2026-08-24. ⭐ A junction shares content, not path identity.
- [Exit 0 from a flag-order no-op](exit-zero-from-a-flag-order-noop.md) — `mirror-public.sh` parses `--apply` only in position 1.
- [alchemy shell payload mechanics](alchemy-shell-payload-mechanics.md) — refs need `#`; `shell send --file` STAGES, not posts. ⭐ `SHELL_SPOOLED` = accepted for transport, not that the op worked.
- [Measuring a process env vs a probe](measuring-a-process-env-vs-shipping-a-probe.md) — read the target's PEB env (only a process you spawned); ship an in-process probe only for ephemeral targets.
- [Two /tmp namespaces publish trap](two-tmp-namespaces-publish-trap.md) — python /tmp ≠ MSYS sh /tmp; a release published another project's notes.
- [v0.28.0 model-invoked skill bodies](v0280-model-invoked-skill-bodies.md) — 2026-08-21: every model-invoked /sptc:* got the skeleton.
- [v0.26.2 monic reveal](v0262-monic-reveal.md) — 2026-08-05 SHIPPED + FIELD-CLOSED. ⭐ A re-render is a lossy copy and the loss is invisible at the far end.
- [v0.26.1 hints never called](v0261-hints-never-called.md) — 2026-08-04: `[[hints]]` declared since v0.2.x, consumer call never made.
- [v0.25.32 verdict-not-catchall](v02532-verdict-not-catchall.md) — 2026-08-03: NO_PERCH asserted from evidence never had.
- [Mirror guard scope + EXCLUDES](mirror-guard-scope-and-excludes.md) — guard reads COMMITTED HEAD, pins org/repo literals only; "guard passed" ≠ "belongs in public". EXCLUDES applies at mirror time, no re-tag.
- [Arm (c) = releases#146](arm-c-anchor-and-statement.md) — FILED 2026-08-03; anchor COUNT 1161 / MEAN 6341.9 at ≤2026-08-01T00:36:37Z. Check the anchor BEFORE the delta. A blocker surviving a reset as prose must be FILED.
- [Commune path in the wake message](commune-path-in-wake.md) — put the ABSOLUTE path in `!!wake!!`, never glob. File gone = ingested; surviving = never ingested. `psyche_host_error` null alone is not freshness.
- [Stale update-notice spool copies](stale-update-notice-spool-copies.md) — repeated "update available" = spool copies the store can't recall. `spt notif list` + `spt --version` are the truth.
- [v0.25.7 internal-session isolation](v0257-internal-session-isolation.md) — psyche/echo-commune run --safe-mode; user hooks/plugins/CLAUDE.md no longer contaminate. Disposable-endpoint verify recipe inside.
- [v0.25.6 compact receive-heal](v0256-compact-receive-heal.md) — /compact = 4th stuck-ACTIVE entry point. Field collision verify OWED. A 5th shape ⇒ predicate healer, not a longer list.
- [MSYS grep instrument traps](msys-grep-instrument-traps.md) — bash `$'…'` NUL pattern matches everything; MSYS `grep -e A -e B` core-dumps silently.
- [List vs predicate assertions](list-vs-predicate-assertions.md) — a rule keyed on today's instances stays GREEN when the new case arrives. Iterate the shape; mutation-check.
- [digest --json consumption contract](digest-json-consumption-contract.md) — REFERENCE: version is process-lifetime, non-default `--last` is a WRITE into shared state, follow deepens only via `window_turns`, a torn-down endpoint serves frozen content.
- [v0.25.3/0.25.4 shortname + live cap](v0253-0254-shortname-and-live-cap.md) — bare `/ready` injected NOTHING (`skill=0ms`); `/sptc:live` overflowed the 9000B cap. REQ-DIST-SKELETON-THIN = CLI COUPLING, not length.
- [Signature match is not root cause](signature-match-is-not-root-cause.md) — pinned an RCA on a mechanism that reproduced the trace byte-identically but wasn't what happened. Ask what the user actually typed.
- [v0.25.2 interrupt-heal](v0252-interrupt-heal-agent-activity.md) — Context/echo_mirror entries read as "resumed" → 37min black hole; heal counts Agent/ToolSprint only. A fabricated fixture is why it shipped.
- [v0.25.1 interrupt-watch window](v0251-interrupt-watch-window.md) — `--last 1` missed a marker buried in the Esc→tick gap; widened to 12 turns. My "node-wide outage" report was a `2>&1` artifact.
- [v0.25.0 symmetric <EVENT>](v0250-symmetric-event-postentersettle.md) — type-agnostic stub delivery + 50ms post-enter settle. Field-verify owed.
- [v0.24.0 STALE_SEED / SPT_HOST_PID](v0240-stale-seed-hostpid-fix.md) — dead inherited SPT_HOST_PID; fixed via Win32 Toolhelp; needs full relaunch, not hot-patch.
- [v0.20.0 stub delivery](v0200-stub-delivery-shipped.md) — ADR-0007 A+B+C + busy-race fix; v0.20.1 transport="gh". TRAP: never run claude/ccs from a live agent's shell.
- [Headless-spawn external-imports gate](headless-spawn-external-imports-gate.md) — spawns hang UNBOUND on CC trust AND external-CLAUDE.md-import dialogs; pre-seed both on the SPAWN's resolved root.
- [--active-only semantics + F-035](active-only-semantics-f035.md) — REFERENCE: `--active-only` = POLL channel, delivers only while BUSY, cannot wake; `--ephemeral` = drop-not-spool.
- [v0.18.5 checkpoint-edu + 70ms submit](v0185-checkpoint-edu-70ms-submit.md) — a checkpoint does NOT take the perch down; ENTER_SETTLE_MS=70 at the 4 pre-enter sites.
- [arg-hint parity / plugin 0.1.13](arg-hint-parity-plugin-0113.md) — `argument-hint` on all 11 skills. Hints ship via cplugs ONLY — the adapter cannot deliver frontmatter.
- [v0.18.2 /sptc:live bringup + F-034](v0182-sptc-live-bringup-f034.md) — chained seed+listen form + SessionStart exports SPT_HOST_PID. OPEN: resolve the real claude WINPID.
- [Live delivery model + dup-msg](live-delivery-model-and-dupmsg.md) — inbound reaches a live agent via ADAPTER channels ONLY. `controllable:true` = attach/rc, not delivery.
- [v0.18.0/0.18.1 + F-032 + musl](v0180-items-3-5-and-f032.md) — /sptc:role round-trip + update nudge + musl triple. TRACE: live-agent logs live under ~/.ccs/instances/bigscreen/projects.
- [v0.17.3 send-stderr NO_PERCH](v0173-send-stderr-noperch.md) — `spt send`'s status token is on STDERR; a stdout-only classifier read DELIVERED as NO_PERCH. v0.17.4 made `@<…@>` primary.
- [v0.17.0 tag messaging](v0170-tag-messaging.md) — `@<t1,t2 body @>` shipped. Its "NO_PERCH=flapping peer" claim was WRONG — see [[v0173-send-stderr-noperch]].
- [Stuck-ACTIVE idle black-hole](stuck-active-idle-blackhole.md) — an endpoint that never completed a turn stays ACTIVE forever. Recovery: `spt api … state idle`. TRAP: info.json pids are DEAD everywhere.
- [/resume rebind wedge](resume-rebind-wedge.md) — in-TUI `/resume` re-pinned proofless → perch stranded. Fix: bind carries the departed sid as proof. OPEN: live in-TUI repro.
- [PreToolUse envelope black hole](pretool-envelope-blackhole.md) — CC discards raw PreToolUse stdout; use hookSpecificOutput. Inter-agent sends truncate <350B raw — split long reports.
- [spt reachability notice port](reachability-notice-port.md) — perched turns close with run_in_background steering + a PreToolUse spawn nudge; perch-gated.
- [echo-commune v0.15.2](echo-commune-v0152.md) — "clear boundary broken" = a missing [session.echo_commune] role + a daemon triple-spawn.
- [Adapter record-dir hazard](adapter-record-dir-hazard.md) — NEVER rm adapters/<name>/: Pointer-mode record.toml lives there; recover via `adapter add --release`.
- [Worker-perch leak diagnosis](worker-perch-leak-diagnosis.md) — 3 core bugs → WORKER-TRUTH; v0.14.2 + v0.15.0 (floor 0.27.0).
- [v0.26.0 core wave](v0260-core-wave.md) — floor enforcement live in core ≥0.26; core 0.28.0 JOIN-TRUTH = zero adapter impact.
- [Boundary rename v0.14.1](boundary-rename-v0141.md) — /clear re-asserts the display name; never emit two post-clear sequences — rename stashes, fire emits ONE.
- [Live-perch monitor reachability](live-perch-monitor-reachability.md) — `spt send` QUEUED-vs-SENT is the reachability truth; the roster and info.json lie stale-ONLINE.
- [Psyche resident multi-subnet churn](psyche-resident-multisubnet-churn.md) — crashlooped on 2-subnet homes; class dissolved by the ephemeral redesign.
- [Psyche ephemeral redesign](psyche-ephemeral-redesign.md) — resident wrapper → run-to-completion shim (F-030); v0.14.0.
- [.claude.json write hazard](claudejson-write-hazard.md) — NEVER open-truncate the trust store (ENOSPC wiped 16 projects); always tmp + os.replace.
- [Checkpoint wake ARC CLOSED](checkpoint-wake-broken-postclear-forcenative.md) — B6 ghost, five layers. BAD-SHIP rule: parked-work exclusion check before tagging from HEAD. Broker-PTY sessions leave NO transcripts.
- [F-027 trust-seam ground truth](f027-trust-seam-groundtruth.md) — trust is PER-CONFIG-ROOT; pre-trust the SPAWN's resolved root; 6-mode spawn-fail taxonomy.
- [counter-43 RC-window flip-gate](counter43-rc-window.md) — 4 pre-flip ints in an SPT_HOME-isolated candidate; caught my own false results before reporting.
- [B6 force-native-decay repro hunt](b6-liverepro-hunt.md) — decay NOT reproduced across a 5-cell matrix; trust seed is account-root-sensitive.
- [v0.22.0 validation wave](v0220-validation-wave.md) — endpoint-info + SI-1 GREEN; F-026 = forward-slash trust key.
- [v0.12.0 checkpoint-race](v0120-checkpoint-race-project-names.md) — arm/fire split + project-named sessions.
- [Release notes = UX-only](release-notes-ux-only.md) — operator rule: before/after UX + recovery step ONLY; never code/env/test specifics or incident narrative.
- [F-023/F-024 cross-node delivery](f023-f024-crossnode-delivery.md) — /clear wedge fixed, E2E GREEN both nodes; stale-plugin hazard.
- [v0.10.3 node-named sessions](v0103-node-named-sessions.md) — launch shim display/RC names; RC-name unify PARKED.
- [v0.10.1 whoami-json fix](v0101-whoami-json-fix.md) — SessionStart id via `whoami --json` .self.id; parse-fail ⇒ empty.
- [owl --reply-to FORBIDDEN](owl-replyto-forbidden.md) — legacy owl `send --reply-to` mis-stamps FROM; always plain send.
- [v0.10.0 digest-fetcher](v0100-digest-fetcher-shipped.md) — [digest] strategy=fetcher + CLAUDE_CONFIG_DIR read-var, floor 0.19.0.
- [v0.9.2 on-node update + skew brick](v092-onnode-update-skew-brick.md) — mid-session update bricked all tools (old dispatch × new hook_cmd); /reload-plugins recovered.
- [v0.9.1 bugfix sweep](v091-bugfix-sweep.md) — an UNQUOTED cached hook_cmd broke every hook; fix = bare-path + QUOTED cache.
- [v0.9.0 D1](v090-d1-shipped.md) — hook logic → `claude-spt hook <event>` binary (resolve-not-execute).
- [Live-agent ints DONE](live-int-gated-m11-counter15.md) — live-bringup recipe = persistent-child `api listen --manifest` (WINPID anchor, bind-before-send).
- [v0.8.1 dogfood → v0.2.x](v074-follow-ups.md) — psyche greedy --prompt fix; auto-update proven; self-contained /sptc:live injection.
- [PREP-4 → v0.3.0 parity](prep4-v030-parity-closed.md) — psyche_init in BASE, no :live profile; F-011 Pointer-manifest silent-drop = core gap.
- [Per-OS adapter.spt + setup waves](per-os-and-setup-waves.md) — linux cross-built via cargo-zigbuild (zig at ~/.sptc-zig).
- [Succession flip gated](succession-flip-gated.md) — publish as sptc; flip to spt only after proven parity AND legacy owl retired.
- [Psyche sandbox + ADR-leak](psyche-sandbox-and-adr-leak.md) — psyche sandboxed (ADR-0003); only ADR-0001/0002 real, the rest foreign-leak.
- [F-019 idle-submit root cause](f019-idle-submit-and-v0142.md) — a relative translation-binary path not resolved against install_dir; fixed core-side.
- [Checkpoint-commune wave](checkpoint-commune-wave-built.md) — multi-line idle envelope + marker communes + psyche-download resume; v0.7.0.
- [W3 + F-017 + v0.6.1 fat packaging](v06x-w3-f017-v061.md) — single multi-platform fat adapter.spt (per-triple subdirs, floor 0.13.2).
