# Inkhaven 1.4.19 — Mythological & Symbolic Pattern Library

_A serious novel runs a symbolic layer beneath its plot: an object that returns charged with new
meaning, a motif that rises and pays off, a character who inhabits an archetypal role. Most tools see
none of it. 1.4.19 gives that layer a home — on one strict condition: it tracks only what **you
declare**. It never discovers symbols you didn't name, never interprets them, and never edits your
prose. Every finding is advisory. **No new runtime crates.**_

_Plan: [MYTH-1_PLAN.md](../PROPOSALS/MYTH-1_PLAN.md)_

## Declaring your mythology

The **Mythology** system book holds three kinds of declaration paragraph, each by its tag:

- **`para:myth-symbol`** (`⊛`) — a symbol: the vocabulary that invokes it, its declared meaning, a
  valence (`positive` / `negative` / `ambiguous`), and any traditions it draws on;
- **`para:myth-motif`** (`∿`) — a recurring motif: a name, a description, a valence;
- **`para:myth-archetype`** (`⍟`) — an archetypal role mapped to a character: the role (Vogler's eight
  — hero, mentor, threshold guardian, herald, shapeshifter, shadow, ally, trickster — or a custom one),
  the character's name, and the function it performs.

Declared symbol vocabulary is compiled into the editor's highlight lexicon, so your symbols glow
(lavender, `myth_symbol_fg`) as you write.

## Two kinds of check

**Deterministic — zero-AI**, folded into the `Ctrl+B Shift+C` review pass, in the Output `myth`
category (the `⊛` glyph):

- **archetype role vacant** — a declared role with no character, or one not in your Characters book;
- **archetype character absent** — a mapped character who barely appears, or is missing from the
  structural zone the role expects (a herald absent from the opening, a shadow from the middle);
- **motif absent from the final act** — a motif that never recurs in the closing chapters.

**LLM — explicit only**, on `inkhaven myth check`:

- **symbol consistency** — a symbol ever used against its declared meaning or valence;
- **motif completeness** — a declared motif that never forms a complete arc (introduced, developed,
  paid off);
- **archetype role fulfilment** — a mapped character who does not *perform* the declared function.

The model is given only your declarations plus concrete prose excerpts — never the whole book — and
answers in the project language. Costs inform, never block.

## The heatmap — `Ctrl+V Shift+M`

Refreshes the inventory, runs the deterministic scans, renders the symbol-density / motif-presence /
archetype-presence heatmap into the **Thoughts** pane, and jumps to the nearest declared symbol. The
shape of your mythic layer across the book, at a glance.

## From the terminal

```sh
inkhaven myth scan                       # refresh + heatmap + deterministic findings (zero-AI)
inkhaven myth check                      # the LLM checks too (exit 1 on any finding)
inkhaven myth check --kind symbol        # just the symbol-consistency pass
inkhaven myth profile                    # print the declared inventory
inkhaven myth refresh                    # force-recompute the deterministic caches
inkhaven myth suppress --finding <id>    # mute a finding
```

## The Inner family learns your mythology

- A sixteenth Inner Socrates persona, **The Myth-Reader**, reads for symbolic & archetypal resonance:
  when an image returns, what has it gathered; is a symbol's weight earned or asserted; does a character
  inhabit the archetype the scene invokes, or wear it as a label. It interprets nothing, prescribes
  nothing.
- **Inner Theologian** now reads with the traditions you declare on your symbols, rather than imposing
  another (a fourth grounding source).
- The **utopian-architect** persona grounds its questions in your declared motifs — whether the world's
  logic serves the patterns you care about.

## Scripting & config

Bund: `ink.myth.{symbols,motifs,archetypes,density,findings}` (read) + `ink.myth.suppress` (write). The
`myth:` config block tunes `heatmap_buckets` (8), `consistency_min_chapters` (5),
`motif_min_occurrences` (3), `final_act_pct` (25), and `check_cost_warn` (0.08); `enabled: false` turns
the deterministic findings and the heatmap chord off. Declarations and findings live in
`.inkhaven/myth.duckdb`.

## Notes

- **No new runtime crates.** New tutorial 102. Tests 2131 → 2146 (the deterministic surface is
  unit-tested; the LLM passes are integration-only).
- It tracks only what you declare. It interprets nothing. It never edits your prose — it only shows you
  the pattern you already made.
