#588 by GitHub stars
wy51ai/edulab
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D Canvas 动态几何画板(椭圆/双曲线/抛物线/圆 + 动直线/动点 + 向量 + 标注 + 画笔涂鸦)。 支持三入口——给定文字题、随机出题、上传题目图片识别后解题。覆盖求标准方程、弦长、向量 数量积范围/定值、三角形面积最值、定点、定值(斜率之积)、轨迹、离心率等题型,统一"设含参 直线 x=my+c + 联立 + 韦达 + 换元/常数分离",并由 sympy 精确计算驱动(答案、坐标、步骤 数值、交互引擎的理论
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/edu-analytic-geometry/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
skills/edu-chem-reaction/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
skills/edu-chem-video/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
skills/edu-math-video/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
skills/edu-physics-video/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
skills/edu-solid-geometry/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 805fdc5dd6bd
No earlier version was observed for comparison.
Verified commit 805fdc5dd6bdf942290a7791924bf0ee08f26632
git clone --filter=blob:none --no-checkout https://github.com/wy51ai/edulab.git .hotskills/wy51ai-edulab && git -C .hotskills/wy51ai-edulab checkout --detach 805fdc5dd6bdf942290a7791924bf0ee08f26632
# Copy each selected skill directory from .hotskills/wy51ai-edulab into .claude/skills/<skill-name>/Heat
7.0- Star growth, last 7 daysAhead of 93% of tracked repositories
- Star growth, last 24 hoursAhead of 95% of tracked repositories
- Rank movement, last 7 daysAhead of 40% of tracked repositories
- Commits, last 30 daysAhead of 76% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- edu-analytic-geometry
skills/edu-analytic-geometry - edu-chem-reaction
skills/edu-chem-reaction - edu-chem-video
skills/edu-chem-video - edu-math-video
skills/edu-math-video - edu-physics-video
skills/edu-physics-video - edu-solid-geometry
skills/edu-solid-geometry
How it works
edu-analytic-geometry
When your agent uses it
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D Canvas 动态几何画板(椭圆/双曲线/抛物线/圆 + 动直线/动点 + 向量 + 标注 + 画笔涂鸦)。 支持三入口——给定文字题、随机出题、上传题目图片识别后解题。覆盖求标准方程、弦长、向量 数量积范围/定值、三角形面积最值、定点、定值(斜率之积)、轨迹、离心率等题型,统一"设含参 直线 x=my+c + 联立 + 韦达 + 换元/常数分离",并由 sympy 精确计算驱动(答案、坐标、步骤 数值、交互引擎的理论范围同源一致)。其它 agent 也可调用本技能生成此类网页。形态与 edu-solid-geometry 平行,但用 Canvas-2D + KaTeX(非 Three.js)。 触发词:解析几何, 圆锥曲线, 椭圆, 双曲线, 抛物线, 直线与圆锥曲线, 焦点弦, 弦长, 数量积取值范围, 向量数量积, 定点问题, 定值问题, 斜率之积, 三角形面积最值, 轨迹方程, 离心率, 解这道解析几何题, 随机出一道圆锥曲线题, 这张图里的解析几何题; analytic geometry, conic sections, ellipse, hyperbola, parabola, chord length, dot product range, fixed point, fixed value, locus, eccentricity, interactive analytic geometry solution page.
What it loads into context
Frontmatter
476 tokensAlways available to the agent
SKILL.md
3,403 tokensWhen the skill is activated
Reference documents
5,203 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 这个技能产出什么
- 依赖(重要)
- 工作流程
- 扩展
- 目录
Scripts executed separately
lib/analytic_kernel.pylib/conics.pyscripts/generate.py
Files
../../.claude-plugin/marketplace.jsonasset751 bytes../../.claude-plugin/plugin.jsonasset640 bytesSKILL.mdcore10,968 bytesSKILL.mdcore10,968 bytesSKILL.mdcore10,968 bytesSKILL.mdcore10,968 bytesSKILL.mdcore10,968 byteslib/analytic_kernel.pyruns8,792 byteslib/conics.pyruns6,143 bytesreferences/conventions.mddoc5,812 bytesreferences/problem-schema.mddoc8,644 bytesscripts/generate.pyruns25,237 bytestemplate/board.htmlasset49,389 bytes
Read SKILL.md
# 解析几何解题 → 交互网页
## 这个技能产出什么
一个可直接用浏览器打开的单页 HTML(三栏):
- **左栏**:题面 + 动态控制台 —— 一个可变参数滑块(如直线倾斜角 θ / 动点参数 t)驱动实时
重算的几何量(交点坐标、斜率、数量积、弦长、面积…),以及"理论范围条"或"定值指示"。
- **中栏**:分步解析(公式用 **KaTeX**),可一键收起把空间让给画板。
- **右栏**:2D Canvas 动态几何画板(圆锥曲线 + 动直线/动点 + 向量 + 点标注 + 网格坐标轴),
叠加画笔涂鸦工具栏。
形态与目标模板 `/Users/wuyi/code/code2026/6/template/code_artifact.html` 一致。
## 依赖(重要)
计算核心 `lib/analytic_kernel.py` 依赖 **sympy**。运行脚本前先确认有能 import sympy 的View the complete source on GitHubedu-chem-reaction
When your agent uses it
把一个化学反应做成自包含的微观 3D 交互演示网页:左/上为 Three.js 可交互分子动画 (拖滑块看断键·成键·原子重组,分步高亮),右为 KaTeX 反应方程 + 分步讲解 + 原子守恒计数 + 可选能量-反应进程曲线。支持三入口——给定文字反应/方程、随机出题、上传图片识别后演示。 覆盖燃烧、化合/分解/置换/复分解、氧化还原(电子转移可视化)、有机机理(酯化等含催化剂·过渡态)。 统一由 sympy 精确驱动:自动配平方程、校验原子守恒与原子映射、推导键的断/成,答案与几何同源一致。 内置两套引擎并自动选择:morph(原子变形,展示原子守恒)与 mechanism(机理关键帧,展示催化/过渡态)。 混合几何:默认自建 VSEPR 分子库,环境装有 RDKit 则可用其由 SMILES 生成构象(绝不自动安装)。 其他 agent 也可调用本技能生成此类网页。形态与 edu-solid-geometry / edu-analytic-geometry 平行, 但用 Three.js + KaTeX 演示分子反应。 触发词:化学反应, 微观演示, 分子动画, 燃烧, 甲烷燃烧, 氢气燃烧, 电解水, 氧化还原, 电子转移, 酯化反应, 反应机理, 断键成键, 原子守恒, 质量守恒, 化学方程式配平, 解这个化学反应, 随机出一个化学反应, 这张图里的化学反应; chemistry reaction, microscopic/molecular animation, combustion, electrolysis, redox electron transfer, esterification mechanism, bond breaking and forming, atom conservation, balance equation, interactive chemistry reaction page.
What it loads into context
Frontmatter
518 tokensAlways available to the agent
SKILL.md
2,652 tokensWhen the skill is activated
Reference documents
3,526 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 这个技能产出什么
- 依赖(重要)
- 工作流程
- 两套引擎与自动选择
- 扩展
- 目录
Scripts executed separately
lib/molecules.pylib/reaction_kernel.pyscripts/generate.py
Files
SKILL.mdcore8,747 bytesSKILL.mdcore8,747 bytesSKILL.mdcore8,747 bytesSKILL.mdcore8,747 byteslib/molecules.pyruns12,089 byteslib/reaction_kernel.pyruns19,329 bytesreferences/conventions.mddoc4,556 bytesreferences/problem-schema.mddoc5,734 bytesscripts/generate.pyruns22,711 bytestemplate/reaction.htmlasset44,459 bytes
Read SKILL.md
# 化学反应微观演示 → 交互网页
## 这个技能产出什么
一个可直接用浏览器打开的单页 HTML:一侧是反应对应的 **3D 分子动画**(Three.js,可旋转缩放,
拖动“反应进度”滑块逐帧看 **化学键断裂/生成、原子重新组合**,分步高亮 + 浮动分子标签),
另一侧是 **KaTeX 反应方程 + 分步讲解 + 原子守恒计数器**,并可选 **能量-反应进程曲线**、
火焰、催化剂质子、电子转移等叠加层。形态与 `template/reaction.html` 一致。
## 依赖(重要)
计算核心 `lib/reaction_kernel.py` 依赖 **sympy**(用于配平)。运行脚本前先确认有一个能 import
sympy 的 `python3`:跑 `python3 -c "import sympy"`(本机:`/opt/homebrew/bin/python3.11`)。
**缺库时的处理(重要)**:若 import 报错(sympy 或后续用到的任何库都同理),**先询问用户是否安装**,
同意后再装(`python3 -m pip install <库名>`)或换解释器;**不要未经询问直接装**。View the complete source on GitHubedu-chem-video
When your agent uses it
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a chemistry problem (化学题: 氧化还原配平 双线桥 电子守恒, 物质的量计算, 化学平衡 三段式 平衡常数 转化率 反应速率, 离子反应, 电化学, 溶液 滴定, 工业流程), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and chalkboard-style canvas animation built around the chemical equation — delivered as a browser preview (index.html) first, MP4 export only if the user wants it.
What it loads into context
Frontmatter
171 tokensAlways available to the agent
SKILL.md
5,098 tokensWhen the skill is activated
Reference documents
21,959 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 必须遵守的规则
- 11 个步骤
- 常见错误
- 参考文件
Scripts executed separately
examples/equilibrium/anim.jsscripts/check_key.shscripts/chem_check.pyscripts/contact_sheet.pyscripts/init_env.shscripts/make_problem_png.pyscripts/new_video.shscripts/problem_boxes.pyscripts/setup_check.shshared/pron.pytemplate/anim.jstemplate/build_audio.pytemplate/chem.jstemplate/engine.jstemplate/make.shtemplate/render.mjs
Files
SKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesSKILL.mdcore16,552 bytesexamples/equilibrium/anim.jsruns11,332 bytesexamples/equilibrium/episode.jsonasset170 bytesexamples/equilibrium/problem.pngasset119,412 bytesexamples/equilibrium/script.jsonasset4,207 bytesexamples/equilibrium/storyboard.mddoc2,663 bytesreference/animation.mddoc17,428 bytesreference/chemistry-solving.mddoc6,330 bytesreference/glm-tts-setup.mddoc6,082 bytesreference/pronunciation.mddoc7,847 bytesreference/script-writing.mddoc6,452 bytesreference/troubleshooting.mddoc4,757 bytesreference/visual-design.mddoc6,634 bytesscripts/check_key.shruns1,745 bytesscripts/chem_check.pyruns6,841 bytesscripts/contact_sheet.pyruns1,399 bytesscripts/init_env.shruns1,287 bytesscripts/make_problem_png.pyruns5,271 bytesscripts/new_video.shruns2,931 bytesscripts/problem_boxes.pyruns3,081 bytesscripts/setup_check.shruns3,870 bytesshared/pron.jsonasset7,109 bytesshared/pron.pyruns8,455 bytestemplate/anim.jsruns18,968 bytestemplate/build_audio.pyruns30,928 bytestemplate/chem.jsruns22,971 bytestemplate/engine.jsruns39,473 bytestemplate/episode.jsonasset162 bytestemplate/fonts/PatrickHand-Regular.ttfasset214,772 bytestemplate/fonts/ZCOOLKuaiLe-Regular.ttfasset1,514,968 bytestemplate/index.htmlasset1,351 bytestemplate/make.shruns711 bytestemplate/problem.pngasset139,250 bytestemplate/render.mjsruns8,954 bytestemplate/script.jsonasset5,921 bytestemplate/storyboard.mddoc4,844 bytes
Read SKILL.md
# 化学题讲解视频 (edu-chem-video)
把一道化学题做成 16:9、1920×1080、带中文配音 + 中英双语字幕 + **黑板粉笔风格**动画的讲解视频(先给浏览器预览,用户要时再导出 MP4)。流水线与 edu-math-video / edu-physics-video 相同(配音、字幕、检查、渲染),区别在**解题方法**和**画面**:
- 解题:化学题的主线是"**守恒 + 以物质的量为中心**":写对并配平方程式(电子守恒 → 原子守恒 → 电荷守恒)→ 找关系(系数比、守恒、关系式)→ 以 n 为中心计算 / 三段式 → 守恒复查。
- 画面:墨绿黑板 + 粉笔线;**顶部常驻方程式条**,下面左边演示、右边石板。化合价在数轴上升降、电子一组组长到相等、系数从电子行飞进方程式、原子计数条打 ✓、双线桥上电子流动、分子盒按系数比反应、三段式逐行填写。和数学(米色笔记本)、物理(深蓝蓝图)一眼能分开。
```
script.json ──build_audio.py──► build/timeline.json + build/mix.wav + ../<name>.srt
(旁白) (GLM-TTS + 合成音乐) │
anim.js + chem.js + engine.js ◄───────────────┘ (按旁白时间点驱动动画)
├──open index.html ──► 浏览器直接播放(预览)
└──node render.mjs video──► ../<name>.mp4(用户要时才导出)
```
View the complete source on GitHubedu-math-video
When your agent uses it
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 — delivered as a browser preview (HTML) first, MP4 export only if the user wants it. Five visual templates — hand-drawn canvas animation (bilingual zh+en subtitles) or one of four board styles (粉笔黑板 chalk / 几何实验室 lab / 白板 whiteboard / 方格本 notebook, auto-rotating 3D figures) — and a choice of TTS engine (智谱 GLM-TTS, 豆包 Doubao, MiniMax, or free edge-tts / macOS say).
What it loads into context
Frontmatter
184 tokensAlways available to the agent
SKILL.md
2,981 tokensWhen the skill is activated
Reference documents
32,231 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 文件与约定
- 通用规则
- 步骤
- 参考文件
Scripts executed separately
examples/cone-parallel/anim.jslesson/engine/core.jslesson/engine/figure.jslesson/engine/player.jslesson/engine/themes.jslesson/measure2.mjslesson/package.jsonlesson/scripts/browser.mjslesson/scripts/build.mjslesson/scripts/check.mjslesson/scripts/compile.mjslesson/scripts/make.mjslesson/scripts/render.mjslesson/scripts/speak.mjslesson/scripts/tts.mjslesson/test/compile.test.mjslesson/test/core.test.mjslesson/test/figure.test.mjslesson/test/speak.test.mjsscripts/contact_sheet.pyscripts/init_env.shscripts/make_problem_png.pyscripts/new_video.shscripts/problem_boxes.pyscripts/setup_check.shshared/pron.pyshared/test_tts.pyshared/tts.pytemplate/anim.jstemplate/build_audio.pytemplate/engine.jstemplate/make.shtemplate/render.mjs
Files
SKILL.mdcore10,008 bytesSKILL.mdcore10,008 bytesSKILL.mdcore10,008 bytesexamples/cone-parallel/anim.jsruns15,000 bytesexamples/cone-parallel/episode.jsonasset152 bytesexamples/cone-parallel/problem.pngasset245,742 bytesexamples/cone-parallel/script.jsonasset6,632 bytesexamples/cone-parallel/storyboard.mddoc3,374 byteslesson/engine/core.jsruns3,148 byteslesson/engine/figure.jsruns21,200 byteslesson/engine/page.htmlasset2,490 byteslesson/engine/player.jsruns15,526 byteslesson/engine/themes.cssasset17,900 byteslesson/engine/themes.jsruns6,252 byteslesson/examples/parabola/lesson.jsonasset1,739 byteslesson/examples/prism-de/lesson.jsonasset8,477 byteslesson/examples/triangle/lesson.jsonasset1,587 byteslesson/measure2.mjsruns1,108 byteslesson/package-lock.jsonasset4,353 byteslesson/package.jsonruns411 byteslesson/reference/figures.mddoc3,491 byteslesson/reference/lesson-schema.mddoc8,239 byteslesson/reference/teaching-guide.mddoc3,244 byteslesson/scripts/browser.mjsruns1,226 byteslesson/scripts/build.mjsruns5,843 byteslesson/scripts/check.mjsruns6,103 byteslesson/scripts/compile.mjsruns9,312 byteslesson/scripts/make.mjsruns2,069 byteslesson/scripts/render.mjsruns4,242 byteslesson/scripts/speak.mjsruns1,824 byteslesson/scripts/tts.mjsruns2,152 byteslesson/test/compile.test.mjsruns4,902 byteslesson/test/core.test.mjsruns1,281 byteslesson/test/figure.test.mjsruns2,748 byteslesson/test/speak.test.mjsruns877 bytesreference/animation.mddoc13,740 bytesreference/handdrawn-flow.mddoc15,864 bytesreference/lesson-flow.mddoc8,177 bytesreference/pronunciation.mddoc7,267 bytesreference/script-writing.mddoc6,243 bytesreference/troubleshooting.mddoc3,917 bytesreference/tts-setup.mddoc8,607 bytesreference/visual-design.mddoc11,000 bytesscripts/contact_sheet.pyruns1,399 bytesscripts/init_env.shruns2,154 bytesscripts/make_problem_png.pyruns4,783 bytesscripts/new_video.shruns2,942 bytesscripts/problem_boxes.pyruns3,081 bytesscripts/setup_check.shruns3,893 bytesshared/pron.jsonasset7,124 bytesshared/pron.pyruns8,455 bytesshared/test_tts.pyruns6,771 bytesshared/tts.pyruns20,039 bytestemplate/anim.jsruns10,155 bytestemplate/build_audio.pyruns25,520 bytestemplate/engine.jsruns37,556 bytestemplate/episode.jsonasset147 bytestemplate/fonts/PatrickHand-Regular.ttfasset214,772 bytestemplate/fonts/ZCOOLKuaiLe-Regular.ttfasset1,514,968 bytestemplate/index.htmlasset1,314 bytestemplate/make.shruns788 bytestemplate/problem.pngasset35,826 bytestemplate/render.mjsruns8,954 bytestemplate/script.jsonasset2,910 bytestemplate/storyboard.mddoc2,070 bytes
Read SKILL.md
# 数学题讲解视频 (edu-math-video)
把一道数学题做成 16:9、1920×1080、带中文配音的讲解视频:**先生成能直接在浏览器里播放的网页预览,用户看过后再问要不要导出 MP4**。**五种画面模板、五种配音引擎可选**(配音在第 0 步定;板书风格自动选,预览页里可随时切换;只有导出 MP4 时才问用哪种风格)。
| 模板 | 画面 | 做法 | 适合 |
|---|---|---|---|
| `handdrawn` 手绘动画 | 手绘笔记本风 canvas 动画,中英双语字幕,背景音乐+音效 | 每题手写 `anim.js`,动作最自由(滑动重合、展开、拼接、动点) | 推理要靠"动"才看得懂的题、行程/动点、需要英文字幕 |
| `chalk` 粉笔黑板 | 黑板粉笔字、圈画强调、公式用 LaTeX(KaTeX)排版 | 写声明式 `lesson.json`,引擎自动排版 | 通用、老师讲题感 |
| `lab` 几何实验室 | 深色发光、步骤条、缓慢摆动的 3D 图 | 同上 | 高中立体几何、函数图像 |
| `whiteboard` 白板马克笔 | 白板、红色标签、便利贴提示 | 同上 | 初中 |
| `notebook` 方格本 | 方格纸、猫头鹰助教、印章 | 同上 | 小学、初一 |
四种板书模板共用 `lesson/` 引擎(同一份 lesson.json 随时切换风格),立体图自动旋转并实时计算虚实线。**板书模板比手绘快得多**(写几百行 JSON,而不是从零写动画),是默认推荐。
View the complete source on GitHubedu-physics-video
When your agent uses it
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a physics problem (物理题: mechanics/力学 受力分析 牛顿定律 斜面 传送带 板块 平抛 圆周 能量 动量, optics/光学 折射, electromagnetism/电磁 带电粒子), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and blueprint-style canvas animation where the motion follows the real solution — delivered as a browser preview (index.html) first, MP4 export only if the user wants it.
What it loads into context
Frontmatter
162 tokensAlways available to the agent
SKILL.md
5,529 tokensWhen the skill is activated
Reference documents
22,411 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 必须遵守的规则
- 11 个步骤
- 常见错误
- 参考文件
Scripts executed separately
examples/laser-curvature/anim.jsscripts/check_key.shscripts/contact_sheet.pyscripts/init_env.shscripts/make_problem_png.pyscripts/new_video.shscripts/problem_boxes.pyscripts/setup_check.shshared/pron.pytemplate/anim.jstemplate/build_audio.pytemplate/engine.jstemplate/make.shtemplate/phys.jstemplate/render.mjs
Files
SKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesSKILL.mdcore18,024 bytesexamples/laser-curvature/anim.jsruns18,394 bytesexamples/laser-curvature/episode.jsonasset145 bytesexamples/laser-curvature/problem.pngasset691,704 bytesexamples/laser-curvature/script.jsonasset5,913 bytesexamples/laser-curvature/storyboard.mddoc3,673 bytesreference/animation.mddoc18,234 bytesreference/glm-tts-setup.mddoc6,082 bytesreference/physics-solving.mddoc5,842 bytesreference/pronunciation.mddoc8,115 bytesreference/script-writing.mddoc6,247 bytesreference/troubleshooting.mddoc4,736 bytesreference/visual-design.mddoc7,225 bytesscripts/check_key.shruns1,745 bytesscripts/contact_sheet.pyruns1,399 bytesscripts/init_env.shruns1,287 bytesscripts/make_problem_png.pyruns5,271 bytesscripts/new_video.shruns2,929 bytesscripts/problem_boxes.pyruns3,081 bytesscripts/setup_check.shruns3,870 bytesshared/pron.jsonasset7,109 bytesshared/pron.pyruns8,455 bytestemplate/anim.jsruns16,679 bytestemplate/build_audio.pyruns30,911 bytestemplate/engine.jsruns38,772 bytestemplate/episode.jsonasset160 bytestemplate/fonts/PatrickHand-Regular.ttfasset214,772 bytestemplate/fonts/ZCOOLKuaiLe-Regular.ttfasset1,514,968 bytestemplate/index.htmlasset1,349 bytestemplate/make.shruns711 bytestemplate/phys.jsruns21,520 bytestemplate/problem.pngasset159,897 bytestemplate/render.mjsruns8,954 bytestemplate/script.jsonasset4,777 bytestemplate/storyboard.mddoc4,489 bytes
Read SKILL.md
# 物理题讲解视频 (edu-physics-video)
把一道物理题做成 16:9、1920×1080、带中文配音 + 中英双语字幕 + 蓝图风格动画的讲解视频(先给浏览器预览,用户要时再导出 MP4)。流水线与 edu-math-video 相同,区别在**解题方法**和**画面**:先按物理解题流程(建模 → 分段 → 受力 → 选规律 → 求解 → 验算)解对,再让画面把物理过程真实地演出来——力箭头按比例从作用点长出、物体按解析解运动、v-t 图同步生长、摩擦力随运动反向而转向。
```
script.json ──build_audio.py──► build/timeline.json + build/mix.wav + ../<name>.srt
(旁白) (GLM-TTS + 合成音乐) │
anim.js + phys.js + engine.js ◄───────────────┘ (按旁白时间点驱动动画)
├──open index.html ──► 浏览器直接播放(预览)
└──node render.mjs video──► ../<name>.mp4(用户要时才导出)
```
**核心原则:画面跟着旁白走,物理过程在图上真的发生。** 每句旁白都有一个动作把这句物理演出来;每个动画用"第 k 句旁白开始的时刻"`S.at(k, f)` 定时,绝不写死秒数;物体的位置只来自解析解 `x(t)`,用 `simT()` 线性映射时间(可以慢放,不能缓动)。
View the complete source on GitHubedu-solid-geometry
When your agent uses it
把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、 随机出题、上传题目图片识别后解题。覆盖正方体/长方体、棱锥/棱柱、圆柱/圆锥上的线面角、 二面角、异面直线夹角、点到平面距离、体积等题型,统一用"建系+向量法",并由 sympy 精确 计算驱动(答案、3D 坐标、步骤数值同源一致)。其他 agent 也可调用本技能生成此类网页。 触发词:立体几何, 线面角, 二面角, 异面直线, 点到平面距离, 正四棱锥, 正方体求角, 解这道几何题, 随机出一道立体几何题, 这张图里的立体几何题; solid geometry, line-plane angle, dihedral angle, angle between skew lines, distance to plane, interactive geometry solution page.
What it loads into context
Frontmatter
299 tokensAlways available to the agent
SKILL.md
2,187 tokensWhen the skill is activated
Reference documents
3,158 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 这个技能产出什么
- 依赖(重要)
- 工作流程
- 扩展
- 目录
Scripts executed separately
lib/bodies.pylib/geometry_kernel.pyscripts/generate.py
Files
SKILL.mdcore7,502 bytesSKILL.mdcore7,502 bytesSKILL.mdcore7,502 bytesSKILL.mdcore7,502 bytesSKILL.mdcore7,502 byteslib/bodies.pyruns2,074 byteslib/geometry_kernel.pyruns11,000 bytesreferences/conventions.mddoc2,895 bytesreferences/problem-schema.mddoc6,447 bytesscripts/generate.pyruns15,776 bytestemplate/lesson.htmlasset51,133 bytes
Read SKILL.md
# 立体几何解题 → 交互网页
## 这个技能产出什么
一个可直接用浏览器打开的单页 HTML:左侧题面/答案/分步解析(公式用 MathJax),
右侧是题目对应的 3D 模型(Three.js,可旋转缩放,分步高亮关键元素并切换镜头)。
形态与 `template/lesson.html` 一致。
## 依赖(重要)
计算核心 `lib/geometry_kernel.py` 依赖 **sympy**。运行脚本前先确认有一个能 import sympy 的
`python3`:跑 `python3 -c "import sympy"`。
**缺库时的处理(重要)**:若 import 报错(sympy 或后续用到的任何库都同理),**先询问用户是否安装**,
得到同意后再帮忙安装(`python3 -m pip install <库名>`),或换一个已装该库的解释器;**不要未经询问直接装**。
下文命令里的 `python3` 均指这个能跑通依赖的解释器。View the complete source on GitHubSkills included
- edu-analytic-geometry
- edu-chem-reaction
- edu-chem-video
- edu-math-video
- edu-physics-video
- edu-solid-geometry
Repository facts
- License
- Apache-2.0
- Created
- Jun 4, 2026
- Last pushed
- Oct 23, 2026
- Forks
- 385
- Open issues
- 7
- Project activity
- Active
Rank over the last 12 weeks
Now #588 · best #532 · down 9 in 30 days
- #581 on Nov 1
- #584 on Nov 2
- #587 on Nov 3
- #586 on Nov 4
- #590 on Nov 5
- #588 since Nov 6
79 earlier periods
- #633 on Aug 2
- #625 on Aug 7
- #620 on Aug 8
- #663 on Aug 11
- #657 on Aug 12
- #651 on Aug 13
- #650 on Aug 14
- #628 on Aug 15
- #640 on Aug 16
- #652 on Aug 17
- #667 on Aug 18
- #654 on Aug 20
- #659 on Aug 21
- #603 on Aug 22
- #580 on Aug 23
- #574 on Aug 24
- #584 on Aug 25
- #571 on Aug 26
- #582 on Aug 27
- #589 on Aug 28
- #551 on Aug 29
- #545 on Aug 30
- #570 on Aug 31
- #576 on Sep 1
- #567 on Sep 2
- #563 on Sep 3
- #546 on Sep 4
- #541 on Sep 5
- #551 on Sep 6
- #560 on Sep 7
- #578 on Sep 8
- #565 on Sep 9
- #568 on Sep 10
- #561 on Sep 11
- #557 on Sep 12
- #558 on Sep 13
- #581 on Sep 14
- #571 on Sep 15
- #583 on Sep 16
- #579 on Sep 17
- #582 on Sep 18
- #567 on Sep 19
- #576 on Sep 20
- #581 on Sep 21
- #591 on Sep 22
- #589 on Sep 23
- #563 on Sep 25
- #554 on Sep 26
- #565 on Sep 27
- #564 on Sep 28
- #583 on Sep 29
- #566 on Sep 30
- #552 on Oct 1
- #554 on Oct 2
- #537 on Oct 3
- #539 on Oct 4
- #547 on Oct 5
- #558 on Oct 6
- #559 on Oct 7
- #579 on Oct 8
- #569 on Oct 9
- #543 on Oct 10
- #542 on Oct 11
- #551 on Oct 12
- #550 on Oct 13
- #556 on Oct 14
- #545 on Oct 15
- #549 on Oct 16
- #542 on Oct 17
- #541 on Oct 18
- #554 on Oct 19
- #558 on Oct 20
- #559 on Oct 21
- #550 on Oct 22
- #542 on Oct 23
- #532 on Oct 24
- #585 on Oct 25
- #581 on Oct 28
- #580 from Oct 29 to Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 54 notes
skills/edu-analytic-geometry/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-analytic-geometry/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-analytic-geometry/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-analytic-geometry/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-reaction/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-reaction/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-reaction/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/edu-chem-video/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 4 dangerous shell commandsin 4 files: edu-analytic-geometry/SKILL.md:93 edu-chem-video/scripts/new_video.sh:34 edu-math-video/scripts/new_video.sh:34 and 1 more
- 155 network referencesin 19 files: edu-math-video/lesson/package-lock.json:18 edu-math-video/shared/tts.py:5 edu-math-video/reference/tts-setup.md:45 and 16 more
- 2 obfuscation signalsin 2 files: edu-math-video/lesson/engine/themes.js:5 edu-math-video/shared/tts.py:160
- No instruction overrides
- 73 executable scriptsin 73 files: edu-analytic-geometry/lib/analytic_kernel.py:1 edu-analytic-geometry/lib/conics.py:1 edu-analytic-geometry/scripts/generate.py:1 and 70 more
- 185 references to secretsin 27 files: edu-chem-video/template/build_audio.py:16 edu-physics-video/template/build_audio.py:16 edu-math-video/scripts/init_env.sh:2 and 24 more
- No requests to vote in Hot
Show all 419 signals by file
skills/edu-analytic-geometry/SKILL.md
- Dangerous shell operationline 93
python3 -B /tmp/ag_build.py && rm -f /tmp/ag_build.py # -B 不写字节码;跑完删临时脚本,cwd 只剩 .html
skills/edu-analytic-geometry/lib/analytic_kernel.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-analytic-geometry/lib/conics.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-analytic-geometry/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-analytic-geometry/template/board.html
- Network accessline 6
<title>解析几何互动学习</title> <!-- Tailwind 现代排版 --> <script src="https://cdn.tailwindcss.com"></script> - Network accessline 7
<!-- Tailwind 现代排版 --> <script src="https://cdn.tailwindcss.com"></script> <!-- KaTeX 极速公式渲染 --> - Network accessline 8
<script src="https://cdn.tailwindcss.com"></script> - Network accessline 9
<!-- KaTeX 极速公式渲染 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css"> <script src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.js"></script> - Network accessline 10
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css"> - Network accessline 11
<script src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.js"></script> - Network accessline 12
<script src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/contrib/auto-render.min.js"></script>
skills/edu-chem-reaction/lib/molecules.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-chem-reaction/lib/reaction_kernel.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-chem-reaction/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-chem-reaction/template/reaction.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>化学反应微观 3D 演示</title> <script src="https://cdn.tailwindcss.com"></script> - Network accessline 6
<title>化学反应微观 3D 演示</title> <script src="https://cdn.tailwindcss.com"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> - Network accessline 7
<script src="https://cdn.tailwindcss.com"></script> - Network accessline 8
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> - Network accessline 9
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> - Network accessline 10
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css" crossorigin="anonymous"> - Network accessline 11
<script src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.js" crossorigin="anonymous"></script> - Network accessline 12
<script src="https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/contrib/auto-render.min.js" crossorigin="anonymous"></script>
skills/edu-chem-video/SKILL.md
skills/edu-chem-video/examples/equilibrium/anim.js
- Executable scriptline 1
Executable file
skills/edu-chem-video/reference/glm-tts-setup.md
- Network accessline 7
| 项 | 值 | |---|---| | 接口 | `POST https://open.bigmodel.cn/api/paas/v4/audio/speech` | - Network accessline 8
[Credential-related source omitted] - Network accessline 9
| 接口 | `POST https://open.bigmodel.cn/api/paas/v4/audio/speech` | - Access to secretsline 10
[Credential-related source omitted] - Network accessline 24
> 配音使用智谱 GLM-TTS,需要你的 API Key: > 1. 打开 https://bigmodel.cn 注册/登录(手机号即可)。 - Network accessline 25
> 1. 打开 https://bigmodel.cn 注册/登录(手机号即可)。 - Network accessline 26
> 2. 进入 https://bigmodel.cn/usercenter/proj-mgmt/apikeys ,点"添加新的 API Key",复制它。 - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted]
skills/edu-chem-video/reference/troubleshooting.md
- Access to secretsline 11
[Credential-related source omitted]
skills/edu-chem-video/scripts/check_key.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted]
skills/edu-chem-video/scripts/chem_check.py
- Executable scriptline 1
Executable file
skills/edu-chem-video/scripts/contact_sheet.py
- Executable scriptline 1
Executable file
skills/edu-chem-video/scripts/init_env.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 2
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Network accessline 12
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 13
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Network accessline 14
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted]
skills/edu-chem-video/scripts/make_problem_png.py
- Executable scriptline 1
Executable file
skills/edu-chem-video/scripts/new_video.sh
skills/edu-chem-video/scripts/problem_boxes.py
- Executable scriptline 1
Executable file
skills/edu-chem-video/scripts/setup_check.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Network accessline 35
elif [ -n "$FB" ]; then miss "a TTS choice (no GLM_API_KEY; only the fallback $FB is left)" "ASK THE USER: fill in a key (bash $SKILL/scripts/init_env.sh <workspace_root>, then wait for them) or use the fallback, warning that it sounds - Network accessline 36
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Network accessline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted]
skills/edu-chem-video/shared/pron.py
- Executable scriptline 1
Executable file
skills/edu-chem-video/template/anim.js
- Executable scriptline 1
Executable file
skills/edu-chem-video/template/build_audio.py
- Executable scriptline 1
Executable file - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Network accessline 174
return tts_say(text, out) for attempt in range(4): r = requests.post( - Network accessline 175
for attempt in range(4): r = requests.post( "https://open.bigmodel.cn/api/paas/v4/audio/speech", - Network accessline 176
r = requests.post( - Network accessline 177
"https://open.bigmodel.cn/api/paas/v4/audio/speech", - Access to secretsline 178
[Credential-related source omitted] - Network accessline 197
k = os.path.basename(path) if k not in cache: r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Network accessline 198
[Credential-related source omitted] - Network accessline 199
r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 534
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 537
[Credential-related source omitted] - Access to secretsline 539
[Credential-related source omitted] - Access to secretsline 542
[Credential-related source omitted] - Network accessline 543
[Credential-related source omitted] - Access to secretsline 543
[Credential-related source omitted] - Network accessline 544
[Credential-related source omitted] - Access to secretsline 544
[Credential-related source omitted] - Network accessline 545
"(key from https://bigmodel.cn/usercenter/proj-mgmt/apikeys). Never invent or print a key. " - Access to secretsline 564
[Credential-related source omitted] - Access to secretsline 569
[Credential-related source omitted] - Access to secretsline 570
[Credential-related source omitted] - Access to secretsline 659
[Credential-related source omitted]
skills/edu-chem-video/template/chem.js
- Executable scriptline 1
Executable file - Network accessline 255
* Returns cell(r, c) -> [x, y] centre (r = -1 is the header row). */ function iceTable(x, y, o) { const cw = o.cw || 170, rh = o.rh || 66, lw = o.lw || 150, nc = o.cols.length, nr = o.rows.length; - Network accessline 256
function iceTable(x, y, o) { const cw = o.cw || 170, rh = o.rh || 66, lw = o.lw || 150, nc = o.cols.length, nr = o.rows.length; const cell = (r, c) => [x + lw + cw * (c + 0.5), y + rh * (r + 1.5)]; - Network accessline 257
const cw = o.cw || 170, rh = o.rh || 66, lw = o.lw || 150, nc = o.cols.length, nr = o.rows.length;
skills/edu-chem-video/template/engine.js
- Executable scriptline 1
Executable file
skills/edu-chem-video/template/make.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/edu-chem-video/template/render.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/SKILL.md
- Access to secretsline 20
[Credential-related source omitted]
skills/edu-math-video/examples/cone-parallel/anim.js
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/engine/core.js
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/engine/figure.js
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/engine/player.js
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/engine/themes.css
- Network accessline 38
.th-chalk{background:repeating-linear-gradient(92deg,#0000 0 3px,#00000014 3px 5px,#0000 5px 11px),linear-gradient(180deg,#8a5b37,#5d3b22 60%,#4a2e1a)} .th-chalk .surface{left:26px;top:26px;width:1228px;height:614px;border-radius:3px;overfl - Network accessline 39
.th-chalk .surface{left:26px;top:26px;width:1228px;height:614px;border-radius:3px;overflow:hidden;background:radial-gradient(ellipse 80% 70% at 32% 28%,#36654f,#264b3c 55%,#1b372b);box-shadow:inset 0 0 0 2px #0006,inset 0 0 90px #000a} .th- - Network accessline 40
.th-chalk .surface::before{content:"";position:absolute;inset:0;opacity:.22;mix-blend-mode:screen;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fr - Network accessline 88
/* ================= whiteboard · 白板马克笔 ================= */ .th-whiteboard{background:radial-gradient(ellipse 75% 60% at 50% 30%,#f1ede6,#dcd6cb 60%,#cbc4b6)} .th-whiteboard .back::before{content:"";position:absolute;inset:0;opacity:.35;mi - Network accessline 89
.th-whiteboard{background:radial-gradient(ellipse 75% 60% at 50% 30%,#f1ede6,#dcd6cb 60%,#cbc4b6)} .th-whiteboard .back::before{content:"";position:absolute;inset:0;opacity:.35;mix-blend-mode:multiply;background:url("data:image/svg+xml;utf8 - Network accessline 90
.th-whiteboard .back::before{content:"";position:absolute;inset:0;opacity:.35;mix-blend-mode:multiply;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type
skills/edu-math-video/lesson/engine/themes.js
- Executable scriptline 1
Executable file - Possible obfuscationline 5
const OWL = `<svg class="owl" viewBox="0 0 160 190"><ellipse cx="80" cy="182" rx="50" ry="6" fill="#0001"/><path d="M30 70 L22 30 L52 52 Z M130 70 L138 30 L108 52 Z" fill="#e67700"/><ellipse cx="80" cy="112" rx="62" ry="66" fill="#f59f00"/>
skills/edu-math-video/lesson/measure2.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/package-lock.json
- Network accessline 18
"node_modules/@fontsource/jetbrains-mono": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.1.0.tgz", - Network accessline 19
"version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.1.0.tgz", "integrity": "sha512-YzWpGYY3PoqvmvwW2Hb4NwkN5C7LO0FmZugEGcFe6cNNE/cMgH9JhW5LI6hjG+1+nwgSHyJtKmblHNrUqlyhWg==", - Network accessline 20
"resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.1.0.tgz", - Network accessline 24
"node_modules/@fontsource/noto-sans-sc": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.1.0.tgz", - Network accessline 25
"version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.1.0.tgz", "integrity": "sha512-6Za/beXpkP0nStbyPRJPGRGwvjHwrlP0gbR/73bJKXWyjzsRQA+LF9990R5oPmgm+NmBDb0grad6Q9E7OEzLtw==", - Network accessline 26
"resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.1.0.tgz", - Network accessline 30
"node_modules/@fontsource/noto-serif-sc": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/noto-serif-sc/-/noto-serif-sc-5.1.0.tgz", - Network accessline 31
"version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/noto-serif-sc/-/noto-serif-sc-5.1.0.tgz", "integrity": "sha512-KUqvssRd5UGNk1tYykiKT+7cuXdCjQe865z0tv/oz6RQc4d48DjEvx4uBH6yO3WwN49SsgyV6Ajxd9iBIUnAQg==", - Network accessline 32
"resolved": "https://registry.npmjs.org/@fontsource/noto-serif-sc/-/noto-serif-sc-5.1.0.tgz", - Network accessline 36
"node_modules/@fontsource/zcool-kuaile": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/zcool-kuaile/-/zcool-kuaile-5.1.0.tgz", - Network accessline 37
"version": "5.1.0", "resolved": "https://registry.npmjs.org/@fontsource/zcool-kuaile/-/zcool-kuaile-5.1.0.tgz", "integrity": "sha512-q9IarqgD8P1XBjAI1Wf31PE0wIm71y9JEHPJkcW979XrzWCxRyQPkKMu6S8zH0kP2LVMfmy9o9M887bZ/C4B1w==", - Network accessline 38
"resolved": "https://registry.npmjs.org/@fontsource/zcool-kuaile/-/zcool-kuaile-5.1.0.tgz", - Network accessline 42
"node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - Network accessline 43
"version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - Network accessline 44
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - Network accessline 51
"node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 52
"version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - Network accessline 53
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 65
"node_modules/katex": { "version": "0.16.9", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", - Network accessline 66
"version": "0.16.9", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", - Network accessline 67
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", - Network accessline 68
"integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", "funding": [ "https://opencollective.com/katex", - Network accessline 69
"funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" - Network accessline 70
"https://opencollective.com/katex", - Network accessline 71
"https://github.com/sponsors/katex" - Network accessline 81
"node_modules/lxgw-wenkai-webfont": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/lxgw-wenkai-webfont/-/lxgw-wenkai-webfont-1.7.0.tgz", - Network accessline 82
"version": "1.7.0", "resolved": "https://registry.npmjs.org/lxgw-wenkai-webfont/-/lxgw-wenkai-webfont-1.7.0.tgz", "integrity": "sha512-kVJmT4xMAyOLhG6q0w63wJkVU7RP8UMQRGoAWj9tnpzL7sWFFYiEHBdUQyW9myqBQFa5SQfWfa2VLYF4IJBL5g==", - Network accessline 83
"resolved": "https://registry.npmjs.org/lxgw-wenkai-webfont/-/lxgw-wenkai-webfont-1.7.0.tgz", - Network accessline 87
"node_modules/playwright": { "version": "1.48.2", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz", - Network accessline 88
"version": "1.48.2", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz", "integrity": "sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==", - Network accessline 89
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz", - Network accessline 105
"node_modules/playwright-core": { "version": "1.48.2", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz", - Network accessline 106
"version": "1.48.2", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz", "integrity": "sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==", - Network accessline 107
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz",
skills/edu-math-video/lesson/package.json
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/scripts/browser.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/scripts/build.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/edu-math-video/lesson/scripts/check.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/edu-math-video/lesson/scripts/compile.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/scripts/make.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/edu-math-video/lesson/scripts/render.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/edu-math-video/lesson/scripts/speak.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/scripts/tts.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/test/compile.test.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/test/core.test.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/test/figure.test.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/lesson/test/speak.test.mjs
- Executable scriptline 1
Executable file
skills/edu-math-video/reference/handdrawn-flow.md
- Access to secretsline 104
[Credential-related source omitted]
skills/edu-math-video/reference/lesson-flow.md
- Access to secretsline 82
[Credential-related source omitted]
skills/edu-math-video/reference/troubleshooting.md
- Access to secretsline 12
[Credential-related source omitted]
skills/edu-math-video/reference/tts-setup.md
- Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 45
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Network accessline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Network accessline 53
引导用户: > 1. 打开 https://bigmodel.cn 注册/登录。 - Network accessline 54
> 1. 打开 https://bigmodel.cn 注册/登录。 - Network accessline 55
> 2. 在 https://bigmodel.cn/usercenter/proj-mgmt/apikeys 点"添加新的 API Key",复制。 - Access to secretsline 57
[Credential-related source omitted] - Network accessline 62
| 项 | 值 | |---|---| | 接口 | `POST https://openspeech.bytedance.com/api/v3/tts/unidirectional`(HTTP Chunked) | - Network accessline 63
[Credential-related source omitted] - Network accessline 64
| 接口 | `POST https://openspeech.bytedance.com/api/v3/tts/unidirectional`(HTTP Chunked) | - Access to secretsline 65
[Credential-related source omitted] - Network accessline 70
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Network accessline 75
[Credential-related source omitted] - Network accessline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Network accessline 77
| 地址 | `MINIMAX_API_HOST`,默认 `https://api.minimax.cn`(官方文档的地址);key 来自其他站点时按该站点文档改 | - Network accessline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted]
skills/edu-math-video/scripts/contact_sheet.py
- Executable scriptline 1
Executable file
skills/edu-math-video/scripts/init_env.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 2
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Network accessline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Network accessline 22
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Network accessline 23
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Network accessline 24
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted]
skills/edu-math-video/scripts/make_problem_png.py
- Executable scriptline 1
Executable file
skills/edu-math-video/scripts/new_video.sh
skills/edu-math-video/scripts/problem_boxes.py
- Executable scriptline 1
Executable file
skills/edu-math-video/scripts/setup_check.sh
skills/edu-math-video/shared/pron.py
- Executable scriptline 1
Executable file
skills/edu-math-video/shared/test_tts.py
- Executable scriptline 1
Executable file - Network accessline 44
def test_minimax_ok_and_errors(self): audio, url = tts.parse_minimax({"data": {"audio": "4142", "status": 2, "subtitle_file": "https://x/s.json"}, - Network accessline 45
audio, url = tts.parse_minimax({"data": {"audio": "4142", "status": 2, "subtitle_file": "https://x/s.json"}, - Network accessline 46
"base_resp": {"status_code": 0, "status_msg": "success"}}) self.assertEqual((audio, url), (b"AB", "https://x/s.json")) with self.assertRaises(tts.Fatal): - Network accessline 47
self.assertEqual((audio, url), (b"AB", "https://x/s.json")) - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Network accessline 75
sub = [{"text": "x", "time_begin": 0, "time_end": 500, "timestamped_words": [{"word": "x", "time_begin": 0, "time_end": 500}]}] ok = {"data": {"audio": tiny_mp3().hex(), "status": 2, "subtitle_file": "https://x/s.jso - Network accessline 76
"timestamped_words": [{"word": "x", "time_begin": 0, "time_end": 500}]}] ok = {"data": {"audio": tiny_mp3().hex(), "status": 2, "subtitle_file": "https://x/s.json"}, "base_resp": {"status_code": 0}} - Network accessline 77
ok = {"data": {"audio": tiny_mp3().hex(), "status": 2, "subtitle_file": "https://x/s.json"}, - Network accessline 82
words = self.t.synth("函数f(x)的值", out) url, kw = post.call_args[0][0], post.call_args[1] self.assertEqual(url, "https://api.minimax.cn/v1/t2a_v2") - Network accessline 83
url, kw = post.call_args[0][0], post.call_args[1] self.assertEqual(url, "https://api.minimax.cn/v1/t2a_v2") self.assertEqual(kw["headers"]["Authorization"], "Bearer k") - Network accessline 84
self.assertEqual(url, "https://api.minimax.cn/v1/t2a_v2") - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted]
skills/edu-math-video/shared/tts.py
- Executable scriptline 1
Executable file - Access to secretsline 4
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
[Credential-related source omitted] - Access to secretsline 6
[Credential-related source omitted] - Network accessline 7
MINIMAX_API_HOST (https://api.minimax.cn) - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Possible obfuscationline 160
chunks.append(base64.b64decode(j["data"])) - Access to secretsline 233
[Credential-related source omitted] - Network accessline 256
def _glm(self, text): r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/speech", - Network accessline 257
r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/speech", - Access to secretsline 258
[Credential-related source omitted] - Network accessline 265
def _doubao(self, text): rate = max(-50, min(100, round((self.speed - 1) * 100))) r = requests.post("https://openspeech.bytedance.com/api/v3/tts/unidirectional", - Network accessline 266
[Credential-related source omitted] - Network accessline 267
r = requests.post("https://openspeech.bytedance.com/api/v3/tts/unidirectional", - Access to secretsline 268
[Credential-related source omitted] - Network accessline 281
def _minimax(self, text): host = self.env.get("MINIMAX_API_HOST", "https://api.minimax.cn").rstrip("/") - Network accessline 282
host = self.env.get("MINIMAX_API_HOST", "https://api.minimax.cn").rstrip("/") - Network accessline 284
text = text.replace("(", "(").replace(")", ")") r = requests.post(f"{host}/v1/t2a_v2", - Network accessline 285
r = requests.post(f"{host}/v1/t2a_v2", - Access to secretsline 286
[Credential-related source omitted] - Network accessline 297
if sub_url: # timings are a nice-to-have: anchors fall back to text position without them try: words = minimax_words(requests.get(sub_url, timeout=60).json()) - Network accessline 298
try: words = minimax_words(requests.get(sub_url, timeout=60).json()) except Exception as ex: - Network accessline 299
words = minimax_words(requests.get(sub_url, timeout=60).json())
skills/edu-math-video/template/anim.js
- Executable scriptline 1
Executable file
skills/edu-math-video/template/build_audio.py
- Executable scriptline 1
Executable file - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Network accessline 89
k = os.path.basename(path) if k not in cache: r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Network accessline 90
[Credential-related source omitted] - Network accessline 91
r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Access to secretsline 92
[Credential-related source omitted] - Access to secretsline 432
[Credential-related source omitted] - Access to secretsline 437
[Credential-related source omitted] - Access to secretsline 438
[Credential-related source omitted] - Access to secretsline 539
[Credential-related source omitted]
skills/edu-math-video/template/engine.js
- Executable scriptline 1
Executable file
skills/edu-math-video/template/make.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/edu-math-video/template/render.mjs
- Executable scriptline 1
Executable file
skills/edu-physics-video/SKILL.md
skills/edu-physics-video/examples/laser-curvature/anim.js
- Executable scriptline 1
Executable file
skills/edu-physics-video/reference/glm-tts-setup.md
- Network accessline 7
| 项 | 值 | |---|---| | 接口 | `POST https://open.bigmodel.cn/api/paas/v4/audio/speech` | - Network accessline 8
[Credential-related source omitted] - Network accessline 9
| 接口 | `POST https://open.bigmodel.cn/api/paas/v4/audio/speech` | - Access to secretsline 10
[Credential-related source omitted] - Network accessline 24
> 配音使用智谱 GLM-TTS,需要你的 API Key: > 1. 打开 https://bigmodel.cn 注册/登录(手机号即可)。 - Network accessline 25
> 1. 打开 https://bigmodel.cn 注册/登录(手机号即可)。 - Network accessline 26
> 2. 进入 https://bigmodel.cn/usercenter/proj-mgmt/apikeys ,点"添加新的 API Key",复制它。 - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted]
skills/edu-physics-video/reference/troubleshooting.md
- Access to secretsline 11
[Credential-related source omitted]
skills/edu-physics-video/scripts/check_key.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 4
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted]
skills/edu-physics-video/scripts/contact_sheet.py
- Executable scriptline 1
Executable file
skills/edu-physics-video/scripts/init_env.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 2
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 9
[Credential-related source omitted] - Network accessline 12
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 13
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Network accessline 14
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted]
skills/edu-physics-video/scripts/make_problem_png.py
- Executable scriptline 1
Executable file
skills/edu-physics-video/scripts/new_video.sh
skills/edu-physics-video/scripts/problem_boxes.py
- Executable scriptline 1
Executable file
skills/edu-physics-video/scripts/setup_check.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 25
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Network accessline 35
elif [ -n "$FB" ]; then miss "a TTS choice (no GLM_API_KEY; only the fallback $FB is left)" "ASK THE USER: fill in a key (bash $SKILL/scripts/init_env.sh <workspace_root>, then wait for them) or use the fallback, warning that it sounds - Network accessline 36
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Network accessline 37
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted]
skills/edu-physics-video/shared/pron.py
- Executable scriptline 1
Executable file
skills/edu-physics-video/template/anim.js
- Executable scriptline 1
Executable file
skills/edu-physics-video/template/build_audio.py
- Executable scriptline 1
Executable file - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Network accessline 174
return tts_say(text, out) for attempt in range(4): r = requests.post( - Network accessline 175
for attempt in range(4): r = requests.post( "https://open.bigmodel.cn/api/paas/v4/audio/speech", - Network accessline 176
r = requests.post( - Network accessline 177
"https://open.bigmodel.cn/api/paas/v4/audio/speech", - Access to secretsline 178
[Credential-related source omitted] - Network accessline 197
k = os.path.basename(path) if k not in cache: r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Network accessline 198
[Credential-related source omitted] - Network accessline 199
r = requests.post("https://open.bigmodel.cn/api/paas/v4/audio/transcriptions", - Access to secretsline 200
[Credential-related source omitted] - Access to secretsline 534
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 537
[Credential-related source omitted] - Access to secretsline 539
[Credential-related source omitted] - Access to secretsline 542
[Credential-related source omitted] - Network accessline 543
[Credential-related source omitted] - Access to secretsline 543
[Credential-related source omitted] - Network accessline 544
[Credential-related source omitted] - Access to secretsline 544
[Credential-related source omitted] - Network accessline 545
"(key from https://bigmodel.cn/usercenter/proj-mgmt/apikeys). Never invent or print a key. " - Access to secretsline 564
[Credential-related source omitted] - Access to secretsline 569
[Credential-related source omitted] - Access to secretsline 570
[Credential-related source omitted] - Access to secretsline 659
[Credential-related source omitted]
skills/edu-physics-video/template/engine.js
- Executable scriptline 1
Executable file
skills/edu-physics-video/template/make.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/edu-physics-video/template/phys.js
- Executable scriptline 1
Executable file
skills/edu-physics-video/template/render.mjs
- Executable scriptline 1
Executable file
skills/edu-solid-geometry/lib/bodies.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-solid-geometry/lib/geometry_kernel.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-solid-geometry/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/edu-solid-geometry/template/lesson.html
- Network accessline 573
{ "imports": { "three": "https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.js", - Network accessline 574
"imports": { "three": "https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.js", "three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/" - Network accessline 575
"three": "https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.js", - Network accessline 576
"three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/" - Network accessline 600
}; </script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> - Network accessline 602
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/edu-analytic-geometry/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/edu-analytic-geometry/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/edu-analytic-geometry/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/edu-analytic-geometry/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/edu-analytic-geometry/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/wy51ai-edulab/)