Write requirements

Start with the business outcome, then add rules and examples. Let your AI Agent read the project before proposing filenames, APIs, and implementation details.

Start with one concrete interaction

“Build an order system” leaves too much open: fields, editing rules, and the definition of done. A smaller first round gives you something you can inspect.

Look back at the requirement in your first feature. It states the entry point (an order list opened from the menu), the data (order number, customer name, amount), the operations (create and edit), the limits (no negative amounts, unique order numbers), the scope (no approvals or notifications yet), and the completion criteria (data remains after refreshing). That leaves your AI Agent room to follow project conventions and gives you something concrete to check. Write new requirements along the same lines.

Clarify rules that change behavior

You do not need a long specification immediately. Include details that affect the result:

InformationOrder example
Who actsStaff create orders; managers approve them
What the data meansAmounts use currency units with two decimals; each order belongs to a customer
What is allowedDrafts can be edited; approved amounts cannot
What is visibleStaff can see only their own orders
How to verifyAnother staff account cannot see orders outside its scope

“Own orders” might mean creator, assignee, or department. Ask your AI Agent to list unresolved questions and clarify them before implementation.

Give a valid and an invalid example

ORD-001 for customer 青禾商贸 with amount 1280 should save.
Creating ORD-001 again should report a duplicate without adding a second row.
An amount of -1 should be rejected with a clear explanation.

If the interface has specific requirements, add a reference image or describe button and field order. Otherwise, ask your AI Agent to follow the existing application style.

Explain what an update must preserve

The order list already supports creating and editing.
Only add search by customer name this time; preserve existing fields, navigation, and saving.
Clearing search should show all orders the current user may access.
Recheck creation and editing afterward.

Describing the current state controls scope better than resending the entire original specification.

Ask for verification results

Add this to the request:

Report changed files, checks actually run, and their results.
List anything not verified separately. Explain failures rather than skipping them.

Then review the output. For larger requests, break the feature down first.