v2.21.0 — external-review hardening (methodology lane) + runtime front door (MINOR over v2.20.2).
Methodology-lane refinements from two external reviews, triaged against the repo and ratified, plus a runtime front door. Framework prose changes this release (unlike the v2.20.x packaging patches). Lens Library stays v0.16; lint catalog stays v5.
What changed
- Turn-close ordering (G1). The per-turn Monitors are evaluated before the continuous-state artifacts (band header, Master, What's next) are emitted; the evaluation is internal — no visible per-turn transcript.
- Self-check visible-recompute (G3). Step 6 now writes each recompute out in full (operands + operation, in the Appendix K form) before comparing, rather than asserting "recomputed/matches".
- Self-check first-token echo (G5). Step 0 emits the matched Dispatch ID as the first token on a clean gate (the one-line truncation report stays first on a failed/truncated gate), so a silently-skipped transport gate is now observable in the response itself. Refuse-all was dropped.
- Dispatch record vs execution seat paste (N3). A clean split between the orchestration dispatch record (never pasted whole to a vendor) and the self-contained execution seat paste — new template E.1a, the Envelope minus the triangulation fields with
Vendor:resolved to the single executing seat. The single-arm strip rule now explicitly retains the singleVendor:/Vendor config:. ━-vs-XML rationale (G4). Documents why PRISM keeps━━━heavy-line dispatch delimiters rather than migrating to XML tags (fence-collision-safe; the vendor-parsing ledger indicts fences, not the heavy line; reliable tag-extraction is a vendor dependency the dispatch surface avoids). A new Appendix H section + a calibration item queue a real-device mobile-paste test. No format change.- J.3 clarifier (G2). The "no trailing-newline normalization" pin is scoped as a re-stage rule only — it has no bearing on return verification (which reconciles by Dispatch-ID instance match + Prompt-digest copy-through, never a rehash of clipboard bytes).
- Runtime front door (C). A new
/prism-helpcommand and an orientation-before-engagement core behavior: an opening "how do I use this?" is answered with a 30-second orientation and an offer to begin — before the missing-input halts — instead of a framework dump.
Calibration / report-back
- Item 5 — multi-vendor Self-check. Does a clean Step 0 emit the matched Dispatch ID as its first token on Gemini / ChatGPT / Perplexity? (Claude-family verified.)
- Item 10 —
━transport survival. Does the━━━heavy-line glyph survive mobile-app paste on ChatGPT / Claude / Perplexity / Gemini? (Seeds the new Appendix H rows.)
Install
- Marketplace (Claude / Cowork / Claude Code) — see the README Quick start; installed plugins update to 2.21.0.
- Upload-plugin (no marketplace) — download
PRISM-plugin-2.21.0.zipbelow → Customize → Plugins → Personal → + → Upload plugin. - Single file — attach
PRISM.md(or the version-pinnedPRISM_v2_21_0.md).
Surface-drift map: Appendix D. Version-pinned snapshot at this tag: PRISM_v2_21_0.md (byte-identical to PRISM.md).