/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
$ npx -y skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-entry --agent claude-codeHow 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.mdname: 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
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
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.
Repo: OpenSenseNova/SenseNova-Skills
Other skills on sensenova-skills.
- /sn-da-excel-workflow
Excel 数据分析多步编排器。覆盖:(1) 读取多 Sheet Excel 文件并统计行数,(2) 大文件检测(≥10k 行自动 Parquet 优化),(3) 数据清洗(缺失值、文本标准化、无效字符),(4) 条件筛选与分类提取,(5) 跨 Sheet 统计聚合,(6) 导出 Excel/CSV 并提供下载链接。覆盖从数据读取到报告生成全流程,按步骤编排 capability 子 skill。**遇到以下任一情况就主动使用本 skill,不要自行写几行 pandas 就回答**:①用户出现触发词:Excel 分析 / 表格分析 / 数据分析 /
Open skill - /category-coloring
当Excel文件总行数超过1万行时,通过转换为Parquet格式提升读取性能,提取目标指标并计算最大值,最后将结果输出为Excel并对特定行进行高亮标注。
Open skill - /duplicate-value-coloring
对比Excel多表中的特定系数并对异常值进行颜色标记。
Open skill - /outlier-coloring
识别 Excel 中的超限数值与错误单元格并进行高亮标注。
Open skill - /threshold-cell-coloring
根据Excel总行数自动切换Parquet加速读取,计算特定维度的时间序列平均值,并使用openpyxl输出带有条件格式(如低于均值标绿)和自定义样式的分析报告。
Open skill - /top-value-coloring
根据数据规模动态选择处理策略,对多表数据进行合并、统计筛选,并利用 openpyxl 实现关键指标的自动化样式高亮与格式化导出。
Open skill

