Justin opened a file with a .dot extension and the room went quiet.
It wasn't quiet because the file was impressive. It was quiet because the file was comprehensible. Three people who had spent their careers reading code—parsing syntax, tracing control flow, holding call stacks in their heads like plates on poles—were looking at something they understood instantly.
digraph pipeline {
Nodes were tasks. Edges were flow. The entire AI workflow—from initial requirements gathering to code generation to validation to deployment—was laid out in a directed graph that could be read left to right like a sentence.
"This is Attractor," Justin said. "DOT-based pipeline runner. You define your workflow as a Graphviz directed graph. Each node is a task: an LLM call, a human review step, a conditional branch, a parallel fan-out. The edges define the flow between them."
Navan leaned forward. "So the pipeline is a graph. Literally a graph. Not metaphorically."
"Literally a graph. A DOT file. The same format Graphviz has used since 1991. There's nothing proprietary about the format. It's thirty-four years old."
Jay was reading the node labels. gather_requirements, design_architecture, generate_code, run_scenarios, assess_satisfaction. Each node had attributes: a handler type, a model assignment, a prompt template. The edges had labels too—conditions that determined when flow moved from one node to the next.
"The thing about a graph," Justin said, "is that it's not procedural. It's not a script. You don't read it top to bottom. You read it as a topology. And the runner traverses it based on conditions, not on line numbers."
"So you could rearrange the nodes," Jay said, thinking out loud. "Add new ones. Change the flow. Without rewriting any code."
"Without rewriting anything. You edit the DOT file. The pipeline changes. That's it."
Navan had his notebook open. He was drawing the graph by hand, recreating the topology with boxes and arrows, the way he processed everything—through the physical act of inscription. His version was neater than the DOT syntax. It looked like a circuit diagram.
"This is why you chose DOT," Navan said, not looking up. "Not because it's the best graph format. Because it's the most legible one. A human can read it. An LLM can read it. Graphviz can render it. It serves every audience."
"And it's been stable for three decades," Justin added. "It's not going to change. It's not going to break. The format will outlast every framework in this room."
Jay stared at the file. In his career, he'd read thousands of lines of configuration in YAML, TOML, JSON, HCL. He'd written pipeline definitions in Jenkins, GitHub Actions, CircleCI. None of them had ever looked like what they actually were. This one did. This DOT file looked like a graph because it was a graph.
"Can I see it rendered?" Jay asked.
Justin smiled. "I was hoping you'd ask that."
The observation about DOT being thirty-four years old and stable is the kind of insight that separates real systems thinkers from framework chasers. Build on geology, not weather.