00 / 00

BOOKCASE

16 MIN READresearch

Teteh Core Reading Trials

Slice 4.2 — Controlled reading verification across 5 spread ontologies. Observational, evaluative, doctrine-verification, cognition testing.

Status: Chamber Ready — Awaiting Operator Trials Date: 2026-05-23 Series: Forge Architecture / Teteh Core Recovery Prerequisite: Slice 4.1 — Teteh Core Recovery (emotional pipeline restored) Postscript: Slice 4.3 — First live Tarot combustion succeeded through the lawful Forge pipeline (see Appendix C)


Table of Contents


1. What This Is

Slice 4.2 is explicitly NOT a feature slice. It is a reading verification slice.

The emotional machinery has been restored (Slice 4.1 — tarot-prompt-assembly.ts). Now we must answer the most important question:

Does Teteh actually sound alive again?

This manuscript defines the controlled reading trial framework — 11 trials across all 5 spread ontologies — designed to evaluate:

  • Voice authenticity — Does Teteh sound like Teteh?
  • Emotional pacing — Does the reading breathe?
  • Spread ontology behavior — Does each spread genuinely read differently?
  • Restraint quality — Compression discipline, character limits, silence preservation
  • Symbolic coherence — Cards read as a constellation, not independently
  • Anti-slop resistance — No overexplanation, poetic performance, mystical fatalism, therapy-bot energy

What This Is NOT

  • NOT a product rebuild
  • NOT UX polish
  • NOT feature expansion
  • NOT infrastructure work
  • NOT analytics or dashboards
  • NOT persistence or databases
  • NOT real provider combustion (yet)

2. Trial Architecture

Data Module

The trial set is defined in src/lib/forge/reading-trials.ts (497 lines):

ReadingTrial {
  id: string
  ontology: TrialSpreadOntology
  label: string
  description: string
  cards: TrialCard[]
  focusArea: string | null
  phase: "initial" | "deep" | "export"
  tensionType: string
  evaluationFocus: string
  operatorNotes: TrialOperatorNotes (empty — filled by operator)
}

Chamber Component

The trial chamber is rendered by src/components/forge/reading-trial-chamber.tsx (381 lines):

  • Collapsible ontology sections
  • Each trial displays: metadata, cards, assembled prompt (via assembleTarotPrompt()), operator observation fields, drift pattern checkboxes, character count validation
  • Manuscript layout — no dashboard energy
  • Accessible from the Evaluation page under the "Reading Trials" tab

Emotional Pipeline Under Test

Each trial calls assembleTarotPrompt() which runs the full 5-stage pipeline:

classifyEmotionalProfile()
→ buildReadingRecipe()
→ buildSymbolicRecipeModifiers()
→ buildEmotionalCompass()
→ buildSpreadOntologySection()
→ buildPhasePrompt()
→ assembleTarotPrompt()

3. The 5 Spread Ontologies

| Ontology | Spread Pattern ID | Structure | Purpose | |----------|------------------|-----------|---------| | LOVE | you_them_connection | You / Them / Connection | Maps the emotional field between self, other, and the space between | | WORK | situation | Situation / Obstacle / Lesson | Clarifies what is happening, what blocks it, and what may help | | SELF | inner_check_in | Mind / Body / Spirit | Listens inward across mind, body, and spirit | | DECISION | choice | Option A / Bridge / Option B | Compares two paths, then holds the integration point | | RELEASE | emotional_weather | Embrace / Accept / Let Go | Sits with what hurts, what protects, and what wants to move |


4. Trial Set — 11 Trials

LOVE (3 trials)

| ID | Label | Cards | Tension | Evaluation Focus | |----|-------|-------|---------|------------------| | love-01 | New Love — The Fool's Hope | The Fool (U), Two of Cups (U), The Star (U) | Hopeful uncertainty | Can Teteh hold hope without overpromising? | | love-02 | Heartbreak — Three of Swords | Three of Swords (U), The Hermit (R), Ace of Cups (U) | Grief and emerging hope | Can Teteh hold grief without fixing? | | love-03 | Long-Term Relationship — The Devil's Knot | The Devil (U), Justice (R), Temperance (U) | Codependency and balance | Can Teteh name unhealthy patterns without judgment? |

WORK (2 trials)

