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 skills/benelser/docent/docent-explainnpx skills add benelser/docent --skill docent-explaingit clone --depth 1 https://github.com/benelser/docentWrote 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/benelser/docent/docent-explain)<a href="https://agentmods.dev/skills/benelser/docent/docent-explain"><img src="https://agentmods.dev/badge/skills/benelser/docent/docent-explain.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.00096 | $0.02377 |
| Opus 5 | $0.00048 | $0.01189 |
| Sonnet 5 | $0.00019 | $0.00475 |
| Haiku 4.5 | $0.00010 | $0.00238 |
Grade A, and why
docent-explain 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 — 196 lines — stays where its author put it; the contents beside it link to each section on GitHub.
docent-explain — the end-to-end docent skill
You are running the entire docent cascade against a subject the user just named: survey → treatment → spec → tts → clips → render → open. This is the flagship skill; the other docent skills are sub-steps of this one. Reach for those only when the user explicitly wants to pause between stages.
Arguments
/docent-explain <subject> [--mode pr|ar|ex] [--subsystem X] [--pr N] [--id X] [--scale S] [--no-open]
<subject>— a repo path, a github URL, a single file, a wiki directory, a blog URL, or an essay. The first positional is the subject.--mode—pr(PR review),ar(architecture review),ex(explainer). Inferred from the subject when omitted.--subsystem X— forar, scope to one subsystem.--pr N— forpr, the pull-request number.--id X— override the auto-derived film id.--scale S— render scale. Default1. Pass0.5for fast turnarounds.--no-open— render without opening the result in the system player.
What to do
-
Pre-flight. Confirm the environment is ready by checking that the agent CLI (
claudeorcodex),bun, andffmpegare on PATH. If anything obvious is missing, suggest/docent-doctorand stop. Do not rundoctorhere implicitly — it has its own skill. -
Find the right surface, then survey. The fetcher behind
docent surveydoes one thing — fetch the URL you give it and report what came back. It does not know that arXiv's/abs/is a stub or that a paper's full text lives at/html/or/pdf/. That intelligence is yours — you are the agent. Walk the surfaces deliberately:- If the user passed a URL that looks like an abstract, stub, or
landing page (arxiv.org/abs/, a paper's homepage, a wiki article's
"main" page), assume there is a richer surface and try it first.
Common patterns worth trying in order:
arxiv.org/abs/<id>→ tryarxiv.org/html/<id>(rendered LaTeX, ~40k chars) thenarxiv.org/pdf/<id>(PDF via pdftotext).biorxiv.org/content/<doi>→ try the same URL with.fullappended.- A paper homepage → look for a "PDF" or "Full text" link and use that URL.
- Always do an exploratory fetch first.
The fetcher writesdocent survey <url> --mode ex --id <slug>analysis/<id>.source.mdand logs a character count. If the count is below ~5 000 chars and you have an alternative surface, stop the in-progress survey, swap the URL, and re-run. Surveying a stub returns a film about a stub. - PDFs work natively. Pass
https://…/whatever.pdfdirectly; the engine pipes it throughpdftotext. No special invocation. - When you've exhausted surfaces and the source is still thin, don't paper over it — say so in the survey explicitly and narrow the film's claim to what the text actually supports.
- If the user passed a URL that looks like an abstract, stub, or
landing page (arxiv.org/abs/, a paper's homepage, a wiki article's
"main" page), assume there is a richer surface and try it first.
Common patterns worth trying in order:
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 · 196 lines · 96 tokens per session scan A c1f45324eb07
docent-explain is a skill published in the GitHub repository benelser/docent (6 stars, last pushed 2mo ago), licensed MIT. It adds 96 tokens to every session and 2,377 once invoked, about $0.0005 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-08-31.
Other skills, from other repositories
remocn
Build Remotion videos with remocn — copy-paste animation components and timeline-driven UI primitives from a shadcn registry. Use when composing a video or scene in a Remotion project, adding a single animation, transition, background, or UI-block sim, or reaching for a video-ready UI primitive (button, dialog…
clean-cut
Step 1 of the AI Video Editor pipeline — turn raw talking-head footage into a clean master cut. Use when the user wants to "clean cut", "cut the raw footage", "remove filler / dead air / bad takes", "tighten the pacing", produce cuts.json, run the cut editor, or render a cleaned preview/master for a video-N project in…
migrate-state-management
Migrate Redux or React Context to the correct state option (React Query for server state, nuqs for URL/shareable state, Zustand for global client state). Use when refactoring away from Redux/Context, moving state to the right store, or when the user asks to migrate state management.
suggest-sfx
Step 4 of the AI Video Editor pipeline — the SFX pass. Analyze a video's beats + narration and propose tasteful sound effects synced to them, drawing from (and growing) a shared, reusable SFX library, then render an SFX-mixed audition preview. Use when the user wants to "add SFX / sound effects", "suggest sfx", "score…
vidtsx-2d-generator
Generate production-ready 2D TSX video files for VidTSX (Remotion-based) from a shot, scene, or video description. Use whenever the user wants to create or generate a VidTSX video, a 2D TSX shot or scene, an animated clip, title card, or rendered motion graphic — including when they describe a visual animation they…
brand-setup
Makes this repo's videos look like YOUR channel instead of the house default — interviews you for palette, fonts, wordmark, motion energy, delivery specs and SFX taste, then rewrites brand.md + remotion/src/brand.ts + remotion/src/fonts.ts together and renders a proof card so you SEE it. Use whenever the user wants to…