PPTX Deck Layout Contract 详解:用 JSON 坐标契约驱动可编辑 PPTX 演示文稿的布局审计

发布时间:2026/11/9 19:41:07

PPTX Deck Layout Contract 详解:用 JSON 坐标契约驱动可编辑 PPTX 演示文稿的布局审计 PPTX Deck Layout Contract 详解用 JSON 坐标契约驱动可编辑 PPTX 演示文稿的布局审计【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents导读本指南聚焦于pptx-deck-creation插件中pptx-slide-specification技能所定义的Layout Contract布局契约。它是一份坐标显式的 JSON 规范生成演示文稿的最终根 JSON 中同时包含summary摘要与slides幻灯片数组其中的layout_tree布局树是审计契约而非渲染提示。读完本文你将掌握契约的完整字段语义、各字段的度量单位与取值范围、build 阶段 builder 的映射要求以及修复顺序Repair order这一从几何调整到字号降级的四级排错路径并能在构建后回读 PPTX 实际边界与契约比对。契约的定位审计契约而非渲染提示Layout Contract 的核心论断只有一句A generated deck uses a JSON root withsummaryandslides. The final tree is an audit contract, not a rendering hint.生成的数据包使用含summary和slides的 JSON 根最终的树是审计契约而不是渲染提示。这句话区分了两种截然不同的工作方式传统自动布局auto-layout渲染器在绘制时自行决定位置、自行缩放文字、自行推断布局作者无法预知最终坐标。坐标契约式coordinate-explicit作者直接在layout_tree中写明最终坐标任何渲染器在审计之后都不得再决定位置、不得缩小文字、不得推断布局。在 SKILL.md 中这一原则被表述为Author final coordinates directly inlayout_tree. No renderer may decide placement, shrink text, or infer layout after the audit.也就是说Layout Contract 是一份逐对象、逐坐标、逐样式的完整规格它同时充当三份角色给 builder 的构建指令、给审计工具的核对基准、以及给后续维护者的可读文档。该插件的 README.md 也强调这一点——插件提供的是final inch-basedlayout_treecontracts rather than implicit auto-layout基于英寸的最终布局树契约而非隐式自动布局。契约的整体结构summaryslides根 JSON 由两个顶层键组成{ summary: { layout_policy: { safe_margin: 0.5, content_bottom: 6.7, footer_top: 6.85, minimum_gap: 0.12 }, accessibility: { language: en-US, presentation_title: Quarterly operating review } }, slides: [{ id: s01_overview, title: Operating margin improves after the cost reset, accessibility: { reading_order: [title] }, layout_tree: { slide_size: { width: 13.333, height: 7.5 }, root_group_id: root, groups: { root: { id: root, role: slide, layout_mode: absolute, object_ids: [title], group_ids: [], bbox: { x: 0, y: 0, width: 13.333, height: 7.5 } } }, objects: { title: { id: title, kind: text, role: title, classification: content, content: { text: Operating margin improves after the cost reset }, style: { font_size: 30, color: #111827 }, bbox: { x: 0.75, y: 0.55, width: 10.8, height: 0.65 }, z_index: 2 } } } }] }summary全局策略与可访问性元数据summary承载整个数据包的全局约束。其中生产环境production数据包必须包含显式的layout_policy与可访问性元数据见 SKILL.md 的 Required contract 一节。layout_policy是构建与审计阶段的硬约束四个字段的语义如下字段示例值含义审计用途safe_margin0.5安全边距英寸内容距页面边缘的最小距离内容 bbox 不得侵入该边距背景类对象除外content_bottom6.7内容区下边界英寸页脚轨道之上的底线正文内容的下沿不得超过该值footer_top6.85页脚上边界英寸页脚轨道的起始线页脚对象须位于该线以下minimum_gap0.12对象之间的最小间隙英寸用于判定内容碰撞与间距不足以 13.333 × 7.5 英寸的宽屏为例content_bottom: 6.7与footer_top: 6.85之间形成了 0.15 英寸宽的页脚轨道正文内容必须保持在 6.7 英寸线以上页脚元素从 6.85 英寸线开始。在 audit-checklist.md 的Layout policy检查项中这一约束被精确表述为内容保持在安全边距内、位于页脚轨道之上只有layout_design类对象可以 full bleed出血全幅。accessibility记录全局可访问性信息字段示例值含义languageen-US文档语言标记写入 PPTX 语言元数据presentation_titleQuarterly operating review演示文稿标题用于文档属性此外从仓库的配套技能可见summary还可以承载更丰富的设计上下文pptx-deck-context技能要求在编写坐标前将叙事框架、假设、来源清单、调色板、排版、间距与标志性元素记录进summarydesign-profiles.mdreferences/design-profiles.md则要求把锁定的设计档案如fluent-ui-design-tokens、primer-primitives、editorial-minimal记录在summary.design_context中并在 audit-checklist.md 的Design context检查项中要求其必须存在否则拒绝默认主题式纯标题加项目符号的输出。slides逐页契约slides是幻灯片数组每一页包含id稳定可读的标识符如s01_overview用于审计报告与异常追踪。title以消息/结论为导向的标题message-led title。从 pptx-deck-context/SKILL.md 可知一页只传达一条消息且当叙事框架要求时应使用 action-style行动式标题。accessibility.reading_order该页的阅读顺序数组如[title]驱动无障碍阅读顺序。layout_tree该页的完整布局树。layout_tree坐标、分组与对象的完整声明layout_tree声明了页面尺寸、根组、以 id 为键的分组与对象、最终英寸 bbox、样式、z 序与分类。它由三个主要成员构成1.slide_size页面物理尺寸slide_size: { width: 13.333, height: 7.5 }单位是英寸inches与python-pptx的Inches(...)单位体系一一对应。13.333 × 7.5 即标准的 16:9 宽屏页面。build 阶段 builder 会从空白幻灯片版式blank slide layout开始将所有 bbox 用Inches(...)映射见 SKILL.md 的 Build contract 一节。2.groups以 id 为键的分组表groups: { root: { id: root, role: slide, layout_mode: absolute, object_ids: [title], group_ids: [], bbox: { x: 0, y: 0, width: 13.333, height: 7.5 } } }字段含义字段含义id组标识供root_group_id及其他引用使用role角色根组为slidelayout_mode布局模式契约要求使用absolute绝对坐标object_ids该组直接包含的对象 id 列表group_ids该组包含的子组 id 列表可嵌套bbox组的边界框英寸含x、y、width、height根组的 bbox 通常与slide_size一致从(0, 0)延伸到整页。audit-checklist 的Containment检查项要求子对象必须适配其父组形状上的文字还需尊重内边距inner padding。3.objects以 id 为键的对象表objects: { title: { id: title, kind: text, role: title, classification: content, content: { text: Operating margin improves after the cost reset }, style: { font_size: 30, color: #111827 }, bbox: { x: 0.75, y: 0.55, width: 10.8, height: 0.65 }, z_index: 2 } }契约要求每个有意义meaningful的对象都必须完整具备八个字段见 SKILL.md 的 Required contract字段示例说明idtitle稳定标识kindtext对象类型text、shape、line、table、imageroletitle语义角色标题、正文、标签等classificationcontent分类如content背景装饰类对象用layout_design仅此类可 full bleedcontent{text: ...}内容载荷按kind变化style{font_size: 30, color: #111827}显式样式字号、颜色、字体等bbox{ x: 0.75, y: 0.55, width: 10.8, height: 0.65 }最终边界框英寸z_index2层叠顺序越大越靠上几个值得注意的约束bbox 尺寸均为正英寸数。authoring 规则第 1 条要求使用稳定可读 id、绝对分组与正英寸尺寸build 契约进一步要求在添加对象前拒绝零或负几何reject zero or negative geometry。字号下限 9 pt。authoring 规则第 5 条内容文字必须 ≥ 9 pt优先缩短文案、调整 bbox 或拆分密集内容而不是降低字号。图片必须有有意义的 alt 文本且带来源的论断要记录source_refauthoring 规则第 4 条。z 序必须是有意的intentional z-order。在 asset-guidance.md 中进一步要求视觉素材在 z 序上要低于其上可读文本Keep visual assets below overlapping readable text in z-order。示例对象中title的 bbox 为x0.75, y0.55, width10.8, height0.65。对照策略值验证x0.75 ≥ safe_margin0.5y0.55 ≥ safe_margin0.5xwidth11.55 ≤ 13.333-0.512.833yheight1.2 ≤ content_bottom6.7完全落在安全区内。Build 契约把 JSON 坐标映射为真实 PPTX 对象Layout Contract 不止是一份文档——它定义了 builder 的硬性行为契约。见 SKILL.md 的 Build contract 一节A task-local builder starts from a blank slide layout and maps all bboxes withInches(...). Explicitly set wrapping, disabled auto-size, text insets, anchors, alignment, fonts, colors, line settings, image aspect ratio, and hidden-slide state. Reject zero or negative geometry before adding an object.要点拆解从空白版式开始builder 不使用模板克隆从 blank slide layout 出发。Inches(...)映射全部 bbox契约中的英寸值直接映射为python-pptx的Inches(...)度量。显式设置每一项换行wrapping、禁用自动缩放disabled auto-size、文本内边距insets、锚点anchors、对齐alignment、字体、颜色、线条设置、图片宽高比、隐藏页状态全部显式写入不依赖渲染器推断。几何前置校验添加对象前拒绝零或负几何。这一点与插件边界一致README.md 明确说明插件只会在用户请求 PPTX 时创建一个任务级task-specific的小型python-pptxbuilder不内置通用渲染器、不克隆模板、不需要浏览器、不依赖 MCP 服务器或在线服务。而 pptx-deck-creation-builder.md 将layout_tree定义为唯一事实来源source of truth要求标题、解释、标签、指标、表格、图表与图示都必须使用原生nativePPTX 对象图片只是辅助视觉supporting visuals绝不允许用整页图片充当幻灯片的核心内容。禁用 auto-size与契约的定位直接呼应正因为 auto-size 会让渲染器自行缩放文字契约要求关闭它让最终几何完全由 JSON 决定从而保证审计后无任何渲染器可篡改布局。Repair order契约被破坏后的四级修复顺序当审计发现契约与实际几何不一致时必须按以下顺序修复layout-contract.md 的 Repair order 一节移动或调整 bbox、改变 z 序、或拆分内容过密的幻灯片Move or resize bboxes, change z-order, or split a dense slide。缩短文案或放大可用的文字 bboxShorten copy or enlarge the available text bbox。仅在万不得已时才改变字号内容字号永不低于 9 ptChange type size only as a last resort; content never drops below 9 pt。重新构建并将实际对象边界与契约比对Rebuild and compare actual object bounds with the contract。这一顺序体现了明确的设计优先级几何与内容优先字号是最后的杠杆。原因很直接——字号是排版的全局杠杆一旦降低会影响整页的层级与可读性而移动 bbox、缩短文案是局部、低风险的修复。第 4 步则强调修复不是一次性的改完必须重建并重新比对形成一个审计 → 修复 → 重建 → 再审计的闭环。该闭环在pptx-quality-gates技能中得到完整承接SKILL.md 的 Workflow 第 7 步即Repair the spec or task-local builder, rebuild, and rerun the same checks修复规范或任务级 builder重建并重跑同样的检查并将确定性失败视为待修复的工作repair work而非异常。构建后审计用实际几何回读校验契约契约的最终验证发生在构建之后。pptx-quality-gates技能SKILL.md要求Reopen the PPTX and compare slide count, actual bounds, hidden slides, and requested geometry with the layout tree.即重新打开生成的 PPTX将实际幻灯片数、实际对象边界、隐藏页状态、请求的几何与layout_tree逐一比对。这要求审计工具能够从 OOXML 包中读出真实坐标——仓库中的 validate_package.py 正是这一类只读校验工具的实现样例它负责 OOXML 包完整性验证其validate()函数会检查XML 良构性所有.xml/.relspart 均可被解析。内容类型[Content_Types].xml必须存在且每个ppt/slides/slide*.xml都必须有正确的 slide content type override。内部关系完整性每个内部关系Relationship的目标必须存在且不越界。幻灯片顺序唯一性presentation.xml中sldId不得重复且必须引用有效的 slide 关系。孤儿 part 告警未被任何内部关系引用的ppt/media/与 notesSlide 会被标记为告警。在pptx-quality-gates的 Workflow 第 4 步中生产级数据包要求运行该脚本并保存 JSON 报告audit-checklist.md 的After build部分则将其列为第 13 项检查修复畸形 XML、断裂的关系、内容类型缺口与重复的 layout 链接并对接受的告警做文档化。通过Pass标准什么样的契约算合格pptx-quality-gates技能定义了明确的通过标准SKILL.md 的 Pass criteria 一节Zero content collisions, text overflows, unsafe content bounds, invalid positive geometry, and package-integrity errors. Meaningful slide content must remain native editable objects; images support rather than replace it.即零内容碰撞、零文字溢出、零不安全内容边界、零非法正几何、零包完整性错误且有意义的内容必须是原生可编辑对象图片只是辅助。若无法完全通过则每个例外都必须记录幻灯片 id、对象 id、原因、负责人与复审日期见 audit-checklist.md 的结尾要求。其中内容碰撞的判定公式在 audit-checklist.md 的 Build 前第 1 项中给出A.x B.x B.w B.x A.x A.w A.y B.y B.h B.y A.y A.h当该四条件同时成立时两个内容 bbox 即发生重叠属于必须修复的确定性失败。而文字容量检查则提示预估可能溢出的内容应缩短、缩放或拆分且对于CJK/全角文本每行可容纳字符数估算减半halve estimated characters-per-line for CJK/full-width text——这一条对中文 PPTX 的实战排版尤为重要。配套技能与文件索引Layout Contract 是pptx-slide-specification技能的压缩模式参考它与同一插件下的其他技能协同构成完整的 spec-first 工作流layout-contract.md本文讲解的契约本体紧凑 schema 与修复指引。SKILL.md技能的完整要求包括 Required contract、Authoring rules 与 Build contract。audit-checklist.md构建前 10 项 构建后 4 项的手动审计清单。SKILL.md质量门禁工作流、必备工件与通过标准。validate_package.py只读 OOXML 包完整性校验脚本。design-profiles.mdsummary.design_context可引用的设计档案。asset-guidance.md图片出处、放置、SVG 与信息图约束。pptx-deck-creation-builder.md负责创建、修复与审计数据包的 Agent 及其非协商规则。小结Layout Contract 把 PPTX 制作从渲染器自由发挥转变为坐标显式契约 事后几何回读的闭环summary.layout_policy锁定安全边距、内容下界、页脚上界与最小间隙slides[].layout_tree用英寸 bbox、显式样式与 z 序声明每一页的最终形态builder 从空白版式出发用Inches(...)映射全部坐标并禁用 auto-size构建后通过回读实际边界、运行 OOXML 校验与逐项审计清单验证契约成立一旦失败则按调几何 → 缩文案 → 降字号不低于 9 pt→ 重建再比对的顺序修复。掌握这份契约你就能写出可被审计、可被重建、且保持原生可编辑性的 PPTX 坐标规范。【免费下载链接】agentsMulti-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity项目地址: https://gitcode.com/GitHub_Trending/agents24/agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/9 23:54:07

如何用3条命令让游戏队友P2P直连?ZeroTier One虚拟网络实战

如何用3条命令让游戏队友P2P直连?ZeroTier One虚拟网络实战 【免费下载链接】ZeroTierOne A Smart Ethernet Switch for Earth 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne ZeroTier One 是一个免费开源的虚拟网络工具,能把不…

2026/11/10 13:13:36

重庆600万栋带高程建筑矢量数据处理与三维建模实战

简介:本资源为2023年重庆市全域建筑物矢量SHP数据集,面向GIS工程师、城市规划研究者及遥感地理信息专业学习者,支撑三维建模、日照分析、热岛效应评估、城市扩张监测等空间分析任务。数据覆盖重庆全市域,含超600万栋建筑物&#x…

2026/11/10 15:04:51

湖南省电工证的培训保姆级教程:避开中介陷阱,手把手教你报名

湖南省电工证的培训保姆级教程:避开中介陷阱,手把手教你报名 不知道去哪报名怕被中介坑?现在考电工证,很多人一上来就找培训机构,结果被各种“包过”“速成班”套路。别急,这篇【湖南省电工证的培训保姆级教程】专为像你这样在南阳的在职建筑工人量身打…

2026/11/10 15:04:51

西安电工证 培训机构报名费多少钱

西安电工证培训机构报名费多少钱,学历不高也能报名 我去年在西安一家工地干电工,学历只有初中毕业,想着考个电工证好歹能多条出路,结果一打听, 西安电工证培训机构报名费多少钱…

2026/11/10 15:04:51

低压电工证规范全称实操考试考什么 真实经历告诉你怎么过

低压电工证规范全称实操考试考什么 真实经历告诉你怎么过 你是不是也担心学历不高报不了低压电工证?我之前就因为没上过大学,差点放弃了考证机会。后来我才知道,低压电工证规范全称是《特种作业操作证(低压电工作业)》,只要符合报名条件,学历高低并不…

2026/11/10 15:04:51

东莞低压电工证机构千万别踩坑,应届生这样报名最靠谱

东莞低压电工证机构千万别踩坑,应届生这样报名最靠谱 你是不是正愁找不到靠谱的东莞低压电工证机构,怕被中介骗钱?又或者你是一个郑州的应届工程类毕业生,想尽快拿到低压电工证,但又对报考流程一无所知?别急,这篇文章就是为你准备的,…

2026/11/10 14:59:51

电工证密押卷官方回应:怕考不过白交培训费?真相在这

电工证密押卷官方回应:怕考不过白交培训费?真相在这 你交了培训费,刷了题库,还报了密押卷,最后还是没过电工证考试?这事儿在新乡不少第一次报考的学员身上都发生过。别急,官方回应来了, 郑州市应急管理局…

2026/11/10 8:12:38

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/10 0:01:28

学历不高怕报不上名?考电工证报名费+网上查询全攻略来了

学历不高怕报不上名?考电工证报名费+网上查询全攻略来了 你是不是也担心自己学历不高,考电工证报名费太贵,根本报不上名?别急,今天就来给你讲讲,怎么用最少的钱,把证拿到手,还能在工地上多挣点钱。 电工证报名费多少钱?网上查询是关键…

2026/11/10 0:01:29

绍兴考电工证培训机构怎么选?2026河南最新政策别错过

绍兴考电工证培训机构怎么选?2026河南最新政策别错过 怕考不过白交培训费?你不是一个人。2026河南最新政策出台,对电工证考试、报名、培训、复审都有明确规定。选择绍兴考电工证培训机构,别再踩坑,下面一步步教你避坑。…

2026/11/9 6:30:27

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