[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KFQSRB2F4PD6W3667V8WM6":3,"skill-same:01M6KFQSRB2F4PD6W3667V8WM6":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":14,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6KFQSRB2F4PD6W3667V8WM6","pdf-gen-fallback",null,"Reliable PDF generation using shell-based Python execution when sandbox fails","xyliu-cs\u002FOpenSpace-GDPval","xyliu-cs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F89236536?v=4","01M6KF8Z1V4TXS86CKSH48BY8T","xy","01M6KF8Z67443W0SHXM85JEF0B",0,"MIT","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpdf-gen-fallback\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"PDF","fallback","pdf gen fallback","python","sandbox","execution","shell","generation","pdf generation","2026-11-10 10:12:30",false,"---\nname: pdf-gen-fallback\ndescription: Reliable PDF generation using shell-based Python execution when sandbox fails\n---\n\n# PDF Generation Fallback\n\nThis skill provides a reliable workflow for generating PDFs and documents when `execute_code_sandbox` returns opaque errors. Use direct `run_shell` with `python -c` as a fallback, with library availability checks and explicit error handling.\n\n## When to Use\n\n- `execute_code_sandbox` fails with cryptic error messages during document\u002FPDF generation\n- You need to generate PDFs, reports, or structured documents\n- Standard library execution is unreliable for document creation tasks\n\n## Step-by-Step Procedure\n\n### Step 1: Check Library Availability\n\nBefore attempting generation, verify that required libraries are installed:\n\n```bash\nrun_shell command=\"python -c \\\"import reportlab; print('reportlab available')\\\"\"\nrun_shell command=\"python -c \\\"import fpdf; print('fpdf available')\\\"\"\nrun_shell command=\"python -c \\\"import pypdf; print('pypdf available')\\\"\"\n```\n\n### Step 2: Attempt execute_code_sandbox First\n\nTry the sandbox approach initially (it's cleaner for iteration):\n\n```python\nexecute_code_sandbox code=\"\"\"\nfrom reportlab.lib.pagesizes import letter\nfrom reportlab.pdfgen import canvas\n\nc = canvas.Canvas(\"output.pdf\", pagesize=letter)\nc.drawString(100, 750, \"Document Content\")\nc.save()\nprint(\"ARTIFACT_PATH:\u002Fpath\u002Fto\u002Foutput.pdf\")\n\"\"\"\n```\n\n### Step 3: Detect Opaque Errors\n\nWatch for these failure indicators:\n- Generic \"execution failed\" messages\n- Import errors that don't match library availability checks\n- Timeout errors during document rendering\n- Missing artifact paths in output\n\n### Step 4: Fall Back to run_shell\n\nIf sandbox fails, use direct shell execution:\n\n```bash\nrun_shell command=\"python -c \\\"\nfrom reportlab.lib.pagesizes import letter\nfrom reportlab.pdfgen import canvas\nc = canvas.Canvas('output.pdf', pagesize=letter)\nc.drawString(100, 750, 'Document Content')\nc.save()\nprint('PDF created successfully')\n\\\"\"\n```\n\n### Step 5: Verify Output\n\nAfter generation, confirm the file exists:\n\n```bash\nrun_shell command=\"ls -la output.pdf && file output.pdf\"\n```\n\n## Complete Example Workflow\n\n```\n1. Check libraries: run_shell \"python -c \\\"import reportlab\\\"\"\n2. Try sandbox: execute_code_sandbox with PDF generation code\n3. If error detected: Fall back to run_shell with python -c\n4. Verify: run_shell \"ls -la *.pdf\"\n5. Read result: read_file filetype=\"pdf\" file_path=\"output.pdf\"\n```\n\n## Error Handling Tips\n\n- Capture stderr from run_shell to diagnose issues\n- Use absolute paths when possible to avoid working directory issues\n- For complex documents, write the Python script to a file first, then execute\n- Consider installing missing libraries: `run_shell command=\"pip install reportlab\"`\n\n## Library Alternatives\n\nIf reportlab is unavailable, try:\n- `fpdf` - Simpler API, good for basic PDFs\n- `weasyprint` - HTML\u002FCSS to PDF conversion\n- `pypdf` - PDF manipulation and merging\n\n## Common Pitfalls\n\n- Don't assume sandbox errors mean the approach is wrong—often it's环境 issues\n- Always verify the PDF was created before proceeding\n- Handle encoding issues explicitly (use utf-8)\n- For images in PDFs, ensure image files are accessible to the execution context","# PDF Generation Fallback\n\nThis skill provides a reliable workflow for generating PDFs and documents when `execute_code_sandbox` returns opaque errors. Use direct `run_shell` with `python -c` as a fallback, with library availability checks and explicit error handling.\n\n## When to Use\n\n- `execute_code_sandbox` fails with cryptic error messages during document\u002FPDF generation\n- You need to generate PDFs, reports, or structured documents\n- Standard library execution is unreliable for document creation tasks\n\n## Step-by-Step Procedure\n\n### Step 1: Check Library Availability\n\nBefore attempting generation, verify that required libraries are installed:\n\n```bash\nrun_shell command=\"python -c \\\"import reportlab; print('reportlab available')\\\"\"\nrun_shell command=\"python -c \\\"import fpdf; print('fpdf available')\\\"\"\nrun_shell command=\"python -c \\\"import pypdf; print('pypdf available')\\\"\"\n```\n\n### Step 2: Attempt execute_code_sandbox First\n\nTry the sandbox approach initially (it's cleaner for iteration):\n\n```python\nexecute_code_sandbox code=\"\"\"\nfrom reportlab.lib.pagesizes import letter\nfrom reportlab.pdfgen import canvas\n\nc = canvas.Canvas(\"output.pdf\", pagesize=letter)\nc.drawString(100, 750, \"Document Content\")\nc.save()\nprint(\"ARTIFACT_PATH:\u002Fpath\u002Fto\u002Foutput.pdf\")\n\"\"\"\n```\n\n### Step 3: Detect Opaque Errors\n\nWatch for these failure indicators:\n- Generic \"execution failed\" messages\n- Import errors that don't match library availability checks\n- Timeout errors during document rendering\n- Missing artifact paths in output\n\n### Step 4: Fall Back to run_shell\n\nIf sandbox fails, use direct shell execution:\n\n```bash\nrun_shell command=\"python -c \\\"\nfrom reportlab.lib.pagesizes import letter\nfrom reportlab.pdfgen import canvas\nc = canvas.Canvas('output.pdf', pagesize=letter)\nc.drawString(100, 750, 'Document Content')\nc.save()\nprint('PDF created successfully')\n\\\"\"\n```\n\n### Step 5: Verify Output\n\nAfter generation, confirm the file exists:\n\n```bash\nrun_shell command=\"ls -la output.pdf && file output.pdf\"\n```\n\n## Complete Example Workflow\n\n```\n1. Check libraries: run_shell \"python -c \\\"import reportlab\\\"\"\n2. Try sandbox: execute_code_sandbox with PDF generation code\n3. If error detected: Fall back to run_shell with python -c\n4. Verify: run_shell \"ls -la *.pdf\"\n5. Read result: read_file filetype=\"pdf\" file_path=\"output.pdf\"\n```\n\n## Error Handling Tips\n\n- Capture stderr from run_shell to diagnose issues\n- Use absolute paths when possible to avoid working directory issues\n- For complex documents, write the Python script to a file first, then execute\n- Consider installing missing libraries: `run_shell command=\"pip install reportlab\"`\n\n## Library Alternatives\n\nIf reportlab is unavailable, try:\n- `fpdf` - Simpler API, good for basic PDFs\n- `weasyprint` - HTML\u002FCSS to PDF conversion\n- `pypdf` - PDF manipulation and merging\n\n## Common Pitfalls\n\n- Don't assume sandbox errors mean the approach is wrong—often it's环境 issues\n- Always verify the PDF was created before proceeding\n- Handle encoding issues explicitly (use utf-8)\n- For images in PDFs, ensure image files are accessible to the execution context",{"name":5,"description":7},"main","af1b40a42167d09c30b3a63000aa14ace4c1e229","gdpval_bench\u002Fskills\u002Fpdf-gen-fallback","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval","https:\u002F\u002Fgithub.com\u002Fxyliu-cs","https:\u002F\u002Fxyliu-cs.github.io","PhD Student in CS, CUHK-Shenzhen.","2026-04-06 20:32:15",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-gen-fallback",{"tool":52,"command":53},"bunx","bunx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-gen-fallback",{"tool":55,"command":56},"pnpm","pnpm dlx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-gen-fallback","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpdf-gen-fallback\u002FSKILL.md",true,[60],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},".skill_id","OTHER","其他",30,"https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpdf-gen-fallback\u002F.skill_id",[67,80,88,103,128,147],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":33},"01M6KG8MF1S664SWBDENYRSCK8","zip-export-deliverable","Ensures codebase deliverables are properly exported as ZIP archives through a dedicated finalization step","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fzip-export-deliverable\u002FSKILL.md",[],[74,75,76,77,78,79],"zip export deliverable","zip","export","deliverables","codebase","as",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":33},"01M6KG8GAZWHHEK7VNJDW0ME21","zip-deliverable-finalization","Ensure codebase deliverables are properly packaged as ZIP exports in a dedicated final step","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fzip-deliverable-finalization\u002FSKILL.md",[],[87,75,77,78,79],"zip deliverable finalization",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":33},"01M6KG8CMQQ1PYMNTSRZ9VS1MD","zero-iteration-failure-analysis","Identify and handle agent failures with 0 iterations as pre-execution system issues","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fzero-iteration-failure-analysis\u002FSKILL.md",[],[95,96,97,98,99,100,101,29,79,102],"failure analysis","ZeRO","analysis","iteration","zero iteration failure analysis","with","issues","system",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":114,"publishedAt":33},"01M6KG86W3PA07FT9W58YHHERM","write-file-fallback-report","Generate professional documents using write_file when primary data sources fail, leveraging embedded domain knowledge instead of external retrieval","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fwrite-file-fallback-report\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[25,115,116,117,118,119,120,121,122,123,124,125,126,127],"write","file","report","write file fallback report","domain","professional","sources","retrieval","generate","embedded","documents","data","knowledge",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":33},"01M6KG82GAEY3GG77CMGCK1C2T","fallback-doc-with-delegation","Generate professional documents after tool failures using shell_agent for complex formats or write_file for simple text\u002Fmarkdown","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fwrite-file-fallback-report-enhanced\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[138,100,25,139,140,30,125,123,116,141,142,143,115,144,120,145,146],"fallback doc with delegation","doc","delegation","markdown","tool","text","simple","formats","for",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":33},"01M6KG7WT7GX5NYCGEFHW22NV7","context-anchored-fallback-report","Generate documents with write_file when retrieval tools fail, with explicit guardrails against task context drift","https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fwrite-file-fallback-report-enhanced-4bc5c2\u002FSKILL.md",[153],{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},[25,117,155,156,123,116,157,158,115,159,160,122,100,161,125],"context","context anchored fallback report","Guardrails","Tools","task","drift","context drift"]