Install
openclaw skills install @double6-ai/double6-ppt-cli基于 ppt-master 与 iOfficeAI/OfficeCLI 两个开源项目,生成、套用模板、读取、检查和闭环修复原生 PPTX;“可编辑”重点指保留原生对象与稳定身份,方便 Agent 多轮定位、修改和复查。适用于从 Markdown、文本、结构化材料与本地授权图片制作演示文稿,复用常规 PPTX 模板,或质检和受限修复已有 PPTX;不负责 PDF/DOCX 内容解析、联网搜图、图片式 PPT、HTML slides、TTS 或视频。
openclaw skills install @double6-ai/double6-ppt-cli安装说明:从 GitHub / skills.sh 安装可获得完整 vendored PPT Master。ClawHub 包因网关体积限制省略了
pptx_animation_presets.json与presetShapeDefinitions.xml;需要原生 SVG 生成完整能力时,请改用 GitHub 安装。
| 能力 | 是否需要 macOS / Microsoft PowerPoint |
|---|---|
安装 skill、doctor、bootstrap OfficeCLI | 否。只要 Python 3 + npm(bootstrap 时) |
| generate / template-fill / postflight 编译与 inspect | 否 |
--verify-tier portable 验证与交付 | 否。OfficeCLI 校验/改字探针;可选 LibreOffice 渲染 |
--verify-tier native / auto 且环境有 PowerPoint | 是(当前实现)。依赖 macOS osascript + Microsoft PowerPoint.app 做原生 roundtrip |
非 Mac / 无 PowerPoint 时请显式使用 --verify-tier portable,不要强制 native。下面大量路径与 /private/tmp、PowerPoint 容器说明,只约束 macOS native 档。
officecli.cmd + PATH 上的 node 调用。core.autocrlf 不会导致 137/137 误报。osascript)。Windows 可探测已安装 PowerPoint,但 skill 未实现 COM 原生档,请用 --verify-tier portable。本 Skill 使用了两个开源项目,并在其上增加 Double6 的集成代码、工作流约束、状态记录和质量门:
v4.8.0(MIT):精简内核随 Skill 一同提供,承担原生生成、模板分析与模板填充能力。v1.0.144(Apache-2.0):作为固定版本的外部运行依赖,承担 PPTX 结构读取、检查、确定性操作和 portable 验证;其二进制不包含在 Skill 包内。本 Skill 所说的“可编辑 PPTX”,重点是方便 Agent 多轮编辑。输出保留原生 DrawingML 对象,并通过稳定对象身份、inspection map、补丁计划、前后 package diff 和验证回执,让 Agent 能在后续轮次定位同一对象、继续修改并重新检查。文件也可以在 PowerPoint 中人工编辑;当前可编辑性验收主要衡量 Agent 重复编辑的可靠性。
默认闭环是:模板分析/原生创作 → 生成副本 → inspect → 确定性修复 → 验证(native PowerPoint 或 portable OfficeCLI) → 可选视觉复核 → finalize。issues=0、OOXML validate 或预览非空都不能替代视觉结论。
python scripts/d6ppt.py doctor --json --mode <generate|postflight|template-fill> --verify-tier <auto|native|portable>。doctor 会按目标模式和档位报告能力;PowerPoint 缺失只会阻断 native 档。1.0.144;运行时接受 pin 与更新的 1.x(同 major)。非 pin 版本 doctor 报 warn 并提示风险,可继续使用;需要对齐时执行 bootstrap --runtime-dir <path> --yes 重新装 pin。major ≠ 1 或低于最低兼容版才 fail。只有用户授权后才运行 bootstrap,禁止全局安装。ppt-master 以 vendored BOM 为准。osascript 是 native 档必需验证目标。PowerPoint 已打开其它演示文稿时返回 powerpoint_busy,绝不强关用户文件。osascript 不可用,或系统拒绝辅助访问(error -1719)时,verify 默认自动降级为 portable 档:OOXML + OfficeCLI 校验与改字探针,可选 LibreOffice 渲染。用 --verify-tier native 强制要求 PowerPoint;用 --verify-tier portable 跳过 PowerPoint。verify --compatibility libreoffice 时做附加兼容性检查,不能替代 PowerPoint。LO Save As 常重编号 DrawingML ID/丢自定义名;text/notes/visual/edit-probe 通过而 identity 漂移时记为 pass_with_warnings。/private/tmp;显式 portable 档不调用 PowerPoint,可在隔离临时目录运行。普通用户目录并不自动向 PowerPoint 开放递归访问,PowerPoint 仍不得直接打开 run/cleanroom 文件。inspect 不调用 Chrome/Chromium 预览,避免隔离 profile 触发钥匙串弹窗。native 档视觉事实源由 PowerPoint 导出产生;portable 档可由 LibreOffice 渲染补齐。/Users/<account>/Library/Containers/com.microsoft.Powerpoint/Data/tmp/d6ppt/。真实 home 由系统账户数据库解析,禁止依赖隔离 $HOME / Path.home();run 与证据只通过普通文件复制读写。process/tmp/opencode/diag 或其它诊断文件,也不得代用户点击文件访问授权。init --mode generate --source <content> --design <neutral|academic|business|training> --verify-tier <auto|native|portable> --out <run> 会生成 spec_lock.md、design_spec.md、svg_output/ 与语义清单示例。填完草稿并按 authoring-contract.md 准备稳定对象身份,再依次 compile → inspect → repair → verify → finalize。设计包提供颜色、字号与工作结构,不会替 Agent 自动完成版式;需要复用现成版式时使用 template-fill。
init --mode template-fill --source <organized-content> --template <template.pptx> [--contract <content-contract.json>] --out <run>。template-analyze --run <run> 提取主题、母版、版式、逻辑页和递归对象画像,并生成计划草稿。template-asset-import --run <run> --asset <image.png|jpg> --name <safe-name> 冻结到 run;不得让计划引用可变的外部路径。keep_design、replace_content、update_navigation、remove_sample、preserve_attribution 或 manual_review。图片替换还必须在根级 image_edits 中写明 plan_slide、唯一 source_object_id、冻结 asset_name/SHA、对象 fingerprint 与 user_confirmed: true。带内部跳转的导航必须用根级 navigation_targets 把确认标签映射到逻辑输出页,并用 navigation_source_targets 覆盖底板、首页图标等其它实际点击区;旧模板跳转指向未选源页时必须在 check-plan 阶段报告,不能拖到 Apply。未知、未处置、无动作映射或未确认图片都会阻断。template-check-plan --run <run> --plan <plan.json>。结构化 source 含 slides[] 时,内容槽默认执行严格同页来源检查:逐字或抽取可由同页源字段证明时自动通过;不能证明的扩写必须用 content_binding.mode=user_confirmed_paraphrase 绑定 source_refs 并取得用户确认。跨页借文、无来源扩写和伪造 page number 阻断 Apply。报告无 error 后仍必须把具体计划交给用户确认;只有 status=confirmed 才能 template-apply。navigation_targets 重建到逻辑输出页;当前章节取不晚于当前页的最近章节起始页。只有每页能从原模板证明唯一的“1 个选中样式 + 重复未选中样式”时,才把原模板的底板与文字样式移到当前章节;样式不唯一则 fail closed。原模板不改。输出画像和回执保留模板/内容/输出/图片 SHA、来源对象映射、导航链接、选中态与 package diff。package-clean --run <run>,再 inspect。它只移除未被 presentation/custom show/可见 slide 引用的非逻辑 slide parts、相应 content-type override,以及未被 XML 使用的 slide-jump relationship;不可达 slide 之间即使形成循环也可整体清理。任何仍有外部入边的非逻辑 slide 保留并转人工复核,media、master、layout、theme、notes 与 live slide XML 永不由该命令删除或改写。init --mode postflight --source <deck.pptx> [--template <template.pptx>] [--contract <content-contract.json>] --out <run>。inspect 会生成稳定 inspection map,并报告 OfficeCLI 问题、小字、空白与结构漂移。业务专属的残留文字、数字显示、模板角色和非逻辑页示例标记必须由 content contract 声明,通用检查器不内置某个案例的词、导航标签或数字。patch-plan 只纳入确定性叶子操作;图片必须用 --confirm-finding <id> 单独确认。然后运行 patch 并重新 inspect。
visual-policy --capability available --decision perform;PowerPoint(native)或 LibreOffice(portable)导出逐页图片后,由视觉模型检查并用 visual-review 写 SHA 绑定回执。render_manifest.json 同时绑定当前 PPTX、档位、渲染器、PDF、逐页 PNG 与 contact sheet;任一文件变化都会使视觉回执失效。visual_review_decision_required,先询问是否切换视觉模型。visual-policy --capability <unknown|unavailable> --decision waive --reason <user_declined_switch|no_visual_model|user_requested_skip> --user-ack。pass_with_warnings,并明确写“未进行模型视觉质量检查”。PPTX SHA 改变后旧复核和旧豁免失效。没有裸 --skip。set_property / remove_leaf。package-clean 不是通用 OOXML 垃圾回收器:只处理已证明未使用的 slide 关系和不可达非逻辑 slide;仍被 live XML、自定义放映或其它保留 part 引用的对象 fail closed。patch_scope_violation。详细合同见 delivery-gates.md、repair-policy.md、machine-contracts.md、licenses-and-upstreams.md 与 test-report-and-verification-tiers.md(native/portable 双档说明与完整测试报告)。
wpscli ppt2pdf 仅作诊断导出(常限用户目录可读路径),ppt2photo 可能要求会员。不得声称「WPS 已验证」。1.0.144;若 ~/.officecli 自动升级导致行为异常,可 bootstrap 重新装 pin,或接受 1.x 兼容风险继续使用。