Tusk's Tomes

Chronicle Personas

Swap the Chronicle narrator out of the default bardic voice. Ships six presets and lets you author your own — from a template, from scratch, or generated by your active LLM. The locked Bard prompt remains the default and cannot be edited.

Note

View in app: open the Help tab and pick "Chronicle Personas", or click Read docs from the Personas row in Settings.

Built in — nothing to install. You will find it under Settings → Voice & content.

When this is worth it

  • You want a recurring stylistic flavour on every chronicle (a specific in-fiction narrator, a comedic register, a darker tone) without editing the pipeline source.
  • You run sessions for a campaign whose narrator has a defined voice and you want the recap to match.
  • You want to A/B different voices on the same transcript — flip the dropdown, re-run phase 3, compare.

How it works

The personas add-on only overrides three pipeline phases:

  • Phase 3 — Chronicle (the main narrative pass)
  • Phase 5 — Polish (the local-LLM-only final edit pass)
  • Phase 6 — Condense (the optional shorter retelling + recap bullets)

Phases 1, 2, and 4 are not affected — they handle grounding, DM clarification questions, and extras extraction, which should stay voice-neutral.

Each persona owns five prompts (one per phase × cloud/local combination). The structural rules — no fabrication, third-person past tense, preserve canonical names, etc. — are baked into the bard-shaped templates the presets and "Create from template" start from. The voice is a colouring layer on top.

When no persona is selected, or when the add-on is disabled, the pipeline runs the locked bard prompt byte-for-byte — exactly the same as a fresh install.

Switching personas

After installing the add-on and restarting npm run dev, the Chronicle tab grows a small Narrator picker at the top. Pick from:

  • Bard (default) — the locked, original prompt. Best for accuracy.
  • Six presets — Arnold Schwarzenegger, Homer Simpson, Peter Griffin, Gandalf, Mike Tyson, Donkey.
  • Any custom personas you've authored.

Switching takes effect on the next pipeline run (or the next condense call). It does not retroactively change an already-generated chronicle.

Authoring custom personas

In Settings → Chronicle Personas there are four ways to create one:

  • From preset — clones an existing preset into an editable copy. Best starting point if you want to tweak an existing voice slightly.
  • From template — opens the editor pre-filled with the bard-shaped template structure and a placeholder voice paragraph. You overwrite the placeholder with your own voice direction.
  • From scratch — opens the editor with empty prompt slots. You write everything yourself (or paste a full prompt). Required placeholders ({groundedChunk}, {chronicleChunk}, {chronicle}) are validated on save.
  • Generate with AI — describe the narrator in a sentence or two, and your active LLM drafts the five prompts. The result opens in the editor for you to review and edit before saving.

Prompt placeholders

Each prompt slot has one required placeholder so the pipeline can feed its chunk text in:

SlotRequiredOptional
Phase 3 — Chronicle (cloud){groundedChunk}{qaBlock}, {priorTail}, {chunkIndex}, {chunkTotal}
Phase 3 — Chronicle (local){groundedChunk}{kbConcat}, {qaBlock}, {priorTail}, {chunkIndex}, {chunkTotal}
Phase 5 — Polish (local){chronicleChunk}{kbConcat}, {priorTail}, {chunkIndex}, {chunkTotal}
Phase 6 — Condense (cloud){chronicle}{kbConcat}, {answersBlock}, {campaign}, {sessionNumber}
Phase 6 — Condense (local){chronicle}{kbConcat}, {answersBlock}, {campaign}, {sessionNumber}

Saving a persona without the required placeholder is rejected with an inline error.

Turning it off

Select the Bard default in the persona picker. That is the whole procedure — Personas ships with the app, so there is nothing to uninstall and nothing to restart.

Note

Personas ships with the app and has no uninstall path, so turning it off cannot delete anything you have written. The six presets are seeded the first time the list is read, so personas.json never has to exist.

The six presets are seeded the first time the personas list is read, so personas.json never has to exist for the feature to work. The Bard default prompt ships with the core install and is unaffected either way.