Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions plugins/google-slides/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "google-slides",
"version": "0.1.0",
"description": "Work with Google Slides using the configured Google Slides app connector.",
"description": "Work with Google Slides decks and import presentation files using the configured Google Slides app connector.",
"author": {
"name": "OpenAI",
"email": "support@openai.com",
Expand All @@ -12,6 +12,8 @@
"license": "MIT",
"keywords": [
"google-slides",
"pptx",
"presentation-import",
"presentations",
"template-migration",
"visual-iteration",
Expand All @@ -21,8 +23,8 @@
"apps": "./.app.json",
"interface": {
"displayName": "Google Slides",
"shortDescription": "Edit Google Slides decks",
"longDescription": "Use Google Slides to polish slide layouts, repair repeated template issues, and migrate deck content onto a company template through the connected Google Slides app.",
"shortDescription": "Inspect and edit Google Slides decks",
"longDescription": "Use Google Slides to import presentation files, inspect deck structure, polish slide layouts, repair repeated template issues, and migrate deck content onto a company template through the connected Google Slides app.",
"developerName": "OpenAI",
"category": "Productivity",
"capabilities": [
Expand All @@ -32,7 +34,7 @@
"websiteURL": "https://workspace.google.com/products/slides/",
"privacyPolicyURL": "https://policies.google.com/privacy",
"termsOfServiceURL": "https://policies.google.com/terms",
"defaultPrompt": "Use Google Slides to inspect a deck, clean up slide layouts, repair template structure, or migrate content onto a branded template.",
"defaultPrompt": "Use Google Slides to import a PPTX, inspect a deck, clean up slide layouts, repair template structure, or migrate content onto a branded template.",
"brandColor": "#F9AB00",
"composerIcon": "./assets/google-slides-small.svg",
"logo": "./assets/google-slides.svg",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
name: google-slides-import-presentation
description: Import a local `.ppt`, `.pptx`, or `.odp` file into Google Slides, verify the resulting native deck, and hand it off to the right follow-on workflow. Use when the user wants to convert a presentation file into a native Google Slides deck before follow-on work.
---

# Google Slides Import Presentation

## Overview

Use this skill when the source material is a presentation file rather than an existing Google Slides deck. The goal is to create a native Google Slides copy first, then continue work on the imported deck.

## Required Tooling

Confirm the runtime exposes:
- `import_presentation`
- `get_presentation` or `get_presentation_text`
- `get_slide_thumbnail` when visual verification matters

If `import_presentation` is unavailable, stop and say the file cannot be converted into native Google Slides from Codex.

## Workflow

1. Confirm the input file.
- Accept `.ppt`, `.pptx`, or `.odp`.
- Use the uploaded file path directly when available.

2. Import the presentation.
- Use `import_presentation` to create a new native Google Slides deck.
- If the user gives a destination title, use it. Otherwise keep the imported title.

3. Read the imported deck.
- Capture the resulting presentation ID or URL, slide count, and major slide titles.
- Treat the imported deck as the new source of truth for follow-on work.

4. Verify enough to hand it off safely.
- Compare the imported slide count to the source file when that information is available.
- Use thumbnails for spot checks when layout fidelity matters or the user plans visual cleanup next.

5. Hand off to the right next skill.
- Use [google-slides](../google-slides/SKILL.md) for general summaries or edits.
- Use [google-slides-visual-iteration](../google-slides-visual-iteration/SKILL.md) for post-import layout cleanup.
- Use [google-slides-template-migration](../google-slides-template-migration/SKILL.md) when the imported deck should move onto a branded template.

## Rules

- Treat import as conversion into a new native Google Slides deck, not in-place editing of the original file.
- Preserve source slide order and content by default.
- Do not promise perfect fidelity for animations, transitions, SmartArt, or other Office-specific features.
- If import introduces layout drift, fix it in the native Google Slides deck rather than editing the source file.
- When the user says "edit this PPTX," import first and then operate on the resulting Google Slides deck.

## Output

- Return the resulting deck title and link or ID when the runtime exposes it.
- Call out any obvious import drift or unsupported formatting that needs follow-up.
- If no further edit was requested, stop after confirming that the native deck is ready.

## Example Requests

- "Import this PPTX into Google Slides so I can edit it."
- "Convert this deck to native Google Slides and then summarize the first five slides."
- "Bring this ODP into Google Slides and clean up any layout drift."

## Light Fallback

If the file is missing, unreadable, or the runtime cannot import it, say that presentation import may be unavailable or the provided file may be invalid, then ask for a valid local file or a connected Google Slides deck instead.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
interface:
display_name: "Google Slides Import"
short_description: "Convert PPTX or ODP into Google Slides"
brand_color: "#F9AB00"
default_prompt: "Use $google-slides-import-presentation to import a local PPTX into native Google Slides and verify the resulting deck."
77 changes: 77 additions & 0 deletions plugins/google-slides/skills/google-slides/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
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, create a new presentation, import a `.ppt`, `.pptx`, or `.odp`, update slide text or layout, or route a Slides task to a more specific workflow.
---

# Google Slides

## Overview

Use this skill as the default entrypoint for Google Slides work. Stay here for deck search, summaries, light content edits, and new presentation creation. Route to a narrower sibling skill only when the task is specifically import, visual cleanup, structural repair, or template migration.

## Required Tooling

Confirm the runtime exposes the relevant Google Slides actions before editing:
- `search_presentations` when the user does not provide a target deck
- `get_presentation` or `get_presentation_text`
- `get_slide`
- `batch_update`
- `create_presentation` for new decks
- `import_presentation` when starting from a local `.ppt`, `.pptx`, or `.odp`
- `get_slide_thumbnail` when visual verification matters

## Workflow

1. Identify the target presentation.
- If the user names a deck but does not provide a URL, search for it first.
- If the user provides a local presentation file, tell the user you are importing it into native Google Slides first, then use [google-slides-import-presentation](../google-slides-import-presentation/SKILL.md).

2. Read before writing.
- Use `get_presentation` or `get_presentation_text` to capture slide order, titles, and overall structure.
- Use `get_slide` before any slide-level write so object IDs and layout context come from the live deck.

3. Apply default creation polish when making a new presentation.
- Do not ask the user to specify visual styling unless the request depends on a specific brand, template, or aesthetic.
- Make new decks look intentionally designed by default rather than leaving them as raw black text on white slides.
- Keep the styling lightweight: use a restrained color palette, clear title/body hierarchy, comfortable spacing, and simple visual accents that improve scanability.
- When using bullets, put each bullet on its own line. Do not combine multiple bullets into one paragraph or line.
- Use color to create structure such as title emphasis, section separators, callout boxes, or light background shapes, but do not overdecorate the deck.
- Preserve user control over substantive design choices. Apply a clean default look, but do not invent a heavy brand system or overly specific theme unless the user asks.

4. Route only when the job is narrower than general Slides work.
- Stay in this skill for deck summaries, slide-by-slide reviews, new presentation creation, and small content edits.
- Use [google-slides-import-presentation](../google-slides-import-presentation/SKILL.md) when the source is a local presentation file.
- Use [google-slides-visual-iteration](../google-slides-visual-iteration/SKILL.md) for spacing, overlap, alignment, cropping, density, or other layout cleanup where the slide image matters.
- Use [google-slides-template-surgery](../google-slides-template-surgery/SKILL.md) when the repeated layout structure is broken.
- Use [google-slides-template-migration](../google-slides-template-migration/SKILL.md) when content should move onto a company or team template deck.

5. Keep writes grounded.
- Restate the target slide numbers, titles, or object IDs before making changes.
- Prefer small `batch_update` requests over large speculative batches.
- If the task depends on how the slide looks, fetch a thumbnail before editing and verify again after the write.

## Write Safety

- Preserve slide order, titles, body text, charts, notes, and supporting evidence unless the user asks for a change.
- Use live object IDs from the current deck state. Never guess IDs or request shapes.
- Before deleting slides, rewriting multiple slides, or changing the layout pattern across a section, state exactly which slides will change and what kind of change you are about to make.
- Do not promise pixel-perfect fidelity when importing Office formats into Google Slides.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something that should be in the slide importer?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved

- When creating a new deck, default to modest visual polish and readable structure, not a bare text dump.

## Output

- Reference slide numbers and titles when summarizing or planning edits.
- Distinguish clearly between a proposed plan and changes that were actually applied.
- Say which presentation and slides were read or changed.
- Call out any remaining issues that need a narrower workflow or human design judgment.

## Example Requests

- "Find the Q2 board deck and summarize the storyline slide by slide."
- "Create a new Google Slides presentation from this outline."
- "Import this PPTX into Google Slides and then clean up the layout."
- "Update slide 6 so the title and chart description match the latest numbers."

## Light Fallback

If the presentation is missing or the Google Slides connector does not return deck data, say that Google Slides access may be unavailable, the wrong deck may be in scope, or the file may need to be imported first.
5 changes: 5 additions & 0 deletions plugins/google-slides/skills/google-slides/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
interface:
display_name: "Google Slides"
short_description: "Inspect decks and plan Slides edits"
brand_color: "#F9AB00"
default_prompt: "Use $google-slides to inspect a deck, import a PPTX, or plan an exact Google Slides edit."