[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XBHS1RXM2EWF09KG89ZP77":3,"skill-same:01M6XBHS1RXM2EWF09KG89ZP77":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":13,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6XBHS1RXM2EWF09KG89ZP77","docx-read-fallback",null,"Use run_shell with python-docx as reliable fallback when read_file fails on .docx files","UF-gzj\u002Fopenspace-claude-evolution","UF-gzj","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F272393507?v=4","01M6XBCZB755P01VVYGQWPYZY3","01M6XBCZFJA5AREA17WGETA3FW",0,"MIT","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fdocx-read-fallback\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41],"docx","read","fallback","docx read fallback","python","run","file","shell","use","files","as","with","python-docx","when","2026-11-10 10:12:30",false,"---\nname: docx-read-fallback\ndescription: Use run_shell with python-docx as reliable fallback when read_file fails on .docx files\n---\n\n# DOCX Read Fallback\n\nWhen `read_file` or `execute_code_sandbox` fails to read `.docx` files, use `run_shell` with python-docx as a reliable workaround.\n\n## When to Use\n\n- `read_file` fails, times out, or returns errors on `.docx` files\n- `execute_code_sandbox` attempts to read the docx fail\n- You need to extract text content from a Word document\n- Multiple standard approaches have been exhausted\n\n## How to Use\n\n### Basic Text Extraction\n\n```bash\npython -c \"import docx; doc = docx.Document('path\u002Fto\u002Ffile.docx'); print('\\n'.join([p.text for p in doc.paragraphs]))\"\n```\n\n### Using run_shell Tool\n\n```\nrun_shell command=\"python -c \\\"import docx; doc = docx.Document('path\u002Fto\u002Ffile.docx'); print('\\n'.join([p.text for p in doc.paragraphs]))\\\"\" timeout=60\n```\n\n### Extract Paragraphs with Indices\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [print(f'P{i}: {p.text}') for i, p in enumerate(doc.paragraphs) if p.text.strip()]\"\n```\n\n### Extract Tables\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [[print([[cell.text for cell in row.cells] for row in table.rows]) for table in doc.tables]]\"\n```\n\n### Extract Headings (by style)\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [print(p.text) for p in doc.paragraphs if p.style.name.startswith('Heading')]\"\n```\n\n## Prerequisites\n\nEnsure python-docx is available:\n\n```bash\npython -c \"import docx; print('docx available')\"\n```\n\nIf not installed:\n\n```bash\npip install python-docx\n```\n\n## Tips\n\n- Use absolute paths to avoid working directory issues\n- Set appropriate `timeout` (30-60 seconds for large documents)\n- Escape quotes properly when embedding in shell commands\n- For large documents, extract content in chunks or filter by paragraph index\n- This approach bypasses file type detection issues in read_file\n\n## Example Workflow\n\n1. Try `read_file` on the .docx file\n2. If it fails, verify python-docx availability\n3. Use `run_shell` with the python-docx extraction command\n4. Parse the stdout to get document content\n5. Proceed with your analysis using the extracted text","# DOCX Read Fallback\n\nWhen `read_file` or `execute_code_sandbox` fails to read `.docx` files, use `run_shell` with python-docx as a reliable workaround.\n\n## When to Use\n\n- `read_file` fails, times out, or returns errors on `.docx` files\n- `execute_code_sandbox` attempts to read the docx fail\n- You need to extract text content from a Word document\n- Multiple standard approaches have been exhausted\n\n## How to Use\n\n### Basic Text Extraction\n\n```bash\npython -c \"import docx; doc = docx.Document('path\u002Fto\u002Ffile.docx'); print('\\n'.join([p.text for p in doc.paragraphs]))\"\n```\n\n### Using run_shell Tool\n\n```\nrun_shell command=\"python -c \\\"import docx; doc = docx.Document('path\u002Fto\u002Ffile.docx'); print('\\n'.join([p.text for p in doc.paragraphs]))\\\"\" timeout=60\n```\n\n### Extract Paragraphs with Indices\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [print(f'P{i}: {p.text}') for i, p in enumerate(doc.paragraphs) if p.text.strip()]\"\n```\n\n### Extract Tables\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [[print([[cell.text for cell in row.cells] for row in table.rows]) for table in doc.tables]]\"\n```\n\n### Extract Headings (by style)\n\n```bash\npython -c \"import docx; doc = docx.Document('file.docx'); [print(p.text) for p in doc.paragraphs if p.style.name.startswith('Heading')]\"\n```\n\n## Prerequisites\n\nEnsure python-docx is available:\n\n```bash\npython -c \"import docx; print('docx available')\"\n```\n\nIf not installed:\n\n```bash\npip install python-docx\n```\n\n## Tips\n\n- Use absolute paths to avoid working directory issues\n- Set appropriate `timeout` (30-60 seconds for large documents)\n- Escape quotes properly when embedding in shell commands\n- For large documents, extract content in chunks or filter by paragraph index\n- This approach bypasses file type detection issues in read_file\n\n## Example Workflow\n\n1. Try `read_file` on the .docx file\n2. If it fails, verify python-docx availability\n3. Use `run_shell` with the python-docx extraction command\n4. Parse the stdout to get document content\n5. Proceed with your analysis using the extracted text",{"name":5,"description":7},"main","0650921d63895de3997bc81f1ff1d0ac67032072","gdpval_bench\u002Fskills\u002Fdocx-read-fallback","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution","https:\u002F\u002Fgithub.com\u002FUF-gzj","2026-04-16 09:31:03",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add UF-gzj\u002Fopenspace-claude-evolution --skill docx-read-fallback",{"tool":59,"command":60},"bunx","bunx skills add UF-gzj\u002Fopenspace-claude-evolution --skill docx-read-fallback",{"tool":62,"command":63},"pnpm","pnpm dlx skills add UF-gzj\u002Fopenspace-claude-evolution --skill docx-read-fallback","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fdocx-read-fallback\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},".skill_id","OTHER","其他",32,"https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fdocx-read-fallback\u002F.skill_id",[74,96,111,119,147,163],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":42},"01M6XCCXD3NCM2YKR3WNGBASPC","write-special-chars-ts-check","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[81,82,83,84,85,86,87,88,89,90,91,92,93,37,94,95,34,32],"check","write","write special chars ts check","typescript","filters","characters","Existing","type-checking","for","errors","script","output","type","only","template",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":42},"01M6XCCT7E3J922Q345PBGSHPN","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[103,104,82,34,105,32,106,107,108,109,29,95,110,39,86,89,91],"readback","write special chars readback","helper","post","via","scripts","cleanup","verification",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":42},"01M6XCCMQX1R8B6FECWB3P63T7","write-special-chars-heredoc","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) by using a Python heredoc script executed via shell.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-heredoc\u002FSKILL.md",[],[118,82,86,35,91,107,95,34,32,89],"write special chars heredoc",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":128,"publishedAt":42},"01M6XCCG41M994JJEX6VN52PEP","worldmonitor-reference","Curated architecture index of the WorldMonitor open-source dashboard. Reference for extracting patterns — vanilla TypeScript, Panel class hierarchy, service layer, CSS grid, API edge functions, refresh scheduler, and 60+ data source integrations.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fworldmonitor-reference\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000033","数据分析师",[129,130,131,132,133,84,134,135,136,137,138,89,139,140,141,142,143,144,145,146],"reference","worldmonitor","worldmonitor reference","architecture","dashboard","css","scheduler","layer","hierarchy","source","extracting","panel","patterns","edge functions","integrations","open","api","data",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":42},"01M6XCCCHWNKG2W4VH9E6A10HF","virtual-list","Implement efficient virtual scrolling for rendering large lists with DOM recycling, chunk-based rendering, and performance optimizations","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fvirtual-list\u002FSKILL.md",[],[154,155,156,157,89,158,39,159,160,161,162],"virtual list","list","virtual","chunk","dom","rendering","recycling","implement","performance",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":42},"01M6XCC7X8PKMR2DEW91XGHYSV","verify-directory-structure","Diagnose and resolve file access issues by first verifying the directory structure.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fverify-directory-structure\u002FSKILL.md",[],[170,171,172,173,174,175,34,176,177,178],"directory","verify directory structure","structure","verify","access","first","issues","diagnose","file access"]