---
name: PPT Doctor
slug: ppt-doctor
category: DevOps
description: PPT Doctor checks the environment required by the PPT skill family, validating API keys, Node runtime, sn-image-base, and optional dependencies, then writes .env interactively. Run it before sn-ppt-entry or after changing .env to confirm setup.
github: "https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-ppt-doctor"
language: JavaScript
stars: 4873
forks: 364
install: "npx degit https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-ppt-doctor ~/.claude/skills/sn-ppt-doctor"
installs_to: ~/.claude/skills/sn-ppt-doctor
source_path: skills/sn-ppt-doctor/SKILL.md
collection_size: 25
category_size: 798
collection_url: "https://dirskills.com/collections/OpenSenseNova/SenseNova-Skills"
added: 2026-08-16T07:01:05.915Z
last_synced: 2026-08-16T07:01:05.915Z
canonical_url: "https://dirskills.com/skills/ppt-doctor"
---

# PPT Doctor

PPT Doctor checks the environment required by the PPT skill family, validating API keys, Node runtime, sn-image-base, and optional dependencies, then writes .env interactively. Run it before sn-ppt-entry or after changing .env to confirm setup.

**Install:**

```bash
npx degit https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-ppt-doctor ~/.claude/skills/sn-ppt-doctor
```

## README

# sn-ppt-doctor

## When to use

- Before the first time you use `sn-ppt-entry` / `sn-ppt-creative` / `sn-ppt-standard`, to verify env is wired
- After you change `.env`, to confirm
- When `sn-ppt-entry` reports missing-env error and tells you to come here

## Hard checks (must pass before sn-ppt-entry can run)

1. Text chat API key is available via `SN_TEXT_API_KEY`, shared `SN_CHAT_API_KEY`, or global `SN_API_KEY`
2. Vision chat API key is available via `SN_VISION_API_KEY`, shared `SN_CHAT_API_KEY`, or global `SN_API_KEY`
3. Image generation API key is available via `SN_IMAGE_GEN_API_KEY` or global `SN_API_KEY`
4. `sn-image-base` is discoverable and `sn_agent_runner.py --help` works (auto-resolved as a sibling skill under the same `skills/` directory; `SN_IMAGE_BASE` only needed for non-standard layouts)
5. `node --version` >= 18

## Soft checks (warnings only)

- `$(pwd)/ppt_decks/` creatable and writable (deck_dir parent; fixed — not configurable via env)
- `sn-ppt-standard/scripts/export_pptx/node_modules` exists (run `npm install` on first use otherwise)
- Optional env vars (`SN_IMAGE_GEN_*`, `SN_CHAT_*`, `SN_TEXT_*`, `SN_VISION_*`) — displays current value or "unset"
- `pypdf` / `python-docx` Python deps for doc parsing in sn-ppt-entry

## Invocation

Single-file entry; no package imports, no `-m`, no `PYTHONPATH` needed.

```bash
python $SKILL_DIR/ppt_doctor/check_environment.py                      # interactive
python $SKILL_DIR/ppt_doctor/check_environment.py --non-interactive
python $SKILL_DIR/ppt_doctor/check_environment.py --env-path /custom/.env
```

When used inside OpenClaw, `/skill sn-ppt-doctor` runs the same entry.

## Output

Plain text report — one line per check — then a summary. On any hard-check failure, enters interactive mode to fill `.env` (unless `--non-interactive`).

## Does NOT

- Modify `sn-image-*` skills or their `.env`
- Install packages automatically (prints install commands instead)
- Run any PPT pipeline
