A structured markdown syntax for iterating on documents with Claude AI
This guide walks you through your first document iteration with Claude. In 5 minutes, you’ll understand the core workflow.
Create a simple markdown file. For this example, we’ll use a project brief:
# Project Brief
## Overview
We're building a task management app for small teams.
## Features
- Task creation and assignment
- Due dates and reminders
- Team collaboration
Add a %% comment %% anywhere you want feedback:
# Project Brief
## Overview
We're building a task management app for small teams.
%% Is this scope too broad? Should we narrow it? %%
## Features
- Task creation and assignment
- Due dates and reminders
- Team collaboration
Send the file to Claude with a request like:
Claude adds a response below your comment:
# Project Brief
## Overview
We're building a task management app for small teams.
%% Is this scope too broad? Should we narrow it? %%
•%%>The scope is reasonable for an MVP. Consider starting with just
task creation and due dates, then adding collaboration in v2. <%%•
## Features
- Task creation and assignment
- Due dates and reminders
- Team collaboration
Notice:
•%%>response <%%• syntaxMark specific text that needs attention using ==text(TOKEN)==:
## Features
- Task creation and assignment
- ==Due dates and reminders(MVP)==
- Team collaboration
%%(MVP) Should reminders be in v1 or v2? %%
The token (MVP) links the highlight to your comment. Note: token goes INSIDE the highlight.
Add more comments, get more responses. The document becomes a record of the iteration:
%% Is this scope too broad? Should we narrow it? %%
•%%>The scope is reasonable for an MVP. <%%•
%% Agreed, let's keep it focused %%
•%%>Perfect. I'll update the features list to reflect MVP scope. <%%•
When you’re satisfied, ask Claude to clean up:
The markers disappear, leaving clean content:
# Project Brief
## Overview
We're building a task management app for small teams.
## Features
- Task creation and assignment
- Due dates and reminders
%% %%) - Add feedback anywhere•%%>response <%%•) - Claude responds inline==text(TOKEN)==) - Mark specific text