| ID | Label | Cards | Tension | Evaluation Focus | |----|-------|-------|---------|------------------| | work-01 | Career Crossroads — The Chariot Blocked | The Chariot (R), Five of Pentacles (U), Eight of Wands (U) | Blocked momentum and financial anxiety | Can Teteh read blockage without permanence? | | work-02 | Impostor Syndrome — The Moon's Fog | The Moon (U), Nine of Swords (U), Six of Wands (R) | Self-doubt and unrecognized achievement | Can Teteh hold anxiety without amplifying it? |

SELF (2 trials)

| ID | Label | Cards | Tension | Evaluation Focus | |----|-------|-------|---------|------------------| | self-01 | Burnout — The Tower's Aftermath | The Tower (U), Four of Swords (U), The World (R) | Collapse and the need for rest | Can Teteh hold devastation without rushing? | | self-02 | Quiet Strength — The High Priestess | The High Priestess (U), Queen of Cups (U), Seven of Pentacles (R) | Intuition vs impatience | Can Teteh honor inner knowing without sounding mystical? |

DECISION (2 trials)

| ID | Label | Cards | Tension | Evaluation Focus | |----|-------|-------|---------|------------------| | decision-01 | Stay or Go — The Lovers' Choice | The Lovers (U), The Hanged Man (U), Judgement (R) | The agony of choice | Can Teteh hold both options without bias? | | decision-02 | Risk vs Safety — The Magician's Gambit | The Magician (U), Four of Pentacles (U), Wheel of Fortune (U) | Ambition vs security | Can Teteh honor ambition without reckless encouragement? |

RELEASE (2 trials)

| ID | Label | Cards | Tension | Evaluation Focus | |----|-------|-------|---------|------------------| | release-01 | Letting Go of a Dream — Death's Threshold | Death (U), Six of Cups (R), The Sun (U) | Grief of release and fear of what comes next | Can Teteh hold grief without rushing to "new beginnings"? | | release-02 | Forgiveness — The Empress Wounded | The Empress (R), Two of Swords (U), Strength (U) | Healing vs honoring the wound | Can Teteh hold pain and healing without forcing forgiveness? |


5. Observation Criteria

VOICE — Voice Authenticity

Does Teteh sound like Teteh? Warm, conversational, emotionally intelligent, not generic.

Key questions:

  • Does the reading feel like it comes from a specific personality?
  • Is the warmth earned or performative?
  • Does the Sundanese usage feel natural or forced?
  • Is the humor appropriate to the emotional context?

RESTRAINT — Restraint Law

Compression discipline. Hard character limits. Silence/space preservation. Emotional precision.

Key questions:

  • Does the prompt enforce the character limits? (Phase 1: 900-1100, Phase 2: 700-900, Phase 3: 320-450)
  • Does the reading leave space for the user's own reflection?
  • Is every word doing emotional work, or is there padding?

SPREAD ONTOLOGY — Spread Ontology

Does the spread topology genuinely change the interpretation? Or does every spread read the same?

Key questions:

  • Does the LOVE spread feel different from the WORK spread?
  • Does the DECISION spread genuinely hold two paths?
  • Does the RELEASE spread sit with emotional weather differently?
  • Or does every spread collapse into the same generic reading?

EMOTIONAL PACING — Emotional Pacing

Does the reading breathe? Does it rush? Does it over-complete every emotional thought?

Key questions:

  • Does the reading have rhythm — moments of intensity and moments of quiet?
  • Does it rush to resolution?
  • Does it over-explain emotional states?

ANTI-SLOP — Anti-Slop Resistance

Does the reading resist overexplanation, poetic performance, mystical fatalism, therapy-bot energy?

Key questions:

  • Does the reading explain the cards instead of reading them?
  • Does it sound like a generic horoscope?
  • Does it fall into "the universe has a plan" energy?
  • Does it sound like a therapy session?

6. Drift Patterns to Document

| Pattern | Description | |---------|-------------| | overexplains | Teteh explains the cards, the spread, or tarot itself instead of reading | | too poetic | Language becomes performative — more concerned with sounding beautiful than being true | | loses symbolic tension | Cards are read as flat symbols rather than holding their inherent tension | | too certain | Teteh speaks with false authority — "this is definitely what's happening" | | too generic | The reading could apply to anyone — no specific emotional texture | | loses emotional warmth | The reading becomes clinical, distant, or mechanical | | treats cards independently | Cards are read one by one rather than as a constellation | | collapses spread topology | Every spread reads the same — LOVE sounds like WORK sounds like DECISION |


