Navan drew it as a circle. Four nodes, four arrows, each pointing to the next. He used a fresh page in his notebook and drew it large, because some ideas needed room to breathe.
Node one: Scenarios. The end-to-end user stories that described how the world should behave.
Node two: Agents. The autonomous workers that read the scenarios and produced code.
Node three: Code. The implementations that the agents generated, untouched by human hands.
Node four: Satisfaction. The probabilistic metric that evaluated how well the code satisfied the scenarios.
And then the arrow from satisfaction back to scenarios. Because when satisfaction was low, the scenarios needed refinement. When satisfaction was high, the scenarios needed to get harder. The output of the loop fed back into the input. Always.
"It's a control system," Navan told Jay. They were eating lunch in the office kitchen, which doubled as a conference room when the actual conference room was occupied by agents running on laptops that nobody needed to supervise. "Negative feedback. The satisfaction metric is the error signal. It tells the system how far the current state is from the desired state, and the system adjusts."
"Like a thermostat," Jay said.
"Like a thermostat. Except the desired temperature keeps changing because we keep raising the bar."
The feedback loop was the factory's heartbeat. It ran continuously. Not in the metaphorical sense that people used when they said a startup was "always iterating." Literally continuously. Twenty-four hours a day. Agents ran scenarios. Scenarios produced satisfaction metrics. Satisfaction metrics informed the next round of scenarios. Round and round.
Justin's contribution was recognizing that the loop needed to be tight. In Software 1.0, the feedback loop was: write code, review code, test code, deploy code, observe production, fix bugs. Weeks. Sometimes months. The signal decayed over time. By the time a bug surfaced in production, the context that created it was gone.
In the factory, the loop was minutes. Write code, run scenarios, compute satisfaction, adjust. The signal was fresh. The context was intact. The correction happened while the problem was still warm.
"Tight feedback loops are why the factory compounds correctness," Justin said at a team meeting. "Every iteration tightens the loop. Better scenarios produce better agents produce better code produce better satisfaction signals produce better scenarios. The compounding happens inside the loop."
Jay thought about his years doing SRE work. Monitoring dashboards. Alert thresholds. Incident postmortems. All of it was feedback. All of it was loops. But the loops were slow and the signals were noisy and the corrections were manual.
The factory's loop was fast and clean and automatic. The same principle, engineered to its logical conclusion.
Navan pinned the diagram to the wall next to his satisfaction landscape drawing. Two artifacts. One circle and one topography. Together they described the factory better than any document could.
The loop kept turning. The factory kept running. The satisfaction metric ticked upward, one iteration at a time, in a circle that had no end.
The control systems framing is exactly right. The factory IS a negative feedback controller with satisfaction as the error signal. Navan's engineering background is showing and I love it.