L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

edulab

edulab

面向中高考数学的可视化解题工具:空间几何题生成可交互 3D 解题演示(建系向量法 + sympy 校验 + Three.js),函数表达式生成参数可控的 2D 图形(滑块实时联动)。产物为单文件自包含交互式 HTML。适用:用户给出立体几何题要 3D 演示解题步骤、要函数图像并能拖滑块看参数变化、要数学可视化教学素材。触发词:/edulab、立体几何、空间几何题、线面角、二面角、点到平面距离、异面直线距离、外接球、内切球、三视图、函数图像、函数可视化、二次函数、数学可视化。用法:/edulab <题目或函数>。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: edulab description: "面向中高考数学的可视化解题工具:空间几何题生成可交互 3D 解题演示(建系向量法 + sympy 校验 + Three.js),函数表达式生成参数可控的 2D 图形(滑块实时联动)。产物为单文件自包含交互式 HTML。适用:用户给出立体几何题要 3D 演示解题步骤、要函数图像并能拖滑块看参数变化、要数学可视化教学素材。触发词:/edulab、立体几何、空间几何题、线面角、二面角、点到平面距离、异面直线距离、外接球、内切球、三视图、函数图像、函数可视化、二次函数、数学可视化。用法:/edulab <题目或函数>。"

edulab

Purpose

中高考数学可视化:把中文立体几何题或函数表达式,变成单文件、可离线打开、可交互的 HTML 演示。几何走"读题 -> spec JSON -> 建系向量法求解(sympy 校验)-> Three.js 场景";函数走"函数族 + 参数 -> Canvas2D 绘图 + 参数滑块实时联动"。

When to Use

  • 用户给出立体几何题(中高考风格),需要 3D 演示解题过程。
  • 用户想要函数图像,并希望调参看变化(滑块联动)。
  • 用户需要离线可开的数学可视化教学素材。
  • 触发词:/edulab <题目或函数>、立体几何、空间几何题、线面角、二面角、外接球、内切球、三视图、函数图像、数学可视化。

When NOT to Use

  • 用户要的是概念讲解而非数学演示 -> 交给 teach-eli5(可视化教学页)。
  • 用户要设计课程或教案 -> 交给 curriculum-design。
  • 用户要信息卡片、封面等设计产物 -> 交给 infocard / mckinsey-cover。
  • 题目超出 13 种 query.type 覆盖范围 -> 先说明不支持,不要硬套近似题型交付。

Workflow

路径约定:下文 <skill> 指本技能安装目录(如 ~/.claude/skills/edulab)。运行脚本前先 cd 到该目录,或替换为实际路径。Python 需装 sympy(建议 python3 -m venv .venv && .venv/bin/pip install sympy)。

几何模块

  1. 读题,确定立体类型与参数,写入 spec JSON(契约见 references/schema.md;题型清单见 references/taxonomy.md)。
  2. 求解:
    cd <skill>/scripts/geometry
    python3 geometry_solver.py <spec.json> <scene.json>
    
    检查 steps 与 result 是否与标准答案一致;不一致则修 spec 重跑,不得静默交付错误答案。
  3. 生成 HTML(--offline 内联 Three.js,无网环境可打开):
    python3 build_html.py <scene.json> <out.html> [--offline]
    
  4. 用 present_files 打开 out.html。

函数模块

  1. 确定函数族(quadratic / linear / inverse / trig / exp / log / power,或 custom 自由表达式、multi 多曲线对比)。
  2. 生成 scene:
    cd <skill>/scripts/function
    python3 function_engine.py <family> <params.json> <scene.json>
    
  3. python3 build_html.py <scene.json> <out.html>,然后用 present_files 打开。

完整命令配方见 examples/quickstart.md。

Decision Rules

  • 输入是立体几何题 -> 几何模块;输入是函数/表达式/参数 -> 函数模块;两者混合 -> 拆成两个产物分别生成。
  • query.type 支持 13 种:line_plane_angle / line_line_angle / dihedral_angle / point_plane_distance / volume_tetra / parallel_perp / skew_distance / circumsphere / insphere / three_views / surface_shortest_path / net / surface_volume。
  • 立体支持 8 种:cube / cuboid / tetra / prism3 / pyramid4 / cylinder / cone / sphere。
  • 自定义表达式(custom)-> params 传 {"expr": "sin(x)/x"},只走 safe_expr.py,非法输入直接拒绝。
  • 多曲线对比(multi)-> params 传 {"items": [{"expr":..., "label":...}]}。
  • 需要 JSON 契约字段 -> 读 references/schema.md。
  • 需要确认某题型/函数族/立体是否支持 -> 读 references/taxonomy.md。
  • 需要架构决策、阶段规划或已知边界 -> 读 references/design.md。
  • 无网环境 -> 必须加 --offline,否则 CDN 版打不开。

