Since Andrej Karpathy introduced the term "vibe coding" in February 2025, code generation has become faster, making it increasingly difficult to maintain a clear mental model of a rapidly changing repository.
I think spec could be maintained as a mental map that helps both humans and agents orient themselves in a repository. But many current spec-driven tools fail. They produce almost the natural-language version of the code: field definitions, enums, request and response schemas, function signatures, and other low-level details. It duplicates implementation detail, grows bloated, drifts out of sync, and becomes another artifact the team has to maintain.
A useful spec should sit at the right altitude. It should first be a mental map (so don't organize it as a file tree mirroring your codebase), it captures purpose, invariants, and the reasons behind important decisions.
The hard part is to maintain this map and giving people a surface for it.
I am currently building Spexcode, a tool for spec maintenance and visualization.
Here's its dashboard.
The graph turns specs into navigable concepts.
Each node carries state information, such as its current version, warnings, and evaluation progress.
The graph is dynamic. A working session's avatar hovers over the node it is currently modifying. That activity is derived from the live worktree state, so the same graph shows both the repository's structure and where work is happening right now. It's navigable through keyboard.
It also has session management for coding agents. The Needs You panel shows decisions and reviews that require human attention, while the Running panel shows active agent work.
I am still figuring out what topology the graph should otherwise be. And trying to improve its information disclosure strategy.
I would love to hear what feels clear or confusing when you look at it.



Top comments (0)