本文へ移動
cccskills
無料GitHub で公開

pdf-gen-fallback-501bcc

Fallback pattern for PDF/document generation when execute_code_sandbox fails with opaque errors

インストール方法を見る

含まれるファイル(2)

  • SKILL.md4.1 KB
  • .skill_id37 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

PDF Generation Fallback Pattern

When to Use

Apply this pattern when execute_code_sandbox returns opaque or unhelpful errors during PDF, DOCX, or other document generation tasks. This fallback uses run_shell with direct python -c execution for more reliable document generation.

Step-by-Step Procedure

1. Detect Sandbox Failure

If execute_code_sandbox fails during document generation with errors like:

  • Opaque runtime errors
  • Missing library errors that don't resolve with import statements
  • Silent failures with no output

Proceed to the fallback approach.

2. Check Library Availability

Before generating documents, verify the required Python libraries are available in the shell environment:

python -c "import reportlab; print('OK')" 2>&1 || echo "reportlab missing"
python -c "import fpdf; print('OK')" 2>&1 || echo "fpdf missing"
python -c "import pypdf; print('OK')" 2>&1 || echo "pypdf missing"
python -c "import docx; print('OK')" 2>&1 || echo "python-docx missing"

3. Install Missing Libraries (If Needed)

If a library is missing, install it via pip:

pip install reportlab fpdf2 pypdf python-docx

4. Execute Document Generation via run_shell

Use run_shell with python -c and multi-line strings for document generation:

python -c "
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas('output.pdf', pagesize=letter)
c.drawString(100, 750, 'Document Title')
c.drawString(100, 700, 'Content here')
c.save()
print('SUCCESS: PDF created')
"

For DOCX files:

python -c "
from docx import Document

doc = Document()
doc.add_heading('Document Title', 0)
doc.add_paragraph('Content here')
doc.save('output.docx')
print('SUCCESS: DOCX created')
"

5. Include Explicit Error Handling

Always wrap generation code with try/except for clear error reporting:

python -c "
try:
    from reportlab.lib.pagesizes import letter
    from reportlab.pdfgen import canvas
    
    c = canvas.Canvas('output.pdf', pagesize=letter)
    c.drawString(100, 750, 'Content')
    c.save()
    print('SUCCESS')
except ImportError as e:
    print(f'MISSING_LIBRARY: {e}')
    exit(1)
except Exception as e:
    print(f'GENERATION_ERROR: {e}')
    exit(1)
"

6. Verify Output File

After generation, confirm the file was created and is valid:

ls -la output.pdf
file output.pdf
test -f output.pdf && echo "File exists" || echo "File missing"

Complete Example Workflow

# Step 1: Check and install library
python -c "import reportlab" 2>&1 || pip install reportlab

# Step 2: Generate PDF with error handling
python -c "
try:
    from reportlab.lib.pagesizes import letter
    from reportlab.pdfgen import canvas
    
    c = canvas.Canvas('report.pdf', pagesize=letter)
    c.setFont('Helvetica', 12)
    c.drawString(100, 750, 'Surveillance Report')
    c.drawString(100, 700, 'Generated via fallback pattern')
    c.save()
    print('SUCCESS: report.pdf created')
except Exception as e:
    print(f'ERROR: {e}')
    exit(1)
"

# Step 3: Verify
test -f report.pdf && echo "Verification: PASSED" || echo "Verification: FAILED"

Why This Works

  • Direct Execution: run_shell with python -c bypasses sandbox limitations that may affect document generation libraries
  • Explicit Errors: Try/except blocks provide actionable error messages instead of opaque failures
  • Environment Control: Shell execution gives more control over the Python environment and library paths
  • Verification: Explicit file checks confirm success rather than assuming it

Common Libraries

LibraryPurposeImport Statement
reportlabPDF generationfrom reportlab.pdfgen import canvas
fpdf2PDF generationfrom fpdf import FPDF
pypdfPDF manipulationfrom pypdf import PdfReader
python-docxDOCX generationfrom docx import Document
xlsxwriterExcel filesimport xlsxwriter

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Incremental audio production with duration mismatch handling, adaptive stem extension, and pre-mix alignment verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Incremental audio production with duration alignment handling, per-stem verification, and adaptive extension strategies

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Create serverless API proxy endpoints that hide API keys and provide a unified backend for the dashboard frontend. Designed for Vercel deployment.

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

End-to-end audio production workflow with stems, effects, archiving, and verification

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

Fallback pattern for executing Python code when execute_code_sandbox fails

日本語の概要は準備中です。原文の説明を表示しています。

HKUDS/OpenSpace7,7552026年8月13日 更新

HKUDS のスキルをすべて見る

このスキルの問題を報告する