All articles
September 27, 20265 min read

How to brief an AI coding agent so it builds the right thing

A coding agent is only as good as its brief. What a good brief contains, what to leave out, and how to check what comes back.

Brief an AI coding agent the way you would brief a senior engineer who joined this morning. Say what outcome you want and why, what is in and out of scope, which part of the product it touches, what it must not change, and how you will know it is done. Most disappointing agent output traces back to a brief that left one of those out.

Why is the brief now the PM's most important document?

More and more code is written by agents, and the people directing them are founders and PMs. The shift is not that PMs learn to code. The shift is that PMs learn to direct experts who are not human: they give context, set constraints, define done and review the result.

An agent is fast, capable and literal. It will build exactly what the brief describes, fill every gap with a plausible guess, and report success. The bottleneck is no longer typing speed. It is the quality of the brief and the rigour of the review.

What goes into a good brief?

Six parts. Each one closes a gap the agent would otherwise fill with a guess.

  1. Outcome. What changes for the user when this ships, in one or two sentences.
  2. Context. Why it matters now, and the decision behind it. An agent that knows the reason makes better small choices.
  3. Scope. What is in, and just as important, what is out.
  4. Location. The part of the product it touches: the screen, the flow, the files if you know them.
  5. Constraints. What must not change, and the patterns to reuse instead of inventing new ones.
  6. Acceptance criteria. Observable statements that are true when the work is done, each one something you can check without reading code.

A brief for a small feature in a habit tracker might read:

Task: Let people pause a streak for up to 7 days
Outcome: a planned break (holiday, illness) no longer resets a streak.
Context: most cancellations mention losing a long streak to a missed week.
In scope: a Pause button on the streak screen; a paused badge.
Out of scope: notifications, changes to how streaks are counted.
Touches: the streak screen and the daily streak check.
Constraints: reuse the existing badge component; no new settings page.
Acceptance criteria:
- Pausing keeps the streak count unchanged for up to 7 days
- Day 8 of a pause ends it and the normal rules apply
- A paused streak shows the paused badge with the days left

It fits on one screen. If yours does not, it is probably two tasks.

What should you leave out of a brief?

  • Decisions you have not made. If you do not know how it should be built, say what it must achieve and what it must not break, and ask the agent to propose.
  • Your whole chat history. Distil it. The agent needs the conclusion, not the path you took to it.
  • Adjectives instead of criteria. "Clean" and "intuitive" cannot be checked. "Takes two taps from the home screen" can.
  • Several unrelated jobs. One brief, one outcome. A brief that does three things gets three half-done things back.

Why do briefs typed into a chat box go wrong?

Because they are written from memory. The reasoning happened days ago on a whiteboard or in a meeting, and the brief is a summary of a summary. The part that falls out is usually the why, and the why is what lets an agent make good small decisions on its own.

The fix is to write the brief next to the thinking that produced it, so the context is one step away when you write it and when you review the result.

How do you check what the agent built?

  • Walk through each acceptance criterion as a user. Open the app and try it. A criterion you cannot check this way was not specific enough.
  • Ask the agent to show its work. Have it list each criterion and say how the change meets it. Gaps show up quickly.
  • Keep a person on the last step. An agent can finish work. Only a person should decide it is done.

How does Fulveo help you brief an agent?

Fulveo keeps the thinking and the plan in one workspace. You work the idea out on a board, turn it into a task with a description and acceptance criteria, and hand it over from there.

Copy as prompt, on any task, writes the task, its description, the files it touches and its acceptance criteria into a brief you paste into any coding agent. Or connect your agent over MCP and it reads the task itself.

For review, the planner's AI-first template ends in a Done column that only a person can move a card into. The agent hands work over to Human review. You decide when it is finished.

Read next

  • What is Fulveo?: the workspace behind the brief.
  • Planner: tasks, acceptance criteria and people-only columns.
  • Pricing: plans and the 7-day trial.

Frequently asked questions

How long should a brief for an AI coding agent be?

Usually under a page. It needs the outcome, the context, the scope, where it lives, the constraints and the acceptance criteria. If it needs much more than that, the task is probably two tasks.

Should I tell the agent how to implement the feature?

Only where you have already decided. Otherwise state the outcome and the constraints, ask the agent to propose an approach, and review the proposal before it builds.

What are acceptance criteria?

Short, observable statements that are true when the work is done, such as "a paused streak shows the days left". Each one should be something you can check by using the product, without reading code.

Does the same brief work in Claude Code, Cursor and Codex?

Yes. A good brief is plain language about the product, not instructions for one tool, so it works in any coding agent.

Do I need to be technical to brief a coding agent?

No. You need to know the product and the outcome you want. Naming the part of the product a task touches helps, and in Fulveo, a connected repository lets the Fulveo Agent find the files for you.

Try it on your own product

Open a workspace and think your next idea through on the canvas, with the Fulveo Agent alongside you. Nothing to connect to get started.