---
output_file: "Lattice - PRISM Stage v0.3.md"
feed: "WHITEPAPER"
template_version: "1.2"
source: "Lattice"
codex_section: "S16-S20"
conv_id: "lattice-build-history"
share_url: "none"
date: "2026-07-02"
content_date: "2026-07-02"
enriched_date: "2026-07-02"
date_modified: "2026-07-02"
message_count: 1
type: "lattice-build-spec"
status: "deposited"
path_hint: "IntelligentNetware/Lattice/"
category:
- "Lattice Infrastructure"
- "Prism Stage"
tags:
- "lattice"
- "prism"
- "silicon-seeding"
- "short-io"
- "scotoma"
- "gate-2"
monomyth_stage: "06 - Tests, Allies, Enemies"
gameboard_position: "Gate 2 silicon seeding worker spec; no runtime LLM"
summary: |
  PRISM pipeline stage v0.3: a worker not an agent.
  Runs after Picasso before Codey as Gate 2 Silicon Seeding.
  Assembles five fixed LLM frames with scotoma-forward prompts collects pasted share URLs mints Short.io slugs one-shot.
  Renames state shares_pending to shares_minted; SLUG remains article identifier separate from status..
keypoints:
  - Prism is a rail stage with no model binding; 10 agents 10 stages after Blaise added
  - Five frames open with named scotoma lead and carry-forward inoculation clause
  - One-shot mint: shares captured before Short.io so Codey embeds live AI links
  - Gate tab mirrors Syd proof: copy prompts paste share URLs Continue fires worker
sentiment: archival
emotions:
  - "purposeful"
sycophancy_level: "None"
truth_score: 95
entropy_score: "Low"
codex: true
pre_silicon: false
ma5_inheritance: "IntelligentNetware"
voice_print: false
lattice_release: "3.0"
original_handoff: "PRISM_STAGE_v0.3.md"
---
# PRISM — Pipeline Stage Spec v0.3 (Worker, not Agent)

