Researched 9 systems in the KG-RAG + LLM-reasoning space, with actual abstracts, GitHub stars, and arXiv citations: - Microsoft GraphRAG (33,779 stars, arXiv 2404.16130) — global summarization - Cognee (17,843 stars, arXiv 2505.24478) — agent memory, cognitive ontology - LightRAG (36,622 stars, arXiv 2410.05779) — graph-based text indexing - Stanford Generative Agents (arXiv 2304.03442) — memory stream + reflection - IVIE (arXiv 2606.13348) — neuro-symbolic interactive-fiction generator - WikiChat (arXiv 2305.14292) — Wikipedia-grounded, 97.3% factual - TKG methods (TLogic, Chain of History, TGL-LLM) — temporal forecasting - Chain-of-Knowledge (arXiv 2306.06427) — in-prompt structured reasoning - Long Story Generation (arXiv 2508.03137) — KG for long-form narrative Critical findings: - The Lore Engine's 'closed-world fictional ontology' niche is not crowded. No system does time-aware, contradiction-checking, source-attributed reasoning over a fictional world. That's the opening. - BUT: GraphRAG/Cognee/LightRAG are 18-37k-star production systems. The Lore Engine is a design. Maturity gap is the single biggest weakness. - The right move might be: build Lore Engine on top of Cognee, not GraphMCP-Example. Cognee is MIT, production, has paying users, and closes 80% of the substrate gap in 2 weeks of integration work. - The most leveraged next move: 1-week spike to validate the core idea before committing to the 43-day build. 16-comparison.md is the honest assessment. Where the Lore Engine is Worse is a direct list of 10 weaknesses; where it's Better is a direct list of 10 strengths. Six debatable design decisions called out for Kay to push back on.
Lore Engine
A Neo4j-backed world ontology and modular MCP tool surface that lets an LLM reason about a high-fantasy world with historical accuracy, temporal consistency, and macro↔micro association.
Built on top of the existing GraphMCP-Example stack (Neo4j + Redis Streams + Go MCP server), with extensions for the things a world needs that a message archive does not.
v1.1 (current): adds polymorphic DomainEntity extension model, multi-store storage strategy, and a microservice decomposition plan. See 11-extensibility.md, 12-storage-strategy.md, 13-microservice-decomposition.md, 14-examples.md.
Read in this order
| # | Doc | What it covers |
|---|---|---|
| 00 | Overview | Goals, design philosophy, what we inherit vs. what we add |
| 01 | Ontology | Node labels, edge types, properties — the full world model |
| 02 | Time Model | Eras, calendars, temporal validity, "was X true at time T?" |
| 03 | Macro↔Micro Association | How lineage chains, location hierarchies, and faction membership bind micro details to macro context |
| 04 | Consistency Engine | Rules, anachronism detection, contradiction pattern extensions |
| 05 | MCP Tool Catalog | One section per tool — purpose, signature, returns, when to use |
| 06 | Ingestion Pipelines | How to ingest structured lore (timelines, family trees, gazetteers, bestiary) and free prose |
| 07 | Reasoning Harness | LLM prompt patterns + tool-chaining recipes for the most important question types |
| 08 | Architecture | System diagram, data flow, service layout |
| 09 | Roadmap | Phased build plan — MVP first, then layers |
| 10 | Critique | Self-pressure-test: what could break, where this could fail |
| 11 | Extensibility | v1.1 — polymorphic DomainEntity + TypeTemplate model. New domains as YAML, not code. |
| 12 | Storage Strategy | v1.1 — which data goes in Neo4j, Postgres, pgvector, Redis, S3. Why and when. |
| 13 | Microservice Decomposition | v1.1 — split the mcp-server monolith. Macro/micro iteration speeds. |
| 14 | Worked Examples | v1.1 — three end-to-end examples: thieves-guild missions, war campaigns, black-market economy. |
| 15 | Related Work | Survey of GraphRAG, Cognee, LightRAG, Generative Agents, IVIE, WikiChat, TKG methods, CoK. With stars, citations, and direct quotes from abstracts. |
| 16 | Comparison & Critical Thinking | Head-to-head with GraphRAG, Cognee, Generative Agents. Honest assessment of where the Lore Engine is worse. Strategic recommendation. |
The 30-second pitch
A Lore Engine has four jobs, and only four:
- Remember. Capture the world as a typed, temporal, source-attributed graph — not a bag of facts.
- Scope. When the LLM asks about Aldric, it gets Aldric's context — not the world's. When it asks about Aldric-in-340-TA, it gets the right slice of his life.
- Reason. Provide tools that compose:
was_allied_with+at_time+as_far_as= "Were House Vyr and the Crimson Pact allied in 340 TA?" - Verify. Flag anachronisms, contradictions, and missing lineages before the LLM hallucinates around them.
Everything else is implementation detail.
Status
Design phase. No code yet. This repo is the design contract — read it, red-team it, then we build.
The underlying graph infrastructure (Neo4j, Redis, MCP transport) is already production in GraphMCP-Example. The Lore Engine adds ontology, time model, consistency rules, and ~12 new MCP tools on top of that substrate.