[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-google-slides":3,"mdc--12it9q-key":35,"related-repo-openai-google-slides":1172,"related-org-openai-google-slides":1296},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"google-slides","manage and update Google Slides presentations","Google Slides work for finding, reading, summarizing, creating, importing, template following, visual cleanup, source-deck adaptation, structural repair, and content edits in native Slides decks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Presentations","presentations","tag",{"name":17,"slug":18,"type":15},"Summarization","summarization",{"name":20,"slug":21,"type":15},"Documents","documents",{"name":23,"slug":4,"type":15},"Google Slides",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-04-06T18:42:16.73503",null,465,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fgoogle-drive\u002Fskills\u002Fgoogle-slides","---\nname: google-slides\ndescription: Google Slides work for finding, reading, summarizing, creating, importing, template following, visual cleanup, source-deck adaptation, structural repair, and content edits in native Slides decks.\n---\n\n# Google Slides\n\nUse this skill for Google Slides work in Codex local-plugin sessions.\n\n## Purpose Of This File\n\nThis file is intentionally minimal and only covers:\n\n1. connector loading and runtime boundaries in the Codex `node_repl` world\n2. mandatory routing to reference files\n3. routing to workflow references\n\nDetailed write, chart, thumbnail, creation, and final-pass rules live in `references\u002F`.\nLatency is not a constraint for this skill, so always read the relevant reference files before performing the task.\n\nThe active\u002Fmain agent must personally read this file and every relevant reference file in the current turn. Do not delegate reference-file reading or summarization to a subagent and then rely on that summary for the workflow. This is not a general prohibition on subagents: they may still be used for other well-scoped execution, extraction, or QA work after the main agent has loaded the applicable skill guidance itself.\n\n## Runtime Model\n\n1. Use Google Slides connector or app tools directly from Codex when they are available.\n2. Use `node_repl` only for source processing or small JavaScript utilities that are not connector calls.\n3. Do not use embedded-runtime helper snippets or assumed global connector bindings.\n4. Connector tools are not called from inside `node_repl`. Treat connector calls and `node_repl` helper work as separate execution surfaces.\n5. Browser Use is not the Slides editing path. Use connector reads, slide structure, and thumbnails.\n\n## Default Routing\n\nUnless the user asks otherwise:\n\n1. New deck from a provided native Google Slides template or reference deck: copy the provided deck directly in Google Drive, then use Slides `batchUpdate` on the copy. Read `references\u002Freference-template-reference-deck-copy-workflow.md`.\n2. Net-new Google Slides deck without a provided native Slides template or reference deck: use `[@presentations](plugin:\u002F\u002Fpresentations@openai-primary-runtime)` to create a local `.pptx` first. Then read `references\u002Freference-import-presentation.md` and import with `mcp__codex_apps__google_drive_import_presentation` using `upload_mode: \"native_google_slides\"`.\n3. If the Presentations plugin is unavailable for a net-new deck that does not use the native Slides copy workflow, do not create the deck directly. Report that the required local Presentations authoring path is unavailable.\n4. Existing Google Slides reads, summaries, edits, comments, and template-preserving modifications: use Google Slides connector or app tools directly.\n\nFor net-new Google Slides without a provided native Slides template or reference deck, the PPTX-import path is the only currently supported high-quality workflow. Do not create a blank Google Slides deck and fill it with Google Slides write APIs, use Computer Use, use Browser Use, or build the deck directly in Google Drive unless the user explicitly asks for that alternate workflow. If they do, mention first that output quality is expected to be best when a local `.pptx` is imported through the Google Drive plugin.\n\nFor new decks from a provided native Google Slides template or reference deck, do not create a local `.pptx` first. Copy the provided deck directly, treat the copy as the destination deck, and create\u002Fedit slides there with `batchUpdate` using duplicated exemplar slides or layouts from the copied deck. Populate existing template objects first: replace text, images, charts, tables, and placeholder content in the copied slide's existing slots instead of adding new primary content boxes.\n\nThe slide-planning, archetype-selection, hierarchy, semantic-emphasis, evidence-legibility, and deck-consistency rules apply across both creation paths and to slides added to existing decks. Only source-parity requirements such as exact text preservation, speaker-note parity, and media-ID parity depend on a source-based adaptation or migration request.\n\nThe import reference owns the exact connector action, plugin install\u002Freinstall handling, native-conversion verification, post-import verification, and cleanup expectations. Read it before any net-new Google Slides import attempt.\n\nFor imports and any explicit direct-create override, wait for the write action to complete, then perform connector readback or Drive metadata readback before returning a Google Slides URL or presentation id. Use only a URL or id observed from the completed connector result or readback. Do not synthesize or predict Google Slides URLs, and do not present a URL as ready if readback fails.\n\n## Non-Negotiable Output Invariant\n\nInserted or edited content must match the target deck's existing structure and connector-observable presentation closely enough that it reads as native deck content. Net-new slides must use a coherent archetype, hierarchy, and visual system rather than an arbitrary collection of objects.\nTreat wrong target deck, wrong slide, stale object IDs, missing chart updates, leftover placeholder or template sample text, empty or unresolved placeholder objects, primary content placed in newly created freeform boxes while an inherited or template slot remains unused, clipped text, broken slide order, or unverified visible layout changes as failed output that must be corrected before handoff.\n\nFor Slides batch updates, API success is not completion. A fresh post-write LARGE thumbnail and examining the image by curling it is required for every touched slide. You MUST curl the image after requesting thumbnail. No skip.\nFor net-new Google Slides without a provided native Slides template or reference deck, create a local `.pptx` with `[@presentations](plugin:\u002F\u002Fpresentations@openai-primary-runtime)` and import it to Google Drive with `upload_mode: \"native_google_slides\"`.\n\n## Canonical Workflow Bias\n\nPrefer one simple proven workflow over a large tree of recovery branches.\nWhen a task matches a known successful pattern, follow that pattern directly instead of re-evaluating every possible insertion or fallback path.\nDo not let accumulated edge-case guardrails turn a straightforward Slides task into a long blocker-analysis exercise.\n\nFor deck creation and editing tasks, prefer this general sequence when viable:\n\n1. gather the required source material\n2. attach to or create the destination presentation\n3. read the deck structure and target slides\n4. establish the slide checklist or slide plan\n5. write small, grounded batches with live object IDs\n6. verify through connector readback and post-batch thumbnails\n7. stop once the deck is clean, complete, and scannable\n\nIf a simple verified workflow is viable, use it. Do not drift into speculative alternate paths.\n\n## Release-Blocker Checklist\n\nBefore final handoff, explicitly verify these with connector readback and thumbnails where relevant:\n\n1. the target presentation id, title, and URL are the intended deck\n2. every edited slide in scope was read after the write\n3. every slide touched by a batch update has a fresh post-write thumbnail check\n4. every changed chart is refreshed or replaced in the intended footprint, with obsolete placeholder text removed unless the user asked to keep it\n5. every new or edited shape, image, table, and text box stays inside the slide bounds unless intentionally full-bleed\n6. no slide in a multi-slide task was skipped, duplicated, or left in a mixed old\u002Fnew state\n7. duplicated slides that needed reordering were moved only after a post-duplicate readback, with `slideObjectIds` listed in current presentation order\n8. no visual property is claimed as verified unless connector data or a fresh thumbnail supports it\n9. final presentation output is an editable Google Slides deck, not one PNG per slide; verify editable components with `mcp__codex_apps__google_drive_get_presentation` or `mcp__codex_apps__google_drive_get_slide`\n10. for imports and direct creates, the final returned URL or presentation id came from a completed connector result or readback, not a predicted Google Slides URL\n11. for template\u002Freference-deck copies, the final returned URL or presentation id came from the completed copy result or readback, not from the source deck or a predicted URL\n12. Even when a local pptx was created for an import workflow, do not cite the local pptx path as a deliverable in your final answer. Your final answer must only reference the verified gsuite link.\n13. for any slide inserted from a layout (`slideLayoutReference`, `predefinedLayout`, or inherited master\u002Flayout placeholders), every inherited placeholder object was populated, replaced, or intentionally deleted; do not rely on thumbnails alone because empty placeholders can be invisible\n14. for template\u002Freference-deck copies, full `get_presentation` or per-slide `get_slide` readback was used for final structural validation; `get_presentation_outline` alone is insufficient\n15. for template\u002Freference-deck copies, content-bearing placeholders and reusable template objects were used where they exist; newly created primary text\u002Fimage boxes are justified by the chosen slide plan, not a shortcut around the template\n16. when adapting or migrating provided source material, source-to-destination fidelity was checked for substantive text, visuals, charts, tables, links, media type and source identifier when active\u002Faccessible, and non-empty speaker notes; no required source content disappeared or was silently summarized\n17. text hierarchy and layout semantics remain meaningful: mixed heading\u002Fbody style runs were not flattened, blank bulleted paragraphs do not render stray bullets, and inherited emphasis does not imply unsupported totals, rankings, categories, status, or importance\n18. visual evidence is presentation-readable, not merely unclipped: crops preserve essential regions, important labels and footnotes remain legible, and landscape evidence was not forced into an unsuitable portrait frame\n19. no generic editor prompts, bracketed instructions, sample copy, lorem ipsum, old-event content, or other template scaffolding remains unless explicitly requested by the user\n\n**Slides**\n\n* Content: ensure the content covers everything requested by the user and ensure the storytelling of the overall deck is coherent.\n* Search: use `web.run`'s `image_query` for efficient image search instead of `search_query`.\n* Visual assets: DO NOT use Python to draw any images; DO NOT use programmatic vector shapes for visuals; DO NOT use programmatic drawings of any sort. Use image search or imagegen instead! By default, DO NOT reuse the same image more than once (unless it's a background). Not only do you need to prepare visuals for the main concept, you also need to get decorative visuals. Before sourcing or generating visuals, be mindful of the desired aspect ratio, placement, and cropping options on the slide. For example, if you intend to place text to the left of the image containing a person, you should ask imagegen to put the person on the right side of the image.\n* Default styling: use one composition instead of a collection of UI panels. UI-like styling typically includes card grids, pills, badges, button-like text boxes, tab or navigation patterns, repeated modular panels, dense dashboard-style layouts, and other component-library aesthetics that imply interactivity. Use stylized text boxes less, favoring a flat structure on the canvas.\n* Visual storytelling: Prioritize visual storytelling by default, favoring real images, generated visuals, diagrams, plots, and charts to convey concepts whenever appropriate rather than relying solely on plain text, especially when the user does not provide assets. As a general rule of thumb, aim for approximately 2-4 visual assets per slide, including meaningful styling elements, adjusting as needed based on the topic, complexity, and overall theme of the task.\n* Connectors in diagrams: In the final implementation, create connectors (arrows\u002Fedges) before creating entity nodes, so edges appear behind nodes and never cross through node shapes or labels. If this ordering is awkward during early iteration, you may create nodes first in the initial draft, then switch to connectors-first in the revised code.\n* Overlap: You MUST fix ALL unintended overlap errors before you deliver the slides! It's of paramount importance!\n* Font size: When a template is provided, match its font sizes. Avoid overly small text. When no template or style guidance is given, a good rule of thumb is at least 42pt for deck titles, 32pt for slide titles, and 17pt for body text. If you see overflow\u002Foverlap, try cutting content before shrinking text further to improve text layout.\n* Text layout: for net-new authoring where wording is flexible, shorten copy when needed. When the user supplied required wording or source material whose fidelity matters, do not silently shorten or summarize it; choose a denser archetype, restructure within the slide, split only when the request permits it, or flag the tradeoff. Inspect visually for unexpected text wrapping. NEVER put 2 lines of text into a title\u002Fbanner text box meant for a single line of text.\n* Diagrams implementation: use native PowerPoint shapes for simple diagrams; use Graphviz for complex relational\u002Ftopological\u002Fnetwork-like diagrams; use imagegen for highly aesthetic, illustrative, or scientific infographic diagrams (e.g. chemical structures, circuit diagrams, etc.).\n* Title slide: Keep the title slide minimal and simple. Avoid cramming in too much information.\n* When to use diagrams: Prefer data-driven charts or plots when applicable; use diagrams only when they improve the storytelling (not to fill empty space).\n\nIf any check fails, the task is not complete.\n\n## Required Read Order (No Skips)\n\nBefore any content write or edit operation:\n\nThe active\u002Fmain agent must perform this reading itself. Do not assign these files to subagents for summarization. Subagents remain available for other independent tasks after the main agent has read the applicable guidance.\n\n\"Relevant\" means the baseline safety references below plus every matching task-specific row in the task map. It does not require unrelated reference files unless the task is ambiguous.\n\n1. Read `references\u002Freference-connector-runtime-and-safety.md`.\n2. Read `references\u002Freference-target-presentation-guard.md`.\n3. Read `references\u002Freference-google-slides-mcp-discovery.md`.\n4. Read `references\u002Freference-request-shapes-and-write-safety.md`.\n5. Read `references\u002Freference-thumbnail-visual-verification.md`.\n6. Read every task-specific file from the matrix below.\n7. If the task spans multiple categories, read all matching files.\n8. If uncertain, read every file in `references\u002F`.\n\nFor net-new local `.pptx` creation, read the `[@presentations](plugin:\u002F\u002Fpresentations@openai-primary-runtime)` authoring skill before creating the deck.\n\nDo not execute content edits until the required references are read in the current turn.\n\n## Connector Load Checklist\n\n1. Confirm the exact target Google Slides URL or presentation id.\n2. Resolve and record the presentation id, title, slide count, and target slide object IDs.\n3. Treat target-presentation identity as a hard precondition for connector writes.\n4. Before each edit pass, identify the slide, object IDs, and current geometry through connector reads.\n5. Before every connector write batch, re-read `references\u002Freference-target-presentation-guard.md` and re-confirm the target presentation and slide object IDs.\n6. Read via connector first, using the current Google Slides actions:\n   - get presentation, text, or outline\n   - get slide\n   - get slide thumbnail before and after batch updates, and when visual evidence matters\n7. If the source is a template or existing deck that should be preserved, create a copy before editing.\n8. Do not claim the connector is unavailable, read-only, or blocked unless the current session has established that through capability evidence.\n\n## Task To Reference Map\n\n| Task area | Required reference file |\n| --- | --- |\n| Runtime attachment, target identity, safety, and recovery | `references\u002Freference-connector-runtime-and-safety.md` |\n| Confirming the target presentation before every write batch | `references\u002Freference-target-presentation-guard.md` |\n| Google Slides MCP discovery, connector wrapper vs official Slides API mapping, method catalog, and batchUpdate request catalog | `references\u002Freference-google-slides-mcp-discovery.md` |\n| Batch update request shape, live object IDs, geometry, and write safety | `references\u002Freference-request-shapes-and-write-safety.md` |\n| Deck summaries, candidate slides, multi-slide edits, translation, or deck-wide changes | `references\u002Freference-read-before-write-and-deck-scope.md` |\n| Any layout, styling, image, chart, or placement change | `references\u002Freference-thumbnail-visual-verification.md` |\n| New deck from a provided native Google Slides template or reference deck | `references\u002Freference-template-reference-deck-copy-workflow.md` |\n| New deck creation, copy-from-template workflows, or final handoff after any write | `references\u002Freference-new-deck-and-final-pass.md` |\n| Local `.ppt`, `.pptx`, or `.odp` import | `references\u002Freference-import-presentation.md` |\n| Visual cleanup, overflow, spacing, alignment, or deck polish | `references\u002Freference-visual-iteration.md` |\n| Migrating source content onto a template deck with fidelity requirements | `references\u002Freference-template-migration.md` |\n| Any multi-slide creation, source adaptation, template following, or layout-selection workflow | `references\u002Freference-slide-planning-and-layout-selection.md` |\n| Choosing slide archetypes, compositions, or repeated layout families for any created or adapted slide | `references\u002Freference-slide-archetype-mapping.md` |\n| Chart refresh, chart replacement, or Sheets-sourced chart work | `references\u002Freference-chart-workflows.md` |\n| Copy-and-fill raw batch update examples | `references\u002Freference-batch-update-recipes.md` |\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,47,53,60,65,94,107,112,118,167,173,178,256,268,287,292,297,302,308,313,338,344,349,354,392,397,403,408,568,577,664,669,675,680,685,690,770,789,794,800,868,874],{"type":41,"tag":42,"props":43,"children":44},"element","h1",{"id":4},[45],{"type":46,"value":23},"text",{"type":41,"tag":48,"props":49,"children":50},"p",{},[51],{"type":46,"value":52},"Use this skill for Google Slides work in Codex local-plugin sessions.",{"type":41,"tag":54,"props":55,"children":57},"h2",{"id":56},"purpose-of-this-file",[58],{"type":46,"value":59},"Purpose Of This File",{"type":41,"tag":48,"props":61,"children":62},{},[63],{"type":46,"value":64},"This file is intentionally minimal and only covers:",{"type":41,"tag":66,"props":67,"children":68},"ol",{},[69,84,89],{"type":41,"tag":70,"props":71,"children":72},"li",{},[73,75,82],{"type":46,"value":74},"connector loading and runtime boundaries in the Codex ",{"type":41,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":46,"value":81},"node_repl",{"type":46,"value":83}," world",{"type":41,"tag":70,"props":85,"children":86},{},[87],{"type":46,"value":88},"mandatory routing to reference files",{"type":41,"tag":70,"props":90,"children":91},{},[92],{"type":46,"value":93},"routing to workflow references",{"type":41,"tag":48,"props":95,"children":96},{},[97,99,105],{"type":46,"value":98},"Detailed write, chart, thumbnail, creation, and final-pass rules live in ",{"type":41,"tag":76,"props":100,"children":102},{"className":101},[],[103],{"type":46,"value":104},"references\u002F",{"type":46,"value":106},".\nLatency is not a constraint for this skill, so always read the relevant reference files before performing the task.",{"type":41,"tag":48,"props":108,"children":109},{},[110],{"type":46,"value":111},"The active\u002Fmain agent must personally read this file and every relevant reference file in the current turn. Do not delegate reference-file reading or summarization to a subagent and then rely on that summary for the workflow. This is not a general prohibition on subagents: they may still be used for other well-scoped execution, extraction, or QA work after the main agent has loaded the applicable skill guidance itself.",{"type":41,"tag":54,"props":113,"children":115},{"id":114},"runtime-model",[116],{"type":46,"value":117},"Runtime Model",{"type":41,"tag":66,"props":119,"children":120},{},[121,126,138,143,162],{"type":41,"tag":70,"props":122,"children":123},{},[124],{"type":46,"value":125},"Use Google Slides connector or app tools directly from Codex when they are available.",{"type":41,"tag":70,"props":127,"children":128},{},[129,131,136],{"type":46,"value":130},"Use ",{"type":41,"tag":76,"props":132,"children":134},{"className":133},[],[135],{"type":46,"value":81},{"type":46,"value":137}," only for source processing or small JavaScript utilities that are not connector calls.",{"type":41,"tag":70,"props":139,"children":140},{},[141],{"type":46,"value":142},"Do not use embedded-runtime helper snippets or assumed global connector bindings.",{"type":41,"tag":70,"props":144,"children":145},{},[146,148,153,155,160],{"type":46,"value":147},"Connector tools are not called from inside ",{"type":41,"tag":76,"props":149,"children":151},{"className":150},[],[152],{"type":46,"value":81},{"type":46,"value":154},". Treat connector calls and ",{"type":41,"tag":76,"props":156,"children":158},{"className":157},[],[159],{"type":46,"value":81},{"type":46,"value":161}," helper work as separate execution surfaces.",{"type":41,"tag":70,"props":163,"children":164},{},[165],{"type":46,"value":166},"Browser Use is not the Slides editing path. Use connector reads, slide structure, and thumbnails.",{"type":41,"tag":54,"props":168,"children":170},{"id":169},"default-routing",[171],{"type":46,"value":172},"Default Routing",{"type":41,"tag":48,"props":174,"children":175},{},[176],{"type":46,"value":177},"Unless the user asks otherwise:",{"type":41,"tag":66,"props":179,"children":180},{},[181,202,246,251],{"type":41,"tag":70,"props":182,"children":183},{},[184,186,192,194,200],{"type":46,"value":185},"New deck from a provided native Google Slides template or reference deck: copy the provided deck directly in Google Drive, then use Slides ",{"type":41,"tag":76,"props":187,"children":189},{"className":188},[],[190],{"type":46,"value":191},"batchUpdate",{"type":46,"value":193}," on the copy. Read ",{"type":41,"tag":76,"props":195,"children":197},{"className":196},[],[198],{"type":46,"value":199},"references\u002Freference-template-reference-deck-copy-workflow.md",{"type":46,"value":201},".",{"type":41,"tag":70,"props":203,"children":204},{},[205,207,213,215,221,223,229,231,237,239,245],{"type":46,"value":206},"Net-new Google Slides deck without a provided native Slides template or reference deck: use ",{"type":41,"tag":76,"props":208,"children":210},{"className":209},[],[211],{"type":46,"value":212},"[@presentations](plugin:\u002F\u002Fpresentations@openai-primary-runtime)",{"type":46,"value":214}," to create a local ",{"type":41,"tag":76,"props":216,"children":218},{"className":217},[],[219],{"type":46,"value":220},".pptx",{"type":46,"value":222}," first. Then read ",{"type":41,"tag":76,"props":224,"children":226},{"className":225},[],[227],{"type":46,"value":228},"references\u002Freference-import-presentation.md",{"type":46,"value":230}," and import with ",{"type":41,"tag":76,"props":232,"children":234},{"className":233},[],[235],{"type":46,"value":236},"mcp__codex_apps__google_drive_import_presentation",{"type":46,"value":238}," using ",{"type":41,"tag":76,"props":240,"children":242},{"className":241},[],[243],{"type":46,"value":244},"upload_mode: \"native_google_slides\"",{"type":46,"value":201},{"type":41,"tag":70,"props":247,"children":248},{},[249],{"type":46,"value":250},"If the Presentations plugin is unavailable for a net-new deck that does not use the native Slides copy workflow, do not create the deck directly. Report that the required local Presentations authoring path is unavailable.",{"type":41,"tag":70,"props":252,"children":253},{},[254],{"type":46,"value":255},"Existing Google Slides reads, summaries, edits, comments, and template-preserving modifications: use Google Slides connector or app tools directly.",{"type":41,"tag":48,"props":257,"children":258},{},[259,261,266],{"type":46,"value":260},"For net-new Google Slides without a provided native Slides template or reference deck, the PPTX-import path is the only currently supported high-quality workflow. Do not create a blank Google Slides deck and fill it with Google Slides write APIs, use Computer Use, use Browser Use, or build the deck directly in Google Drive unless the user explicitly asks for that alternate workflow. If they do, mention first that output quality is expected to be best when a local ",{"type":41,"tag":76,"props":262,"children":264},{"className":263},[],[265],{"type":46,"value":220},{"type":46,"value":267}," is imported through the Google Drive plugin.",{"type":41,"tag":48,"props":269,"children":270},{},[271,273,278,280,285],{"type":46,"value":272},"For new decks from a provided native Google Slides template or reference deck, do not create a local ",{"type":41,"tag":76,"props":274,"children":276},{"className":275},[],[277],{"type":46,"value":220},{"type":46,"value":279}," first. Copy the provided deck directly, treat the copy as the destination deck, and create\u002Fedit slides there with ",{"type":41,"tag":76,"props":281,"children":283},{"className":282},[],[284],{"type":46,"value":191},{"type":46,"value":286}," using duplicated exemplar slides or layouts from the copied deck. Populate existing template objects first: replace text, images, charts, tables, and placeholder content in the copied slide's existing slots instead of adding new primary content boxes.",{"type":41,"tag":48,"props":288,"children":289},{},[290],{"type":46,"value":291},"The slide-planning, archetype-selection, hierarchy, semantic-emphasis, evidence-legibility, and deck-consistency rules apply across both creation paths and to slides added to existing decks. Only source-parity requirements such as exact text preservation, speaker-note parity, and media-ID parity depend on a source-based adaptation or migration request.",{"type":41,"tag":48,"props":293,"children":294},{},[295],{"type":46,"value":296},"The import reference owns the exact connector action, plugin install\u002Freinstall handling, native-conversion verification, post-import verification, and cleanup expectations. Read it before any net-new Google Slides import attempt.",{"type":41,"tag":48,"props":298,"children":299},{},[300],{"type":46,"value":301},"For imports and any explicit direct-create override, wait for the write action to complete, then perform connector readback or Drive metadata readback before returning a Google Slides URL or presentation id. Use only a URL or id observed from the completed connector result or readback. Do not synthesize or predict Google Slides URLs, and do not present a URL as ready if readback fails.",{"type":41,"tag":54,"props":303,"children":305},{"id":304},"non-negotiable-output-invariant",[306],{"type":46,"value":307},"Non-Negotiable Output Invariant",{"type":41,"tag":48,"props":309,"children":310},{},[311],{"type":46,"value":312},"Inserted or edited content must match the target deck's existing structure and connector-observable presentation closely enough that it reads as native deck content. Net-new slides must use a coherent archetype, hierarchy, and visual system rather than an arbitrary collection of objects.\nTreat wrong target deck, wrong slide, stale object IDs, missing chart updates, leftover placeholder or template sample text, empty or unresolved placeholder objects, primary content placed in newly created freeform boxes while an inherited or template slot remains unused, clipped text, broken slide order, or unverified visible layout changes as failed output that must be corrected before handoff.",{"type":41,"tag":48,"props":314,"children":315},{},[316,318,323,325,330,332,337],{"type":46,"value":317},"For Slides batch updates, API success is not completion. A fresh post-write LARGE thumbnail and examining the image by curling it is required for every touched slide. You MUST curl the image after requesting thumbnail. No skip.\nFor net-new Google Slides without a provided native Slides template or reference deck, create a local ",{"type":41,"tag":76,"props":319,"children":321},{"className":320},[],[322],{"type":46,"value":220},{"type":46,"value":324}," with ",{"type":41,"tag":76,"props":326,"children":328},{"className":327},[],[329],{"type":46,"value":212},{"type":46,"value":331}," and import it to Google Drive with ",{"type":41,"tag":76,"props":333,"children":335},{"className":334},[],[336],{"type":46,"value":244},{"type":46,"value":201},{"type":41,"tag":54,"props":339,"children":341},{"id":340},"canonical-workflow-bias",[342],{"type":46,"value":343},"Canonical Workflow Bias",{"type":41,"tag":48,"props":345,"children":346},{},[347],{"type":46,"value":348},"Prefer one simple proven workflow over a large tree of recovery branches.\nWhen a task matches a known successful pattern, follow that pattern directly instead of re-evaluating every possible insertion or fallback path.\nDo not let accumulated edge-case guardrails turn a straightforward Slides task into a long blocker-analysis exercise.",{"type":41,"tag":48,"props":350,"children":351},{},[352],{"type":46,"value":353},"For deck creation and editing tasks, prefer this general sequence when viable:",{"type":41,"tag":66,"props":355,"children":356},{},[357,362,367,372,377,382,387],{"type":41,"tag":70,"props":358,"children":359},{},[360],{"type":46,"value":361},"gather the required source material",{"type":41,"tag":70,"props":363,"children":364},{},[365],{"type":46,"value":366},"attach to or create the destination presentation",{"type":41,"tag":70,"props":368,"children":369},{},[370],{"type":46,"value":371},"read the deck structure and target slides",{"type":41,"tag":70,"props":373,"children":374},{},[375],{"type":46,"value":376},"establish the slide checklist or slide plan",{"type":41,"tag":70,"props":378,"children":379},{},[380],{"type":46,"value":381},"write small, grounded batches with live object IDs",{"type":41,"tag":70,"props":383,"children":384},{},[385],{"type":46,"value":386},"verify through connector readback and post-batch thumbnails",{"type":41,"tag":70,"props":388,"children":389},{},[390],{"type":46,"value":391},"stop once the deck is clean, complete, and scannable",{"type":41,"tag":48,"props":393,"children":394},{},[395],{"type":46,"value":396},"If a simple verified workflow is viable, use it. Do not drift into speculative alternate paths.",{"type":41,"tag":54,"props":398,"children":400},{"id":399},"release-blocker-checklist",[401],{"type":46,"value":402},"Release-Blocker Checklist",{"type":41,"tag":48,"props":404,"children":405},{},[406],{"type":46,"value":407},"Before final handoff, explicitly verify these with connector readback and thumbnails where relevant:",{"type":41,"tag":66,"props":409,"children":410},{},[411,416,421,426,431,436,441,454,459,478,483,488,493,514,543,548,553,558,563],{"type":41,"tag":70,"props":412,"children":413},{},[414],{"type":46,"value":415},"the target presentation id, title, and URL are the intended deck",{"type":41,"tag":70,"props":417,"children":418},{},[419],{"type":46,"value":420},"every edited slide in scope was read after the write",{"type":41,"tag":70,"props":422,"children":423},{},[424],{"type":46,"value":425},"every slide touched by a batch update has a fresh post-write thumbnail check",{"type":41,"tag":70,"props":427,"children":428},{},[429],{"type":46,"value":430},"every changed chart is refreshed or replaced in the intended footprint, with obsolete placeholder text removed unless the user asked to keep it",{"type":41,"tag":70,"props":432,"children":433},{},[434],{"type":46,"value":435},"every new or edited shape, image, table, and text box stays inside the slide bounds unless intentionally full-bleed",{"type":41,"tag":70,"props":437,"children":438},{},[439],{"type":46,"value":440},"no slide in a multi-slide task was skipped, duplicated, or left in a mixed old\u002Fnew state",{"type":41,"tag":70,"props":442,"children":443},{},[444,446,452],{"type":46,"value":445},"duplicated slides that needed reordering were moved only after a post-duplicate readback, with ",{"type":41,"tag":76,"props":447,"children":449},{"className":448},[],[450],{"type":46,"value":451},"slideObjectIds",{"type":46,"value":453}," listed in current presentation order",{"type":41,"tag":70,"props":455,"children":456},{},[457],{"type":46,"value":458},"no visual property is claimed as verified unless connector data or a fresh thumbnail supports it",{"type":41,"tag":70,"props":460,"children":461},{},[462,464,470,472],{"type":46,"value":463},"final presentation output is an editable Google Slides deck, not one PNG per slide; verify editable components with ",{"type":41,"tag":76,"props":465,"children":467},{"className":466},[],[468],{"type":46,"value":469},"mcp__codex_apps__google_drive_get_presentation",{"type":46,"value":471}," or ",{"type":41,"tag":76,"props":473,"children":475},{"className":474},[],[476],{"type":46,"value":477},"mcp__codex_apps__google_drive_get_slide",{"type":41,"tag":70,"props":479,"children":480},{},[481],{"type":46,"value":482},"for imports and direct creates, the final returned URL or presentation id came from a completed connector result or readback, not a predicted Google Slides URL",{"type":41,"tag":70,"props":484,"children":485},{},[486],{"type":46,"value":487},"for template\u002Freference-deck copies, the final returned URL or presentation id came from the completed copy result or readback, not from the source deck or a predicted URL",{"type":41,"tag":70,"props":489,"children":490},{},[491],{"type":46,"value":492},"Even when a local pptx was created for an import workflow, do not cite the local pptx path as a deliverable in your final answer. Your final answer must only reference the verified gsuite link.",{"type":41,"tag":70,"props":494,"children":495},{},[496,498,504,506,512],{"type":46,"value":497},"for any slide inserted from a layout (",{"type":41,"tag":76,"props":499,"children":501},{"className":500},[],[502],{"type":46,"value":503},"slideLayoutReference",{"type":46,"value":505},", ",{"type":41,"tag":76,"props":507,"children":509},{"className":508},[],[510],{"type":46,"value":511},"predefinedLayout",{"type":46,"value":513},", or inherited master\u002Flayout placeholders), every inherited placeholder object was populated, replaced, or intentionally deleted; do not rely on thumbnails alone because empty placeholders can be invisible",{"type":41,"tag":70,"props":515,"children":516},{},[517,519,525,527,533,535,541],{"type":46,"value":518},"for template\u002Freference-deck copies, full ",{"type":41,"tag":76,"props":520,"children":522},{"className":521},[],[523],{"type":46,"value":524},"get_presentation",{"type":46,"value":526}," or per-slide ",{"type":41,"tag":76,"props":528,"children":530},{"className":529},[],[531],{"type":46,"value":532},"get_slide",{"type":46,"value":534}," readback was used for final structural validation; ",{"type":41,"tag":76,"props":536,"children":538},{"className":537},[],[539],{"type":46,"value":540},"get_presentation_outline",{"type":46,"value":542}," alone is insufficient",{"type":41,"tag":70,"props":544,"children":545},{},[546],{"type":46,"value":547},"for template\u002Freference-deck copies, content-bearing placeholders and reusable template objects were used where they exist; newly created primary text\u002Fimage boxes are justified by the chosen slide plan, not a shortcut around the template",{"type":41,"tag":70,"props":549,"children":550},{},[551],{"type":46,"value":552},"when adapting or migrating provided source material, source-to-destination fidelity was checked for substantive text, visuals, charts, tables, links, media type and source identifier when active\u002Faccessible, and non-empty speaker notes; no required source content disappeared or was silently summarized",{"type":41,"tag":70,"props":554,"children":555},{},[556],{"type":46,"value":557},"text hierarchy and layout semantics remain meaningful: mixed heading\u002Fbody style runs were not flattened, blank bulleted paragraphs do not render stray bullets, and inherited emphasis does not imply unsupported totals, rankings, categories, status, or importance",{"type":41,"tag":70,"props":559,"children":560},{},[561],{"type":46,"value":562},"visual evidence is presentation-readable, not merely unclipped: crops preserve essential regions, important labels and footnotes remain legible, and landscape evidence was not forced into an unsuitable portrait frame",{"type":41,"tag":70,"props":564,"children":565},{},[566],{"type":46,"value":567},"no generic editor prompts, bracketed instructions, sample copy, lorem ipsum, old-event content, or other template scaffolding remains unless explicitly requested by the user",{"type":41,"tag":48,"props":569,"children":570},{},[571],{"type":41,"tag":572,"props":573,"children":574},"strong",{},[575],{"type":46,"value":576},"Slides",{"type":41,"tag":578,"props":579,"children":580},"ul",{},[581,586,614,619,624,629,634,639,644,649,654,659],{"type":41,"tag":70,"props":582,"children":583},{},[584],{"type":46,"value":585},"Content: ensure the content covers everything requested by the user and ensure the storytelling of the overall deck is coherent.",{"type":41,"tag":70,"props":587,"children":588},{},[589,591,597,599,605,607,613],{"type":46,"value":590},"Search: use ",{"type":41,"tag":76,"props":592,"children":594},{"className":593},[],[595],{"type":46,"value":596},"web.run",{"type":46,"value":598},"'s ",{"type":41,"tag":76,"props":600,"children":602},{"className":601},[],[603],{"type":46,"value":604},"image_query",{"type":46,"value":606}," for efficient image search instead of ",{"type":41,"tag":76,"props":608,"children":610},{"className":609},[],[611],{"type":46,"value":612},"search_query",{"type":46,"value":201},{"type":41,"tag":70,"props":615,"children":616},{},[617],{"type":46,"value":618},"Visual assets: DO NOT use Python to draw any images; DO NOT use programmatic vector shapes for visuals; DO NOT use programmatic drawings of any sort. Use image search or imagegen instead! By default, DO NOT reuse the same image more than once (unless it's a background). Not only do you need to prepare visuals for the main concept, you also need to get decorative visuals. Before sourcing or generating visuals, be mindful of the desired aspect ratio, placement, and cropping options on the slide. For example, if you intend to place text to the left of the image containing a person, you should ask imagegen to put the person on the right side of the image.",{"type":41,"tag":70,"props":620,"children":621},{},[622],{"type":46,"value":623},"Default styling: use one composition instead of a collection of UI panels. UI-like styling typically includes card grids, pills, badges, button-like text boxes, tab or navigation patterns, repeated modular panels, dense dashboard-style layouts, and other component-library aesthetics that imply interactivity. Use stylized text boxes less, favoring a flat structure on the canvas.",{"type":41,"tag":70,"props":625,"children":626},{},[627],{"type":46,"value":628},"Visual storytelling: Prioritize visual storytelling by default, favoring real images, generated visuals, diagrams, plots, and charts to convey concepts whenever appropriate rather than relying solely on plain text, especially when the user does not provide assets. As a general rule of thumb, aim for approximately 2-4 visual assets per slide, including meaningful styling elements, adjusting as needed based on the topic, complexity, and overall theme of the task.",{"type":41,"tag":70,"props":630,"children":631},{},[632],{"type":46,"value":633},"Connectors in diagrams: In the final implementation, create connectors (arrows\u002Fedges) before creating entity nodes, so edges appear behind nodes and never cross through node shapes or labels. If this ordering is awkward during early iteration, you may create nodes first in the initial draft, then switch to connectors-first in the revised code.",{"type":41,"tag":70,"props":635,"children":636},{},[637],{"type":46,"value":638},"Overlap: You MUST fix ALL unintended overlap errors before you deliver the slides! It's of paramount importance!",{"type":41,"tag":70,"props":640,"children":641},{},[642],{"type":46,"value":643},"Font size: When a template is provided, match its font sizes. Avoid overly small text. When no template or style guidance is given, a good rule of thumb is at least 42pt for deck titles, 32pt for slide titles, and 17pt for body text. If you see overflow\u002Foverlap, try cutting content before shrinking text further to improve text layout.",{"type":41,"tag":70,"props":645,"children":646},{},[647],{"type":46,"value":648},"Text layout: for net-new authoring where wording is flexible, shorten copy when needed. When the user supplied required wording or source material whose fidelity matters, do not silently shorten or summarize it; choose a denser archetype, restructure within the slide, split only when the request permits it, or flag the tradeoff. Inspect visually for unexpected text wrapping. NEVER put 2 lines of text into a title\u002Fbanner text box meant for a single line of text.",{"type":41,"tag":70,"props":650,"children":651},{},[652],{"type":46,"value":653},"Diagrams implementation: use native PowerPoint shapes for simple diagrams; use Graphviz for complex relational\u002Ftopological\u002Fnetwork-like diagrams; use imagegen for highly aesthetic, illustrative, or scientific infographic diagrams (e.g. chemical structures, circuit diagrams, etc.).",{"type":41,"tag":70,"props":655,"children":656},{},[657],{"type":46,"value":658},"Title slide: Keep the title slide minimal and simple. Avoid cramming in too much information.",{"type":41,"tag":70,"props":660,"children":661},{},[662],{"type":46,"value":663},"When to use diagrams: Prefer data-driven charts or plots when applicable; use diagrams only when they improve the storytelling (not to fill empty space).",{"type":41,"tag":48,"props":665,"children":666},{},[667],{"type":46,"value":668},"If any check fails, the task is not complete.",{"type":41,"tag":54,"props":670,"children":672},{"id":671},"required-read-order-no-skips",[673],{"type":46,"value":674},"Required Read Order (No Skips)",{"type":41,"tag":48,"props":676,"children":677},{},[678],{"type":46,"value":679},"Before any content write or edit operation:",{"type":41,"tag":48,"props":681,"children":682},{},[683],{"type":46,"value":684},"The active\u002Fmain agent must perform this reading itself. Do not assign these files to subagents for summarization. Subagents remain available for other independent tasks after the main agent has read the applicable guidance.",{"type":41,"tag":48,"props":686,"children":687},{},[688],{"type":46,"value":689},"\"Relevant\" means the baseline safety references below plus every matching task-specific row in the task map. It does not require unrelated reference files unless the task is ambiguous.",{"type":41,"tag":66,"props":691,"children":692},{},[693,705,716,727,738,749,754,759],{"type":41,"tag":70,"props":694,"children":695},{},[696,698,704],{"type":46,"value":697},"Read ",{"type":41,"tag":76,"props":699,"children":701},{"className":700},[],[702],{"type":46,"value":703},"references\u002Freference-connector-runtime-and-safety.md",{"type":46,"value":201},{"type":41,"tag":70,"props":706,"children":707},{},[708,709,715],{"type":46,"value":697},{"type":41,"tag":76,"props":710,"children":712},{"className":711},[],[713],{"type":46,"value":714},"references\u002Freference-target-presentation-guard.md",{"type":46,"value":201},{"type":41,"tag":70,"props":717,"children":718},{},[719,720,726],{"type":46,"value":697},{"type":41,"tag":76,"props":721,"children":723},{"className":722},[],[724],{"type":46,"value":725},"references\u002Freference-google-slides-mcp-discovery.md",{"type":46,"value":201},{"type":41,"tag":70,"props":728,"children":729},{},[730,731,737],{"type":46,"value":697},{"type":41,"tag":76,"props":732,"children":734},{"className":733},[],[735],{"type":46,"value":736},"references\u002Freference-request-shapes-and-write-safety.md",{"type":46,"value":201},{"type":41,"tag":70,"props":739,"children":740},{},[741,742,748],{"type":46,"value":697},{"type":41,"tag":76,"props":743,"children":745},{"className":744},[],[746],{"type":46,"value":747},"references\u002Freference-thumbnail-visual-verification.md",{"type":46,"value":201},{"type":41,"tag":70,"props":750,"children":751},{},[752],{"type":46,"value":753},"Read every task-specific file from the matrix below.",{"type":41,"tag":70,"props":755,"children":756},{},[757],{"type":46,"value":758},"If the task spans multiple categories, read all matching files.",{"type":41,"tag":70,"props":760,"children":761},{},[762,764,769],{"type":46,"value":763},"If uncertain, read every file in ",{"type":41,"tag":76,"props":765,"children":767},{"className":766},[],[768],{"type":46,"value":104},{"type":46,"value":201},{"type":41,"tag":48,"props":771,"children":772},{},[773,775,780,782,787],{"type":46,"value":774},"For net-new local ",{"type":41,"tag":76,"props":776,"children":778},{"className":777},[],[779],{"type":46,"value":220},{"type":46,"value":781}," creation, read the ",{"type":41,"tag":76,"props":783,"children":785},{"className":784},[],[786],{"type":46,"value":212},{"type":46,"value":788}," authoring skill before creating the deck.",{"type":41,"tag":48,"props":790,"children":791},{},[792],{"type":46,"value":793},"Do not execute content edits until the required references are read in the current turn.",{"type":41,"tag":54,"props":795,"children":797},{"id":796},"connector-load-checklist",[798],{"type":46,"value":799},"Connector Load Checklist",{"type":41,"tag":66,"props":801,"children":802},{},[803,808,813,818,823,835,858,863],{"type":41,"tag":70,"props":804,"children":805},{},[806],{"type":46,"value":807},"Confirm the exact target Google Slides URL or presentation id.",{"type":41,"tag":70,"props":809,"children":810},{},[811],{"type":46,"value":812},"Resolve and record the presentation id, title, slide count, and target slide object IDs.",{"type":41,"tag":70,"props":814,"children":815},{},[816],{"type":46,"value":817},"Treat target-presentation identity as a hard precondition for connector writes.",{"type":41,"tag":70,"props":819,"children":820},{},[821],{"type":46,"value":822},"Before each edit pass, identify the slide, object IDs, and current geometry through connector reads.",{"type":41,"tag":70,"props":824,"children":825},{},[826,828,833],{"type":46,"value":827},"Before every connector write batch, re-read ",{"type":41,"tag":76,"props":829,"children":831},{"className":830},[],[832],{"type":46,"value":714},{"type":46,"value":834}," and re-confirm the target presentation and slide object IDs.",{"type":41,"tag":70,"props":836,"children":837},{},[838,840],{"type":46,"value":839},"Read via connector first, using the current Google Slides actions:\n",{"type":41,"tag":578,"props":841,"children":842},{},[843,848,853],{"type":41,"tag":70,"props":844,"children":845},{},[846],{"type":46,"value":847},"get presentation, text, or outline",{"type":41,"tag":70,"props":849,"children":850},{},[851],{"type":46,"value":852},"get slide",{"type":41,"tag":70,"props":854,"children":855},{},[856],{"type":46,"value":857},"get slide thumbnail before and after batch updates, and when visual evidence matters",{"type":41,"tag":70,"props":859,"children":860},{},[861],{"type":46,"value":862},"If the source is a template or existing deck that should be preserved, create a copy before editing.",{"type":41,"tag":70,"props":864,"children":865},{},[866],{"type":46,"value":867},"Do not claim the connector is unavailable, read-only, or blocked unless the current session has established that through capability evidence.",{"type":41,"tag":54,"props":869,"children":871},{"id":870},"task-to-reference-map",[872],{"type":46,"value":873},"Task To Reference Map",{"type":41,"tag":875,"props":876,"children":877},"table",{},[878,897],{"type":41,"tag":879,"props":880,"children":881},"thead",{},[882],{"type":41,"tag":883,"props":884,"children":885},"tr",{},[886,892],{"type":41,"tag":887,"props":888,"children":889},"th",{},[890],{"type":46,"value":891},"Task area",{"type":41,"tag":887,"props":893,"children":894},{},[895],{"type":46,"value":896},"Required reference file",{"type":41,"tag":898,"props":899,"children":900},"tbody",{},[901,918,934,950,966,983,999,1015,1032,1070,1087,1104,1121,1138,1155],{"type":41,"tag":883,"props":902,"children":903},{},[904,910],{"type":41,"tag":905,"props":906,"children":907},"td",{},[908],{"type":46,"value":909},"Runtime attachment, target identity, safety, and recovery",{"type":41,"tag":905,"props":911,"children":912},{},[913],{"type":41,"tag":76,"props":914,"children":916},{"className":915},[],[917],{"type":46,"value":703},{"type":41,"tag":883,"props":919,"children":920},{},[921,926],{"type":41,"tag":905,"props":922,"children":923},{},[924],{"type":46,"value":925},"Confirming the target presentation before every write batch",{"type":41,"tag":905,"props":927,"children":928},{},[929],{"type":41,"tag":76,"props":930,"children":932},{"className":931},[],[933],{"type":46,"value":714},{"type":41,"tag":883,"props":935,"children":936},{},[937,942],{"type":41,"tag":905,"props":938,"children":939},{},[940],{"type":46,"value":941},"Google Slides MCP discovery, connector wrapper vs official Slides API mapping, method catalog, and batchUpdate request catalog",{"type":41,"tag":905,"props":943,"children":944},{},[945],{"type":41,"tag":76,"props":946,"children":948},{"className":947},[],[949],{"type":46,"value":725},{"type":41,"tag":883,"props":951,"children":952},{},[953,958],{"type":41,"tag":905,"props":954,"children":955},{},[956],{"type":46,"value":957},"Batch update request shape, live object IDs, geometry, and write safety",{"type":41,"tag":905,"props":959,"children":960},{},[961],{"type":41,"tag":76,"props":962,"children":964},{"className":963},[],[965],{"type":46,"value":736},{"type":41,"tag":883,"props":967,"children":968},{},[969,974],{"type":41,"tag":905,"props":970,"children":971},{},[972],{"type":46,"value":973},"Deck summaries, candidate slides, multi-slide edits, translation, or deck-wide changes",{"type":41,"tag":905,"props":975,"children":976},{},[977],{"type":41,"tag":76,"props":978,"children":980},{"className":979},[],[981],{"type":46,"value":982},"references\u002Freference-read-before-write-and-deck-scope.md",{"type":41,"tag":883,"props":984,"children":985},{},[986,991],{"type":41,"tag":905,"props":987,"children":988},{},[989],{"type":46,"value":990},"Any layout, styling, image, chart, or placement change",{"type":41,"tag":905,"props":992,"children":993},{},[994],{"type":41,"tag":76,"props":995,"children":997},{"className":996},[],[998],{"type":46,"value":747},{"type":41,"tag":883,"props":1000,"children":1001},{},[1002,1007],{"type":41,"tag":905,"props":1003,"children":1004},{},[1005],{"type":46,"value":1006},"New deck from a provided native Google Slides template or reference deck",{"type":41,"tag":905,"props":1008,"children":1009},{},[1010],{"type":41,"tag":76,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":46,"value":199},{"type":41,"tag":883,"props":1016,"children":1017},{},[1018,1023],{"type":41,"tag":905,"props":1019,"children":1020},{},[1021],{"type":46,"value":1022},"New deck creation, copy-from-template workflows, or final handoff after any write",{"type":41,"tag":905,"props":1024,"children":1025},{},[1026],{"type":41,"tag":76,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":46,"value":1031},"references\u002Freference-new-deck-and-final-pass.md",{"type":41,"tag":883,"props":1033,"children":1034},{},[1035,1062],{"type":41,"tag":905,"props":1036,"children":1037},{},[1038,1040,1046,1047,1052,1054,1060],{"type":46,"value":1039},"Local ",{"type":41,"tag":76,"props":1041,"children":1043},{"className":1042},[],[1044],{"type":46,"value":1045},".ppt",{"type":46,"value":505},{"type":41,"tag":76,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":46,"value":220},{"type":46,"value":1053},", or ",{"type":41,"tag":76,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":46,"value":1059},".odp",{"type":46,"value":1061}," import",{"type":41,"tag":905,"props":1063,"children":1064},{},[1065],{"type":41,"tag":76,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":46,"value":228},{"type":41,"tag":883,"props":1071,"children":1072},{},[1073,1078],{"type":41,"tag":905,"props":1074,"children":1075},{},[1076],{"type":46,"value":1077},"Visual cleanup, overflow, spacing, alignment, or deck polish",{"type":41,"tag":905,"props":1079,"children":1080},{},[1081],{"type":41,"tag":76,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":46,"value":1086},"references\u002Freference-visual-iteration.md",{"type":41,"tag":883,"props":1088,"children":1089},{},[1090,1095],{"type":41,"tag":905,"props":1091,"children":1092},{},[1093],{"type":46,"value":1094},"Migrating source content onto a template deck with fidelity requirements",{"type":41,"tag":905,"props":1096,"children":1097},{},[1098],{"type":41,"tag":76,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":46,"value":1103},"references\u002Freference-template-migration.md",{"type":41,"tag":883,"props":1105,"children":1106},{},[1107,1112],{"type":41,"tag":905,"props":1108,"children":1109},{},[1110],{"type":46,"value":1111},"Any multi-slide creation, source adaptation, template following, or layout-selection workflow",{"type":41,"tag":905,"props":1113,"children":1114},{},[1115],{"type":41,"tag":76,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":46,"value":1120},"references\u002Freference-slide-planning-and-layout-selection.md",{"type":41,"tag":883,"props":1122,"children":1123},{},[1124,1129],{"type":41,"tag":905,"props":1125,"children":1126},{},[1127],{"type":46,"value":1128},"Choosing slide archetypes, compositions, or repeated layout families for any created or adapted slide",{"type":41,"tag":905,"props":1130,"children":1131},{},[1132],{"type":41,"tag":76,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":46,"value":1137},"references\u002Freference-slide-archetype-mapping.md",{"type":41,"tag":883,"props":1139,"children":1140},{},[1141,1146],{"type":41,"tag":905,"props":1142,"children":1143},{},[1144],{"type":46,"value":1145},"Chart refresh, chart replacement, or Sheets-sourced chart work",{"type":41,"tag":905,"props":1147,"children":1148},{},[1149],{"type":41,"tag":76,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":46,"value":1154},"references\u002Freference-chart-workflows.md",{"type":41,"tag":883,"props":1156,"children":1157},{},[1158,1163],{"type":41,"tag":905,"props":1159,"children":1160},{},[1161],{"type":46,"value":1162},"Copy-and-fill raw batch update examples",{"type":41,"tag":905,"props":1164,"children":1165},{},[1166],{"type":41,"tag":76,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":46,"value":1171},"references\u002Freference-batch-update-recipes.md",{"items":1173,"total":1295},[1174,1193,1209,1221,1241,1263,1283],{"slug":1175,"name":1175,"fn":1176,"description":1177,"org":1178,"tags":1179,"stars":24,"repoUrl":25,"updatedAt":1192},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1180,1183,1186,1189],{"name":1181,"slug":1182,"type":15},"Accessibility","accessibility",{"name":1184,"slug":1185,"type":15},"Charts","charts",{"name":1187,"slug":1188,"type":15},"Data Visualization","data-visualization",{"name":1190,"slug":1191,"type":15},"Design","design","2026-06-30T19:00:57.102",{"slug":1194,"name":1194,"fn":1195,"description":1196,"org":1197,"tags":1198,"stars":24,"repoUrl":25,"updatedAt":1208},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1199,1202,1205],{"name":1200,"slug":1201,"type":15},"Agents","agents",{"name":1203,"slug":1204,"type":15},"Browser Automation","browser-automation",{"name":1206,"slug":1207,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":1210,"name":1210,"fn":1211,"description":1212,"org":1213,"tags":1214,"stars":24,"repoUrl":25,"updatedAt":1220},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1215,1216,1219],{"name":1203,"slug":1204,"type":15},{"name":1217,"slug":1218,"type":15},"Local Development","local-development",{"name":1206,"slug":1207,"type":15},"2026-04-06T18:41:17.526867",{"slug":1222,"name":1222,"fn":1223,"description":1224,"org":1225,"tags":1226,"stars":24,"repoUrl":25,"updatedAt":1240},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1227,1228,1231,1234,1237],{"name":1200,"slug":1201,"type":15},{"name":1229,"slug":1230,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1232,"slug":1233,"type":15},"SDK","sdk",{"name":1235,"slug":1236,"type":15},"Serverless","serverless",{"name":1238,"slug":1239,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":1242,"name":1242,"fn":1243,"description":1244,"org":1245,"tags":1246,"stars":24,"repoUrl":25,"updatedAt":1262},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1247,1250,1253,1256,1259],{"name":1248,"slug":1249,"type":15},"Frontend","frontend",{"name":1251,"slug":1252,"type":15},"React","react",{"name":1254,"slug":1255,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":1257,"slug":1258,"type":15},"UI Components","ui-components",{"name":1260,"slug":1261,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":1264,"name":1264,"fn":1265,"description":1266,"org":1267,"tags":1268,"stars":24,"repoUrl":25,"updatedAt":1282},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1269,1272,1275,1278,1281],{"name":1270,"slug":1271,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1273,"slug":1274,"type":15},"Cost Optimization","cost-optimization",{"name":1276,"slug":1277,"type":15},"LLM","llm",{"name":1279,"slug":1280,"type":15},"Performance","performance",{"name":1260,"slug":1261,"type":15},"2026-04-06T18:40:44.377464",{"slug":1284,"name":1284,"fn":1285,"description":1286,"org":1287,"tags":1288,"stars":24,"repoUrl":25,"updatedAt":1294},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1289,1290,1293],{"name":1273,"slug":1274,"type":15},{"name":1291,"slug":1292,"type":15},"Database","database",{"name":1276,"slug":1277,"type":15},"2026-04-06T18:41:08.513425",600,{"items":1297,"total":1492},[1298,1317,1340,1357,1373,1390,1409,1421,1435,1449,1461,1476],{"slug":1299,"name":1299,"fn":1300,"description":1301,"org":1302,"tags":1303,"stars":1314,"repoUrl":1315,"updatedAt":1316},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1304,1305,1308,1311],{"name":20,"slug":21,"type":15},{"name":1306,"slug":1307,"type":15},"Healthcare","healthcare",{"name":1309,"slug":1310,"type":15},"Insurance","insurance",{"name":1312,"slug":1313,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":1318,"name":1318,"fn":1319,"description":1320,"org":1321,"tags":1322,"stars":1337,"repoUrl":1338,"updatedAt":1339},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1323,1326,1328,1331,1334],{"name":1324,"slug":1325,"type":15},".NET","dotnet",{"name":1327,"slug":1318,"type":15},"ASP.NET Core",{"name":1329,"slug":1330,"type":15},"Blazor","blazor",{"name":1332,"slug":1333,"type":15},"C#","csharp",{"name":1335,"slug":1336,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":1341,"name":1341,"fn":1342,"description":1343,"org":1344,"tags":1345,"stars":1337,"repoUrl":1338,"updatedAt":1356},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1346,1349,1352,1355],{"name":1347,"slug":1348,"type":15},"Apps SDK","apps-sdk",{"name":1350,"slug":1351,"type":15},"ChatGPT","chatgpt",{"name":1353,"slug":1354,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":1358,"name":1358,"fn":1359,"description":1360,"org":1361,"tags":1362,"stars":1337,"repoUrl":1338,"updatedAt":1372},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1363,1366,1369],{"name":1364,"slug":1365,"type":15},"API Development","api-development",{"name":1367,"slug":1368,"type":15},"CLI","cli",{"name":1370,"slug":1371,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":1374,"name":1374,"fn":1375,"description":1376,"org":1377,"tags":1378,"stars":1337,"repoUrl":1338,"updatedAt":1389},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1379,1382,1385,1386],{"name":1380,"slug":1381,"type":15},"Cloudflare","cloudflare",{"name":1383,"slug":1384,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1229,"slug":1230,"type":15},{"name":1387,"slug":1388,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":1391,"name":1391,"fn":1392,"description":1393,"org":1394,"tags":1395,"stars":1337,"repoUrl":1338,"updatedAt":1408},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1396,1399,1402,1405],{"name":1397,"slug":1398,"type":15},"Productivity","productivity",{"name":1400,"slug":1401,"type":15},"Project Management","project-management",{"name":1403,"slug":1404,"type":15},"Strategy","strategy",{"name":1406,"slug":1407,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":1410,"name":1410,"fn":1411,"description":1412,"org":1413,"tags":1414,"stars":1337,"repoUrl":1338,"updatedAt":1420},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1415,1416,1418,1419],{"name":1190,"slug":1191,"type":15},{"name":1417,"slug":1410,"type":15},"Figma",{"name":1248,"slug":1249,"type":15},{"name":1353,"slug":1354,"type":15},"2026-04-12T05:06:47.939943",{"slug":1422,"name":1422,"fn":1423,"description":1424,"org":1425,"tags":1426,"stars":1337,"repoUrl":1338,"updatedAt":1434},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1427,1428,1431,1432,1433],{"name":1190,"slug":1191,"type":15},{"name":1429,"slug":1430,"type":15},"Design System","design-system",{"name":1417,"slug":1410,"type":15},{"name":1248,"slug":1249,"type":15},{"name":1257,"slug":1258,"type":15},"2026-05-10T05:59:52.971881",{"slug":1436,"name":1436,"fn":1437,"description":1438,"org":1439,"tags":1440,"stars":1337,"repoUrl":1338,"updatedAt":1448},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1441,1442,1443,1446,1447],{"name":1190,"slug":1191,"type":15},{"name":1429,"slug":1430,"type":15},{"name":1444,"slug":1445,"type":15},"Documentation","documentation",{"name":1417,"slug":1410,"type":15},{"name":1248,"slug":1249,"type":15},"2026-05-16T06:07:47.821474",{"slug":1450,"name":1450,"fn":1451,"description":1452,"org":1453,"tags":1454,"stars":1337,"repoUrl":1338,"updatedAt":1460},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1455,1456,1457,1458,1459],{"name":1190,"slug":1191,"type":15},{"name":1417,"slug":1410,"type":15},{"name":1248,"slug":1249,"type":15},{"name":1257,"slug":1258,"type":15},{"name":1335,"slug":1336,"type":15},"2026-05-16T06:07:40.583615",{"slug":1462,"name":1462,"fn":1463,"description":1464,"org":1465,"tags":1466,"stars":1337,"repoUrl":1338,"updatedAt":1475},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1467,1470,1471,1474],{"name":1468,"slug":1469,"type":15},"Animation","animation",{"name":1370,"slug":1371,"type":15},{"name":1472,"slug":1473,"type":15},"Creative","creative",{"name":1190,"slug":1191,"type":15},"2026-05-02T05:31:48.48485",{"slug":1477,"name":1477,"fn":1478,"description":1479,"org":1480,"tags":1481,"stars":1337,"repoUrl":1338,"updatedAt":1491},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1482,1483,1484,1487,1490],{"name":1472,"slug":1473,"type":15},{"name":1190,"slug":1191,"type":15},{"name":1485,"slug":1486,"type":15},"Image Generation","image-generation",{"name":1488,"slug":1489,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]