[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDFZQTKK6GEXWHPSVE8VV2":3,"skill-same:01M6CDFZQTKK6GEXWHPSVE8VV2":84},{"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":26,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6CDFZQTKK6GEXWHPSVE8VV2","pdf",null,"Read, extract, split, merge, rotate, watermark, fill, OCR, or create PDF files with verification of page counts and text extraction.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41175,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fpdf\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"PDF","merge","create","verification","extraction","ocr","text","page","read","extract","files","with","split","fill","2026-11-10 10:12:30",false,"---\nname: pdf\ndescription: Read, extract, split, merge, rotate, watermark, fill, OCR, or create PDF files with verification of page counts and text extraction.\n---\n\n# PDF\n\nUse this skill for any task where a PDF is the primary input or output.\n\n## Workflow\n\n1. Identify the PDF operation: read, extract, OCR, split, merge, rotate,\n   watermark, redact, fill forms, encrypt\u002Fdecrypt, or create.\n2. Preserve originals. Write outputs with explicit names.\n3. Use the most reliable available tool:\n   - `pdftotext`, `pdfinfo`, `qpdf`, or `mutool` through `bash` when installed\n     (the built-in `read` tool does not extract text from a PDF)\n   - Python libraries such as `pypdf`, `pdfplumber`, `PyMuPDF`, or\n     `reportlab` when available\n   - OCR tools only for scanned pages\n4. For extraction, report page coverage and note when layout, tables, or OCR\n   quality may affect accuracy.\n5. For generated or modified PDFs, verify page count, text extraction where\n   possible, and file size. For redaction, confirm removed text is not\n   extractable from the output.\n\nAsk before installing dependencies or running OCR over large documents. Do not\nrepresent a visually scanned PDF as fully accurate text unless OCR quality has\nbeen checked.\n","# PDF\n\nUse this skill for any task where a PDF is the primary input or output.\n\n## Workflow\n\n1. Identify the PDF operation: read, extract, OCR, split, merge, rotate,\n   watermark, redact, fill forms, encrypt\u002Fdecrypt, or create.\n2. Preserve originals. Write outputs with explicit names.\n3. Use the most reliable available tool:\n   - `pdftotext`, `pdfinfo`, `qpdf`, or `mutool` through `bash` when installed\n     (the built-in `read` tool does not extract text from a PDF)\n   - Python libraries such as `pypdf`, `pdfplumber`, `PyMuPDF`, or\n     `reportlab` when available\n   - OCR tools only for scanned pages\n4. For extraction, report page coverage and note when layout, tables, or OCR\n   quality may affect accuracy.\n5. For generated or modified PDFs, verify page count, text extraction where\n   possible, and file size. For redaction, confirm removed text is not\n   extractable from the output.\n\nAsk before installing dependencies or running OCR over large documents. Do not\nrepresent a visually scanned PDF as fully accurate text unless OCR quality has\nbeen checked.\n",{"name":5,"description":7},"main","654aa776d6bcb98292d4c7c5841fed871e1ba5bd","crates\u002Fskills\u002Fassets\u002Fskills\u002Fpdf",3570,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-11 08:59:54",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add codewhale-hq\u002FCodewhale --skill pdf",{"tool":62,"command":63},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill pdf",{"tool":65,"command":66},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill pdf","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fpdf\u002FSKILL.md",true,[70,76,80],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"SKILL.generation-14.md","REFERENCE","参考文档",1239,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fpdf\u002FSKILL.generation-14.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"SOURCE.md",346,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Faustintgriffith-official-standards\u002FSOURCE.md",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Faustintgriffith-official-standards\u002FTRUST.auto.yaml",[85,111,136,156,169,176],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":41},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[92,93,94,95,96,38,97,98,99,100,101,35,102,103,104,105,106,107,108,109,110],"find","gh find prs","gh","prs","produce","read-only","matrix","codewhale","queue","issue","check","code","only","open","survey","pr","evidence","fetch","coverage",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":118,"publishedAt":41},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[117],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[119,94,120,121,101,122,123,124,125,126,127,128,129,99,130,131,132,38,133,134,135],"file issue","file","gh file issue","milestone","idea","filing","when","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro","use",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":143,"publishedAt":41},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[142],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[144,145,146,94,147,148,149,150,38,125,151,152,99,153,154,104,155],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":41},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[162],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[164,94,146,165,135,132,122,166,167,168],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":170,"name":171,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":41},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[174],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[171],{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":183,"publishedAt":41},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[182],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[184,185,186,187,188,189,190,191,192,99,193,153,92,194,103,135,195,196,108],"slice","cw slice","start","bar","you","Existing","upgrade","for","feature","refactor","change","writing","fix"]