---
name: spt-claude-code-next
description: "spt-claude-code SCOPED + experimplate authored + spt-claude-code INSTANTIATED + HANDOFF done (2026-06-14); ALL template-track work complete; perri build gated on todlando shipping full-fat M12"
metadata: 
  node_type: memory
  type: project
  originSessionId: fe10844f-7c10-4582-b8e9-44b7aedcc7f7
---

**Scoping COMPLETE 2026-06-14** (doyle grill-with-docs). Committed: `spt-claude-code/SCOPE.md`
(decision ledger) + `CONTEXT.md` (@09d6020); `spt-core/M12-PLAN.md` (@39fd73e) + M12-CANDIDATES +
M12-ENDPOINT-RUN-PICKER; `experimplate/PLAN.md` (@c9d2a0b). All on `m10-digest-extractor` branch
(consider relocating M12/scoping docs).

**spt-claude-code = `claude-spt` adapter** — spt-core v1 acceptance proof (legacy parity AND
cross-subnet/PTY proof) + first casual-end-user entrypoint (cplugs CC plugin that invisibly
installs spt-core). Built by **perri** from PUBLIC surface ONLY (spt-releases + GH Pages docs).

**Key locked decisions:** thin marketplace skeleton + spt-core-conducted binary/manifest (CC has
no plugin integrity check); UPS-injected skill instructions (fetch-stub VETOED) + file-backed
strings; ccs = profiles (not own adapter); CI = autonomous fleet, no-LLM, spt reporting bus, GH
runners DROPPED, git-hook trigger; parity≠1:1 (dropped /revive /clear-psyche /whoami-skill /fork
/amend-signoff /spine /touch /capsule-psmux /binary-handoff); experimplate = standalone reusable
template (AGENTS.md+@AGENTS.md-CLAUDE.md, mdBook+GH-Pages same-repo reusing spt-core docs theme).

**M12 is a GATING PREREQUISITE** — handed to todlando via $OWL. = spt-hosted harness bringup
(`spt endpoint run` ratatui picker) + `spt rc` cross-node PTY attach + file-backed strings +
adapter:profile fallback + subnet QR/self-elevation + whoami→alias. perri waits on it.

**TEMPLATE TRACK COMPLETE 2026-06-14:**
- experimplate authored + COMMITTED (`experimplate@01d6d8a`, 15 files): AGENTS.md spine +
  CLAUDE.md(@AGENTS.md) + traceable-reqs seed + INSTANTIATE.md + docs/{TRACEABILITY,DOCS-STRATEGY
  (reframed same-repo GH Pages),RELEASE-RUNBOOK,KNOWN-HAZARDS,CI}.md + CONTEXT stub + adr template
  + formats guides + docs-site/theme (de-branded --theme-*). Public-surface-safe scrub verified.
- spt-claude-code INSTANTIATED + COMMITTED (`spt-claude-code@b3f500d`, 13 files): experimplate
  skeleton overlaid, placeholders filled from SCOPE/HANDOFF (roots=adapter layout; RELEASE=cplugs+
  adapter-registry, signing delegated to spt; CI=autonomous fleet; public-surface-only constraint
  front in AGENTS.md). CONTEXT/SCOPE/HANDOFF preserved. HANDOFF.md was already done @518269f.
- traceable-reqs.toml registry left EMPTY by design — perri seeds REQs from SCOPE Parity-trim
  buckets per milestone (don't pre-author = activate-don't-pre-fail).

**GATE CLEARED 2026-06-14: full M12 gated end-to-end** (W1·W1.5·HR2·W3·W2·follow-on·W4·W5·W2.5 all PASS+committed; W2.5 controller/viewer+Kick verified @6b4859f + gate-#7 combined close-out @f521df2, attach 12/12 green). **M12 PUBLISHED 2026-06-15 (v0.7.0, counter 12, HEAD e08cea0) — perri pinged M12-LIVE.** The M12-dependent surface (file-backed [strings], [adapter] shortcut_basename, spt endpoint run, adapter:profile fallback, whoami-alias) is now PUBLIC in spt-releases; perri builds against v0.7.0 (not the v0.6.0 stopgap), M12-feature slices moved from deferred→go. ONLY remaining spt-core gate on perri = the poll→additionalContext bus-delivery int (REQ-MSG-ENVELOPE, todlando building). doyle session-doc commit (ADR-0020 etc.) = branch docs/msg-envelope-adr-0020 @24e0628 (off main, design-only).

**perri GREENLIT 2026-06-14 ($OWL send perri) on the v0.6.0 baseline** — operator overrode the hold-for-publish (M12 publishing now but build times slow → v0.6.0 = good-enough baseline to START). CAVEAT FLAGGED TO PERRI: v0.6.0 = M10 (digest extractor), does NOT yet contain M12 (endpoint-run picker, `spt rc`, file-backed `[strings]`, `adapter:profile` fallback, `[adapter] shortcut_basename`, whoami-alias) — all spt-claude-code deps. So perri STARTS on v0.6.0-supported work (repo skeleton @b3f500d, thin cplugs marketplace, autonomous-fleet CI/spt-reporting-bus/git-hook, parity-trim REQ seeding, mdBook docs) + SEQUENCES the M12-dependent features AFTER M12 publishes (doyle pings perri when live in spt-releases). **BINDING clause delivered: perri routes ANY spt-core bug / broken-or-missing public surface back to doyle (no silent workaround, no adapter-side patch) — bugs are spt-core defects doyle triages/fixes, keeps [[adapter-glue-model-boundary]] clean.** doyle = perri's spt-core escalation point. NEXT doyle actions: (1) ping perri when M12 publishes; (2) triage/fix any spt-core bug perri reports.

**BINDING GREENLIGHT CLAUSE (operator 2026-06-14):** when greenlighting perri, perri MUST touch base with doyle for ANY spt-core bug they hit (perri = first real consumer of spt-core's PUBLIC CLI surface → likely to surface bugs). Route bugs back to doyle (spt-core gater/owner), NOT silent workarounds or blind filing. Bake this into the perri greenlight message + HANDOFF. **Why:** spt-claude-code is spt-core's v1 acceptance proof; bugs perri finds are spt-core defects doyle must triage/fix, not adapter-side patches (preserves [[adapter-glue-model-boundary]]).

See [[m12-w1-progress]], [[m10-digest-extractor]], [[adapter-glue-model-boundary]].
