The Agora A software development team adopts a 'Spec Session' practice where engineers, product owners, and designers align on a shared mental model of a task before any code is written, aiming to prevent misalignment that becomes costly when AI agents ship code quickly. The Athenian agora wasn’t a building. It was an open space where citizens gathered to think in public — argument, trade, philosophy, policy, all happening in the same place at once. Nobody scheduled it. The space was simply there, and showing up was the default. Six posts in, I keep pointing at the same room and never walking into it. I keep calling it the Spec Session. I’ve said it’s where the team aligns before the agent runs. I’ve never once said what actually happens in there. So here’s the room. The whole team gets in it — engineers, whoever carries the product thinking, sometimes a designer. A call works. A shared document works. The format isn’t the point. The team takes one ticket and works it until everyone pictures the same thing when they read it. Not the same words on the page. The same mental model behind them. That’s a higher bar than “the ticket is written.” A ticket can be perfectly clear on paper and still produce three different implementations, because three people filled the gaps three different ways. The Spec Session is where you find that out before the agent does — instead of in review, three hours of generated code later. You’re not writing code in there. You’re not estimating. You’re not grooming a backlog. You’re asking one question: what does done mean here, and does everyone in the room see the same thing when they say it? When the answer is yes, you stop. That’s the whole output. The mechanics are simpler than they sound. Someone presents the ticket — what it is, what it isn’t, what already exists that touches it. Then the room asks questions. Not “how would you build this” — that’s an implementation call, and the agent can make it. The questions that earn their place are the ones about edges and contradictions. What happens when the user does the thing nobody planned for. Does this need to handle the empty case. Is that flow in scope, or are we quietly assuming it’s someone else’s problem. Every time the room disagrees, the session is working. Disagreement means two people were holding different pictures, and you just caught it while it was still cheap. You settle it, write the answer into the spec, move on. Someone has to keep that moving. I wrote last week https://schrottner.at/2026/06/22/The-PO-is-Dead-Long-Live-the-PO.html about a rotating session lead — owns the room for the day, not the product forever — and why the real failure mode is a Spec Session that decays into endless grooming. That risk lives here too. The lead’s job is to land decisions, not to manufacture agreement. A decision with named tradeoffs beats a consensus you had to wait an hour for. And if the team genuinely can’t get in a room, the async version https://schrottner.at/2026/06/18/The-Wrong-End-of-the-Problem.html is a pull request on the spec — same pushback on edges and intent, just in review comments. I won’t relitigate that here. The shape is the same either way: intent first, argued in the open, before anything gets built. Which is the actual point, and the thing I think most teams are missing. It isn’t the ability to align — teams do that constantly. In code review. In incidents at 2am. In the architecture argument that eats a whole afternoon. The skill is already there. What’s missing is the default. The agora worked because showing up was the default. Nobody booked a recurring sync to argue about the grain tax. The space existed, and using it was just what you did. Most teams’ default right now is the opposite: write a ticket, assign it, let whoever picks it up make the calls alone. That was survivable when implementation was slow — you had weeks to notice the misread and course-correct. When the agent ships in an afternoon, that slack is gone. The misalignment ships at the same speed as everything else. So the Spec Session is mostly a way to move the default back to where it used to be — a place the team thinks together before the work starts, not after it’s already wrong. It’s also the thing that makes the agent’s output reviewable at all. Without a shared picture going in, nobody in the room can honestly say whether what came out is right. The room was always available. The only question is whether you walk into it before the agent runs, or after.