mcpField
P
pptx-posters

pptx-posters

github.com/kalarislabs其他7343 次安装4 天前更新
代码仓库

关于 pptx-posters

pptx-posters 是一项技能,可根据经批准的本地 JSON 清单生成可编辑的单页 PowerPoint 海报。它面向需要追溯内容来源、检查素材与版式,并在生成前明确审批的科研海报流程。

主要功能

  1. 01根据严格 JSON 生成单页 PPTX
  2. 02验证来源、素材、哈希和审批状态
  3. 03检查图像元数据、对比度和导出计划
  4. 04检查文件包安全性与幻灯片布局
  5. 05要求人工复核无障碍性和印刷效果

适用场景

  1. 01根据获批内容制作可编辑科研海报
  2. 02生成海报前验证本地图像素材
  3. 03发布前审计海报文件包和版式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill pptx-posters

安装后在 Claude Code 中输入/pptx-posters确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
generation_dependencies.json
poster_manifest_template.json
poster_quality_checklist.md
references/
manifest_spec.md
poster_content_guide.md
poster_design_principles.md
poster_layout_design.md
pptx_security.md
security_validation.md
source_ledger.md
scripts/
_common.py
_manifest.py
_pptx.py
check_layout.py
check_palette.py
generate_poster.py
inspect_pptx.py
inventory_images.py
plan_export.py
validate_manifest.py

详细介绍

PPTX 海报

适用范围

仅当请求的来源/交付物是可编辑的 PowerPoint 海报时,才使用此技能。不要仅仅因为 PowerPoint 可用,就将未明确说明的海报请求导向此处。

2.0 版根据严格的本地 JSON 生成真正的单页 .pptx 文件。它不使用 HTML 转换、外部模板、示意图/图像生成服务、API 密钥、环境文件、网络请求或强制性的图形样式。

硬性门槛

任何门槛未满足时,都应停止,而不是猜测:

  1. 作者尚未提供准确的海报内容和来源记录。
  2. 任何声明、数字、引文、作者、所属机构、资助声明、图表、许可证或 QR 目标尚未确定。
  3. 尚未确认当前会议和打印供应商的要求。
  4. 作者批准尚未绑定到当前清单内容哈希。
  5. 资源位于远程位置、清单目录之外、没有哈希或未经批准。
  6. 输入文件为 .pptm、包含宏/外部关系/OLE/嵌入文件,或属于不可信模板。
  7. 请求的工作流需要自动打开或执行 PowerPoint。
  8. 脚本报告了软件包、版式、DPI、对比度或输出计划方面的阻塞问题。

绝不捏造缺失材料,也不要留下看似可信的占位内容。草稿一律无法通过检查。

安装指定的生成依赖项

在技能目录中:

uv venv
uv pip install "python-pptx==1.0.2" "Pillow==12.3.0" "lxml==6.1.1"

生成必须使用以下依赖项,且仅限以下依赖项:

python-pptx==1.0.2
Pillow==12.3.0
lxml==6.1.1

所有 CLI 都使用延迟加载的可选导入,因此无需安装这些软件包,python -B scripts/<tool>.py --help 也能正常运行。使用 -B 可避免生成字节码文件。

排版前明确要求

分别记录以下内容:

  • 印刷裁切尺寸的宽度/高度和方向;
  • 每条边的出血;
  • 裁切范围内的安全边距;
  • PowerPoint 画布宽度/高度;
  • 实体画板/画布的统一印刷缩放比例;
  • 会议的最大尺寸和交付格式;
  • 打印供应商的裁切、出血、边距、缩放、色彩模式和打样要求;
  • 最终输出的字体和光栅 DPI 阈值,并注明各项是经验估算值还是依据确切来源。
  • 所需字体、工作站是否可用、是否允许嵌入,以及字体替换/打样工作流。

海报没有统一的尺寸。Microsoft 目前将每个自定义 PowerPoint 尺寸限制为 1–56 英寸,并且所有幻灯片使用同一尺寸。如果实体画板更大,只有在打印供应商确认缩放后,才能使用按比例缩小的画布。

阅读 references/poster_layout_design.md。

构建清单

将 assets/poster_manifest_template.json 复制到项目中。模板在所有替换标记、false 确认项和草稿批准项都解决之前,刻意保持无效。