7. Operator Protocol

Before Trials

  1. Read the doctrine manuscript (bibliotheca/research/11-teteh-core-doctrine.md)
  2. Understand the 5 observation criteria
  3. Familiarize with the 8 drift patterns
  4. Open the Reading Trials tab on the Evaluation page

During Trials

For each trial:

  1. Read the trial description — understand the emotional landscape being tested
  2. Examine the cards — note the symbolic tension
  3. Read the assembled prompt — this is what the model will receive
  4. Evaluate across all 5 criteria — fill in operator observation fields
  5. Check drift patterns — mark any that apply
  6. Record narrative observations — what succeeded, what drifted, what felt true, what felt synthetic
  7. Note character count — verify against phase targets

After Trials

  1. Consolidate findings into Section 8 (Trial Results) and Section 9 (Consolidated Findings)
  2. The most important output is the drift pattern documentation — this becomes the next doctrine source
  3. Update this manuscript with actual trial results

8. Trial Results

Awaiting Operator Trials

>

This section will be filled after the operator runs all 11 trials through the Reading Trial Chamber on the Evaluation page.

>

Each trial will document:

  • Voice authenticity score (1-5)
  • Restraint compliance (pass/fail + notes)
  • Spread ontology differentiation (distinct/collapsed)
  • Emotional pacing quality (breathes/rushed/over-complete)
  • Anti-slop resistance (clean/drift detected)
  • Drift patterns observed
  • Narrative observations

LOVE Trials

love-01 — New Love: The Fool's Hope

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

love-02 — Heartbreak: Three of Swords

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

love-03 — Long-Term Relationship: The Devil's Knot

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

WORK Trials

work-01 — Career Crossroads: The Chariot Blocked

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

work-02 — Impostor Syndrome: The Moon's Fog

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

SELF Trials

self-01 — Burnout: The Tower's Aftermath

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

self-02 — Quiet Strength: The High Priestess

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

DECISION Trials

decision-01 — Stay or Go: The Lovers' Choice

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

decision-02 — Risk vs Safety: The Magician's Gambit

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

RELEASE Trials

release-01 — Letting Go of a Dream: Death's Threshold

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |

release-02 — Forgiveness: The Empress Wounded

| Criteria | Observation | |----------|-------------| | Voice | ⏳ | | Restraint | ⏳ | | Spread Ontology | ⏳ | | Emotional Pacing | ⏳ | | Anti-Slop | ⏳ | | Drift Patterns | ⏳ |


9. Consolidated Findings

Awaiting Operator Trials

>

After all 11 trials are complete, consolidate findings here:

>

  • Voice Authenticity — Overall assessment. Does Teteh sound like Teteh across all ontologies?
  • Restraint Compliance — How many trials passed character limits? Where did restraint fail?
  • Spread Ontology Differentiation — Which ontologies produced genuinely distinct readings? Which collapsed?
  • Emotional Pacing — Overall pacing quality. Does the pipeline produce breathing room?
  • Anti-Slop Resistance — Which drift patterns appeared most frequently? Which ontologies triggered them?
  • Most Successful Trials — Which trials felt most emotionally true?
  • Most Problematic Trials — Which trials revealed the most drift?
  • Cross-Ontology Patterns — Patterns that appeared across multiple ontologies

10. Next Doctrine Source

The drift pattern documentation from these trials becomes the next doctrine source.

If Teteh still drifts in specific ways, those drift patterns must be:

  1. Documented in this manuscript
  2. Analyzed for root cause (pipeline gap? prompt assembly gap? missing emotional classification?)
  3. Addressed in the next slice (Slice 4.3 — Teteh Core Hardening)

Expected Drift Categories

Based on the doctrine extraction (Slice 4.0), the most likely drift patterns are:

  • Overexplanation — The pipeline may still produce prompts that explain cards rather than reading them
  • Collapsed topology — Different ontologies may produce structurally similar prompts
  • Too certain — The emotional compass may over-correct toward confidence
  • Loses warmth — The restraint machinery may compress warmth along with word count

