A structured markdown syntax for iterating on documents with Claude AI
When iteration is complete, you’ll want to remove all markers and publish clean content. The skill provides two cleanup approaches.
Ask Claude to clean the entire document:
Claude will:
%% comments, •%%> responses, == highlights, and tokens%% WIP %% sections (warns if found)%%!CLEANUP!%%For documents where some sections are finalized while others are still in progress, use the cleanup marker:
# Finalized Introduction
This section is complete and ready.
%%!CLEANUP!%%
# Draft Details %% WIP %%
==Still working(TODO)== on this part.
%% Need to add more examples %%
The %%!CLEANUP!%% marker defines a cleanup zone from the start of the document to the marker position.
Scope:
When Claude encounters %%!CLEANUP!%%:
Scans the cleanup zone (start → marker)
Warns about WIP blockers (if any in cleanup zone)
⚠️ Warning: Found WIP section(s) in cleanup zone: [section names]
These are still in progress. Continue with cleanup? (yes/no)
Asks for confirmation
Found %%!CLEANUP!%% at line X
Ready to clean X comments, Y notes, Z tokens from start → line X? (yes/no)
Executes cleanup (after explicit “yes”)
%%!CLEANUP!%% marker itselfBefore cleanup:
# API Reference
The endpoint accepts POST requests.
%% Should we mention rate limits here? %%
•%%>Good idea - added a note about the 100 req/min limit. <%%•
Rate limited to 100 requests per minute.
•%%> NOTE: Reviewed by API team on Dec 10 <%%•
%%!CLEANUP!%%
# Implementation Notes %% WIP %%
==Need to verify(CHECK)== the rate limits.
%% Ask team about caching strategy %%
After cleanup:
# API Reference
The endpoint accepts POST requests.
Rate limited to 100 requests per minute.
# Implementation Notes %% WIP %%
==Need to verify(CHECK)== the rate limits.
%% Ask team about caching strategy %%
The API Reference section is clean and publishable, while Implementation Notes retains all its iteration markers for continued work.
What gets removed:
%% comments %% (user comments)•%%> responses <%%• (Claude responses)==highlights(TOKEN)== → keeps text, removes markup%% WIP %% markers%%!CLEANUP!%% markerWhat stays:
Markers inside fenced code blocks are ignored during cleanup.
This is intentional - documentation about the syntax needs to show examples:
```markdown
%% This is an example comment %%
==example text(TOKEN)==
```
The markers inside the code fence above are not real iteration markers - they’re documentation examples. Cleanup only affects markers in the actual document content, not in code blocks.
This applies to:
```)` `)