Constraints

  • 几何答案必须经 sympy 计算并独立核验,不符不交付;禁止用手算或近似值糊弄。
  • 前端零求值:自由表达式只允许走 safe_expr.py(禁 eval/Function)。
  • scene JSON 是唯一中间契约:模板只消费 scene,不得在模板里写求解逻辑。
  • 文件写入禁 Box Drawing 等 Unicode 装饰字符(防乱码);中文标签走 DOM/Canvas 文本。
  • 离线打包依赖 assets/vendor/three.min.js、assets/vendor/OrbitControls.js、assets/vendor/CSS2DRenderer.js(--offline 时内联)。
  • 产出 HTML 写到用户指定路径或工作目录,不要写回技能目录。

Priority

  1. 答案正确性 > 交付速度:sympy 校验不一致时先修 spec,绝不静默交付。
  2. 安全 > 便利:自由表达式只走 safe_expr.py,任何绕过解析器的写法都禁止。
  3. 离线可开 > 产物体积:无网环境优先 --offline,接受约 +630KB 内联开销。

Stop Conditions

  • 同一 spec 最多修正并重跑 3 次;仍与标准答案不一致则报告差异、列出已尝试的 spec,不交付错误答案。
  • 题型不在 13 种之内且无法拆解为多步查询 -> 停止并说明限制,不近似硬套。
  • 用户只要求"先看效果" -> 跑通一个样例即可,不继续扩展全部题型。

Verification

交付前逐项确认:

  • steps 与 result 已与标准答案核对一致(几何)。
  • scene JSON 结构符合 references/schema.md。
  • HTML 为单文件自包含,浏览器直接打开可交互。
  • 无网环境已用 --offline 验证可打开。
  • 自由表达式经 safe_expr.py 解析,注入样例被拒绝。
  • 产物与模板文件内无 U+FFFD、无 Box Drawing 字符。
  • 已用 present_files 向用户展示产物。

Output

  • Outcome:一个单文件交互式 HTML —— 几何为可旋转的 3D 解题演示(含步骤与精确结果),函数为带参数滑块、实时联动的 2D 图形。
  • Done when:HTML 已生成并展示,且通过 Verification 清单(几何另需 sympy 校验一致)。
  • Evidence:scene.json(中间契约)+ out.html;几何产物含 steps 数组与精确值/数值双结果;函数产物含参数滑块与联动性质(顶点/零点/渐近线等)。

References

按需加载,不要预先全读:

  • references/schema.md — 写 spec 或读取 scene、需要字段契约时读。
  • references/taxonomy.md — 需要确认题型 / 函数族 / 立体的支持状态时读。
  • references/design.md — 需要架构决策、渲染要点、阶段规划、验证记录或已知边界时读。

Examples

按需加载:

  • examples/quickstart.md — 第一次跑通或需要完整命令配方与样例清单时读。
  • 几何样例 spec:examples/geom_line_plane_angle.json、examples/geom_line_line_angle.json、examples/geom_dihedral_angle.json、examples/geom_point_plane_distance.json、examples/geom_skew_distance.json、examples/geom_volume_tetra.json、examples/geom_parallel_perp.json、examples/geom_circumsphere.json、examples/geom_insphere.json、examples/geom_three_views.json、examples/geom_net.json、examples/geom_surface_path.json、examples/geom_surface_volume.json、examples/geom_pyramid_apex_angle.json — 需要构造同类题目时读,改造其 solid/params/query 即可。
  • 函数样例 spec:examples/func_quadratic.json、examples/func_custom.json、examples/func_multi.json — 需要函数产物的参数写法时读。

Scripts

按调用链使用,不要跳步:

  • scripts/geometry/geometry_solver.py — python3 geometry_solver.py <spec.json> <scene.json>;返回 scene JSON(points/edges/steps/result 等)。
  • scripts/geometry/build_html.py — python3 build_html.py <scene.json> <out.html> [--offline];返回单文件 HTML 路径。
  • scripts/geometry/solids.py — 立体积木库(8 种立体的参数化标准顶点 labeling 与 edges);新增立体在此加 vertices/edges。
  • scripts/geometry/template_3d.html — Three.js r128 + CSS2DRenderer 中文标签模板,含数据注入占位。
  • scripts/function/function_engine.py — python3 function_engine.py <family> <params.json> <scene.json>;返回函数 scene JSON,支持 custom 与 multi。
  • scripts/function/build_html.py — python3 build_html.py <scene.json> <out.html>;返回单文件 HTML(前端零求值)。
  • scripts/function/function_families.py — 7 个函数族的参数定义(默认/范围/步长);新增函数族在此加项。
  • scripts/function/safe_expr.py — 递归下降 AST 安全表达式解析器;SafeExpr(expr).eval({"x": v})。
  • scripts/function/template_2d.html — Canvas2D + 参数滑块模板,含 f() / computeProps() 分支。

Related Skills

  • teach-eli5 — 把概念讲给外行听的教学页;本技能产出可交互演示,它产出图文讲解。
  • curriculum-design — 课程与教案设计,本技能可作为课堂互动素材。
  • grasp — 十维认知框架与学习路线图,用于学习者的系统自学。
Skills enregistrées