2.3CORE PATH

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.
  1. Numbered lists for items that do have an order. inline code for 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.

Curriculum last updated 2026-04-30