Skip to main content

create-pdf-fixture

Create complete PDF test fixtures combining ReportLab tables and AI-generated images. Orchestrates create-table and create-image skills. Creates PDFs designed to test/expose extractor bugs.

Source facts

Repository
grahama1970/agent-stack-public
Last source activity
September 24, 2026 at 15:51
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
create-pdf-fixture
description
Create complete PDF test fixtures combining ReportLab tables and AI-generated images. Orchestrates create-table and create-image skills. Creates PDFs designed to test/expose extractor bugs.
allowed-tools
Bash, Read, Write
triggers
["create pdf fixture","create test pdf","generate pdf fixture","make test pdf","pdf for testing","extractor test fixture","bug reproduction pdf"]
metadata
{"short-description":"Create PDF test fixtures (tables + images)"}
provides
["create-pdf-fixture"]
composes
["task-monitor","agentic-evals"]
disciplines
["extraction","evaluation-quality"]
# create-pdf-fixture Generate complete PDF test fixtures that combine: - **Proper ReportLab tables** via `create-table` (detectable by Marker/Camelot) - **AI-generated images** via `create-image` (diagrams, decorative elements) - **Text content** with various formatting challenges ## Why This Exists Creating test PDFs that properly exercise extractors requires: 1. Tables built with ReportLab (not raw drawing commands) 2. Images that test VLM classification (decorative vs data) 3. Edge cases: empty sections, malformed titles, nested structures This skill orchestrates sibling skills for modular, reusable fixtures. ## Quick Start ```bash 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 | |--------|-------------|-------| | `extractor-bugs` | Reproduces known extractor issues | Empty sections, false tables, malformed titles | | `simple` | Basic PDF with table and text | Basic extraction | ## Sibling Skills Used | Skill | Purpose | |-------|---------| | `create-table` | Creates ReportLab tables (Marker-detectable) | | `create-image` | AI-generated images with caching | Cached images from `create-image/cached_images/`: - `decorative.png` - Cover illustration - `flowchart.png` - Process diagram - `network_arch.png` - Architecture diagram ## Legacy Usage (Still Supported) ```bash # Via wrapper (uses extractor project) ./run.sh --example --name test_fixture ./run.sh --spec content_spec.json --name my_fixture ``` ## JSON Spec Format (Legacy) ```json { "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 - `extractor_bugs_fixture.pdf` - Cached in `cached_fixtures/` - Custom output via `--output` flag ## Dependencies ```toml dependencies = [ "pymupdf>=1.23.0", "reportlab>=4.0.0", "typer>=0.9.0", "pillow>=10.0.0", ] ```
View on GitHub