# "Users can cancel an order." Six words.

> The hole they left sat in the code for months.

- **Format:** short video, 9 steps, ~51 seconds
- **Topic:** AI agents for planning, business analysis and solution architecture — the requirement "users can cancel an order" ends up enforced in one Flutter screen while the use case accepts any order status, and how a business analyst agent and a solution architect agent move the rule into the domain with an ADR and a hook.
- **Author:** Suthahar Jegatheesan (MSDEVBUILD)
- **Category:** AI · AI
- **Published:** 2026-07-26
- **Tags:** aiagents, softwarearchitecture, flutter, businessanalysis, cleanarchitecture, githubcopilot, aicoding, msdevbuild
- **Canonical URL:** https://blog.msdevbuild.com/shorts/ai-agents-six-words-not-a-spec/

---
## What you'll learn

- Why a one-line requirement hides its hardest question
- Why a business rule in a screen protects only that screen
- How an ADR and a hook make a decision stick

## Understand it one step at a time

### 1. Six words, everyone nods

Login. Orders. Payments. Notifications. Cancel is one line.

### 2. The rule lands in a screen

OrderTrackingState.canCancel: placed or confirmed only.

### 3. The use case does not check

CancelOrder and the repository accept any of the seven states.

### 4. Every other caller

Partner dashboard, a future API, an agent: all go past the screen.

### 5. The analyst asks

Seven states, and one BLOCKING question: who pays once cooking starts?

### 6. A person answers

The agent never invents a business rule. Someone who owns it decides.

### 7. The architect places it

Order.canBeCancelled on the entity, an ADR, and one line in AGENTS.md.

### 8. Every caller meets it

Screen, partner, API and agent all go through the entity.

### 9. Six words are not a spec

Plan the order, list the states, put the rule in the domain.

---

## The takeaway

**Six words are not a spec.**

An analyst agent asks the question. An architect agent puts the answer where every caller meets it.
