Skip to content
Productivity
Skill

/sn-ppt-entry

Entry point for PPT generation. Asks the user to choose a mode (fast, standard, or creative), then collects role / audience / scene / page_count as needed. For standard mode, also asks how images should be sourced (AI generation, web search, or none), whether charts should use

From plugin
sensenova-skills
4.9k76 skills9 agents
Install
$ npx -y skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-entry --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/sn-ppt-entry

Context preview

The summary Claude sees to decide when to auto-load this skill.

Entry point for PPT generation. Asks the user to choose a mode (fast, standard, or creative), then collects role / audience / scene / page_count as needed. For standard mode, also asks how images should be sourced (AI generation, web search, or none), whether charts should use

SKILL.md

sn-ppt-entry.SKILL.md
name: sn-ppt-entry
description: |
  Entry point for PPT generation. Asks the user to choose a mode (fast,
  standard, or creative), then collects role / audience / scene / page_count
  as needed. For standard mode, also asks how images should be sourced (AI
  generation, web search, or none), whether charts should use AI-generated
  infographics or ECharts, and whether the final deliverable should be PPTX or
  PDF. Parses uploaded pdf/docx/md/txt files, produces
  task_pack.json + info_pack.json in a new deck_dir, then dispatches to
  sn-ppt-creative or sn-ppt-standard. Fast mode skips optional questions and
  gets straight to building. Use when the user asks to make a PPT /
  presentation / 演示 / PPT. If the user asks to open, preview, inspect, or
  edit previously generated HTML slides in the WebUI/workbench without
  regenerating, dispatch to sn-ppt-workbench instead of this generation entry.
metadata:
  project: SenseNova-Skills
  tier: 1
  category: scene
  user_visible: true
triggers:
  - "生成 PPT"
  - "做一套 PPT"
  - "做一份演示"
  - "sn-ppt-entry"

sn-ppt-entry

Hard preconditions

Run `sn-ppt-doctor` hard checks (`SN_API_KEY` or capability-specific API keys / node / sn-image-base) at the start of this skill. If any fails, stop and tell the user to run `/skill sn-ppt-doctor`.

If the user is not asking to generate a new deck and only wants to open an existing/generated deck in the WebUI, do not run these generation preconditions. Dispatch directly to `/skill sn-ppt-workbench`.

Flow

1. Extract parameters from the user's message:

  • `role` (speaker identity)
  • `audience`
  • `scene` (where the deck will be used)
  • `page_count`
  • `language` — detect from the user's query: `zh-Hans` (Simplified Chinese), `zh-Hant` (Traditional Chinese), or `en` (English). Do NOT ask the user; just infer and record it. If unsure, use `zh-Hans`.

2. If the user asks only to open/preview/edit an existing generated deck in the WebUI, dispatch to `/skill sn-ppt-workbench deck_dir=<abs-or-user-provided-path>` and stop. Do not ask mode questions. 3. If `task_pack.json` + `info_pack.json` already exist in a deck_dir the user refers to and the user asks to continue generation, read them and jump to step 10 (see "Resume" below). 4. **Always ask the user which mode to use first.** Call `ask_user`:

**Question — Mode:** "Which generation mode should I use?"

  • "Fast mode — build the slides now so you can review and iterate"
  • "Standard mode — plan the style and content thoroughly first, then build"
  • "Creative mode — full-page AI-generated images per slide"

Store as `ppt_mode` in `task_pack`.

5. **Only ask standard-mode option questions for standard mode.** Fast mode and creative mode have fixed defaults — asking extra questions defeats the purpose of "fast."

If `ppt_mode == "standard"`, ask three more questions:

**Question — Normal images (decorative / conceptual):** "Should I include images, and how should they be sourced?"

  • "AI generation — create images from scratch"
  • "Web search — pull real photos from the web (requires Serper API key)"
  • "No images — use text, charts, and CSS visuals only"

If the user picks web search and `SERPER_API_KEY` is not set, tell them how to get a free key at https://serper.dev. Store as `image_source` in `task_pack.params`.

**Question — Infographics (charts, flowcharts, diagrams):** "For charts and diagrams, should I use AI-generated infographics or ECharts?"

  • "AI-generated infographics — U1 creates custom diagram images"
  • "ECharts — rendered as interactive charts in the HTML"

Store as `infographic_source` in `task_pack.params` (`"ai-gen"` or `"echarts"`).

**Question — Final output:** "Which final file format should I generate?"

  • "PPTX — editable PowerPoint deck"
  • "PDF — fixed-layout presentation file"

Store as `output_format` in `task_pack.params` (`"pptx"` or `"pdf"`). Default to `"pptx"` only if resuming an older `task_pack.json` that lacks this field; do not silently default during a new standard-mode run.

If `ppt_mode == "fast"`: skip image/output questions. Default to `image_source = "ai-gen"`, `infographic_source = "echarts"`, and `output_format = "pptx"`. **Also skip role/audience/scene/page_count questions** — infer reasonable defaults from the user's query and move directly to building slides. Fast mode means fewer questions, faster start. If the user didn't explicitly state these, make your best guess and proceed.

If `ppt_mode == "creative"`: skip image/output questions. Default to `image_source = "ai-gen"` (full-page T2I rendering) and `output_format = "pptx"`. Infographics are not applicable. Skip role/audience/scene/page_count unless explicitly stated.

6. Collect `role -> audience -> scene -> page_count` — **for standard mode only**. Use the wording in `references/ask_user_templates.md`. 2-3 options per question; do not write "其他". For fast/creative modes, infer from the query and move on. 7. Create deck_dir — **location is FIXED, do not guess**:

  • Parent: always `$(pwd)/ppt_decks/`. In OpenClaw, cwd at skill-invocation time is the agent's workspace directory (e.g. `~/.openclaw/workspace/`). Do NOT use `/tmp`, the home directory, the repo root, or `$SKILL_DIR` as the parent. Do NOT honor `$PPT_DECK_ROOT` either — it's been removed to avoid drift.
  • Parent directory must be created if missing: `mkdir -p $(pwd)/ppt_decks`.
  • Deck name: `<topic_concise>_<YYYYMMDD_HHMMSS>`.
  • Full deck_dir path: `$(pwd)/ppt_decks/<topic_concise>_<YYYYMMDD_HHMMSS>/`.
  • Immediately resolve to absolute (`realpath` / `Path.resolve()`) before writing it into `task_pack.json` — downstream must see an absolute path.
  • Create subdirs: `pages/` always; `images/` if `ppt_mode in {standard, fast}`.
  • If `$(pwd)/ppt_decks/` cannot be created (permission denied) → **abort**, tell the user to check workspace permissions.

8. If user attached reference_docs (pdf/docx/md/t

Read more
Ships withsensenova-skills

The SenseNova model family plugs directly into agent runtimes such as OpenClaw and hermes-agent, with the skills in this repository extending the models with concrete, end-to-end office capabilities.

Get the whole plugin

Other skills on sensenova-skills.