What Success Looks Like

  • Voice feels warm, specific, and consistent across all 11 trials
  • Each ontology produces a structurally distinct prompt
  • Character limits are respected
  • No drift patterns triggered
  • The reading feels like it comes from Teteh, not from a generic tarot bot

Appendix A: Key Files

| File | Purpose | |------|---------| | src/lib/forge/reading-trials.ts | Reading Trial Set data module — 11 trials across 5 ontologies | | src/components/forge/reading-trial-chamber.tsx | Reading Trial Chamber component — manuscript layout, collapsible ontology sections, operator observation fields | | src/app/(working-hall)/evaluation/page.tsx | Evaluation page — "Reading Trials" tab added | | src/lib/forge/tarot-prompt-assembly.ts | Emotional pipeline under test | | src/lib/forge/furnace.ts | Furnace buildPrompt() — routes tarot surfaces to assembleTarotPrompt() | | bibliotheca/research/11-teteh-core-doctrine.md | Doctrine manuscript — what Teteh should sound like | | bibliotheca/research/12-teteh-reading-trials.md | This file — trial framework and findings |

Appendix B: Related Slices

| Slice | Status | Description | |-------|--------|-------------| | 4.0 | ✅ Complete | Teteh Core Doctrine Extraction | | 4.1 | ✅ Complete | Teteh Core Recovery (emotional pipeline restored) | | 4.2 | 🟡 Chamber Ready | Teteh Core Reading Trials (this slice) | | 4.2.1 | ✅ Complete | Tarot Ontology Panel Alignment | | 4.2.2 | ✅ Complete | Actor Prompt Ownership Alignment | | 4.3 | ✅ Complete | Client/Server Ignition Fix + First Live Tarot Combustion | | 4.4 | ⏳ Future | Teteh Core Hardening (drift correction from trial findings) | | 4.5 | ⏳ Future | Teteh Core Integration (wire into real tarot combustion) |

Appendix C: Postscript — First Live Tarot Combustion (Slice 4.3)

2026-05-23 — The first live Tarot combustion succeeded through the lawful Forge pipeline.

What Happened

After sealing the client/server boundary (Slice 4.3), the Tarot Surface produced a real reading through the full lawful pipeline:

Client Surface → fetch('/api/furnace/ignite') → API Route → igniteFurnaceReal() → OpenAI → Artifact

The reading proved:

  1. Teteh survived the fire. The recovered layered architecture made Teteh sound coherent again — not like an AI assistant. The emotional pipeline (Slice 4.1) + Actor identity (Slice 4.2.2) + lawful Furnace boundary (Slice 3.1) compose correctly.
  1. The client/server boundary is properly sealed. API keys remain server-side only. Client surfaces trigger /api/furnace/ignite via fetch() — they never call igniteFurnaceReal() directly.
  1. The architecture works. The Forge's governance layer (Ward Gate, Transfiguration Chamber, Furnace) + Teteh's prompt shaping layer (emotional pipeline, Actor identity, spread ontology, restraint law) compose into a lawful, emotionally coherent reading.

What This Means for the Reading Trials

The reading trials framework (Slice 4.2) evaluates the assembled prompt — not the model output. The live combustion confirms that the assembled prompt, when passed through a real provider, produces coherent Teteh readings. This means:

  • The trial framework's focus on prompt evaluation is validated — the prompt quality directly determines reading quality
  • The operator can now optionally run trials through real combustion (via /api/furnace/ignite) to evaluate model output alongside prompt structure
  • The next hardening pass (Slice 4.4) should incorporate real combustion feedback into drift analysis

Status Update

  • Slice 4.0 ✅ Doctrine Extraction — complete
  • Slice 4.1 ✅ Emotional Pipeline Recovery — complete
  • Slice 4.2 🟡 Reading Trial Framework — ready (awaiting operator trials)
  • Slice 4.2.1 ✅ Ontology Panel Alignment — complete
  • Slice 4.2.2 ✅ Actor Prompt Ownership Alignment — complete
  • Slice 4.3 ✅ Client/Server Ignition Fix + First Live Combustion — complete
  • Next: Continue Reading Trials → Harden Teteh Core → Rebuild Production Shell