[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-ppt-template-creator":3,"mdc-tyt450-key":36,"related-repo-anthropic-ppt-template-creator":2633,"related-org-anthropic-ppt-template-creator":2746},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":34,"mdContent":35},"ppt-template-creator","create reusable PowerPoint template skills","Creates self-contained PPT template SKILLS (not presentations) from user-provided PowerPoint templates. Use ONLY when a user wants to create a reusable skill from their template. For creating actual presentations, use the pptx skill instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Presentations","presentations","tag",{"name":18,"slug":19,"type":16},"PowerPoint","powerpoint",{"name":21,"slug":22,"type":16},"Finance","finance",{"name":24,"slug":25,"type":16},"Templates","templates",33636,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Ffinancial-services","2026-05-15T06:09:46.631629",null,4964,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":29},[],"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Ffinancial-services\u002Ftree\u002FHEAD\u002Fplugins\u002Fvertical-plugins\u002Ffinancial-analysis\u002Fskills\u002Fppt-template-creator","---\nname: ppt-template-creator\ndescription: Creates self-contained PPT template SKILLS (not presentations) from user-provided PowerPoint templates. Use ONLY when a user wants to create a reusable skill from their template. For creating actual presentations, use the pptx skill instead.\n---\n\n# PPT Template Creator\n\n**This skill creates SKILLS, not presentations.** Use this when a user wants to turn their PowerPoint template into a reusable skill that can generate presentations later. If the user just wants to create a presentation, use the `pptx` skill instead.\n\nThe generated skill includes:\n- `assets\u002Ftemplate.pptx` - the template file\n- `SKILL.md` - complete instructions (no reference to this meta skill needed)\n\n**For general skill-building best practices**, refer to the `skill-creator` skill. This skill focuses on PPT-specific patterns.\n\n## Workflow\n\n1. **User provides template** (.pptx or .potx)\n2. **Analyze template** - extract layouts, placeholders, dimensions\n3. **Initialize skill** - use the `skill-creator` skill to set up the skill structure\n4. **Add template** - copy .pptx to `assets\u002Ftemplate.pptx`\n5. **Write SKILL.md** - follow template below with PPT-specific details\n6. **Create example** - generate sample presentation to validate\n7. **Package** - use the `skill-creator` skill to package into a .skill file\n\n## Step 2: Analyze Template\n\n**CRITICAL: Extract precise placeholder positions** - this determines content area boundaries.\n\n```python\nfrom pptx import Presentation\n\nprs = Presentation(template_path)\nprint(f\"Dimensions: {prs.slide_width\u002F914400:.2f}\\\" x {prs.slide_height\u002F914400:.2f}\\\"\")\nprint(f\"Layouts: {len(prs.slide_layouts)}\")\n\nfor idx, layout in enumerate(prs.slide_layouts):\n    print(f\"\\n[{idx}] {layout.name}:\")\n    for ph in layout.placeholders:\n        try:\n            ph_idx = ph.placeholder_format.idx\n            ph_type = ph.placeholder_format.type\n            # IMPORTANT: Extract exact positions in inches\n            left = ph.left \u002F 914400\n            top = ph.top \u002F 914400\n            width = ph.width \u002F 914400\n            height = ph.height \u002F 914400\n            print(f\"    idx={ph_idx}, type={ph_type}\")\n            print(f\"        x={left:.2f}\\\", y={top:.2f}\\\", w={width:.2f}\\\", h={height:.2f}\\\"\")\n        except:\n            pass\n```\n\n**Key measurements to document:**\n- **Title position**: Where does the title placeholder sit?\n- **Subtitle\u002Fdescription**: Where is the subtitle line?\n- **Footer placeholders**: Where do footers\u002Fsources appear?\n- **Content area**: The space BETWEEN subtitle and footer is your content area\n\n### Finding the True Content Start Position\n\n**CRITICAL:** The content area does NOT always start immediately after the subtitle placeholder. Many templates have a visual border, line, or reserved space between the subtitle and content area.\n\n**Best approach:** Look at Layout 2 or similar \"content\" layouts that have an OBJECT placeholder - this placeholder's `y` position indicates where content should actually start.\n\n```python\n# Find the OBJECT placeholder to determine true content start\nfor idx, layout in enumerate(prs.slide_layouts):\n    for ph in layout.placeholders:\n        try:\n            if ph.placeholder_format.type == 7:  # OBJECT type\n                top = ph.top \u002F 914400\n                print(f\"Layout [{idx}] {layout.name}: OBJECT starts at y={top:.2f}\\\"\")\n                # This y value is where your content should start!\n        except:\n            pass\n```\n\n**Example:** A template might have:\n- Subtitle ending at y=1.38\"\n- But OBJECT placeholder starting at y=1.90\"\n- The gap (0.52\") is reserved for a border\u002Fline - **do not place content there**\n\nUse the OBJECT placeholder's `y` position as your content start, not the subtitle's end position.\n\n## Step 5: Write SKILL.md\n\nThe generated skill should have this structure:\n```\n[company]-ppt-template\u002F\n├── SKILL.md\n└── assets\u002F\n    └── template.pptx\n```\n\n### Generated SKILL.md Template\n\nThe generated SKILL.md must be **self-contained** with all instructions embedded. Use this template, filling in the bracketed values from your analysis:\n\n````markdown\n---\nname: [company]-ppt-template\ndescription: [Company] PowerPoint template for creating presentations. Use when creating [Company]-branded pitch decks, board materials, or client presentations.\n---\n\n# [Company] PPT Template\n\nTemplate: `assets\u002Ftemplate.pptx` ([WIDTH]\" x [HEIGHT]\", [N] layouts)\n\n## Creating Presentations\n\n```python\nfrom pptx import Presentation\n\nprs = Presentation(\"path\u002Fto\u002Fskill\u002Fassets\u002Ftemplate.pptx\")\n\n# DELETE all existing slides first\nwhile len(prs.slides) > 0:\n    rId = prs.slides._sldIdLst[0].rId\n    prs.part.drop_rel(rId)\n    del prs.slides._sldIdLst[0]\n\n# Add slides from layouts\nslide = prs.slides.add_slide(prs.slide_layouts[LAYOUT_IDX])\n```\n\n## Key Layouts\n\n| Index | Name | Use For |\n|-------|------|---------|\n| [0] | [Layout Name] | [Cover\u002Ftitle slide] |\n| [N] | [Layout Name] | [Content with bullets] |\n| [N] | [Layout Name] | [Two-column layout] |\n\n## Placeholder Mapping\n\n**CRITICAL: Include exact positions (x, y coordinates) for each placeholder.**\n\n### Layout [N]: [Name]\n| idx | Type | Position | Use |\n|-----|------|----------|-----|\n| [idx] | TITLE (1) | y=[Y]\" | Slide title |\n| [idx] | BODY (2) | y=[Y]\" | Subtitle\u002Fdescription |\n| [idx] | BODY (2) | y=[Y]\" | Footer |\n| [idx] | BODY (2) | y=[Y]\" | Source\u002Fnotes |\n\n### Content Area Boundaries\n\n**Document the safe content area for custom shapes\u002Ftables\u002Fcharts:**\n\n```\nContent Area (for Layout [N]):\n- Left margin: [X]\" (content starts here)\n- Top: [Y]\" (below subtitle placeholder)\n- Width: [W]\"\n- Height: [H]\" (ends before footer)\n\nFor 4-quadrant layouts:\n- Left column: x=[X]\", width=[W]\"\n- Right column: x=[X]\", width=[W]\"\n- Top row: y=[Y]\", height=[H]\"\n- Bottom row: y=[Y]\", height=[H]\"\n```\n\n**Why this matters:** Custom content (textboxes, tables, charts) must stay within these boundaries to avoid overlapping with template placeholders like titles, footers, and source lines.\n\n## Filling Content\n\n**Do NOT add manual bullet characters** - slide master handles formatting.\n\n```python\n# Fill title\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        if shape.placeholder_format.type == 1:  # TITLE\n            shape.text = \"Slide Title\"\n\n# Fill content with hierarchy (level 0 = header, level 1 = bullet)\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        idx = shape.placeholder_format.idx\n        if idx == [CONTENT_IDX]:\n            tf = shape.text_frame\n            for para in tf.paragraphs:\n                para.clear()\n\n            content = [\n                (\"Section Header\", 0),\n                (\"First bullet point\", 1),\n                (\"Second bullet point\", 1),\n            ]\n\n            tf.paragraphs[0].text = content[0][0]\n            tf.paragraphs[0].level = content[0][1]\n            for text, level in content[1:]:\n                p = tf.add_paragraph()\n                p.text = text\n                p.level = level\n```\n\n## Example: Cover Slide\n\n```python\nslide = prs.slides.add_slide(prs.slide_layouts[[COVER_IDX]])\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        idx = shape.placeholder_format.idx\n        if idx == [TITLE_IDX]:\n            shape.text = \"Company Name\"\n        elif idx == [SUBTITLE_IDX]:\n            shape.text = \"Presentation Title | Date\"\n```\n\n## Example: Content Slide\n\n```python\nslide = prs.slides.add_slide(prs.slide_layouts[[CONTENT_IDX]])\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        ph_type = shape.placeholder_format.type\n        idx = shape.placeholder_format.idx\n        if ph_type == 1:\n            shape.text = \"Executive Summary\"\n        elif idx == [BODY_IDX]:\n            tf = shape.text_frame\n            for para in tf.paragraphs:\n                para.clear()\n            content = [\n                (\"Key Findings\", 0),\n                (\"Revenue grew 40% YoY to $50M\", 1),\n                (\"Expanded to 3 new markets\", 1),\n                (\"Recommendation\", 0),\n                (\"Proceed with strategic initiative\", 1),\n            ]\n            tf.paragraphs[0].text = content[0][0]\n            tf.paragraphs[0].level = content[0][1]\n            for text, level in content[1:]:\n                p = tf.add_paragraph()\n                p.text = text\n                p.level = level\n```\n````\n\n## Step 6: Create Example Output\n\nGenerate a sample presentation to validate the skill works. Save it alongside the skill for reference.\n\n## PPT-Specific Rules for Generated Skills\n\n1. **Template in assets\u002F** - always bundle the .pptx file\n2. **Self-contained SKILL.md** - all instructions embedded, no external references\n3. **No manual bullets** - use `paragraph.level` for hierarchy\n4. **Delete slides first** - always clear existing slides before adding new ones\n5. **Document placeholders by idx** - placeholder idx values are template-specific\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,49,70,75,102,120,127,219,225,235,437,445,488,495,505,523,605,615,638,650,656,661,671,677,689,2549,2555,2560,2566,2627],{"type":42,"tag":43,"props":44,"children":45},"element","h1",{"id":4},[46],{"type":47,"value":48},"text","PPT Template Creator",{"type":42,"tag":50,"props":51,"children":52},"p",{},[53,59,61,68],{"type":42,"tag":54,"props":55,"children":56},"strong",{},[57],{"type":47,"value":58},"This skill creates SKILLS, not presentations.",{"type":47,"value":60}," Use this when a user wants to turn their PowerPoint template into a reusable skill that can generate presentations later. If the user just wants to create a presentation, use the ",{"type":42,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":47,"value":67},"pptx",{"type":47,"value":69}," skill instead.",{"type":42,"tag":50,"props":71,"children":72},{},[73],{"type":47,"value":74},"The generated skill includes:",{"type":42,"tag":76,"props":77,"children":78},"ul",{},[79,91],{"type":42,"tag":80,"props":81,"children":82},"li",{},[83,89],{"type":42,"tag":62,"props":84,"children":86},{"className":85},[],[87],{"type":47,"value":88},"assets\u002Ftemplate.pptx",{"type":47,"value":90}," - the template file",{"type":42,"tag":80,"props":92,"children":93},{},[94,100],{"type":42,"tag":62,"props":95,"children":97},{"className":96},[],[98],{"type":47,"value":99},"SKILL.md",{"type":47,"value":101}," - complete instructions (no reference to this meta skill needed)",{"type":42,"tag":50,"props":103,"children":104},{},[105,110,112,118],{"type":42,"tag":54,"props":106,"children":107},{},[108],{"type":47,"value":109},"For general skill-building best practices",{"type":47,"value":111},", refer to the ",{"type":42,"tag":62,"props":113,"children":115},{"className":114},[],[116],{"type":47,"value":117},"skill-creator",{"type":47,"value":119}," skill. This skill focuses on PPT-specific patterns.",{"type":42,"tag":121,"props":122,"children":124},"h2",{"id":123},"workflow",[125],{"type":47,"value":126},"Workflow",{"type":42,"tag":128,"props":129,"children":130},"ol",{},[131,141,151,168,183,193,203],{"type":42,"tag":80,"props":132,"children":133},{},[134,139],{"type":42,"tag":54,"props":135,"children":136},{},[137],{"type":47,"value":138},"User provides template",{"type":47,"value":140}," (.pptx or .potx)",{"type":42,"tag":80,"props":142,"children":143},{},[144,149],{"type":42,"tag":54,"props":145,"children":146},{},[147],{"type":47,"value":148},"Analyze template",{"type":47,"value":150}," - extract layouts, placeholders, dimensions",{"type":42,"tag":80,"props":152,"children":153},{},[154,159,161,166],{"type":42,"tag":54,"props":155,"children":156},{},[157],{"type":47,"value":158},"Initialize skill",{"type":47,"value":160}," - use the ",{"type":42,"tag":62,"props":162,"children":164},{"className":163},[],[165],{"type":47,"value":117},{"type":47,"value":167}," skill to set up the skill structure",{"type":42,"tag":80,"props":169,"children":170},{},[171,176,178],{"type":42,"tag":54,"props":172,"children":173},{},[174],{"type":47,"value":175},"Add template",{"type":47,"value":177}," - copy .pptx to ",{"type":42,"tag":62,"props":179,"children":181},{"className":180},[],[182],{"type":47,"value":88},{"type":42,"tag":80,"props":184,"children":185},{},[186,191],{"type":42,"tag":54,"props":187,"children":188},{},[189],{"type":47,"value":190},"Write SKILL.md",{"type":47,"value":192}," - follow template below with PPT-specific details",{"type":42,"tag":80,"props":194,"children":195},{},[196,201],{"type":42,"tag":54,"props":197,"children":198},{},[199],{"type":47,"value":200},"Create example",{"type":47,"value":202}," - generate sample presentation to validate",{"type":42,"tag":80,"props":204,"children":205},{},[206,211,212,217],{"type":42,"tag":54,"props":207,"children":208},{},[209],{"type":47,"value":210},"Package",{"type":47,"value":160},{"type":42,"tag":62,"props":213,"children":215},{"className":214},[],[216],{"type":47,"value":117},{"type":47,"value":218}," skill to package into a .skill file",{"type":42,"tag":121,"props":220,"children":222},{"id":221},"step-2-analyze-template",[223],{"type":47,"value":224},"Step 2: Analyze Template",{"type":42,"tag":50,"props":226,"children":227},{},[228,233],{"type":42,"tag":54,"props":229,"children":230},{},[231],{"type":47,"value":232},"CRITICAL: Extract precise placeholder positions",{"type":47,"value":234}," - this determines content area boundaries.",{"type":42,"tag":236,"props":237,"children":242},"pre",{"className":238,"code":239,"language":240,"meta":241,"style":241},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from pptx import Presentation\n\nprs = Presentation(template_path)\nprint(f\"Dimensions: {prs.slide_width\u002F914400:.2f}\\\" x {prs.slide_height\u002F914400:.2f}\\\"\")\nprint(f\"Layouts: {len(prs.slide_layouts)}\")\n\nfor idx, layout in enumerate(prs.slide_layouts):\n    print(f\"\\n[{idx}] {layout.name}:\")\n    for ph in layout.placeholders:\n        try:\n            ph_idx = ph.placeholder_format.idx\n            ph_type = ph.placeholder_format.type\n            # IMPORTANT: Extract exact positions in inches\n            left = ph.left \u002F 914400\n            top = ph.top \u002F 914400\n            width = ph.width \u002F 914400\n            height = ph.height \u002F 914400\n            print(f\"    idx={ph_idx}, type={ph_type}\")\n            print(f\"        x={left:.2f}\\\", y={top:.2f}\\\", w={width:.2f}\\\", h={height:.2f}\\\"\")\n        except:\n            pass\n","python","",[243],{"type":42,"tag":62,"props":244,"children":245},{"__ignoreMap":241},[246,257,267,276,285,294,302,311,320,329,338,347,356,365,374,383,392,401,410,419,428],{"type":42,"tag":247,"props":248,"children":251},"span",{"class":249,"line":250},"line",1,[252],{"type":42,"tag":247,"props":253,"children":254},{},[255],{"type":47,"value":256},"from pptx import Presentation\n",{"type":42,"tag":247,"props":258,"children":260},{"class":249,"line":259},2,[261],{"type":42,"tag":247,"props":262,"children":264},{"emptyLinePlaceholder":263},true,[265],{"type":47,"value":266},"\n",{"type":42,"tag":247,"props":268,"children":270},{"class":249,"line":269},3,[271],{"type":42,"tag":247,"props":272,"children":273},{},[274],{"type":47,"value":275},"prs = Presentation(template_path)\n",{"type":42,"tag":247,"props":277,"children":279},{"class":249,"line":278},4,[280],{"type":42,"tag":247,"props":281,"children":282},{},[283],{"type":47,"value":284},"print(f\"Dimensions: {prs.slide_width\u002F914400:.2f}\\\" x {prs.slide_height\u002F914400:.2f}\\\"\")\n",{"type":42,"tag":247,"props":286,"children":288},{"class":249,"line":287},5,[289],{"type":42,"tag":247,"props":290,"children":291},{},[292],{"type":47,"value":293},"print(f\"Layouts: {len(prs.slide_layouts)}\")\n",{"type":42,"tag":247,"props":295,"children":297},{"class":249,"line":296},6,[298],{"type":42,"tag":247,"props":299,"children":300},{"emptyLinePlaceholder":263},[301],{"type":47,"value":266},{"type":42,"tag":247,"props":303,"children":305},{"class":249,"line":304},7,[306],{"type":42,"tag":247,"props":307,"children":308},{},[309],{"type":47,"value":310},"for idx, layout in enumerate(prs.slide_layouts):\n",{"type":42,"tag":247,"props":312,"children":314},{"class":249,"line":313},8,[315],{"type":42,"tag":247,"props":316,"children":317},{},[318],{"type":47,"value":319},"    print(f\"\\n[{idx}] {layout.name}:\")\n",{"type":42,"tag":247,"props":321,"children":323},{"class":249,"line":322},9,[324],{"type":42,"tag":247,"props":325,"children":326},{},[327],{"type":47,"value":328},"    for ph in layout.placeholders:\n",{"type":42,"tag":247,"props":330,"children":332},{"class":249,"line":331},10,[333],{"type":42,"tag":247,"props":334,"children":335},{},[336],{"type":47,"value":337},"        try:\n",{"type":42,"tag":247,"props":339,"children":341},{"class":249,"line":340},11,[342],{"type":42,"tag":247,"props":343,"children":344},{},[345],{"type":47,"value":346},"            ph_idx = ph.placeholder_format.idx\n",{"type":42,"tag":247,"props":348,"children":350},{"class":249,"line":349},12,[351],{"type":42,"tag":247,"props":352,"children":353},{},[354],{"type":47,"value":355},"            ph_type = ph.placeholder_format.type\n",{"type":42,"tag":247,"props":357,"children":359},{"class":249,"line":358},13,[360],{"type":42,"tag":247,"props":361,"children":362},{},[363],{"type":47,"value":364},"            # IMPORTANT: Extract exact positions in inches\n",{"type":42,"tag":247,"props":366,"children":368},{"class":249,"line":367},14,[369],{"type":42,"tag":247,"props":370,"children":371},{},[372],{"type":47,"value":373},"            left = ph.left \u002F 914400\n",{"type":42,"tag":247,"props":375,"children":377},{"class":249,"line":376},15,[378],{"type":42,"tag":247,"props":379,"children":380},{},[381],{"type":47,"value":382},"            top = ph.top \u002F 914400\n",{"type":42,"tag":247,"props":384,"children":386},{"class":249,"line":385},16,[387],{"type":42,"tag":247,"props":388,"children":389},{},[390],{"type":47,"value":391},"            width = ph.width \u002F 914400\n",{"type":42,"tag":247,"props":393,"children":395},{"class":249,"line":394},17,[396],{"type":42,"tag":247,"props":397,"children":398},{},[399],{"type":47,"value":400},"            height = ph.height \u002F 914400\n",{"type":42,"tag":247,"props":402,"children":404},{"class":249,"line":403},18,[405],{"type":42,"tag":247,"props":406,"children":407},{},[408],{"type":47,"value":409},"            print(f\"    idx={ph_idx}, type={ph_type}\")\n",{"type":42,"tag":247,"props":411,"children":413},{"class":249,"line":412},19,[414],{"type":42,"tag":247,"props":415,"children":416},{},[417],{"type":47,"value":418},"            print(f\"        x={left:.2f}\\\", y={top:.2f}\\\", w={width:.2f}\\\", h={height:.2f}\\\"\")\n",{"type":42,"tag":247,"props":420,"children":422},{"class":249,"line":421},20,[423],{"type":42,"tag":247,"props":424,"children":425},{},[426],{"type":47,"value":427},"        except:\n",{"type":42,"tag":247,"props":429,"children":431},{"class":249,"line":430},21,[432],{"type":42,"tag":247,"props":433,"children":434},{},[435],{"type":47,"value":436},"            pass\n",{"type":42,"tag":50,"props":438,"children":439},{},[440],{"type":42,"tag":54,"props":441,"children":442},{},[443],{"type":47,"value":444},"Key measurements to document:",{"type":42,"tag":76,"props":446,"children":447},{},[448,458,468,478],{"type":42,"tag":80,"props":449,"children":450},{},[451,456],{"type":42,"tag":54,"props":452,"children":453},{},[454],{"type":47,"value":455},"Title position",{"type":47,"value":457},": Where does the title placeholder sit?",{"type":42,"tag":80,"props":459,"children":460},{},[461,466],{"type":42,"tag":54,"props":462,"children":463},{},[464],{"type":47,"value":465},"Subtitle\u002Fdescription",{"type":47,"value":467},": Where is the subtitle line?",{"type":42,"tag":80,"props":469,"children":470},{},[471,476],{"type":42,"tag":54,"props":472,"children":473},{},[474],{"type":47,"value":475},"Footer placeholders",{"type":47,"value":477},": Where do footers\u002Fsources appear?",{"type":42,"tag":80,"props":479,"children":480},{},[481,486],{"type":42,"tag":54,"props":482,"children":483},{},[484],{"type":47,"value":485},"Content area",{"type":47,"value":487},": The space BETWEEN subtitle and footer is your content area",{"type":42,"tag":489,"props":490,"children":492},"h3",{"id":491},"finding-the-true-content-start-position",[493],{"type":47,"value":494},"Finding the True Content Start Position",{"type":42,"tag":50,"props":496,"children":497},{},[498,503],{"type":42,"tag":54,"props":499,"children":500},{},[501],{"type":47,"value":502},"CRITICAL:",{"type":47,"value":504}," The content area does NOT always start immediately after the subtitle placeholder. Many templates have a visual border, line, or reserved space between the subtitle and content area.",{"type":42,"tag":50,"props":506,"children":507},{},[508,513,515,521],{"type":42,"tag":54,"props":509,"children":510},{},[511],{"type":47,"value":512},"Best approach:",{"type":47,"value":514}," Look at Layout 2 or similar \"content\" layouts that have an OBJECT placeholder - this placeholder's ",{"type":42,"tag":62,"props":516,"children":518},{"className":517},[],[519],{"type":47,"value":520},"y",{"type":47,"value":522}," position indicates where content should actually start.",{"type":42,"tag":236,"props":524,"children":526},{"className":238,"code":525,"language":240,"meta":241,"style":241},"# Find the OBJECT placeholder to determine true content start\nfor idx, layout in enumerate(prs.slide_layouts):\n    for ph in layout.placeholders:\n        try:\n            if ph.placeholder_format.type == 7:  # OBJECT type\n                top = ph.top \u002F 914400\n                print(f\"Layout [{idx}] {layout.name}: OBJECT starts at y={top:.2f}\\\"\")\n                # This y value is where your content should start!\n        except:\n            pass\n",[527],{"type":42,"tag":62,"props":528,"children":529},{"__ignoreMap":241},[530,538,545,552,559,567,575,583,591,598],{"type":42,"tag":247,"props":531,"children":532},{"class":249,"line":250},[533],{"type":42,"tag":247,"props":534,"children":535},{},[536],{"type":47,"value":537},"# Find the OBJECT placeholder to determine true content start\n",{"type":42,"tag":247,"props":539,"children":540},{"class":249,"line":259},[541],{"type":42,"tag":247,"props":542,"children":543},{},[544],{"type":47,"value":310},{"type":42,"tag":247,"props":546,"children":547},{"class":249,"line":269},[548],{"type":42,"tag":247,"props":549,"children":550},{},[551],{"type":47,"value":328},{"type":42,"tag":247,"props":553,"children":554},{"class":249,"line":278},[555],{"type":42,"tag":247,"props":556,"children":557},{},[558],{"type":47,"value":337},{"type":42,"tag":247,"props":560,"children":561},{"class":249,"line":287},[562],{"type":42,"tag":247,"props":563,"children":564},{},[565],{"type":47,"value":566},"            if ph.placeholder_format.type == 7:  # OBJECT type\n",{"type":42,"tag":247,"props":568,"children":569},{"class":249,"line":296},[570],{"type":42,"tag":247,"props":571,"children":572},{},[573],{"type":47,"value":574},"                top = ph.top \u002F 914400\n",{"type":42,"tag":247,"props":576,"children":577},{"class":249,"line":304},[578],{"type":42,"tag":247,"props":579,"children":580},{},[581],{"type":47,"value":582},"                print(f\"Layout [{idx}] {layout.name}: OBJECT starts at y={top:.2f}\\\"\")\n",{"type":42,"tag":247,"props":584,"children":585},{"class":249,"line":313},[586],{"type":42,"tag":247,"props":587,"children":588},{},[589],{"type":47,"value":590},"                # This y value is where your content should start!\n",{"type":42,"tag":247,"props":592,"children":593},{"class":249,"line":322},[594],{"type":42,"tag":247,"props":595,"children":596},{},[597],{"type":47,"value":427},{"type":42,"tag":247,"props":599,"children":600},{"class":249,"line":331},[601],{"type":42,"tag":247,"props":602,"children":603},{},[604],{"type":47,"value":436},{"type":42,"tag":50,"props":606,"children":607},{},[608,613],{"type":42,"tag":54,"props":609,"children":610},{},[611],{"type":47,"value":612},"Example:",{"type":47,"value":614}," A template might have:",{"type":42,"tag":76,"props":616,"children":617},{},[618,623,628],{"type":42,"tag":80,"props":619,"children":620},{},[621],{"type":47,"value":622},"Subtitle ending at y=1.38\"",{"type":42,"tag":80,"props":624,"children":625},{},[626],{"type":47,"value":627},"But OBJECT placeholder starting at y=1.90\"",{"type":42,"tag":80,"props":629,"children":630},{},[631,633],{"type":47,"value":632},"The gap (0.52\") is reserved for a border\u002Fline - ",{"type":42,"tag":54,"props":634,"children":635},{},[636],{"type":47,"value":637},"do not place content there",{"type":42,"tag":50,"props":639,"children":640},{},[641,643,648],{"type":47,"value":642},"Use the OBJECT placeholder's ",{"type":42,"tag":62,"props":644,"children":646},{"className":645},[],[647],{"type":47,"value":520},{"type":47,"value":649}," position as your content start, not the subtitle's end position.",{"type":42,"tag":121,"props":651,"children":653},{"id":652},"step-5-write-skillmd",[654],{"type":47,"value":655},"Step 5: Write SKILL.md",{"type":42,"tag":50,"props":657,"children":658},{},[659],{"type":47,"value":660},"The generated skill should have this structure:",{"type":42,"tag":236,"props":662,"children":666},{"className":663,"code":665,"language":47},[664],"language-text","[company]-ppt-template\u002F\n├── SKILL.md\n└── assets\u002F\n    └── template.pptx\n",[667],{"type":42,"tag":62,"props":668,"children":669},{"__ignoreMap":241},[670],{"type":47,"value":665},{"type":42,"tag":489,"props":672,"children":674},{"id":673},"generated-skillmd-template",[675],{"type":47,"value":676},"Generated SKILL.md Template",{"type":42,"tag":50,"props":678,"children":679},{},[680,682,687],{"type":47,"value":681},"The generated SKILL.md must be ",{"type":42,"tag":54,"props":683,"children":684},{},[685],{"type":47,"value":686},"self-contained",{"type":47,"value":688}," with all instructions embedded. Use this template, filling in the bracketed values from your analysis:",{"type":42,"tag":236,"props":690,"children":694},{"className":691,"code":692,"language":693,"meta":241,"style":241},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nname: [company]-ppt-template\ndescription: [Company] PowerPoint template for creating presentations. Use when creating [Company]-branded pitch decks, board materials, or client presentations.\n---\n\n# [Company] PPT Template\n\nTemplate: `assets\u002Ftemplate.pptx` ([WIDTH]\" x [HEIGHT]\", [N] layouts)\n\n## Creating Presentations\n\n```python\nfrom pptx import Presentation\n\nprs = Presentation(\"path\u002Fto\u002Fskill\u002Fassets\u002Ftemplate.pptx\")\n\n# DELETE all existing slides first\nwhile len(prs.slides) > 0:\n    rId = prs.slides._sldIdLst[0].rId\n    prs.part.drop_rel(rId)\n    del prs.slides._sldIdLst[0]\n\n# Add slides from layouts\nslide = prs.slides.add_slide(prs.slide_layouts[LAYOUT_IDX])\n```\n\n## Key Layouts\n\n| Index | Name | Use For |\n|-------|------|---------|\n| [0] | [Layout Name] | [Cover\u002Ftitle slide] |\n| [N] | [Layout Name] | [Content with bullets] |\n| [N] | [Layout Name] | [Two-column layout] |\n\n## Placeholder Mapping\n\n**CRITICAL: Include exact positions (x, y coordinates) for each placeholder.**\n\n### Layout [N]: [Name]\n| idx | Type | Position | Use |\n|-----|------|----------|-----|\n| [idx] | TITLE (1) | y=[Y]\" | Slide title |\n| [idx] | BODY (2) | y=[Y]\" | Subtitle\u002Fdescription |\n| [idx] | BODY (2) | y=[Y]\" | Footer |\n| [idx] | BODY (2) | y=[Y]\" | Source\u002Fnotes |\n\n### Content Area Boundaries\n\n**Document the safe content area for custom shapes\u002Ftables\u002Fcharts:**\n\n```\nContent Area (for Layout [N]):\n- Left margin: [X]\" (content starts here)\n- Top: [Y]\" (below subtitle placeholder)\n- Width: [W]\"\n- Height: [H]\" (ends before footer)\n\nFor 4-quadrant layouts:\n- Left column: x=[X]\", width=[W]\"\n- Right column: x=[X]\", width=[W]\"\n- Top row: y=[Y]\", height=[H]\"\n- Bottom row: y=[Y]\", height=[H]\"\n```\n\n**Why this matters:** Custom content (textboxes, tables, charts) must stay within these boundaries to avoid overlapping with template placeholders like titles, footers, and source lines.\n\n## Filling Content\n\n**Do NOT add manual bullet characters** - slide master handles formatting.\n\n```python\n# Fill title\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        if shape.placeholder_format.type == 1:  # TITLE\n            shape.text = \"Slide Title\"\n\n# Fill content with hierarchy (level 0 = header, level 1 = bullet)\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        idx = shape.placeholder_format.idx\n        if idx == [CONTENT_IDX]:\n            tf = shape.text_frame\n            for para in tf.paragraphs:\n                para.clear()\n\n            content = [\n                (\"Section Header\", 0),\n                (\"First bullet point\", 1),\n                (\"Second bullet point\", 1),\n            ]\n\n            tf.paragraphs[0].text = content[0][0]\n            tf.paragraphs[0].level = content[0][1]\n            for text, level in content[1:]:\n                p = tf.add_paragraph()\n                p.text = text\n                p.level = level\n```\n\n## Example: Cover Slide\n\n```python\nslide = prs.slides.add_slide(prs.slide_layouts[[COVER_IDX]])\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        idx = shape.placeholder_format.idx\n        if idx == [TITLE_IDX]:\n            shape.text = \"Company Name\"\n        elif idx == [SUBTITLE_IDX]:\n            shape.text = \"Presentation Title | Date\"\n```\n\n## Example: Content Slide\n\n```python\nslide = prs.slides.add_slide(prs.slide_layouts[[CONTENT_IDX]])\nfor shape in slide.shapes:\n    if hasattr(shape, 'placeholder_format'):\n        ph_type = shape.placeholder_format.type\n        idx = shape.placeholder_format.idx\n        if ph_type == 1:\n            shape.text = \"Executive Summary\"\n        elif idx == [BODY_IDX]:\n            tf = shape.text_frame\n            for para in tf.paragraphs:\n                para.clear()\n            content = [\n                (\"Key Findings\", 0),\n                (\"Revenue grew 40% YoY to $50M\", 1),\n                (\"Expanded to 3 new markets\", 1),\n                (\"Recommendation\", 0),\n                (\"Proceed with strategic initiative\", 1),\n            ]\n            tf.paragraphs[0].text = content[0][0]\n            tf.paragraphs[0].level = content[0][1]\n            for text, level in content[1:]:\n                p = tf.add_paragraph()\n                p.text = text\n                p.level = level\n```\n","markdown",[695],{"type":42,"tag":62,"props":696,"children":697},{"__ignoreMap":241},[698,707,742,772,779,786,808,815,897,904,917,924,938,945,952,960,967,975,983,991,999,1007,1015,1024,1033,1042,1050,1063,1071,1108,1117,1161,1202,1243,1251,1264,1272,1293,1301,1346,1390,1399,1469,1535,1600,1665,1673,1686,1694,1711,1719,1727,1736,1745,1754,1763,1772,1780,1789,1798,1807,1816,1825,1833,1841,1863,1871,1884,1892,1914,1922,1934,1943,1952,1961,1970,1979,1987,1996,2004,2012,2021,2030,2039,2048,2057,2065,2074,2083,2092,2101,2110,2118,2127,2136,2145,2154,2163,2172,2180,2188,2201,2209,2221,2230,2238,2246,2254,2263,2272,2281,2290,2298,2306,2319,2327,2339,2348,2356,2364,2373,2381,2390,2399,2408,2416,2424,2432,2440,2449,2458,2467,2476,2485,2493,2501,2509,2517,2525,2533,2541],{"type":42,"tag":247,"props":699,"children":700},{"class":249,"line":250},[701],{"type":42,"tag":247,"props":702,"children":704},{"style":703},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[705],{"type":47,"value":706},"---\n",{"type":42,"tag":247,"props":708,"children":709},{"class":249,"line":259},[710,716,721,726,732,737],{"type":42,"tag":247,"props":711,"children":713},{"style":712},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[714],{"type":47,"value":715},"name",{"type":42,"tag":247,"props":717,"children":718},{"style":703},[719],{"type":47,"value":720},":",{"type":42,"tag":247,"props":722,"children":723},{"style":703},[724],{"type":47,"value":725}," [",{"type":42,"tag":247,"props":727,"children":729},{"style":728},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[730],{"type":47,"value":731},"company",{"type":42,"tag":247,"props":733,"children":734},{"style":703},[735],{"type":47,"value":736},"]",{"type":42,"tag":247,"props":738,"children":739},{"style":728},[740],{"type":47,"value":741},"-ppt-template\n",{"type":42,"tag":247,"props":743,"children":744},{"class":249,"line":269},[745,750,754,758,763,767],{"type":42,"tag":247,"props":746,"children":747},{"style":712},[748],{"type":47,"value":749},"description",{"type":42,"tag":247,"props":751,"children":752},{"style":703},[753],{"type":47,"value":720},{"type":42,"tag":247,"props":755,"children":756},{"style":703},[757],{"type":47,"value":725},{"type":42,"tag":247,"props":759,"children":760},{"style":728},[761],{"type":47,"value":762},"Company",{"type":42,"tag":247,"props":764,"children":765},{"style":703},[766],{"type":47,"value":736},{"type":42,"tag":247,"props":768,"children":769},{"style":728},[770],{"type":47,"value":771}," PowerPoint template for creating presentations. Use when creating [Company]-branded pitch decks, board materials, or client presentations.\n",{"type":42,"tag":247,"props":773,"children":774},{"class":249,"line":278},[775],{"type":42,"tag":247,"props":776,"children":777},{"style":703},[778],{"type":47,"value":706},{"type":42,"tag":247,"props":780,"children":781},{"class":249,"line":287},[782],{"type":42,"tag":247,"props":783,"children":784},{"emptyLinePlaceholder":263},[785],{"type":47,"value":266},{"type":42,"tag":247,"props":787,"children":788},{"class":249,"line":296},[789,794,798,802],{"type":42,"tag":247,"props":790,"children":791},{"style":703},[792],{"type":47,"value":793},"# [",{"type":42,"tag":247,"props":795,"children":796},{"style":728},[797],{"type":47,"value":762},{"type":42,"tag":247,"props":799,"children":800},{"style":703},[801],{"type":47,"value":736},{"type":42,"tag":247,"props":803,"children":805},{"style":804},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[806],{"type":47,"value":807}," PPT Template\n",{"type":42,"tag":247,"props":809,"children":810},{"class":249,"line":304},[811],{"type":42,"tag":247,"props":812,"children":813},{"emptyLinePlaceholder":263},[814],{"type":47,"value":266},{"type":42,"tag":247,"props":816,"children":817},{"class":249,"line":313},[818,824,829,833,837,842,847,852,856,861,865,870,874,879,883,888,892],{"type":42,"tag":247,"props":819,"children":821},{"style":820},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[822],{"type":47,"value":823},"Template: ",{"type":42,"tag":247,"props":825,"children":826},{"style":703},[827],{"type":47,"value":828},"`",{"type":42,"tag":247,"props":830,"children":831},{"style":728},[832],{"type":47,"value":88},{"type":42,"tag":247,"props":834,"children":835},{"style":703},[836],{"type":47,"value":828},{"type":42,"tag":247,"props":838,"children":839},{"style":820},[840],{"type":47,"value":841}," (",{"type":42,"tag":247,"props":843,"children":844},{"style":703},[845],{"type":47,"value":846},"[",{"type":42,"tag":247,"props":848,"children":849},{"style":728},[850],{"type":47,"value":851},"WIDTH",{"type":42,"tag":247,"props":853,"children":854},{"style":703},[855],{"type":47,"value":736},{"type":42,"tag":247,"props":857,"children":858},{"style":820},[859],{"type":47,"value":860},"\" x ",{"type":42,"tag":247,"props":862,"children":863},{"style":703},[864],{"type":47,"value":846},{"type":42,"tag":247,"props":866,"children":867},{"style":728},[868],{"type":47,"value":869},"HEIGHT",{"type":42,"tag":247,"props":871,"children":872},{"style":703},[873],{"type":47,"value":736},{"type":42,"tag":247,"props":875,"children":876},{"style":820},[877],{"type":47,"value":878},"\", ",{"type":42,"tag":247,"props":880,"children":881},{"style":703},[882],{"type":47,"value":846},{"type":42,"tag":247,"props":884,"children":885},{"style":728},[886],{"type":47,"value":887},"N",{"type":42,"tag":247,"props":889,"children":890},{"style":703},[891],{"type":47,"value":736},{"type":42,"tag":247,"props":893,"children":894},{"style":820},[895],{"type":47,"value":896}," layouts)\n",{"type":42,"tag":247,"props":898,"children":899},{"class":249,"line":322},[900],{"type":42,"tag":247,"props":901,"children":902},{"emptyLinePlaceholder":263},[903],{"type":47,"value":266},{"type":42,"tag":247,"props":905,"children":906},{"class":249,"line":331},[907,912],{"type":42,"tag":247,"props":908,"children":909},{"style":703},[910],{"type":47,"value":911},"## ",{"type":42,"tag":247,"props":913,"children":914},{"style":804},[915],{"type":47,"value":916},"Creating Presentations\n",{"type":42,"tag":247,"props":918,"children":919},{"class":249,"line":340},[920],{"type":42,"tag":247,"props":921,"children":922},{"emptyLinePlaceholder":263},[923],{"type":47,"value":266},{"type":42,"tag":247,"props":925,"children":926},{"class":249,"line":349},[927,932],{"type":42,"tag":247,"props":928,"children":929},{"style":728},[930],{"type":47,"value":931},"```",{"type":42,"tag":247,"props":933,"children":935},{"style":934},"--shiki-light:#90A4AE90;--shiki-default:#EEFFFF90;--shiki-dark:#BABED890",[936],{"type":47,"value":937},"python\n",{"type":42,"tag":247,"props":939,"children":940},{"class":249,"line":358},[941],{"type":42,"tag":247,"props":942,"children":943},{"style":934},[944],{"type":47,"value":256},{"type":42,"tag":247,"props":946,"children":947},{"class":249,"line":367},[948],{"type":42,"tag":247,"props":949,"children":950},{"emptyLinePlaceholder":263},[951],{"type":47,"value":266},{"type":42,"tag":247,"props":953,"children":954},{"class":249,"line":376},[955],{"type":42,"tag":247,"props":956,"children":957},{"style":934},[958],{"type":47,"value":959},"prs = Presentation(\"path\u002Fto\u002Fskill\u002Fassets\u002Ftemplate.pptx\")\n",{"type":42,"tag":247,"props":961,"children":962},{"class":249,"line":385},[963],{"type":42,"tag":247,"props":964,"children":965},{"emptyLinePlaceholder":263},[966],{"type":47,"value":266},{"type":42,"tag":247,"props":968,"children":969},{"class":249,"line":394},[970],{"type":42,"tag":247,"props":971,"children":972},{"style":934},[973],{"type":47,"value":974},"# DELETE all existing slides first\n",{"type":42,"tag":247,"props":976,"children":977},{"class":249,"line":403},[978],{"type":42,"tag":247,"props":979,"children":980},{"style":934},[981],{"type":47,"value":982},"while len(prs.slides) > 0:\n",{"type":42,"tag":247,"props":984,"children":985},{"class":249,"line":412},[986],{"type":42,"tag":247,"props":987,"children":988},{"style":934},[989],{"type":47,"value":990},"    rId = prs.slides._sldIdLst[0].rId\n",{"type":42,"tag":247,"props":992,"children":993},{"class":249,"line":421},[994],{"type":42,"tag":247,"props":995,"children":996},{"style":934},[997],{"type":47,"value":998},"    prs.part.drop_rel(rId)\n",{"type":42,"tag":247,"props":1000,"children":1001},{"class":249,"line":430},[1002],{"type":42,"tag":247,"props":1003,"children":1004},{"style":934},[1005],{"type":47,"value":1006},"    del prs.slides._sldIdLst[0]\n",{"type":42,"tag":247,"props":1008,"children":1010},{"class":249,"line":1009},22,[1011],{"type":42,"tag":247,"props":1012,"children":1013},{"emptyLinePlaceholder":263},[1014],{"type":47,"value":266},{"type":42,"tag":247,"props":1016,"children":1018},{"class":249,"line":1017},23,[1019],{"type":42,"tag":247,"props":1020,"children":1021},{"style":934},[1022],{"type":47,"value":1023},"# Add slides from layouts\n",{"type":42,"tag":247,"props":1025,"children":1027},{"class":249,"line":1026},24,[1028],{"type":42,"tag":247,"props":1029,"children":1030},{"style":934},[1031],{"type":47,"value":1032},"slide = prs.slides.add_slide(prs.slide_layouts[LAYOUT_IDX])\n",{"type":42,"tag":247,"props":1034,"children":1036},{"class":249,"line":1035},25,[1037],{"type":42,"tag":247,"props":1038,"children":1039},{"style":728},[1040],{"type":47,"value":1041},"```\n",{"type":42,"tag":247,"props":1043,"children":1045},{"class":249,"line":1044},26,[1046],{"type":42,"tag":247,"props":1047,"children":1048},{"emptyLinePlaceholder":263},[1049],{"type":47,"value":266},{"type":42,"tag":247,"props":1051,"children":1053},{"class":249,"line":1052},27,[1054,1058],{"type":42,"tag":247,"props":1055,"children":1056},{"style":703},[1057],{"type":47,"value":911},{"type":42,"tag":247,"props":1059,"children":1060},{"style":804},[1061],{"type":47,"value":1062},"Key Layouts\n",{"type":42,"tag":247,"props":1064,"children":1066},{"class":249,"line":1065},28,[1067],{"type":42,"tag":247,"props":1068,"children":1069},{"emptyLinePlaceholder":263},[1070],{"type":47,"value":266},{"type":42,"tag":247,"props":1072,"children":1074},{"class":249,"line":1073},29,[1075,1080,1085,1089,1094,1098,1103],{"type":42,"tag":247,"props":1076,"children":1077},{"style":703},[1078],{"type":47,"value":1079},"|",{"type":42,"tag":247,"props":1081,"children":1082},{"style":820},[1083],{"type":47,"value":1084}," Index ",{"type":42,"tag":247,"props":1086,"children":1087},{"style":703},[1088],{"type":47,"value":1079},{"type":42,"tag":247,"props":1090,"children":1091},{"style":820},[1092],{"type":47,"value":1093}," Name ",{"type":42,"tag":247,"props":1095,"children":1096},{"style":703},[1097],{"type":47,"value":1079},{"type":42,"tag":247,"props":1099,"children":1100},{"style":820},[1101],{"type":47,"value":1102}," Use For ",{"type":42,"tag":247,"props":1104,"children":1105},{"style":703},[1106],{"type":47,"value":1107},"|\n",{"type":42,"tag":247,"props":1109,"children":1111},{"class":249,"line":1110},30,[1112],{"type":42,"tag":247,"props":1113,"children":1114},{"style":703},[1115],{"type":47,"value":1116},"|-------|------|---------|\n",{"type":42,"tag":247,"props":1118,"children":1120},{"class":249,"line":1119},31,[1121,1125,1129,1134,1138,1143,1148,1152,1157],{"type":42,"tag":247,"props":1122,"children":1123},{"style":703},[1124],{"type":47,"value":1079},{"type":42,"tag":247,"props":1126,"children":1127},{"style":703},[1128],{"type":47,"value":725},{"type":42,"tag":247,"props":1130,"children":1131},{"style":728},[1132],{"type":47,"value":1133},"0",{"type":42,"tag":247,"props":1135,"children":1136},{"style":703},[1137],{"type":47,"value":736},{"type":42,"tag":247,"props":1139,"children":1140},{"style":703},[1141],{"type":47,"value":1142}," |",{"type":42,"tag":247,"props":1144,"children":1145},{"style":820},[1146],{"type":47,"value":1147}," [Layout Name] ",{"type":42,"tag":247,"props":1149,"children":1150},{"style":703},[1151],{"type":47,"value":1079},{"type":42,"tag":247,"props":1153,"children":1154},{"style":820},[1155],{"type":47,"value":1156}," [Cover\u002Ftitle slide] ",{"type":42,"tag":247,"props":1158,"children":1159},{"style":703},[1160],{"type":47,"value":1107},{"type":42,"tag":247,"props":1162,"children":1164},{"class":249,"line":1163},32,[1165,1169,1173,1177,1181,1185,1189,1193,1198],{"type":42,"tag":247,"props":1166,"children":1167},{"style":703},[1168],{"type":47,"value":1079},{"type":42,"tag":247,"props":1170,"children":1171},{"style":703},[1172],{"type":47,"value":725},{"type":42,"tag":247,"props":1174,"children":1175},{"style":728},[1176],{"type":47,"value":887},{"type":42,"tag":247,"props":1178,"children":1179},{"style":703},[1180],{"type":47,"value":736},{"type":42,"tag":247,"props":1182,"children":1183},{"style":703},[1184],{"type":47,"value":1142},{"type":42,"tag":247,"props":1186,"children":1187},{"style":820},[1188],{"type":47,"value":1147},{"type":42,"tag":247,"props":1190,"children":1191},{"style":703},[1192],{"type":47,"value":1079},{"type":42,"tag":247,"props":1194,"children":1195},{"style":820},[1196],{"type":47,"value":1197}," [Content with bullets] ",{"type":42,"tag":247,"props":1199,"children":1200},{"style":703},[1201],{"type":47,"value":1107},{"type":42,"tag":247,"props":1203,"children":1205},{"class":249,"line":1204},33,[1206,1210,1214,1218,1222,1226,1230,1234,1239],{"type":42,"tag":247,"props":1207,"children":1208},{"style":703},[1209],{"type":47,"value":1079},{"type":42,"tag":247,"props":1211,"children":1212},{"style":703},[1213],{"type":47,"value":725},{"type":42,"tag":247,"props":1215,"children":1216},{"style":728},[1217],{"type":47,"value":887},{"type":42,"tag":247,"props":1219,"children":1220},{"style":703},[1221],{"type":47,"value":736},{"type":42,"tag":247,"props":1223,"children":1224},{"style":703},[1225],{"type":47,"value":1142},{"type":42,"tag":247,"props":1227,"children":1228},{"style":820},[1229],{"type":47,"value":1147},{"type":42,"tag":247,"props":1231,"children":1232},{"style":703},[1233],{"type":47,"value":1079},{"type":42,"tag":247,"props":1235,"children":1236},{"style":820},[1237],{"type":47,"value":1238}," [Two-column layout] ",{"type":42,"tag":247,"props":1240,"children":1241},{"style":703},[1242],{"type":47,"value":1107},{"type":42,"tag":247,"props":1244,"children":1246},{"class":249,"line":1245},34,[1247],{"type":42,"tag":247,"props":1248,"children":1249},{"emptyLinePlaceholder":263},[1250],{"type":47,"value":266},{"type":42,"tag":247,"props":1252,"children":1254},{"class":249,"line":1253},35,[1255,1259],{"type":42,"tag":247,"props":1256,"children":1257},{"style":703},[1258],{"type":47,"value":911},{"type":42,"tag":247,"props":1260,"children":1261},{"style":804},[1262],{"type":47,"value":1263},"Placeholder Mapping\n",{"type":42,"tag":247,"props":1265,"children":1267},{"class":249,"line":1266},36,[1268],{"type":42,"tag":247,"props":1269,"children":1270},{"emptyLinePlaceholder":263},[1271],{"type":47,"value":266},{"type":42,"tag":247,"props":1273,"children":1275},{"class":249,"line":1274},37,[1276,1282,1288],{"type":42,"tag":247,"props":1277,"children":1279},{"style":1278},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[1280],{"type":47,"value":1281},"**",{"type":42,"tag":247,"props":1283,"children":1285},{"style":1284},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[1286],{"type":47,"value":1287},"CRITICAL: Include exact positions (x, y coordinates) for each placeholder.",{"type":42,"tag":247,"props":1289,"children":1290},{"style":1278},[1291],{"type":47,"value":1292},"**\n",{"type":42,"tag":247,"props":1294,"children":1296},{"class":249,"line":1295},38,[1297],{"type":42,"tag":247,"props":1298,"children":1299},{"emptyLinePlaceholder":263},[1300],{"type":47,"value":266},{"type":42,"tag":247,"props":1302,"children":1304},{"class":249,"line":1303},39,[1305,1310,1315,1319,1323,1327,1332,1336,1341],{"type":42,"tag":247,"props":1306,"children":1307},{"style":703},[1308],{"type":47,"value":1309},"### ",{"type":42,"tag":247,"props":1311,"children":1312},{"style":804},[1313],{"type":47,"value":1314},"Layout ",{"type":42,"tag":247,"props":1316,"children":1317},{"style":703},[1318],{"type":47,"value":846},{"type":42,"tag":247,"props":1320,"children":1321},{"style":728},[1322],{"type":47,"value":887},{"type":42,"tag":247,"props":1324,"children":1325},{"style":703},[1326],{"type":47,"value":736},{"type":42,"tag":247,"props":1328,"children":1329},{"style":804},[1330],{"type":47,"value":1331},": ",{"type":42,"tag":247,"props":1333,"children":1334},{"style":703},[1335],{"type":47,"value":846},{"type":42,"tag":247,"props":1337,"children":1338},{"style":728},[1339],{"type":47,"value":1340},"Name",{"type":42,"tag":247,"props":1342,"children":1343},{"style":703},[1344],{"type":47,"value":1345},"]\n",{"type":42,"tag":247,"props":1347,"children":1349},{"class":249,"line":1348},40,[1350,1354,1359,1363,1368,1372,1377,1381,1386],{"type":42,"tag":247,"props":1351,"children":1352},{"style":703},[1353],{"type":47,"value":1079},{"type":42,"tag":247,"props":1355,"children":1356},{"style":820},[1357],{"type":47,"value":1358}," idx ",{"type":42,"tag":247,"props":1360,"children":1361},{"style":703},[1362],{"type":47,"value":1079},{"type":42,"tag":247,"props":1364,"children":1365},{"style":820},[1366],{"type":47,"value":1367}," Type ",{"type":42,"tag":247,"props":1369,"children":1370},{"style":703},[1371],{"type":47,"value":1079},{"type":42,"tag":247,"props":1373,"children":1374},{"style":820},[1375],{"type":47,"value":1376}," Position ",{"type":42,"tag":247,"props":1378,"children":1379},{"style":703},[1380],{"type":47,"value":1079},{"type":42,"tag":247,"props":1382,"children":1383},{"style":820},[1384],{"type":47,"value":1385}," Use ",{"type":42,"tag":247,"props":1387,"children":1388},{"style":703},[1389],{"type":47,"value":1107},{"type":42,"tag":247,"props":1391,"children":1393},{"class":249,"line":1392},41,[1394],{"type":42,"tag":247,"props":1395,"children":1396},{"style":703},[1397],{"type":47,"value":1398},"|-----|------|----------|-----|\n",{"type":42,"tag":247,"props":1400,"children":1402},{"class":249,"line":1401},42,[1403,1407,1411,1416,1420,1424,1429,1433,1438,1442,1447,1451,1456,1460,1465],{"type":42,"tag":247,"props":1404,"children":1405},{"style":703},[1406],{"type":47,"value":1079},{"type":42,"tag":247,"props":1408,"children":1409},{"style":703},[1410],{"type":47,"value":725},{"type":42,"tag":247,"props":1412,"children":1413},{"style":728},[1414],{"type":47,"value":1415},"idx",{"type":42,"tag":247,"props":1417,"children":1418},{"style":703},[1419],{"type":47,"value":736},{"type":42,"tag":247,"props":1421,"children":1422},{"style":703},[1423],{"type":47,"value":1142},{"type":42,"tag":247,"props":1425,"children":1426},{"style":820},[1427],{"type":47,"value":1428}," TITLE (1) ",{"type":42,"tag":247,"props":1430,"children":1431},{"style":703},[1432],{"type":47,"value":1079},{"type":42,"tag":247,"props":1434,"children":1435},{"style":820},[1436],{"type":47,"value":1437}," y=",{"type":42,"tag":247,"props":1439,"children":1440},{"style":703},[1441],{"type":47,"value":846},{"type":42,"tag":247,"props":1443,"children":1444},{"style":728},[1445],{"type":47,"value":1446},"Y",{"type":42,"tag":247,"props":1448,"children":1449},{"style":703},[1450],{"type":47,"value":736},{"type":42,"tag":247,"props":1452,"children":1453},{"style":820},[1454],{"type":47,"value":1455},"\" ",{"type":42,"tag":247,"props":1457,"children":1458},{"style":703},[1459],{"type":47,"value":1079},{"type":42,"tag":247,"props":1461,"children":1462},{"style":820},[1463],{"type":47,"value":1464}," Slide title ",{"type":42,"tag":247,"props":1466,"children":1467},{"style":703},[1468],{"type":47,"value":1107},{"type":42,"tag":247,"props":1470,"children":1472},{"class":249,"line":1471},43,[1473,1477,1481,1485,1489,1493,1498,1502,1506,1510,1514,1518,1522,1526,1531],{"type":42,"tag":247,"props":1474,"children":1475},{"style":703},[1476],{"type":47,"value":1079},{"type":42,"tag":247,"props":1478,"children":1479},{"style":703},[1480],{"type":47,"value":725},{"type":42,"tag":247,"props":1482,"children":1483},{"style":728},[1484],{"type":47,"value":1415},{"type":42,"tag":247,"props":1486,"children":1487},{"style":703},[1488],{"type":47,"value":736},{"type":42,"tag":247,"props":1490,"children":1491},{"style":703},[1492],{"type":47,"value":1142},{"type":42,"tag":247,"props":1494,"children":1495},{"style":820},[1496],{"type":47,"value":1497}," BODY (2) ",{"type":42,"tag":247,"props":1499,"children":1500},{"style":703},[1501],{"type":47,"value":1079},{"type":42,"tag":247,"props":1503,"children":1504},{"style":820},[1505],{"type":47,"value":1437},{"type":42,"tag":247,"props":1507,"children":1508},{"style":703},[1509],{"type":47,"value":846},{"type":42,"tag":247,"props":1511,"children":1512},{"style":728},[1513],{"type":47,"value":1446},{"type":42,"tag":247,"props":1515,"children":1516},{"style":703},[1517],{"type":47,"value":736},{"type":42,"tag":247,"props":1519,"children":1520},{"style":820},[1521],{"type":47,"value":1455},{"type":42,"tag":247,"props":1523,"children":1524},{"style":703},[1525],{"type":47,"value":1079},{"type":42,"tag":247,"props":1527,"children":1528},{"style":820},[1529],{"type":47,"value":1530}," Subtitle\u002Fdescription ",{"type":42,"tag":247,"props":1532,"children":1533},{"style":703},[1534],{"type":47,"value":1107},{"type":42,"tag":247,"props":1536,"children":1538},{"class":249,"line":1537},44,[1539,1543,1547,1551,1555,1559,1563,1567,1571,1575,1579,1583,1587,1591,1596],{"type":42,"tag":247,"props":1540,"children":1541},{"style":703},[1542],{"type":47,"value":1079},{"type":42,"tag":247,"props":1544,"children":1545},{"style":703},[1546],{"type":47,"value":725},{"type":42,"tag":247,"props":1548,"children":1549},{"style":728},[1550],{"type":47,"value":1415},{"type":42,"tag":247,"props":1552,"children":1553},{"style":703},[1554],{"type":47,"value":736},{"type":42,"tag":247,"props":1556,"children":1557},{"style":703},[1558],{"type":47,"value":1142},{"type":42,"tag":247,"props":1560,"children":1561},{"style":820},[1562],{"type":47,"value":1497},{"type":42,"tag":247,"props":1564,"children":1565},{"style":703},[1566],{"type":47,"value":1079},{"type":42,"tag":247,"props":1568,"children":1569},{"style":820},[1570],{"type":47,"value":1437},{"type":42,"tag":247,"props":1572,"children":1573},{"style":703},[1574],{"type":47,"value":846},{"type":42,"tag":247,"props":1576,"children":1577},{"style":728},[1578],{"type":47,"value":1446},{"type":42,"tag":247,"props":1580,"children":1581},{"style":703},[1582],{"type":47,"value":736},{"type":42,"tag":247,"props":1584,"children":1585},{"style":820},[1586],{"type":47,"value":1455},{"type":42,"tag":247,"props":1588,"children":1589},{"style":703},[1590],{"type":47,"value":1079},{"type":42,"tag":247,"props":1592,"children":1593},{"style":820},[1594],{"type":47,"value":1595}," Footer ",{"type":42,"tag":247,"props":1597,"children":1598},{"style":703},[1599],{"type":47,"value":1107},{"type":42,"tag":247,"props":1601,"children":1603},{"class":249,"line":1602},45,[1604,1608,1612,1616,1620,1624,1628,1632,1636,1640,1644,1648,1652,1656,1661],{"type":42,"tag":247,"props":1605,"children":1606},{"style":703},[1607],{"type":47,"value":1079},{"type":42,"tag":247,"props":1609,"children":1610},{"style":703},[1611],{"type":47,"value":725},{"type":42,"tag":247,"props":1613,"children":1614},{"style":728},[1615],{"type":47,"value":1415},{"type":42,"tag":247,"props":1617,"children":1618},{"style":703},[1619],{"type":47,"value":736},{"type":42,"tag":247,"props":1621,"children":1622},{"style":703},[1623],{"type":47,"value":1142},{"type":42,"tag":247,"props":1625,"children":1626},{"style":820},[1627],{"type":47,"value":1497},{"type":42,"tag":247,"props":1629,"children":1630},{"style":703},[1631],{"type":47,"value":1079},{"type":42,"tag":247,"props":1633,"children":1634},{"style":820},[1635],{"type":47,"value":1437},{"type":42,"tag":247,"props":1637,"children":1638},{"style":703},[1639],{"type":47,"value":846},{"type":42,"tag":247,"props":1641,"children":1642},{"style":728},[1643],{"type":47,"value":1446},{"type":42,"tag":247,"props":1645,"children":1646},{"style":703},[1647],{"type":47,"value":736},{"type":42,"tag":247,"props":1649,"children":1650},{"style":820},[1651],{"type":47,"value":1455},{"type":42,"tag":247,"props":1653,"children":1654},{"style":703},[1655],{"type":47,"value":1079},{"type":42,"tag":247,"props":1657,"children":1658},{"style":820},[1659],{"type":47,"value":1660}," Source\u002Fnotes ",{"type":42,"tag":247,"props":1662,"children":1663},{"style":703},[1664],{"type":47,"value":1107},{"type":42,"tag":247,"props":1666,"children":1668},{"class":249,"line":1667},46,[1669],{"type":42,"tag":247,"props":1670,"children":1671},{"emptyLinePlaceholder":263},[1672],{"type":47,"value":266},{"type":42,"tag":247,"props":1674,"children":1676},{"class":249,"line":1675},47,[1677,1681],{"type":42,"tag":247,"props":1678,"children":1679},{"style":703},[1680],{"type":47,"value":1309},{"type":42,"tag":247,"props":1682,"children":1683},{"style":804},[1684],{"type":47,"value":1685},"Content Area Boundaries\n",{"type":42,"tag":247,"props":1687,"children":1689},{"class":249,"line":1688},48,[1690],{"type":42,"tag":247,"props":1691,"children":1692},{"emptyLinePlaceholder":263},[1693],{"type":47,"value":266},{"type":42,"tag":247,"props":1695,"children":1697},{"class":249,"line":1696},49,[1698,1702,1707],{"type":42,"tag":247,"props":1699,"children":1700},{"style":1278},[1701],{"type":47,"value":1281},{"type":42,"tag":247,"props":1703,"children":1704},{"style":1284},[1705],{"type":47,"value":1706},"Document the safe content area for custom shapes\u002Ftables\u002Fcharts:",{"type":42,"tag":247,"props":1708,"children":1709},{"style":1278},[1710],{"type":47,"value":1292},{"type":42,"tag":247,"props":1712,"children":1714},{"class":249,"line":1713},50,[1715],{"type":42,"tag":247,"props":1716,"children":1717},{"emptyLinePlaceholder":263},[1718],{"type":47,"value":266},{"type":42,"tag":247,"props":1720,"children":1722},{"class":249,"line":1721},51,[1723],{"type":42,"tag":247,"props":1724,"children":1725},{"style":728},[1726],{"type":47,"value":1041},{"type":42,"tag":247,"props":1728,"children":1730},{"class":249,"line":1729},52,[1731],{"type":42,"tag":247,"props":1732,"children":1733},{"style":934},[1734],{"type":47,"value":1735},"Content Area (for Layout [N]):\n",{"type":42,"tag":247,"props":1737,"children":1739},{"class":249,"line":1738},53,[1740],{"type":42,"tag":247,"props":1741,"children":1742},{"style":934},[1743],{"type":47,"value":1744},"- Left margin: [X]\" (content starts here)\n",{"type":42,"tag":247,"props":1746,"children":1748},{"class":249,"line":1747},54,[1749],{"type":42,"tag":247,"props":1750,"children":1751},{"style":934},[1752],{"type":47,"value":1753},"- Top: [Y]\" (below subtitle placeholder)\n",{"type":42,"tag":247,"props":1755,"children":1757},{"class":249,"line":1756},55,[1758],{"type":42,"tag":247,"props":1759,"children":1760},{"style":934},[1761],{"type":47,"value":1762},"- Width: [W]\"\n",{"type":42,"tag":247,"props":1764,"children":1766},{"class":249,"line":1765},56,[1767],{"type":42,"tag":247,"props":1768,"children":1769},{"style":934},[1770],{"type":47,"value":1771},"- Height: [H]\" (ends before footer)\n",{"type":42,"tag":247,"props":1773,"children":1775},{"class":249,"line":1774},57,[1776],{"type":42,"tag":247,"props":1777,"children":1778},{"emptyLinePlaceholder":263},[1779],{"type":47,"value":266},{"type":42,"tag":247,"props":1781,"children":1783},{"class":249,"line":1782},58,[1784],{"type":42,"tag":247,"props":1785,"children":1786},{"style":934},[1787],{"type":47,"value":1788},"For 4-quadrant layouts:\n",{"type":42,"tag":247,"props":1790,"children":1792},{"class":249,"line":1791},59,[1793],{"type":42,"tag":247,"props":1794,"children":1795},{"style":934},[1796],{"type":47,"value":1797},"- Left column: x=[X]\", width=[W]\"\n",{"type":42,"tag":247,"props":1799,"children":1801},{"class":249,"line":1800},60,[1802],{"type":42,"tag":247,"props":1803,"children":1804},{"style":934},[1805],{"type":47,"value":1806},"- Right column: x=[X]\", width=[W]\"\n",{"type":42,"tag":247,"props":1808,"children":1810},{"class":249,"line":1809},61,[1811],{"type":42,"tag":247,"props":1812,"children":1813},{"style":934},[1814],{"type":47,"value":1815},"- Top row: y=[Y]\", height=[H]\"\n",{"type":42,"tag":247,"props":1817,"children":1819},{"class":249,"line":1818},62,[1820],{"type":42,"tag":247,"props":1821,"children":1822},{"style":934},[1823],{"type":47,"value":1824},"- Bottom row: y=[Y]\", height=[H]\"\n",{"type":42,"tag":247,"props":1826,"children":1828},{"class":249,"line":1827},63,[1829],{"type":42,"tag":247,"props":1830,"children":1831},{"style":728},[1832],{"type":47,"value":1041},{"type":42,"tag":247,"props":1834,"children":1836},{"class":249,"line":1835},64,[1837],{"type":42,"tag":247,"props":1838,"children":1839},{"emptyLinePlaceholder":263},[1840],{"type":47,"value":266},{"type":42,"tag":247,"props":1842,"children":1844},{"class":249,"line":1843},65,[1845,1849,1854,1858],{"type":42,"tag":247,"props":1846,"children":1847},{"style":1278},[1848],{"type":47,"value":1281},{"type":42,"tag":247,"props":1850,"children":1851},{"style":1284},[1852],{"type":47,"value":1853},"Why this matters:",{"type":42,"tag":247,"props":1855,"children":1856},{"style":1278},[1857],{"type":47,"value":1281},{"type":42,"tag":247,"props":1859,"children":1860},{"style":820},[1861],{"type":47,"value":1862}," Custom content (textboxes, tables, charts) must stay within these boundaries to avoid overlapping with template placeholders like titles, footers, and source lines.\n",{"type":42,"tag":247,"props":1864,"children":1866},{"class":249,"line":1865},66,[1867],{"type":42,"tag":247,"props":1868,"children":1869},{"emptyLinePlaceholder":263},[1870],{"type":47,"value":266},{"type":42,"tag":247,"props":1872,"children":1874},{"class":249,"line":1873},67,[1875,1879],{"type":42,"tag":247,"props":1876,"children":1877},{"style":703},[1878],{"type":47,"value":911},{"type":42,"tag":247,"props":1880,"children":1881},{"style":804},[1882],{"type":47,"value":1883},"Filling Content\n",{"type":42,"tag":247,"props":1885,"children":1887},{"class":249,"line":1886},68,[1888],{"type":42,"tag":247,"props":1889,"children":1890},{"emptyLinePlaceholder":263},[1891],{"type":47,"value":266},{"type":42,"tag":247,"props":1893,"children":1895},{"class":249,"line":1894},69,[1896,1900,1905,1909],{"type":42,"tag":247,"props":1897,"children":1898},{"style":1278},[1899],{"type":47,"value":1281},{"type":42,"tag":247,"props":1901,"children":1902},{"style":1284},[1903],{"type":47,"value":1904},"Do NOT add manual bullet characters",{"type":42,"tag":247,"props":1906,"children":1907},{"style":1278},[1908],{"type":47,"value":1281},{"type":42,"tag":247,"props":1910,"children":1911},{"style":820},[1912],{"type":47,"value":1913}," - slide master handles formatting.\n",{"type":42,"tag":247,"props":1915,"children":1917},{"class":249,"line":1916},70,[1918],{"type":42,"tag":247,"props":1919,"children":1920},{"emptyLinePlaceholder":263},[1921],{"type":47,"value":266},{"type":42,"tag":247,"props":1923,"children":1925},{"class":249,"line":1924},71,[1926,1930],{"type":42,"tag":247,"props":1927,"children":1928},{"style":728},[1929],{"type":47,"value":931},{"type":42,"tag":247,"props":1931,"children":1932},{"style":934},[1933],{"type":47,"value":937},{"type":42,"tag":247,"props":1935,"children":1937},{"class":249,"line":1936},72,[1938],{"type":42,"tag":247,"props":1939,"children":1940},{"style":934},[1941],{"type":47,"value":1942},"# Fill title\n",{"type":42,"tag":247,"props":1944,"children":1946},{"class":249,"line":1945},73,[1947],{"type":42,"tag":247,"props":1948,"children":1949},{"style":934},[1950],{"type":47,"value":1951},"for shape in slide.shapes:\n",{"type":42,"tag":247,"props":1953,"children":1955},{"class":249,"line":1954},74,[1956],{"type":42,"tag":247,"props":1957,"children":1958},{"style":934},[1959],{"type":47,"value":1960},"    if hasattr(shape, 'placeholder_format'):\n",{"type":42,"tag":247,"props":1962,"children":1964},{"class":249,"line":1963},75,[1965],{"type":42,"tag":247,"props":1966,"children":1967},{"style":934},[1968],{"type":47,"value":1969},"        if shape.placeholder_format.type == 1:  # TITLE\n",{"type":42,"tag":247,"props":1971,"children":1973},{"class":249,"line":1972},76,[1974],{"type":42,"tag":247,"props":1975,"children":1976},{"style":934},[1977],{"type":47,"value":1978},"            shape.text = \"Slide Title\"\n",{"type":42,"tag":247,"props":1980,"children":1982},{"class":249,"line":1981},77,[1983],{"type":42,"tag":247,"props":1984,"children":1985},{"emptyLinePlaceholder":263},[1986],{"type":47,"value":266},{"type":42,"tag":247,"props":1988,"children":1990},{"class":249,"line":1989},78,[1991],{"type":42,"tag":247,"props":1992,"children":1993},{"style":934},[1994],{"type":47,"value":1995},"# Fill content with hierarchy (level 0 = header, level 1 = bullet)\n",{"type":42,"tag":247,"props":1997,"children":1999},{"class":249,"line":1998},79,[2000],{"type":42,"tag":247,"props":2001,"children":2002},{"style":934},[2003],{"type":47,"value":1951},{"type":42,"tag":247,"props":2005,"children":2007},{"class":249,"line":2006},80,[2008],{"type":42,"tag":247,"props":2009,"children":2010},{"style":934},[2011],{"type":47,"value":1960},{"type":42,"tag":247,"props":2013,"children":2015},{"class":249,"line":2014},81,[2016],{"type":42,"tag":247,"props":2017,"children":2018},{"style":934},[2019],{"type":47,"value":2020},"        idx = shape.placeholder_format.idx\n",{"type":42,"tag":247,"props":2022,"children":2024},{"class":249,"line":2023},82,[2025],{"type":42,"tag":247,"props":2026,"children":2027},{"style":934},[2028],{"type":47,"value":2029},"        if idx == [CONTENT_IDX]:\n",{"type":42,"tag":247,"props":2031,"children":2033},{"class":249,"line":2032},83,[2034],{"type":42,"tag":247,"props":2035,"children":2036},{"style":934},[2037],{"type":47,"value":2038},"            tf = shape.text_frame\n",{"type":42,"tag":247,"props":2040,"children":2042},{"class":249,"line":2041},84,[2043],{"type":42,"tag":247,"props":2044,"children":2045},{"style":934},[2046],{"type":47,"value":2047},"            for para in tf.paragraphs:\n",{"type":42,"tag":247,"props":2049,"children":2051},{"class":249,"line":2050},85,[2052],{"type":42,"tag":247,"props":2053,"children":2054},{"style":934},[2055],{"type":47,"value":2056},"                para.clear()\n",{"type":42,"tag":247,"props":2058,"children":2060},{"class":249,"line":2059},86,[2061],{"type":42,"tag":247,"props":2062,"children":2063},{"emptyLinePlaceholder":263},[2064],{"type":47,"value":266},{"type":42,"tag":247,"props":2066,"children":2068},{"class":249,"line":2067},87,[2069],{"type":42,"tag":247,"props":2070,"children":2071},{"style":934},[2072],{"type":47,"value":2073},"            content = [\n",{"type":42,"tag":247,"props":2075,"children":2077},{"class":249,"line":2076},88,[2078],{"type":42,"tag":247,"props":2079,"children":2080},{"style":934},[2081],{"type":47,"value":2082},"                (\"Section Header\", 0),\n",{"type":42,"tag":247,"props":2084,"children":2086},{"class":249,"line":2085},89,[2087],{"type":42,"tag":247,"props":2088,"children":2089},{"style":934},[2090],{"type":47,"value":2091},"                (\"First bullet point\", 1),\n",{"type":42,"tag":247,"props":2093,"children":2095},{"class":249,"line":2094},90,[2096],{"type":42,"tag":247,"props":2097,"children":2098},{"style":934},[2099],{"type":47,"value":2100},"                (\"Second bullet point\", 1),\n",{"type":42,"tag":247,"props":2102,"children":2104},{"class":249,"line":2103},91,[2105],{"type":42,"tag":247,"props":2106,"children":2107},{"style":934},[2108],{"type":47,"value":2109},"            ]\n",{"type":42,"tag":247,"props":2111,"children":2113},{"class":249,"line":2112},92,[2114],{"type":42,"tag":247,"props":2115,"children":2116},{"emptyLinePlaceholder":263},[2117],{"type":47,"value":266},{"type":42,"tag":247,"props":2119,"children":2121},{"class":249,"line":2120},93,[2122],{"type":42,"tag":247,"props":2123,"children":2124},{"style":934},[2125],{"type":47,"value":2126},"            tf.paragraphs[0].text = content[0][0]\n",{"type":42,"tag":247,"props":2128,"children":2130},{"class":249,"line":2129},94,[2131],{"type":42,"tag":247,"props":2132,"children":2133},{"style":934},[2134],{"type":47,"value":2135},"            tf.paragraphs[0].level = content[0][1]\n",{"type":42,"tag":247,"props":2137,"children":2139},{"class":249,"line":2138},95,[2140],{"type":42,"tag":247,"props":2141,"children":2142},{"style":934},[2143],{"type":47,"value":2144},"            for text, level in content[1:]:\n",{"type":42,"tag":247,"props":2146,"children":2148},{"class":249,"line":2147},96,[2149],{"type":42,"tag":247,"props":2150,"children":2151},{"style":934},[2152],{"type":47,"value":2153},"                p = tf.add_paragraph()\n",{"type":42,"tag":247,"props":2155,"children":2157},{"class":249,"line":2156},97,[2158],{"type":42,"tag":247,"props":2159,"children":2160},{"style":934},[2161],{"type":47,"value":2162},"                p.text = text\n",{"type":42,"tag":247,"props":2164,"children":2166},{"class":249,"line":2165},98,[2167],{"type":42,"tag":247,"props":2168,"children":2169},{"style":934},[2170],{"type":47,"value":2171},"                p.level = level\n",{"type":42,"tag":247,"props":2173,"children":2175},{"class":249,"line":2174},99,[2176],{"type":42,"tag":247,"props":2177,"children":2178},{"style":728},[2179],{"type":47,"value":1041},{"type":42,"tag":247,"props":2181,"children":2183},{"class":249,"line":2182},100,[2184],{"type":42,"tag":247,"props":2185,"children":2186},{"emptyLinePlaceholder":263},[2187],{"type":47,"value":266},{"type":42,"tag":247,"props":2189,"children":2191},{"class":249,"line":2190},101,[2192,2196],{"type":42,"tag":247,"props":2193,"children":2194},{"style":703},[2195],{"type":47,"value":911},{"type":42,"tag":247,"props":2197,"children":2198},{"style":804},[2199],{"type":47,"value":2200},"Example: Cover Slide\n",{"type":42,"tag":247,"props":2202,"children":2204},{"class":249,"line":2203},102,[2205],{"type":42,"tag":247,"props":2206,"children":2207},{"emptyLinePlaceholder":263},[2208],{"type":47,"value":266},{"type":42,"tag":247,"props":2210,"children":2212},{"class":249,"line":2211},103,[2213,2217],{"type":42,"tag":247,"props":2214,"children":2215},{"style":728},[2216],{"type":47,"value":931},{"type":42,"tag":247,"props":2218,"children":2219},{"style":934},[2220],{"type":47,"value":937},{"type":42,"tag":247,"props":2222,"children":2224},{"class":249,"line":2223},104,[2225],{"type":42,"tag":247,"props":2226,"children":2227},{"style":934},[2228],{"type":47,"value":2229},"slide = prs.slides.add_slide(prs.slide_layouts[[COVER_IDX]])\n",{"type":42,"tag":247,"props":2231,"children":2233},{"class":249,"line":2232},105,[2234],{"type":42,"tag":247,"props":2235,"children":2236},{"style":934},[2237],{"type":47,"value":1951},{"type":42,"tag":247,"props":2239,"children":2241},{"class":249,"line":2240},106,[2242],{"type":42,"tag":247,"props":2243,"children":2244},{"style":934},[2245],{"type":47,"value":1960},{"type":42,"tag":247,"props":2247,"children":2249},{"class":249,"line":2248},107,[2250],{"type":42,"tag":247,"props":2251,"children":2252},{"style":934},[2253],{"type":47,"value":2020},{"type":42,"tag":247,"props":2255,"children":2257},{"class":249,"line":2256},108,[2258],{"type":42,"tag":247,"props":2259,"children":2260},{"style":934},[2261],{"type":47,"value":2262},"        if idx == [TITLE_IDX]:\n",{"type":42,"tag":247,"props":2264,"children":2266},{"class":249,"line":2265},109,[2267],{"type":42,"tag":247,"props":2268,"children":2269},{"style":934},[2270],{"type":47,"value":2271},"            shape.text = \"Company Name\"\n",{"type":42,"tag":247,"props":2273,"children":2275},{"class":249,"line":2274},110,[2276],{"type":42,"tag":247,"props":2277,"children":2278},{"style":934},[2279],{"type":47,"value":2280},"        elif idx == [SUBTITLE_IDX]:\n",{"type":42,"tag":247,"props":2282,"children":2284},{"class":249,"line":2283},111,[2285],{"type":42,"tag":247,"props":2286,"children":2287},{"style":934},[2288],{"type":47,"value":2289},"            shape.text = \"Presentation Title | Date\"\n",{"type":42,"tag":247,"props":2291,"children":2293},{"class":249,"line":2292},112,[2294],{"type":42,"tag":247,"props":2295,"children":2296},{"style":728},[2297],{"type":47,"value":1041},{"type":42,"tag":247,"props":2299,"children":2301},{"class":249,"line":2300},113,[2302],{"type":42,"tag":247,"props":2303,"children":2304},{"emptyLinePlaceholder":263},[2305],{"type":47,"value":266},{"type":42,"tag":247,"props":2307,"children":2309},{"class":249,"line":2308},114,[2310,2314],{"type":42,"tag":247,"props":2311,"children":2312},{"style":703},[2313],{"type":47,"value":911},{"type":42,"tag":247,"props":2315,"children":2316},{"style":804},[2317],{"type":47,"value":2318},"Example: Content Slide\n",{"type":42,"tag":247,"props":2320,"children":2322},{"class":249,"line":2321},115,[2323],{"type":42,"tag":247,"props":2324,"children":2325},{"emptyLinePlaceholder":263},[2326],{"type":47,"value":266},{"type":42,"tag":247,"props":2328,"children":2330},{"class":249,"line":2329},116,[2331,2335],{"type":42,"tag":247,"props":2332,"children":2333},{"style":728},[2334],{"type":47,"value":931},{"type":42,"tag":247,"props":2336,"children":2337},{"style":934},[2338],{"type":47,"value":937},{"type":42,"tag":247,"props":2340,"children":2342},{"class":249,"line":2341},117,[2343],{"type":42,"tag":247,"props":2344,"children":2345},{"style":934},[2346],{"type":47,"value":2347},"slide = prs.slides.add_slide(prs.slide_layouts[[CONTENT_IDX]])\n",{"type":42,"tag":247,"props":2349,"children":2351},{"class":249,"line":2350},118,[2352],{"type":42,"tag":247,"props":2353,"children":2354},{"style":934},[2355],{"type":47,"value":1951},{"type":42,"tag":247,"props":2357,"children":2359},{"class":249,"line":2358},119,[2360],{"type":42,"tag":247,"props":2361,"children":2362},{"style":934},[2363],{"type":47,"value":1960},{"type":42,"tag":247,"props":2365,"children":2367},{"class":249,"line":2366},120,[2368],{"type":42,"tag":247,"props":2369,"children":2370},{"style":934},[2371],{"type":47,"value":2372},"        ph_type = shape.placeholder_format.type\n",{"type":42,"tag":247,"props":2374,"children":2376},{"class":249,"line":2375},121,[2377],{"type":42,"tag":247,"props":2378,"children":2379},{"style":934},[2380],{"type":47,"value":2020},{"type":42,"tag":247,"props":2382,"children":2384},{"class":249,"line":2383},122,[2385],{"type":42,"tag":247,"props":2386,"children":2387},{"style":934},[2388],{"type":47,"value":2389},"        if ph_type == 1:\n",{"type":42,"tag":247,"props":2391,"children":2393},{"class":249,"line":2392},123,[2394],{"type":42,"tag":247,"props":2395,"children":2396},{"style":934},[2397],{"type":47,"value":2398},"            shape.text = \"Executive Summary\"\n",{"type":42,"tag":247,"props":2400,"children":2402},{"class":249,"line":2401},124,[2403],{"type":42,"tag":247,"props":2404,"children":2405},{"style":934},[2406],{"type":47,"value":2407},"        elif idx == [BODY_IDX]:\n",{"type":42,"tag":247,"props":2409,"children":2411},{"class":249,"line":2410},125,[2412],{"type":42,"tag":247,"props":2413,"children":2414},{"style":934},[2415],{"type":47,"value":2038},{"type":42,"tag":247,"props":2417,"children":2419},{"class":249,"line":2418},126,[2420],{"type":42,"tag":247,"props":2421,"children":2422},{"style":934},[2423],{"type":47,"value":2047},{"type":42,"tag":247,"props":2425,"children":2427},{"class":249,"line":2426},127,[2428],{"type":42,"tag":247,"props":2429,"children":2430},{"style":934},[2431],{"type":47,"value":2056},{"type":42,"tag":247,"props":2433,"children":2435},{"class":249,"line":2434},128,[2436],{"type":42,"tag":247,"props":2437,"children":2438},{"style":934},[2439],{"type":47,"value":2073},{"type":42,"tag":247,"props":2441,"children":2443},{"class":249,"line":2442},129,[2444],{"type":42,"tag":247,"props":2445,"children":2446},{"style":934},[2447],{"type":47,"value":2448},"                (\"Key Findings\", 0),\n",{"type":42,"tag":247,"props":2450,"children":2452},{"class":249,"line":2451},130,[2453],{"type":42,"tag":247,"props":2454,"children":2455},{"style":934},[2456],{"type":47,"value":2457},"                (\"Revenue grew 40% YoY to $50M\", 1),\n",{"type":42,"tag":247,"props":2459,"children":2461},{"class":249,"line":2460},131,[2462],{"type":42,"tag":247,"props":2463,"children":2464},{"style":934},[2465],{"type":47,"value":2466},"                (\"Expanded to 3 new markets\", 1),\n",{"type":42,"tag":247,"props":2468,"children":2470},{"class":249,"line":2469},132,[2471],{"type":42,"tag":247,"props":2472,"children":2473},{"style":934},[2474],{"type":47,"value":2475},"                (\"Recommendation\", 0),\n",{"type":42,"tag":247,"props":2477,"children":2479},{"class":249,"line":2478},133,[2480],{"type":42,"tag":247,"props":2481,"children":2482},{"style":934},[2483],{"type":47,"value":2484},"                (\"Proceed with strategic initiative\", 1),\n",{"type":42,"tag":247,"props":2486,"children":2488},{"class":249,"line":2487},134,[2489],{"type":42,"tag":247,"props":2490,"children":2491},{"style":934},[2492],{"type":47,"value":2109},{"type":42,"tag":247,"props":2494,"children":2496},{"class":249,"line":2495},135,[2497],{"type":42,"tag":247,"props":2498,"children":2499},{"style":934},[2500],{"type":47,"value":2126},{"type":42,"tag":247,"props":2502,"children":2504},{"class":249,"line":2503},136,[2505],{"type":42,"tag":247,"props":2506,"children":2507},{"style":934},[2508],{"type":47,"value":2135},{"type":42,"tag":247,"props":2510,"children":2512},{"class":249,"line":2511},137,[2513],{"type":42,"tag":247,"props":2514,"children":2515},{"style":934},[2516],{"type":47,"value":2144},{"type":42,"tag":247,"props":2518,"children":2520},{"class":249,"line":2519},138,[2521],{"type":42,"tag":247,"props":2522,"children":2523},{"style":934},[2524],{"type":47,"value":2153},{"type":42,"tag":247,"props":2526,"children":2528},{"class":249,"line":2527},139,[2529],{"type":42,"tag":247,"props":2530,"children":2531},{"style":934},[2532],{"type":47,"value":2162},{"type":42,"tag":247,"props":2534,"children":2536},{"class":249,"line":2535},140,[2537],{"type":42,"tag":247,"props":2538,"children":2539},{"style":934},[2540],{"type":47,"value":2171},{"type":42,"tag":247,"props":2542,"children":2544},{"class":249,"line":2543},141,[2545],{"type":42,"tag":247,"props":2546,"children":2547},{"style":728},[2548],{"type":47,"value":1041},{"type":42,"tag":121,"props":2550,"children":2552},{"id":2551},"step-6-create-example-output",[2553],{"type":47,"value":2554},"Step 6: Create Example Output",{"type":42,"tag":50,"props":2556,"children":2557},{},[2558],{"type":47,"value":2559},"Generate a sample presentation to validate the skill works. Save it alongside the skill for reference.",{"type":42,"tag":121,"props":2561,"children":2563},{"id":2562},"ppt-specific-rules-for-generated-skills",[2564],{"type":47,"value":2565},"PPT-Specific Rules for Generated Skills",{"type":42,"tag":128,"props":2567,"children":2568},{},[2569,2579,2589,2607,2617],{"type":42,"tag":80,"props":2570,"children":2571},{},[2572,2577],{"type":42,"tag":54,"props":2573,"children":2574},{},[2575],{"type":47,"value":2576},"Template in assets\u002F",{"type":47,"value":2578}," - always bundle the .pptx file",{"type":42,"tag":80,"props":2580,"children":2581},{},[2582,2587],{"type":42,"tag":54,"props":2583,"children":2584},{},[2585],{"type":47,"value":2586},"Self-contained SKILL.md",{"type":47,"value":2588}," - all instructions embedded, no external references",{"type":42,"tag":80,"props":2590,"children":2591},{},[2592,2597,2599,2605],{"type":42,"tag":54,"props":2593,"children":2594},{},[2595],{"type":47,"value":2596},"No manual bullets",{"type":47,"value":2598}," - use ",{"type":42,"tag":62,"props":2600,"children":2602},{"className":2601},[],[2603],{"type":47,"value":2604},"paragraph.level",{"type":47,"value":2606}," for hierarchy",{"type":42,"tag":80,"props":2608,"children":2609},{},[2610,2615],{"type":42,"tag":54,"props":2611,"children":2612},{},[2613],{"type":47,"value":2614},"Delete slides first",{"type":47,"value":2616}," - always clear existing slides before adding new ones",{"type":42,"tag":80,"props":2618,"children":2619},{},[2620,2625],{"type":42,"tag":54,"props":2621,"children":2622},{},[2623],{"type":47,"value":2624},"Document placeholders by idx",{"type":47,"value":2626}," - placeholder idx values are template-specific",{"type":42,"tag":2628,"props":2629,"children":2630},"style",{},[2631],{"type":47,"value":2632},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2634,"total":1818},[2635,2652,2669,2688,2703,2720,2730],{"slug":2636,"name":2636,"fn":2637,"description":2638,"org":2639,"tags":2640,"stars":26,"repoUrl":27,"updatedAt":2651},"3-statement-model","fill out 3-statement financial models","Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) . Use when asked to fill out model templates, complete existing model frameworks, populate financial models with data, complete a partially filled IS\u002FBS\u002FCF framework, or link integrated financial statements within an existing template structure. Triggers include requests to fill in, complete, or populate a 3-statement model template",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2641,2644,2645,2648],{"name":2642,"slug":2643,"type":16},"Excel","excel",{"name":21,"slug":22,"type":16},{"name":2646,"slug":2647,"type":16},"Financial Modeling","financial-modeling",{"name":2649,"slug":2650,"type":16},"Financial Statements","financial-statements","2026-05-15T06:08:35.416766",{"slug":2653,"name":2653,"fn":2654,"description":2655,"org":2656,"tags":2657,"stars":26,"repoUrl":27,"updatedAt":2668},"accrual-schedule","build period-end accrual schedules","Build the period-end accrual schedule — for each accrual, compute the entry, cite the support, and draft the JE. Use during month-end close; the JE is a draft for controller approval, not a posting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2658,2661,2662,2665],{"name":2659,"slug":2660,"type":16},"Accounting","accounting",{"name":21,"slug":22,"type":16},{"name":2663,"slug":2664,"type":16},"Journal Entry","journal-entry",{"name":2666,"slug":2667,"type":16},"Month-End Close","month-end-close","2026-05-06T05:38:41.445686",{"slug":2670,"name":2670,"fn":2671,"description":2672,"org":2673,"tags":2674,"stars":26,"repoUrl":27,"updatedAt":2687},"ai-readiness","identify AI opportunities in portfolio companies","Scan the portfolio for the highest-leverage AI opportunities and rank where to deploy operating-partner time. Ingests quarterly updates and financials across multiple portfolio companies, identifies quick wins at each, and stacks them into a single ranked action list. Use during quarterly portfolio reviews, annual planning, or when deciding which companies get AI investment first. Triggers on \"AI readiness\", \"AI opportunity scan\", \"where should we deploy AI\", \"AI across the portfolio\", \"AI quick wins\", or \"which portcos are ready for AI\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2675,2678,2681,2684],{"name":2676,"slug":2677,"type":16},"AI Infrastructure","ai-infrastructure",{"name":2679,"slug":2680,"type":16},"Operations","operations",{"name":2682,"slug":2683,"type":16},"Private Equity","private-equity",{"name":2685,"slug":2686,"type":16},"Strategy","strategy","2026-05-21T06:50:36.056814",{"slug":2689,"name":2689,"fn":2690,"description":2691,"org":2692,"tags":2693,"stars":26,"repoUrl":27,"updatedAt":2702},"audit-xls","audit spreadsheets for formula accuracy","Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on \"audit this sheet\", \"check my formulas\", \"find formula errors\", \"QA this spreadsheet\", \"sanity check this\", \"debug model\", \"model check\", \"model won't balance\", \"something's off in my model\", \"model review\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2694,2697,2698,2699],{"name":2695,"slug":2696,"type":16},"Audit","audit",{"name":2642,"slug":2643,"type":16},{"name":21,"slug":22,"type":16},{"name":2700,"slug":2701,"type":16},"Spreadsheets","spreadsheets","2026-05-15T06:07:23.536125",{"slug":2704,"name":2704,"fn":2705,"description":2706,"org":2707,"tags":2708,"stars":26,"repoUrl":27,"updatedAt":2719},"bond-futures-basis","analyze bond futures basis","Analyze the bond futures basis by pricing futures, identifying the cheapest-to-deliver, and comparing with yield curves to assess delivery option value and basis trading opportunities. Use when analyzing bond futures, computing the basis, identifying CTD bonds, calculating implied repo rates, or evaluating basis trades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2709,2712,2713,2716],{"name":2710,"slug":2711,"type":16},"Derivatives","derivatives",{"name":21,"slug":22,"type":16},{"name":2714,"slug":2715,"type":16},"Fixed Income","fixed-income",{"name":2717,"slug":2718,"type":16},"Trading","trading","2026-05-15T06:08:13.647174",{"slug":2721,"name":2721,"fn":2722,"description":2723,"org":2724,"tags":2725,"stars":26,"repoUrl":27,"updatedAt":2729},"bond-relative-value","perform bond relative value analysis","Perform relative value analysis on bonds by combining pricing, yield curve context, credit spreads, and scenario stress testing. Use when analyzing bond richness\u002Fcheapness, computing spread decomposition, comparing bonds, assessing bond value vs curves, or running rate shock scenarios.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2726,2727,2728],{"name":21,"slug":22,"type":16},{"name":2714,"slug":2715,"type":16},{"name":2717,"slug":2718,"type":16},"2026-05-15T06:08:11.151011",{"slug":2731,"name":2731,"fn":2732,"description":2733,"org":2734,"tags":2735,"stars":26,"repoUrl":27,"updatedAt":2745},"break-trace","trace reconciliation breaks to source transactions","Root-cause a reconciliation break to its source transaction or posting — follow the audit trail from the break row back to the originating entry on each side and state what differs and why. Use after gl-recon has classified a break.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2736,2737,2738,2741,2742],{"name":2659,"slug":2660,"type":16},{"name":2695,"slug":2696,"type":16},{"name":2739,"slug":2740,"type":16},"Debugging","debugging",{"name":21,"slug":22,"type":16},{"name":2743,"slug":2744,"type":16},"Reconciliation","reconciliation","2026-05-06T05:37:42.364074",{"items":2747,"total":2926},[2748,2769,2783,2795,2814,2827,2846,2866,2880,2895,2903,2911],{"slug":2749,"name":2749,"fn":2750,"description":2751,"org":2752,"tags":2753,"stars":2766,"repoUrl":2767,"updatedAt":2768},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2754,2757,2760,2763],{"name":2755,"slug":2756,"type":16},"Creative","creative",{"name":2758,"slug":2759,"type":16},"Design","design",{"name":2761,"slug":2762,"type":16},"Generative Art","generative-art",{"name":2764,"slug":2765,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":2770,"name":2770,"fn":2771,"description":2772,"org":2773,"tags":2774,"stars":2766,"repoUrl":2767,"updatedAt":2782},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2775,2778,2779],{"name":2776,"slug":2777,"type":16},"Branding","branding",{"name":2758,"slug":2759,"type":16},{"name":2780,"slug":2781,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":2784,"name":2784,"fn":2785,"description":2786,"org":2787,"tags":2788,"stars":2766,"repoUrl":2767,"updatedAt":2794},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2789,2790,2791],{"name":2755,"slug":2756,"type":16},{"name":2758,"slug":2759,"type":16},{"name":2792,"slug":2793,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":2796,"name":2796,"fn":2797,"description":2798,"org":2799,"tags":2800,"stars":2766,"repoUrl":2767,"updatedAt":2813},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2801,2804,2805,2808,2810],{"name":2802,"slug":2803,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":2806,"slug":2807,"type":16},"Anthropic SDK","anthropic-sdk",{"name":2809,"slug":2796,"type":16},"Claude API",{"name":2811,"slug":2812,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":2815,"name":2815,"fn":2816,"description":2817,"org":2818,"tags":2819,"stars":2766,"repoUrl":2767,"updatedAt":2826},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2820,2823],{"name":2821,"slug":2822,"type":16},"Documentation","documentation",{"name":2824,"slug":2825,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":2828,"name":2828,"fn":2829,"description":2830,"org":2831,"tags":2832,"stars":2766,"repoUrl":2767,"updatedAt":2845},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2833,2836,2838,2841,2842],{"name":2834,"slug":2835,"type":16},"Documents","documents",{"name":2837,"slug":2828,"type":16},"DOCX",{"name":2839,"slug":2840,"type":16},"Office","office",{"name":24,"slug":25,"type":16},{"name":2843,"slug":2844,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":2847,"name":2847,"fn":2848,"description":2849,"org":2850,"tags":2851,"stars":2766,"repoUrl":2767,"updatedAt":2865},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2852,2853,2856,2859,2862],{"name":2758,"slug":2759,"type":16},{"name":2854,"slug":2855,"type":16},"Frontend","frontend",{"name":2857,"slug":2858,"type":16},"React","react",{"name":2860,"slug":2861,"type":16},"Tailwind CSS","tailwind-css",{"name":2863,"slug":2864,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":2867,"name":2867,"fn":2868,"description":2869,"org":2870,"tags":2871,"stars":2766,"repoUrl":2767,"updatedAt":2879},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2872,2875,2876],{"name":2873,"slug":2874,"type":16},"Communications","communications",{"name":24,"slug":25,"type":16},{"name":2877,"slug":2878,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":2881,"name":2881,"fn":2882,"description":2883,"org":2884,"tags":2885,"stars":2766,"repoUrl":2767,"updatedAt":2894},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2886,2887,2890,2891],{"name":2802,"slug":2803,"type":16},{"name":2888,"slug":2889,"type":16},"API Development","api-development",{"name":2811,"slug":2812,"type":16},{"name":2892,"slug":2893,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":2793,"name":2793,"fn":2896,"description":2897,"org":2898,"tags":2899,"stars":2766,"repoUrl":2767,"updatedAt":2902},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2900,2901],{"name":2834,"slug":2835,"type":16},{"name":2792,"slug":2793,"type":16},"2026-04-06T17:56:02.483316",{"slug":67,"name":67,"fn":2904,"description":2905,"org":2906,"tags":2907,"stars":2766,"repoUrl":2767,"updatedAt":2910},"create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx 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 or .potx 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 (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2908,2909],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},"2026-07-18T05:16:24.1471",{"slug":117,"name":117,"fn":2912,"description":2913,"org":2914,"tags":2915,"stars":2766,"repoUrl":2767,"updatedAt":2925},"create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2916,2917,2918,2921,2924],{"name":2802,"slug":2803,"type":16},{"name":2821,"slug":2822,"type":16},{"name":2919,"slug":2920,"type":16},"Evals","evals",{"name":2922,"slug":2923,"type":16},"Performance","performance",{"name":2824,"slug":2825,"type":16},"2026-04-19T06:45:40.804",490]