6 min readSpinemetaphorproductnarrative

Why a novel deserves a git log

A literary critic's mental model and a senior engineer's mental model are the same shape. Spine makes that shape visible.

A few months into editing my own novel, I noticed something I could not unnotice. Every time I sat with my manuscript, I was running git log in my head. Which scenes did this character "commit"? Which subplot was a branch I had abandoned? Which of those threads ought to merge back? When did the story diverge from the spine I had outlined a year earlier?

The vocabulary fit so cleanly that it stopped feeling like a metaphor. It started feeling like a description.

The shape underneath both crafts

Stories are not paragraphs of prose laid end to end. They are a graph. A scene is a node — the smallest unit of narrative state that changes something. A character is an author who shows up in some scenes and not others, and who can be blamed (in the strict, technical sense) for the lines they speak and the choices they make. A plotline is a branch — a sequence of scenes that share a central question or tension. Sometimes branches merge. Sometimes they get abandoned. Sometimes a character drives the main; sometimes they are a contributor on a side branch.

Engineers who have worked on a codebase for any length of time recognise this shape immediately. They know the feeling of opening a file and asking, who wrote this? Why does this branch exist? When did it diverge from main? Which features in the current release came in through which merge? Editors, novelists, and literary scholars know the same feeling, but they do not have the same instruments. They cannot run git blame on chapter 23. They cannot diff a draft against the previous one and see what shifted in the cast network. They cannot click on a character and see every commit they touched.

This is the gap Spine closes.

The metaphor is load-bearing

It would be tempting to call all this a clever framing — a way to introduce the product to engineers, a marketing hook. It is not. The git primitives are load-bearing in the actual implementation. Internally, every scene in Spine is keyed by a deterministic kebab-case identifier. Every plotline is a branch with a status: active, merged, or abandoned. Every character is a contributor with a per-scene involvement weight. Every revision of a manuscript is a version row, and the diff between v3 and v4 produces structural insights — not just text-level changes, but graph-level ones. "You added six scenes to the Pemberley arc and three to the Wickham arc; the central tension between Lizzy and Darcy now resolves four chapters earlier than in v3."

When a developmental editor sees this for the first time, they recognise it. They have been carrying the same mental model in their head, but unaided. The reason editing is so cognitively expensive is that the editor is doing the graph reconstruction inside their skull every time they open the manuscript. They are paginating through a flat sequence of words and rebuilding, over and over, a representation of the underlying structure. Spine ships them the structure. They get to start from the graph and spend their attention where it matters.

The same shape, two crafts

There is a small thrill in noticing this. Two professional cultures that almost never overlap — software engineering and literary editing — turn out to have invented the same model independently. Engineers describe code in terms borrowed from rivers and trees: trunks, branches, forks. Editors describe plot in terms borrowed from rope and weaving: threads, strands, weaves. The vocabularies are different. The mental model is the same.

Once you see this, you stop being surprised that the same instruments work for both. A diff tool is a diff tool. A blame tool is a blame tool. The fact that the artefact under analysis is a 130,000-word manuscript of nineteenth-century domestic drama rather than a TypeScript monorepo does not change the structure of the operations you want to perform on it. You still want to know who did what, where, and what changed.

What this lets us do

Three things, mainly.

The first is that we can show, not tell. Open Spine and see Pride and Prejudice rendered as a graph. Hover over scene three. The tooltip shows the cast, the summary, the chapter. Click it. The drawer shows the full text, and the lines spoken by Darcy are highlighted because his contributor weight on this scene is high. Click on Darcy in the cast ribbon. Every scene he touches lights up across the timeline. This is what an editor wishes their head felt like at 2am on a deadline.

The second is that we can answer questions that were previously expensive. Was Pemberley's architecture historically accurate for an 1813 setting? The Ask surface triages the question, decides whether it needs the manuscript or the open web (or both), and synthesises an answer with citations. Which of Wickham's scenes have the highest dramatic stakes? The graph knows, because importance is a per-scene scalar that emerged during ingest. What would Lizzy say to Jane the morning after Darcy's first proposal? The character chat will tell you, in voice, drawing on every line she has spoken in the manuscript.

The third — and this is the one that matters most for the long arc — is that we can compare drafts. The author revises. The editor regenerates the brief on the new version. Spine diffs the structural graph and tells the editor, in one paragraph, what landed and what did not. No more keeping mental notes about which beats survived which round of revisions. The comparison is automatic, structural, and citable.

What it is not

Spine is not a writing assistant. It does not draft prose. It does not finish your sentences. It does not have opinions about your adverbs. The model you are most likely thinking of when you read those words is sitting one tier away in our pipeline, doing exactly that for the people who want it, but it is not what we built.

Spine is a structural read of a finished or near-finished manuscript. It is what an editor's first sweep would catch, automated. It is the moment when a senior dev editor flips through the printout, makes seven pencilled marks, and says: "the middle third loses momentum, you've forgotten about Charlotte from chapter sixteen onward, and your two strongest scenes are too close together — what do you want to do about it?" It is structural triage. It is the part of editing that does not require taste, only attention. We free the editor's taste for the parts that need it.

The point

A novel deserves a git log because every novel already has one. The author wrote it; they just never got to see it laid out in front of them. Their editor reconstructed it scene by scene; they had no instrument to make the reconstruction durable. Their reader followed it intuitively, and could not articulate why the middle third dragged or why a thread felt unresolved.

Spine puts the spine on the page. Books are commits. Characters are contributors. Plots are branches. The point of the metaphor is not that it is cute. It is that the operations you have been doing in your head finally have a tool.

Read the next note

Or jump back to the index.

All notes
Why a novel deserves a git log — Spine · Spine