360 Secure SkillHub
360 安全技能中心

ym-report-slide-gen

读取按模板整理的 Markdown 周报/月报素材,用本地 Python 标准库渲染成自包含 HTML 汇报幻灯片,按结论先行组织封面、结论、数据表格、进展、风险与计划页,并按汇报时长限制页数;不做图表、不改写数字、不导出 PPT 或 PDF。

liuyuming0823
liuyuming0823
热度 16.11
最近更新 2026-09-19 01:51:26
分类:效率依赖:代码执行 / 读写文件应用场景:报告撰写 / 演示设计 / 模板 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ym-report-slide-gen
Metadata
name
ym-report-slide-gen
slug
ym-report-slide-gen
display_name
汇报幻灯片生成器
display_name_en
Report Slide Generator
displayName
汇报幻灯片生成器
description
把周报月报数据自动排成汇报用HTML幻灯片,含数据页与结论页。 当用户提到「汇报PPT」「周报幻灯片」「月度总结演示」「述职幻灯片」时使用。
description_zh
把周报月报数据自动排成汇报用HTML幻灯片,含数据页与结论页。
description_en
Lay weekly or monthly report data into presentation-ready HTML slides.
summary
把周报月报数据自动排成汇报用HTML幻灯片,含数据页与结论页。
category
office-efficiency
version
0.1.0
author
刘玉明
tags
["汇报PPT","周报幻灯片","月度总结演示","述职幻灯片"]
trigger
["汇报PPT","周报幻灯片","月度总结演示","述职幻灯片"]
agent_created
true

汇报幻灯片生成器 (ym-report-slide-gen)

把零散的周报 / 月报素材排成「结论先行」的汇报幻灯片 HTML:第一页一页纸结论,随后是带口径标注的数据表格、分项详情、风险与需要的支持、下期计划。不做图表,以表格为主;页数按时长自动限制,防止超时。

何时使用

  • 用户说「汇报 PPT」「周报幻灯片」「月度总结演示」「述职幻灯片」时
  • 用户攒了一堆周报要点和数字,不知道怎么组织成「领导一眼看懂」的页面时
  • 用户明确汇报对象(直属领导 / 全员大会)和时长(5 / 10 / 15 分钟)时

运行前提

  • 环境:Python 3.7+,仅用标准库(argparse / html / os / sys),无需联网、无需 pip 安装
  • 输入文件:一份按 templates/report-outline.md 整理的素材 Markdown
  • 输出文件:当前目录下生成 report-deck.html,同名会覆盖
  • 不联网、不读取素材以外的本地文件、不上传任何数据
  • 输出是放映用 HTML,不是可编辑的 PPT 源文件;如需二次编辑请回到素材 Markdown 改后重渲染
  • 所有数字以素材为准,脚本不做四舍五入、不换算单位,避免口径漂移

输入契约

项 必需 说明
素材文件 必需 Markdown,含封面信息 + 一页纸结论 + 核心数据 + 本周完成 + 进行中 + 风险与需要的支持 + 下周计划 等小节
汇报对象 可选 --audience leader(默认)或 all;影响封面副标题措辞
时长 可选 --minutes 5(默认)/ 10 / 15;决定页数上限
封面标题 可选 --title 覆盖封面主标题;缺省取素材里的「标题:」

小节约定:

  • # 核心数据 下的每条必须是「指标:数值(口径:xxx)」格式,口径说明数字怎么来的
  • # 一页纸结论 下的要点控制在 3 条以内,每条是一个完整判断
  • 其它小节标题应是完整判断句(如「交付按时完成」),不要写「交付情况」这类标签

缺失处理:

  • 缺素材文件 → 用 templates/report-outline.md 模板请用户按四类填,不要替用户编造数字
  • # 核心数据 为空 → 控制台警告「核心数据为空,汇报缺少支撑」,仍生成但不含数据页
  • 某条数据缺口径 → 控制台逐条警告「数据 X 缺少口径标注,汇报易被追问」
  • 时长非 5/10/15 → 按最接近档位取上限(5 分钟档 8 页、10 分钟档 12 页、15 分钟档 16 页)

素材示例(节选)

下面是一份可直接渲染的素材(保存为 report.md,UTF-8):

# 封面
标题:三月月度汇报
汇报对象:直属领导
周期:2026-03

# 一页纸结论
- 交付按时完成,3 个需求全部验收
- 遗留 2 个低风险缺陷,不影响上线
- 下月聚焦性能专项

# 核心数据
- 需求完成数:12 | 口径:已开发并自测通过
- 用例通过率:96% | 口径:自动化用例执行结果

# 本周完成
- 完成 A 模块开发与联调

# 风险与需要的支持
- 测试环境不稳定,需运维协助扩容

渲染:

python scripts/render_report.py report.md --audience leader --minutes 5

生成后第 1 页是结论、第 3 页是带口径的表格,总页数不超过 8。

执行步骤

  1. 整理素材 — 让用户把本周完成 / 进行中 / 风险 / 下周计划 四类要点按 templates/report-outline.md 落到 Markdown,数字统一进 # 核心数据 并标口径。

  2. 渲染 — 在技能目录下执行:

    python scripts/render_report.py report.md --audience leader --minutes 5
    

    想指定封面标题加 --title "三月月度汇报"。脚本解析素材、套金字塔结构写出 report-deck.html,并打印「已生成 report-deck.html,共 N 页(上限 M)」。

  3. 打开检查 — 浏览器打开 report-deck.html,确认第 1 页是结论、数据页是带口径的表格、进度条与页码正常。

  4. 一页一判断自检 — 逐页看标题是否都是完整判断句;把写「XX 情况」「XX 汇报」的页改成判断句再重渲染。

