# Will V1's Agentic AI Generate _Compelling_ Content? — A Quality-Axis Analysis

Date: 2026-06-13 Scope: V1 (the Oshun platform) and the cross-domain agentic
content stack it governs (Hathor, Yemaya, Isis, Iris, Calliope, Neith, Nous,
Sophia). This is the **quality sequel** to
`AGENTIC_CONTENT_GENERATION_SOTA_REPORT_2026-06-12.md`. That report asked _"is
the pipeline connected?"_. This one asks the question the user actually cares
about: **"once it runs, will the content be any good?"** — and pushes back where
the answer is uncomfortable.

Method: four independent adversarial code-dives (generation method; evaluation
machinery; repo-wide SOTA-technique survey; substrate verification) grounded in
source reads with file:line citations, plus a current-literature (2026) scan of
SOTA for _creative/narrative_ quality. Load-bearing claims were spot-verified by
hand (citations marked ✔ were re-read directly for this document).

---

## 0. The one-paragraph answer

**No — not as built today.** The 2026-06-12 remediation closed the _integration_
gap the prior report identified: the Iris agentic loop, the Yemaya pipeline
runner, AgentRun governance, content-release-gates, C2PA signing, and the
Bellona cook path are now real, tested code (✔ verified — these are genuinely
good). But that report's thesis — _"the work remaining is integration, not
invention"_ — is **half right and dangerously half wrong**. It is right about
governance, safety, provenance, and correctness, which are now SOTA-specified
and substantially built. It is wrong about **quality**. The entire stack has
been engineered to guarantee that generated content is _safe, canon-consistent,
well-provenanced, deterministic, and auditable_ — and to make a **human the sole
arbiter of whether it is good**. There is no machinery anywhere in the repo that
makes content _compelling_, and almost every file that looks like it does is
either dead code or fabricates its results. As it stands, V1 will autonomously
produce content that is correct and shippable but **single-pass, canon-clamped,
template-flavored, and untasted** — governed mediocrity with a human quality
bottleneck. That is not "top-tier autonomous content." The good news: the
substrate to fix this is real and is one composition step away.

---

## 1. How V1 actually "generates content" today (the method, verified)

Every creative-prose path in the monorepo is **a single LLM forward pass behind
a deterministic structural planner, with a strict-JSON parse and no iteration.**
This was verified across every entry point:

| Entry point                                                              | LLM calls / artifact                                            | Candidates? | Self-critique loop?               | Writer                                                                                                       |
| ------------------------------------------------------------------------ | --------------------------------------------------------------- | ----------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Hathor story beats (`narrative-generation/src/generators.ts`)            | **1** ✔ (`completeJson` → one `createChatCompletion`, :277–295) | No          | No                                | LLM over a template-prose plan                                                                               |
| Hathor quest narrative / NPC backstory                                   | 1 each                                                          | No          | No                                | LLM                                                                                                          |
| Neith `integration-hathor/content-creation/*`                            | **0**                                                           | No          | No                                | **Template engine**: fixed word-pools (`TENSION_VOCAB`, `TRAIT_BEAT_PATTERNS`) selected by a seeded LCG PRNG |
| Yemaya `CharacterWriter` / `StoryDirector` (`creative/base-creative.ts`) | 1 per method                                                    | No          | No                                | LLM single-pass                                                                                              |
| Yemaya `AIDirector`                                                      | **0**                                                           | —           | —                                 | deterministic film direction, no LLM                                                                         |
| Calliope `match-commentary`                                              | 2 (writer + bias-judge)                                         | No          | No (judge blocks, never re-rolls) | LLM over deterministic scored structure                                                                      |
| Hathor `llm-npc` dialogue                                                | 1                                                               | No          | No                                | LLM; greetings/farewells are pure template                                                                   |

Two structural facts follow:

1. **The "richness" is structural, not generative.** Hathor's planner (borrowed
   from Neith) pins act structure, tension curve, motif placement, and character
   beats — then the LLM writes prose _inside_ those fixed slots. The slots
   themselves are filled from hardcoded vocabulary banks
   (`narrative-generator.ts` `synthesizeActDescription` concatenates
   `${transition} ${subject}. The story ${verb} as ${shift}.`). **This is
   actually aligned with 2026 game-PCG SOTA** (dependency-driven,
   plan-then-write pipelines — see §4) — it is the _one thing the architecture
   gets right about quality_. But it caps the ceiling: the LLM can only decorate
   a skeleton it cannot reshape, and the skeleton's prose is interchangeable
   boilerplate.

