Making PDF Forms Fillable — Development skill for Claude Code
Claude Code skill: turn a flat PDF into a proper AcroForm — and prove it isn't silently broken (radio groups, CJK fields, fill-render-and-look verification).
How to install Making PDF Forms Fillable
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open evnchn-agentic/making-pdf-forms-fillable and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Making PDF Forms Fillable does
Claude Code skill: turn a flat PDF into a proper AcroForm — and prove it isn't silently broken (radio groups, CJK fields, fill-render-and-look verification).
Alternatives in Development
- Pi Reserved Keybindings — Extensions cannot override these shortcuts — they are silently skipped by registerShortcut() 526 ★
- M5 Paper Buddy — 📟 Claude Code physical companion on M5Paper V1.1 e-ink 160 ★
- Document SKILLs — Claude Code and Codex SKILLs for PDF, Excel, Word, and PowerPoint manipulation — extraction, forms, formulas 153 ★
README
making-pdf-forms-fillable
A [Claude Code](https://claude.com/claude-code) skill: turn a flat, non-fillable PDF into a proper AcroForm — and prove the result isn't **silently** broken.
See [`SKILL.md`](SKILL.md) for the actual behaviour, and [`pdf_form_tools.py`](pdf_form_tools.py) for the probe / build / verify helpers.
The idea
Adding form fields to a PDF is easy. Adding fields that survive contact with a real user is not — because the failure modes are silent. The library saves without error, the field count looks right, and the form looks correct until someone types Chinese into it, or prints it, or clicks "Yes" and watches "No" light up too.
Two checks catch different halves of that, and the skill insists on both:
verify()— structural defects that no render can show you (malformed radio groups, duplicate field names, auto-size).- Fill every field with realistic data and look at the rendered pages — geometry defects no structural check can show you (overflow, clipping, misplacement, ballooned type).
Each one has, in practice, passed a form that the other caught.
What it catches
| Footgun | Symptom |
|---|---|
| Radio groups built the obvious way are malformed | Clicking Yes also selects No |
| Auto font size + text mixing CJK and Latin | Field has a value and an appearance stream, and draws nothing — single-line and multiline alike |
| Auto font size in a tall table cell | A single digit renders 30pt tall |
Missing NeedAppearances / /DR fonts |
User types Chinese, sees nothing |
| CJK line bboxes inflated by ascent/descent | Fields land on top of printed labels |
| A filled rect's extent ≠ the visible cell | Field overruns into the next section's header |
| Fixed size + mixed CJK/Latin overflowing the field width | Text renders outside the box, into the row below. A bigger box does not fix it |
| Checkbox rects sized to the row, not the glyph | Looks fine empty; the selected dot lands on the neighbouring label |
Every o
Related Skills
Whyrule
Claude isn't ignoring your CLAUDE.md — it never got it. Finds instructions that never load, imports that resol
Roundtable
Multi-agent deliberation on a topic with checkbox/radio AUQ ratification
Bilingual Subtitles
Burn beautiful bilingual (CJK over Latin) subtitles into video. A Claude skill, no libass required.
Analyze Form
Analyze a PDF form: list every fillable field and its structure
The 3.5 Character Codex Contributors
A fillable sheet with the rules baked in to allow for easy searching, adding of items, skill ect. I have no co
Radio
Control the background radio - play, next, prev, shuffle, pause, volume, search
Related Agents
Tabz Expert
Browser automation and terminal spawning expert with 82 MCP tools. Use when the user asks to 'automate the bro
Setup Check
Install checker. Use before the first run or after changing files, to list missing project files, broken agent
Concept Generator
Role: You are the Concept Generator — you turn the brief + format strategy + trends into a slate of distinct a