edulab is a collection of coding-agent skills that turn academic questions into interactive lesson web pages. It is used to solve and present educational problems, including solid-geometry exercises, through guided, self-contained lessons. The catalogue add-ons are the project's own education-focused skills and plugins.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add wy51ai/edulab --skill edu-chem-reactiongit clone --depth 1 https://github.com/wy51ai/edulabWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/wy51ai/edulab/edu-chem-reaction)<a href="https://agentmods.dev/skills/wy51ai/edulab/edu-chem-reaction"><img src="https://agentmods.dev/badge/skills/wy51ai/edulab/edu-chem-reaction/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/wy51ai/edulab/edu-chem-reaction"><img src="https://agentmods.dev/badge/skills/wy51ai/edulab/edu-chem-reaction.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00495 | $0.02652 |
| Opus 5 | $0.00247 | $0.01326 |
| Sonnet 5 | $0.00099 | $0.00530 |
| Haiku 4.5 | $0.00049 | $0.00265 |
Grade A, and why
edu-chem-reaction scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
化学反应微观演示 → 交互网页
这个技能产出什么
一个可直接用浏览器打开的单页 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 <库名>)或换解释器;不要未经询问直接装。
RDKit 是可选项:装了则混合几何会用它由 SMILES 生成真实构象,没装就用自建 VSEPR 库——
两种都能跑,本技能任何时候都不会自动安装 RDKit。
工作流程
第 1 步:得到 reaction spec(三入口归一)
把反应整理成结构化 spec(格式见 references/problem-schema.md):反应物/产物、原子映射或显式原子、
条件(点燃/通电/催化/可逆)、所属类别、分步讲解、语言。
- 文字反应/方程:直接抽取反应物与产物,调 kernel 自动配平。
- 图片:用视觉读图抽取方程,并把识别到的反应回显给用户确认(方程/条件/类别/语言)后再继续。
- 随机出题:从注册表挑一个反应,或在库内物种间组合并用
balanced_coefficients配平、答案规整再用。
输出语言跟随提示词语言:英文提示 → 英文网页,中文 → 中文。spec 里记下
meta.language。
第 2 步:用 kernel 精确计算(不要心算)
按 references/conventions.md 的建模约定,调用 lib/reaction_kernel.py:
balanced_coefficients(...)用 sympy 零空间自动配平(方程系数有保证);assemble_data(spec)展开分子实例、校验原子守恒与原子映射双射、推导键的断/成(差集)、 算出每个原子在反应物态/产物态的世界坐标,产出注入模板的data。
可先命令行自检:
python3 lib/reaction_kernel.py # 配平 + 守恒 + 键差 自检
python3 lib/molecules.py # 分子库自检
第 3 步:写 build_* 拼 spec 并注入模板
📍 输出位置(重要):成品 HTML 一律写到用户当前工作目录(
Path.cwd()),除非用户显式指定路径。 绝不要写进技能自身目录(skills/edu-chem-reaction/output/等)——那是技能内部的开发样例目录。
照着 scripts/generate.py 里的 build_* 改即可,再 render_html(K.assemble_data(spec), out):
from pathlib import Path
out = Path.cwd() / "reaction-<反应简述>.html" # 落在用户当前目录
render_html(K.assemble_data(spec), out)
范例(直接照抄改):
build_combustion_ch4(甲烷燃烧·morph·火焰·能量)——高层species + atom_map的范本;build_redox_na_cl2(钠+氯气·氧化还原·电子转移)——叠加electrons;build_esterification(酯化·mechanism·催化剂·过渡态)——低层atoms + fragments + 关键帧的范本。
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 123 lines · 495 tokens per session scan A f99362d4c1c6
edu-chem-reaction is a skill published in the GitHub repository wy51ai/edulab (1,161 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 495 tokens to every session and 2,652 once invoked, about $0.0025 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
html-ppt-zhangzara-pin-and-paper
A field-biology capstone on urban pollinator decline — the survey design, the data, the contribution, and the caveats. Built as a decision-grade coursework defense deck for faculty reviewers.
proof-writer
A tool for writing or checking rigorous mathematical proofs for claims such as theorems, lemmas, propositions, and corollaries.
tooluniverse-organic-chemistry
Organic chemistry reasoning guide for reaction product prediction, mechanism analysis (electrophilic/nucleophilic substitution, addition, elimination, pericyclic, radical), and spectroscopy interpretation (1H/13C NMR, IR, MS). Reasons from first principles (electron flow, kinetic vs thermodynamic) rather than…
scaffold-exercises
Scaffold a graded problem set with sections, problems, worked solutions, and short "why this matters" explainers across analytical, empirical, and coding types. Use when user says "make a problem set on X", "scaffold exercises for this lecture", "create practice problems", "generate homework with a solution key"…
present-paper
Academic presentation preparation — paper-driven (journal club, grand rounds, seminar) and lecture/teaching decks (course material, workshop slides, conference talks). Analyzes source material, finds supporting references, drafts audience-adapted speaker scripts, generates or augments PPTX with speaker notes, and…
evomath-tao
Use this skill whenever the user submits a non-trivial mathematical claim that needs a rigorous proof or audit. Trigger on IMO/Putnam/USAMO/Olympiad-style problems, ML/AI theoretical statements, research conjectures, suspected-false claims, multi-step proofs the user already failed on, proof drafts with possible…