遵循 references/manifest_spec.md 和 references/poster_content_guide.md。

清单要求:

  • 为文档元数据、每个元素和每项资源指定准确的来源 ID;
  • 每个来源均设置 author_verified: true;
  • 每个元素和资源均设置 author_approved: true;
  • 使用本地 PNG/JPEG 路径和小写 SHA-256 哈希;
  • 为每张可选图片提供准确的来源信息和许可证/许可;
  • 提供经批准的替代文本,并在需要时提供绑定来源的原生详细说明;
  • 明确阅读顺序和设计矩形;
  • 为每张本地 QR 图片提供可见且准确的备用 URL/文本;
  • 确认会议/打印供应商规则;
  • 声明 sRGB 对比度配对和冗余数据编码;
  • 批准绑定到规范化后的清单内容。

所有非批准字段都通过检查后,获取内容哈希:

python -B scripts/validate_manifest.py poster.json \
  --print-content-hash

将准确的清单和哈希提供给作者。然后将 approval.status 设为 approved,记录批准人和带时区偏移的时间戳,并复制哈希。任何非批准字段的编辑都会使批准失效。

验证已批准的清单和本地资源:

python -B scripts/validate_manifest.py poster.json

生成前审核素材和调色板

python -B scripts/inventory_images.py poster.json \
  --output poster.assets.json

python -B scripts/check_palette.py poster.json \
  --output poster.palette.json

python -B scripts/plan_export.py poster.json \
  --output poster.export-plan.json

有效 DPI 是像素数除以最终放置尺寸(英寸),而不是图像元数据中的 DPI。 清单会完整解码有界图像,并屏蔽 EXIF/XMP/注释和嵌入的 文本/应用程序元数据; 请离线清除这些内容,然后重新计算哈希并重新批准素材。 对比度采用 WCAG 2.2 sRGB 数学方法;将这些数值用于实体海报是 设计目标,并不代表单独的合规性声明。请保留通过颜色以外方式区分的标签、 标记、形状、图案或线条样式。

如果打印机要求 CMYK,则在获得打印机批准的转换/配置文件和校样之前, 计划会阻止打印就绪。不要声称原生 PowerPoint PDF 符合 CMYK 要求。

阅读 references/poster_design_principles.md。

生成 PPTX

使用新的输出路径:

python -B scripts/generate_poster.py poster.json \
  --output poster.pptx \
  --report poster.generation.json

生成过程:

  • 创建新的空白演示文稿;绝不加载用户模板;
  • 在添加内容前设置已批准的画布;
  • 使用一个原生标题占位符、原生文本框和本地图片;
  • 使用 contain 适配方式保持图像纵横比;
  • 禁用文本自动缩小;
  • 按已批准的阅读顺序添加元素;
  • 将已批准的图片替代描述和明确的文本语言写入 PresentationML;
  • 不嵌入字体、音频、视频、OLE、ActiveX、链接或其他媒体;
  • 移除默认打印机设置二进制数据并规范化包时间戳;
  • 在替代文本修补前后检查包;
  • 拒绝重叠、超出边界的形状、最终字号/DPI 过低、不安全的包以及已存在的目标路径。

生成过程会严格按清单呈现文本。它不会编写、总结、研究或更正科学内容。

运行最终技术审核

python -B scripts/inspect_pptx.py poster.pptx \
  --output poster.package.json

python -B scripts/check_layout.py poster.pptx \
  --manifest poster.json \
  --output poster.layout.json

包检查器仅读取有界 ZIP 元数据和选定的 XML。它绝不解压成员,也不打开/执行演示文稿。它会拒绝:

  • 所有非 .pptx 扩展名文件,包括 .pptm;
  • 不符合有界单页生成器配置的包;
  • 宏/VBA、ActiveX、自定义 UI、OLE、嵌入式、可执行和二进制部件;
  • 所有外部关系,包括远程链接图片和超链接;
  • 不安全/重复的 ZIP 路径、符号链接、加密、过度扩展以及过高的压缩比;
  • 格式错误或包含实体的受检 XML;
  • 缺少内部关系目标的文件。

阅读 references/pptx_security.md。

PowerPoint 手动检查与无障碍审核

