{"id":"4596f490-5e66-4b2c-9b16-90df9d74dc37","shortId":"XyFChX","kind":"skill","title":"pptx-processing-anthropic","tagline":"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 ","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","processing","anthropic","awesome","legal","skills","lawvable","agent-skills","automation","law","legal-work","workflows"],"capabilities":["skill","source-lawvable","skill-pptx-processing-anthropic","topic-agent-skills","topic-automation","topic-law","topic-legal-work","topic-workflows"],"categories":["awesome-legal-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/lawvable/awesome-legal-skills/pptx-processing-anthropic","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add lawvable/awesome-legal-skills","source_repo":"https://github.com/lawvable/awesome-legal-skills","install_from":"skills.sh"}},"qualityScore":"0.605","qualityRationale":"deterministic score 0.60 from registry signals: · indexed on github topic:agent-skills · 310 github stars · SKILL.md body (8,344 chars)","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-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:53:56.250Z","embedding":null,"createdAt":"2026-04-18T22:04:37.793Z","updatedAt":"2026-05-02T18:53:56.250Z","lastSeenAt":"2026-05-02T18:53:56.250Z","tsv":"'-0.5':580 '-12':572 '-16':568,636 '-2':213 '-24':562 '-3':872 '-44':556 '-70':208 '-72':462 '/path/to/slide-01.jpg':1051 '/path/to/slide-02.jpg':1056 '0':715 '0.3':579,657,966 '0.5':576,659,988 '00a896':356 '028090':354 '02c39a':358 '065a82':335 '1':107,212,1050,1069 '10':571 '14':567,635 '150':1152,1172 '1c7293':338 '1e2761':302 '2':112,871,1055,1076 '20':561 '212121':350 '21295c':340 '2c5f2d':311 '2f3c7e':323,385 '2x2':428 '2x3':430 '3':1087 '36':555 '36454f':344 '36pt':630 '4':1090 '5':1102 '50808e':375 '60':207,461 '69a297':373 '6d2e46':362 '84b59f':371 '97bc62':313 '990011':379 'a26769':364 'a7beae':331 'accent':219,299,496,758 'account':725 'across':274,606 'add':688 'affect':1094 'ai':768 'ai-gener':767 'align':615,706,994 'almost':793 'analyz':108,1047 'anoth':982,1100 'anthrop':4 'anyon':154 'approach':796 'area':976,1039 'arial':513,534,536,546 'arrow':483 'assum':779,915 'auto':1205 'auto-configur':1204 'avail':137 'avoid':592,695,744 'b85042':327 'background':150,229,743,749,755,774,1008,1018 'bash':81,822,842,1140,1168 'before/after':470 'berri':360,363 'big':459 'black':351,535 'bleed':444 'block':439,583 'blue':290,306,337,643 'bodi':526,530,565,611,638 'bold':167,378,424,558,564 'border':271 'bore':143 'boundari':940 'box':703,719,1024 'breath':585 'brief':1053,1058 'bug':800 'bullet':146,698 'cadcfc':304 'calibri':533,537,538,541,544,550 'callout':458,605 'calm':370 'cambria':540 'caption':570 'card':603 'cards/sections':969 'carri':272 'caus':1027 'center':610,619 'charcoal':342,345 'chart':397,691 'check':827,837 'cherri':377,380 'choic':199 'choos':279,504,656 'circl':266,423,490,1022 'citat':956 'clean':118,525 'close':965 'code':880 'collid':959 'color':171,184,204,223,265,277,280,422,489,645,775,1007 'column':411,469,602,989 'commit':240,248,674 'common':593 'comparison':468 'complet':187,1119 'concern':1041 'conclus':232 'configur':1206 'confirm':804 'consid':155 'consist':663,995 'consola':549 'content':45,60,80,117,169,236,438,452,582,820,830,961,1032 'content-inform':168 'contrast':227,627,733,740,998,1011,1021 'convers':1203 'convert':895,900,904,1072,1128,1131,1145 'convert-to':1144 'converting-to-imag':903 'coral':317,320 'correct':795 'cramp':980 'cream':316,361,368,1006 'cream-color':1005 'creat':25,67,73,120,142,683,1099,1156,1197 'critic':1086 'cut':936 'cycl':1127 'dark':228,242,751,754,1014,1017 'dark/light':226 'data':454 'deck':27,29 'declar':863,1114 'decor':941 'deep':336 'default':287,511,641 'depend':1181 'descript':426,1054,1059 'design':138,177 'detail':106,128 'differ':188 'display':455 'distinct':255 'domin':200,206 'dusti':365 'e.g':1000,1013 'e7e8d1':329 'ece2d0':367 'edg':712,987 'edges/box':939 'edit':65,99,116 'editing.md':71,72,102,103 'element':256,395,551,694,734,924,932,963,992 'elsewher':49 'empti':975 'energi':318 'enough':198,819 'environ':1209 'equal':202,224 'etc':1159 'eucalyptus':374 'even':41,869,1042 'everi':275,390,590 'excess':1028 'execut':301 'expect':886,1052,1057 'extract':35,44,83,1187 'eye':894 'f':1173 'f2f2f2':346 'f5f5f5':315 'f96167':319 'f9e795':321 'fcf6f5':381 'feel':176,247 'ffffff':307 'file':12,40 'fill':589 'find':787,919 'first':790,812 'fix':860,1088,1097,1124,1167,1180 'fix-and-verifi':1123 'flow':480 'font':507,517,527,529,531 'footer':958 'forest':309,312 'forget':701 'forgett':406 'found':808,1063,1079,1082 'frame':262 'fresh':893 'full':105,127,446,1106 'fulli':675 'g':1195 'gap':660,967,973 'garamond':548 'generat':769,1070 'generic':289 'georgia':532 'give':221 'gold':322 'gradient':334 'gray':1002 'grep':847,857 'grid':431,436,1192 'guid':58 'half':443 'half-ble':442 'hallmark':765 'hard':818 'haven':194 'header':425,494,516,528,560 'headless':1143 'hunt':801 'ice':305 'icon':263,398,417,420,486,690,735,1012,1015 'idea':139,156 'ie':848 'illustr':414 'imag':261,396,432,445,689,898,902,906,1049,1074,1130,1136,1216 'impact':545 'impress':153 'inch':591 'includ':24,1064 'individu':1134 'inform':170 'input':19 'inspect':813,912,1075,1139 'inspir':295 'instal':1183,1189,1194 'instead':776 'insuffici':983 'interest':506 'involv':14 'ipsum':851 'issu':810,918,1037,1062,1078,1089,1111 'ital':495 'job':784 'jpeg':1150,1170 'keep':677 'key':499 'l':1175 'label':466 'larg':456,974 'layout':407,600,855 'least':1121 'leav':584,670 'left':413,447,614 'left-align':613 'leftov':839,1030 'libreoffic':1200 'light':234,539,745,748,1001 'like':50 'line':707,759,928,942,947,954 'list':159,618,1036,1077 'look':817,921,1083 'loop':1068 'lorem':850 'low':732,997,1010 'low-contrast':731,996,1009 'm':62,85,824,844 'made':196 'manipul':114 'margin':578,714,984 'markitdown':63,86,825,845,1184 'match':282 'midnight':300,341 'minim':343 'minimum':577 'minor':1044,1065 'mint':359 'miss':829 'mistak':594 'mix':653 'moss':310,314 'motif':252 'ms':543 'mute':574 'n':1174,1176 'narrow':1026 'navi':303,324,386 'near':970 'need':392,629,738 'never':220,756,794 'new':1110 'next':491 'none':1081 'npm':1193 'number':460,481 'ocean':333 'off-whit':347,382 'offset':721 'often':1098 'one':203,217,254,434,667,978,1066,1096,1122 'option':408,476 'order':833 'output':20 'output.pdf':1153,1177 'output.pptx':826,846,1148 'overflow':934 'overlap':923 'overlay':453 'overview':89 'pack':119 'pad':704,727 'page':853 'pair':508,521 'palatino':547 'palett':172,174,278,293 'paragraph':616 'pars':33 'pass':1107 'pdf':1147,1202,1214 'pdftoppm':1149,1169,1213 'person':519 'pick':165,253,514,644 'pillow':1190 'pip':1182,1188 'pitch':28 'place':979 'placehold':840,1031 'plain':145,673,696 'polish':485 'poppler':1212 'posit':943 'pptx':2,11,39,53,1185 'pptx-processing-anthrop':1 'pptxgenj':1196 'pptxgenjs.md':77,78,124,125 'premium':246 'present':31,135,189,1132 'presentation.pptx':64,87,92,97 'primari':297 'problem':782,1101 'process':3,479 'prompt':910 'pros/cons':471 'pt':463,557,563,569,573,637 'python':61,84,90,95,823,843,1141 'qa':777,797,821,866 'quick':55 'r':1151,1171 'random':655 'raw':93 're':1092,1162 're-rend':1161 're-verifi':1091 'read':32,70,76,79,101,123,1045 'read/analyze':59 'refer':56,134 'reflect':647 'render':791,1163 'repeat':258,597,1103 'report':1060 'requir':778 'rest':672 'result':859 'return':858 'reveal':1108 'right':416,449 'room':586 'rose':366 'round':260 'row':419 'sage':332,369,372 'sand':330 'sandbox':1208 'sandwich':237 'scratch':75,122,1199 'scripts/office/soffice.py':1142,1211 'scripts/office/unpack.py':96 'scripts/thumbnail.py':91 'seafoam':357 'secondari':298 'section':493,559 'see':883,899 'set':713 'shape':400,709,723,927 'sharp':218 'side':270,435,450,473,475 'side-by-sid':472 'similar':991 'simpl':679 'singl':269,946 'single-lin':945 'single-sid':268 'size':552,626 'skill':7,54 'skill-pptx-processing-anthropic' 'skimp':624 'slate':376 'slide':26,115,144,162,233,276,389,391,404,553,607,668,687,770,854,873,896,914,986,1035,1071,1095,1135,1154,1165,1179 'slide-01.jpg':1157 'slide-02.jpg':1158 'slide-fix':1178 'small':465,488 'soffic':1201 'sourc':955 'source-lawvable' 'space':575,654 'specif':197,649,1164 'stack':931 'stand':632 'stare':877 'start':164 'stat':457,500 'step':482,805 'still':191 'strong':739 'structur':238 'style':666 'subag':868,891 'success':864,1115 'support':214 'swap':182 'taglin':502 'task':57 'teal':339,352,355 'templat':69,109,132,836 'terracotta':326,328 'text':36,82,402,412,418,497,566,612,685,702,711,718,737,746,752,841,925,933,948,999,1003,1023,1186 'text-on':401,684 'theme':296 'thick':267 'throughout':243,680 'thumbnail':1191 'thumbnail.py':111 'time':9 'timelin':477 'titl':231,554,621,628,697,761,950 'tone':215 'topic':180,284,650 'topic-agent-skills' 'topic-automation' 'topic-law' 'topic-legal-work' 'topic-workflows' 'touch':971 'trebuchet':542 'trust':353 'two':410,953 'two-column':409 'typo':831 'typographi':503 'uneven':972 'unpack':98,113 'use':5,48,129,291,662,730,757,771,835,867,908 'vari':601 've':875,1118 'verif':1067 'verifi':1093,1126 'via':1210 'visual':88,209,251,394,484,693,865,911,1138 'warm':325 'way':17 'weight':210,225 'weren':815 'white':149,308,349,384 'whitespac':772 'without':1019 'won':151 'word':930 'work':192 'workflow':100 'would':190 'wrap':951,1029 'wrong':832 'xml':94 'xxxx':849 'zero':809","prices":[{"id":"53cc3bcb-7910-4c09-b9a0-de48a6614de5","listingId":"4596f490-5e66-4b2c-9b16-90df9d74dc37","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"lawvable","category":"awesome-legal-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:04:37.793Z"}],"sources":[{"listingId":"4596f490-5e66-4b2c-9b16-90df9d74dc37","source":"github","sourceId":"lawvable/awesome-legal-skills/pptx-processing-anthropic","sourceUrl":"https://github.com/lawvable/awesome-legal-skills/tree/main/skills/pptx-processing-anthropic","isPrimary":false,"firstSeenAt":"2026-04-18T22:04:37.793Z","lastSeenAt":"2026-05-02T18:53:56.250Z"}],"details":{"listingId":"4596f490-5e66-4b2c-9b16-90df9d74dc37","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"lawvable","slug":"pptx-processing-anthropic","github":{"repo":"lawvable/awesome-legal-skills","stars":310,"topics":["agent-skills","automation","law","legal-work","workflows"],"license":"other","html_url":"https://github.com/lawvable/awesome-legal-skills","pushed_at":"2026-03-03T11:25:06Z","description":"A curated list of awesome Agent Skills for automating legal work","skill_md_sha":"40f7b8ab73f368bd12b349d00af61565a573d3a8","skill_md_path":"skills/pptx-processing-anthropic/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/lawvable/awesome-legal-skills/tree/main/skills/pptx-processing-anthropic"},"layout":"multi","source":"github","category":"awesome-legal-skills","frontmatter":{"name":"pptx-processing-anthropic","description":"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."},"skills_sh_url":"https://skills.sh/lawvable/awesome-legal-skills/pptx-processing-anthropic"},"updatedAt":"2026-05-02T18:53:56.250Z"}}