Andrej Karpathy formulated four behavioral rules against typical errors of an LLM agent when writing code:
Think before writing code. Simplicity first. Surgical change. Goal-driven execution — up to a verifiable criterion.
The diagnosis is accurate. But all four rules are addressed to the same process, which writes the code: it is asked to watch itself. In Forma this is exactly what is forbidden by the first item: a node does not check itself.
One concern — one node
Protocol does not replace these rules. It takes the same four concerns and assigns each to a separate node that has another’s result in front of it:
| Rule | Node | How |
|---|---|---|
| Simplicity first | Spec | the executor receives an already sliced form rather than constraining itself |
| Think before writing | Kit | thinking is done by the one who equips the executor in advance: role, skill, tool, access, data, model |
| Surgical change | Run | acts on the sign, and work beyond what was set is the same failure as unfinished work |
| Goal and verification to the end | Intent | holds the image and checks another’s result, not its own |
Karpathy has no fifth line. Core reads the trend across cycles and balances the load of the whole chain.
Verified by whom?
The rule “loop until verified” does not say by whom it is verified. In a single agent, “verified” inevitably means “I decided for myself that I got there.” In Forma, the node that did not execute does the verifying.
Not only roles, but also tools
Each node has its own, literally specified set of tools. At Spec and Core there is neither Bash, nor MCP — only reading and writing of files. A tool that changes the product is given only to Run, and only for the duration of its own task. The rule “don’t touch what is not needed” holds here not by the agent’s decision, but because three of the five nodes physically have no means to break it.




Comments