自动化无法认证无障碍性、文本呈现或科学准确性。 请在完全修补的 PowerPoint 中:

  1. 仅打开生成且技术审核合格的文件。
  2. 运行“审阅”>“检查辅助功能”。
  3. 检查“阅读顺序”窗格和对象名称。
  4. 审查所有替代文本和原生长描述。
  5. 测试键盘和屏幕阅读器导航。
  6. 确认字体已安装/获授权;检查嵌入选项、字体替换、字形、公式、溢出、对比度和所有边缘。
  7. 确认颜色绝不是唯一的编码方式。
  8. 测试每个 QR 码及其可见的备用 URL/文本。
  9. 请作者批准所有内容和引文。

Microsoft 关于幻灯片 18 pt 的建议并非通用的海报最小字号。请依据清单中标注的基准和校样,评估最终实体输出中的字号。

导出和打印

使用已批准的导出计划。需要 PDF 时,请从审核过的 PowerPoint 中以“标准/高打印质量”而非“最小文件大小”导出。

独立核验 PDF:

  • 页面/画板尺寸、方向、裁切和出血;
  • 是否按要求输出为单页;
  • 字体、裁切、字形、公式和图像重采样;
  • 标签、阅读顺序、替代文本、语言和链接;
  • RGB/CMYK 转换和实体颜色校样;
  • 会议命名、文件大小和上传规则。

打印缩小比例的校样,并获取打印机要求的校样。任何更改后都要重新运行所有检查。

使用 assets/poster_quality_checklist.md 完成发布签核。

捆绑的 CLI

  • validate_manifest.py — 严格的内容/来源/审批验证器。
  • generate_poster.py — 精确固定版本的本地 PPTX 生成器。
  • inspect_pptx.py — 非执行式 ZIP/XML 安全检查器。
  • check_layout.py — 边界、重叠、阅读顺序和最终字体检查器。
  • inventory_images.py — 资源哈希/元数据/有效 DPI 清单。
  • check_palette.py — WCAG 对比度和启发式调色板报告。
  • plan_export.py — 尺寸、缩放、字体、颜色、媒体、导出和打印预检。

参考资料

  • references/manifest_spec.md
  • references/poster_content_guide.md
  • references/poster_design_principles.md
  • references/poster_layout_design.md
  • references/pptx_security.md
  • references/security_validation.md
  • references/source_ledger.md

Agent 操作流程

  1. 检查环境。 确认数据来源、每个图表必须传达的信息,以及目标媒介(期刊、海报、幻灯片)。
  2. 明确输入。 确认数据或用户提供的格式、标识符和参数。对于任何会改变结果的值,先询问,不要猜测。
  3. 先运行小规模版本。 以最终尺寸渲染一个图表,并在生成完整图表集之前检查其可读性。
  4. 使用上述说明和参考资料执行完整任务。
  5. 验证结果。 坐标轴、单位和误差条均已标注和定义;颜色适合色盲人士辨识;数值与底层数据一致。
  6. 报告。 说明运行了什么(版本、命令、参数)、检查了什么,以及仍有哪些不确定之处。
如果发生这种情况请这样做
最终尺寸下文字无法辨认增大字号或简化面板,而不是缩小文字。
这些说明中的函数、标志或端点在已安装版本中不存在查看已安装版本自身的文档(help()、--help、官方文档),进行适配并告知用户。切勿编造 API。
必需的输入、标识符或参数存在歧义询问用户,或在运行之前明确说明假设。

完整性规则

  • 切勿捏造结果、参数、标识符、引文或统计数据。如果无法运行或验证某项内容,请明确说明。
  • 切勿为了改善图表外观而更改数据;应统一应用图像调整并予以披露。
  • 此处与版本相关的细节可能已过时:请对照已安装版本的官方文档进行确认。
  • 对于需要花费资金、占用共享 GPU 或云配额、涉及个人或患者数据,或无法撤销的操作,务必先征得同意。

相关技能

  • scientific-slides:为研究报告构建幻灯片和演示文稿。
  • latex-posters:使用 beamerposter、tikzposter 或 baposter 通过 LaTeX 制作研究海报,涵盖页面尺寸(A0、A1、36x48 英寸)、多栏布局……
  • presenting-conference-talks:根据编译后的论文生成会议演示幻灯片(Beamer LaTeX PDF 和可编辑 PPTX),并附带演讲者备注和演讲稿。

评论

支持 Markdown