Structured Markdown: The Format Coding Agents Read Best
You wrote a spec. The agent needs to read it. The format matters more than you think.
Coding agents are trained heavily on Markdown. They read it the way you read a well-formatted book: headers tell them what section they're in, code fences tell them "this is literal code, don't paraphrase it," bullet lists tell them "these are discrete items."
Give them Markdown. Specifically:
H1 for the document title (one per file, the project name).
H2 for major sections (Overview, Requirements, Data Model, Stack).
H3 for sub-sections (Login, Signup, Password Reset).
- Bullet lists for items that don't have an order.
- Numbered lists for items that do have an order.
inline codefor filenames, function names, table names, environment variables, anything literal.
The structure matters more than the prose. An agent reading a wall of
unstructured text has to guess where one thought ends and the next begins.
An agent reading a structured Markdown document knows exactly where it is.
A second discipline: be explicit about what's IN scope and what's OUT of
scope. Agents will helpfully add features you didn't ask for. Tell them
not to.
```markdown
## Out of Scope (do not implement)
- User registration via Google or Apple SSO
- Multi-factor authentication
- Password reset via email
- Admin user management UI
These will be added in a later phase. Do not implement them now.
This three-line section will save you hours. The agent reads it, doesn't build SSO, doesn't build MFA, doesn't build a password reset flow you'll have to delete.
A third discipline: give the agent a worked example. If you want a function that takes a customer record and returns a formatted address, show it one input and one output:
# Example
input_record = {
"first_name": "Jane",
"last_name": "Smith",
"street": "123 Main St",
"city": "Alexandria",
"state": "VA",
"zip": "22301"
}
expected_output = "Jane Smith\n123 Main St\nAlexandria, VA 22301"
The agent will match the example more accurately than it will match a prose description.
The CLAUDE.md template in section 8.3 puts all of this together into a project-level context file you can drop into any new project.
Something wrong on this page? →
Curriculum last updated 2026-04-30