$npx -y skills add SkyworkAI/Skywork-Skills --skill skywork-pptUse this skill when the user wants to work with PowerPoint presentations. Triggers include: - Generating a new PPT from a topic: 'generate a PPT' / '帮我做个PPT' / 'PPTを作って' / 'PPT 만들어줘', 'create a presentation about X' / '生成关于X的演示文稿' / 'Xについてのプレゼンを作って' / 'X에 대한 발표 자료 만들어줘', 'help me
| 1 | # PPT Write Skill |
| 2 | |
| 3 | Four capabilities: **generate**, **template imitation**, **edit existing PPT**, and **local file operations**. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## Prerequisites |
| 8 | |
| 9 | ### API Key Configuration (Required First) |
| 10 | This skill requires a **SKYWORK_API_KEY** to be configured in OpenClaw. |
| 11 | |
| 12 | If you don't have an API key yet, please visit: |
| 13 | **https://skywork.ai** |
| 14 | |
| 15 | For detailed setup instructions, see: |
| 16 | [references/apikey-fetch.md](references/apikey-fetch.md) |
| 17 | |
| 18 | --- |
| 19 | |
| 20 | ## Privacy & Remote Calls (Read Before Use) |
| 21 | |
| 22 | - **Remote upload & processing**: Layers 1/2/4 upload local files and send the full, verbatim user query to the Skywork service. Avoid sensitive or confidential content unless you trust the remote service and its data handling policies. |
| 23 | - **Local-only operations**: Layer 3 (local ops) runs entirely on-device and does **not** call the remote gateway. Use Layer 3 if you need strict local processing. |
| 24 | - **Polling behavior**: The generation/edit workflows include periodic status polling (about every 5 seconds) while waiting for backend jobs. This is expected. |
| 25 | |
| 26 | --- |
| 27 | |
| 28 | ## Routing — Identify the user's intent first |
| 29 | |
| 30 | | User intent | Which path | |
| 31 | |-------------|------------| |
| 32 | | Generate a new PPT from a topic, set of requirements or reference files | **Layer 1** — Generate | |
| 33 | | Use an existing .pptx as a layout/style template to create a new presentation | **Layer 2** — Imitate | |
| 34 | | Edit an existing PPT: modify slides, add slides, change style, split/merge | **Layer 4** — Edit | |
| 35 | | Delete / reorder / extract / merge slides in a local file (no backend) | **Layer 3** — Local ops | |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Environment check (always run this first) |
| 40 | |
| 41 | **This skill requires Python 3 (>=3.8). Run the following before any script to locate a valid Python binary and install dependencies.** |
| 42 | |
| 43 | ```bash |
| 44 | PYTHON_CMD="" |
| 45 | for cmd in python3 python python3.13 python3.12 python3.11 python3.10 python3.9 python3.8; do |
| 46 | if command -v "$cmd" &>/dev/null && "$cmd" -c "import sys; exit(0 if sys.version_info >= (3,8) else 1)" 2>/dev/null; then |
| 47 | PYTHON_CMD="$cmd" |
| 48 | break |
| 49 | fi |
| 50 | done |
| 51 | |
| 52 | if [ -z "$PYTHON_CMD" ]; then |
| 53 | echo "ERROR: Python 3.8+ not found." |
| 54 | echo "Install on macOS: brew install python3 or visit https://www.python.org/downloads/" |
| 55 | exit 1 |
| 56 | fi |
| 57 | |
| 58 | echo "Found Python: $PYTHON_CMD ($($PYTHON_CMD --version))" |
| 59 | |
| 60 | $PYTHON_CMD -m pip install -q --break-system-packages python-pptx |
| 61 | echo "Dependencies ready." |
| 62 | ``` |
| 63 | |
| 64 | > After this check, replace `python` with the discovered `$PYTHON_CMD` (e.g. `python3`) in all subsequent commands. |
| 65 | |
| 66 | --- |
| 67 | |
| 68 | ## Layer 1 — Generate PPT |
| 69 | |
| 70 | ### Steps |
| 71 | 0. **REQUIRED FIRST STEP** — Read [workflow_generate.md](workflow_generate.md) NOW, before taking any other action. After reading, output exactly: `✅ workflow_generate.md loaded.` — then proceed. |
| 72 | 1. **Environment check** — run the check above to get `$PYTHON_CMD`. |
| 73 | 2. **Upload reference files** (if the user provides local files as content source) — parse the file using tool in script/parse_file.py and pass the result to `--files`. See the `--files` note below. |
| 74 | 3. **Web search** (required if no relevant content is already in the conversation) — call web_search tool in script to search the topic and distill results into a `reference-file` file of ≤ 2000 words. |
| 75 | 4. **Run the script**: |
| 76 | > **Important**: set exec tool `yieldMs` to `600000` (10 minutes). |
| 77 | 5. **Deliver** — provide the absolute `.pptx` path and the download URL. |
| 78 | |
| 79 | --- |
| 80 | |
| 81 | ## Layer 2 — Imitate PPT (template-based generation) |
| 82 | |
| 83 | ### Steps |
| 84 | 0. **REQUIRED FIRST STEP** - Read [workflow_imitate.md](workflow_imitate.md) immidiately before any action you do!!! |
| 85 | 1. **Env |