Audiobooks comingReal voice narration is in production — full audiobook editions for Audible and wide release are on the way. Read and download the text editions free here until then.

Arjuna Badger Press

StoryGraph — the continuity gate

Part of the technology exposé. The deterministic spine that hard-gates fiction the way a test suite gates code.

Every chapter is parsed into a graph database whose nodes are characters, places, objects, factions, and events, and whose edges carry time and space. That's what makes it more than a wiki: it doesn't just store the world, it can be checked against itself.

erDiagram
    CHARACTER ||--o{ EVENT : "acts in"
    PLACE     ||--o{ EVENT : "located at"
    OBJECT    ||--o{ EVENT : "appears in"
    FACTION   ||--o{ CHARACTER : "claims"
    EVENT     ||--|| TIMELINE : "stamped (present|ancient)"
    OBJECT    ||--o{ PLACE : "moves between (route)"
    CHARACTER ||--o{ OBJECT : "carries / hands off"

The two axes a wiki doesn't have

asserts the braid closes in the final act and that no fragment is orphaned in time.

asserts an object's location chain is unbroken: you cannot read a relic in Egypt that was last seen, unmoved, in South Africa.

Editor vs gate

On every chapter the graph is re-ingested from scratch and a constraint checker runs across the whole work — eight constraint families:

FamilyWhat it guards
Knowledge FSMthe state-machine of who-knows-what (no one acts on a secret before they learn it)
Relay / hand-offthe chain of who carries the quest forward is unbroken
Key-chainplot-critical objects exist, move legally, and are present where used
Two-layer timelinepresent + ancient braid closes; nothing orphaned
Cross-book crumbsreverse-payoffs land and none dangles or is load-bearing for a newcomer
Mythos rulesthe "physics" of the world holds; no over-explained mystery
Relay conformanceeach chapter matches its blueprint node shape
Set-piece ledgerthe cinematic spine's key-chain stays intact
flowchart LR
    C[New / edited chapter] --> I[Re-ingest whole work<br/>into graph DB]
    I --> K{check_constraints<br/>8 families}
    K -->|clean| PASS([proceed])
    K -->|violation| BLOCK[[BLOCK + precise reason]]
    BLOCK --> FIX[Targeted fix] --> C

Any violation is a hard block — the chapter does not pass until it's fixed. That's the difference between a continuity editor (catches some, sometimes) and a continuity gate (catches all, deterministically, every run). It is also free: pure graph logic, no model calls.

Cross-book, at scale

The same machinery runs across books. The Jakobus Swart continuity gate (./run.sh continuity) holds a presence matrix for the recurring man and his Land Cruiser ("the Beast") across the whole shelf — 39 Jakobus books, 0 errors, 0 review items at last run. A character can't be in two deserts at once, across a dozen volumes, and have it slip.

← Back to the technology exposé · the verification gate guards facts; this one guards the world's internal logic.

Craft Library · Place Wiki · About the press · View this document on GitHub · Write with us

← Back to the library