2. **There is exactly one real multi-candidate + refinement loop in the entire
   repo** — Yemaya's `PlanningAgent` (`generateAlternatives` →
   `selectBestVersion` → `iterativeRefinement`). But it plans **project task
   lists** (durations/costs/dependencies), selects on a **deterministic
   completeness heuristic** (`calculateQualityScore` deducts points for missing
   acceptance criteria), runs **only when the caller passes
   `humanInLoop && maxIterations`**, and has **no production caller**. It never
   touches narrative prose. The technique exists; it is pointed at the wrong
   artifact and wired to nothing.

**Implication.** Single-pass generation is the single biggest quality lever left
on the table. Current literature puts the gap at ~20% absolute human preference
(Self-Refine) before you even reach best-of-N or multi-agent methods. V1 leaves
all of it unclaimed on every prose artifact it will ever produce.

---

## 2. The evaluation gap: nothing measures whether content is _good_

This is the core finding. **No automated mechanism in the repo measures
compellingness, resonance, prose quality, pacing, or "would a discerning human
enjoy this."** Every quality-named validator bottoms out in one of three things:

- **Arithmetic over numbers the caller already supplied.** The headline "76 AAA
  quality validators" (Yemaya `quality-assurance/`) — `aaa-quality-metrics`,
  `aaa-readiness-calculator`, `narrative-quality-benchmark`,
  `emotional-resonance-predictor`, `tension-curve-analyzer`,
  `ending-satisfaction-predictor`, `cliche-trope-detector`,
  `cinematic-quality-scorer` — read pre-scored fields
  (`work.dimensionScores[dimension] ?? 50`, `b.resonanceScore`, `metricValues`,
  caller-tagged trope `usage`/`execution`) and do weighted sums, threshold
  compares, and tier lookups. **Several never read the content at all**
  (`cliche-trope-detector`'s `content:string` is stored but never inspected;
  `cinematic-quality-scorer` touches no pixels). They are bookkeeping over
  judgments made elsewhere — and "elsewhere" is a human or nothing.

- **Genuine but non-taste measures.** Hathor `lore-consistency` (canon
  contradictions, grounded-quote-required), Calliope `moment-scoring`
  (mechanical salience: `kill:10, clutch_save:22`), `BiasReview` (stereotyping
  safety filter), Euterpe `automated-eval` (real DSP: WER, LUFS, FAD, cent
  jitter). These are real and correct — they answer _"is it consistent / on-spec
  / clean / safe?"_, never _"is it good?"_. Correctness is a precondition for
  quality, not a substitute for it.

- **Linguistic statistics that measure difference, not quality.**
  `character-voice-distinctiveness-analyzer` computes real type-token ratio,
  Jaccard overlap, and n-gram profiles — but quantifies how _distinct_ speakers
  are from each other, not whether any voice is _good_.

