The Agent Business Analyst: Reducing Vision to Logistics
The "Middle Management" you didn't know you needed
In the world of AI Agents, the Business Analyst is the hero that saves the project from chaos.
We established that the Solution Designer creates the Vision. And the Coding Agent writes the Code.
But there is a massive gaping hole between "I have a vision for a race strategy app" and def calculate_pit_window():.
That hole is filled by the Agent Business Analyst. Their job is to take the beautiful, poetic markdown of the Solution Designer and crush it into the cold, hard logistics of a Task List.
The Bureaucracy Engine
The BA Agent is the most constrained agent in our fleet. It is not allowed to be creative. It is not allowed to invent features. Its System Prompt is essentially a list of "Thou Shalt Nots."
Its primary output is three specific artifacts that govern the rest of the project:
1. The spec.md
The Spec is the bible. If it's not in the Spec, it doesn't exist. The BA takes the high-level design and breaks it down into component-level details.
* Design: "We need a user profile."
* Spec: "The User Profile component will have fields for id (UUID), email (string), and preferences (JSON blob). It will expose a get_profile(id) method."
This level of detail is boring for a human to write. But for an AI, it's essential for maintaining context capabilities over a long project.
2. The rules.yaml
This is one of our secret weapons (which we'll discuss more in Post 8). Instead of hardcoding business logic into Python if statements scattered across the codebase, the BA extracts them into a central data file.
* max_pit_stops: 3
* tire_compounds: [soft, medium, hard]
By forcing logic into data, the BA ensures that changing a rule doesn't require a code refactor—just a config update.
3. The tasklist.md
This is the masterstroke. The BA breaks the entire project down into atomic units of work.
* [ ] Setup Git repo
* [ ] Define atomic component 'Auth'
* [ ] Implement 'Auth' tests
* [ ] Implement 'Auth' logic
The Coding Agent is never allowed to see the whole project. It is only ever allowed to see the current active task.
The "Definition of Done" - or as we like to call it the "Delivery Commitment"
One of the BA's most critical functions is defining "Done."
In a normal chat session, "Done" is when the code stops throwing errors. In our pipeline, "Done" is when the Quality Gates pass.
The BA writes the quality_gates.md file. It sets the standard:
> Task cannot be marked Complete until:
> 1. Unit tests pass.
> 2. MyPy type checking passes.
> 3. Linter score is 10/10.
> 4. No datetime.now() calls exist (Determinism Check).
By explicitly defining these gates before the code is written, the BA gives the Coding Agent a clear target. It’s not guessing what I want; it’s trying to satisfy a boolean logic gate.
Managing Scope Drift
The hardest part of software development is Scope Drift. You start building a skateboard and end up trying to build a Ferrari.
The BA Agent is the gatekeeper. When the Coding Agent discovers a "better way" to do things, it has to ask the BA. The BA checks the intent.md. Does this align with the vision? No? Request Denied.
We saw this happen live. Our Coding Agent tried to add a fancy caching layer to the database. The BA Agent—referencing the architecture_decisions.md—flagged it: "The architecture specifies 'Simple SQLite'. Caching layer introduces unwarranted complexity. Rejected."
It was ruthless. It was efficient. It was beautiful.
Why You Need a Robot Bureaucrat
We often think of AI as a tool for creativity. But its greatest power might be in its ability to be pedantic (finally someone who gets me...).
Humans are bad at consistency. We get tired. We forget to update the documentation. We let small bugs slide.
The Agent Business Analyst doesn't get tired. It doesn't care if the Coding Agent "worked hard" on a feature; if it violates the spec, it goes in the trash.
By inserting this layer of "Robot Bureaucracy" between the dream and the code, we ensured that what we built was actually what we designed. And in the messy world of probabilistic AI coding, that predictability is worth its weight in gold tokens.