十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用 pptx-posters 技能生成可编辑、宏安全、可审计的科研会议 PPTX 海报

用 pptx-posters 技能生成可编辑、宏安全、可审计的科研会议 PPTX 海报 用 pptx-posters 技能生成可编辑、宏安全、可审计的科研会议 PPTX 海报【免费下载链接】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技能展开讲解如何仅凭一份经过作者批准、完全本地化的 JSON manifest 与本地 PNG/JPEG 素材生成一张真正可编辑、无宏、通过包安全与无障碍审计的单页 PowerPoint.pptx科研海报。读完本文你将掌握从「建立尺寸需求」到「manifest 构建与哈希绑定审批」「资源/调色板审计」「PPTX 生成」「最终技术审计」再到「人工无障碍检查与导出印刷」的完整链路并能复现仓库中 7 个无网络 CLI 工具的全部用法与退出码语义。技能定位与适用范围pptx-posters是仓库 skills/pptx-posters/SKILL.md 定义的一个 Agent 技能skill核心定位是当请求的交付物是一张可编辑的 PowerPoint 科研/会议海报时才使用它并且要求精确满足物理尺寸、打印机要求、无障碍、来源可追溯与包安全等检查。其 frontmatter 声明了版本 2.1、许可证 MIT、作者 K-Dense Inc.并明确了严格的环境要求Python 3.10、uv精确锁定python-pptx1.0.2、Pillow12.3.0、lxml6.1.1校验与 PPTX ZIP/XML 检查全程本地、无网络最终的 PowerPoint 打开验证、无障碍检查、PDF 导出、打印机与作者评审为人工环节。版本 2.0 及以上的实现是从严格的本地 JSON 直接生成真实的单页 .pptx不使用 HTML 转换、外部模板、示意图/图像生成服务、API 密钥、环境变量文件、网络请求也不强制任何图形风格见 SKILL.md 的 Scope 一节。技能目录下的 7 个 CLI 工具全部实现了这一「严格本地、失败即停止」的设计哲学。硬性闸门不满足即停止绝不猜测技能定义了 8 条硬性闸门Hard gates任何一条未满足都必须停止而非猜测作者未提供精确的海报内容与来源记录任何声明、数字、引用、作者、单位、资助声明、图形、许可证或 QR 目标无法溯源当前的会议与打印机要求未确认作者批准未绑定到当前 manifest 的内容哈希资源是远程的、位于 manifest 目录之外、未哈希或未获批准输入是.pptm或包含宏/外部关系/OLE/嵌入文件或是不可信模板请求的工作流需要在自动化中打开或执行 PowerPoint脚本报告存在包、布局、DPI、对比度或输出计划的阻断项。禁止伪造缺失材料或留下看似合理的占位符草稿以失败关闭fail closed为默认行为。这一点在源码中同样被贯彻validate_manifest.py对占位符 token、未验证来源、未批准元素和虚假确认一律拒绝validate_manifest.py而generate_poster.py在任意一步不满足时抛出CliError并以退出码 2 结束generate_poster.py。安装精确锁定的生成依赖在技能目录下执行uv venv uv pip install python-pptx1.0.2 Pillow12.3.0 lxml6.1.1生成环节严格要求以下精确版本python-pptx1.0.2 Pillow12.3.0 lxml6.1.1这种「精确 pin」是为了保证可复现生成。在 generate_poster.py 中_require_exact_dependencies()会逐一读取已安装发行版的实际版本号只要与期望值不一致就立即报错并给出安装提示。所有 CLI 采用惰性可选导入因此python -B scripts/tool.py --help在没有这些包时也能运行-B用于避免生成字节码__pycache__产物。布局前先建立需求没有通用的海报尺寸在开始排版之前必须将以下项目分开记录SKILL.md 的 Establish requirements before layout 一节物理裁切宽/高与方向orientation每个边缘的出血bleed裁切线内部的安全边距safe marginPowerPoint 画布宽/高统一的物理版面/画布印刷比例print scale会议最大尺寸与交付格式打印机的裁切、出血、边距、缩放、色彩模式与打样要求最终输出的字号与栅格 DPI 阈值每一项都要标注是启发式还是绑定到精确来源所需字体、工作站可用性、嵌入许可以及替换/打样流程。一个关键的工程事实是并不存在通用的海报尺寸。Microsoft 目前将每张自定义 PowerPoint 尺寸限制在 1–56 英寸之间并且所有幻灯片共用一个尺寸plan_export 生成的计划中custom_dimension_range_in: [1.0, 56.0]、all_slides_same_size: True正是该约束的体现见 plan_export.py。如果物理版面更大只有当打印机确认支持缩放时才可以使用按比例缩小的画布。布局设计细节请阅读 references/poster_layout_design.md。构建 manifest把一切内容绑定到来源与审批模板与整体结构将 assets/poster_manifest_template.json 复制进项目。该模板故意无效包含REPLACE_ME_*替换 token、false确认标记和draft审批状态因此无法被意外地生成海报。清单规范请阅读 references/manifest_spec.md 与 references/poster_content_guide.md。Manifest 版本 2.0 要求顶层恰好包含这些键多一个键都会被校验器拒绝而不是静默忽略{ schema_version: 2.0, document: { id: REPLACE_ME_DOCUMENT_ID, title: REPLACE_ME_TITLE, subject: REPLACE_ME_SUBJECT, language: REPLACE_ME_BCP47_LANGUAGE, authors: [REPLACE_ME_AUTHOR], source_ids: [REPLACE_ME_CONTENT_SOURCE_ID] }, canvas: { width_in: REPLACE_ME_POWERPOINT_WIDTH, height_in: REPLACE_ME_POWERPOINT_HEIGHT, background_color: #FFFFFF }, physical_output: { trim_width_in: REPLACE_ME_TRIM_WIDTH, trim_height_in: REPLACE_ME_TRIM_HEIGHT, bleed_in: REPLACE_ME_BLEED, safe_margin_in: REPLACE_ME_SAFE_MARGIN, orientation: REPLACE_ME_ORIENTATION }, requirements: { conference: { confirmed: false, source_id: REPLACE_ME_CONFERENCE_SOURCE_ID, max_width_in: REPLACE_ME_CONFERENCE_MAX_WIDTH, max_height_in: REPLACE_ME_CONFERENCE_MAX_HEIGHT, orientation: REPLACE_ME_CONFERENCE_ORIENTATION, required_delivery_format: REPLACE_ME_DELIVERY_FORMAT, notes: REPLACE_ME_CONFERENCE_NOTES }, printer: { confirmed: false, source_id: REPLACE_ME_PRINTER_SOURCE_ID, trim_width_in: REPLACE_ME_PRINTER_TRIM_WIDTH, trim_height_in: REPLACE_ME_PRINTER_TRIM_HEIGHT, bleed_in: REPLACE_ME_PRINTER_BLEED, safe_margin_in: REPLACE_ME_PRINTER_SAFE_MARGIN, accepted_color_mode: REPLACE_ME_COLOR_MODE, scaling_allowed: false, notes: REPLACE_ME_PRINTER_NOTES } }, quality: { minimum_font_pt_final: REPLACE_ME_FINAL_FONT_THRESHOLD, font_guidance_basis: heuristic, font_guidance_source_id: null, minimum_raster_dpi_final: REPLACE_ME_FINAL_DPI_THRESHOLD, raster_dpi_basis: heuristic, raster_dpi_source_id: null }, palette: { colors: { black: #000000, white: #FFFFFF }, contrast_pairs: [{ id: black_on_white, foreground_color_id: black, background_color_id: white, usage: normal_text }], data_series_redundant_encoding: false }, sources: [ { id: REPLACE_ME_CONFERENCE_SOURCE_ID, kind: conference_rule, citation: REPLACE_ME_CONFERENCE_CITATION, locator: REPLACE_ME_CONFERENCE_LOCATOR, author_verified: false }, { id: REPLACE_ME_PRINTER_SOURCE_ID, kind: printer_rule, citation: REPLACE_ME_PRINTER_CITATION, locator: REPLACE_ME_PRINTER_LOCATOR, author_verified: false }, { id: REPLACE_ME_CONTENT_SOURCE_ID, kind: author_content, citation: REPLACE_ME_CONTENT_CITATION, locator: REPLACE_ME_CONTENT_LOCATOR, author_verified: false } ], assets: [], elements: [ { id: title, type: text, reading_order: 1, x_in: REPLACE_ME_X, y_in: REPLACE_ME_Y, width_in: REPLACE_ME_WIDTH, height_in: REPLACE_ME_HEIGHT, source_ids: [REPLACE_ME_CONTENT_SOURCE_ID], author_approved: false, allow_in_bleed: false, role: title, text: REPLACE_ME_TITLE, font_size_pt_design: REPLACE_ME_DESIGN_FONT_SIZE, font_face: REPLACE_ME_FONT, bold: true, align: left, vertical_align: middle, contrast_pair_id: black_on_white, line_color_id: null, line_width_pt: 0, margin_in: REPLACE_ME_MARGIN } ], approval: { status: draft, approved_by: null, approved_at: null, content_sha256: null } }所有资产路径相对于 manifest 所在目录。校验器会拒绝未知键、重复 JSON 键、非有限数值、远程资产路径、路径逃逸、未批准字段、未解决来源、未使用记录以及常见占位符。顶层对象要点documentid以字母开头language为 BCP 47 风格标签authors为精确的有序作者名。恰好一个 role 为title的文本元素必须与document.title逐字一致且reading_order必须为 1——生成器会把它用作原生 PowerPoint 幻灯片标题占位符而不是普通文本框manifest_spec 与generate_poster.py中existing_shapetitle_placeholder的逻辑一致。canvaswidth_in、height_in为 1–56 英寸的幻灯片尺寸background_color为不透明六位 sRGB 十六进制。这些是设计尺寸不等于物理裁切尺寸。physical_outputtrim_width_in/trim_height_in为最终物理尺寸bleed_in为每边出血safe_margin_in为裁切线内非出血内容的缩进orientation取portrait、landscape或square必须与裁切尺寸吻合。物理版面 裁切 两倍出血且必须与画布共享宽高比。requirements.conference必须确认并提供精确source_id、最大宽高、方向含either、所需交付格式PDF、PPTX、PDF_AND_PPTX或OTHER以及从已验证规则复制或总结的备注物理裁切尺寸必须能放进去对应 source 的 kind 必须是conference_rule。requirements.printer必须确认并提供精确source_id、与physical_output一致的裁切/出血/安全边距、可接受色彩模式RGB、CMYK或PRINTER_MANAGED、是否允许均匀缩放以及描述已确认工作流的备注。若禁止缩放画布与物理版面必须 1:1CMYK 要求不阻止生成可编辑的 RGB PPTX但导出计划会在获得打印机批准的转换/打样前阻断「可印刷」声明对应 source 的 kind 必须是printer_rule。qualityminimum_font_pt_final、minimum_raster_dpi_final等阈值的 basis 取值只有heuristic、source_specific、conference_requirement、printer_requirement四种启发式必须为 null source ID其余 basis 必须绑定精确 source ID所有值作用于均匀缩放后的最终物理输出。palettecolors映射稳定 ID 到不透明#RRGGBBcontrast_pairs每条含id、foreground_color_id、background_color_id和usagenormal_text、large_text或non_text。校验器对正文文本应用 4.5:1、对大号文本/非文本应用 3:1使用large_text的文本元素最终必须至少 18 pt或至少 14 pt 且加粗。data_series_redundant_encoding必须为 true——这是作者关于颜色由标签、形状、标记、图案或线型补充的确认而非自动化认证。sources每条含id、kind、citation、locator、author_verified: true。kind 包括作者内容、出版物、数据集、资产许可、会议规则、打印机规则、机构规则与其他。每个 source 必须被使用每个被引用的 ID 必须存在脚本不解析 URL、DOI 或本地记录。assets数组可为空图、Logo、QR 码都是可选的。有资源时只接受本地 PNG/JPEG每条含id、manifest 相对path、rolefigure/logo/qr_code、小写 SHA-256、精确source_id、许可或权限声明、作者验证的来源/生成记录、精炼的alt_text、author_approved: true以及qr_target仅 QR 资产为非 null 的精确https://URL。文件有大小上限、拒绝符号链接、路径不能逃逸 manifest 目录、哈希必须匹配。所有资源记录必须被放置到海报中同一文件多次放置用一条记录重复资产路径会被拒绝。elements元素按reading_order从 1 开始升序连续排列列表顺序不会被静默改变。每个元素含id、type、reading_order、设计坐标x_in/y_in/width_in/height_in、一个或多个精确source_ids、author_approved: true、allow_in_bleed。所有框必须留在画布上非出血元素必须位于映射到画布的物理安全区内文本永远不允许出现在出血区。文本元素还指定roletitle、authors、affiliation、heading、body、caption、reference、acknowledgement、contact、qr_fallback、other 等、精确text、font_size_pt_design、font_face、bold、水平/垂直对齐、contrast_pair_id、可选的line_color_id、line_width_pt、margin_in。字号在物理缩放后被检查生成时自动缩小文本auto-shrink被禁用。图像元素还指定asset_id、fit: contain、fallback_text_element_id、long_description_element_id。Contain 拟合保持宽高比并居中图像。QR 资产要求正方形框且必须有 role 为qr_fallback、文本包含精确qr_target的回退文本元素其他资产的回退 ID 为 null。long_description_element_id在批准 alt text 加上相邻原生文本足够时为 null复杂图形需要更长说明时它引用一个 role 为body/caption/other的已批准原生文本元素该元素必须在图像之后出现且包含图像用到的全部 source IDQR 资产有可见回退文本因此设为 null。这个引用是结构性的说明是否完整仍须由人来判断。审批与内容哈希在除approval外的所有字段通过校验后获取内容哈希python -B scripts/validate_manifest.py poster.json \ --print-content-hash把这份确切的 manifest 和哈希交给作者审批。作者批准后将approval.status设为approved、记录批准人与带 UTC 偏移的时间戳、并把哈希拷贝进approval.content_sha256。任何非审批字段的编辑都会使批准失效——哈希覆盖除approval外的所有顶层字段使用规范化的排序 UTF-8 JSON 计算。也就是说内容、来源、需求、调色板、坐标或资产元数据的任何改动都会让之前的批准作废。批准后的完整校验会读取并哈希资产、要求已批准python -B scripts/validate_manifest.py poster.json校验模式与退出码--structure-only跳过文件读取/哈希但仍校验路径语法。仅供规划/审计使用绝不可用于生成。--print-content-hash允许 draft 审批状态但不允许占位符、未验证来源、未批准元素或虚假确认。所有 CLI 统一使用退出码0 通过1 审计发现阻断发布的严重问题2 无效输入、不安全输入、缺失依赖或命令错误这一约定在 manifest_spec.md 中有明文且各脚本的CliError处理路径全部遵循。生成前审计资源清单、调色板与导出计划资源清单与有效 DPIpython -B scripts/inventory_images.py poster.json \ --output poster.assets.jsoninventory_images.py用精确 pin 的 Pillow 完整解码有界图像并强制MAX_IMAGE_PIXELS 100_000_0001 亿像素上限、把解压炸弹警告升级为错误、拒绝非 PNG/JPEG 格式、拒绝动图/多帧图、限制色彩模式为RGB/RGBA/L/LA见 inventory_images.py。关键概念有效 DPI 像素数 ÷ 最终放置英寸数而不是图像元数据里的 DPI。清单会拒绝 EXIF/XMP/注释以及嵌入的文本/应用元数据——应在离线的、作者评审的工作流中先展平并剥离这类元数据再以新资产重新哈希、重新审批。ICC 配置文件和基本技术图像字段会被报告但不会被静默移除这是为了避免在海报中发布隐藏的、可能暴露位置的信息。调色板与 WCAG 对比度python -B scripts/check_palette.py poster.json \ --output poster.palette.jsoncheck_palette.py采用WCAG 2.2 sRGB 数学计算声明对比度正文文本 4.5:1SC 1.4.3、大号文本 3:1且大号文本至少 18 pt 或 14 pt 加粗、非文本 3:1SC 1.4.11。它同时输出所有颜色两两之间的对比度与 CIE L* 灰阶分离度作为筛查数据check_palette.py 中THRESHOLDS与pairwise逻辑。注意把 WCAG 数值套用到物理海报上是设计目标而非独立的合规性声明请保留颜色冗余的标签、标记、形状、图案或线型。导出计划预检python -B scripts/plan_export.py poster.json \ --output poster.export-plan.jsonplan_export.py会生成一份「需求绑定」的导出/印刷计划明确区分 PowerPoint 画布、物理裁切、出血、缩放与色彩处理若打印机要求 CMYK计划会添加CMYK_CONVERSION_REQUIRED阻断项——不要声称原生 PowerPoint PDF 是符合 CMYK 的必须取得打印机批准的转换/配置文件与打样若交付格式为OTHER会添加DELIVERY_FORMAT_REVIEW阻断项要求先记录组织者的确切工作流计划列出manual_actions打开经技术检查的文件、运行无障碍检查、确认字体已安装并获得许可、检查替换/字形/溢出/对比度/所有边缘、按均匀比例print_scale * 100%输出禁止非均匀的 fit-to-page 缩放、对 QR 码保留可见 URL/文本并多设备测试、小尺寸打样并取得作者签署等。设计原则详见 references/poster_design_principles.md。生成 PPTX从 JSON 到单页可编辑海报使用新的输出路径python -B scripts/generate_poster.py poster.json \ --output poster.pptx \ --report poster.generation.json生成过程的行为generate_poster.py 完整实现创建一个新的空白演示文稿绝不加载用户模板Presentation()presentation.slides.add_slide(presentation.slide_layouts[5])即内置的 title-only 布局在添加内容之前设置已批准的画布尺寸使用一个原生标题占位符、原生文本框和本地图片图片以contain方式拟合、保持宽高比并居中fit min(box_width/width_px, box_height/height_px)的数学逻辑在_add_picture中禁用文本自动缩小text_frame.auto_size MSO_AUTO_SIZE.NONE按已批准阅读顺序添加元素形状命名为R001_TEXT_id/R002_IMAGE_id这种可审计格式把已批准的图片替代文本与显式文本语言写入 PresentationMLp:cNvPr descr与非视觉绘制属性不嵌入字体、音频、视频、OLE、ActiveX、链接或其他媒体移除默认的打印机设置二进制数据并规范化包内时间戳strip_generated_printer_settings在 alt text 补丁前后各做一次包安全检查require_safe_pptx拒绝重叠、越界形状、最终字号/DPI 过低、不安全的包以及已存在的输出路径。生成器渲染的是 manifest 中的精确文本它不负责创作、总结、研究或修正科学内容。同时core.created/core.modified会被设为批准的 UTC 时间approved_at以Z结尾时规范化为00:00把生成时间戳与作者审批绑定。此外生成器在内部还做了几层自检patch_accessibility_metadata之后再次运行包检查若存在「图片缺少 alt text」「原生幻灯片标题占位符数量 ≠ 1」「文本 run 缺少显式语言」或直接形状顺序与批准阅读顺序不一致都会抛出CliError拒绝发布generate_poster.py。最终技术审计包检查与布局检查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 包检查inspect_pptx.py只读取有界的 ZIP 元数据与选中的 XML从不解包成员、不打开也不执行演示文稿。它以严格的「单页生成海报」包档案profile为基准进行拒绝拒绝项包括每一个非.pptx扩展名包括.pptm超出有界单页生成器档案范围的包宏/VBA、ActiveX、自定义 UI、OLE、嵌入、可执行与二进制部件每一个外部关系包括远程链接图像和超链接即使普通超链接也被拒绝QR 用可见回退文本代替可点击链接不安全的/重复的 ZIP 路径、符号链接、加密、过大的解压、过高的压缩比畸形或携带实体声明的被检 XML缺失的内部关系目标。ZIP 预检的防御性本地策略限制references/pptx_security.md输入文件上限 512 MiB、中央目录上限 64 MiB、成员上限 4096、单个未压缩成员上限 128 MiB、总未压缩上限 1 GiB、压缩比上限 100:1、仅允许 stored/deflated 方法、拒绝加密与符号链接成员、拒绝绝对/穿越/反斜杠/重复/大小写冲突名称、拒绝多磁盘或 ZIP64、拒绝不在精确路径白名单内的部件。ZIP 脚注在 Python 构造ZipFile成员列表之前直接读取因此在库实例化攻击者可控条目之前就先界定了声明成员数与中央目录大小。代码从不调用ZipFile.extract/extractall从根源上消除路径逃逸。PNG/JPEG 媒体后缀必须匹配字节签名并通过 ZIP CRC 校验。注意标准 ZIP/XML 校验不是完整的 ECMA-376 schema 校验包检查也不能充当杀毒软件结论。即使报告「干净」仍需组织的恶意软件扫描、沙箱、Office 受保护视图与补丁管控。安全与威胁模型细节请阅读 references/pptx_security.md 与 references/security_validation.md。布局检查check_layout.py直接读取 PPTX 形状包围盒检查重叠与越界放置、列出包内阅读顺序并按最终印刷比例筛出显式字号。它支持--manifest从已批准 manifest 读取印刷比例与字号要求或独立的--print-scale--minimum-font-pt-final默认项目启发式 18 pt。当与 manifest 一起使用时它还会追加两项额外检查CANVAS_MISMATCHPPTX 幻灯片尺寸与已批准 manifest 不符容差 0.001 英寸READING_ORDER_MISMATCHPPTX 直接形状顺序/命名与已批准 manifest 的阅读顺序不符。人工 PowerPoint 与无障碍闸门自动化无法替代自动化无法认证无障碍、文本渲染或科学准确性。必须在已打满补丁的 PowerPoint中人工完成SKILL.md 的 Manual gate 一节只打开生成的、技术上干净的文件运行“审阅 检查辅助功能”Review Check Accessibility检查“阅读顺序”窗格和对象名称审查每一条替代文本与原生长描述测试键盘与屏幕阅读器导航确认字体已安装/已授权检查嵌入选择、替换、字形、公式、溢出、对比度和所有边缘验证颜色绝不是唯一的编码方式测试每个 QR 码及其可见的回退 URL/文本获得作者对所有内容和引用的签署。Microsoft 的 18 pt 幻灯片字号建议不是通用的海报下限——应使用 manifest 中标注了依据的字号基准与打样在最终物理输出上评估字号。导出与印刷使用已批准的导出计划。当需要 PDF 时从评审过的 PowerPoint 中以标准/高质量打印质量导出而不是“最小文件大小”。独立验证 PDF页面/版面尺寸、方向、裁切与出血若要求则单页输出字体、裁切、字形、公式与图像重采样标签、阅读顺序、替代文本、语言与链接RGB/CMYK 转换与物理色彩打样会议命名、文件大小与上传规则。打印缩小比例的打样并取得打印机要求的打样。任何改动后都要重新运行全部检查。发布签署使用 assets/poster_quality_checklist.md。七个 CLI 工具一览CLI作用validate_manifest.py严格的内容/来源/审批校验器支持--structure-only与--print-content-hashgenerate_poster.py精确锁定依赖的本地 PPTX 生成器拒绝占位符、未批准内容、远程资源与覆盖写入inspect_pptx.py非执行的 ZIP/XML 安全检查器check_layout.py边界、重叠、阅读顺序与最终字号检查器inventory_images.py资产哈希/元数据/有效 DPI 清单check_palette.pyWCAG 对比度与启发式调色板报告plan_export.py尺寸、缩放、字体、色彩、媒体、导出与印刷预检其中_common.py、_manifest.py、_pptx.py提供共享的校验、安全检查与原子发布工具函数。仓库中的测试tests/pptx-posters/下含test_generation_smoke.py、test_scripts.py、test_static.py、synthetic_posters.py对生成冒烟、各脚本行为与静态约束做了覆盖可作为你验证自身使用方式正确性的参照。端到端工作流速查# 1. 安装精确依赖在 skills/pptx-posters 目录 uv venv uv pip install python-pptx1.0.2 Pillow12.3.0 lxml6.1.1 # 2. 复制模板并填写替换所有 REPLACE_ME_*、置 true 确认、作者批准每元素 cp assets/poster_manifest_template.json poster.json # 3. 计算内容哈希并交给作者批准 python -B scripts/validate_manifest.py poster.json --print-content-hash # 4. 批准后完整校验 python -B scripts/validate_manifest.py poster.json # 5. 生成前审计 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 # 6. 生成 PPTX python -B scripts/generate_poster.py poster.json --output poster.pptx --report poster.generation.json # 7. 最终技术审计 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 # 8. 人工PowerPoint 无障碍检查 → PDF 导出 → 印刷打样 → 作者签署设计边界与正确预期最后需要明确本技能的能力边界pptx_security.md 的 Residual technical limits 一节标准 ZIP/XML 校验不是完整的 ECMA-376 schema 校验独立的包检查校验图像签名/CRC而非图像解码器安全性生成环节另行做有界、精确 pin 的 Pillow 解码它不渲染文本、公式、字体、透明度或颜色它无法认证无障碍、科学准确性或印刷就绪状态它有意拒绝安全但非必需的特性如超链接与嵌入文件受密码保护的加密包会被拒绝而非解密。这些限制是设计边界而不是绕过检查的邀请。正因如此pptx-posters的产出路径始终是「严格本地 JSON → 可编辑单页 PPTX → 技术审计通过 → 人工无障碍与打印评审 → 作者签署」每一层都独立可验证最终交付给会议的是一张内容精确、来源可溯、包内无宏无外部关系、并经过人工确认的科学海报。【免费下载链接】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),仅供参考
返回列表