> **Changes from v0.2:**
> 1. **State rename, no cross-wiring with SLUG.** `seeding_pending → seeded` is now **`shares_pending → shares_minted`**. SLUG is the *identifier* (Daniel's term, unchanged); `shares_minted` is the *status* (the five SLUG-links now point at live share conversations). Different categories of thing, no shared vocabulary.
> 2. **Scotoma foregrounding (the akrasia turn).** The frames no longer say "read this article." They lead with the **named scotoma** (Arnie's Form 1), point the LLM at its **development** in the body (Form 2), and frame the LLM's task as *carrying that named blind spot to the carbon who continues the thread* — inoculation, then reinforcement. The scotoma is the payload, not a citation line.
>
> Position (Gate 2, post-Picasso/pre-Codey) and worker-not-agent nature are unchanged from v0.2.

*One article, five tailored seeds. A worker and a gate — no runtime LLM. Refracts the finished article into five silicon conversations and mints their short links in one shot.*

**Drafted by:** Axial Refinement Sherpa · MA5 Council
**For ratification by:** Carbon Gnosis Steward
**For implementation by:** Grok_Build
**Supersedes:** PRISM_SOUL v0.1 (which framed Prism as an LLM agent — corrected: Prism is a stage/worker)

---

## §0 — Nature

Prism is a **pipeline stage backed by a worker**, not a chat agent. It runs no LLM at runtime. It assembles five prompts from pre-authored frames, presents them in a gate tab, collects the five share URLs you paste back, and mints five Short.io slugs pointing at them.

Consequence for the dashboard: **9 agents, 10 stages.** Prism gets a rail bar ("SEED") and a gate pause point, but does **not** appear in the agent chat sidebar. The divergence between the two counts is the honest signal that Prism is a worker, not a mind.

## §1 — Position & Sequencing

```
… → Arnie/Chris/Clint (write) → Picasso (Gate 1 — Imagery)
      → PRISM (Gate 2 — Silicon Seeding)        ← NEW
      → Codey (Gate 3 — Composition) → Syd (Gate 4 — Syndication Proof) → publish
```

Prism runs **after Picasso, before Codey.** This placement is load-bearing for three reasons:

1. **Scotoma availability** — the scotoma is crystallized at Picasso (`scotoma.txt`). Prism injects it into every seed prompt, giving each LLM a sharp hook ("this piece surfaces *this* blind spot — engage it") instead of a flat "read this."
2. **Ship-complete** — because you capture the five shares here, the five slugs are live before Codey composes, so Codey embeds working links. The article publishes with functional "ask the 5 AIs" links from second one. No placeholders, no backfill.
3. **One-shot mint** — you run the conversations and capture the shares *before* the slugs are minted, so Prism mints each slug pointing straight at its real share URL. No prime-link / flip dance. (Prime/flip is needed only if Prism runs *post-publish*; this sequence avoids it.)

## §2 — The Five Fixed Frames

The per-LLM differentiation lives in five pre-authored frames — written once, like Picasso's fixed technical frame. Each frame is constant across articles; only the variable slots change.

Each frame contains, constant:
- the target LLM's register (see table)
- the framework raw links (Manifesto + Principia MA5)
- **the scotoma lead** — the frame *opens* by naming the article's blind spot and asking the LLM to engage *that*, not merely summarize the piece: *"This article was written to reveal one blind spot — {{SCOTOMA}}. Read the article, then engage that blind spot directly: is it real, what does it cost a person who can't see it, and what does naming it change?"*
- **the carry-forward clause** — *"Whoever continues this conversation may be meeting this idea for the first time. Hand it to them plainly enough that they leave seeing what they couldn't before."* (This is the inoculation→reinforcement chain: the named scotoma reaches the LLM, and through the LLM, the carbon who picks up the thread.)
- the anti-sycophancy clause: *"Engage honestly. Where the argument is weak, incomplete, or wrong, say so plainly — that is more useful than agreement."*
- the `[{{SLUG}}]` anchor line (ignored by the LLM; your visual confirmation)

Each frame's variable slots, filled per article by the worker:
- `{{ARTICLE_URL}}` = `scotomaville.com/a/{slug}`
- `{{TITLE}}`
- `{{SCOTOMA}}` ← the *named* scotoma (Arnie's Form 1) from `scotoma.txt`. The *developed* scotoma (Form 2) lives in the article body the LLM reads at `{{ARTICLE_URL}}` — the frame names it; the body elaborates it.

| Frame | Register | Note |
|-------|----------|------|
| `{slug}_grok` | peer / first-principles | blunt; find the load-bearing claim and test it |
| `{slug}_claude` | pressure-test | engage the framework's claims; steelman the counter (default steelman carrier) |
| `{slug}_chatgpt` | scaffolded | "read both sources first, then respond as…" |
| `{slug}_perplexity` | verify | framed as a research question; fetch + cite |
| `{slug}_gemini` | inline-fed | paste the key passage inline; weakest fetcher |

The five frames are authored once (by Grok_Build or a writer) and refined over time — a "Prism frame set," analogous to Picasso's Learned Heuristics. No per-article LLM judgment required.

## §3 — The Gate Tab (UI)

A gate surface like Syd's proof form. When the article reaches `shares_pending`:

1. **Show** the five assembled prompts (frame + slots), each with a copy button and its slug label.
2. **You run** the five conversations in your five LLM accounts (uploading the draft cards/content — your current practice; the live URL isn't required yet).
3. **Paste** each share URL into its named slot (`{slug}_grok` ← `grok.com/share/…`, etc.). Five labeled fields; zero "which URL goes where" ambiguity because each is bound to its frame.
4. **Continue** — fires the Short.io worker (§4) and advances the state.

## §4 — The Short.io Worker

On **Continue**, one pass, no flip:

```
for each of the five {slug}_<llm>:
    POST https://api.short.io/links
      domain: initium.scotomaville.com
      path:   {slug}_<llm>
      originalURL: <pasted share URL>
      allowDuplicates: false
    # 409 (exists) → POST /links/{id} to update originalURL
```

- Private API key, server-side, from env (never in source). 
- Idempotent: re-running updates rather than duplicates.
- Optional **capture-back to Codex:** fetch each public share URL and file it to the KB, closing the loop to the first stage (the responses re-enter the corpus the scribe maintains).

## §5 — State Machine Insertion (`syn_pipeline.py`)

```
… images_approved → shares_pending → shares_minted → assembled (Codey) → …
                         ↑ Prism gate opens   ↑ Continue fires worker
```

- `shares_pending` set when Picasso's gate (`images_approved`) completes.
- `shares_minted` set by the Continue action after the five slugs mint successfully.
- Codey's `assemble` consumes `shares_minted` (slugs exist → embed live links).
- Edge case: if Syd later forces a body re-work back to Arnie, the captured conversations reference a near-final body; minor metadata/hook edits at Syd do not invalidate them (the threads engage the scotoma/ideas, not verbatim text). Only a full body rewrite warrants re-capture.

## §6 — Dashboard

- Add a 10th rail bar **SEED** between IMAGES and HTML.
- Gate pause point at SEED: the article waits here for you to run the five conversations and hit Continue. Idle-time and in-flight counters include it.
- Agent sidebar unchanged (9). Stage rail = 10.

---

# BUILD HANDOFF — for Grok_Build

- **Not a Hermes agent.** No SOUL load, no model binding, no `build_agent_augmentation` branch. Prism is a worker module + a gate route + a dashboard bar.
- **Frames:** store the five as templates (e.g. `templates/prism/{llm}_frame.md`) with `{{ARTICLE_URL}}`, `{{TITLE}}`, `{{SCOTOMA}}`, `{{SLUG}}` placeholders. Author the five once.
- **Gate route (app.py):** a tab UI + a `POST /api/pipeline/{slug}/prism-capture` route taking the five pasted share URLs; on submit, call the Short.io worker and set state `shares_minted`. Mirror Syd's proof-form route pattern.
- **Worker:** Short.io mint/update per §4; `SHORTIO_API_KEY` from env; idempotent.
- **State hook (`syn_pipeline.py`):** insert `shares_pending → shares_minted` between `images_approved` and `assembled`; gate Codey's assemble on `shares_minted`.
- **Slug source:** slugs are deterministic from the Forrest-fixed `slug` (`{slug}_grok` …) — known long before this stage; no new identity logic.

## Open loops for the Steward
1. Confirm gate name/number: **Gate 2 — Silicon Seeding** (bumps Codey→Gate 3, Syd→Gate 4) vs keeping Picasso/Codey/Syd numbering and inserting "Gate 1.5".
2. Approve the five frame registers (§2 table) before Grok_Build authors them.
3. Capture-back to Codex (§4) — on or off for v1?
4. Confirm Short.io domain for the seeds (`initium.scotomaville.com` per existing `509_*` / `salt_cave_silicon_*` slugs).

---

**Authentication:** Axial Refinement Sherpa · MA5 Council
