{"id":56027,"plugin_id":"plugin_asdk_app_6ada7bec545881919206a8cf89db59f8","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-26T18:06:28.060Z","digest":"c4511ecee397d32bb3989cde2b2bf3b59f61f706128b292cc4424e0126162075","against":null,"payload":{"description":"Import a .pptx into Moda as an editable canvas, then fix it. For \"clean up this PowerPoint\" or any .pptx in hand. Import runs in the Moda app; this skill routes you there.","included_files":[{"relative_path":"references/charts.md","size_in_bytes":5659},{"relative_path":"references/deck-design.md","size_in_bytes":4101},{"relative_path":"references/design-quality.md","size_in_bytes":22265},{"relative_path":"references/edit-code.md","size_in_bytes":16488},{"relative_path":"references/export.md","size_in_bytes":7949},{"relative_path":"references/gotchas.md","size_in_bytes":8693},{"relative_path":"references/markup.md","size_in_bytes":23958},{"relative_path":"references/omni-and-media.md","size_in_bytes":7338}],"name":"moda-deck-pptx","skill_md_contents":"---\nname: moda-deck-pptx\ndescription: >-\n  Import a .pptx into Moda as an editable canvas, then fix it. For \"clean up\n  this PowerPoint\" or any .pptx in hand. Import runs in the Moda app; this\n  skill routes you there.\n---\n\n# moda-deck-pptx\n\n**PREREQUISITE — `load_skill(\"moda-core\")` once per session** (step-0, write\ncontract, free/metered map). Already loaded? Skip ahead. If you cannot load\nit, the non-negotiables: call `moda_bootstrap` before anything; `brand_list`\nbefore creating; revision-guarded writes use `expected_revision` from your last read.\n`canvas_edit_image` captures its own target state and has no revision argument.\nOn `stale_revision`, re-read and retry once; send the canvas link\nthe moment it exists; stuck or failed? `ask_expert(\"<question>\")` — free and\nfast, never guess.\n\n## Sizes and defaults\n\n| Thing | Value | Notes |\n|---|---|---|\n| Import | in the Moda app: Import → PowerPoint | FREE, un-billed — there is no import tool on this surface |\n| Result | one canvas, one page per slide | slide size is preserved from the file |\n| Round trip | `export(canvas_ref, format='pptx')` | native shapes and text layers, not screenshots |\n| Data law | every source string and number survives verbatim | a cleanup that loses data is a failure |\n\nImport is app-only here and costs nothing. Ask the user to import the deck in\nthe Moda app and paste the canvas link back; everything after that is yours.\nNever claim you imported a file you could not.\n\n## Recipe — import, then fix\n\n1. Ask the user to import the deck in the Moda app and paste the canvas link back — free, and the only import route on this surface. Everything below runs on that canvas.\n2. `canvas_read(canvas_ref, summary=true)` — the page index and what landed on each slide.\n3. `canvas_screenshot(canvas_ref, pages=[IDS])` in ≤3-page batches, worst slides first. Judge with your own eyes; list the fixes before making any.\n4. Fix smallest-change-first, one slide at a time: `canvas_edit(canvas_ref, code)` for targeted property changes (references/edit-code.md); `canvas_apply_markup(canvas_ref, page, markup, mode='replace_page_nodes', expected_revision=[REV])` to rebuild a slide outright (grammar: references/markup.md); `canvas_delete(canvas_ref, ids=[…])` for cruft. Data preservation is non-negotiable — restate every source string and number verbatim.\n5. Re-theming to the team's kit? `canvas_update(canvas_ref, brand_kit_id='[KIT]')` records the kit; the tokens still have to be authored into the slides (kit creation itself is moda-brand's job).\n6. `canvas_screenshot(canvas_ref)` again and compare against your fix list.\n7. Deliver the live link; export back only on a format word or an accepted offer: `export(canvas_ref, format='pptx')`.\n8. **Read the export warnings** — `pptx_shape_rasterized` (an image baked in rather than editable) and `pptx_content_dropped` (an element missing entirely) name exactly what did not survive. Repair or disclose; never hand over a silently degraded deck.\n\n## Examples\n\n- \"clean up this PowerPoint\" → import, screenshot the worst slides, fix, export.\n- \"put our brand on this deck\" → import, bind the kit, re-author the tokens.\n- \"what's actually in this deck?\" → import + `canvas_read(summary=true)`; no edits unasked.\n- \"fix slide 7's chart\" → import, then the targeted-edit step on that page only.\n- \"build a NEW deck from this content\" → moda-deck owns authoring from scratch.\n\n## Errors\n\nAny typed error → load moda-core and read its recovery reference.\nAn import that fails or returns an empty canvas is a file problem, not a retry\nproblem: say what happened, then `ask_expert(\"<question>\")` with what the app\nreported.\n\n## Make it recurring\n\nThe cleaned deck is the team's canonical starting point — flag it with\n`canvas_update(canvas_ref, template_type='template')` via moda-templates, so the\nnext deck starts there instead of from another crufty .pptx.\n\nSee also: moda-deck — authoring a deck from a brief, doc, or notes ·\nmoda-core — the contract, recovery, everything Moda can do.\n\n## References\n\n| Doc | Load when |\n|---|---|\n| references/deck-design.md | judging and rebuilding an imported slide |\n| references/edit-code.md | before any targeted fix program |\n| references/export.md | the pptx round trip and its warnings |\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}