Lattice is a deterministic knowledge graph for AI-written code. It ties every line back to the feature it serves, and the requirement that asked for that feature. If you came looking for the HR platform, that's a different Lattice. This one is a tool I'm building in the open, and writing down as I go.
The problem it solves
AI writes code fast. Nothing keeps track of why each line exists, which feature it belongs to, or whether it's still needed once the feature changes. You end up with a codebase nobody can vouch for: plausible, working, and impossible to reason about.
Lattice fixes the bookkeeping. Every artifact is a node, a requirement, a feature, an entry point, a file, a function, and the links between them are recorded facts, not a model's guess. That's the deterministic part. Ask "which code serves this requirement?" and you get an answer you can trust, computed from the graph, not inferred on the spot.
What it gives you
- A traceability matrix. Every requirement maps to the features that satisfy it, and every feature to the code that implements it. Both directions, on demand.
- A real definition of dead code. Code with no path from any entry point (route, CLI command, cron job, queue worker) is dead, provably, not by vibes.
- Governed change. Reversing a decision is a transaction with provenance, not a silent edit. The graph remembers what changed and why.
- Context for machines. The same graph that helps a new hire is what an agent reads before it writes a line.
The series, in order
I'm building Lattice in public, one decision at a time, with the doubts left in. Start at Part 1.
- The Trap of Vibe Coding: Is There a Better Way to Manage AI-Generated Code?
- Constraints Are Free for Machines (I Think)
- Reality Check: 1,900 Files Will Not Annotate Themselves
- Features Say What Code Means. Nothing Says Who Can Reach It.
- Nobody Believes a JSON File
- The Layer I Was Avoiding: Why Does Any of This Exist?
- The Question the Whole Stack Was Built to Ask
- If Constraints Are Free, Which Constraints?
- "Done" Is Not One Thing
- I Changed My Mind on Purpose, to See What Would Break