Vol. I · No. 05
The Editor's Desk
The pioneer's review room
Solar Voice
Governance Console · judge · run · imprimatur
Reading the proof — validation lens2 🟦 Graph · real node/edge 🟪 Hybrid · grounded + rendered 🟨 LLM · voice, no fabrication 🟩 Data · own, not inflated Fixed · static 🟥 Care · two-tier holds corpus is read in the same ink as the prompt — same house
A

The Other Half of the System

— corpus, made first-class
THE STOCK ROOM
The stock the press prints on.
A prompt with no corpus is a plate with no paper. The corpus — the A&H graph the engine retrieves from — is the second versioned lever, symmetric to the prompt: its own candidate registry, its own lineage, its own go-live. Prompt-only governance is half the system.7
X · Prompt — how it reasons & speaks · promptVersionId
Tuned at the Compositor's Bench (/optimize). Its Block-3 template declares the corpus fields it needs — and reads whatever ground(retrieval) hands it.
Y · Corpus — what it knows · corpusVersionId
Built in the graph pipeline — not a UI — by the sv-graph-* scripts: content · tags · edges · embeddings · variations. Each build declares a retrievalInterface: the fields it exposes. That interface is the compatibility contract.
Live corpus interface
Reading the live pair…
B

The Stock Census

corpora/* registry
CORPUS OF RECORD
Reading the registry…
C

The Plates Rack

corpora/{versionId} · lineage
Each plate carries the stock it was cut for.
Lineage oldest-to-newest; each version shows its builtFrom, builtAt, state, and the retrievalInterface it exposes through ground(retrieval) — with fields added vs the prior plate picked out in green.
● reading the live edition…
Built by scripts · not the Desk
Corpus versions are cut in the pipeline, not here — the Desk only judges and presses them. Each build self-registers via a small registerCorpus() call (the form in §F mirrors that call for the rare manual register):
sv-graph-etl.js sv-graph-embed.js sv-graph-repair-edges.js sv-graph-aura-enrich.js registerCorpus({label, builtFrom, retrievalInterface, exposesFields, metrics}) corpora/{versionId}
D

The Stock Registry

— sortable · corpora/*
Version Label builtFrom builtAt Interface Status Action
Click a header to sort. The registry is written by the pipeline; the Desk reads it to compose a pair and to run the guard. Nominate a plate to send it to the Proof Spike.
E

Nominate to the Spike

— the missing pipeline path
CORPUS CANDIDATE
Send a plate up for judgment.
The graph pipeline has no "nominate for review" path today. This is it — flip nominated:true on corpora/{versionId} and the plate appears on the Proof Spike board beside the prompt candidates.7
Operator-gated write6
Nominate writes to corpora/{id} through govCorpus — an operator+ action. A pioneer-but-not-operator credential is refused server-side; the refusal surfaces below.
How a retrieved line is labelled9
Corpus verbatim from the graph — a real node or edge. Agentic synthesised at runtime from concepts. Never written back. Thin nothing retrieved — the engine says so honestly.
F

Register a Plate

registerCorpus()
STOCK REGISTRY · WRITE
Self-register a corpus build.
Normally the pipeline's registerCorpus() call does this on build. For a manual register, declare the version, what it was built from, and the retrievalInterface fields it exposes through ground(retrieval)that field set is the compatibility contract.4
Interface = sv-retrieval-1
The version is registered with the engine's retrievalInterface. A pair can lock only if a prompt's required fields ⊆ this version's exposesFields — declare them honestly.
Marginal Apparatus · Operational Anchors
1
Imprimatur. Literally "let it be printed" — the editor-in-chief's authority to send an edition to press. Here: the pioneer's lock — a write to config/live (a runtime-config flip, app-cached, no deploy). One live pair at a time; supersede-prior; full audit trail.
2
Validation lens. Each surfaced component is coloured by what proves it true: 🟦 graph (a real node/edge), 🟪 hybrid (grounded + on-voice), 🟨 LLM (rendered language, no fabrication), 🟩 data (the user's own, never inflated), ⬜ fixed (static), 🟥 care (two-tier). On this screen the corpus is the graph ink — every exposed field traces to a real node or relationship.
4
The coupling. Prompt × corpus are not independent — the prompt's Block-3 template formats whatever the corpus retrieval exposes. So what goes live is a pinned (prompt × corpus) pair, every candidate stamps both promptVersionId and corpusVersionId, and a lock is compatibility-guarded: lock only if the prompt's required fields ⊆ the corpus's retrievalInterface.
6
The invariant floor. The one thing plumbed — a flag, not a ranker. The sim-score's invariant sub-layer (care I15 · honesty / no-inflation I17 · no-gate I9 · no-fabrication I7 · ≤55 words) hard-flags a candidate ineligible, a release-blocker, regardless of judgment. On the corpus side the relevant rungs are no-fabrication (only real nodes) and honesty (no inflated content). The nominate write is operator-gated server-side.
7
Corpus is first-class. Symmetric to the prompt — its own candidate registry (corpora/{versionId}), its own lineage, its own A/B, its own go-live. Prompt-only governance is half the system: a brilliant prompt against stale stock still ships a stale edition. The corpus is tuned in the graph pipeline (sv-graph-* scripts), not a UI — so the Desk needs a deliberate "nominate" path the pipeline doesn't provide.
8
Content-variation model. (:Concept/:Question)-[:HAS_VARIATION {surface, reason}]->(:Variation {text, status}) — content-safety in the corpus, not the voice layer (voice = phrasing only). The while-listening surface pulls a listen-safe affirming variation; the app surface re-admits a lead-register reframe in app-safe form. neo.js only reads status:'live'.
9
CORPUS · AGENTIC · thin. The engine labels three cases explicitly: CORPUS (verbatim from the graph), AGENTIC (synthesised at runtime from retrieved concepts — never invented, never written back to the graph), and thin (nothing retrieved → the engine says so honestly and asks one real question). The graph holds corpus reframes only; the agentic wall is the operator rule that keeps the corpus a source of truth, not a cache of model output.