Welcome, Guest | Browse

Software Factory Archive

← Previous Work All Works Next Work →

Cobra

Rating:
General Audiences
Fandom:
StrongDM Software Factory
Characters:
Jay Taylor Navan Chauhan
Tags:
Agate Cobra Go CLI Framework Status Command
Words:
438
Published:
2025-12-26

Agate was built with Cobra, which meant it was built the way every serious Go CLI was built, which meant Jay felt immediately at home.

Cobra was the framework. The invisible skeleton beneath the skin of every command. agate auto, agate next, agate suggest, agate status—each one a Cobra command, each one registered in a root command, each one with its own flags and argument parsing and help text. Jay had used Cobra before, on smaller projects. He had written Cobra commands for tools that monitored disk usage and tools that converted file formats and tools that nobody used except him at two in the morning during an incident.

The codebase was Go, all the way down. The directory structure was standard: cmd/ for the commands, internal/ for the business logic, main.go at the root. The kind of layout that any Go developer could navigate in their sleep.

Jay's contribution was the status command.

It started as an itch. He would run agate auto, watch it work, and then want to check—without interrupting the process—what phase it was in, what tasks were complete, what files had been generated. He wanted a dashboard. Not a web dashboard, not a TUI dashboard, just a command he could run in a separate terminal that would tell him the state of the world.

agate status

It read the .ai/ directory and printed a summary. Phase: implementation. Sprint: 1. Tasks completed: 3 of 7. Current task: generate integration tests. Files generated: 12. Tests passing: 24 of 24. Time elapsed: 8 minutes.

Below the summary, it listed the relevant files with modification timestamps. The sprint plan. The design documents. The source files generated so far. Everything you'd need to understand where Agate was and what it had produced, in a single terminal screen.

Navan used it constantly. He would split his terminal: Agate running on the left, agate status on the right, refreshed with watch -n5 agate status. A real-time view of agent progress, updated every five seconds, consuming zero additional API tokens because it was just reading files from disk.

"This is my favorite command," Navan told Jay.

"It's the simplest command," Jay said. "All it does is read the filesystem and format the output."

"Exactly. It does one thing, it does it clearly, and it costs nothing. That's what makes it my favorite."

Jay added it to his personal list of things he was proud of. It was a short list. A Go library for converting HTML to plaintext. A Hacker News live feed viewer. And now a status command for an AI agent orchestrator that did nothing more than read files from a directory and print them neatly.

The best tools, he thought, were the ones that made the invisible visible.

Kudos: 58

cobra_fan 2025-12-28

The detail about Jay's personal pride list - html2text, HN live feed, agate status - is such a lovely character beat. Small, useful tools. That's his whole thing.

watch_enthusiast 2025-12-29

watch -n5 agate status is exactly what I would do. Sometimes the simplest monitoring solution is just "read the files and refresh."

← Previous Work All Works Next Work →