Documents

Double6 PPT CLI

Try it

基于 ppt-master 与 iOfficeAI/OfficeCLI 两个开源项目,生成、套用模板、读取、检查和闭环修复原生 PPTX;“可编辑”重点指保留原生对象与稳定身份,方便 Agent 多轮定位、修改和复查。适用于从 Markdown、文本、结构化材料与本地授权图片制作演示文稿,复用常规 PPTX 模板,或质检和受限修复已有 PPTX;不负责 PDF/DOCX 内容解析、联网搜图、图片式 PPT、HTML slides、TTS 或视频。

What it does

1. 运行 。 2. OfficeCLI 必须是 ;其它版本 fail closed。只有用户授权安装后才运行 ,禁止全局安装和自动升级。 3. Microsoft PowerPoint 与 是默认必需验证目标。PowerPoint 已打开其它演示文稿时返回 ,绝不强关用户文件。 4. LibreOffice 仅在 时做附加兼容性检查;缺失不影响默认 PowerPoint 验证,也不能替代 PowerPoint。 5. macOS 上运行目录必须位于用户可直接访问的项目目录,禁止放在 ;但这不代表 PowerPoint 获得该目录的递归权限,PowerPoint 仍不得直接打开 run/…

The skill document

Double6 PPT CLI 0.2.1

默认闭环是:模板分析/原生创作 → 生成副本 → inspect → 确定性修复 → Microsoft PowerPoint 验证 → 可选视觉复核 → finalizeissues=0、OOXML validate 或预览非空都不能替代视觉结论。

开始前

  1. 运行 python scripts/d6ppt.py doctor --json
  2. OfficeCLI 必须是 1.0.144;其它版本 fail closed。只有用户授权安装后才运行 bootstrap --runtime-dir --yes,禁止全局安装和自动升级。
  3. Microsoft PowerPoint 与 osascript 是默认必需验证目标。PowerPoint 已打开其它演示文稿时返回 powerpoint_busy,绝不强关用户文件。
  4. LibreOffice 仅在 verify --compatibility libreoffice 时做附加兼容性检查;缺失不影响默认 PowerPoint 验证,也不能替代 PowerPoint。
  5. macOS 上运行目录必须位于用户可直接访问的项目目录,禁止放在 /private/tmp;但这不代表 PowerPoint 获得该目录的递归权限,PowerPoint 仍不得直接打开 run/cleanroom 文件。
  6. inspect 不调用 Chrome/Chromium 预览,避免隔离 profile 触发钥匙串弹窗。视觉事实源统一由后续 PowerPoint 导出产生。
  7. 交给 PowerPoint 打开的所有副本必须先进入真实系统账户的 /Users//Library/Containers/com.microsoft.Powerpoint/Data/tmp/d6ppt/。真实 home 由系统账户数据库解析,禁止依赖隔离 $HOME / Path.home();run 与证据只通过普通文件复制读写。
  8. roundtrip、另存、重开、改字、移动、保存、持久化核验与 PDF 导出合并为一次 PowerPoint 批处理会话。禁止让 PowerPoint 打开 process/tmp/opencode/diag 或其它诊断文件,也不得代用户点击文件访问授权。

三种模式

原生生成

init --mode generate --source --out ,按 authoring-contract.md 准备 PPT Master SVG 项目和稳定对象身份,再依次 compile → inspect → repair → verify → finalize

模板填充

  1. init --mode template-fill --source --template [--contract ] --out
  2. template-analyze --run 提取主题、母版、版式、逻辑页和递归对象画像,并生成计划草稿。
  3. 用户确认要替换的图片先用 template-asset-import --run --asset --name 冻结到 run;不得让计划引用可变的外部路径。
  4. 编辑计划:每个选中模板页的每个对象必须标为 keep_designreplace_contentupdate_navigationremove_samplepreserve_attributionmanual_review。图片替换还必须在根级 image_edits 中写明 plan_slide、唯一 source_object_id、冻结 asset_name/SHA、对象 fingerprint 与 user_confirmed: true。带内部跳转的导航必须用根级 navigation_targets 把确认标签映射到逻辑输出页,并用 navigation_source_targets 覆盖底板、首页图标等其它实际点击区;旧模板跳转指向未选源页时必须在 check-plan 阶段报告,不能拖到 Apply。未知、未处置、无动作映射或未确认图片都会阻断。
  5. template-check-plan --run --plan 。结构化 source 含 slides[] 时,内容槽默认执行严格同页来源检查:逐字或抽取可由同页源字段证明时自动通过;不能证明的扩写必须用 content_binding.mode=user_confirmed_paraphrase 绑定 source_refs 并取得用户确认。跨页借文、无来源扩写和伪造 page number 阻断 Apply。报告无 error 后仍必须把具体计划交给用户确认;只有 status=confirmed 才能 template-apply
  6. Apply 使用 vendored PPT Master Fill Native,不把模板转成 SVG;图片只重定向目标 slide 上已确认 picture 的私有关系,不改模板、母版、布局、几何、裁切或其它共享图片。确认导航在一次性 vendor 输入副本中移除旧跳转,生成后按 navigation_targets 重建到逻辑输出页;当前章节取不晚于当前页的最近章节起始页。只有每页能从原模板证明唯一的“1 个选中样式 + 重复未选中样式”时,才把原模板的底板与文字样式移到当前章节;样式不唯一则 fail closed。原模板不改。输出画像和回执保留模板/内容/输出/图片 SHA、来源对象映射、导航链接、选中态与 package diff。
  7. Apply 后先运行 package-clean --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 永不由该命令删除或改写。

