DEV Community

Yassine Kaibi
Yassine Kaibi

Posted on • Edited on • Originally published at yassinekaibi.hashnode.dev

You joined a codebase with a million lines of code. Nobody can tell you what any of it does.

Update (June 2026): This project has been renamed from Lore to Veridikt. Shortly after I published this, Epic Games released an open-source tool also called Lore, so I moved to a name I can own. The content below still applies. The project now lives here: https://github.com/Veridikt/Veridikt

You joined a company with a million lines of code, and nobody can tell you what any of it actually does.

You open a file. A function reads from three places, writes to two, fires an event somewhere. A comment says "this updates the ledger." Does it still? Is that comment from this year or 2019? Who owns it? What breaks if you touch it? Every new open-source contributor hits the same wall: the code is the truth but illegible at scale, and the docs that are legible can't be trusted.

We have linters for style, type checkers for types, tests for behavior. We have nothing that tells you what code does in the grander scheme, and proves the explanation is still true.

So I built Lore.

Lore reads your source two ways at once. The what: functions, calls, the state each one reads and writes, extracted statically and true by construction. The why: lightweight @lore blocks in your comments carrying purpose, owner, and effect claims like affects: Payment.ledger.

Then you can just ask. "What writes to the ledger?" "What does this function touch?" "What reaches the payment service?" Lore answers from the graph, not from a comment someone hoped was accurate.

You can see it too: export any slice to Graphviz, focus on one node, set the depth. The mental map a newcomer builds over months, on day one.

And it stays honest. Every claim is reconciled against the real code and labeled Verified, Unverified, Contradicted, or Unverifiable. A Contradicted claim fails CI like a failing test. Declare affects: Payment.ledger, then delete the line that writes the ledger? The build goes red. Comment and code now police each other.

The rule underneath all of it: Lore never presents a guess as a fact. If it can't verify a claim, it says so. "Unverifiable" is an honest answer, not a silent pass.

Works today on Python, TypeScript, Rust, Go, and Java. Phase 1 is feature-complete and open source.

If you've onboarded onto a big codebase recently: what's the one question you wished the code could just answer?

Top comments (0)