[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-910d69e3-71c5-45e1-ba47-15ba66a8a0e5":3,"$fNOjeI0j0H_aNlIaCcisW0e0xCFAVOhkxQm9fiEY7Sa0":41},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":32},"910d69e3-71c5-45e1-ba47-15ba66a8a0e5","pptx","在任何涉及.pptx文件的情况下使用此技能——无论是作为输入、输出还是两者兼具。这包括：创建幻灯片、提案或演示文稿；读取、解析或从任何.pptx文件中提取文本（即使提取的内容将用于其他地方，如电子邮件或摘要）；编辑、修改或更新现有演示文稿；合并或拆分幻灯片文件；使用模板、布局、演讲者备注或注释。当用户提到“deck”时触发……","cat_design_presentation","mod_design","anthropics,design","---\nname: pptx\ndescription: \"Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \\\"deck,\\\" \\\"slides,\\\" \\\"presentation,\\\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.\"\nlicense: Proprietary. LICENSE.txt has complete terms\n---\n\n# PPTX Skill\n\n## Quick Reference\n\n| Task | Guide |\n|------|-------|\n| Read\u002Fanalyze content | `python -m markitdown presentation.pptx` |\n| Edit or create from template | Read [editing.md](editing.md) |\n| Create from scratch | Read [pptxgenjs.md](pptxgenjs.md) |\n\n---\n\n## Reading Content\n\n```bash\n# Text extraction\npython -m markitdown presentation.pptx\n\n# Visual overview\npython scripts\u002Fthumbnail.py presentation.pptx\n\n# Raw XML\npython scripts\u002Foffice\u002Funpack.py presentation.pptx unpacked\u002F\n```\n\n---\n\n## Editing Workflow\n\n**Read [editing.md](editing.md) for full details.**\n\n1. Analyze template with `thumbnail.py`\n2. Unpack → manipulate slides → edit content → clean → pack\n\n---\n\n## Creating from Scratch\n\n**Read [pptxgenjs.md](pptxgenjs.md) for full details.**\n\nUse when no template or reference presentation is available.\n\n---\n\n## Design Ideas\n\n**Don't create boring slides.** Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.\n\n### Before Starting\n\n- **Pick a bold, content-informed color palette**: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still \"work,\" you haven't made specific enough choices.\n- **Dominance over equality**: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight.\n- **Dark\u002Flight contrast**: Dark backgrounds for title + conclusion slides, light for content (\"sandwich\" structure). Or commit to dark throughout for a premium feel.\n- **Commit to a visual motif**: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders. Carry it across every slide.\n\n### Color Palettes\n\nChoose colors that match your topic — don't default to generic blue. Use these palettes as inspiration:\n\n| Theme | Primary | Secondary | Accent |\n|-------|---------|-----------|--------|\n| **Midnight Executive** | `1E2761` (navy) | `CADCFC` (ice blue) | `FFFFFF` (white) |\n| **Forest & Moss** | `2C5F2D` (forest) | `97BC62` (moss) | `F5F5F5` (cream) |\n| **Coral Energy** | `F96167` (coral) | `F9E795` (gold) | `2F3C7E` (navy) |\n| **Warm Terracotta** | `B85042` (terracotta) | `E7E8D1` (sand) | `A7BEAE` (sage) |\n| **Ocean Gradient** | `065A82` (deep blue) | `1C7293` (teal) | `21295C` (midnight) |\n| **Charcoal Minimal** | `36454F` (charcoal) | `F2F2F2` (off-white) | `212121` (black) |\n| **Teal Trust** | `028090` (teal) | `00A896` (seafoam) | `02C39A` (mint) |\n| **Berry & Cream** | `6D2E46` (berry) | `A26769` (dusty rose) | `ECE2D0` (cream) |\n| **Sage Calm** | `84B59F` (sage) | `69A297` (eucalyptus) | `50808E` (slate) |\n| **Cherry Bold** | `990011` (cherry) | `FCF6F5` (off-white) | `2F3C7E` (navy) |\n\n### For Each Slide\n\n**Every slide needs a visual element** — image, chart, icon, or shape. Text-only slides are forgettable.\n\n**Layout options:**\n- Two-column (text left, illustration on right)\n- Icon + text rows (icon in colored circle, bold header, description below)\n- 2x2 or 2x3 grid (image on one side, grid of content blocks on other)\n- Half-bleed image (full left or right side) with content overlay\n\n**Data display:**\n- Large stat callouts (big numbers 60-72pt with small labels below)\n- Comparison columns (before\u002Fafter, pros\u002Fcons, side-by-side options)\n- Timeline or process flow (numbered steps, arrows)\n\n**Visual polish:**\n- Icons in small colored circles next to section headers\n- Italic accent text for key stats or taglines\n\n### Typography\n\n**Choose an interesting font pairing** — don't default to Arial. Pick a header font with personality and pair it with a clean body font.\n\n| Header Font | Body Font |\n|-------------|-----------|\n| Georgia | Calibri |\n| Arial Black | Arial |\n| Calibri | Calibri Light |\n| Cambria | Calibri |\n| Trebuchet MS | Calibri |\n| Impact | Arial |\n| Palatino | Garamond |\n| Consolas | Calibri |\n\n| Element | Size |\n|---------|------|\n| Slide title | 36-44pt bold |\n| Section header | 20-24pt bold |\n| Body text | 14-16pt |\n| Captions | 10-12pt muted |\n\n### Spacing\n\n- 0.5\" minimum margins\n- 0.3-0.5\" between content blocks\n- Leave breathing room—don't fill every inch\n\n### Avoid (Common Mistakes)\n\n- **Don't repeat the same layout** — vary columns, cards, and callouts across slides\n- **Don't center body text** — left-align paragraphs and lists; center only titles\n- **Don't skimp on size contrast** — titles need 36pt+ to stand out from 14-16pt body\n- **Don't default to blue** — pick colors that reflect the specific topic\n- **Don't mix spacing randomly** — choose 0.3\" or 0.5\" gaps and use consistently\n- **Don't style one slide and leave the rest plain** — commit fully or keep it simple throughout\n- **Don't create text-only slides** — add images, icons, charts, or visual elements; avoid plain title + bullets\n- **Don't forget text box padding** — when aligning lines or shapes with text edges, set `margin: 0` on the text box or offset the shape to account for padding\n- **Don't use low-contrast elements** — icons AND text need strong contrast against the background; avoid light text on light backgrounds or dark text on dark backgrounds\n- **NEVER use accent lines under titles** — these are a hallmark of AI-generated slides; use whitespace or background color instead\n\n---\n\n## QA (Required)\n\n**Assume there are problems. Your job is to find them.**\n\nYour first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.\n\n### Content QA\n\n```bash\npython -m markitdown output.pptx\n```\n\nCheck for missing content, typos, wrong order.\n\n**When using templates, check for leftover placeholder text:**\n\n```bash\npython -m markitdown output.pptx | grep -iE \"xxxx|lorem|ipsum|this.*(page|slide).*layout\"\n```\n\nIf grep returns results, fix them before declaring success.\n\n### Visual QA\n\n**⚠️ USE SUBAGENTS** — even for 2-3 slides. You've been staring at the code and will see what you expect, not what's there. Subagents have fresh eyes.\n\nConvert slides to images (see [Converting to Images](#converting-to-images)), then use this prompt:\n\n```\nVisually inspect these slides. Assume there are issues — find them.\n\nLook for:\n- Overlapping elements (text through shapes, lines through words, stacked elements)\n- Text overflow or cut off at edges\u002Fbox boundaries\n- Decorative lines positioned for single-line text but title wrapped to two lines\n- Source citations or footers colliding with content above\n- Elements too close (\u003C 0.3\" gaps) or cards\u002Fsections nearly touching\n- Uneven gaps (large empty area in one place, cramped in another)\n- Insufficient margin from slide edges (\u003C 0.5\")\n- Columns or similar elements not aligned consistently\n- Low-contrast text (e.g., light gray text on cream-colored background)\n- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)\n- Text boxes too narrow causing excessive wrapping\n- Leftover placeholder content\n\nFor each slide, list issues or areas of concern, even if minor.\n\nRead and analyze these images:\n1. \u002Fpath\u002Fto\u002Fslide-01.jpg (Expected: [brief description])\n2. \u002Fpath\u002Fto\u002Fslide-02.jpg (Expected: [brief description])\n\nReport ALL issues found, including minor ones.\n```\n\n### Verification Loop\n\n1. Generate slides → Convert to images → Inspect\n2. **List issues found** (if none found, look again more critically)\n3. Fix issues\n4. **Re-verify affected slides** — one fix often creates another problem\n5. Repeat until a full pass reveals no new issues\n\n**Do not declare success until you've completed at least one fix-and-verify cycle.**\n\n---\n\n## Converting to Images\n\nConvert presentations to individual slide images for visual inspection:\n\n```bash\npython scripts\u002Foffice\u002Fsoffice.py --headless --convert-to pdf output.pptx\npdftoppm -jpeg -r 150 output.pdf slide\n```\n\nThis creates `slide-01.jpg`, `slide-02.jpg`, etc.\n\nTo re-render specific slides after fixes:\n\n```bash\npdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed\n```\n\n---\n\n## Dependencies\n\n- `pip install \"markitdown[pptx]\"` - text extraction\n- `pip install Pillow` - thumbnail grids\n- `npm install -g pptxgenjs` - creating from scratch\n- LibreOffice (`soffice`) - PDF conversion (auto-configured for sandboxed environments via `scripts\u002Foffice\u002Fsoffice.py`)\n- Poppler (`pdftoppm`) - PDF to images\n","","imported","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","user_system_seed","SkillOPIC",true,202,732,"2026-05-16 12:56:52",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"设计创意","design","mdi-palette-outline","UI 设计、生成艺术、品牌视觉等创意 Skill",3,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":25,"skillCount":25,"createdAt":26},"演示文稿","presentation","mdi-presentation","PPT 制作、幻灯片设计",[33],{"id":34,"skillId":4,"version":35,"fileName":36,"fileSize":37,"filePath":38,"fileHash":39,"manifest":40,"createdAt":19},"d12e95ac-0e3f-494f-8238-5e065b8ea62d","1.0.0","pptx.zip",161739,"uploads\u002Fskills\u002F910d69e3-71c5-45e1-ba47-15ba66a8a0e5\u002Fpptx.zip","40ca4f4010c0fc4c5cca31c88d610bca6681bc22f6847a264c5e8d78e8d20ba6","[{\"path\":\"LICENSE.txt\",\"isDirectory\":false,\"size\":1467},{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":9182},{\"path\":\"editing.md\",\"isDirectory\":false,\"size\":6885},{\"path\":\"pptxgenjs.md\",\"isDirectory\":false,\"size\":12819},{\"path\":\"scripts\u002F__init__.py\",\"isDirectory\":false,\"size\":0},{\"path\":\"scripts\u002Fadd_slide.py\",\"isDirectory\":false,\"size\":6872},{\"path\":\"scripts\u002Fclean.py\",\"isDirectory\":false,\"size\":9583},{\"path\":\"scripts\u002Foffice\u002Fhelpers\u002F__init__.py\",\"isDirectory\":false,\"size\":0},{\"path\":\"scripts\u002Foffice\u002Fhelpers\u002Fmerge_runs.py\",\"isDirectory\":false,\"size\":5567},{\"path\":\"scripts\u002Foffice\u002Fhelpers\u002Fsimplify_redlines.py\",\"isDirectory\":false,\"size\":5754},{\"path\":\"scripts\u002Foffice\u002Fpack.py\",\"isDirectory\":false,\"size\":4991},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd\",\"isDirectory\":false,\"size\":74984},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd\",\"isDirectory\":false,\"size\":6956},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd\",\"isDirectory\":false,\"size\":51302},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd\",\"isDirectory\":false,\"size\":624},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd\",\"isDirectory\":false,\"size\":152039},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd\",\"isDirectory\":false,\"size\":1231},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd\",\"isDirectory\":false,\"size\":8862},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd\",\"isDirectory\":false,\"size\":14795},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd\",\"isDirectory\":false,\"size\":83612},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd\",\"isDirectory\":false,\"size\":1269},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd\",\"isDirectory\":false,\"size\":7328},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd\",\"isDirectory\":false,\"size\":6382},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd\",\"isDirectory\":false,\"size\":1248},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd\",\"isDirectory\":false,\"size\":880},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd\",\"isDirectory\":false,\"size\":2608},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd\",\"isDirectory\":false,\"size\":3507},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd\",\"isDirectory\":false,\"size\":7507},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd\",\"isDirectory\":false,\"size\":23313},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd\",\"isDirectory\":false,\"size\":1367},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd\",\"isDirectory\":false,\"size\":242277},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd\",\"isDirectory\":false,\"size\":26148},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd\",\"isDirectory\":false,\"size\":25279},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd\",\"isDirectory\":false,\"size\":535},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd\",\"isDirectory\":false,\"size\":5712},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd\",\"isDirectory\":false,\"size\":4010},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd\",\"isDirectory\":false,\"size\":171367},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd\",\"isDirectory\":false,\"size\":4646},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd\",\"isDirectory\":false,\"size\":1963},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd\",\"isDirectory\":false,\"size\":2515},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd\",\"isDirectory\":false,\"size\":2856},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd\",\"isDirectory\":false,\"size\":1344},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmce\u002Fmc.xsd\",\"isDirectory\":false,\"size\":3127},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd\",\"isDirectory\":false,\"size\":26549},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd\",\"isDirectory\":false,\"size\":3745},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd\",\"isDirectory\":false,\"size\":901},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd\",\"isDirectory\":false,\"size\":1778},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd\",\"isDirectory\":false,\"size\":1002},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd\",\"isDirectory\":false,\"size\":600},{\"path\":\"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd\",\"isDirectory\":false,\"size\":745},{\"path\":\"scripts\u002Foffice\u002Fsoffice.py\",\"isDirectory\":false,\"size\":5301},{\"path\":\"scripts\u002Foffice\u002Funpack.py\",\"isDirectory\":false,\"size\":4052},{\"path\":\"scripts\u002Foffice\u002Fvalidate.py\",\"isDirectory\":false,\"size\":3668},{\"path\":\"scripts\u002Foffice\u002Fvalidators\u002F__init__.py\",\"isDirectory\":false,\"size\":336},{\"path\":\"scripts\u002Foffice\u002Fvalidators\u002Fbase.py\",\"isDirectory\":false,\"size\":32651},{\"path\":\"scripts\u002Foffice\u002Fvalidators\u002Fdocx.py\",\"isDirectory\":false,\"size\":16376},{\"path\":\"scripts\u002Foffice\u002Fvalidators\u002Fpptx.py\",\"isDirectory\":false,\"size\":9824},{\"path\":\"scripts\u002Foffice\u002Fvalidators\u002Fredlining.py\",\"isDirectory\":false,\"size\":8918},{\"path\":\"scripts\u002Fthumbnail.py\",\"isDirectory\":false,\"size\":8785}]",{"code":42,"message":43,"data":44},200,"success",{"items":45,"stats":46,"page":49},[],{"averageRating":47,"totalRatings":47,"ratingCounts":48},0,[47,47,47,47,47],{"limit":50,"offset":47,"hasMore":51,"nextOffset":50,"ratedOnly":16},15,false]