输出格式

单个自包含 HTML 文件 report-deck.html,页面顺序固定为金字塔:

  1. 封面页(主标题 + 汇报对象 / 周期副标题)
  2. 一页纸结论页(≤ 3 条要点)
  3. 核心数据页(HTML 表格:指标 / 数值 / 口径 三列)
  4. 本周完成页
  5. 进行中页
  6. 风险与需要的支持页
  7. 下周计划页
  8. 结尾页(谢谢 · 欢迎提问)

翻页交互与 ym-html-deck-builder 一致:←/→、空格、PgUp/PgDn、Home/End、Esc 目录、F 全屏。底部进度条 + 页码。

页面自检清单

生成后逐项核对,任一项不满足就改素材重渲染:

  • 第 1 页是「一页纸结论」,且要点 ≤ 3 条、每条是完整判断句
  • 第 3 页「核心数据」是表格,三列齐全(指标 / 数值 / 口径),无缺口径行
  • 结论里的每个数字都能在「核心数据」找到同口径来源,两处不矛盾
  • 每页标题都是判断句,没有「XX 情况」「XX 汇报」这类标签
  • 风险页写的是具体阻塞与需要的支持,不是「一切顺利」
  • 总页数不超过当前时长的上限(5→8 / 10→12 / 15→16)
  • 浏览器打开后 ←/→ 翻页有效、进度条随页推进、页码显示正确

能力边界

  • 不做图表渲染(折线 / 柱状图等),数据以 HTML 表格呈现为主
  • 不改写、不推算事实数字;素材里没有的数字不会凭空补,避免汇报失真
  • 不做动画与转场特效,切页为瞬时显隐
  • 不导出 .pptx / PDF,不做多人协作编辑
  • 页数超限只在控制台警告并建议删减页类,不自动删内容(防止误删结论)
  • 不管理汇报日程、不发送消息,仅产出本地 HTML 文件

与 ym-html-deck-builder 的区别

  • 本技能强制「结论先行 + 数据表格 + 页数限时」,输入是结构化四类素材,适合向领导汇报。
  • ym-html-deck-builder 输入是自由大纲,不强制结构,适合通用分享/宣讲。
  • 两者翻页交互一致(同一套键盘/进度条/目录实现),区别在内容组织方式与输入契约。

常见坑

  1. 投屏后中文变宋体或方块 — 现象:在自己电脑上正常、会议室电脑上整体掉成衬线宋体甚至方块。原因:报告 HTML 的字体依赖演示机,单一字体名缺失时浏览器回退到默认衬线体。规避:模板已内置回退栈 Microsoft YaHei → PingFang SC → Hiragino Sans GB → Heiti SC → WenQuanYi Micro Hei → sans-serif(Windows/macOS/Linux 各有命中,必须以 sans-serif 收尾);缺字体的表现是样式变宋体而不是报错,正式汇报前在演示机上先开一次确认。

  2. 数字无口径被领导追问 — 现象:汇报时对方问「这 96% 是怎么算的」,答不上来。原因:素材只写了数字没标统计口径。规避:# 核心数据 每条必须带「口径:xxx」,脚本会逐条检查缺口径并警告。

  3. 标题写「XX 情况」没信息量 — 现象:一页大标题「交付情况」,听众不知结论。原因:把标签当标题。规避:标题写完整判断句,如「交付按时完成,3 个需求全部验收」;脚本对「情况 / 汇报 / 说明」结尾的页标题给警告。

  4. 风险页写「一切顺利」没价值 — 现象:风险页只写「暂无风险」,领导觉得没思考。原因:回避真实阻碍。规避:风险页写具体阻塞与需要的支持(如「测试环境不稳,需运维协助扩容」),没风险也要写明「已识别风险 0 项,依据 XX」。

  5. 页数超时 — 现象:5 分钟汇报做了 15 页,讲不完。原因:没按时长限页。规避:脚本按分钟数限上限(5→8、10→12、15→16),超限时控制台警告并提示可削减「本周完成 / 进行中」等详情页。

  6. 结论页塞太多条 — 现象:一页纸结论列了 8 条,等于没结论。原因:把详情全堆首页。规避:结论页只留 ≤ 3 条最关键判断,其余下沉到分项详情页;脚本超过 3 条会截前 3 并警告。

  7. 素材与数据页数字对不上 — 现象:结论写「增长 18%」,数据页写「增长 12%」。原因:两处各写各的。规避:结论里的数字必须能在 # 核心数据 找到同口径来源,生成前人工核对一致。

验收用例

  • 正常:含数字的周报素材(leader / 5 分钟)→ 第 1 页是结论、数据页有「指标 / 数值 / 口径」三列表格、总页数 ≤ 8。
  • 边界 1:素材 12 页内容 + 5 分钟 → 控制台警告超 8 页上限,并建议削减详情页类。
  • 边界 2:核心数据某条缺口径 → 控制台逐条警告「缺少口径标注」。
  • 失败:空素材文件 → 脚本退出并报错,不生成空 report-deck.html。

目录说明

  • scripts/render_report.py — 主脚本,读素材渲染成 report-deck.html
  • templates/report-outline.md — 素材整理模板(四类要点 + 口径标注示例)