edu-analytic-geometry
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D…
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and hand-drawn canvas
$ npx -y skills add wy51ai/edulab --skill edu-math-video --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/edu-math-videoContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and hand-drawn canvas
name: edu-math-video description: Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and hand-drawn canvas animation rendered to MP4.
把一道数学题做成 16:9、1920×1080、带中文配音 + 中英双语字幕 + 手绘笔记本风格动画的 MP4。
流水线(每个视频一个文件夹):
script.json ──build_audio.py──► build/timeline.json + build/mix.wav + ../<name>.srt
(旁白) (GLM-TTS + 合成音乐) │
anim.js + engine.js ◄─────────────────────────┘ (按旁白时间点驱动动画)
└──node render.mjs video──► ../<name>.mp4**核心原则:画面跟着旁白走,而且图会"讲题"。** 每句旁白,图上都有一个动作把这句推理演出来(线段滑过去重合、三角形叠上去、相机转到俯视、动点移动……),不是只多出一条线、一个标签。每个动画都用"第 k 句旁白开始的时刻"`S.at(k, f)` 定时,绝不写死秒数。
**本技能自带全部代码**,不要从别的项目复制文件:
下文 `SKILL` = 本文件所在目录,`WS` = **用户当前所在的目录(你的工作目录,`$PWD`)**:视频文件夹建在这里,mp4/srt 也输出到这里。**不要因为别的目录(包括本技能所在的项目)已经有 `.env`、`node_modules`、`pron.json` 就把 WS 换过去**,缺什么由 `new_video.sh` 和第 2 步补齐。`PROJ` = 本视频文件夹,`PY` = `setup_check.sh` 报告的 python(macOS 上一般是 `/usr/bin/python3`;PATH 里的 `python3` 可能没有 numpy)。
**退出码不是 0 就是没完成。** `--check` 退出码 1(哪怕只剩一个 ⚠ 多音字)、`motion` 退出码 1、截图里有问题,都不能写"只是警告、不影响"然后继续。修好再往下走。
1. **严格按下面 10 步顺序做,每步的"通过标准"满足了才能进入下一步。** 不要跳步,不要"最后一起检查"。 2. **先讲清楚题目。** 视频第一幕必须展示原题图片(截图或 `make_problem_png.py` 生成的图),旁白逐条读条件,每读一条就在图上框出那一条。 3. **`tts` 字段只能是能念出来的中文。** 不能有阿拉伯数字、`= + − × ÷ / ^ √ ∠ △ ∥ ° ( )` 等符号:`AC=3` 写成 `AC等于三`,`x²` 写成 `x的平方`。字幕 `zh` 字段保留正常数学写法。`--check` 会报错拦住。 4. **读音必须固定。** 调 TTS 之前 `--check` 必须显示 `未固定读音的生僻字/多音字: 0` 且 `script errors: 0`。多音字的标注写在该字**后面**:`长[cháng]`、`要[yào]求`。**不能**写成 `中点[zhōng]`(那会把"点"读成 zhōng)。 5. **API Key 只能由用户提供。** 缺 `GLM_API_KEY` 时先问用户:配置 key(音质最好,推荐),还是用兜底引擎(edge-tts / macOS `say`,见 [reference/glm-tts-setup.md](reference/glm-tts-setup.md#没有-glm-key-时兜底引擎))。不要编造 key、模型名或接口地址,不要把 key 打印出来或写进项目文件夹。 6. **所有画面内容在 y ≤ 860 以内**(y≈914~1044 是字幕框)。图形放左半边 x 60~900,推导文字写在右边的横线板 `board()` 上。 7. **先写分镜,再写动画。** `storyboard.md` 给每句旁白规划"指/动/留",按 [reference/visual-design.md](reference/visual-design.md) 的动作表选动作;`node render.mjs motion` 必须通过。 8. **先预览再花钱。** 用 `--preview` + `stills auto` 检查版面,没问题再跑真正的 TTS。 9. **看图验证。** 每次渲染截图后都要打开 `build/sheet.png` 亲眼检查(用读图工具),不能只看命令有没有报错。汇报时写你实际看到了什么,不要凭印象全部打勾。 10. **不要修改 `engine.js`**,除非用户要求换风格;需要新图形就在 `anim.js` 里写函数。 11. **不要把 `node_modules`、`package*.json` 复制进视频文件夹**,依赖在 `WS` 根目录装一次,所有视频共享。
bash SKILL/scripts/new_video.sh "$PWD" <ascii_folder_name> # WS 就是当前目录 bash SKILL/scripts/setup_check.sh WS/<ascii_folder_name>
cd PROJ && PY build_audio.py --say "你好,我们来看一道数学题。"
二选一(细节见 [reference/animation.md](reference/animation.md#题目图片与高亮框)):
按 [reference/script-writing.md](reference/script-writing.md) 写。要点:
**先读 [reference/visual-design.md](reference/visual-design.md)**,再按 `template/storyboard.md` 的格式给每句旁白写一行:`| 幕id 句号 | 旁白要点 | 指 | 动 | 留 | 板书 |`。
cd PROJ && PY build_audio.py --check ; cat build/pron_report.txt
A collection of education skills that turn academic problems into interactive lesson web pages and narrated explainer videos.
Repo: wy51ai/edulab
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D…
把一个化学反应做成自包含的微观 3D 交互演示网页:左/上为 Three.js 可交互分子动画 (拖滑块看断键·成键·原子重组,分步高亮),右为 KaTeX 反应方程 + 分步讲解 +…
把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、…