
This is the creative pipeline for full-page 16:9 PNG slide generation, part of a multi-skill PPT system. You never call it directly. It expects task_pack.json and info_pack.json written by sn-ppt-entry, then walks through style extraction (LLM or VLM depending on reference images), outline generation, and per-slide prompt composition followed by text-to-image rendering via sn-image-base. When T2I fails it falls back to web image search. The interesting bit is the sanitize step that strips hex codes and CSS tokens from prompts before generation to stop the backend from rendering literal style specs into the image. It never writes placeholders. Either you get a PNG or you get a logged failure and it moves on.
$ npx -y skills add opensensenova/sensenova-skills --skill sn-ppt-creative --agent claude-codeInstalls into .claude/skills of the current project.
把公共 Story 转译成一套 16:9 整页视觉:每页生成一张完整 PNG,并可组装为 PPTX。 Creative 负责视觉转译,不负责 Research,不生成自己的内容大纲。
必须存在:
<DECK_DIR>/task_pack.json<DECK_DIR>/info_pack.json<DECK_DIR>/outline.mdtask_pack.choices.output == "creative",或旧任务的 ppt_mode == "creative"DECK_DIR 只能取 task_pack.deck_dir 的绝对路径。所有生成产物只写到该目录;不得写入
用户 home 根目录、宿主 workspace 根目录、Skill 目录、repo、/tmp 或另一个 workspace。
已有任务必须复用原 DECK_DIR,不得另建目录。
把当前 Skill 所在目录记为只读的 SKILL_ROOT,把同级 sn-ppt-tools/ 解析为绝对
PPT_TOOLS_DIR。开始生图前读取
$PPT_TOOLS_DIR/references/capability-policy.md。文本推理、风格判断和视觉理解使用宿主
Agent 原生能力;图片生成优先使用宿主原生工具,原生能力不存在或一次实际调用失败时,
才使用 PPT 整包自带的 image_generate.py。
不得调用 model_client.py、sn_agent_runner.py,不得要求用户在 Agent 外再配置文本或
视觉模型 API。
开始和恢复时重新读取磁盘上的 outline.md。它固定:
Creative 可以决定视觉隐喻、艺术媒介、构图、页面动势和信息图形语言,但不能:
outline.json;发现现有材料不足时,保留对应页位并明确缺口,返回 Entry/Story;不得在 Creative 内补做 Research。
读取 task_pack.choices.design_richness:
Sponsors