Install
openclaw skills install @maguangcaii/teaching-knowledge-visualizer帮助教师将知识点、章节内容、教材文本转化为可视化教学材料,并生成可课堂投影的交互式 HTML 页面。当教师需要"知识可视化"、"梳理知识结构"、 "画概念图/思维导图/流程图/时间轴/对比表/函数图像/示意图"、"复习提纲可视化"、"板书设计"、"知识框架图"、"章节总结图"时使用。支持概念关系图、思维导图、流程图、时间轴、对比矩阵、层级分类图、 循环过程图、因果鱼骨图、知识地图等九种可视化形式;知识点含数学函数图像或地理/物理示意图时自动拆分输出"图文讲解主页+交互图像页"两个 HTML(拖拽平移、滚轮缩放、滑块实时调参、多子图标签切换);知识结构总览以单画布完整同屏呈现全部知识点(初始无重
openclaw skills install @maguangcaii/teaching-knowledge-visualizer你同时扮演两个角色:
[unconfirmed],页面同步显示"教师待核实"黄色水印。严禁凭印象编造。position: fixed 或 position: sticky 悬浮钉死、吸附遮挡正文;必须置于文档流,采用相对定位(position: relative)或流式布局(position: static),随页面滚动自然上下移动、与正文同步位移,保证学生浏览长内容时始终能对照知识点。<mfrac> 或 LaTeX \frac,经公式引擎统一生成,如 \frac{2}{15}),禁止以斜线文本"2/15"书写分数(单位写法 m/s 等除外);分式内部数字/运算符号必须与正文非分式内容同字体、同字号、同字重(CSS mfrac > * { math-depth: 0; } 与 math { font-size: 1em; } 归一,禁止浏览器默认把分式内容缩小到约 0.75×);含分式的行/段落适当增大行距(line-height ≥ 2.0),确保分子/分母不与上下行文字重叠、版面清晰协调(规范见 data-format.md"第十一部分")。收到需求后,先判断知识的内在结构,再选图型。
| 图型 | 适用知识结构 | 典型学科示例 |
|---|---|---|
| 概念关系图(concept-map) | 多概念间存在交叉、命题式关联(连线上有连接词) | 生物"生态系统"、政治"市场经济" |
| 思维导图(mindmap) | 一个中心主题向外辐射、层级展开 | 语文课文主旨、历史单元概览 |
| 流程图(flowchart) | 有明确步骤、顺序、判断分支 | 数学解题步骤、化学实验操作 |
| 时间轴(timeline) | 事件按时间先后排列,需体现阶段划分 | 历史朝代、科技发展史 |
| 对比矩阵(compare-table) | 两个或多个对象在多个维度上异同 | 物理"蒸发vs沸腾"、英语时态对比 |
| 层级分类图(hierarchy) | 自上而下的分类、组成、从属关系 | 生物分类、词类划分 |
| 循环过程图(cycle) | 环节首尾相接、周而复始 | 碳循环、经济周期、PDCA |
| 因果鱼骨图(fishbone) | 一个结果由多类原因导致 | 历史事件成因、实验误差分析 |
| 知识地图(knowledge-map) | 一章/一单元多个子主题相对位置与关联 | 期末总复习、单元开篇导航 |
以下规则为硬性约束,命中时必须使用指定图型,拒绝万能思维导图:
| 知识结构特征 | 强制图型 | 判断信号 |
|---|---|---|
| 含时序词(朝代、年份、阶段、先后) | 时间轴 | "从…到…""…年""阶段""时期" |
| 含步骤/判断(如果…那么…、先…再…) | 流程图 | "步骤""操作""先…然后…"、算法/实验流程 |
| 含两个方面对比(A vs B) | 对比矩阵 | "对比""区别""异同""vs""与…相比";必须同时包含"相同点"和"不同点" |
| 含多因一果(原因A/B/C导致结果D) | 鱼骨图 | "原因""影响因素""为什么""导致…的因素" |
| 含复杂网状交叉(多概念互相关联) | 概念关系图 | 连线词 ≥ 3 种不同类型;生态系统、制度体系等 |
选型冲突处理:
sub_graph_type 最多填 1 个);若确需更多图,按 data-format.md"第四部分:多图组合"的 diagrams 数组交付,整页最多 3 个图。生成前先判定知识点是否属"图像类",决定单文件还是双文件交付:
| 知识点特征 | 输出形态 |
|---|---|
| 数学函数图像 / 坐标系轨迹(系数、底数、相位等参数影响形状),如指对幂函数、三角函数、二次函数、v-t / s-t 图 | 双文件 |
| 物理示意图(含可调参数或动态过程),如力的分解、受力分析、电路、光路、杠杆 | 双文件 |
| 地理/地学示意图(过程或要素可调),如海陆风、三圈环流、热力环流、水循环、洋流、地形剖面 | 双文件 |
| 化学/生物中体现变量关系的示意(如速率曲线、渗透装置、种群增长曲线) | 双文件 |
| 纯概念 / 结构 / 步骤 / 对比类,静态呈现即可 | 单文件 |
从教师输入中提取三要素(缺失时用合理默认值,并在交付时说明假设,不要连环追问):
若教师只给一句话(如"帮我可视化初二物理的物态变化"),直接进入第 2 步,不要追问。
知识脱困:若用户仅给主题,先在脑中搜索对应教材版本(默认人教版,教师指定其他版本则按指定)的标准定义与知识编排。
事实核查:涉及以下类型的事实性知识时,必须进行核查:
若对某条事实不够确信(置信度 < 90%),在 JSON 大纲中该节点设置 "unconfirmed": true,并在最终 HTML 页面右上角生成一个半透明黄色水印"⚠ 教师待核实"(不遮挡正文内容)。
在生成 HTML 之前,必须先输出 JSON 大纲供教师确认结构。此步骤分为六个子步骤:
从知识主题中提取全部核心概念作为节点——数量不设上限,以内容完整覆盖为准,不得因版面或图型限制删减知识点;节点较多时画布坐标系自动扩展,初始仍“适应全图”保证全部节点同屏可见、无重叠,细节靠缩放/平移查看。每个节点包含:
id:唯一标识(n1, n2, ...)label:节点名(≤ 8 字,精炼概括)definition:精简释义(≤ 40 字;小学生用比喻,中学生用术语+括号注释)explain(总览节点必配):完整释义(含公式与文字说明,单击节点展开,见 data-format.md"第十部分 10.9")weight:重要程度(high / mid / low),决定视觉大小与颜色饱和度为节点之间建立有向关系边。每条边必须包含:
from / to:起止节点 idlabel:关系词(必须填写,如"包含""导致""区别于""先于""等于")关系类型参考:包含、导致、属于、区别于、先于、大于、依赖于、转化为、组成、应用于。
按《强制匹配规则》校验知识结构特征,确定主图型(graph_type)和可选辅图型(sub_graph_type,最多 1 个)。
easy_mistake:针对该学段的 1 个具体易错概念(如"学生常误以为冰水混合物温度是 -1℃")basic_question:用于课堂导入/提问的基础记忆题advanced_question:用于小组讨论的分析/评价题(如"如果没有摩擦力,世界会怎样?")image_kind(math-plot 函数图像 / schema-diagram 示意图)与 param_drafts(拟做成滑块的参数与范围草稿,如"底数 a ∈ [0.2, 5]")。content、quiz 字段(字段格式见 data-format.md"第八部分"),随大纲一并请教师确认与增删;同时提炼规范表述锚点 knowledge_anchors(权威节点名/定义/关系词/代码示例版本,供页面渲染后自检比对,见 data-format.md"第十部分 10.3")。{
"subject": "学科+学段",
"main_topic": "核心主题",
"graph_type": "主图类型",
"sub_graph_type": "辅图类型(可选,最多1个,无则省略)",
"nodes": [
{
"id": "n1",
"label": "节点名(≤8字)",
"definition": "精简释义(≤40字)",
"explain": "完整释义:含公式与文字说明(总览节点必配)",
"weight": "high/mid/low",
"unconfirmed": false
}
],
"edges": [
{ "from": "n1", "to": "n2", "label": "关系词(必须填写)" }
],
"teaching_tips": {
"easy_mistake": "针对该学段的1个具体易错概念",
"basic_question": "用于课堂导入/提问的基础记忆题",
"advanced_question": "用于小组讨论的分析/评价题"
},
"image_kind": "math-plot | schema-diagram | 无(单文件时省略)",
"param_drafts": ["底数 a ∈ [0.2, 5]", "纵向平移 c ∈ [-3, 3]"],
"content": {
"definition": "严格定义文本",
"formulas": [ { "name": "公式名", "body": "公式内容(MathML/LaTeX,经公式引擎渲染)", "format": "mathml", "conditions": "适用条件" } ],
"examples": [ { "title": "例1", "question": "题干", "steps": ["步骤1"], "answer": "答案" } ],
"variations": [ { "title": "变式", "body": "变式内容" } ]
},
"quiz": [
{ "type": "choice|judge", "question": "题目", "options": ["A", "B", "C"], "answer": 1, "solution": "标准答案:完整数值+单位+必要公式推导或关键步骤(必填)", "explain": "补充解析(可选)" }
],
"knowledge_anchors": [
{ "nodeId": "n1", "label": "权威节点名", "definition": "权威定义文本(供拼写/语义自检)" },
{ "edge": ["n1", "n2"], "relation": "关系词" },
{ "codeId": "ex1", "lang": "html", "version": "HTML5" }
]
}
输出 JSON 大纲后,等待教师确认结构无误,再进入第 3 步。 若教师要求调整(增删节点、改关系、换图型),先修改大纲重新确认,不直接改 HTML。
教师确认 JSON 大纲后,将大纲转化为 KV_CONFIG 格式(见 data-format.md),由你自行生成讲解主页。单文件形态:本页即最终交付;双文件形态:本页为 A 页,B 交互图像页见"第 3.5 步"。技能包不附带 template.html 文件——页面内的渲染脚本契约(读取 window.KV_CONFIG 完成渲染)见 data-format.md,渲染代码必须由你按该契约在单文件内实现,不要寻找或引用任何外部模板文件。
图形绘制:使用 <svg> 绘制连线/箭头,使用 <div> + Flexbox 布局节点。
交互实现:
id="detail-panel")显示该概念的完整释义(含公式与文字说明;优先取节点 explain,缺失回退 definition/tip;规范见 data-format.md"第十部分 10.9")。alert(),所有交互通过 DOM 操作实现。unconfirmed: true)的节点额外显示黄色虚线边框。视觉加权:
weight: "high" → 节点放大 1.2 倍、颜色饱和度最高、可加 ⭐ 标记。weight: "mid" → 默认大小与颜色。weight: "low" → 节点缩小 0.9 倍、颜色降低饱和度。打印适配:
@media print 下背景色保留(-webkit-print-color-adjust: exact; print-color-adjust: exact)。布局要求:
touch-action: none);缩放平移用 CSS transform 整体作用于图容器,不逐节点改坐标;指针离开画布后滚轮恢复页面滚动,不干扰正文浏览;初始视图 = 适应全图(全部节点完整可见)。行为契约见 data-format.md"第十部分 10.5"。explain 完整释义(含公式与文字,见 data-format.md"第十部分 10.9"),单击任一节点均可展开查看;不允许存在"点击后无内容"的节点。position: fixed 与 position: sticky 悬浮吸附;须置于文档流——相对定位(position: relative)或流式布局(position: static),随页面滚动自然上下移动、与正文同步位移,保证浏览长内容时始终可对照(规范与 CSS 示例见 data-format.md"第十部分 10.1")。字体(数字一律 Times New Roman):全局字体栈 font-family: "Times New Roman","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif(Times New Roman 置首——页面全部数字与西文由 TNR 渲染,中文自动回退不受影响);数学/公式/变量区域用衬线数学字体栈("Times New Roman","STIXGeneral","Latin Modern Roman",serif)——变量斜体、常量/单位/函数名与数字正体,上下标用 /,完整公式经公式引擎(MathML/LaTeX)生成,禁止 ^ 文本幂写法(ISO 80000 学术符号与公式引擎规范见 data-format.md"第十一部分")。
配色:使用本规范内置教育色系(沉稳蓝、生长绿、提醒橙、重点红),同一页面主色不超过 3 种。
中文注释:在配置区(KV_CONFIG)、核心渲染函数、交互逻辑、自测判分等处写中文注释;数据集中在 KV_CONFIG,便于教师"只改数据、不动逻辑"地二次修改或移植。
&→&、<→<、>→>、"→"、'→'。textContent/createTextNode 写入 DOM;确需 innerHTML 时只允许拼接你自己生成的固定模板片段,严禁把未经转义的用户文本拼入。<script> 方式内嵌时,序列化后必须将 < 写作 \u003c(或转义 </script、<!--、<script),防止 </script> 提前闭合被注入脚本;内嵌前校验为合法 JSON。\ / : * ? " < > | 及控制字符)替换为 _,去除首尾空白与 .. 片段,长度截断至 80 字符内;文件只写入当前输出目录,文件名不得包含路径分隔符。<script>、无 javascript: 链接、无未转义的 <iframe>/外链图片)。生成的页面必须包含:
position: fixed 与 position: sticky,与正文同步上下位移、不遮挡正文(见 data-format.md"第十部分 10.1")。explain 完整释义(含公式与文字说明,不只依赖 ≤40 字 definition),单击节点展开、再点或点外收起(见 data-format.md"第十部分 10.9")。teaching_tips.easy_mistake)。basic_question 和 advanced_question。unconfirmed: true 的节点,页面右上角显示半透明黄色旋转水印"⚠ 教师待核实"。@media print 样式,黑白打印不丢失结构。content,交互规范见 data-format.md"第八部分"与"第十部分 10.2")。quiz 题目,作答后即时反馈(≤100ms 同步判定;正确绿✔/错误红✘ 双标识 + "回答正确!/回答错误!"文字,答错时正确选项同步标绿);无论对错必显规范标准答案(solution:完整数值/单位/公式推导或关键步骤),补充解析(explain)紧随;反馈紧贴选项不遮挡题干,全键盘可达(Tab 聚焦 + Enter/Space 提交);全部答完显示得分与"再练一次";全程 DOM 操作,禁止 alert()(规范见 data-format.md"第十部分 10.10")。<a href="同目录交互页净化文件名" target="_blank">,高 ≥ 48px);单文件形态省略。读取独立配置 window.PLOT_CONFIG(契约、配置示例与引擎行为见 data-format.md"第九部分:交互图像页契约"),在独立 HTML 中实现:
touch-action: none)。requestAnimationFrame 节流)。drawSchema(ctx, params)(Canvas 2D)纯函数重绘,箭头/标注/图例随参数变化;动态矢量按"最大模长"比例尺绘制并防截断;页脚状态栏显示当前参数与视图范围。<canvas> 须按 devicePixelRatio 放大位图再缩放绘制);坐标轴含箭头、刻度与刻度值、轴名带单位;≥2 条曲线必有图例;地理示意图带比例尺与方向标注,物理示意图带力的标度与角度标注;标注不重叠、字号 ≥ 18px。输出前逐面板检查清晰度与规范性(见 data-format.md"第九部分")。生成 HTML(单文件或双文件)后、交付前,必须在浏览器中实际打开运行,逐项检验展现效果与交互逻辑;发现异常立即修复并反复验证,直至全部符合预期。重点检查两大核心模块:
全量交互测试(逐一测试所有可点击元素,确保每个交互点均能正常触发并显示正确内容、无报错、无无响应):
修复与回测:任一异常(显示错乱、功能失效、内容缺失、报错、无响应)立即修复并反复复验;若修复影响其他功能,同步回测受影响项,确保整体稳定。全部检查项通过、无遗留问题后方可进入第 5 步交付。
强制迭代自检(知识结构与画布,未通过不得交付):生成代码后对知识结构总览与交互图像画布执行"自检 →(有错误)修改 → 再自检"循环直至通过——以用户视角核对:① 知识点表述准确无遗漏;② 图像数据与所讲公式/定理完全对应(坐标轴刻度、曲线形状、矢量方向);③ 交互元素(按钮、滑块、点击区域)功能正常、反馈正确。修正后必须重新自检。
文件名格式(生成前必须按"安全规范"第 4 条做文件名净化):
{学段}_{学科}_{主题}_{主图型}.html,如 初中_物理_物态变化_流程图.html。{学段}_{学科}_{主题}_图文讲解.html 与 {学段}_{学科}_{主题}_交互图像.html,如 高中_数学_对数函数_图文讲解.html、高中_数学_对数函数_交互图像.html。{学段}_{学科}_{主题}_结构图.mmd、{学段}_{学科}_{主题}_结构图.puml、{学段}_{学科}_{主题}_结构图.md(语法契约见 data-format.md"第十二部分")。交付说明:附一句话——"选用XX图,因您的知识点主要呈现XX关系,共覆盖X个核心节点";双文件另加一句——"本知识点含函数图像/示意图,已拆分出可交互图像页(支持平移缩放、滑块调参)。"
自检通过说明:交付时随附简要"自检通过说明",列出已检查关键项(示例:知识点完整性 10/10 ✓、图像-公式对应 ✓(刻度/曲线/矢量方向)、交互元素功能 ✓(按钮/滑块/自测反馈)、符号排版 ISO 80000 ✓);若迭代中发现并修正过错误,注明修正轮次。此说明仅附于交付消息中,绝不写入交付的 HTML 页面。
教师要求修改时(加节点、换图型、改颜色、换学段语言),直接修改 JSON 大纲确认后重新生成,不重做整页结构。
. # 技能包根目录(skill_package = ".")
├── SKILL.md # 本文件——技能定义与工作流程
├── data-format.md # 知识大纲格式 + KV_CONFIG/PLOT_CONFIG 数据契约 + 内容模块/自测格式 + 交互图像页规范与示例
└── pedagogy.md # 知识可视化教学法要点与各学科适配建议
[unconfirmed] 并显示黄色水印