Navan had worked with product managers before. Good ones. The kind who could distill a stakeholder's rambling forty-minute monologue into three bullet points and a user story. The kind who asked follow-up questions that made you realize you didn't actually understand your own feature request.
The interview file was better.
He opened .ai/interview.md after Agate's first pass and found twelve questions. Not generic questions. Not the kind of boilerplate you'd find in a project intake template. These were questions that had clearly been generated by something that had read his GOAL.md carefully and thought about what was missing.
The goal had been straightforward: a Go library for parsing and validating Gopher protocol selectors. Navan's personal territory, his comfort zone, the thing he'd been building in Swift for years with iGopherBrowser. But the questions probed at assumptions he hadn't realized he was making.
Question 3: Should the parser support Gopher+ extensions, or only the original RFC 1436 protocol?
Good question. He'd assumed RFC 1436 only, but he hadn't said so.
Question 7: The goal specifies validation but does not specify the behavior on invalid input. Should the parser return an error, attempt best-effort parsing, or both via a configurable strict/lenient mode?
Excellent question. The kind of question that, if left unanswered, would surface as a bug three months after deployment.
Question 11: Several Gopher item types (binary file, redundant server, telnet session) are effectively deprecated in modern usage. Should the parser recognize but warn on these types, reject them, or treat them identically to active types?
Navan actually laughed. He had spent two years debating this exact question with himself while building the Swift library. The agent had identified the ambiguity in a single pass of his three-sentence goal description.
He answered each question carefully, writing his responses directly below the questions in the markdown file. It felt like a conversation, albeit an asynchronous one. A conversation with something that had no ego, no pet theories, no agenda other than understanding what you actually wanted.
When he was done, he called Jay over. "Look at these questions."
Jay read through them, scrolling slowly. His eyebrows rose at question seven. They rose higher at question eleven. By question twelve—a question about whether the library should expose its internal state machine for debugging purposes—he was shaking his head.
"These are better than any PM I've worked with," Jay said. It wasn't a compliment to the machine so much as an observation about the state of product management in the software industry.
"It's not smarter than a good PM," Navan said, closing the file. "It's more thorough. It doesn't get tired. It doesn't skip questions because the meeting is running long. It doesn't assume it knows what you mean."
He ran Agate again. The design phase began immediately, built on the foundation of twelve questions answered honestly.
No ambiguity survived the interview.
Navan building a Go Gopher protocol parser using an AI agent after years of building it in Swift is the most beautiful form of cross-pollination.