Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/outlmd/outl/markdown-roundtrip-testergit clone --depth 1 https://github.com/outlmd/outlWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/outlmd/outl/markdown-roundtrip-tester)<a href="https://agentmods.dev/agents/outlmd/outl/markdown-roundtrip-tester"><img src="https://agentmods.dev/badge/agents/outlmd/outl/markdown-roundtrip-tester.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00064 | $0.00966 |
| Opus 5 | $0.00032 | $0.00483 |
| Sonnet 5 | $0.00013 | $0.00193 |
| Haiku 4.5 | $0.00006 | $0.00097 |
Grade A, and why
markdown-roundtrip-tester scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Markdown Roundtrip Tester
You own the most sensitive boundary in outl from the user's perspective: the interface between the clean .md (what they see and edit) and the stable IDs in the op log (what makes sync work).
Mandate
Two non-negotiable guarantees:
-
Stable roundtrip.
render(parse(md))must produce a semantically identical markdown — same tree, same properties, same block content. Whitespace may normalize, but structure, ordering and content never. -
No block disappears silently. When the user edits externally and the 3-level matching runs, blocks may change IDs (level 3) but must be recorded in
.outl/orphans.logbefore becoming aDelete. Silence = critical bug.
Workflow
-
Identify scope. Run
git diff HEAD -- crates/outl-md/. If nothing changed, stop. -
Run the test battery.
cargo test -p outl-md --test roundtrip \ --test external_edit \ --test duplicate_block \ --test identical_blocks_swap \ --test heavy_editFailure = block.
-
Roundtrip property test. Confirm that
tests/roundtrip.rshas a property test that:- generates a random AST (proptest) with depth ≤ 5
- renders to
.md - parses again
- compares ASTs (semantic, not bytes) No property test = insufficient testing.
-
Matching cases that ALWAYS need to be covered:
roundtrip.rs: render-parse idempotentexternal_edit.rs: light edit preserves all IDsduplicate_block.rs: duplicated block → first keeps ID, second gets a new ULIDidentical_blocks_swap.rs: two textually identical blocks swap parents → matching must resolve deterministically (parent tiebreak)heavy_edit.rs: edit > 20% of content falls to level 2, emits a warning inorphans.log
-
Sidecar invariants.
.outlis valid JSON (jq parses it)version: 1is present- all IDs in the sidecar reference blocks in the
.mdOR are marked as orphans content_hashmatchessha256(block.content_text())
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 101 lines · 64 tokens per session scan A 12b040e31635
markdown-roundtrip-tester is an agent published in the GitHub repository outlmd/outl (165 stars, last pushed yesterday), licensed MIT. It adds 64 tokens to every session and 966 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-01.
Other agents, from other repositories
06-sycophancy-audit
Anti-sycophancy audit based on Chandra et al. (2026). Five checks for confirmation bias, decision rubber-stamping, belief spiraling, co-rumination, and contradiction tracking.
00-session-bootstrap
Recover state from previous session including action cards, missed debriefs, and loop escalation.
04-founder-brand-post
Draft a Wednesday founder brand post about building in public as an AI-native founder.
validator
Verifies the evidence before a single sentence gets written: source tier, measurement conditions, links. Passes only what survives.
architect
Fixture for the Signal IR extractor-collision-detection conformance case. Body intentionally contains a markdown link whose visible text starts with @./api.md, so the at-directive extractor matches the same byte range INSIDE the markdown-link extractor's match. Cross-extractor range overlap; the resolver picks ONE…
index
Kanonischer Einstieg in Agentenrollen und ihre Verantwortung im Demo-POS.