Welcome, Guest | Browse

Software Factory Archive

← Previous Work All Works Next Work →

Design Documents

Rating:
General Audiences
Fandom:
StrongDM Software Factory
Characters:
Jay Taylor Navan Chauhan Justin McCarthy
Tags:
Agate Design Architecture Generated Documents
Words:
468
Published:
2025-09-03

Two files. That was the output of the design phase. Two markdown files in .ai/design/, generated by agents, waiting for human eyes.

overview.md and decisions.md.

Jay opened the overview first. He had read a lot of design documents in his career. He had written more than he cared to count. He had sat through design reviews where twenty people argued for two hours about whether a microservice should use gRPC or REST, only to discover six months later that neither choice had mattered because the real problem was the data model. He had a finely calibrated sense for design documents, the way a sommelier has a sense for wine—he could tell within the first paragraph whether the thing was going to be useful or whether it was going to be shelf decoration.

The overview was useful.

It described the system in layers. The input layer: how GOAL.md and the interview responses were parsed and fed into the design process. The core logic: the streaming CSV parser, the configurable output formatter, the flag-based CLI interface. The output layer: how the generated JSON was written, including pretty-printing options and streaming output for large files. Each layer had a clear boundary. Each boundary had a defined interface. The whole thing read like it had been written by someone who had built this kind of tool before and knew where the complexity actually lived.

The decisions document was even more interesting. It was structured as a series of decision records, each with a question, the options considered, the chosen option, and the rationale. Why streaming over buffered: because the GOAL.md didn't specify a maximum file size, and the interview response had mentioned production files exceeding two gigabytes. Why a custom parser instead of encoding/csv: because the standard library's CSV parser didn't handle all the edge cases identified in the interview phase, specifically BOM handling and mixed line endings.

Navan read over Jay's shoulder. "It's citing the interview responses," he said, pointing at a line in the decisions document. "Look—it's referencing the answer to question four as the justification for the streaming architecture."

"Traceability," Jay murmured. "Every design decision is traced back to a human input."

Justin walked past and paused. "How's the design?"

"Surprisingly good," Jay said, and immediately felt self-conscious about the adverb. Why surprisingly? Because he hadn't expected agents to produce coherent architecture? Because he still, on some level, expected the output to be mediocre?

"Take out the word 'surprisingly,'" Justin said gently. "It's good. That's enough."

Navan was already writing a note in his physical notebook—a habit Jay had noticed, the way Navan kept analog records of digital processes. The note read: Design phase output: overview.md + decisions.md. Decisions traced to interview answers. Quality: high. Reviewed in 8 minutes.

Eight minutes to review a design that would have taken a week to write by hand. The math was changing.

Kudos: 68

doc_skeptic 2025-09-05

The traceability angle is what gets me. Every decision linked back to a human answer. That's better documentation hygiene than 90% of the design docs I've seen written by actual architects.

shelf_decoration 2025-09-06

"Take out the word 'surprisingly.' It's good. That's enough." Justin just keeps delivering these quiet lines that hit like trucks.

← Previous Work All Works Next Work →