{"id":"4d934258-94df-4edd-866f-d4d873750368","shortId":"xymAkX","kind":"skill","title":"sn-ppt-doctor","tagline":"Environment diagnostic for the PPT family. Validates sn-image-base, API keys,\nNode runtime, and optional deps; interactively writes .env for required vars.\nRuns before sn-ppt-entry; does not modify sn-image-* skills.","description":"# sn-ppt-doctor\n\n## When to use\n\n- Before the first time you use `sn-ppt-entry` / `sn-ppt-creative` / `sn-ppt-standard`, to verify env is wired\n- After you change `.env`, to confirm\n- When `sn-ppt-entry` reports missing-env error and tells you to come here\n\n## Hard checks (must pass before sn-ppt-entry can run)\n\n1. Text chat API key is available via `SN_TEXT_API_KEY`, shared `SN_CHAT_API_KEY`, or global `SN_API_KEY`\n2. Vision chat API key is available via `SN_VISION_API_KEY`, shared `SN_CHAT_API_KEY`, or global `SN_API_KEY`\n3. Image generation API key is available via `SN_IMAGE_GEN_API_KEY` or global `SN_API_KEY`\n4. `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)\n5. `node --version` >= 18\n\n## Soft checks (warnings only)\n\n- `$(pwd)/ppt_decks/` creatable and writable (deck_dir parent; fixed — not configurable via env)\n- `sn-ppt-standard/scripts/export_pptx/node_modules` exists (run `npm install` on first use otherwise)\n- Optional env vars (`SN_IMAGE_GEN_*`, `SN_CHAT_*`, `SN_TEXT_*`, `SN_VISION_*`) — displays current value or \"unset\"\n- `pypdf` / `python-docx` Python deps for doc parsing in sn-ppt-entry\n\n## Invocation\n\nSingle-file entry; no package imports, no `-m`, no `PYTHONPATH` needed.\n\n```bash\npython $SKILL_DIR/ppt_doctor/check_environment.py                      # interactive\npython $SKILL_DIR/ppt_doctor/check_environment.py --non-interactive\npython $SKILL_DIR/ppt_doctor/check_environment.py --env-path /custom/.env\n```\n\nWhen used inside OpenClaw, `/skill sn-ppt-doctor` runs the same entry.\n\n## Output\n\nPlain text report — one line per check — then a summary. On any hard-check failure, enters interactive mode to fill `.env` (unless `--non-interactive`).\n\n## Does NOT\n\n- Modify `sn-image-*` skills or their `.env`\n- Install packages automatically (prints install commands instead)\n- Run any PPT pipeline","tags":["ppt","doctor","sensenova","skills","opensensenova","agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation"],"capabilities":["skill","source-opensensenova","skill-sn-ppt-doctor","topic-agent","topic-agent-skills","topic-ai-agents","topic-ai-assistant","topic-data-analysis","topic-document-processing","topic-office-automation","topic-presentation-slides"],"categories":["SenseNova-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-ppt-doctor","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add OpenSenseNova/SenseNova-Skills","source_repo":"https://github.com/OpenSenseNova/SenseNova-Skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1627 github stars · SKILL.md body (1,976 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:53:05.441Z","embedding":null,"createdAt":"2026-05-15T06:53:10.549Z","updatedAt":"2026-05-18T18:53:05.441Z","lastSeenAt":"2026-05-18T18:53:05.441Z","tsv":"'/custom/.env':295 '/ppt_decks':209 '/scripts/export_pptx/node_modules':225 '/skill':300 '1':105 '18':203 '2':127 '3':149 '4':167 '5':200 'api':16,108,115,120,125,130,137,142,147,152,160,165 'auto':179 'auto-resolv':178 'automat':348 'avail':111,133,155 'base':15,171,192 'bash':278 'chang':74 'chat':107,119,129,141,241 'check':95,205,316,324 'come':92 'command':351 'configur':218 'confirm':77 'creatabl':210 'creativ':62 'current':247 'deck':213 'dep':22,256 'diagnost':6 'dir':214 'dir/ppt_doctor/check_environment.py':281,285,291 'directori':189 'discover':173 'display':246 'doc':258 'doctor':4,45,304 'docx':254 'enter':326 'entri':34,58,82,102,264,269,308 'env':25,69,75,86,220,235,293,331,345 'env-path':292 'environ':5 'error':87 'exist':226 'failur':325 'famili':10 'file':268 'fill':330 'first':51,231 'fix':216 'gen':159,239 'generat':151 'global':123,145,163 'hard':94,323 'hard-check':322 'help':176 'imag':14,40,150,158,170,191,238,341 'import':272 'insid':298 'instal':229,346,350 'instead':352 'interact':23,282,288,327,335 'invoc':265 'key':17,109,116,121,126,131,138,143,148,153,161,166 'layout':199 'line':314 'm':274 'miss':85 'missing-env':84 'mode':328 'modifi':37,338 'must':96 'need':194,277 'node':18,201 'non':197,287,334 'non-interact':286,333 'non-standard':196 'npm':228 'one':313 'openclaw':299 'option':21,234 'otherwis':233 'output':309 'packag':271,347 'parent':215 'pars':259 'pass':97 'path':294 'per':315 'pipelin':356 'plain':310 'ppt':3,9,33,44,57,61,65,81,101,223,263,303,355 'print':349 'pwd':208 'pypdf':251 'python':253,255,279,283,289 'python-docx':252 'pythonpath':276 'report':83,312 'requir':27 'resolv':180 'run':29,104,227,305,353 'runtim':19 'share':117,139 'sibl':183 'singl':267 'single-fil':266 'skill':41,184,188,280,284,290,342 'skill-sn-ppt-doctor' 'sn':2,13,32,39,43,56,60,64,80,100,113,118,124,135,140,146,157,164,169,190,222,237,240,242,244,262,302,340 'sn-imag':38,339 'sn-image-bas':12,168 'sn-ppt-creativ':59 'sn-ppt-doctor':1,42,301 'sn-ppt-entri':31,55,79,99,261 'sn-ppt-standard':63,221 'sn_agent_runner.py':175 'soft':204 'source-opensensenova' 'standard':66,198,224 'summari':319 'tell':89 'text':106,114,243,311 'time':52 'topic-agent' 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-assistant' 'topic-data-analysis' 'topic-document-processing' 'topic-office-automation' 'topic-presentation-slides' 'unless':332 'unset':250 'use':48,54,232,297 'valid':11 'valu':248 'var':28,236 'verifi':68 'version':202 'via':112,134,156,219 'vision':128,136,245 'warn':206 'wire':71 'work':177 'writabl':212 'write':24","prices":[{"id":"975194bf-c9ee-42fa-81ff-fe6c36adb57d","listingId":"4d934258-94df-4edd-866f-d4d873750368","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"OpenSenseNova","category":"SenseNova-Skills","install_from":"skills.sh"},"createdAt":"2026-05-15T06:53:10.549Z"}],"sources":[{"listingId":"4d934258-94df-4edd-866f-d4d873750368","source":"github","sourceId":"OpenSenseNova/SenseNova-Skills/sn-ppt-doctor","sourceUrl":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-ppt-doctor","isPrimary":false,"firstSeenAt":"2026-05-15T06:53:10.549Z","lastSeenAt":"2026-05-18T18:53:05.441Z"}],"details":{"listingId":"4d934258-94df-4edd-866f-d4d873750368","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"OpenSenseNova","slug":"sn-ppt-doctor","github":{"repo":"OpenSenseNova/SenseNova-Skills","stars":1627,"topics":["agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation","presentation-slides"],"license":"mit","html_url":"https://github.com/OpenSenseNova/SenseNova-Skills","pushed_at":"2026-05-15T04:43:37Z","description":"Modular SenseNova skills for building AI-powered office assistants and productivity workflows","skill_md_sha":"004104c3f7b3d54946b34c2fbeba204cf819ddf8","skill_md_path":"skills/sn-ppt-doctor/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-ppt-doctor"},"layout":"multi","source":"github","category":"SenseNova-Skills","frontmatter":{"name":"sn-ppt-doctor","description":"Environment diagnostic for the PPT family. Validates sn-image-base, API keys,\nNode runtime, and optional deps; interactively writes .env for required vars.\nRuns before sn-ppt-entry; does not modify sn-image-* skills."},"skills_sh_url":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-ppt-doctor"},"updatedAt":"2026-05-18T18:53:05.441Z"}}