google-slides
Skill5 starsChanged 57 days agoMITView on GitHub
Generate Google Slides decks and infographics from scratch, with no registered corporate master: spec-driven decks on a blank 16:9 template, or code-first decks with offline layout validation for diagram-heavy material. Use for: Google Slides を作って, スライドを生成, インフォグラフィクスを作って, create Google Slides, generate slides, create infographic.
- Reads credentials
- Deletes or force-pushes
- Installs packages
9 other projects use a version of this.
Adopted by
Most recently taken up by
- okou-ai/okou-skillstheir own version, first seen Nov 4, 2026
- 0mlkrizzz655335v/claude-skills-zhtheir own version, first seen Oct 15, 2026
- openai/pluginstheir own version, first seen Oct 13, 2026
- willlee1995/skillstheir own version, first seen Oct 13, 2026
- vm0-ai/vm0-skillstheir own version, first seen Oct 8, 2026
- gemini-cli-extensions/workspacetheir own version, first seen Oct 8, 2026
Used with
Projects with it also use google-calendar, computer-use and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
younghaiSkillgoogle-calendar
Google Calendar 일정 조회, 검색, 등록. "일정", "스케줄", "캘린더" 등을 언급하면 자동 실행. Daily Note 작성, Weekly Review에 사용.
Also in 3 projects that use this
HK-hubSkillcomputer-use
Use Orca's computer-use CLI to inspect and operate local desktop app windows through accessibility trees, screenshots, and safe UI actions. Use for desktop app interaction: list apps/windows, get app state, read visible UI, click controls, type, press keys, scroll, drag, set values, or perform accessibility actions. Also use for browser windows, webviews, Orca app UI, or other desktop UI. Triggers include "computer use", "orca computer", "read Spotify", "read Slack", "control/click/read in a desktop app", and "get app state".
Also in 3 projects that use this
JetBrainsSkillbrand-guidelines
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Also in 3 projects that use this
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- openai/plugins★ 7.8ksame name
- gemini-cli-extensions/workspace★ 646same name
- sanjay3290/ai-skills★ 452same name
- okou-ai/okou-skills★ 81same name
- vm0-ai/vm0-skills★ 81same name
- 0mlkrizzz655335v/claude-skills-zh★ 2same name
- willlee1995/skills★ 1same name
- Fize/workspace-kit★ 0same name
- luis63e/google-workspace-agent-pack★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- forgeSkill
- analysis-template-creatorSkill
- b2b-account-mapsSkill
- calendar-slidesSkill
- current-state-analysisSkill
- drawio-diagramsSkill
- google-slides-templateSkill
- hearing-sheetSkill
- hearing-slidesSkill
- image-slotsSkill
- nexus-report-slidesSkill
- pptx-exportSkill
- pricing-strategySkill
- scalar-account-planning-sessionSkill
- scalar-account-planSkill
- scalar-ae-materialsSkill
- scalar-deal-intakeSkill
- scalar-nurture-intakeSkill
- scalar-product-slidesSkill
- scalar-proposal-slidesSkill
- settingsSkill
- slide-qaSkill
- slide-template-creatorSkill
- spreadsheetsSkill
- template-forgeSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 4 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 74
If broken or missing, rebuild the shared venv and re-link.
- Distinctive: line 89
Create the symlink with an absolute path — where the directory itself is a symlink, relative links fail to resolve.
- Very specific: line 123
Write a deck module: 1 module = 1 deck, one function per slide, registered with slide() / plain() from deckkit.
- Distinctive: line 141
Action titles: every content slide title is a conclusion sentence, not a label
- Very specific: line 144
Do not guess cloud icon names — search with scripts/cloud_icons.py --search <term>.
- Distinctive: line 193
Drive folder rule: every generated deck gets its own Drive folder, and all related files live under it.
- Very specific: line 203
Keep ordinary decks up to 17 pages in one agent.
- Very specific: line 212
Run when the user chose QA in Phase 1 (the default).
- Distinctive: line 224
Check: text clipped or overflowing its frame, elements overlapping decorations, detached connector arrows, unreadable contrast, awkward …
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
日本語
Google Slides Generation (from scratch)
Claude Code is the primary host for this shared skill. Codex and Antigravity
use the same procedure through thin adapters. Read this file completely, then
follow references/workflow-contract.md; do not preload every reference in the
capability table below.
Important
- Scope: building decks WITHOUT a registered corporate master. Two paths, both on the shared engine in this repo:
- Spec path —
templates/blank-16x9.json+scripts/build_deck.py --spec deck.jsonfor typical text/figure decks - Code-first path — write the deck as a Python module (
deckkit.py), validate coordinates offline, render withscripts/render_deck.py
- Spec path —
- Routing:
- User has a template/master URL, or wants text flowed into an existing corporate layout →
google-slides-templateskill - Scalar company/product/use-case decks →
scalar-product-slidesskill - Dense cloud architecture / data-flow / network diagrams (nested containers, 10+ nodes) → author them with the
drawio-diagramsskill (draw.io → PNG → insert); simple concept figures stay ondiagrams.py - Authoring PPTX files from scratch →
document-skills:pptx(exporting a deck generated here to.pptx→pptx-exportskill) - A bare "make slides" request uses this skill only when a Google Drive / Google Slides context is explicit
- User has a template/master URL, or wants text flowed into an existing corporate layout →
- Working directory: the slide-forge root —
${CLAUDE_PLUGIN_ROOT}when running from an installed plugin,/path/to/slide-forgeon a local clone. All commands below run from there (literal paths assume the local clone). - Auth is centralized in
scripts/_auth.py. It findscredentials.json/token.jsonin:$GSLIDES_CONFIG_DIR→config/at the repo root (canonical) → the old skill layout (transitional fallback). Never write per-script inline auth. - Visual QA is a separate skill (
slide-qa), chosen at generation time (Phase 5). Default: run — recommend it when asking (Phase 1); a clean API response cannot show overflow or misattached arrows. If the user opts out, skip Phase 5, state in the report that the deck is unverified, and offerslide-qaas a follow-up. When QA runs, it ends by deleting the local QA files (scripts/cleanup_qa.py). - On QA failure, delete the broken presentation and regenerate from the fixed spec/module. Never patch a live deck with incremental API edits.
- The delete-and-regenerate rule applies only to decks generated in the current session. When updating an existing deck the user already has (inserting or fixing slides in place, keeping the same URL), first run
scripts/snapshot_version.py <URL>to record the pre-edit revision (keepForever pin attempt + local PPTX backup), report the revision ID to the user, and only then edit. Rollback is via the Slides UI "File → Version history".
Quick Reference
| Task | Where |
| Build from a JSON spec | scripts/build_deck.py + templates/blank-16x9.json |
| Write a deck as Python | scripts/deckkit.py (+ examples/pattern-gallery/deck.py, examples/scalardb-scalardl/deck.py — grep these, never read one in full) |
| Validate layout offline (no API) | scripts/validate_layout.py + references/layout-contract.md |
| Render a Python deck | scripts/render_deck.py |
| Visual QA (optional, default: run) | slide-qa skill (scripts/fetch_thumbnails.py + checklist + cleanup) |
| Delete local QA files after verification | scripts/cleanup_qa.py |
| Snapshot a version before editing an existing deck | scripts/snapshot_version.py |
| Diagrams (flows, architecture) | scripts/diagrams.py (Canvas) + references/diagrams.md, references/diagram-cookbook.md |
| Dense cloud/data-flow diagrams (draw.io → PNG) | drawio-diagrams skill + scripts/drawio_export.py + references/drawio.md |
| Drive folder per deck (create / collect files) | scripts/drive_folder.py |
| Charts and tables | scripts/charts.py + references/charts.md |
| Numbers/charts that follow a spreadsheet (JSON specs only) | scripts/build_model.py + sheets_link.py + sync_deck.py; references/sheets-link.md |
| ELI5 / plain-language deck for newcomers (JSON specs) | "readingLevel": "eli5" in the spec + references/eli5.md |
| Shape-drawn pictograms and metaphor figures | scripts/illustrations.py --list for the names; references/diagrams.md for placement |
| Business-framework figures (posmap, gantt, orgchart…) | scripts/patterns.py + references/patterns.md |
| Page scaffolding and analysis figures | scripts/pages.py + references/slide-patterns.md |
| Scalar brand pictograms | scripts/icons.py + assets/scalar/pictograms + references/icons.md |
| Cloud vendor icons (AWS/GCP/Azure) | scripts/cloud_icons.py + assets/cloud-icons + references/cloud-icons.md |
| Restore cloud icons (first use) | scripts/fetch_cloud_icons.py |
| AI-generated images (covers, section art) | scripts/images.py (needs GEMINI_API_KEY) + references/images.md |
| API pitfall | Search the matching topic in references/api-notes.md; open the relevant google-slides-api.md section only if unresolved |
| Deck composition recipe | One matching file/section under references/composers/ |
Phase 0: Environment check
venv —
.venvat the repo root is a symlink to the shared venv~/.claude/venvs/gslides. Verify:cd /path/to/slide-forge .venv/bin/python -c "import googleapiclient; print('ok')"If broken or missing, rebuild the shared venv and re-link. If
~/.claude/venvs/gslides-requirements.txtdoes not exist, seed it from the repo'srequirements.txtfirst (the repo file is a record, not the actual install source — to add a dependency, edit~/.claude/venvs/gslides-requirements.txt):[ -f ~/.claude/venvs/gslides-requirements.txt ] || \ cp /path/to/slide-forge/requirements.txt ~/.claude/venvs/gslides-requirements.txt python3 -m venv ~/.claude/venvs/gslides ~/.claude/venvs/gslides/bin/pip install -U -r ~/.claude/venvs/gslides-requirements.txt rm -rf /path/to/slide-forge/.venv ln -s ~/.claude/venvs/gslides /path/to/slide-forge/.venvCreate the symlink with an absolute path — where the directory itself is a symlink, relative links fail to resolve.
- Credentials — confirm
config/credentials.jsonexists (OAuth 2.0 Desktop client; Slides API and Drive API enabled in the GCP project).config/token.jsonis created on first run via a browser auth flow. Ifcredentials.jsonis missing, stop and ask the user to place it — do not generate or run anything until it is confirmed. - Optional capabilities (check only if the deck needs them):
- Cloud icons: they are not bundled (vendor license terms forbid redistribution). Verify with
.venv/bin/python scripts/cloud_icons.py --list --vendor aws | head; if missing, run.venv/bin/python scripts/fetch_cloud_icons.pyonce (~1–2 min). - AI images:
images.pyneedsGEMINI_API_KEY(env var, or aconfig/gemini_api_keyfile — gitignored). If unset and the deck wants generated imagery, fall back toillustrations.pyor ask the user.
- Cloud icons: they are not bundled (vendor license terms forbid redistribution). Verify with
Phase 1: Choose a path
| Spec path | Code-first path | |
| Author | deck.json (JSON spec) | deck.py (Python module) |
| Best for | Typical decks: text pages, standard figures, charts, page patterns | Connector-heavy architecture diagrams, dense custom drawings, anything where endpoint/overlap precision matters |
| Validation | build_deck.py --dry-run --strict | validate_layout.py (offline geometry checks) |
| Generate | build_deck.py | render_deck.py |
Guidance: default to the spec path. Switch to code-first when the deck centers on architecture/flow diagrams with many connectors — the offline validator checks connector endpoints, overlaps, and overflow that a spec dry-run cannot see.
Also settle with the user (1–2 questions max): audience and purpose, approximate page count, output Drive folder (URL/ID, optional), copyright/footer text if any, and whether to run visual QA after generation (default and recommended: run; see Phase 5). For structuring help see references/deck-outlines.md and references/composers/.
Phase 2: Author
Spec path
Write deck.json against templates/blank-16x9.json. All figure capabilities are available from the spec: diagrams (diagrams.py Canvas), charts/tables (charts.py), shape-drawn pictograms and metaphor figures (illustrations.py), business-framework figures (patterns.py), page scaffolding and analysis figures (pages.py), Scalar pictograms (icons.py), cloud icons (cloud_icons.py), AI images (images.py). See references/template-schema.md for the spec format and each module's reference for its parts.
Code-first path
Write a deck module: 1 module = 1 deck, one function per slide, registered with slide() / plain() from deckkit. Coordinates are inches, origin top-left; d is a diagrams.Canvas. Start from the working examples:
examples/pattern-gallery/deck.py— one slide per available partexamples/scalardb-scalardl/deck.py— a real product/architecture deck
Never read either example in full. pattern-gallery/deck.py is 35KB and
scalardb-scalardl/deck.py is 157KB (~39k tokens); reading both costs more
than the rest of this skill's references combined. Locate the one slide
function you need and read only it:
grep -n "^def \|slide(\|plain(" examples/scalardb-scalardl/deck.pyContract rules (footer safe area, title height, connector attachment) are in references/layout-contract.md; drawing recipes in references/diagram-cookbook.md — one section per pattern (§2 layer, §3 process flow, §4 swimlane, §5 branching, §6 matrix, §7 architecture, §8 pipeline, §9 timeline, §10 tree), so open the matching recipe only.
Design principles (both paths)
- Action titles: every content slide title is a conclusion sentence, not a label
- Connectors attach to shapes, never drawn as free coordinates — the API does not validate line endpoints, so a detached arrow is invisible until QA
- Body >= 12pt, title >= 20pt; WCAG AA contrast (4.5:1); max ~6 bullets, 1 slide = 1 message; 60-30-10 color rule
- Do not guess cloud icon names — search with
scripts/cloud_icons.py --search <term>; recoloring/rotating/flipping vendor icons is prohibited by their license terms - Per-slide guidance: load only the matching Composer and slide-pattern sections.
Phase 3: Validate (before any API call)
Spec path:
.venv/bin/python scripts/build_deck.py --template templates/blank-16x9.json \
--spec deck.json --dry-run --strictA clean run prints a three-line summary; add --verbose only when you need
the per-slide layout list or the full list of fitted text.
Code-first path:
.venv/bin/python scripts/validate_layout.py path/to/deck.py \
--template templates/blank-16x9.json --quiet--quiet silences the per-slide fit: notes and the OK summary, so a clean
run prints nothing. Drop it only when you need to see what was auto-fitted.
validate_layout.py is offline and free — it checks footer intrusion, off-slide geometry, title wrapping, connector endpoints (detached or buried), partial overlap of text-bearing shapes, and text overflow. Exit code 1 means fix and re-run. Never skip validation (--skip-validate exists on render_deck.py but do not use it).
Phase 4: Generate
Spec path:
.venv/bin/python scripts/build_deck.py --template templates/blank-16x9.json \
--spec deck.json --title "Deck title" [--folder <DRIVE_FOLDER_URL_OR_ID>]Code-first path:
.venv/bin/python scripts/render_deck.py path/to/deck.py --title "Deck title" \
[--folder <URL/ID>] [--only 1-5]--only renders a page range for cheap prototyping. First run opens a browser for OAuth and writes config/token.json. The script prints the presentation URL — relay it to the user.
Drive folder rule: every generated deck gets its own Drive folder, and all related files live under it. Create the folder first, generate into it, then collect the sources:
.venv/bin/python scripts/drive_folder.py create "<Deck title>" [--parent <URL/ID>]
# pass the printed ID as --folder to build_deck.py / render_deck.py, then:
.venv/bin/python scripts/drive_folder.py upload <FOLDER_ID> deck.json figures/*.drawio out/diagrams/*.pngUpload whatever lets the user regenerate or edit later: the spec (deck.json) or deck module (deck.py), .drawio sources, and exported figure PNGs. QA thumbnails stay local. Report the folder URL together with the presentation URL.
Keep ordinary decks up to 17 pages in one agent. Consider page-level fan-out
at 18–20 pages, or earlier only when independent page groups use different
complex figures. Load only the applicable sections of
references/parallel-generation.md.
Phase 5: Visual QA (optional — slide-qa skill)
Run when the user chose QA in Phase 1 (the default). When they opted out, skip
this phase, state in the report that no visual verification was done, and offer
the slide-qa skill as a follow-up.
The procedure is owned by the slide-qa skill — follow it. In short:
.venv/bin/python scripts/fetch_thumbnails.py <URL or ID> --out out/qa --size LARGE
# … inspect every PNG with Read …
.venv/bin/python scripts/cleanup_qa.py # always delete the local QA files when doneCheck: text clipped or overflowing its frame, elements overlapping decorations, detached connector arrows, unreadable contrast, awkward line wraps. These are invisible in API responses.
On failure: fix the spec/module, re-run Phase 3 validation, delete the broken presentation, and regenerate. The first QA pass covers every page. After a local fix, reinspect the changed page and adjacent pages; expand to all pages using a changed shared component, and to the whole deck after master/theme/ footer/page-number changes. Clean up QA files, then report the final URL.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

