> ## Documentation Index
> Fetch the complete documentation index at: https://prism.ntecdev.ai/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

<Info>**Status:** `draft` · **Version** `0.2` · Filed 2026-04-29</Info>

***

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.)