已有 PPTX 质检与修复

init --mode postflight --source [--template ] [--contract ] --out inspect 会生成稳定 inspection map、残留/导航/数字/容量/溢出/小字/空白/主题漂移 findings;包内存在未挂入逻辑页且仍含模板示例的 slide parts 时给出阻断 finding,并指向 package-clean。同一导航项在多数页面持续处于选中态时会报告为 manual_review,因为 postflight 没有 template-fill 的章节起始页映射可证明正确高亮项。patch-plan 只纳入确定性叶子操作;图片必须用 --confirm-finding 单独确认。然后运行 patch 并重新 inspect

视觉策略

  • 默认需要视觉检查。声明可用:visual-policy --capability available --decision perform;PowerPoint 导出逐页图片后,由视觉模型检查并用 visual-review 写 SHA 绑定回执。
  • 能力未知或不可用时返回 visual_review_decision_required,先询问是否切换视觉模型。
  • 用户拒绝、没有视觉模型或明确跳过时,运行 visual-policy --capability --decision waive --reason --user-ack
  • 有效豁免不阻断交付,但最终只能是 pass_with_warnings,并明确写“未进行模型视觉质量检查”。PPTX SHA 改变后旧复核和旧豁免失效。没有裸 --skip

安全边界

  • 原文件永不覆盖;所有修改只写 run 副本并保留前后 package diff。
  • 自动修复只限唯一稳定叶子路径、当前 SHA、DrawingML ID/type、内容指纹、finding、来源对象与理由全部匹配的 set_property / remove_leaf
  • 组织竞争力公式分子/分母/乘除关系 等业务语义文本不因“像公式”而成为可删除模板残留;没有模板对象身份或媒体 SHA 的精确证明时只能进入人工复核。
  • 不自动删除母版、版式、组合对象、共享关系或语义图片;不做模糊删除、大面积重排、审美重做和跨页扩散。
  • package-clean 不是通用 OOXML 垃圾回收器:只处理已证明未使用的 slide 关系和不可达非逻辑 slide;仍被 live XML、自定义放映或其它保留 part 引用的对象 fail closed。
  • 补丁后必须证明未点名页文本、母版、版式、主题和备注未变。失败即 patch_scope_violation
  • schema 1.0 仅做内存兼容读取,禁止回写历史证据。

详细合同见 delivery-gates.mdrepair-policy.mdmachine-contracts.mdlicenses-and-upstreams.md

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.

by byungkyu800 installs42 stars

More from double6-ai

Browse all skills

Translate user-supplied text PDFs into Simplified Chinese and bilingual PDFs. Reads the PDF and only explicitly selected local LaTeX, sends extracted text to an explicitly approved OpenAI-compatible endpoint, runs local PDF/Python subprocesses, and writes outputs, diagnostics, and the default runtime cache under the chosen directory. Local proxy, arXiv download, Docker compilation, and external cache paths require explicit command-line opt-in.

by double6-ai2 installs

在用户授权范围内使用宿主搜索、网页和本地材料完成多来源研究;在指定目录写入报告、记录、SHA-256 候选哈希与验证回执,并运行 Python validator。用于深入调研、对象比较、证据化决策和复杂事实核验。

by double6-ai1 installs

把普通用户反复要做的真实事情构建成离线优先、严格单文件、个人数据留在当前设备的本地工作台。用户提到个人工作台、学习台、备考台、任务面板、记录与复盘工具,或想把重复流程做成可保存恢复的页面时应使用;联网、多人协作、账号、支付和发布属于独立外部流程。

by double6-ai1 installs