**The damning detail: every LLM-as-judge that would assess taste is dead code.**
`narrative-quality-benchmark`, `ending-satisfaction-predictor`, and
`mystery-fairness-validator` each define a full `*LLMProvider` interface with
literary-critic rubric prompts ("expert literary critic evaluating prose
quality… artistic achievement on a scale of 0–100"). In all three the class is
**never instantiated, never injected (no constructor seam), never called**;
scoring runs entirely on heuristics over caller-supplied fields.
`dialogue-naturalness-scorer`'s LLM path is gated `enableLLMEvaluation: false`
and never reached. Nous's `critique-prompts.ts` rubric is never sent to a model.

**The only genuine taste judgment in the repo is performed by a human** (Euterpe
`human-eval.ts` `scoreRubric` averages 1–5 ratings a person typed for
"Naturalness / Coherence / Creative transformation"). The release-gate layer
makes this explicit and intentional: the sole non-correctness gate is
`humanSignoffGate`, which "never auto-passes," and the package docstring states
promotion happens on statistical/correctness evidence and human signoff,
**"never on vibes."** The architecture deliberately routes the question _"is
this actually good?"_ to a human pressing Approve. That is defensible for
safety. It is **fatal for autonomy at scale**: the human is the quality engine,
and humans don't scale to 12,000 dialogue nodes.

---

## 3. SOTA-technique scorecard: present, dead, or absent

A repo-wide adversarial survey for the techniques that actually move content
quality in 2026. "Wired" = invoked from a real non-test path **and** the
relevant parameter reaches a real model call.

| #   | SOTA technique                                                    | Status in repo                        | Evidence                                                                                                                                                                                                                                      |
| --- | ----------------------------------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1   | Best-of-N (sample N, score, pick best)                            | **DEAD/FAKED**                        | `nous/training/best-of-n-sampling.ts` never calls an LLM; candidate scores are `Math.sin(phase)` arithmetic over prompt metadata ✔ (:413–423). No prose path samples >1.                                                                      |
| 2   | Self-refine / Reflexion (critique→revise)                         | **DEAD/TEST-ONLY**                    | `nous/iterative-refinement` hardcoded strings; `euterpe collaborative-agentic.ts:1552` real loop but callback-driven, no LLM, no caller                                                                                                       |
| 3   | Multi-agent debate / consensus                                    | **DEAD/TEST-ONLY**                    | `isis/agent-consensus` (~6.9k LOC) has **no LLM imports** — text-similarity over caller positions; only consumer is a test fixture                                                                                                            |
| 4   | LLM-as-judge of _quality_ (live)                                  | **ABSENT** (correctness judges exist) | Literary-critic rubrics defined but never called (§2). Live judges (`lore-consistency`, `biasReview`) judge safety/canon, not quality                                                                                                         |
| 5   | Process reward model / verifier-guided search                     | **DEAD/FAKED**                        | `nous/reward-modeling.ts` metrics via `Math.exp` (:773) ✔; only caller is dead `PreferenceLearning`                                                                                                                                           |
| 6   | Tree-of-Thought / MCTS / beam                                     | **DEAD**                              | `nous/llm/tree-of-thought.ts` real search but **thoughts are hardcoded templates**, no LLM, dead caller                                                                                                                                       |
| 7   | RLAIF / Constitutional / DPO / preference learning                | **DEAD/FAKED**                        | `nous/training/{rlaif,dpo,ppo,constitutional}.ts` fabricate preferences & rewards via `Math.sin`/`Math.cos` ✔ (`rlaif.ts:754–765`). No gradients, no model, no data                                                                           |
| 8   | Quality-Diversity / MAP-Elites / novelty / evolutionary           | **ABSENT**                            | No QD archive, novelty search, or genetic content loop anywhere                                                                                                                                                                               |
| 9   | RAG grounding _bound to_ generation                               | **PARTIAL (1 path)**                  | `apps/oshun/bff` Sophia answer route grounds on Nisaba passages into a real synthesis call — the **only** live retrieval→LLM binding. Sophia's own embeddings are SHA-256 hashes, not a model (`sophia/embeddings/multimodal-embedder.ts:45`) |
| 10  | Fine-tuned / domain-specialized models for taste                  | **ABSENT**                            | No LoRA/PEFT/distill/fine-tune call; model names are decorative config                                                                                                                                                                        |
| 11  | Inference-time scaling / extended-thinking budget tied to quality | **DEAD**                              | `iris/reasoning-thinking` budget managers are accounting-only, never sent to a model; the one correct wiring (`isis claude4-adapter.ts:471 budget_tokens`) has zero non-test callers                                                          |

**Of ~11 SOTA quality techniques, exactly one is wired into a live path (RAG, in
a single BFF route, on the wrong store, single-pass).** Everything else is
absent or scaffolding.

### The trap inside the scorecard: the faked Nous stack

`libs/nous/training/*` and `libs/nous/llm/tree-of-thought.ts` are not merely
"not SOTA" — they **fabricate their outputs** (`Math.sin` reward curves,
hardcoded candidate strings, `Math.exp` perplexity). Under this repo's own
`CLAUDE.md` ("`Math.random()` faking computed results… simulated runtimes where
real ones belong" are forbidden stubs), these are **violations**, and they ship
with unit tests that assert the _shape of the fabricated curves_. Worse than the
rule-breach is the **strategic hazard**: anyone scanning the file tree sees
`rlaif.ts`, `reward-modeling.ts`, `best-of-n-sampling.ts`, `tree-of-thought.ts`,
`dpo-training.ts` and concludes _"we have preference learning and inference-time
search."_ You have filenames. This illusion will cause the team to under-invest
in the real thing. **Recommendation: gut these to fail-loud `not_implemented` or
delete them** — a `503 not_configured` is honest; a `Math.sin` reward model is a
lie that looks like progress.

---

## 4. What current (2026) SOTA actually says — and the asymmetry that matters most

The single most important conceptual point, which reframes the whole problem:

> **Verifier-guided inference-time search (best-of-N, MCTS, process reward
> models) delivers its famous gains — up to ~4× compute-efficiency — primarily
> where a _ground-truth verifier exists_: math, code, formal reasoning. Creative
> content has no ground-truth verifier.** There is no oracle that returns "this
> story is good = true." So the SOTA recipe for _quality_ content is different
> from the SOTA recipe for _correct_ reasoning, and conflating them is the
> classic mistake.

For **creative/narrative** quality, the 2026 state of the art is:

- **Learned reward / preference models of taste.** You approximate the missing
  verifier by _training a reward model on human preference judgments_. LitBench
  (creative-writing reward models trained on r/WritingPrompts preferences) is
  the reference point — and its own headline lesson is that **reward hacking is
  rampant**: weak reward models reward length, formatting, and slop, so
  best-of-N against them amplifies GPT-isms. Mitigations:
  pessimistic/Best-of-Poisson selection, length control, diversity penalties.
- **LLM-as-judge, but calibrated and de-biased.** Position bias is large (~40%
  inconsistency on naive pairwise); mitigate by swapping orderings and counting
  only consistent wins. An off-the-shelf judge is unreliable out-of-domain
  (>20–25% divergence → recalibrate the rubric); 2026 work applies
  item-response-theory to the judges themselves and confidence intervals that
  account for judge sensitivity/specificity. EQ-Bench Creative Writing v3 adds a
  **slop score** (statistically over-represented LLM n-grams), length-controlled
  scoring, and debiasing to reduce judge↔style correlation.
- **Self-Refine / Reflexion** improves creative-writing human-preference by
  **~20% absolute** over one-pass with no training — but 2026 work ("Revision or
  Re-Solving?") shows the gains are uneven and need _structured,
  multi-dimensional_ feedback, not free-form "make it better."
- **Multi-agent narrative collaboration** is the SOTA for the _long-form_
  content the V-series needs: **Agents' Room**, **StoryBox** (bottom-up
  multi-agent simulation, coherent >10k-word stories), **MUSE**, **BookWorld**,
  **CreAgentive**. Measured quality rises with collaboration (reported 2.19/2.36
  → 3.08 on 6-criterion narrative rubrics: Plot, Creativity, Character,
  Language, Conflict, Overall).
- **Game-content PCG with LLMs (2026)**: dependency-driven, schema-governed,
  plan-then-expand pipelines (World-Gen→Quest-Line) with error-repair loops and
  constraint enforcement produce structurally valid content "without quality
  degradation as complexity increases," and report **strong alignment between
  system metrics and player-perceived quality**. (V1's planner→writer split is
  already on this path — credit where due.)
- **Model choice is a quality lever.** For creative fiction in 2026, frontier
  models lead (Claude Opus 4.6 on Mazur Writing; Sonnet 4.6 on EQ-Bench Creative
  Writing v3); per repo `CLAUDE.md` the newest are **Opus 4.8 / Fable 5**. V1's
  generic provider abstraction does **not pin or route prose to the best
  creative model** — model id is config-decoration.

**Mapping to V1:** of these, V1 has the plan-then-write structure (good) and
mandatory canon grounding (good). It has **none** of: a learned taste/reward
model, calibrated LLM-judge panels, self-refine, multi-agent narrative
collaboration, slop/diversity control, or best-model routing. The techniques the
repo _named_ (best-of-N, RLAIF, ToT, reward models) are the faked ones.

---

## 5. The quality question at every level of abstraction (the angle you asked for)

Quality is not one thing; it lives at different altitudes, and V1's gates
cluster at exactly one of them. Where each level is handled today:

| Level                          | What "good" means here                     | Who/what checks it in V1 today                                                         | Gap                                                 |
| ------------------------------ | ------------------------------------------ | -------------------------------------------------------------------------------------- | --------------------------------------------------- |
| **Token / phrase**             | no slop, no GPT-isms, fresh diction        | **nobody** (Neith pulls _from_ fixed phrase pools — the opposite of anti-slop)         | No slop metric; template pools guarantee repetition |
| **Sentence / voice**           | natural, distinctive character voice       | distinctiveness _stats_ (difference, not quality); naturalness scorer is heuristic/off | No live judge of naturalness                        |
| **Passage / prose**            | pacing, imagery, emotional beat lands      | dead literary-critic rubrics                                                           | None active                                         |
| **Artifact (a quest/scene)**   | coherent, complete, on-spec, canon-safe    | ✅ lore-consistency, structural validators, human signoff                              | This is the _only_ well-covered level               |
| **Arc (10k+ words, a season)** | long-range coherence, payoff, escalation   | structural planner pins a curve; no cross-artifact memory of quality                   | No long-form coherence machinery (cf. StoryBox)     |
| **Corpus (the whole catalog)** | _diversity_ — 12k quests aren't 12k clones | **nobody**                                                                             | Critical miss — see §6                              |
| **Player-experienced**         | is it actually fun / moving in play        | **nobody** (engagement-predictor uses telemetry post-hoc, behavior not taste)          | No pre-ship proxy for player experience             |

V1 is strong at the **artifact** level (correctness/safety/completeness) and
absent everywhere else — most dangerously at the **corpus** and
**player-experienced** levels, which is exactly where "compelling at scale" is
won or lost.

---

## 6. Targeted pushback on the standing plan

1. **"V5 is the biggest beneficiary — generate its ~12,000 dialogue nodes."**
   (From the 06-12 report §6-E.) **Pushback: with the current single-pass,
   canon-clamped, no-taste, no-diversity stack, generating 12,000 nodes produces
   12,000 pieces of _uniform slop_ — which is worse than the famine**, because
   it costs real money/GPU, looks like progress on a checkbox, and demoralizes
   players who notice the sameness. Quantity without the quality+diversity layer
   is a trap. **Do not scale generation until the taste-model +
   diversity-control layer exists.** The right order is quality-layer-first,
   then scale.

2. **"The work remaining is integration, not invention."** Pushback: true for
   plumbing, false for quality. The hard, unsolved, genuinely-requires-invention
   part — _an automated approximation of taste for your domains_ — is exactly
   what's missing, and it was mislabeled as "done" because the eval _plumbing_
   (gates, z-tests) is done. A gate that runs is not a gate that knows good from
   bad.

3. **The gold sets train nothing.** V1's spec correctly says human
   accept/reject/ edit decisions get "promoted into versioned gold sets" feeding
   champion-challenger. In code, `maat/agent-feedback-loop-system.ts` _stores_
   RLHF pairs and emits static suggestions; nothing trains a model on them, and
   `@maat/agents` has no dependents. **The most valuable asset you're
   accumulating — your reviewers' taste, as labeled data — is being warehoused,
   not learned from.** This is the highest-leverage thing you already half-own.

4. **The human is the only quality engine, and that doesn't scale.** "Fully
   agentic with studio HITL" currently means "single-pass generate, then a human
   decides if it's good." That's human-_after_-the-fact, and the human is the
   bottleneck for every artifact. SOTA HITL uses the human to _train the taste
   model_ (active learning on disagreement/low-confidence cases), so the human's
   marginal involvement _falls_ as volume rises.

---

## 7. The missing layer: a Quality Stack on the substrate you already built

The substrate is real and ready (✔ verified): the Iris agentic loop
(`agentic/loop.ts` — genuine call→tools→feed-back→repeat, cross-provider, budget
caps), the Yemaya pipeline runner (real pause/checkpoint/resume + downstream
`reviewerDirection` injection + `replace`-subgraph recovery), AgentRun
governance (real kill switches/quarantine/authority-subset), and
content-release-gates (✔ z-test verified correct against hand computation). They
are **one composition step away** from a quality loop — no consumer wires them
into generate→score→ regenerate yet, but the seams (`gateFromEvalScore`,
`onStepFailure→replace`, `request_changes` injection, champion-challenger
promotion) are all present.

Add the layer that is missing, in dependency order:

- **Q1 — A taste signal (the keystone).** Stand up a _calibrated LLM-judge
  panel_ per content type (prose, dialogue, quest, commentary) with domain
  rubrics, position-bias mitigation (swap+average), and a slop/diversity
  penalty. Make it a real, live `eval` gate via `gateFromEvalScore` (the dead
  literary-critic rubrics in `narrative-quality-benchmark` are 80% of the prompt
  — _finish wiring them, don't reinvent_). Calibrate against your human gold
  sets; recalibrate when judge↔human divergence >20%.
- **Q2 — Best-of-N against Q1.** Generate k candidates (vary
  temperature/seed/strategy), score with the judge panel, select the best —
  pessimistically, to avoid reward-hacking the judge. This alone is the largest
  single quality jump available. Replace the _faked_ `best-of-n-sampling.ts`
  with this real loop.
- **Q3 — Self-refine (structured).** One critique→revise pass on the winner,
  using multi-dimensional rubric feedback (not "make it better"). ~20%
  human-pref upside; cheap.
- **Q4 — Multi-agent narrative for long-form.** For arcs/seasons (V5, V2 side
  stories), adopt an Agents'-Room/StoryBox pattern (planner → drafter → critic →
  continuity agent) on the Iris multi-agent machinery, for cross-artifact
  coherence beyond a single planner-pinned curve.
- **Q5 — Close the human loop into a reward model.** Turn gold sets into a
  trained preference/reward model (start: the judge panel _is_ your reward
  model; graduate to a fine-tuned scorer as data grows). Route low-confidence/
  disagreement cases to humans (active learning) so human effort falls as volume
  rises. Feed it into champion-challenger so prompts/models/workflows are
  promoted on a _learned-quality_ metric, not just a pass/fail success bit.
- **Q6 — Corpus-level diversity control.** A novelty/diversity check across the
  catalog (embedding-space spread, slop-list frequency) so 12k quests don't
  collapse to a mode. This is the level nothing touches today and the one that
  kills "compelling at scale."
- **Q7 — Route prose to the best creative model.** Pin Opus 4.8 / Fable 5 (or
  best-on-benchmark) for prose generation and judging; stop treating model id as
  decorative config.

Q1+Q2+Q5 are the keystone; they convert the human quality bottleneck into a
scalable learned taste signal, reuse the substrate that already exists, and are
the difference between "governed mediocrity" and "top-tier autonomous content."

---

## 8. What V1 genuinely gets right (so this isn't only critique)

- **Governance plane is SOTA and rare.** Budgets, kill switches,
  authority-subset delegation, anomaly quarantine, provenance/C2PA, immutable
  run ledger, replay — most teams shipping agents have _none_ of this. ✔
  verified real.
- **Plan-then-write** structural separation is on the 2026 game-PCG SOTA path.
- **Mandatory canon-grounding + contradiction judge** on generated output is the
  correct _correctness_ floor (a precondition for quality).
- **Determinism/reproducibility as a release gate** and **content-addressed
  manifests + cook lineage** are genuinely ahead of the field.
- **The eval substrate** (gates, champion-challenger z-test) is correct and
  reusable — it just needs a real quality metric to gate _on_.

The honest metaphor: **V1 has built an A-grade chassis and a full safety cage,
the engine bay is empty where the quality engine goes, and someone has placed a
cardboard engine (the Nous stack) in the bay and painted it to look real.**

---

## 9. Answers to the questions asked, plainly

- _How do the agentic systems generate content?_ Deterministic planner → single
  LLM writer pass → strict-JSON parse → correctness/safety gates → human
  approve. No candidates, no refinement, no taste model.
- _Will it generate high-quality compelling content?_ It will generate _correct,
  safe, on-spec, canon-consistent_ content. **Compellingness is delegated
  entirely to a human reviewer and to the base model's one-shot output.** At
  scale, expect competent-but-uniform; "compelling" is not engineered for.
- _Are we using all applicable SOTA tools?_ No. One of ~11 quality techniques is
  live (RAG, partially). The rest are absent or faked. The faked ones (Nous
  training stack) are also rule violations and a strategic illusion.
- _Do our systems already have the required SOTA implemented across
  angles/levels of abstraction?_ No — coverage is concentrated at the single
  _artifact-correctness_ level; token/voice/prose/arc/**corpus**/player levels
  are unmeasured.
- _Biggest insight / pushback:_ quality has no ground-truth verifier, so the
  keystone is a **calibrated taste model learned from your own human gold
  sets**, used for best-of-N + as a release gate. You are already collecting the
  labels and you already built the substrate — you just never connected taste to
  generation. Build the quality layer **before** scaling volume, or you'll
  mass-produce slop.

---

## 10. Verification caveats

- Generation-method and faked-Nous findings were spot-verified by direct re-read
  (`generators.ts:277–295`; `rlaif.ts:754–765`; `best-of-n-sampling.ts:413–423`;
  `reward-modeling.ts:773`; `constitutional-ai.ts:406`). ✔
- The substrate-is-real findings (Iris loop, runner, gates, z-test) come from a
  dedicated adversarial dive that ran the tests (27 + 16 + 16 green) and
  verified the z-test against hand computation. ✔
- "Dead code" verdicts mean _no non-test caller found_ — the strongest claim a
  static survey supports; spot-check before deleting.
- No pipeline was executed end-to-end against live models for this analysis; the
  quality conclusions are architectural (what the code _can_ do), corroborated
  by the 2026 literature on where quality comes from.
