Claude-skill-registry create-pdf-fixture
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/create-pdf-fixture" ~/.claude/skills/majiayu000-claude-skill-registry-create-pdf-fixture && rm -rf "$T"
manifest:
skills/data/create-pdf-fixture/SKILL.mdsource content
create-pdf-fixture
Generate complete PDF test fixtures that combine:
- Proper ReportLab tables via
(detectable by Marker/Camelot)create-table - AI-generated images via
(diagrams, decorative elements)create-image - Text content with various formatting challenges
Why This Exists
Creating test PDFs that properly exercise extractors requires:
- Tables built with ReportLab (not raw drawing commands)
- Images that test VLM classification (decorative vs data)
- Edge cases: empty sections, malformed titles, nested structures
This skill orchestrates sibling skills for modular, reusable fixtures.
Quick Start
cd .pi/skills/create-pdf-fixture # Generate the extractor bug reproduction fixture uv run generate.py extractor-bugs --output test.pdf # Generate a simple fixture uv run generate.py simple --output simple_test.pdf # List available presets uv run generate.py list-presets # Verify table detection uv run generate.py verify test.pdf
Presets
| Preset | Description | Tests |
|---|---|---|
| Reproduces known extractor issues | Empty sections, false tables, malformed titles |
| Basic PDF with table and text | Basic extraction |
Sibling Skills Used
| Skill | Purpose |
|---|---|
| Creates ReportLab tables (Marker-detectable) |
| AI-generated images with caching |
Cached images from
create-image/cached_images/:
- Cover illustrationdecorative.png
- Process diagramflowchart.png
- Architecture diagramnetwork_arch.png
Legacy Usage (Still Supported)
# Via wrapper (uses extractor project) ./run.sh --example --name test_fixture ./run.sh --spec content_spec.json --name my_fixture
JSON Spec Format (Legacy)
{ "style": "standard", "sections": [ { "title": "1. Requirements", "level": 1, "content": [ {"type": "text", "text": "This document describes requirements."}, {"type": "table", "columns": ["ID", "Name"], "rows": [["1", "Alice"]]}, {"type": "figure", "description": "Architecture diagram"} ] } ] }
Output
- Cached inextractor_bugs_fixture.pdfcached_fixtures/- Custom output via
flag--output
Dependencies
dependencies = [ "pymupdf>=1.23.0", "reportlab>=4.0.0", "typer>=0.9.0", "pillow>=10.0.0", ]