# Sn Ppt Standard

仅在 `sn-ppt-entry` 与 `sn-ppt-story` 已准备绝对 `DECK_DIR` 和 `outline.md` 后使用；生成每页独立...

- Repository: https://github.com/OpenSenseNova/SenseNova-Skills (6002 stars)
- Category: Documents
- License: MIT
- Last updated: 2026-10-29
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-standard -g -a claude-code -y`
Codex: `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-standard -g -a codex -y`
Cursor: `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-standard -g -a cursor -y`
Gemini CLI: `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-standard -g -a gemini-cli -y`

## Description

仅在 `sn-ppt-entry` 与 `sn-ppt-story` 已准备绝对 `DECK_DIR` 和 `outline.md` 后使用；生成每页独立 HTML（1600×900）、渲染 PNG、逐页讲稿、`present.html`，并按 `static_postprocess` 选择生成由 Standard 自有 exporter 转换的 PPTX。**`present.html` 始终是必交付产物，缺失即技术故障，不得交付；`static_postprocess` 含 `pptx` 时 PPTX 同为必交付产物（缺一即技术故障），且只能由 Standard 自有 exporter 生成；仅当用户明确要求只要 HTML（`static_postprocess` 为 `[]`）时，PPTX 才可不交付。**

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# sn-ppt-standard

把本文件当作**路线图**，不要当作需要一次背完的规范全集。只读取已准备任务的 Entry/Story 交接、该路径要求的 reference 和职责卡。

## Box-Agent 兼容入口

当当前 harness 暴露 `sub_agent`、`inspect_images`、`generate_image`、`bash` 等 Box-Agent 原生工具时，开始任何制作动作前必须完整读取 `references/box-agent-tool-contract.md`。该契约只覆盖工具名称、参数、脚本路径、委派方式和权限边界；本文件及各职责卡的事实、设计、质量和交付标准仍然有效。委派任何角色时，都要在 `task` 中显式要求其先读取同一契约与自己的 `subagents/<role>.md`。

## Hermes 环境等效工具

Hermes 不暴露 Box-Agent 工具名，但提供等价能力。在 Hermes 宿主中，正文下文中出现的
`bash` / `inspect_images` / `generate_image` / `sub_agent` 调用一律按下表翻译后执行，
且无须读取 `references/box-agent-tool-contract.md`（该契约仅用于 Box-Agent harness）：

| Box-Agent 写法（正文） | Hermes 等效工具 | 翻译要点 |
| --- | --- | --- |
| `bash(command, timeout)` | `terminal(command, timeout)` | 参数直接对应；Hermes 专属参数（workdir/pty）按需使用 |
| `inspect_images(image_paths=[...], instruction=..., strategy="native")` | `vision_analyze(image_url=<单张路径>, question=<instruction>)` | 每张图一次调用；`strategy` 参数 Hermes 无，忽略 |
| `generate_image(prompt, output_path, size, watermark=false)` | `image_generate(prompt, aspect_ratio=<按尺寸取>)` | 无 `output_path`，生成后回读返回路径验证落盘 |
| `sub_agent(title, task, required_tools, write_scope, budget)` | `delegate_task(goal=<task>, context=<背景>)` | 用 Hermes 参数形态；自包含 task、语言合同、绝对路径与产物双读验证的要求不变 |

委派仍要求子任务自包含、携带语言合同与职责卡绝对路径，并用 `read_file` / `search_files`
验证声明的产物；正文的阶段划分、质量标准与交付要求不因宿主变化而放宽。

## Entry / Story 输入契约（最高优先级）
本 Skill 不接收裸 query，不自行创建任务目录。只接受绝对 `DECK_DIR`，且必须存在 `task_pack.json`、`info_pack.json` 和 `outline.md`。
`choices.output` 必须为 `static_html`，且 `ppt_mode` 必须为 `standard`。开始和恢复时重新读取磁盘上的 `outline.md`；不得自行 Research、重复解析材料、改写 outline、增删页面、重排页序或新增事实。输入不满足时返回 Entry。

## 1. 所有模式共享的合同

### 1.1 Orchestrator 的职责与边界

Orchestrator 只负责：**读取 Entry/Story 交接、规划、委派、合并、验收和确定性收尾**。

The rest: https://github.com/OpenSenseNova/SenseNova-Skills/blob/HEAD/skills/sn-ppt-standard/SKILL.md
