Paperthin is a collection of low-level design patterns that coding agents can apply as repeatable checks and actions during software work. It is for people using agents such as Claude Code, Codex, Cursor, or other supported tools, and its catalogue entries package the patterns as skills, an instruction, and a plugin.
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 LilMGenius/paperthin --skill re0-importgit clone --depth 1 https://github.com/LilMGenius/paperthinWrote 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/lilmgenius/paperthin/re0-import)<a href="https://agentmods.dev/skills/lilmgenius/paperthin/re0-import"><img src="https://agentmods.dev/badge/skills/lilmgenius/paperthin/re0-import/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/lilmgenius/paperthin/re0-import"><img src="https://agentmods.dev/badge/skills/lilmgenius/paperthin/re0-import.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.00084 | $0.01694 |
| Opus 5.5 | $0.00034 | $0.00678 |
| Sonnet 5.5 | $0.00017 | $0.00339 |
| Haiku 4.5 | $0.00008 | $0.00169 |
Grade A, and why
re0-import 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 — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Land handed-over material in the document of an existing knowledge base that owns it, by rules read from that base.
Goal
Each claim in the material lands at the tier of an existing base that owns its subject, by an edit to that owning document rather than a new neighbour beside it. Placement follows rules the run read from the target at run time. What cannot be placed with confidence is reported, never guessed: the skill neither researches the subject nor invents a tier.
The human names this skill with the material (any shape) and the target root, and may ask for a dry run. The run returns the claim list, edits inside the target root in each destination's grammar (none on a dry run), and the result block.
The skill is user-invoked because landing material in a base is a deliberate human hand-off. A model with this skill in reach would start filing every passing finding into whatever base is open, writing into documents nobody asked it to touch.
Workflow
Phases 1 to 4 run in order. No destination is named before phase 1 completes, and no byte is written before phase 4; a dry run (phase 5) runs phases 1 to 3 and skips phase 4.
-
Read the map. Find the target's routing documents: the agent-facing map at its root and the map at each tier. Extract each tier's definition with the test that separates it from the others, the ownership rows saying which document owns which subject, and any stated anti-pattern. This is the candidate tier list; a run that skips it is guessing at a structure it never read.
-
Classify. Give the material one of four shapes:
- new information: a subject the target does not carry yet;
- a correction: it contradicts the headline of a live line whose evidence still stands;
- a bare reference: a link or citation with no framing;
- a raw dump: several separable claims in one body.
Split a dump into claims before scoring any destination and route each independently; a claim still carrying two grammars after the split is two claims. Emit the claim list. Material that is one whole item (a skill, module, script or doc section) rather than a set of claims is not a fifth shape: when its fit in the base is in question, call the Skill tool with "scopechk" before placing it, and place it whole only where that verdict allows.
-
Place. For each claim, name the owning document and quote the phase 1 rule that puts it there; a placement with no quoted rule is not a placement. Apply the confidence floor and write nothing below it. Create a new file only when the run can state why no existing tier holds the claim, and emit that reason. When a claim's subject already lives in two or more documents of the base, report the scatter and call the Skill tool with "ssotize"; do not add a third copy. When the human wants a claim checked before it lands, call the Skill tool with "factchk"; this skill itself never researches.
-
Write. Before the first byte changes, run
node scripts/guard.mjs <target-root> <files-to-edit...> [--create <new-file>]... --json(exit 3 when a path is refused): it returns each file's SHA-256 and the refused paths with reasons. Edit each document in the grammar it already uses, per the grammars reference, then emit the result block: Touched (file and pre-edit SHA-256), Placed (claim, destination, quoted rule), Unplaced (claim, rejected candidates, reason each failed), Created (new file, reason no tier holds it). All four fields are written every run, empty ones included. -
Dry run. When the human asks for one, emit the claim list and the result block and edit nothing.
-
Stop. The diff and the result block go to the human, who decides whether the change is committed. Any claim under the confidence floor stays unplaced for the human to route by hand. When the owning document has drifted beyond the one claim being landed, call the Skill tool with "re0" after the import, as a separate pass.
What ships with it
4 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.
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 · 59 lines · 84 tokens per session scan A 197a3246a1a8
re0-import is a skill published in the GitHub repository LilMGenius/paperthin (1,401 stars, last pushed yesterday), licensed MIT. It adds 84 tokens to every session and 1,694 once invoked, about $0.0003 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-11-09.
re0-import compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| re0-importLilMGenius/paperthin | Skill | 1.4k | yesterday | MIT | A | 84 | Claude Code, Codex |
| pdfagentscope-ai/QwenPaw | Skill | 38k | yesterday | Apache-2.0 | A | 95 | Claude Code, Codex |
| officecli-academic-paperiOfficeAI/OfficeCLI | Skill | 33k | 11d ago | Apache-2.0 | A | 141 | Claude Code, Codex |
| officecliiOfficeAI/OfficeCLI | Skill | 33k | 11d ago | Apache-2.0 | A | 56 | Claude Code, Codex |
| huashu-md-to-pdfalchaincyf/huashu-skills | Skill | 2.2k | yesterday | MIT | A | 83 | Claude Code, Codex |
| mxl-decompileNikolay-Shirokov/cc-1c-skills | Skill | 771 | today | MIT | A | 39 | Claude Code |
| adobe-create-pdfs-from-dataadobe/skills | Skill | 322 | yesterday | Apache-2.0 | A | 171 | Claude Code |