[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KFS22AW0SV3VVJG2ZK804M":3,"skill-same:01M6KFS22AW0SV3VVJG2ZK804M":69},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":14,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6KFS22AW0SV3VVJG2ZK804M","pdf-verification-check",null,"Verify generated PDFs for integrity and page count using PyPDF2 before task completion.","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-verification-check\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35],"PDF","verification","check","pdf verification check","pdf verification","integrity","verify","page","generated","task","task completion","for","2026-11-10 10:12:30",false,"---\nname: pdf-verification-check\ndescription: Verify generated PDFs for integrity and page count using PyPDF2 before task completion.\n---\n\n# PDF Verification Check\n\nUse this skill whenever your task involves generating PDF files. Do not declare task completion until you have programmatically verified that the PDFs exist, are not corrupted, and match the expected page counts.\n\n## When to Use\n\n- Immediately after generating one or more PDF files.\n- Before reporting success or moving to the next phase of a task.\n- When specific page counts are required (e.g., \"1-page summary\", \"2-page listing\").\n\n## Verification Steps\n\n1. **Identify Expected Outputs**: List the file paths and their expected page counts.\n2. **Run Verification Script**: Use `run_shell` to execute a Python script using `PyPDF2`.\n3. **Validate Results**: Ensure the script exits successfully and reports the correct page counts.\n4. **Remediate**: If verification fails, inspect the generation logic and regenerate.\n\n## Verification Script\n\nUse the following Python snippet with `run_shell` to verify PDFs. Adjust the `expected_pages` dictionary to match your task requirements.\n\n```python\nimport sys\nfrom PyPDF2 import PdfReader\n\ndef verify_pdfs(files):\n    \"\"\"\n    files: dict mapping filepath to expected_page_count (or None if any count is ok)\n    \"\"\"\n    all_valid = True\n    for path, expected_count in files.items():\n        try:\n            reader = PdfReader(path)\n            actual_count = len(reader.pages)\n            \n            if expected_count is not None and actual_count != expected_count:\n                print(f\"FAIL: {path} has {actual_count} pages, expected {expected_count}\")\n                all_valid = False\n            else:\n                print(f\"OK: {path} has {actual_count} pages\")\n                \n        except Exception as e:\n            print(f\"ERROR: Cannot read {path} - {str(e)}\")\n            all_valid = False\n            \n    return 0 if all_valid else 1\n\n# Example usage - modify this map for your specific task\nfiles_to_check = {\n    \"output\u002Flisting.pdf\": 2,\n    \"output\u002Fmap.pdf\": 1\n}\n\nsys.exit(verify_pdfs(files_to_check))\n```\n\n## Integration Example\n\nWhen using `run_shell`, pass the script as a heredoc or save it temporarily:\n\n```bash\npython3 -c \"\nimport sys\nfrom PyPDF2 import PdfReader\n# ... insert logic here ...\n\"\n```\n\n## Rules\n\n- **Always Verify**: Never assume a PDF generation tool succeeded without checking the output file.\n- **Check Integrity**: Successfully opening the file confirms it is not corrupted\u002Fempty.\n- **Check Counts**: Page count mismatches often indicate formatting errors or missing content.\n- **Fail Fast**: If verification fails, attempt to fix the generation code immediately rather than proceeding.\n\n## Dependencies\n\nEnsure `PyPDF2` is available in the environment. If not, install it first:\n\n```bash\npip install PyPDF2\n```","# PDF Verification Check\n\nUse this skill whenever your task involves generating PDF files. Do not declare task completion until you have programmatically verified that the PDFs exist, are not corrupted, and match the expected page counts.\n\n## When to Use\n\n- Immediately after generating one or more PDF files.\n- Before reporting success or moving to the next phase of a task.\n- When specific page counts are required (e.g., \"1-page summary\", \"2-page listing\").\n\n## Verification Steps\n\n1. **Identify Expected Outputs**: List the file paths and their expected page counts.\n2. **Run Verification Script**: Use `run_shell` to execute a Python script using `PyPDF2`.\n3. **Validate Results**: Ensure the script exits successfully and reports the correct page counts.\n4. **Remediate**: If verification fails, inspect the generation logic and regenerate.\n\n## Verification Script\n\nUse the following Python snippet with `run_shell` to verify PDFs. Adjust the `expected_pages` dictionary to match your task requirements.\n\n```python\nimport sys\nfrom PyPDF2 import PdfReader\n\ndef verify_pdfs(files):\n    \"\"\"\n    files: dict mapping filepath to expected_page_count (or None if any count is ok)\n    \"\"\"\n    all_valid = True\n    for path, expected_count in files.items():\n        try:\n            reader = PdfReader(path)\n            actual_count = len(reader.pages)\n            \n            if expected_count is not None and actual_count != expected_count:\n                print(f\"FAIL: {path} has {actual_count} pages, expected {expected_count}\")\n                all_valid = False\n            else:\n                print(f\"OK: {path} has {actual_count} pages\")\n                \n        except Exception as e:\n            print(f\"ERROR: Cannot read {path} - {str(e)}\")\n            all_valid = False\n            \n    return 0 if all_valid else 1\n\n# Example usage - modify this map for your specific task\nfiles_to_check = {\n    \"output\u002Flisting.pdf\": 2,\n    \"output\u002Fmap.pdf\": 1\n}\n\nsys.exit(verify_pdfs(files_to_check))\n```\n\n## Integration Example\n\nWhen using `run_shell`, pass the script as a heredoc or save it temporarily:\n\n```bash\npython3 -c \"\nimport sys\nfrom PyPDF2 import PdfReader\n# ... insert logic here ...\n\"\n```\n\n## Rules\n\n- **Always Verify**: Never assume a PDF generation tool succeeded without checking the output file.\n- **Check Integrity**: Successfully opening the file confirms it is not corrupted\u002Fempty.\n- **Check Counts**: Page count mismatches often indicate formatting errors or missing content.\n- **Fail Fast**: If verification fails, attempt to fix the generation code immediately rather than proceeding.\n\n## Dependencies\n\nEnsure `PyPDF2` is available in the environment. If not, install it first:\n\n```bash\npip install PyPDF2\n```",{"name":5,"description":7},"main","af1b40a42167d09c30b3a63000aa14ace4c1e229","gdpval_bench\u002Fskills\u002Fpdf-verification-check","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":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-verification-check",{"tool":55,"command":56},"bunx","bunx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-verification-check",{"tool":58,"command":59},"pnpm","pnpm dlx skills add xyliu-cs\u002FOpenSpace-GDPval --skill pdf-verification-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpdf-verification-check\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},".skill_id","OTHER","其他",36,"https:\u002F\u002Fgithub.com\u002Fxyliu-cs\u002FOpenSpace-GDPval\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpdf-verification-check\u002F.skill_id",[70,83,91,107,133,152],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":36},"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",[],[77,78,79,80,81,82],"zip export deliverable","zip","export","deliverables","codebase","as",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":36},"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",[],[90,78,80,81,82],"zip deliverable finalization",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":36},"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",[],[98,99,100,101,102,103,104,105,82,106],"failure analysis","ZeRO","analysis","iteration","zero iteration failure analysis","with","issues","execution","system",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":118,"publishedAt":36},"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",[113],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[119,120,121,122,123,124,125,126,127,128,129,130,131,132],"fallback","write","file","report","write file fallback report","domain","professional","sources","retrieval","generate","embedded","documents","data","knowledge",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":36},"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",[139],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[143,103,119,144,145,146,130,128,121,147,148,149,120,150,125,151,35],"fallback doc with delegation","doc","delegation","shell","markdown","tool","text","simple","formats",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":36},"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",[158],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},[119,122,160,161,128,121,162,163,120,33,164,127,103,165,130],"context","context anchored fallback report","Guardrails","Tools","drift","context drift"]