scientific-agent-skills 的 pptx-posters 发布检查清单从作者批准到打印签署的十步守门流程【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills导读本指南以scientific-agent-skills仓库中 pptx-posters skill 的发布质量检查清单poster_quality_checklist.md为主线完整讲解科研海报.pptx从生成到打印前必须通过的 10 个质量关卡需求与批准、安全生成、包安全、尺寸与出血、布局排版、图像资产、色彩可访问性、PowerPoint 可访问性、导出打印与最终签署。读完本文你将掌握每个检查项的判定标准、配套的 7 个 CLI 审计命令以及这些检查在仓库源码层面的实现依据能够为学术会议海报建立一条可复现、可追溯、可问责的发布流水线。一、清单定位脚本检查是必要而非充分条件该清单位于 skills/pptx-posters/assets/poster_quality_checklist.md服务于pptx-postersskill 的发布签署环节。skill 本身以「严格本地 JSON 清单manifest 宏安全 .pptx 生成 多维自动审计 人工复核」为核心约束SKILL.md 中明确写了八个硬性门槛hard gates内容来源未确认、会议/打印要求未确认、作者批准未绑定内容哈希、存在远程或未哈希资源等任一情况都必须停止而不是猜测且草稿失败关闭drafts fail closed。清单开头有一句关键定性脚本检查是必要但不充分的A script pass is necessary but not sufficient。也就是说validate_manifest.py、inspect_pptx.py等命令全部通过只是前提最终仍需要作者、可访问性评审人、打印方三方的确认。这一理念贯穿全部十个章节——每条检查项要么由脚本强制要么明确标注自动化无法判定、必须人工复核。二、第 1 关需求与批准Requirements and approval目的在进入任何布局与生成之前锁定组织方规则、打印方规则、内容来源、作者批准四类事实且每一条都必须有精确的来源 IDexact source ID禁止用通用标准海报尺寸替代实际规则。检查项包括组织方当前海报规则已记录且带精确来源 ID打印方当前的裁切trim、出血bleed、安全边距safe-margin、缩放、文件格式与色彩要求已记录且带精确来源 ID所选物理裁切尺寸与方向与上述记录一致没有用通用标准海报尺寸替代组织方/打印方规则每条论断、数字、引用、作者姓名、单位、Logo、图、资源许可均有精确来源 ID每条来源记录标记为作者已验证author-verified每个元素与资源标记为作者已批准author-approved没有遗留占位符、示例论断、编造引用或推断结果批准作者在最终编辑后复核了规范内容哈希canonical content hash。执行命令python -B scripts/validate_manifest.py poster.json源码支撑这些检查由 validate_manifest.py 与 _manifest.py 实现。从 _common.py 源码可以看出其fail-closed细节_PLACEHOLDER_PATTERNS会递归扫描整个 JSONhas_placeholder遍历$根节点下的每个字符串匹配TODO/TBD/FIXME/REPLACE_ME/PLACEHOLDER/title等占位符并给出精确的 JSON 路径canonical_json_hash用sort_keysTrue, separators(,,:)生成规范化的 SHA-256保证内容哈希与字段顺序无关parse_aware_datetime要求批准时间戳必须是带 UTC 偏移的 ISO 8601杜绝无时区的模糊记录load_json_file拒绝重复 JSON 键与非有限数字防止结构层面的歧义。批准的流程是先以--print-content-hash拿到哈希交给作者作者批准后把approval.status置为approved并记录批准人、时间戳与哈希任何非批准字段的修改都会使批准失效。poster_manifest_template.json 中的sources数组默认三条记录conference_rule、printer_rule、author_content且author_verified均为false模板被刻意设计为默认不合法直到每个字段被真实填写。三、第 2 关安全的本地生成Safe local generation目的确保 .pptx 完全由受控的本地工具链生成不使用任何模板、远程图片、下载、API 密钥、环境文件或网络服务。检查项包括生成使用了 generation_dependencies.json 中的精确版本所有可选图片路径均为清单相对manifest-relative的本地 PNG/JPEG 文件每个资源哈希匹配每个资源有精确出处与许可/授权声明未使用任何模板文件、远程图片、URL 下载、API 密钥、环境文件、图像生成服务或网络服务输出路径是全新的未覆盖任何已有文件生成文件是.pptx绝不是.pptm。执行命令uv run --with python-pptx1.0.2 --with Pillow12.3.0 \ --with lxml6.1.1 \ python -B scripts/generate_poster.py poster.json --output poster.pptx源码支撑依赖锁定在 generation_dependencies.jsonpython-pptx1.0.2、Pillow12.3.0、lxml6.1.1。三个防覆盖、防逃逸的底层机制都在 _common.pychecked_output_file拒绝已存在目标、符号链接目标与符号链接父目录保证绝不覆盖已有文件atomic_write_bytes通过同目录私有临时文件private_temp_file设置 0600 权限写入、fsync落盘后以os.link原子发布commit_temp_file且发布前再次检查目标存在性resolve_local_asset拒绝带 scheme 的路径正则^[A-Za-z][A-Za-z0-9.-]*:、绝对路径、反斜杠与..段并要求最终解析结果必须落在清单所在目录内从路径层面杜绝远程 URL 与目录穿越。四、第 3 关PPTX 包安全PPTX package security目的把生成的 .pptx 当作潜在不可信包进行静态审计绝不通过在 PowerPoint 里打开看看来修复问题。检查项包括ZIP 成员名无目录穿越、无绝对路径、无符号链接、无重复、无加密、无超大条目、无过度膨胀比包具有标准无宏 PresentationML 内容类型包符合严格生成的一页单版式one-slide部件画像无 VBA、ActiveX、OLE、内嵌包、可执行/二进制负载、外部链接部件或自定义 UI无任何TargetModeExternal的关系无远程链接图片内部关系目标均能解析到存在的包部件演示文稿以 ZIP/XML 方式被检查检查脚本未打开或执行它。执行命令python -B scripts/inspect_pptx.py poster.pptx任何包级发现都是发布阻断项release blocker。不要通过在 PowerPoint 中打开不可信包来修复它。源码支撑该工具位于 inspect_pptx.py核心实现在 _pptx.py。SKILL.md 明确检查器只读取有界 ZIP 元数据与选定 XML从不解压成员、从不打开或执行演示文稿并拒绝非.pptx扩展名含.pptm、超出单页生成画像的包、宏/VBA/ActiveX/自定义 UI/OLE/内嵌/可执行/二进制部件、一切外部关系含远程链接图片与超链接、不安全或重复的 ZIP 路径、符号链接、加密、过度膨胀、畸形或带实体entity-bearing的 XML、缺失的内部关系目标。这一关卡保障了只审计、不触发的安全边界。五、第 4 关尺寸、缩放、出血与边距Dimensions, scale, bleed, and margins目的严格区分PowerPoint 画布物理裁切尺寸最终版面artboard三个概念并核实缩放、出血与安全边距。检查项包括PowerPoint 画布宽高各自处于当前 1–56 英寸范围内最终物理裁切尺寸与画布尺寸分开记录最终版面尺寸在每个轴上包含两倍已确认出血画布与最终版面宽高比一致统一打印缩放是显式的禁止非均匀拉伸若最终输出相对 PPTX 画布缩放需记录打印方许可所有非出血内容保持在裁切边向内确认的安全边距之内满版出血full-bleed图像到达版面边缘且不把文字推进出血区实体或合同样张contract proof确认裁切与出血行为。执行命令python -B scripts/plan_export.py poster.json源码支撑plan_export.py 在 _common.py 中定义的PPTX_MIN_INCHES 1.0、PPTX_MAX_INCHES 56.0是硬边界报告中的powerpoint_constraints还会输出提示物理裁切尺寸、PowerPoint 画布尺寸、输出版面尺寸是三件事由清单中的会议与打印记录决定交付而不是某个通用海报预设。缩放逻辑上print_scale等于最终版面/画布的统一比例abs(print_scale - 1.0) 1e-6时报告要求以精确百分比统一缩放、禁止非均匀 fit-to-pagebleed_in 0时追加人工动作要求与打印方确认裁切处理——因为 PowerPoint 本身不提供印刷预检能力。颜色模式上CMYK_CONVERSION_REQUIRED是硬阻断项PowerPoint 是 RGB 创作流程若打印方要求 CMYK必须取得打印方认可的转换/配置与样张工具绝不宣称原生 PPTX/PDF 符合 CMYK。六、第 5 关布局与排版Layout and typography目的在最终物理输出尺度上评估布局与字号而不是只看 PPTX 画布上的效果。检查项包括无形状越界每个报告的包围盒重叠要么被移除要么在目视检查后被记录为有意为之无文本框明显溢出、裁剪、意外换行或静默自动收缩auto-shrink字号按最终物理输出评估而非仅在 PPTX 画布上清单把最小字号标注为项目启发式heuristic或绑定到精确的组织方/打印方/来源要求必需字体在导出工作站与打印工作流中可用已评审字体嵌入权限与嵌入/不嵌入工作流生成器本身不嵌入字体已检查字体替换、公式、符号与科学字形在缩小样张尺寸下视觉层级与阅读路径仍清晰。执行命令python -B scripts/check_layout.py poster.pptx --manifest poster.json检查器无法判定渲染后的溢出或字体替换需要在 PowerPoint 与导出的 PDF 中人工检查。源码支撑check_layout.py 通过--manifest或--print-scale二选一提供缩放基准不提供清单时默认--minimum-font-pt-final 18.0但在输出中明确把该基准标记为project_heuristic项目启发式而非来源要求——与清单把最小字号标注为启发式或绑定精确来源的检查项一一对应。当传入清单时它还会追加两条清单级一致性检查CANVAS_MISMATCHPPTX 幻灯片尺寸与已批准清单不符与READING_ORDER_MISMATCH包内形状顺序/命名与清单声明不符报告中的通过标志pass not issues直接决定退出码。注意该工具只分析直接形状包围盒不做渲染因此溢出与字体替换仍属于人工关卡。七、第 6 关光栅图像与资源Raster images and assets目的以最终放置英寸计算有效 DPI并对每个资源的出处、哈希、许可与元数据进行全量建档。检查项包括有效 DPI 由像素尺寸除以最终放置英寸计算而非来自文件元数据每个放置满足清单中标明来源或启发式的 DPI 阈值无图像被拉伸破坏宽高比最终 PDF 与打印样张无重采样伪影资源 ID、哈希、来源 ID、出处、许可/授权与 alt 文本都在清单中EXIF、XMP、注释与内嵌文本/应用元数据已在哈希与批准之前通过作者评审的离线工作流剥离Logo 与图片已被授权用于本次用途。执行命令python -B scripts/inventory_images.py poster.json \ --output poster.assets.json源码支撑inventory_images.py 用 Pillow 完全解码本地 PNG/JPEG并设置MAX_IMAGE_PIXELS 100_000_000像素安全上限把DecompressionBombWarning提升为错误格式限定 PNG/JPEG、多帧动画被禁止、非 RGB/RGBA/L/LA 模式需要作者评审后转换。有效 DPI 计算严格采用像素 ÷ 最终放置英寸先按画布内的contain适配求设计放置尺寸再乘print_scale得到最终尺寸effective_dpi min(dpi_x, dpi_y)低于清单阈值时产生EFFECTIVE_DPI_TOO_LOW阻断。元数据层面exif_entry_count与metadata_keys含 comment/description/exif/iptc/photoshop/software/xmp/xml 等标记任一命中即产生HIDDEN_IMAGE_METADATA要求离线剥离后重新哈希、重新批准。对 QR 码角色报告还会附加一条人工动作必须在最终样张上用多台设备实测且可见的备用 URL 要作为独立文本存在。八、第 7 关色彩与图形可访问性Color and graphical accessibility目的以 WCAG 2.2 的 sRGB 数学为筛选工具同时坚持颜色绝不作为唯一信息编码。检查项包括正常文本对满足 WCAG 2.2 SC 1.4.3 的 4.5:1大文本仅在最终字号至少 18 pt或至少 14 pt 且加粗时按 3:1 处理当以 WCAG 2.2 SC 1.4.11 为设计目标时关键图形对象满足 3:1 非文本对比度筛选信息绝不只靠颜色编码类别同时使用直接标签、形状、标记、图案或线型调色板选择符合数据类型定性qualitative、顺序sequential或发散diverging灰度/色觉缺陷模拟作为筛选手段评审不视为可访问性证明色彩样张确认打印方的转换与承印物行为。执行命令python -B scripts/check_palette.py poster.json源码支撑check_palette.py 的阈值表THRESHOLDS {normal_text: 4.5, large_text: 3.0, non_text: 3.0}与 WCAG 2.2 SC 1.4.3/1.4.11 对应。对比度计算在 _common.py 中完整实现了 sRGB 线性化_linear_channel、相对亮度relative_luminance系数 0.2126/0.7152/0.0722与对比度公式(L10.05)/(L20.05)同时输出所有颜色对的两两对比度与 CIE L* 灰度差异grayscale_delta_lstar作为筛选数据。报告明确声明这些数值用于屏幕筛选不是色觉可访问性认证必须保留直接标签与形状/标记/图案/线型等冗余编码。清单侧poster_manifest_template.json 的palette结构要求声明contrast_pairs前景/背景/用途与data_series_redundant_encoding布尔值把冗余编码固化为清单事实。九、第 8 关PowerPoint 可访问性PowerPoint accessibility目的针对在 PowerPoint 中实际打开文件的终端用户逐项人工验证可访问性。检查项包括每张图片有简洁、准确、传达用途的 alt 文本复杂图形在 alt 文本与邻近正文不足时有经批准的、绑定来源的原生长描述native long description重要文本是原生文本而不只是图片内的像素可见标题是原生幻灯片标题占位符文本语言正确Reading Order 窗格与预期逻辑顺序一致PowerPoint 辅助功能检查器Accessibility Checker无未解决的错误键盘与屏幕阅读器通过确认实际阅读顺序文本链接有有意义的可见标签每个 QR 码在可见备用文本中给出精确目标 URL每个最终打印 QR 码已用多台设备实测语言、作者名、缩写、标题说明与表格替代内容正确。清单特别注明自动化 XML 检查无法认证这些人工检查Automated XML inspection cannot certify these manual checks。执行上下文SKILL.md 中的人工 PowerPoint 与可访问性关卡给出了操作路径只打开生成的、技术上已干净的 .pptx → 运行 Review Check Accessibility → 检查 Reading Order 窗格与对象名 → 复核全部 alt 文本与原生长描述 → 键盘/屏幕阅读器导航测试 → 确认字体安装与许可、替换、字形、公式、溢出、对比度与全部边缘 → 验证颜色不是唯一编码 → 实测每个 QR 码及其可见备用 URL → 取得作者对全部内容与引用的签署。值得一提的是SKILL.md 提醒微软的 18 pt 幻灯片建议并非普适海报下限应依据清单标注的依据与样张在最终物理输出上评估字号。十、第 9 关导出与打印Export and print目的让交付物真正满足会议提交格式 打印方生产要求两个外部约束。检查项包括导出使用 PowerPoint 的 Standard/高打印质量而非 Minimum size生成后未引入音频、视频、链接媒体、OLE、ActiveX、内嵌文件或外部关系导出的 PDF 页面尺寸等于打印方预期的最终版面导出的 PDF 被独立检查标签、阅读顺序、alt 文本、链接、字体、裁剪、图像质量与页面尺寸RGB 与任何打印方要求的 CMYK 转换相区分若要求 CMYK打印方批准的转换/配置与样张已完成原生 PowerPoint 导出不被描述为符合 CMYK满足会议文件格式、命名、文件大小与提交规则满足打印方截止日期、承印物、装裱、交付与备份要求。源码支撑plan_export.py 输出blockers与manual_actions两个关键数组ready_for_manual_export not blockers直接决定命令退出码。交付格式为PDF或PDF_AND_PPTX时追加用 Standard/high 打印质量导出与独立核验 PDF 页面尺寸/字体/标签/链接/图像质量的人工动作OTHER格式则产生DELIVERY_FORMAT_REVIEW阻断要求先取得组织方工作流。此外报告把fonts_embedded_by_generator固定为False并附带提示PresentationML 中的字体名不证明可用性、可嵌入性或正确渲染——这与导出 PDF 必须人工复核字体/字形的检查项互为印证。仓库测试目录 tests/pptx-posters含test_generation_smoke.py、test_scripts.py、test_static.py与 synthetic_posters.py 合成海报生成器也覆盖了这些脚本的冒烟与静态行为可作为本地回归验证的参考。十一、第 10 关最终签署Final sign-off目的把所有证据收拢归档并把变更定义为一条完整重跑闭环。检查项包括报告/通讯作者批准了全部科学内容与引用可访问性评审人完成人工检查打印方或生产联系人批准了尺寸、出血、缩放与色彩已批准的清单、PPTX 哈希、资源清单、审计报告、导出 PDF 与样张一起保留归档任何最终变更都会触发新的内容哈希、新的作者批准、重新生成、重新导出并重跑全部检查。这一条把整个流程串成了可追溯的闭环批准绑定哈希 → 变更必然失效 → 一切重来。结合 SKILL.md 的硬性门槛例如作者批准未绑定当前清单内容哈希即停止可以明确这份清单不是一次性检查表而是每次发布都从第 1 关重新执行的守门协议。十二、总结把检查清单接入发布流水线以 SKILL.md 描述的完整流程为参考发布流水线可以归纳为四段批准前填写 poster_manifest_template.json来源 ID、author_verified/author_approved、本地资源哈希、会议/打印规则、调色板与冗余编码声明用validate_manifest.py --print-content-hash取哈希交给作者批准生成前审计validate_manifest.py、inventory_images.py、check_palette.py、plan_export.py四连跑处理 DPI、元数据、对比度、缩放/CMYK 阻断项生成与生成后审计以精确依赖uv run执行generate_poster.py --output poster.pptx随后inspect_pptx.py包安全与check_layout.py --manifest poster.json越界/重叠/阅读顺序/最终字号人工与签署PowerPoint 可访问性检查、PDF 独立核验、样张与打印方确认最后按本清单完成十关签署并归档全部证据。任何一步发现阻断项都必须修复 → 重新哈希 → 重新批准 → 重新生成 → 重新审计而不是就地修补。这套以 poster_quality_checklist.md 为核心、以 scripts 目录下 7 个 CLI 为执行器的流程本质上把科研海报可信交付从个人经验变成了可审计的组织能力——这也是本仓库将其作为独立 skill 提供给 AI Agent 的原因。【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考