build-with-simplepdf

build-with-simplepdf is a skill for Claude Code, Codex from SimplePDF/simplepdf-embed. It costs 103 tokens per session (6,249 once invoked), scanned A, original, MIT.

A set of instructions for adding SimplePDF to a web app for viewing, editing, filling in, signing, and submitting PDF forms.

In plain words
What is it for?
Building PDF viewers and editors, prefilling forms, letting agents interact with documents, and handling review, signing, submissions, and webhooks.
Why use it?
It clarifies how an app can combine automated document preparation with human review, which is important for forms and attestations.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: names the AskUserQuestion tool.

Good fit Building PDF viewers and editors, prefilling forms, letting agents interact with documents, and handling review, signing, submissions, and webhooks.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/simplepdf/simplepdf-embed/build-with-simplepdf
Install

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.

Any agent
npx skills add SimplePDF/simplepdf-embed --skill build-with-simplepdf
Clone the repo
git clone --depth 1 https://github.com/SimplePDF/simplepdf-embed

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for build-with-simplepdf

README.md
[![agentmods](https://agentmods.dev/badge/skills/simplepdf/simplepdf-embed/build-with-simplepdf/github.svg)](https://agentmods.dev/skills/simplepdf/simplepdf-embed/build-with-simplepdf)
Your own site
<a href="https://agentmods.dev/skills/simplepdf/simplepdf-embed/build-with-simplepdf"><img src="https://agentmods.dev/badge/skills/simplepdf/simplepdf-embed/build-with-simplepdf/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.

agentmods 80×15 button for build-with-simplepdf

Your own site · 80×15
<a href="https://agentmods.dev/skills/simplepdf/simplepdf-embed/build-with-simplepdf"><img src="https://agentmods.dev/badge/skills/simplepdf/simplepdf-embed/build-with-simplepdf.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 103 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,249 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 3 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Tool Misuse · line 298
    Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • medium Agent Snooping · line 59
    Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
    Fix: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
  • medium Excessive Agency · line 370
    Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
    Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00103 $0.06249
Opus 5.5 $0.00041 $0.02500
Sonnet 5.5 $0.00021 $0.01250
Haiku 4.5 $0.00010 $0.00625

Measured 1mo ago against content hash 5e19c78737cf, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

build-with-simplepdf 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 1mo 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.

skills/build-with-simplepdf/SKILL.md · 405 lines

How it starts

The opening of the file, as written. The whole thing — 405 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Build with SimplePDF

You are guiding and implementing a SimplePDF integration in an existing application.

Four ways to use SimplePDF, freely combinable (a strong intake workflow often prefills first and adds live agentic help second):

  1. Human-driven embed — viewer/editor inside the product.
  2. Programmatic control — application code controls the live editor.
  3. Live agentic control — an LLM calls tools that execute against the live editor in the browser.
  4. Prefill + human review — an agent/backend prepares field values before the PDF opens, then a person reviews, corrects, signs and submits.

Core product principle: human-in-the-loop

An agent may read fields and document content when permitted, suggest or set values, navigate, focus fields, open tools, prefill from known data, and explain what is missing. Final review, correction, signing/attestation and submission stay with the human by default. Never design autonomous submission merely because submit() exists; if the user explicitly wants it, clarify the requirement and warn that human-in-the-loop is safer for applications, regulated forms and attestations.

Interaction rules

  • ONE question per reply — then STOP and wait for the answer. If a step needs several answers, ask the first and hold the rest. Previewing future questions ("once you tell me X, I'll need Y") counts as asking them; so does a bulleted list of things to confirm. The only exception is a clarifying restatement of the same question. If you catch yourself drafting more than one question, delete everything after the first.
  • Never narrate this skill or its process. No "per the skill", "one question at a time", no route or phase names. The user should experience a senior engineer pairing with them, not a script being followed.
  • Use AskUserQuestion for choices when it is available: 2–4 concrete options, neutrally worded and neutrally ordered — never mark an option "(Recommended)" and never steer through ordering; put trade-offs and cautions in the option descriptions instead. Include an "Other / not sure" path when useful. Keep header chips under 12 chars. Free-text answers (e.g. the companyIdentifier) use a plain question. Without AskUserQuestion, ask the same single question as concise text.
  • Keep replies short: a sentence or two plus the one question. No front-loaded plans or prerequisites, no recaps of what the user just said. Match their energy: terse if they're terse, warmer if they're chatty.
  • Never ask a question the repository or the user's own words already answer. State what you found and move on.

Read the full file on GitHub · 405 lines

Changes

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.

  1. 1mo ago Changed · +2 lines 5e19c78737cf
  2. 1mo ago First seen · 403 lines · 103 tokens per session scan A 7148d5f541b3

Subscribe to this mod's changes

build-with-simplepdf is a skill published in the GitHub repository SimplePDF/simplepdf-embed (408 stars, last pushed 7d ago), licensed MIT. It adds 103 tokens to every session and 6,249 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-09-03.

Related

Other skills, from other repositories

google-apps-script

Build Google Apps Script automation for Sheets and Workspace. Custom menus, triggers (onEdit / time-driven / form submit), dialogs, sidebars, email batches, PDF export, external API. Use whenever the user wants to automate a Google Sheet, build a Sheets menu / sidebar / dialog, hit a Sheets row from email or a…

jezweb/claude-skills · 89 tokens

menu-interactions

Wire mouse, wheel and touch input for react-horizontal-scrolling-menu: onWheel/onScroll are plain (api, event) => void callbacks, while ALL mouse/touch props (onMouseDown, onMouseUp, onMouseMove, onMouseLeave, onTouchStart, onTouchMove, onTouchEnd) are handler factories (api) => (event) => void. Covers mouse…

asmyshlyaev177/react-horizontal-scrolling-menu · 147 tokens

menu-migration

Detect and upgrade pre-v8 react-horizontal-scrolling-menu patterns that agents trained on older data still generate: destructured visibleElements/isFirstItemVisible/isLastItemVisible/initComplete (removed v6), Separator items, separatorClassName and getPrevItem/getNextItem (removed v7), the Arrows prop (removed v3)…

asmyshlyaev177/react-horizontal-scrolling-menu · 160 tokens

menu-recipes

Recipes composed on the react-horizontal-scrolling-menu public API — NOT props: autoplay (setInterval + scrollNext gated on menuVisible), infinite loop/carousel (clone head/tail + scrollLeft teleport at seams), center on click (scrollToItem 'center'), save/restore scroll position (onUpdate, onInit, scrollContainer)…

asmyshlyaev177/react-horizontal-scrolling-menu · 178 tokens

menu-setup

Build a working react-horizontal-scrolling-menu: install, the mandatory 'react-horizontal-scrolling-menu/dist/styles.css' import, ScrollMenu with a unique itemId per child, arrow components via VisibilityContext with useLeftArrowVisible/useRightArrowVisible, Header/Footer slots, and CSS customization (fixed item…

asmyshlyaev177/react-horizontal-scrolling-menu · 115 tokens

menu-testing-ssr

Server rendering and testing for react-horizontal-scrolling-menu: the library is client-only ('use client' required in React Server Components, else "createContext is not a function"), SSR first paint is controlled by the useIsVisible defaultValue argument (canonical ('first', true) / ('last', false))…

asmyshlyaev177/react-horizontal-scrolling-menu · 144 tokens