| name | wenzhi |
| description | Web-native Presentation Intelligence(HTML 原生智能演示系统)。给定复杂内容、真实受众、沟通目标和演示场景,按"情境→受众→目标→论证→认知路径→视觉→动效→交互→Web 运行时"的完整链条,生成真正的 HTML Presentation Application(演示应用,而非 PPT 文件)。当用户需要:把 Word/Markdown/长文/提纲/数据转成 HTML 演示;诊断优化已有 HTML 演示;针对 CEO/技术团队/一线等不同受众生成不同版本;产出 Stage/Reader/Print 三模式;构建可分支、可深潜、可现场调整的自适应演示时使用。触发词:HTML 演示、网页版 PPT、HTML presentation、web slides、演示应用、发布会页面、汇报网页、presentation app。不适用:PowerPoint/WPS/Keynote/PPTX 文件制作(那是格式转换问题,不是本系统目标)。 |
Web-native Presentation Intelligence · HTML 原生智能演示系统
核心哲学(不可协商)
- Communication before Decoration — 先解决传播问题,再考虑形式;但形式必须服务于内容、认知与沟通目标。
- Audience before Author — 演示必须回答"为什么这个人要听",而不是"我有什么想讲"。
- Argument before Slides — 先有论证架构,再拆 Scene。
- Cognitive Job before Visual — 先明确这一幕让观众完成什么认知任务。
- Evidence before Rule — 任何规则必须有机制、语境、证据、边界、例外。禁止把经验直接写成规则。
- Minimum Sufficient Rendering — 用最低但充分的技术层级(L0 Reader → L6 Spatial/3D),不得默认高复杂度。
- Web-native, not Web-decorated — 不用 HTML 模仿 PowerPoint,利用 Web 本身的能力。
- Presentation is a Runtime — 演示是运行过程,不是页面集合。
- One Content Model, Multiple Modes — Stage / Reader / Print 共享同一内容模型。
- Ethics — 禁止假数据、误导性图表、欺骗性动画、伪造来源、扭曲坐标轴。
铁律(违反即返工)
- 禁止跳过前置访谈直接生成(Briefing Gate)。用户请求未同时满足"五问答案齐备"或"明示跳过"时,第一动作必须是提问,禁止先产出任何 Strategy / IR / HTML。假设先行是返工项,不是默认路径(见第 0 步)。
- 禁止 Input → HTML 一步到位。必须走
Input → Presentation Strategy → Presentation IR → Renderer(见 workflows/)。
- 禁止通用规则:"每页最多 6 行""标题必须是问句""字越少越好""动画越少越好"等只能是 Contextual Heuristics,必须带机制/语境/边界。
- 实践经验必须登记为 Practitioner Hypothesis(knowledge/practitioner_hypotheses/),经证据检验后才可进入方法论,禁止直接进入 Scientific Core。
- 对抗性请求要识别:用户要求"每页都加炫酷动画""所有数据做 3D""所有标题改问句"时,先判断是否损害传播,并向用户说明理由(见 evals/benchmark/adversarial.md)。
- 技术 ≠ 方法论:Web 库只回答"怎么实现",不回答"为什么应该这么设计"。知识层不得依赖任何框架 API。
真实证据双轨制(强制补丁,不可绕过)
- Found ≠ Researched:找到书名/论文标题不等于研究。来源必须走获取阶梯
PLANNED → FOUND → ACQUIRED → READ → ANNOTATED → VALIDATED → DISTILLED;只有 VALIDATED 以上可作 Knowledge Node 核心证据。只读到摘要时标 access_level: abstract_only,禁止推断实验条件、效应量、泛化性与边界条件。
- Library Exists ≠ Capability Verified:库文档说支持,不等于演示系统能稳定做。Web 能力必须走
DISCOVERED → DOCUMENTED → PROTOTYPED → TESTED → BENCHMARKED → ACCEPTED;只有 TESTED 以上可进入正式 Renderer Planner,未验证技术一律停留 experimental/。
- 两条证据链在 Presentation IR 汇合:Track A(为什么这样设计)+ Track B(能否稳定实现)缺一不可。
- 禁止 Book-summary Research:知识单位是 Mechanism Node(多书+多论文+实验+综述+实践汇聚),不是一本书的摘要。实践派方法(Reynolds/Duarte/Weissman/Minto/Tufte/Abela)标
practitioner_framework,不自动等于科学证据。
- 规则分级(§10):STRONG / SUPPORTED / CONTEXTUAL / PRACTITIONER / CONTESTED / INSUFFICIENT——禁止全写成确定性军规。
- 补齐顺序(§68):P0 核心理论实读 → P1 核心 Runtime 实跑 → P2 真实中文基准语料 → P3 跨浏览器/离线/打印 → P4 高级技术。P0/P1 未清前不新增特效。
- 审计基线:
audits/(RESEARCH_AUDIT / RUNTIME_AUDIT / CORPUS_COVERAGE / CAPABILITY_VERIFICATION / GAP_REPORT / MOTION_CAPABILITY_MATRIX / TRACEABILITY_MATRIX),每次声明能力或规则前先看当前状态,禁止虚标。
工作流程(按顺序执行)
第 0 步:前置访谈 + Situation First — 先问后判(Briefing Gate)
先访谈,后判定。 生成任何东西之前,向用户确认"五问":
- 给谁看——观众角色、专业度、谁拍板(decision_power);
- 什么场合——情境类型(20 类)、讲者在场还是自读;
- 多长时间——time_budget;
- 要达成什么——沟通目标与期望观众看完后的动作;
- 材料与红线——素材范围、必须涵盖/必须回避的内容、交付形态。
跳过条件(仅两条,其余一律先问):
- 用户请求中已完整给出五问答案(可直接进入第 0 步的情境判定);
- 用户明示"直接生成 / 按你的判断 / 别问了"(允许假设兜底,但 IR 的
presentation.briefing.source 必须写 user_opt_out,且所有假设字段显式标注)。
仅缺一两问时只追问缺项,不要重复问已有答案。禁止用"先合理假设、交付时用户再改"替代提问——受众错了,后面全部返工。
五问齐备后再回答:"这到底是什么演示?"从 20 类情境中识别(Executive Briefing / Decision / Sales / Pitch / Training / Teaching / Technical / Scientific / Project Report / Government Report / Consulting / Data / Internal Communication / Public Speech / Conference Talk / Product Launch / Pre-read / Leave-behind / Self-reading / Hybrid)。不同情境不得使用同一套规则。 详见 knowledge/presentation/situation-taxonomy.md。访谈结论写入 IR 的 presentation.briefing(schemas/presentation.yaml)。
第 1 步:受众与目标建模
填写受众模型(role / expertise / prior_knowledge / decision_power / attitude / motivation / concerns / objections / time_budget / cognitive_load_tolerance / expected_detail / likely_questions),并明确沟通目标(Inform / Explain / Teach / Persuade / Convince / Recommend / Request Decision / Build Trust / Align / Inspire / Sell / Demonstrate / Defend / Report / Facilitate Discussion)。禁止笼统的"做好 PPT"。详见 workflows/build_presentation_strategy.md。
第 2 步:论证架构
中长型演示优先建立 Central Thesis → Claim → Evidence/Example/Counterargument → Recommendation,并检查 Unsupported Claim / Logical Gap / Evidence Mismatch / Argument Jump / Duplicate Claim / Overclaim。Minto/SCQA 只是工具,先判断是否适合。详见 workflows/build_argument_map.md。
第 3 步:Scene 规划(Scene,不是 Slide)
- 每个 Scene 必须有 Cognitive Job:Ask / Answer / Explain / Compare / Demonstrate / Prove / Orient / Transition / Summarize / Challenge / Reveal / Visualize / Quantify / Simulate / Decide。
- 标题类型由 Cognitive Job 决定:Question / Assertion / Topic / Decision / Contrast / Narrative Headline。Skill 必须解释"为什么当前场景选择这一类标题"。
- 认知负荷曲线:禁止连续大量 HIGH 负荷 Scene,用 Concept→Example→Data→Story→Synthesis 形成节奏。
- 信息密度由 Mode × 受众专业度 × 讲者在场 × 时间共同决定,不是"字越少越好"。
- 同一 Scene 分离
stage(精简)与 reader(完整)内容;Speaker Notes 必须是三层中最详细的——写成可照本宣科的完整脚本(含上台/停顿/手势/转场/应急提示),让讲者脱稿也能读稿。
- 默认支持非线性 Presentation Graph:Core Path / Optional Path / Deep Dive / Evidence Appendix / Objection Handling / 分支。
- 详见
workflows/build_scene_plan.md 与 knowledge/presentation/。
第 4 步:生成 Presentation IR
所有演示先生成 IR(schemas/presentation_ir.yaml),字段含 scene.role / cognitive_job / assertion / evidence / visual_semantics / layout_intent / information_density / reveal_strategy / motion_intent / interaction / deep_dive / speaker_notes / reader_content / print_state。用 scripts/validate_ir.py 校验。详见 workflows/build_presentation_ir.md。
第 5 步:渲染与运行时
- Renderer 是唯一 HTML 出口:
scripts/render_ir.py 消费 IR、按 visual_semantics / blocks[].type / motion_intent 装配组件并产出自包含 HTML。Stage / Reader / Print 由同一份 IR 同源产出(content.reader、speaker_notes、source 一并写入),禁止为某个 Demo 手写 HTML 绕开 IR(§52)。
- 语义组件库:
runtime/components/components.css(Renderer 输出的类名契约:wpk-card / wpk-num / wpk-step / wpk-cmp / wpk-time / wpk-quote / wpk-risks / wpk-arch / wpk-actions / wpk-evidence / wpk-chart)。新增视觉语义时应同时补组件与 Renderer 分支,而不是在 Deck 里写内联样式。
- 自适应演示图(Presentation Graph):
scene-engine.graph() 从 DOM 推导有向图(core_path / branch / deep_dive / skip 四类边)。出口由 nav_links{deep_dive,branch,skip} 声明;data-branch 与 data-deep-dive 共用返回栈,Esc / [data-branch-return] 回主线并恢复揭示进度。分支 = 横向切换视角(技术/财务/异议),深潜 = 向下钻取证据。
- 渲染层级 L0–L6,逐 Scene 选择最低充分层级(见
RUNTIME.md)。
- 布局用 HTML + CSS Grid/Flexbox/Container Queries/CSS Variables;禁止
left:428px 式 PPT 模仿定位(特殊视觉场景除外)。
- 动效是 Semantic Motion(REVEAL/FOCUS/CONNECT/TRANSFORM/TRACE/ACCUMULATE/COMPARE/CAUSE/CONTINUITY/REMOVE),必须可被讲者 pause/resume/reverse/seek/skip/replay;技术优先级 CSS → Web Animations API → View Transition → Motion → GSAP(复杂 timeline 才用 GSAP)。
prefers-reduced-motion 必须影响动效策略。注册的动效必须在揭示步到达时播放(否则 paused + fill:both 会把元素钉在首帧而不可见);Reader/Print 全展开时须落到终态。
- 数据可视化先定 Cognitive Job(Comparison/Trend/Distribution/Relationship/Composition/Ranking/Flow/Network)再选图;普通商务图用本地化的 ECharts(
runtime/vendor/echarts.min.js,离线,禁止 CDN),特殊场景才引入 D3/SVG。图表必须同时过 Stage / Reader / Print / reduced-motion 四态,并随幕宽重排(runtime/visualization/charts.js)。
- 3D(Three.js)仅用于空间关系/架构/产品/地理/科学结构,禁止"为了高级感用 3D"(当前未验证,见
experimental/)。
- 主题用 design_tokens(font/color/spacing/radius/shadow/motion/grid),禁止每个 Scene 随意写 CSS。见
themes/ 与 DESIGN_SYSTEM.md。
- 必须支持:键盘导航、Presenter View(当前/下一幕/笔记/计时/跳转/搜索)、Reader Mode(可滚动/完整/可展开/可引用/hash 深链)、Print Mode(
@page 按设计画布出页,冻结动画、展开关键内容、显示引用,每幕恰好一页)、离线运行(local assets,现场不依赖 CDN)、Performance Budget(Stable > Fancy)。
- 展示层必备(讲者与现场体验):
- Overview 总览模式(O 键):全部 Scene 以实时缩略图平铺,点击任意一幕直接跳转——服务"重新选页跳过去看"的自由导航,不属于内嵌演示逻辑但必须支持;
- 页码锚点指示:常驻低存在感的「当前页 / 总页数 · 主题」,让讲者与观众都能预期进度;
- 隐晦按键提示:常驻极简提示(如「→ 推进 · O 总览 · ? 快捷键」),无操作数秒后自动淡化,? 键呼出完整快捷键面板;
- 静帧开关(M 键):一键关闭全部动效与逐步揭示,整幕直出——时间紧的现场不能被动效拖住;
- 场景状态保持:非线性切出再返回时,该幕保持切出前的揭示进度,不得重置回初始态;
- 分支返回提示上下文化:返回提示与返回锚点只在深潜(Deep Dive)进入时显示;线性浏览到达同一幕时不出现。
- 运行时实现见
runtime/(零依赖原生 JS,可直接使用或作为参考)。
- 交付时可用
scripts/gen_keys_card.py 为产物生成「键位速查」SVG 卡片(默认与运行时 ? 帮助面板的键位一致;--keys 自定义键位、--stops/--bg/--ink/--cap 等参数适配产物主题,--print-keys 导出默认键位 JSON 供修改),嵌入 README 或交付说明,让第一次打开的人一眼上手。
第 6 步:QA 与评测
- 视觉 QA:overflow / contrast / font size / alignment / cropping / overlap / safe area / responsive。溢出判定必须比较子元素包围盒与幕框(
scrollHeight 对非滚动容器不可靠),并覆盖 1920×1080 / 1366×768 / 1600×1000 三档。
- Runtime QA:broken links / missing assets / JS errors / animation failures / branch navigation / presenter mode / keyboard / offline load / print mode。
- 自动验证入口:
evals/harness/(dev-only Playwright)。runtime_verify.cjs 功能与性能矩阵、content_stress.cjs 中文标题压力与 Reader 清单、adaptive_test.cjs 自适应导航端到端、deck_shots.cjs 逐幕截图与溢出。全部可一键复现。
- 评测 18 个维度(Audience Fit / Goal Clarity / Argument Quality / Cognitive Load / … / Aesthetic Quality),见
evals/rubric.yaml 与 EVALS.md。
- 浏览器以 Chromium / Blink(Chrome)为主要验证环境,WebKit 引擎补充回归;Firefox 与真机 Safari 受环境限制时须显式标注未验证,不得虚标
browser_verified。
交付能力自检(A–G)
A. 原始 Word/Markdown/长文 → HTML Presentation;B. 已有 HTML 演示 → 诊断优化;C. 提纲 → 完整演示;D. 数据 → 数据叙事演示;E. 同内容 → 不同受众不同演示;F. Stage → Reader/Print;G. 线性演示 → Adaptive Graph。
知识检索
- 53 个知识节点 / 7 域,全量索引见
knowledge/INDEX.md(含验证状态与研究队列);
认知科学(工作记忆/认知负荷/双通道/分散注意/冗余/专长反转/诱惑性细节):knowledge/cognition/
- 传播与说服(叙事/论证/信任/提问框架):
knowledge/communication/
- 演示研究(Assertion-Evidence/标题系统/信息密度/情境分类/受众建模/Q&A):
knowledge/presentation/
- 可视化与感知:
knowledge/visualization/;动效:knowledge/motion/;交互:knowledge/interaction/
- 经验假设层(未验证经验,禁止直接当规则):
knowledge/practitioner_hypotheses/
- 反模式:
knowledge/anti_patterns/
- 来源登记与证据分级(A Strong / B Moderate / C Emerging / D Practitioner / E Contested):
knowledge/sources/seed_corpus.yaml、EVIDENCE.md
- Web 能力登记(浏览器支持/性能成本/降级方案):
knowledge/web_capabilities.yaml
- 研究日志:
knowledge/research_log.md
多 Harness 使用
本 Skill 是标准 SKILL.md 包,可被任何支持 Agent Skills 的 harness 加载。Claude Code / Codex / OpenCode 的安装方式与适配文件见 adapters/(含 CLAUDE.md、AGENTS.md)。
目录导航
SKILL.md — 本文件(路由器,progressive disclosure)
knowledge/ — 演示知识图谱(机制节点 + 证据分级 + 经验假设层)
schemas/ — IR / Scene / 知识节点 / 来源 等 YAML Schema
workflows/ — 9 个标准工作流(策略→论证→Scene→IR→渲染→优化→现场调整→评审)
runtime/ — HTML Presentation Runtime
├─ core/ — Scene 引擎、bootstrap、基础样式
├─ navigation/ — 键盘/搜索/总览 + Presentation Graph(分支/深潜/跳过)
├─ motion/ — 语义动效控制器(WAAPI,可 pause/seek/skip)
├─ presenter/ reader/ print/ — 讲者台 / 阅读模式 / 打印(@page 设计画布)
├─ components/ — 语义组件样式(Renderer 的类名契约)
├─ visualization/ — 图表运行时(ECharts 包装,四态适配)
└─ vendor/ — 本地化的第三方库(ECharts,离线,无 CDN)
components/ — 语义组件示例与说明
visualization/ — 可视化选型指南
themes/ — design tokens 主题
evals/ — 评测 rubric、100+ 测试案例登记、对抗测试
evals/harness/ — 跨引擎自动验证(dev-only Playwright;runtime_verify / content_stress / adaptive_test / deck_shots / verify_corpus / run_evals / regression / verify_experimental)
evals/mechanisms/ — 25 条机制正反例画廊(每条导出可执行渲染规则)
evals/baselines/ — 视觉回归基线(逐幕 aHash)
scripts/ — render_ir.py(IR→HTML 渲染器)、validate_ir.py(IR 校验)、build_corpus.py(批量构建)、render_mechanisms.py、gen_keys_card.py
benchmarks/corpus/ — 10 类真实中文基准语料 Deck(IR + 渲染产物 + 打印 PDF)
benchmarks/derived/ — 衍生育料:同内容多受众(CEO/技术/一线)、同内容多时长(5/15/20 分钟)
audits/ — 双轨证据审计基线(研究/运行时/语料/能力/差距/动效矩阵/可追溯矩阵/技术取舍)
experimental/ — 未验证或已否决技术的孵化区与取舍证据(禁止进入 Production Runtime)
examples/demo/ — 可运行的完整示例(IR + 生成的 HTML)