Skip to main content
Status: draft · Version 0.2 · Filed 2026-04-29

version: 0.2 status: draft

Title: SPEC-054 v0.2 — Node MCP Shim: Port mcp/ to TypeScript, Eliminate Python From Editor Hosts

Version

0.2

Status

draft

Changelog

v0.2 (2026-04-29) — Frank revised the Phase 3 cutover: no PRISM_SHIM=python safety valve, no one-release deprecation cycle. The Python shim is removed entirely as part of Phase 3. Phase 4 (delete mcp-py/) is folded into Phase 3 — single clean cut. D8 retired. Phase ownership: Phase 3 work is assigned to Lafonda (install lane). v0.1 — Original spec. Phase 1 scaffold, tier-by-tier verb port (1A/1B/1C), surface adapters (tier 2), strategies (tier 3), lifecycle (tier 4), channel bridge (tier 5). Phase 3 originally proposed a PRISM_SHIM=python opt-in safety valve.

Origin

(Unchanged from v0.1. See full discussion in v0.1 body — Docker is the single accepted client-side prerequisite, the Python shim is the lone holdout introducing a second host-level prereq, the Prism CLI is already TS/Node, port consolidates client-side runtime to one ecosystem.)

§1 — Goals

(Unchanged from v0.1.)
  1. Editor host needs no Python.
  2. Drop-in stdio replacement at the editor MCP config level.
  3. One client-side runtime ecosystem.
  4. Parity-validated against the existing smoke suite.
  5. Backend untouched.

Non-goals (v0.2)

(Unchanged.)

§2–§6

(Unchanged from v0.1: process & transport architecture, repo layout, verb dispatch, stateful in-process surface, dependency mapping.)

§7 — Cutover Plan (v0.2 REVISION)

Phase 1 — Scaffold (LANDED)

mcp-node/ package, 64 verb stubs over MCP stdio. PR #14, merged.

Phase 2 — Port verbs in tiers (LANDED)

  • Tier 1A: 19 read-mostly proxies (PR #15)
  • Tier 1B: 28 multi-action governance + emitters (PR #16)
  • Tiers 2+3+4: surfaces, strategies, lifecycle (PR #17)
  • Tier 5: channel bridge (PR #18)
  • Tier 1C: 8 filesystem/subprocess verbs (PR #20)
Net: 64/64 verbs functional on Node shim. Donna can fully run on Node shim with zero Python on editor host.

Phase 3 — CLI install flip + Python shim removal (PENDING — Lafonda)

Single coherent cut. No safety valve, no opt-in fallback.
  • prism install writes editor MCP configs pointing at the Node shim (command: node, args: [<root>/mcp-node/dist/server.js], or single-binary path TBD per Q1).
  • mcp/.venv provisioning code is removed from cli/src/index.ts preflight.
  • mcp/ Python directory is deleted from the repo (formerly Phase 4 in v0.1).
  • mcp/requirements.txt is deleted.
  • README + INSTALL stop mentioning Python on the client side.
  • The “host Python not found” troubleshoot row in docs/INSTALL.md is deleted.
  • bin/prism-mcp-switch.mjs (the manual switch script shipped in PR #19) is deleted — its purpose was bridging the gap before Phase 3; with the clean cut, it’s redundant.
Recovery posture if Node shim regresses post-cutover: git revert <phase-3-commit>. No env-var-toggleable fallback.

Phase 4 (RETIRED)

Phase 4 (delete Python shim) was in v0.1 a separate post-deprecation step. v0.2 folds it into Phase 3 per Frank’s directive: clean cut.

§8–§11

(Unchanged from v0.1: verification, decisions, open questions, performance consciousness.)

§9 Decisions — D8 RETIRED

D8 (Phase 3 keeps PRISM_SHIM=python as a one-release safety valve) is retired. The new directive: clean cut, git revert is the recovery.

§12 — Authorship

  • Author: Donna (Claude Code, session c1d19f01) 2026-04-29.
  • v0.2 revision: Frank correction 2026-04-29 — no Python safety valve in Phase 3.
  • Phase 3 owner: Lafonda (install lane per multi-agent fan-out).
  • Implementation gate: Frank’s GO. Already given for v0.1 Phases 1+2; Phase 3 awaits Lafonda’s pickup.

§13 — Relationship to Other Specs

(Unchanged.)
Last modified on May 3, 2026