Agent skill

PDF Generation Troubleshooting

by HKUDS in HKUDS/OpenSpace

Systematic fallback workflow for PDF generation through pandoc, reportlab, and fpdf2 with installation verification

MITAuto-check passedDocuments & Office

Install PDF Generation Troubleshooting

skills CLI
$ npx skills add HKUDS/OpenSpace --skill pdf-generation-troubleshooting -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HKUDS/OpenSpace pdf-generation-troubleshooting --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/benchmarks/gdpval/skills/pdf-generation-troubleshooting .claude/skills/pdf-generation-troubleshooting && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pdf-generation-troubleshooting
GitHub stars
7.8k
Token cost
~926 tokens
SKILL.md length
265 words
Files
2
Skills in repo
199
Repo updated
First seen
Licence
MIT

At a glance

Systematic fallback workflow for PDF generation through pandoc, reportlab, and fpdf2 with installation verification

  • Works in 3 steps: Attempt pandoc Conversion → Attempt reportlab → Attempt fpdf2
  • Tasks that involve PDF
  • SKILL.md covers Workflow Overview, Step 1: Attempt pandoc…, Step 2: Attempt reportlab and Step 3: Attempt fpdf2, plus 4 more sections
  • Calls python3, pip and pandoc

What it does

PDF Generation Troubleshooting is an agent skill from HKUDS/OpenSpace. Systematic fallback workflow for PDF generation through pandoc, reportlab, and fpdf2 with installation verification

Its SKILL.md is about 930 tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Documents & Office, covering PDF. It works with Pandoc, pypdf and Python. The repository describes itself as: "OpenSpace: The Skill Management Layer for AI Agents" -- https://open-space.cloud/. The licence is MIT.

When your agent uses it

  • Tasks that involve PDF

Example prompts

  • “/pdf-generation-troubleshooting”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Attempt pandoc Conversion
  2. Attempt reportlab
  3. Attempt fpdf2

What it can do on your machine

Read from SKILL.md and the folder at commit 3827781. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • pip
    • pandoc

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PDF Generation Troubleshooting loads about 926 tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 265 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~37
When it runs · the whole SKILL.md, loaded when a task matches
~926

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from HKUDS/OpenSpace at commit 3827781, republished under its MIT licence (© HKUDS). 265 words, ~926 tokens.

Download SKILL.mdSave it as .claude/skills/pdf-generation-troubleshooting/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
pdf-generation-troubleshooting
description
Systematic fallback workflow for PDF generation through pandoc, reportlab, and fpdf2 with installation verification

PDF Generation Troubleshooting Workflow

This skill provides a systematic approach to generating PDFs when multiple tools may be unavailable. Follow this fallback sequence to ensure PDF generation succeeds.

Workflow Overview

  1. Try pandoc first (simplest for markdown/HTML conversion)
  2. Fallback to reportlab (Python library for programmatic PDFs)
  3. Fallback to fpdf2 (alternative Python PDF library)

Each step includes installation verification before execution.

Step 1: Attempt pandoc Conversion

Use pandoc for markdown or HTML to PDF conversion. Check availability first:

bash
# Check if pandoc is available
which pandoc || echo "pandoc not found"

If available, convert:

bash
pandoc input.md -o output.pdf

If pandoc fails or is unavailable, proceed to Step 2.

Step 2: Attempt reportlab

Check Installation
bash
python3 -c "import reportlab" 2>/dev/null && echo "reportlab available" || echo "reportlab not found"
Install if Needed
bash
pip install reportlab
Create PDF Script

Use write_file to create a Python script:

python
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def create_pdf(filename, content):
    c = canvas.Canvas(filename, pagesize=letter)
    c.drawString(100, 750, content)
    c.save()

if __name__ == "__main__":
    create_pdf("output.pdf", "Your content here")
Execute Script

Use run_shell with proper directory context:

bash
cd /path/to/working/directory && python3 script.py

If reportlab fails, proceed to Step 3.

Step 3: Attempt fpdf2

Check Installation
bash
python3 -c "from fpdf import FPDF" 2>/dev/null && echo "fpdf2 available" || echo "fpdf2 not found"
Install if Needed
bash
pip install fpdf2
Create PDF Script
python
from fpdf import FPDF

def create_pdf(filename, text):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)
    pdf.cell(200, 10, txt=text, ln=True)
    pdf.output(filename)

if __name__ == "__main__":
    create_pdf("output.pdf", "Your content here")
Execute Script
bash
cd /path/to/working/directory && python3 script.py

Decision Matrix

ToolBest ForLimitations
pandocMarkdown/HTML conversionRequires external installation
reportlabComplex layouts, graphicsSteeper learning curve
fpdf2Simple text PDFsLimited formatting options

Error Handling Pattern

For each tool attempt:

  1. Check availability/installation
  2. Install if missing (pip install <package>)
  3. Create script using write_file
  4. Execute using run_shell with cd <dir> && <command>
  5. Verify output file exists
  6. If fails, move to next tool in sequence

Example Fallback Implementation

bash
# Pseudocode for full workflow
if command -v pandoc >/dev/null 2>&1; then
    pandoc input.md -o output.pdf && exit 0
fi

if python3 -c "import reportlab" 2>/dev/null; then
    # Create and run reportlab script
    exit 0
fi

# Final fallback: fpdf2
pip install fpdf2
# Create and run fpdf2 script

Key Principles

  • Always verify tool availability before attempting use
  • Install on-demand when a tool is missing
  • Use write_file for script creation (ensures clean, versionable code)
  • Use run_shell with explicit directory context (cd <dir> && <cmd>)
  • Progressive fallback ensures at least one method succeeds
  • Verify output after each attempt before moving to next tool

© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in benchmarks/gdpval/skills/pdf-generation-troubleshooting of HKUDS/OpenSpace.

  • SKILL.md
  • .skill_id

Open the folder on GitHubat commit 3827781

Compare with similar skills

PDF Generation Troubleshooting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PDF Generation Troubleshooting compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PDF Generation Troubleshooting this skillHKUDS/OpenSpace7.8k—~926Automated safety check: PassMIT
PDF ToolkitXiaomiMiMo/MiMo-Code14k—~1.7kAutomated safety check: PassApache-2.0
PDF Generation, Forms and Extractionpipeshub-ai/pipeshub-ai3.8k—~2.9kAutomated safety check: PassApache-2.0
PDFNousResearch/hermes-agent252k—~3.1kAutomated safety check: PassMIT
PDF ExploreHughYau/AcademicForge2.6k—~3.1kAutomated safety check: PassApache-2.0
PDF Readerespennilsen/pi122—~1.6kAutomated safety check: PassMIT

Similar skills

  • PDF Toolkit

    XiaomiMiMo/MiMo-Code

    Reads, transforms, composes and fills PDFs with Python scripts for extraction, merging, watermarking, encryption, OCR and form filling.

    14k GitHub stars~1.7k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Picks the right library for generating a new PDF, filling an existing PDF form, or extracting text and tables, defaulting to Node where possible.

    3.8k GitHub stars~2.9k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • PDF

    NousResearch/hermes-agent

    PDF files: create, read, merge, fill, OCR, edit text. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.1k tokensUpdated today
    Documents & OfficeAuto-check passed
  • PDF Explore

    HughYau/AcademicForge

    A skill your agent uses when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section…

    2.6k GitHub stars~3.1k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • PDF Reader

    espennilsen/pi

    Read and extract content from PDF files — text, tables, metadata, and images.

    122 GitHub stars~1.6k tokensUpdated 18 days ago
    Documents & OfficeAuto-check passed
  • PDF Explore

    JimLiu/science-skills

    A skill your agent uses when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section…

    227 GitHub starsUsed in 2 repos~3.6k tokens
    Documents & OfficeAuto-check passed

More from HKUDS/OpenSpace

All 199 skills in this repo
  • Walks through producing a master audio track plus stems in Python, from checking a reference file and timing sections by BPM to effects, a zip archive and final verification.

    7.8k GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

    7.8k GitHub stars~765 tokensUpdated 1 mo ago
    Auto-check passed
  • Gives an agent a workaround when its code-execution sandbox keeps failing: save the Python script to a file and run it through the shell instead.

    7.8k GitHub stars~588 tokensUpdated 1 mo ago
    Auto-check passed
  • A recovery routine for agents whose sandboxed code runner keeps failing: save the Python script to disk, then run it through the shell and read the output.

    7.8k GitHub stars~652 tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback ladder for failed sandboxed code runs, plus the habit of fixing the working directory first so generated files land in the right place.

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback workflow for executing Python code when executecodesandbox fails repeatedly

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed

Questions about PDF Generation Troubleshooting

What does PDF Generation Troubleshooting do?

Systematic fallback workflow for PDF generation through pandoc, reportlab, and fpdf2 with installation verification. PDF Generation Troubleshooting is an agent skill from HKUDS/OpenSpace.

When should I use PDF Generation Troubleshooting?

PDF Generation Troubleshooting fits situations like: tasks that involve PDF.

How do I install PDF Generation Troubleshooting in Claude Code?

Run `npx skills add HKUDS/OpenSpace --skill pdf-generation-troubleshooting -a claude-code`. Or copy the skill folder (benchmarks/gdpval/skills/pdf-generation-troubleshooting in HKUDS/OpenSpace) into .claude/skills/pdf-generation-troubleshooting in your project. Claude Code loads it when a task matches its description.

How do I install PDF Generation Troubleshooting in Codex?

Run `npx skills add HKUDS/OpenSpace --skill pdf-generation-troubleshooting -a codex`. Or copy the skill folder (benchmarks/gdpval/skills/pdf-generation-troubleshooting in HKUDS/OpenSpace) into .agents/skills/pdf-generation-troubleshooting in your project. Codex loads it when a task matches its description.

Can I use PDF Generation Troubleshooting in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/OpenSpace --skill pdf-generation-troubleshooting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pdf-generation-troubleshooting, .gemini/skills/pdf-generation-troubleshooting, .github/skills/pdf-generation-troubleshooting and .opencode/skills/pdf-generation-troubleshooting in your project.

What does PDF Generation Troubleshooting need to run?

Going by SKILL.md and its folder, PDF Generation Troubleshooting needs the command-line tools its instructions call (python3, pip and pandoc). Our summary lists: Python 3.

Does PDF Generation Troubleshooting access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PDF Generation Troubleshooting safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PDF Generation Troubleshooting use?

PDF Generation Troubleshooting is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PDF Generation Troubleshooting use?

About 926 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PDF Generation Troubleshooting?

Skills that share tags, products or a category with PDF Generation Troubleshooting: PDF Toolkit (XiaomiMiMo/MiMo-Code, 14k stars), PDF Generation, Forms and Extraction (pipeshub-ai/pipeshub-ai, 3.8k stars), PDF (NousResearch/hermes-agent, 252k stars) and PDF Explore (HughYau/AcademicForge, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PDF Generation Troubleshooting?

HKUDS (a GitHub organization) maintains it in HKUDS/OpenSpace, which has 7,750 GitHub stars. The repository holds 199 skills in this directory. The repository was last updated on August 12, 2026.

Source: HKUDS/OpenSpace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.