Skip to main content

Project banner

Chronicle

Chronicle is a C# CLI tool that treats worldbuilding lore like a software codebase. It sits on top of Git and extends it with concepts Git doesn't natively understand: canon status, lore entities, cross-references between documents, timeline consistency, and semantic validation. A Chronicle-managed worldbuilding project is a Git repository full of Markdown files with YAML frontmatter, organized in a conventional directory structure where each file represents a discrete lore entry--a faction, a character, a location, an event, a mechanic--and each file's metadata is something the tool can parse, validate, and reason about.

The fundamental insight is that worldbuilding has the same structural challenges as software development. Versioning. Consistency. Collaboration. Review. Quality assurance. Chronicle is what you'd get if you designed a documentation quality tool specifically for fiction writers and game designers, built on the same principles that make modern software development manageable.

The Problems It Solves

Worldbuilders managing large, evolving fictional universes run into five problems that keep recurring. Chronicle addresses all of them.

Continuity drift is the quiet one. Over months or years, documents subtly contradict each other. A faction's founding date in one file doesn't match the timeline in another. A character's allegiance in their own document doesn't match their listing in a faction document. These contradictions accumulate silently because there's no automated way to check for them. Chronicle's deterministic validation layer catches the structural contradictions (date mismatches, broken references, schema violations). Its LLM-powered deep validation catches the semantic ones--the contradictions that live in the prose itself, invisible to any keyword search.

Fear of revision paralyzes experienced worldbuilders more than new ones. "If I change the founding date of this faction, what else breaks?" Chronicle's cross-reference integrity checking and dependency tracking answer that question before the change is made.

Canon confusion happens whenever worldbuilders explore "what if" scenarios or collaborate with others. Speculative content gets confused with established canon. Chronicle introduces formal canon status management--canonical, draft, apocryphal, deprecated--as a first-class workflow concept. The authority status of every piece of content is explicit, tracked, and enforceable.

Collaboration friction. Multiple contributors to a shared world have no structured way to review each other's work before it becomes "official." Chronicle models the contribution workflow after pull requests: new lore is developed on branches, validated by automated checks, reviewed (by another person or by the LLM advisory layer), and merged into the canonical branch only when it passes.

Discoverability. Finding information in a large lore corpus requires either perfect memory or exhaustive keyword search. Chronicle's semantic search, powered by FractalRecall, lets worldbuilders ask natural language questions ("What factions have a presence in the northern territories?") and get relevant results even when the exact terminology doesn't match.

The Advisory Principle

LLMs are advisory, never authoritative. They suggest, analyze, and draft. They never make changes to the canonical record without explicit human approval.

This isn't just caution. LLMs hallucinate, and a worldbuilding tool that silently introduces hallucinated "facts" into a canonical record would be worse than useless--it would actively undermine the trust the system exists to provide. And creative decisions about a fictional world should remain with the human author. The LLM can identify gaps and suggest possibilities. The author decides what's true.

In practice, every LLM-powered feature produces a report (a Markdown file, naturally) rather than making direct changes. The human reviews it and acts or doesn't. The only exception is stub generation, which creates new files--but those files are always created with canon: false and clearly marked as machine-generated, requiring explicit review before promotion.

The contradiction detection is the most useful example. Run chronicle validate --deep and Chronicle identifies clusters of related documents, sends pairs to the local LLM with a system prompt that says, essentially, "you are a continuity editor, find contradictions, cite passages." The results go into a validation report. No lore is changed. No canon is touched.

The kind of contradiction it catches: Document A states "The Iron Covenant never practiced magic; they viewed it as an abomination." Document B, written months later, describes an Iron Covenant ritual involving arcane channeling. No keyword overlap flags this. It's a semantic tension that only a language model (or a very attentive human reader who remembers a paragraph from six months ago) would catch.

Technology

  • Language: C#/.NET
  • Foundation: Git (repository layer)
  • Search: FractalRecall (semantic search)
  • LLM Integration: Local models via Ollama (advisory layer)
  • File Format: Markdown with YAML frontmatter
  • Test Corpus: Aethelgard (post-apocalyptic fantasy TTRPG, v5.0)

How It Connects

Chronicle is the dog-food project. It uses FractalRecall for semantic search, validates documents the way DocStratum validates llms.txt files, and treats Markdown-with-frontmatter as a structured knowledge system the way everything on this site does. The document-is-database thesis from the blog applies here in its most literal form: each lore entry is a database record, and the Git repository is the database.

It's also the project where the documentation-first philosophy collides with fiction. The spec came before the code. The Markdown files came before the CLI. And the test corpus--a 150+ entry worldbuilding project called Aethelgard--existed for years before Chronicle did, which means the tool was designed around real content with real continuity problems, not around a synthetic test suite.

Where to Find It