The CLI was called "rocks" for exactly seventeen days.
Nobody remembered who had named it. This was unusual for a team of three. In most organizations, the origin of a code name was buried under layers of Slack threads and lost meeting notes, discoverable only through archaeological excavation of the company wiki. But in a team of three people, the naming of a tool should have been a memorable event. It wasn't. The name had appeared in the main.go file on a Tuesday, attributed to nobody, accepted by everyone, questioned by none.
"Rocks" was fine. It was short. It was easy to type. It conveyed solidity. But it didn't mean anything. It was a placeholder name that had the unfortunate quality of sounding like a real name, which meant nobody felt urgency about changing it.
The rename happened because of a Wikipedia article.
Navan had been reading about dynamical systems on his lunch break. This was normal for Navan. Other people read news articles or social media feeds during lunch. Navan read Wikipedia articles about mathematical concepts, following hyperlinks deeper and deeper until he surfaced forty minutes later knowing more about Lorenz attractors than any reasonable person needed to know about Lorenz attractors.
He stopped on the page for "attractor." The definition was clean: a set of states toward which a system tends to evolve. Fixed-point attractors, limit cycles, strange attractors. The concept mapped perfectly to what the tool did—you defined a goal state, and the agents converged on it through iterative improvement.
"Justin," Navan said, walking into the office with his phone held out like a torch, the Wikipedia article still on screen. "Look at this."
Justin read the article. He read it slowly, the way he read everything—once for comprehension, once for implication. Then he said, "Agate."
"What?"
"A-G from attractor. Layers of order in geological chaos. Have you ever cut an agate open? The banding patterns. Chaos at the micro level, structure at the macro level. That's what the tool does. The agents are chaotic. The output is structured."
Jay, who had been listening from the couch, pulled up the repository in his editor. "So we're renaming."
"We're renaming."
The rename was a find-and-replace across eleven files. rocks became agate. The binary name changed. The help text changed. The README changed. The go module path was already github.com/strongdm/agate—Justin had registered the repository name days earlier, which meant he had been thinking about the rename longer than he had let on.
Jay committed the change. The commit message was five words: Rename CLI from rocks to agate.
Navan went back to his Wikipedia article. He had three more tabs open: limit cycles, phase portraits, and Lyapunov stability. The rabbit hole was deep, and his lunch break was not yet over.
The tool had a name now. A real one. One that meant something.
Justin having already registered the GitHub repo name days before the "spontaneous" rename discussion is such a perfectly Justin detail. The man plans three moves ahead.