Prompts Are Design Language
Treat prompts as a new form of design specification, not just text sent to AI.
Many developers treat prompts as casual instructions: "ask AI to do it." If the result is weak, they blame the model and return to manual coding.
A better view is that prompts are a design language for agentic work.
From Command to Specification
Weak loop:
Strong loop:
When the result is poor, the question becomes: "What did my specification omit?"
What a Prompt Replaces
| Traditional artifact | Prompt role | Example |
|---|---|---|
| Requirements spec | What to build | "Send email after payment succeeds" |
| Design document | Under what constraints | "Async, three retries, easy to add channels" |
| Coding convention | How it should look | "TypeScript, Result type for errors" |
| Review checklist | What must be satisfied | "Log every error path and include tests" |
| Test spec | How to verify | "Success, retry failure, new channel scenario" |
The prompt does not need to contain everything every time. But the author should know these dimensions exist.
Prompt Maturity
| Level | Name | Example | Result quality |
|---|---|---|---|
| L1 | Imperative | "Build login" | Low; many assumptions |
| L2 | Descriptive | "JWT login with email and password" | Usable baseline |
| L3 | Structured | Context, intent, constraints, validation | High and testable |
| L4 | Systemic | CLAUDE.md + task prompt + pattern library | Consistent across a team |
The biggest jump is L2 to L3
Many developers stop at "I explained enough." Results improve sharply when constraints and validation criteria are explicit.
CICV: Context, Intent, Constraints, Validation
Example
[Context]
Next.js App Router SaaS. Profile image upload. S3 bucket exists. Auth is session based.
[Intent]
Authenticated users upload a profile image. Store it in S3 and update users.avatarUrl.
[Constraints]
- Max 5MB
- image/jpeg, image/png, image/webp only
- UUID file name
- Delete old image if present
- DB must not update if upload fails
- Use presigned URL
[Validation]
- Oversized file returns 400
- Unsupported type returns 400
- Unauthenticated request returns 401
- S3 failure does not write an empty avatar URLThat prompt is a design document. It is also executable instruction.
Team Practice
- Keep reusable prompts in version control.
- Move stable rules into
CLAUDE.md. - Store examples and anti-examples next to the workflow.
- Review prompts that create production code like you review code.
- Treat prompt changes as design changes.
Next
Read Code Review in the AI Era to see how prompts and review criteria connect.