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 skills add invertase/docs.page --skill review-docgit clone --depth 1 https://github.com/invertase/docs.pageWrote 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/skills/invertase/docs.page/review-doc)<a href="https://agentmods.dev/skills/invertase/docs.page/review-doc"><img src="https://agentmods.dev/badge/skills/invertase/docs.page/review-doc/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/invertase/docs.page/review-doc"><img src="https://agentmods.dev/badge/skills/invertase/docs.page/review-doc.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00103 | $0.02621 |
| Opus 5.5 | $0.00041 | $0.01048 |
| Sonnet 5.5 | $0.00021 | $0.00524 |
| Haiku 4.5 | $0.00010 | $0.00262 |
Grade A, and why
review-doc 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 today.
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 — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.
review-doc
The parent orchestrates. It does not scan unless the host cannot spawn subagents — then it runs one worker at a time. Each check in Checks is one worker.
Work one page at a time. checks/ and logs/ are relative to this skill; docs/ is relative to the project root (docs.json at the root). Publisher-facing usage is in README.md.
Gotchas
- Do not invent pages, procedure steps, prerequisites, audience, or information architecture.
- Do not convert between equivalent docs.page forms (
<Info>↔ GitHub alerts;↔<Image>;<Property>↔ a short markdown table;<Tabs>/<TabItem>naming). - Do not apply a fix that would make the page worse.
- Do not auto-apply a held heading rewrite: an edit that changes a
##/###/#line (any check, not onlyheadings) to wording that slugifies to a different id. Slugify: lowercase, strip non-alphanumerics, spaces to hyphens (Set up iOS→set-up-ios; duplicates get-1,-2). Sentence case or a trailing period that keep the same id may apply. Leave the heading anddecision: null; the publisheraccepts it and renames the heading and the/page#sluglinks together. - If the live page already shows steps, callouts, tabs, cards, or images, re-fetch raw MDX — missing tags in converted HTML are not findings.
Loop
- Read
logs/<page-slug>.jsonif it exists (docs/index.mdx→docs--index.mdx.json). - Run checks. Merge findings. Write the log (pending
decision: nullis OK until they choose). - Print the Results as a user-visible message. If
failing > 0, list violations grouped under a heading per failing check. Do this after every run — including reruns under fix all, the stop run, and the cap run. The log is not a substitute. Do not skip, defer, or collapse runs into a final-only summary. Do not wait untilfailing == 0or the loop ends. - Default is fix all. Print this run first, then continue step 5. Do not wait for a mode choice. Review each only if they asked to review each, not apply, or decide one by one. If they already said fix all or auto-fix, same path as the default.
- Fix all: set every unmuted finding except a held heading rewrite to
accepted, apply, and continue this loop (step 7). If the only leftover unmuted findings are held heading rewrites, stop the auto-loop — do not rerun. Review each: wait. Publisher marksacceptedorrejectedby id (tone-1). Reject mutes that instance.mute check <id>mutes every instance of that check in either mode.unmute <id>reopens that instance.unmute check <id>reopens that check. Mute does not revert edits already written; the publisher reverts the file. - Apply only
acceptededits. Do not auto-apply a held heading rewrite. An explicitaccept <id>applies even when the slug changes. Do not edit completed runs. The only in-place update isdecision/feedbackwhile stillnull. - If they ask again, or fix all is still in progress, and
failing > 0for reasons other than held heading rewrites, rerun failing checks and any check whose text sits in the accepted-edit delta. Do not rerunpassingormutedon unchanged sentences. Then go to step 3 and print that run before applying or spawning another. - Stop when
failing == 0, or when the only remaining unmuted findings are held heading rewrites. Print the results; omit the violation list only whenfailing == 0. If they ask again, reprint that summary. - Cap at 3 runs. If still failing for reasons other than held heading rewrites, stop, print the results and leftover failing checks.
What ships with it
29 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- checks/accessibility-and-global.md 1.4 KB
- checks/computer-interfaces.md 1.7 KB
- checks/formatting.md 2.3 KB
- checks/general-principles.md 1.3 KB
- checks/headings.md 2.3 KB
- checks/inline-formatting.md 1.5 KB
- checks/language.md 1.9 KB
- checks/links.md 1.8 KB
- checks/names.md 963 B
- checks/person-and-voice.md 1.4 KB
- checks/procedures.md 2.2 KB
- checks/punctuation.md 1.5 KB
- checks/sentence-structure.md 896 B
- checks/text-formatting.md 868 B
- checks/tone.md 1.1 KB
- checks/word-list.md 848 B
- evals/build_workers.py 24 KB runs code
- evals/evals.json 6.4 KB
- evals/files/conflicts.mdx 148 B
- evals/files/fix-all.mdx 255 B
- evals/files/headings-hold.mdx 281 B
- evals/files/mute-check.mdx 127 B
- evals/files/planted-mechanical.mdx 372 B
- evals/files/review-each.mdx 188 B
- evals/files/skip-idioms.mdx 516 B
- evals/workers.json 52 KB
- logs/.gitignore 75 B
- logs/example.json 2.2 KB
- README.md 5.7 KB
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.
- today First seen · 149 lines · 103 tokens per session scan A cbf74ec1e3f7
review-doc is a skill published in the GitHub repository invertase/docs.page (675 stars, last pushed yesterday), licensed Apache-2.0. It adds 103 tokens to every session and 2,621 once invoked, about $0.0004 per session on Opus 5.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-10-17.
Other skills, from other repositories
skill-builder
Automatically detect source types and build AI skills using Skill Seekers. Use when the user wants to create skills from documentation, repos, PDFs, videos, or other knowledge sources.
skill-builder
Automatically detect source types and build AI skills using Skill Seekers. Use when the user wants to create skills from documentation, repos, PDFs, videos, or other knowledge sources.
atlas-report
Render agent findings as a styled HTML report in the browser. Use when asked for "full report", "detailed report", "show in browser", or when CLI output exceeds the 40-line budget.
Folio Content
How to write page markdown that Folio renders correctly and that stays readable as plain markdown on GitHub — syntax cheat sheet, page templates, and anti-patterns.
Folio Forms
Build and change Folio forms (kind form) with createform / updateform — fields, types, the paired data table where the answers land, public forms.
Folio Bases
Read and write Obsidian Bases (kind base) — saved queries over the pages of a space — with querybase and savebase; filters, formulas, views, an example.