From b3c338e1d940c5e109193703aa58bfec3178baaa Mon Sep 17 00:00:00 2001 From: Aismit Das Date: Fri, 20 Mar 2026 14:32:58 -0400 Subject: [PATCH 1/4] Tighten Google Slides summary read path --- plugins/google-slides/skills/google-slides/SKILL.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/google-slides/skills/google-slides/SKILL.md b/plugins/google-slides/skills/google-slides/SKILL.md index 21c2ecdf..d6ba3eed 100644 --- a/plugins/google-slides/skills/google-slides/SKILL.md +++ b/plugins/google-slides/skills/google-slides/SKILL.md @@ -1,6 +1,6 @@ --- name: google-slides -description: Inspect, create, import, summarize, and update Google Slides presentations through connected Google Slides data. Use when the user wants to find a deck, read slide structure, summarize a presentation or specific slide, understand charts, graphs, or other slide visuals by combining slide text with thumbnail-based image understanding, create a new presentation, import a `.ppt`, `.pptx`, or `.odp`, or make general content edits in Google Slides. For visual polish on an existing deck, such as formatting cleanup, alignment fixes, overflow cleanup, or slide-by-slide deck cleanup, prefer `google-slides-visual-iteration`. +description: Inspect, create, import, summarize, and update Google Slides presentations through connected Google Slides data. Use when the user wants to find a deck, read slide structure, summarize a presentation or specific slide, understand charts, graphs, or other slide visuals by combining slide text with thumbnail-based image understanding, create a new presentation, import a `.ppt`, `.pptx`, or `.odp`, or make general content edits in Google Slides. For deck reading and summarization, stay on the Google Slides read-tool path rather than detouring into generic code execution or export fallbacks. For visual polish on an existing deck, such as formatting cleanup, alignment fixes, overflow cleanup, or slide-by-slide deck cleanup, prefer `google-slides-visual-iteration`. --- # Google Slides @@ -37,6 +37,8 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: 2. Read before writing. - Use `get_presentation` or `get_presentation_text` to capture slide order, titles, and overall structure. +- For deck reading, slide finding, and summarization, use Google Slides read tools directly rather than generic code execution such as `js_repl`. +- Use `get_presentation_text` to find candidate slides, then inspect the relevant slides with `get_slide` and `get_slide_thumbnail` when visual evidence matters. - Use `get_slide` before any slide-level write so object IDs and layout context come from the live deck. - For slide summaries or inspection, do not rely on text extraction alone when a slide contains charts, graphs, screenshots, diagrams, or image-heavy content. - Use `get_slide_thumbnail` alongside text/structure reads when visual evidence matters so the summary reflects both what the slide says and what the slide shows. @@ -71,6 +73,7 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: - Restate the target slide numbers, titles, or object IDs before making changes. - Prefer small `batch_update` requests over large speculative batches. - Send `batch_update` requests as structured request objects in the expected tool shape, not as JSON strings or stringified arrays. +- Do not use `export` as the default path for finding content, summarizing slides, or understanding visuals. Use it only when the user explicitly asks for an exported file or a downstream step truly requires exported bytes. - If the task depends on how the slide looks, fetch a thumbnail before editing and verify again after the write. - If the task is to summarize, interpret, or sanity-check a visual slide, fetch a thumbnail and use it as evidence for charts, graphs, screenshots, diagrams, and other non-textual content rather than summarizing only the extracted text. - When fixing slide formatting, use a tight loop: take a thumbnail, identify visible spacing/alignment/cropping/regression issues, send a focused `batch_update`, then take another thumbnail to verify the result. From b7789c78cb5e0b60327f1725edd156cc16b48a9d Mon Sep 17 00:00:00 2001 From: Aismit Das Date: Fri, 20 Mar 2026 14:55:34 -0400 Subject: [PATCH 2/4] Improve Google Slides topic retrieval --- plugins/google-slides/skills/google-slides/SKILL.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/google-slides/skills/google-slides/SKILL.md b/plugins/google-slides/skills/google-slides/SKILL.md index d6ba3eed..cded21c5 100644 --- a/plugins/google-slides/skills/google-slides/SKILL.md +++ b/plugins/google-slides/skills/google-slides/SKILL.md @@ -1,6 +1,6 @@ --- name: google-slides -description: Inspect, create, import, summarize, and update Google Slides presentations through connected Google Slides data. Use when the user wants to find a deck, read slide structure, summarize a presentation or specific slide, understand charts, graphs, or other slide visuals by combining slide text with thumbnail-based image understanding, create a new presentation, import a `.ppt`, `.pptx`, or `.odp`, or make general content edits in Google Slides. For deck reading and summarization, stay on the Google Slides read-tool path rather than detouring into generic code execution or export fallbacks. For visual polish on an existing deck, such as formatting cleanup, alignment fixes, overflow cleanup, or slide-by-slide deck cleanup, prefer `google-slides-visual-iteration`. +description: Inspect, create, import, summarize, and update Google Slides presentations through connected Google Slides data. Use when the user wants to find a deck, read slide structure, summarize a presentation or specific slide, understand charts, graphs, or other slide visuals by combining slide text with thumbnail-based image understanding, retrieve the full slide section for a conceptual topic rather than stopping at the first keyword match, create a new presentation, import a `.ppt`, `.pptx`, or `.odp`, or make general content edits in Google Slides. For deck reading and summarization, stay on the Google Slides read-tool path rather than detouring into generic code execution or export fallbacks. For visual polish on an existing deck, such as formatting cleanup, alignment fixes, overflow cleanup, or slide-by-slide deck cleanup, prefer `google-slides-visual-iteration`. --- # Google Slides @@ -38,9 +38,14 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: 2. Read before writing. - Use `get_presentation` or `get_presentation_text` to capture slide order, titles, and overall structure. - For deck reading, slide finding, and summarization, use Google Slides read tools directly rather than generic code execution such as `js_repl`. +- For topic asks such as "find the slide that explains churn," do not rely on exact keyword hits alone. Use deck structure, section headers, overview slides, and nearby slide numbers to identify the full relevant section. +- When a topic appears as a contiguous section, inspect that full section or a tight local window around the section entry before answering. Do not stop after the first matching slide. +- Keep topic-retrieval bounded. After you inspect the most relevant local section, usually about 3-7 slides, stop gathering more slides unless the evidence is still conflicting and synthesize the answer from that section. - Use `get_presentation_text` to find candidate slides, then inspect the relevant slides with `get_slide` and `get_slide_thumbnail` when visual evidence matters. - Use `get_slide` before any slide-level write so object IDs and layout context come from the live deck. - For slide summaries or inspection, do not rely on text extraction alone when a slide contains charts, graphs, screenshots, diagrams, or image-heavy content. +- Treat low-text slides inside a relevant section as potentially chart-led or image-led evidence, not irrelevant slides. If a candidate slide or its neighbors have sparse extracted text, fetch a thumbnail before excluding them. +- For chart-led or mixed text-plus-visual sections, fetch at least one thumbnail for the best anchor slide and any low-text supporting slide before finalizing the answer. - Use `get_slide_thumbnail` alongside text/structure reads when visual evidence matters so the summary reflects both what the slide says and what the slide shows. - If the thumbnail response includes inline image content, base64 image data, or an image-bearing data wrapper, ingest that directly as slide image input. The response may also include `contentUrl` metadata, but if inline image data is present, inspect that directly instead of downloading the URL or relying only on metadata. - Treat the slide page size as a hard boundary for every shape, text box, image, and color band you create. @@ -94,6 +99,7 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: ## Output - Reference slide numbers and titles when summarizing or planning edits. +- When a conceptual topic is explained across multiple slides, identify the best anchor slide and include the supporting slides that complete the explanation instead of implying the topic lives on only one slide. - For slide summaries that involve charts, graphs, or other visuals, distinguish clearly between what comes from extracted text and what comes from thumbnail-based visual understanding. - Distinguish clearly between a proposed plan and changes that were actually applied. - Say which presentation and slides were read or changed. From ebbddbfa97875f78b6bb58d6065bb5c5a5a2d036 Mon Sep 17 00:00:00 2001 From: Aismit Das Date: Fri, 20 Mar 2026 15:15:35 -0400 Subject: [PATCH 3/4] Require thumbnails for sparse slide reads --- plugins/google-slides/skills/google-slides/SKILL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/google-slides/skills/google-slides/SKILL.md b/plugins/google-slides/skills/google-slides/SKILL.md index cded21c5..4c554437 100644 --- a/plugins/google-slides/skills/google-slides/SKILL.md +++ b/plugins/google-slides/skills/google-slides/SKILL.md @@ -41,11 +41,11 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: - For topic asks such as "find the slide that explains churn," do not rely on exact keyword hits alone. Use deck structure, section headers, overview slides, and nearby slide numbers to identify the full relevant section. - When a topic appears as a contiguous section, inspect that full section or a tight local window around the section entry before answering. Do not stop after the first matching slide. - Keep topic-retrieval bounded. After you inspect the most relevant local section, usually about 3-7 slides, stop gathering more slides unless the evidence is still conflicting and synthesize the answer from that section. -- Use `get_presentation_text` to find candidate slides, then inspect the relevant slides with `get_slide` and `get_slide_thumbnail` when visual evidence matters. +- Use `get_presentation_text` to find candidate slides, then inspect the relevant slides with `get_slide`. If a relevant slide is chart-led, image-led, or has sparse text, you must inspect it with `get_slide_thumbnail` before answering. - Use `get_slide` before any slide-level write so object IDs and layout context come from the live deck. - For slide summaries or inspection, do not rely on text extraction alone when a slide contains charts, graphs, screenshots, diagrams, or image-heavy content. -- Treat low-text slides inside a relevant section as potentially chart-led or image-led evidence, not irrelevant slides. If a candidate slide or its neighbors have sparse extracted text, fetch a thumbnail before excluding them. -- For chart-led or mixed text-plus-visual sections, fetch at least one thumbnail for the best anchor slide and any low-text supporting slide before finalizing the answer. +- Treat low-text slides inside a relevant section as potentially chart-led or image-led evidence, not irrelevant slides. If a candidate slide or its neighbors have sparse extracted text, you must fetch a thumbnail before excluding them. +- For chart-led or mixed text-plus-visual sections, you must fetch a thumbnail for the best anchor slide and for each low-text supporting slide before finalizing the answer. - Use `get_slide_thumbnail` alongside text/structure reads when visual evidence matters so the summary reflects both what the slide says and what the slide shows. - If the thumbnail response includes inline image content, base64 image data, or an image-bearing data wrapper, ingest that directly as slide image input. The response may also include `contentUrl` metadata, but if inline image data is present, inspect that directly instead of downloading the URL or relying only on metadata. - Treat the slide page size as a hard boundary for every shape, text box, image, and color band you create. From ec1532d3c4a8b7c6d0056f3c5792c5694c9fd8c6 Mon Sep 17 00:00:00 2001 From: Aismit Das Date: Fri, 20 Mar 2026 15:20:57 -0400 Subject: [PATCH 4/4] Keep Slides retrieval on tool path --- plugins/google-slides/skills/google-slides/SKILL.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/google-slides/skills/google-slides/SKILL.md b/plugins/google-slides/skills/google-slides/SKILL.md index 4c554437..d4fcbd4f 100644 --- a/plugins/google-slides/skills/google-slides/SKILL.md +++ b/plugins/google-slides/skills/google-slides/SKILL.md @@ -41,7 +41,9 @@ Confirm the runtime exposes the relevant Google Slides actions before editing: - For topic asks such as "find the slide that explains churn," do not rely on exact keyword hits alone. Use deck structure, section headers, overview slides, and nearby slide numbers to identify the full relevant section. - When a topic appears as a contiguous section, inspect that full section or a tight local window around the section entry before answering. Do not stop after the first matching slide. - Keep topic-retrieval bounded. After you inspect the most relevant local section, usually about 3-7 slides, stop gathering more slides unless the evidence is still conflicting and synthesize the answer from that section. +- After a successful `get_presentation_text` read, stay on the Google Slides tool path. The next step for topic retrieval should be `get_slide` on the candidate section and then `get_slide_thumbnail` for low-text or visual slides, not generic code execution. - Use `get_presentation_text` to find candidate slides, then inspect the relevant slides with `get_slide`. If a relevant slide is chart-led, image-led, or has sparse text, you must inspect it with `get_slide_thumbnail` before answering. +- Do not use `js_repl`, Python, or raw MCP tool names to search or post-process deck text for slide retrieval. In `codex exec`, those detours can fail or hang instead of completing the Slides workflow. - Use `get_slide` before any slide-level write so object IDs and layout context come from the live deck. - For slide summaries or inspection, do not rely on text extraction alone when a slide contains charts, graphs, screenshots, diagrams, or image-heavy content. - Treat low-text slides inside a relevant section as potentially chart-led or image-led evidence, not irrelevant slides. If a candidate slide or its neighbors have sparse extracted text, you must fetch a thumbnail before excluding them.