[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HXSZ4FFNREP26ZR45QNHJ7":3,"skill-same:01M6HXSZ4FFNREP26ZR45QNHJ7":71},{"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":28,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6HXSZ4FFNREP26ZR45QNHJ7","pptx-file-validation",null,"Validate PowerPoint files using python-pptx when standard file readers fail","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",8024,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpptx-file-validation\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37],"pptx","validation","file","pptx file validation","python","validate","powerpoint","files","python-pptx","2026-11-10 10:12:30",false,"---\nname: pptx-file-validation\ndescription: Validate PowerPoint files using python-pptx when standard file readers fail\n---\n\n# PPTX File Validation Workflow\n\nThis skill provides a reliable method to validate PowerPoint (.pptx) files when the built-in `read_file` function fails or returns insufficient information.\n\n## When to Use\n\n- `read_file` fails to read a .pptx file\n- You need to verify presentation contents (slide count, titles, structure)\n- Standard file readers return incomplete or unreadable data\n\n## Step-by-Step Instructions\n\n### Step 1: Detect read_file Failure\n\nAttempt to read the PowerPoint file using `read_file`. If it fails, returns garbled content, or doesn't provide the structural information you need, proceed to Step 2.\n\n### Step 2: Use run_shell with python-pptx\n\nExecute a Python script using `run_shell` with the `python-pptx` library to inspect the presentation:\n\n```bash\npython3 -c \"\nfrom pptx import Presentation\nprs = Presentation('path\u002Fto\u002Ffile.pptx')\nprint(f'Total slides: {len(prs.slides)}')\nfor i, slide in enumerate(prs.slides, 1):\n    print(f'Slide {i}: {slide.shapes.title.text if slide.shapes.title else \\\"[No Title]\\\"}')\n\"\n```\n\n### Step 3: Parse and Validate Output\n\nAnalyze the output to verify:\n- **Slide count** matches expected number\n- **Slide titles** align with required topics\n- **Structure** is complete and properly formatted\n\n### Step 4: Report Validation Results\n\nDocument the validation findings, including:\n- Total number of slides\n- List of slide titles\n- Any missing or problematic content\n\n## Example Usage\n\n```python\n# In your agent workflow\nrun_shell(command=\"python3 -c \\\"from pptx import Presentation; prs = Presentation('output.pptx'); print(f'Slides: {len(prs.slides)}'); [print(f'{i}: {s.shapes.title.text}') for i, s in enumerate(prs.slides, 1) if s.shapes.title]\\\"\")\n```\n\n## Prerequisites\n\nEnsure `python-pptx` is available in the environment:\n\n```bash\npip install python-pptx\n```\n\n## Benefits\n\n- **Reliable**: Works when built-in readers fail\n- **Detailed**: Provides slide-by-slide breakdown\n- **Programmatic**: Easy to parse and validate against requirements\n- **Lightweight**: No need for PowerPoint software installation","# PPTX File Validation Workflow\n\nThis skill provides a reliable method to validate PowerPoint (.pptx) files when the built-in `read_file` function fails or returns insufficient information.\n\n## When to Use\n\n- `read_file` fails to read a .pptx file\n- You need to verify presentation contents (slide count, titles, structure)\n- Standard file readers return incomplete or unreadable data\n\n## Step-by-Step Instructions\n\n### Step 1: Detect read_file Failure\n\nAttempt to read the PowerPoint file using `read_file`. If it fails, returns garbled content, or doesn't provide the structural information you need, proceed to Step 2.\n\n### Step 2: Use run_shell with python-pptx\n\nExecute a Python script using `run_shell` with the `python-pptx` library to inspect the presentation:\n\n```bash\npython3 -c \"\nfrom pptx import Presentation\nprs = Presentation('path\u002Fto\u002Ffile.pptx')\nprint(f'Total slides: {len(prs.slides)}')\nfor i, slide in enumerate(prs.slides, 1):\n    print(f'Slide {i}: {slide.shapes.title.text if slide.shapes.title else \\\"[No Title]\\\"}')\n\"\n```\n\n### Step 3: Parse and Validate Output\n\nAnalyze the output to verify:\n- **Slide count** matches expected number\n- **Slide titles** align with required topics\n- **Structure** is complete and properly formatted\n\n### Step 4: Report Validation Results\n\nDocument the validation findings, including:\n- Total number of slides\n- List of slide titles\n- Any missing or problematic content\n\n## Example Usage\n\n```python\n# In your agent workflow\nrun_shell(command=\"python3 -c \\\"from pptx import Presentation; prs = Presentation('output.pptx'); print(f'Slides: {len(prs.slides)}'); [print(f'{i}: {s.shapes.title.text}') for i, s in enumerate(prs.slides, 1) if s.shapes.title]\\\"\")\n```\n\n## Prerequisites\n\nEnsure `python-pptx` is available in the environment:\n\n```bash\npip install python-pptx\n```\n\n## Benefits\n\n- **Reliable**: Works when built-in readers fail\n- **Detailed**: Provides slide-by-slide breakdown\n- **Programmatic**: Easy to parse and validate against requirements\n- **Lightweight**: No need for PowerPoint software installation",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpptx-file-validation",941,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot","https:\u002F\u002Fgithub.com\u002FHKUDS","https:\u002F\u002Fsites.google.com\u002Fview\u002Fchaoh","2026-11-12 22:26:39",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add HKUDS\u002FAgentPilot --skill pptx-file-validation",{"tool":57,"command":58},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill pptx-file-validation",{"tool":60,"command":61},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill pptx-file-validation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpptx-file-validation\u002FSKILL.md",true,[65],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},".skill_id","OTHER","其他",34,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fgdpval_bench\u002Fskills\u002Fpptx-file-validation\u002F.skill_id",[72,92,111,134,158,178],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":38},"01M6HYB297NDABRERJRVG0K8R0","agentpilot","Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fplugins\u002Fagentpilot\u002Fskills\u002Fagentpilot\u002FSKILL.md",[],[74,79,80,81,82,83,84,85,86,87,88,89,90,91],"prepare","requests","with","missing","installation","rsi","up","use","user","work","SET","run","experiments",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":38},"01M6HYAYWXTTE1J7DJM0MFNQ4H","remember","Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fskills\u002Fremember\u002FSKILL.md",[],[94,99,100,101,102,103,104,105,106,107,108,109,110],"memory","review","auto","openspace","changes","facts","detect","entries","local","conflicts","stale","duplicates",{"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":120,"publishedAt":38},"01M6HYAVMPM4SBDV60R2B5HPV8","skill-discovery","Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fskill-discovery\u002FSKILL.md",[117],{"categoryNo":118,"categoryName":119,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[121,122,123,102,124,125,126,127,128,129,130,131,132,133],"skill discovery","discovery","reusable","step by step","tokens","packages","help","cloud","reliability","capabilities","browse","search","Tools",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":38},"01M6HYAR811B3RB0M50RBEDGN6","delegate-task","Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fdelegate-task\u002FSKILL.md",[140],{"categoryNo":118,"categoryName":119,"taxonomyType":21,"taxonomyTypeDesc":22},[142,143,144,102,145,146,147,148,149,123,101,86,150,151,152,153,154,155,156,157],"delegate","task","delegate task","time","improve","desktop automation","worker","community","autonomous","tool","stack","for","share","tasks","automation","MCP",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":38},"01M6HYAM9FSGV6E52AYENDQXYH","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\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[165,166,167,168,36,169,170,171,31,33,172,173,174,175,153,176,177],"write special chars ts check","write","check","type","filters","only","template","typescript","output","Existing","type-checking","errors","script",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":38},"01M6HYAH05HGV7SVWSVR8PJRQD","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\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[185,186,166,81,153,177,187,188,189,190,191,171,31,192,193,33],"write special chars readback","readback","helper","post","via","scripts","read","verification","cleanup"]