projects

CodeForge

A local-first tool that reads a repository into an architecture you can see and argue with. System design first, visual by nature, and teaching as a consequence of both rather than a feature bolted on beside them.

CodeForge reads a repository and gives you back its architecture — services, modules, datastores, topics, and the edges between them — as something you can look at rather than something you have to hold in your head. It runs on your machine, against your code, with whatever model you point it at. On its own tree it currently resolves 1,086 nodes and 2,901 edges in about five seconds.

I built it because I could not read a large system quickly and I did not want to keep pretending otherwise.

What it is for, in order

System design comes first. The thing I actually want is to be handed an unfamiliar repository and understand its shape in minutes — what talks to what, where the cycles are, what breaks if one service moves. That is the job.

Visual is not a feature, it is the medium. An architecture described in prose is a list you have to reassemble. The same architecture drawn is a thing you can point at. Every node carries a kind — service, module, datastore, topic, agent, entry — and the kinds are differentiated without relying on colour, because a diagram that only works for people who see hue the way I do is a diagram that does not work.

Teaching falls out of the first two. This is the part I was slowest to understand. Explaining a system to a person and designing one are the same skill pointed in different directions: in both cases you are installing a structure in someone’s head and checking whether it took. So Teach mode is not a third product. It is what you get once system design is locked down in enough formats that you can re-order it for a learner — take a concept, draw exactly one picture of it, ask a real comprehension question, withhold the answer until they commit, and reveal it next turn whether they answered or not.

The two loops it has to pass

The engineer’s loop. A systems or security engineer is handed a repository they did not write. They run CodeForge locally, get the whole thing broken down visually, and then argue with it — asking what depends on this, what happens if I remove that — against a model that can see the same graph they can.

The learner’s loop. Someone who wants to understand a subject rather than a codebase asks what machine learning is, and gets a visual explanation on the canvas: the architecture drawn, part by part, with a question in the middle that finds out whether it landed.

Neither loop is finished. I am writing them down because a loop you have named is one you can fail publicly.

What I got wrong, measured

Three features I was confident about did not survive contact with a measurement, and the write-ups are worth more than the features would have been.

A carried list of file names, handed from one turn to the next so a follow-up question has something to point at, was never used. Fifteen informative runs — the block moved to three positions, pointed at directly, and finally instructed outright — and the model named none of the three files only that list could have supplied. The list it was told to use.

A chart tool the model could call whenever a picture would help was proposed zero times across twelve turns. Reachable, documented, never reached for. The picture that answered its own question.

Deleting 2,456 tokens of tool instructions made the model call its tools fifteen times more often — the opposite of what anyone proposed, and it does not transfer to the tier that matters. The tokens that were not inert.

The honest summary of those three is that two provisions the model ignores, and one intervention that lands on the wrong tier. I would rather have that on a page than shipped quietly.

Where it is now

Design mode landed recently and took three attempts, because the capability was already built and simply unreachable: the prompt that says help the user design a system from scratch existed, and the command line hardcoded it off. Turning it on was not enough either — two lines of the same prompt disagreed, one ordering a clarifying question and one forbidding it, and the model correctly obeyed the wrong one. It now proposes an architecture instead of asking which size you would like.

Related reading: Architecture as a graph for how the scan works, and What it took to show one chart to a person for how much has to be right before a single picture reaches a screen.