{"id":"81e84592-d2ce-49f2-aecc-8001b4629ef2","shortId":"LJU7v5","kind":"skill","title":"Pptx","tagline":"Skills skill by Anthropics","description":"# PPTX Skill\n\n## Quick Reference\n\n| Task | Guide |\n|------|-------|\n| Read/analyze 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/thumbnail.py presentation.pptx\n\n# Raw XML\npython scripts/office/unpack.py presentation.pptx unpacked/\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/light 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/after, pros/cons, 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/box 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 (< 0.3\" gaps) or cards/sections nearly touching\n- Uneven gaps (large empty area in one place, cramped in another)\n- Insufficient margin from slide edges (< 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. /path/to/slide-01.jpg (Expected: [brief description])\n2. /path/to/slide-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/office/soffice.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/office/soffice.py`)\n- Poppler (`pdftoppm`) - PDF to images","tags":["pptx","skills","anthropics"],"capabilities":["skill","source-anthropics","category-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/anthropics/skills/pptx","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.500","qualityRationale":"deterministic score 0.50 from registry signals: · indexed on skills.sh · published under anthropics/skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T02:40:11.863Z","embedding":null,"createdAt":"2026-04-18T20:23:32.403Z","updatedAt":"2026-04-24T02:40:11.863Z","lastSeenAt":"2026-04-24T02:40:11.863Z","tsv":"'-0.5':533 '-12':525 '-16':521,589 '-2':166 '-24':515 '-3':825 '-44':509 '-70':161 '-72':415 '/path/to/slide-01.jpg':1004 '/path/to/slide-02.jpg':1009 '0':668 '0.3':532,610,919 '0.5':529,612,941 '00a896':309 '028090':307 '02c39a':311 '065a82':288 '1':60,165,1003,1022 '10':524 '14':520,588 '150':1105,1125 '1c7293':291 '1e2761':255 '2':65,824,1008,1029 '20':514 '212121':303 '21295c':293 '2c5f2d':264 '2f3c7e':276,338 '2x2':381 '2x3':383 '3':1040 '36':508 '36454f':297 '36pt':583 '4':1043 '5':1055 '50808e':328 '60':160,414 '69a297':326 '6d2e46':315 '84b59f':324 '97bc62':266 '990011':332 'a26769':317 'a7beae':284 'accent':172,252,449,711 'account':678 'across':227,559 'add':641 'affect':1047 'ai':721 'ai-gener':720 'align':568,659,947 'almost':746 'analyz':61,1000 'anoth':935,1053 'anthrop':5 'anyon':107 'approach':749 'area':929,992 'arial':466,487,489,499 'arrow':436 'assum':732,868 'auto':1158 'auto-configur':1157 'avail':90 'avoid':545,648,697 'b85042':280 'background':103,182,696,702,708,727,961,971 'bash':34,775,795,1093,1121 'before/after':423 'berri':313,316 'big':412 'black':304,488 'bleed':397 'block':392,536 'blue':243,259,290,596 'bodi':479,483,518,564,591 'bold':120,331,377,511,517 'border':224 'bore':96 'boundari':893 'box':656,672,977 'breath':538 'brief':1006,1011 'bug':753 'bullet':99,651 'cadcfc':257 'calibri':486,490,491,494,497,503 'callout':411,558 'calm':323 'cambria':493 'caption':523 'card':556 'cards/sections':922 'carri':225 'category-skills' 'caus':980 'center':563,572 'charcoal':295,298 'chart':350,644 'check':780,790 'cherri':330,333 'choic':152 'choos':232,457,609 'circl':219,376,443,975 'citat':909 'clean':71,478 'close':918 'code':833 'collid':912 'color':124,137,157,176,218,230,233,375,442,598,728,960 'column':364,422,555,942 'commit':193,201,627 'common':546 'comparison':421 'complet':140,1072 'concern':994 'conclus':185 'configur':1159 'confirm':757 'consid':108 'consist':616,948 'consola':502 'content':13,33,70,122,189,391,405,535,773,783,914,985 'content-inform':121 'contrast':180,580,686,693,951,964,974 'convers':1156 'convert':848,853,857,1025,1081,1084,1098 'convert-to':1097 'converting-to-imag':856 'coral':270,273 'correct':748 'cramp':933 'cream':269,314,321,959 'cream-color':958 'creat':20,26,73,95,636,1052,1109,1150 'critic':1039 'cut':889 'cycl':1080 'dark':181,195,704,707,967,970 'dark/light':179 'data':407 'declar':816,1067 'decor':894 'deep':289 'default':240,464,594 'depend':1134 'descript':379,1007,1012 'design':91,130 'detail':59,81 'differ':141 'display':408 'distinct':208 'domin':153,159 'dusti':318 'e.g':953,966 'e7e8d1':282 'ece2d0':320 'edg':665,940 'edges/box':892 'edit':18,52,69 'editing.md':24,25,55,56 'element':209,348,504,647,687,877,885,916,945 'empti':928 'energi':271 'enough':151,772 'environ':1162 'equal':155,177 'etc':1112 'eucalyptus':327 'even':822,995 'everi':228,343,543 'excess':981 'execut':254 'expect':839,1005,1010 'extract':36,1140 'eye':847 'f':1126 'f2f2f2':299 'f5f5f5':268 'f96167':272 'f9e795':274 'fcf6f5':334 'feel':129,200 'ffffff':260 'fill':542 'find':740,872 'first':743,765 'fix':813,1041,1050,1077,1120,1133 'fix-and-verifi':1076 'flow':433 'font':460,470,480,482,484 'footer':911 'forest':262,265 'forget':654 'forgett':359 'found':761,1016,1032,1035 'frame':215 'fresh':846 'full':58,80,399,1059 'fulli':628 'g':1148 'gap':613,920,926 'garamond':501 'generat':722,1023 'generic':242 'georgia':485 'give':174 'gold':275 'gradient':287 'gray':955 'grep':800,810 'grid':384,389,1145 'guid':11 'half':396 'half-ble':395 'hallmark':718 'hard':771 'haven':147 'header':378,447,469,481,513 'headless':1096 'hunt':754 'ice':258 'icon':216,351,370,373,439,643,688,965,968 'idea':92,109 'ie':801 'illustr':367 'imag':214,349,385,398,642,851,855,859,1002,1027,1083,1089,1169 'impact':498 'impress':106 'inch':544 'includ':1017 'individu':1087 'inform':123 'inspect':766,865,1028,1092 'inspir':248 'instal':1136,1142,1147 'instead':729 'insuffici':936 'interest':459 'ipsum':804 'issu':763,871,990,1015,1031,1042,1064 'ital':448 'job':737 'jpeg':1103,1123 'keep':630 'key':452 'l':1128 'label':419 'larg':409,927 'layout':360,553,808 'least':1074 'leav':537,623 'left':366,400,567 'left-align':566 'leftov':792,983 'libreoffic':1153 'light':187,492,698,701,954 'line':660,712,881,895,900,907 'list':112,571,989,1030 'look':770,874,1036 'loop':1021 'lorem':803 'low':685,950,963 'low-contrast':684,949,962 'm':15,38,777,797 'made':149 'manipul':67 'margin':531,667,937 'markitdown':16,39,778,798,1137 'match':235 'midnight':253,294 'minim':296 'minimum':530 'minor':997,1018 'mint':312 'miss':782 'mistak':547 'mix':606 'moss':263,267 'motif':205 'ms':496 'mute':527 'n':1127,1129 'narrow':979 'navi':256,277,339 'near':923 'need':345,582,691 'never':173,709,747 'new':1063 'next':444 'none':1034 'npm':1146 'number':413,434 'ocean':286 'off-whit':300,335 'offset':674 'often':1051 'one':156,170,207,387,620,931,1019,1049,1075 'option':361,429 'order':786 'output.pdf':1106,1130 'output.pptx':779,799,1101 'overflow':887 'overlap':876 'overlay':406 'overview':42 'pack':72 'pad':657,680 'page':806 'pair':461,474 'palatino':500 'palett':125,127,231,246 'paragraph':569 'pass':1060 'pdf':1100,1155,1167 'pdftoppm':1102,1122,1166 'person':472 'pick':118,206,467,597 'pillow':1143 'pip':1135,1141 'place':932 'placehold':793,984 'plain':98,626,649 'polish':438 'poppler':1165 'posit':896 'pptx':1,6,1138 'pptxgenj':1149 'pptxgenjs.md':30,31,77,78 'premium':199 'present':88,142,1085 'presentation.pptx':17,40,45,50 'primari':250 'problem':735,1054 'process':432 'prompt':863 'pros/cons':424 'pt':416,510,516,522,526,590 'python':14,37,43,48,776,796,1094 'qa':730,750,774,819 'quick':8 'r':1104,1124 'random':608 'raw':46 're':1045,1115 're-rend':1114 're-verifi':1044 'read':23,29,32,54,76,998 'read/analyze':12 'refer':9,87 'reflect':600 'render':744,1116 'repeat':211,550,1056 'report':1013 'requir':731 'rest':625 'result':812 'return':811 'reveal':1061 'right':369,402 'room':539 'rose':319 'round':213 'row':372 'sage':285,322,325 'sand':283 'sandbox':1161 'sandwich':190 'scratch':28,75,1152 'scripts/office/soffice.py':1095,1164 'scripts/office/unpack.py':49 'scripts/thumbnail.py':44 'seafoam':310 'secondari':251 'section':446,512 'see':836,852 'set':666 'shape':353,662,676,880 'sharp':171 'side':223,388,403,426,428 'side-by-sid':425 'similar':944 'simpl':632 'singl':222,899 'single-lin':898 'single-sid':221 'size':505,579 'skill':2,3,7 'skimp':577 'slate':329 'slide':68,97,115,186,229,342,344,357,506,560,621,640,723,807,826,849,867,939,988,1024,1048,1088,1107,1118,1132 'slide-01.jpg':1110 'slide-02.jpg':1111 'slide-fix':1131 'small':418,441 'soffic':1154 'sourc':908 'source-anthropics' 'space':528,607 'specif':150,602,1117 'stack':884 'stand':585 'stare':830 'start':117 'stat':410,453 'step':435,758 'still':144 'strong':692 'structur':191 'style':619 'subag':821,844 'success':817,1068 'support':167 'swap':135 'taglin':455 'task':10 'teal':292,305,308 'templat':22,62,85,789 'terracotta':279,281 'text':35,355,365,371,450,519,565,638,655,664,671,690,699,705,794,878,886,901,952,956,976,1139 'text-on':354,637 'theme':249 'thick':220 'throughout':196,633 'thumbnail':1144 'thumbnail.py':64 'timelin':430 'titl':184,507,574,581,650,714,903 'tone':168 'topic':133,237,603 'touch':924 'trebuchet':495 'trust':306 'two':363,906 'two-column':362 'typo':784 'typographi':456 'uneven':925 'unpack':51,66 'use':82,244,615,683,710,724,788,820,861 'vari':554 've':828,1071 'verif':1020 'verifi':1046,1079 'via':1163 'visual':41,162,204,347,437,646,818,864,1091 'warm':278 'weight':163,178 'weren':768 'white':102,261,302,337 'whitespac':725 'without':972 'won':104 'word':883 'work':145 'workflow':53 'would':143 'wrap':904,982 'wrong':785 'xml':47 'xxxx':802 'zero':762","prices":[{"id":"db2844ad-2596-4546-9e87-c6862a836dc8","listingId":"81e84592-d2ce-49f2-aecc-8001b4629ef2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"anthropics","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:23:32.403Z"}],"sources":[{"listingId":"81e84592-d2ce-49f2-aecc-8001b4629ef2","source":"github","sourceId":"anthropics/skills/pptx","sourceUrl":"https://github.com/anthropics/skills/tree/main/skills/pptx","isPrimary":false,"firstSeenAt":"2026-04-18T21:24:28.251Z","lastSeenAt":"2026-04-24T00:50:10.523Z"},{"listingId":"81e84592-d2ce-49f2-aecc-8001b4629ef2","source":"skills_sh","sourceId":"anthropics/skills/pptx","sourceUrl":"https://skills.sh/anthropics/skills/pptx","isPrimary":true,"firstSeenAt":"2026-04-18T20:23:32.403Z","lastSeenAt":"2026-04-24T02:40:11.863Z"}],"details":{"listingId":"81e84592-d2ce-49f2-aecc-8001b4629ef2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"anthropics","slug":"pptx","source":"skills_sh","category":"skills","skills_sh_url":"https://skills.sh/anthropics/skills/pptx"},"updatedAt":"2026-04-24T02:40:11.863Z"}}