| name | generate-editable-google-slides |
| description | Use when generating or editing an enterprise deck, reconstructing approved visual regions, debugging Google Slides publication, or deciding between native Google Slides and PowerPoint .pptx output. |
Generate Editable Google Slides
Overview
Use this repository's scene-graph pipeline to create an enterprise deck that is visually reviewed before it becomes editable native Google content. Treat the authored source as canonical; generated HTML, PNG, manifests, and remote presentations are evidence or outputs, not editing surfaces.
Required workflow
Follow these gates in order:
- Define the audience, decision, desired action, slide count, brand constraints, evidence bar, and destination policy, and pick the theme from the selection table in references/theme-catalog.md based on audience and tone. For marketing work, use references/marketing-method.md. For program status, steering committees, phase gates, sprint readouts, roadmaps, or executive decision briefs, use references/project-method.md. For any department-specific deck (security, compliance, legal, finance, sales, customer success, engineering, IT, operations, HR, product), use the anatomy and template in references/department-playbooks.md. Refuse to manufacture a strategy when the brief lacks a decision.
- Research claims from primary sources, preserve their URLs and dates, and distinguish sourced facts from inference. Never decorate an unsupported claim into apparent authority.
- Author structured Markdown using the grammar in references/authoring.md. Build an outside-in story, give every slide one job, a message title, concise evidence, speaker notes, and a layout suited to its role. Every line of copy must pass references/copy-style.md — run its pre-ship scan on the source before building. Art-direct the HTML as a premium fixed-size web composition using references/html-art-direction.md, while keeping the scene graph authoritative.
- Run
gslides build <deck.md> --out <directory>. Review validation errors, the scene graph, HTML, and manifest before proceeding.
- Inspect every full-size PNG and the contact sheet, then zoom narrow numerals, badges, display titles, multiline cards, tables, and adjacent text regions. Read
prepublish-report.json and apply the component-level checks in references/qa-checklist.md; a PASS report is necessary but never replaces visual inspection.
- Revise the Markdown, theme, or reconstruction specification source-first and rebuild. Never patch generated HTML, PNG, JSON, or the remote deck to hide a defect.
- Check OAuth status and asset policy. Confirm intended local files, disclosure level, owner, Drive destination, and sharing behavior before any external write.
- For one-time Cloud Console setup, run
gslides chrome attach once against the human's regular Chrome, then reuse that one persistent Chrome session for status, open, snapshot, click, fill, fill-from-ref, and wait. Do not reconnect per action. Follow references/google-publishing.md.
- Publish only after human authorization with
gslides publish-google <directory>\scene.json --out <directory>. The human completes browser OAuth; never ask for credentials in a prompt, log, chat, or committed file. Never expose local assets through an unapproved public host.
- Inspect the read-back presentation, thumbnails, pixel differences, and native-object counts with
gslides inspect <directory>. Any live slide above 8% changed pixels is a failed release. Verify editability through read-only evidence unless a live mutation was explicitly authorized.
- Return the deck ID, URL, QA status, inspected artifacts, source locations, and every raster fallback with its region, reason, provenance, and editable alternative.
Output routing
- Use this repository's direct Slides API compiler for native Google Slides and exact scene-graph read-back. The Google Workspace
gws CLI is optional for schema discovery or general Workspace automation; it does not replace this tool's geometry, QA, or reconstruction contracts.
- If any input or required output is
.pptx, treat it as a PowerPoint task and load references/powerpoint-handoff.md. Do not claim that a Google presentation or slide PNG is an editable Microsoft deck.
- If both formats are required, keep one reviewed narrative and design system, then verify each native output independently.
Command reference
Run commands from the repository root:
pnpm dev -- auth login
pnpm dev -- auth status --json
pnpm dev -- auth logout
pnpm dev -- chrome attach
pnpm dev -- chrome status --json
pnpm dev -- chrome open "https://console.cloud.google.com/auth/overview?project=PROJECT_ID"
pnpm dev -- chrome snapshot --json
pnpm dev -- chrome click "GENERATION:e12" --json
pnpm dev -- chrome fill "GENERATION:e20" "AI Google Slides Generator" --json
pnpm dev -- chrome fill-from-ref "GENERATION:e30" "GENERATION:e14" --extract email --json
pnpm dev -- chrome wait "OAuth Overview" --timeout 60000 --json
pnpm dev -- chrome detach
pnpm dev -- build .\examples\enterprise-launch\deck.md --out .\out\enterprise-launch
pnpm dev -- render .\examples\enterprise-launch\deck.md --out .\out\enterprise-launch
pnpm dev -- publish-google .\out\enterprise-launch\scene.json --out .\out\enterprise-launch
pnpm dev -- publish-google .\out\enterprise-launch\scene.json --out .\out\enterprise-launch --resume PRESENTATION_ID
pnpm dev -- import-image .\path\approved-image.png --regions .\path\regions.json --out .\out\imported
pnpm dev -- inspect .\out\enterprise-launch
pnpm verify:artifacts -- .\out\enterprise-launch
The executable subcommands include gslides auth login, gslides auth status, gslides auth logout, gslides chrome attach, gslides chrome status, gslides chrome open, gslides chrome snapshot, gslides chrome click, gslides chrome fill, gslides chrome fill-from-ref, gslides chrome wait, gslides chrome detach, gslides build, gslides render, gslides publish-google, gslides import-image, and gslides inspect. The pnpm dev -- prefix runs the local development binary.
For repeatable local evidence, use scripts/verify-deck.ps1:
.\skills\generate-editable-google-slides\scripts\verify-deck.ps1 -OutputDirectory .\out\enterprise-launch
Reconstruction policy
Prefer native text, solid shapes, lines, tables, and supported images. Use RegionSpec only for approved, bounded reconstruction. Reject photos, textures, charts, crops, and complex paths when the extractor cannot represent them faithfully; keep those as disclosed raster regions or rebuild them manually as native scene nodes.
Never promise perfect reconstruction. Report measured visual similarity separately from editability, and state what remains rasterized. If fidelity and editability conflict, preserve the reviewed visual, disclose the fallback, and provide the closest editable alternative.
Operating rules
- Use relevant, explicitly approved assets only. Do not glob-upload directories.
- Keep secrets out of Markdown, JSON, screenshots, transcripts, and git.
- Use
drive.file; do not expand scopes without explicit product and security review.
- Do not publish when prepublish QA fails.
- Do not claim live publication or editability unless the corresponding receipt and read-back evidence exist.
- Do not delete the starter Google slide until an application-created slide exists.
- Preserve citations and speaker notes through every rebuild.
Failure handling
| Signal | Response |
|---|
| Parser or contract error | Fix the authored source or schema input; do not bypass validation. |
| Clipping, overlap, or weak hierarchy | Revise source/layout, rebuild, and re-inspect all affected slides. |
GOOGLE_TEXT_COLLISION_RISK | Add text headroom, shorten copy, or reduce type; then inspect the component and live thumbnail. |
GOOGLE_TEXT_BOX_OVERFLOW_RISK | Preserve the shared Google inset budget; shorten copy, reduce type, or enlarge the text box. |
| Missing public image URL | Use an approved resolver or replace the image with native geometry. |
| Unsupported reconstruction | Record the fallback reason and provenance; do not silently rasterize. |
| OAuth mismatch, timeout, or missing token | Stop external writes; repeat the human browser flow or log out. |
| Chrome approval timeout or stale page ref | Keep one daemon, foreground regular Chrome, approve once, then snapshot again. |
| Read-back or thumbnail mismatch | Keep the remote deck in failed QA state and investigate before handoff. |
| Failed atomic Google batch | Fix the recorded provider error, then resume the same presentation ID. |
| Existing native styles need repair | Use --resume PRESENTATION_ID --restyle; do not recreate editable elements. |
Load only the focused reference needed for the current gate. For architecture and debugging depth, use the repository's docs/architecture.md, docs/debugging.md, and docs/fidelity-limits.md.