SuperAPI AI 工具集

easyslides-distill

办公与效率

查看项目

更新于 10-24 20:17

技能介绍

用途

EasySlides PPTX Distill 是 EasySlides 的插件本地入口,用于将源 PowerPoint 演示文稿转化为可检查、可复用的 EasySlides 模板。其目标不是重新设计幻灯片,也不是执行一次性的 PPTX 填充,而是通过分阶段流程,从源文件中提取事实证据、构建忠实于源身份的审查候选,并最终泛化出无内容的语义生产布局家族。

主要能力

该技能以证据驱动方式工作,核心能力包括:

  • 源图谱解析:将原生 OOXML 源解析为事实性的部件、关系、对象、几何、文本与资产图谱,对象分类刻意保持未定,语义组件注册属于后续阶段。
  • 蒸馏证据提炼:从证据中生成身份规范(identity_spec.json)、布局规范(layout_spec.json)、组件目录(component_catalog.json)、槽位契约(slot_contracts.json)、适配策略(adaptation_strategy.json)、源几何风险(source_geometry_risks.json)等文件。
  • 语义布局家族:生产模板限定为三到五个稳定页面壳,封面(cover)、内容(content)、结束(ending)为必需角色,目录(toc)与章节(chapter)为可选角色且仅在源文件提供证据时物化。源页面是证据而非运行时布局。
  • 重复形式分组:重复的内容形式归入 body_variants.json,重复的视觉图元成为组件或符号资产。每个正文变体需声明 component_refs 对象,包含稳定 asset_id、唯一 instance_id、语义角色、连续顺序、必需性及槽位绑定。
  • 固定装饰与内容槽位分离:固定 chrome 保留为受保护几何,候选槽位作为受约束的素材输入,具有角色、密度、最大行数与溢出策略。
  • 资产证据包:包括 component_asset_manifest.json 与 symbol_asset_manifest.json,仅包含具有实际可渲染 SVG 片段的资产;未知、仅元数据或一次性对象保留在 review_queue.json 中,不被静默提升。

使用方式

工作流从仓库根目录开始,需先阅读 SKILL.md、ARCHITECTURE.md、workflows/routing.md、workflows/pptx-to-easyslides-template.md、workflows/create-template.md、workflows/template-asset-bank.md、references/template-designer.md 等权威文件。

建立源工作区:

python scripts/easyslides.py distill "path\to\source.pptx" --template-id my_template

该命令创建证据与忠实审查草稿,默认不提升资产。若已有参考工作区,使用文档化的 --from-existing-source 形式。

仅生成源图谱时:

python scripts/pptx_source_graph.py "path\to\source.pptx" --output tmp\source_graph.json

在泛化前阅读证据,检查生成的 contact sheet 与源渲染证据,确认固定 chrome 与素材槽位。构建证据驱动的壳配置文件,运行时模板位于 templates/layouts/<template_id>/,需包含三个必需壳 SVG 及可选壳,加上 design_spec.md、layouts.json、page_catalog.json、story_structure.json、rules.md、body_variants.json、source_page_roster.json 及契约附属文件。layouts.json 需声明 global_contract,包含 canonical_shell_policy、canonical_shell_minimum 3、canonical_shell_limit 5、required_shell_roles、optional_shell_roles、active_shell_roles 等。

独立验证正文变体契约:

python scripts/body_variant_contract.py templates/layouts/my_template --json

构建源范围审查候选与资产证据,需先通过完整蒸馏提升门禁(promotion_report.json 状态为 pass 且 promotable=true):

python scripts/easyslides.py distill "path\to\source.pptx" --template-id my_template --promote-assets

输出包括运行时层 templates/layouts/<template_id>/、源范围审查候选 templates/layouts/<template_id>_reusable/、源范围资产证据 templates/components/source_templates/<id>_kit/ 以及证据与契约目录 templates/reference/template_asset_sources/<id>/。源范围候选不会自动注册为主模板。

生产渲染需绑定精确槽位名:

python scripts/easyslides.py semantic-render templates/layouts/my_semantic_template plans/deck_plan.json --out svg_output
python scripts/easyslides.py template-gate templates/layouts/my_semantic_template --pptx exports/review.pptx --report reports/production_gate.json

禁止使用 DOM 顺序文本替换、源页码或固定源幻灯片数量作为路由信号。

可编辑文本框需保留源几何属性(data-pptx-textbox、data-pptx-box-x/y/w/h、data-pptx-valign),保留父级变换、方向、旋转、裁剪、透明度、渐变、阴影与图层顺序。若 SVG 变换产生负范围,需输出合法正 PPTX 范围及对应翻转。

适用场景

当请求包含以下意图时使用:将 PPT/PPTX 制作为 EasySlides 模板;从 PPTX 提取视觉语言或组件资产;创建镜像或槽位引导镜像模板;在替换素材的同时保留源页面结构;解释源文件中哪些是固定装饰、哪些是内容槽位;验证蒸馏模板能否接收第二套无关素材。若用户想要新故事、允许页数或顺序变化、或仅需一次性原生 PPTX 填充,应改用常规 easyslides 路线。

限制

该技能强调证据驱动与强制门禁。以下情况为阻塞失败:CONTROL-TEXT-VERTICAL-MISALIGN、PPTX-CONTROL-TEXT-VERTICAL-MISALIGN。缺少 PPTX、渲染差异或跨素材运行均标记为 review_required,不能视为提升成功。模板不得保留源特定标题、正文、数据、照片或标志于可替换槽位中;固定 chrome 保持受保护。不得合成缺失的目录或章节页,不得仅因源幻灯片标题或证据排列不同而新增公共页面。不得创建第二导出后端或静默绕过现有 SVG、形状 IR、DrawingML 与原生 PPTX 路径。源页面数量可以大于五,但只能出现在 source_page_roster.json 中,额外形式需由 body_variants.json 或资产清单表示。对于紧凑列表或表格槽位,需按声明容量适配内容,拒绝可见省略号或意外裁剪;若槽位无法接收素材,应更改页面模式或报告溢出,而非静默缩小所有内容。