Skill detail
pptx-import
会话里有上传的 .pptx,且用户要把这份幻灯片填进一节已建的课(先 create_stage 建课,再 import_pptx 把页面追加进这节课堂,保留原版排版;课堂标题以 create_stage 为准,PPT 不接管)。随后逐页检查(有 render_scene_preview 就渲染看)并修 bad case,理解整课之后才写旁白/spotlight,最后 TTS。仅在用户要求时插入 quiz 或 interactive。不要重新规划整课。
Why we recommend it: Imports uploaded .pptx slides into an existing course stage, preserving layout, then inspects and repairs pages before writing narration.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
--- name: pptx-import title: 'PPT 导入' description: 会话里有上传的 .pptx,且用户要把这份幻灯片填进一节已建的课(先 create_stage 建课,再 import_pptx 把页面追加进这节课堂,保留原版排版;课堂标题以 create_stage 为准,PPT 不接管)。随后逐页检查(有 render_scene_preview 就渲染看)并修 bad case,理解整课之后才写旁白/spotlight,最后 TTS。仅在用户要求时插入 quiz 或 interactive。不要重新规划整课。 --- # PPT import as appended pages of a stage Fill an uploaded PowerPoint's slides INTO the stage the user created with `create_stage`: the slides become appended pages (or pages inserted at `atOrder`), keeping the original layout. The stage keeps its own title and its existing pages — the PPT is content, not the classroom's identity. Import, **inspect and repair the pages**, **understand the course**, then write classroom actions. Do not skip from import to TTS. The learner-facing name is 「PPT 导入成课」. Never say "clone", "style transfer", or "rewrite from the PPT". Do **not** replan the imported deck. Do **not** call `generate_scene` on an imported slide — that rebuilds the page and throws the original layout away. ## Order (do not rearrange) 1. `create_stage` for the classroom, then import the deck into it. 2. Roster. 3. Inspect every page (read, and render when the tool exists). Load `pro-editing` to fix visual bad cases. **Do not patch `/actions` yet.** 4. From that inspection, form a course reading (what it teaches, page roles, flow). Then write actions page by page. 5. `generate_tts`. 6. Quiz / interactive only if the user asked. ## Step 1 — create the stage, then import the deck 1. `create_stage` with the classroom's own title and brief. The stage — not the PPT — is the classroom: import never changes its title. 2. `list_materials`. Find the source `.pptx` (`mat_` id, mime or filename). 3. If several PowerPoints are attached, ask which one, unless the user already named it. 4. Call `import_pptx` with that source `mat_` id and the `stageId` from `create_stage`. Pages append after the existing ones, numbered consecutively. Pass `atOrder` to insert them at a position instead: pages at that order and beyond shift back. Existing pages are a normal premise — the PPT is one content source among others, never a reason to refuse. 5. A retry of the same material is idempotent — take the reused result and continue from Step 2; do not re-parse. If the user wants the same PPT again on purpose, delete its imported pages first (`edit_deck` `delete`), then retry. 6. Want pages beyond the deck (quiz, interactive, extra slides)? Insert a stub with `edit_deck` `insert`, then `generate_scene` that new page only with its explicit `type` and `brief` — do not re-import the deck to get more pages. If there is no `.pptx`, say so and stop. Do not extract a PDF/DOCX and pretend it was a slide import. Speaker notes may already have become speech actions. Treat them as **drafts**. Do not TTS them yet; they are rewritten in Step 4 after you understand the course. ## Step 2 — roster If the import result says no roster exists, settle the cast in conversation and call `set_roster`. Voices are needed later for TTS, not for the inspection pass. ## Step 3 — inspect pages, then fix bad cases `list_scenes` is the map. Then **inspect before you edit**. ### 3a. Read `read_stage` every imported page at `path:/scenes/<order|id>`. Record, in your own notes: - title vs first real heading; - element inventory (overflow candidates, empty boxes, missing `src`); - garbled text; - whether imported speaker-notes speech exists and whether it actually teaches this page. A deck of more than 20 pages: still `list_scenes` fully; `read_stage` the cover, every section-looking page, and every page whose title/excerpt looks thin, garbled, or like a dump. Do not skip a page that looks empty. ### 3b. Render when the tool exists If `render_scene_preview` is registered, **use it**. A `read_stage detail:"tree"` inventory cannot see overlap, clipping, or a table running off the canvas. - First pass: preview every imported page you read with `read_sRead the full source on GitHub (opens external page)