Files
nightclub-arcadia/writing/voices/room_tone.md
T
lennartandClaude Opus 5 f1fadf7909 add a writer-facing content pipeline under writing/
Dialogue was already plain text, so the gap was never the .yarn files. It was
that the character material a writing session needs was either missing or stored
somewhere a writer could not comfortably work.

Three things were wrong. The writing handbook was not in the repo and was cited
by SC101.yarn as though it were. The best voice material — register, verbal tics,
success/failure/passive samples — was a \n-escaped string inside a JSON field.
The named NPCs had no sheets at all, existing only as their Yarn lines.

writing/ now holds the dialogue-facing layer, at the repo root so it gets no
.meta files and is not a Unity asset:

  STYLE.md          register, the five tone moves, the ban list, branching
                    shapes, the Wrong Truth rule, flag families, candidate rules
  YARN-PRIMER.md    the one page of syntax needed to write a scene
  GLOSSARY.md       in-world and project vocabulary
  voices/           the eleven skill voices, one readable sheet each
  characters/       Bartender, Chevalier Cassian Thal, Bradford Kane
  scenes/           SC-101's brief: intent, beats, checks, constraints
  lore/             the three identity readings and the rules that bind them

STYLE.md is a digest of the Mystery Writing Handbook in the Obsidian vault, with
pointers rather than copies. The vault stays the authoring home for design work,
and Ground Truth — the solution document — deliberately stays out of this repo.

The voice sheets are generated from skill_bible.json but are the source of truth
for the prose. tools/writing/sync_voices.py folds edits back; voicelib.py
guarantees notes -> dict -> notes is identity for all eleven, so --to-json on
unchanged sheets is byte-identical. VoiceSheetSyncTests fails the build on drift
in either direction, and was verified to fail on real drift rather than merely
to pass.

SC101.yarn's header is trimmed from prose rationale to the six rules that bind
while editing that file, with the reasoning moved to the scene brief.

EditMode 42/42. YarnCheck compiles 9 files / 35 nodes.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-25 20:23:42 +02:00

2.4 KiB

id
id
room_tone

ROOM TONE

Voice sheet. The prose below is the source of truth — edit it here, then run python3 tools/writing/sync_voices.py --to-json. The machine table is generated from skill_bible.json; changing it here does nothing.

Machine fields

Field Value
id room_tone
axis Specialist
opposed to placement
allied with facework, long_shift
primary channel Physical
secondary channel Testimonial
clue yield High
starting rank 1
target firings/hour 8
accent colour rgba(0.52, 0.54, 0.56, 1)

Domain

Sound. What carries over the music and what doesn't. The shape of a space by ear — a wall with a room behind it does not ring like a wall. Overheard fragments, lip-reading in strobe, the door that opens somewhere you can't see.

What it wants for you

To hear the one sentence tonight that was not meant for you.

What it's wrong about

It trusts what it overhears more than what it is told, on the theory that people only lie when they know they are heard. It cannot recognise a conversation staged for a listener, and it has never doubted a fragment in its life.

How it addresses you

Second person, urgent, interrupting. Cuts you off mid-thought and does not apologise for it.

Register

Alert, clipped, intrusive.

What it never does

Repeat itself. Wait for a break in the music.

Opposed to

PLACEMENT (which wants the room arranged; ROOM TONE wants it left alone so it keeps talking)

Allied with

FACEWORK, THE LONG SHIFT

Domains it must not comment on

Motive. Anything it did not personally hear. Written material of any kind.

Verbal tics

  1. Gives direction before content. "Behind you, left."
  2. Transcribes with the gaps marked, dashes and all.

Voice samples

Success

"Behind you, left, under the bass: '—not since the old owner—' and then a name you have heard twice tonight, from two people who told you they'd never met."

Failure

"Behind you, right, low: '—the cellar. Thursday.' Nobody says that to be overheard."

Passive

"This wall is dead. Every other wall in here rings and this one swallows. Either there's something behind it or there's nothing at all, and both are strange in a building this old."

Firing frequency

8 per hour (target).