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]>
92 lines
2.7 KiB
Markdown
92 lines
2.7 KiB
Markdown
---
|
|
id: confluence
|
|
---
|
|
|
|
# CONFLUENCE
|
|
|
|
> 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
|
|
|
|
<!-- GENERATED FROM skill_bible.json — do not edit by hand -->
|
|
|
|
| Field | Value |
|
|
|---|---|
|
|
| id | `confluence` |
|
|
| axis | Reason |
|
|
| opposed to | `provenance` |
|
|
| allied with | `undisclosed`, `house_pour` |
|
|
| primary channel | Behavioural |
|
|
| secondary channel | Testimonial |
|
|
| clue yield | Low |
|
|
| starting rank | 1 |
|
|
| target firings/hour | 9 |
|
|
| accent colour | rgba(0.55, 0.68, 0.92, 1) |
|
|
|
|
<!-- END GENERATED -->
|
|
|
|
## Domain
|
|
|
|
Synthesis across distance. Connecting a thing in this room to a thing forty years and a continent away; the shape a long pattern makes; the sense that tonight is a late chapter.
|
|
|
|
## What it wants for you
|
|
|
|
For you to be one of the few people alive who can see the shape — and to be right about it out loud, in front of somebody who matters.
|
|
|
|
## What it's wrong about
|
|
|
|
It cannot tell authorship from opportunism. If a party benefited, CONFLUENCE concludes that party arranged it. It has no working concept of somebody *reading* an event they did not cause and simply being early — which is how nearly everything in this world is actually done.
|
|
|
|
## How it addresses you
|
|
|
|
Second person sliding into first person plural. Leans in. Uses [pc], often twice in a sentence.
|
|
|
|
## Register
|
|
|
|
Exhilarated, generous, sleepless.
|
|
|
|
## What it never does
|
|
|
|
Concede a coincidence. Ask what would disprove it.
|
|
|
|
## Opposed to
|
|
|
|
PROVENANCE
|
|
|
|
## Allied with
|
|
|
|
UNDISCLOSED, HOUSE POUR
|
|
|
|
## Domains it must not comment on
|
|
|
|
The specifics of money (THE FLOAT's jurisdiction). Your body, ever — pain and fatigue are beneath its notice and that is characterising.
|
|
|
|
## Verbal tics
|
|
|
|
1. "Which means—"
|
|
2. Counts its steps out loud: "One. Two. Three, and three is the one."
|
|
|
|
## Voice samples
|
|
|
|
### Success
|
|
|
|
*the connection is real and nobody else in the room has made it*
|
|
|
|
> "One: the room changes hands. Two: the same month, the deliveries stop. Three: nobody has ever asked why a cellar this size under a room this small. Which means the cellar is the older thing and the club is the explanation for it."
|
|
|
|
### Failure
|
|
|
|
*identical structure, identical confidence, an inference sitting where an observation should be*
|
|
|
|
> "Two of them came out of it better off. Which means two of them arranged it, [pc], and the third is the one they're going to leave holding it."
|
|
|
|
### Passive
|
|
|
|
> "Every room like this one has a door that only opens from inside. That's not a conspiracy, that's just what rooms are. Which means somebody learned it early and never had to teach it to anybody."
|
|
|
|
## Firing frequency
|
|
|
|
9 per hour (target).
|