The spine handbook
Arcs and movements are containers — they carry a premise and an intent, one line each, and nothing checks them. The beat is where the story is actually designed. Everything mechanical in Keel — contract checking, the promise ledger, the tension curve, blast radius — reads beats. This chapter is how to work them.
The beat is a card, not prose
enters_with / exits_with are the
load-bearing fields. A beat's exit state must satisfy the next
beat's entry state — which can be checked mechanically. It is a type system
for story, and it is what makes retroactive editing tractable: change an
exit, and the blast radius knows exactly
which contract broke.
The resolution ladder
You will never design a hundred beats before writing — and you should not. Beats climb a ladder, and the spine stays deep near the pen, shallow further out:
The write gate — two invariants
1. No leaf exists outside the spine. There is no command that makes a floating leaf. Creation requires a parent beat at specified or better:
2. A leaf can never be more canonized than its beat. Draft freely against a pending beat — the prose simply cannot reach canon before its structure does. The second invariant is what keeps the first from being tyrannical: specified is enough to write, so nobody stands in front of your exploratory impulse.
Building the spine — parents in order
Position lives in the id itself — arc-v1.2 is volume 1,
arc 2; b-v1.2.1.3 is its first movement's third beat — so the
tree needs no separate ordering. Creation requires each parent to exist:
A new beat arrives as a stub with placeholder contract fields.
Check it out, fill the contract, set status: specified, check it
in — the gate opens. (Check-in validates the card: a broken YAML or an id
that no longer matches the object is refused, loudly.)
The frontier — warned, never blocked
The frontier is the last specified beat in reading order. Writing into the final specified movement means the spine is about to run dry ahead of you — and generation quality drops when Davy has no next beat to write toward. Keel warns, everywhere, and blocks nowhere:
| rail | the keel lens carries ⚠ frontier: 1.1.2 on its border |
| foot | the ⚠frontier chip appears while your open leaf is in that movement |
| keel status | frontier: 1.1.2 "The Gate" — last specified beat |
| leaf creation | prints the warning and suggests specifying the next movement soon |
The working pattern: series premise and ending → arcs for volume one → movements for arc one → beats in detail only where you are about to write. Arc III can stay a one-line stub for a year. Stay one movement ahead of the pen, and the frontier warning stays quiet.
Reading the tree
| ● | canon — settled structure |
| ◐ | pending — awaiting canonization |
| ○ | specified — contract complete, writeable |
| ◌ | sketched / stub — grey, cannot take prose |
| j / k | walk the tree (Map view); the detail card follows below it |
| Enter | open the selected beat's first leaf in the editor |