简体中文 · English
A collection of education skills that turn academic problems into interactive lesson web pages.
Recommended — install with skills in one command:
npx skills add wy51ai/edulabTo update to the latest version later:
npx skills updateOr use it as a Claude Code plugin marketplace:
/plugin marketplace add wy51ai/edulab
/plugin install edulab
Once installed, the skills activate on their trigger words, and can also be invoked manually.
| # | Skill | Domain | Problem Types | Rendering |
|---|---|---|---|---|
| 1 | edu-solid-geometry | Solid Geometry | 12 types | Three.js 3D + MathJax |
| 2 | edu-analytic-geometry | Analytic Geometry | 11 types | Canvas 2D + MathJax |
| 3 | edu-function | Functions & Derivatives | 17 types | Canvas 2D + MathJax |
| 4 | edu-trigonometry | Trigonometry | 9 types | Canvas 2D + MathJax |
| 5 | edu-sequence | Sequences | 9 types | Canvas 2D + MathJax |
| 6 | edu-inequality | Inequalities | 6 types | Canvas 2D + MathJax |
| 7 | edu-line-circle | Line & Circle | 7 types | Canvas 2D + MathJax |
| 8 | edu-probability | Probability | 10 types | Canvas 2D + MathJax |
| 9 | edu-vector | Vectors | 7 types | Canvas 2D + MathJax |
| 10 | edu-set | Sets | 5 types | Canvas 2D + MathJax |
| 11 | edu-combinatorics | Combinatorics | 10 types | Canvas 2D + MathJax |
| 12 | edu-parametric-polar | Parametric & Polar | 6 types | Canvas 2D + MathJax |
| 13 | edu-complex | Complex Numbers | 6 types | Canvas 2D + MathJax |
| 14 | edu-logic | Logic & Propositions | 5 types | Canvas 2D + MathJax |
Total: 130 registered problem types across 14 skills
Click to expand all 130 problem types (by skill)
| ID | Name |
|---|---|
| pyramid | 正四棱锥·线面角 |
| cube | 正方体·线面角 |
| box | 长方体·体积 |
| skew | 正方体·异面直线夹角 |
| dihedral | 正四棱锥·二面角 |
| distance | 正方体·点到平面距离 |
| tri_pyramid | 正三棱锥·线面角 |
| tetra | 正四面体·二面角 |
| circumscribed_sphere | 正方体·外接球 |
| inscribed_sphere | 正四面体·内切球 |
| space_vector_angle | 正四棱锥·空间向量法求线面角 |
| space_vector_distance | 正四棱锥·空间向量法求点到平面距离 |
| ID | Name |
|---|---|
| ellipse_dot_range | 椭圆·向量数量积取值范围 |
| ellipse_chord_range | 椭圆·焦点弦弦长范围 |
| ellipse_area_max | 椭圆·三角形面积最值 |
| ellipse_slopeprod_const | 椭圆·斜率之积为定值 |
| parabola_dot_const | 抛物线·焦点弦数量积为定值 |
| hyperbola_ecc_range | 双曲线·离心率范围 |
| standard_equation | 椭圆·求标准方程 |
| ellipse_fixed_value | 椭圆·斜率之积定值 |
| parabola_fixed_point | 椭圆·定点问题 |
| ellipse_locus | 椭圆·中点弦轨迹 |
| ellipse_tangent | 椭圆·切线方程 |
| ID | Name |
|---|---|
| tangent_cubic | 三次函数·切线方程 |
| monotonicity_cubic | 三次函数·单调性与极值 |
| zeros_cubic | 三次函数·零点个数讨论 |
| exp_compare | 指数比较大小 |
| log_equation | 对数方程 |
| exp_growth | 指数增长模型 |
| power_compare | 幂函数比较 |
| existential_universal | 恒成立与存在性问题 |
| even_odd_symmetry | 函数奇偶性与对称性 |
| composite_monotonicity | 复合函数单调性 |
| image_transform | 函数图像变换 |
| inverse_function | 反函数 |
| function_range | 函数值域 |
| abstract_function | 抽象函数的奇偶性 |
| derivative_inequality_proof | 导数证明不等式 |
| construct_function | 构造函数证明不等式 |
| hidden_zero | 隐零点分析 |
| ID | Name |
|---|---|
| sine_transform | 三角函数图像变换 |
| sine_law | 正弦定理 |
| cosine_law | 余弦定理 |
| trig_eval | 三角求值(和差公式) |
| induction | 诱导公式化简 |
| auxiliary_angle | 辅助角公式 |
| trig_equation | 解三角方程 |
| trig_properties | 三角函数性质 |
| heron_area | 海伦公式求面积 |
| ID | Name |
|---|---|
| arithmetic | 等差数列 |
| geometric | 等比数列 |
| recursive | 递推数列求通项 |
| telescoping | 裂项求和 |
| offset_subtraction | 错位相减求和 |
| sn_an | Sn与an关系 |
| sequence_inequality | 数列不等式 |
| comprehensive_sum | 综合求和 |
| sequence_bound | 数列放缩证明 |
| ID | Name |
|---|---|
| linear_program | 线性规划 |
| am_gm | 均值不等式求最值 |
| quadratic_inequality | 一元二次不等式 |
| absolute_inequality | 含绝对值不等式 |
| inequality_proof | 不等式证明 |
| range_by_inequality | 不等式求范围 |
| ID | Name |
|---|---|
| line_circle_position | 直线与圆位置关系 |
| line_from_points | 两点式求直线方程 |
| two_lines | 两直线位置关系 |
| circle_equation | 求圆的方程 |
| circle_circle | 圆与圆位置关系 |
| tangent_to_circle | 圆的切线 |
| chord_length | 弦长计算 |
| ID | Name |
|---|---|
| normal_distribution | 正态分布 |
| classical_prob | 古典概型 |
| conditional_prob | 条件概率 |
| binomial_dist | 二项分布 |
| geometric_dist | 几何分布 |
| expectation_variance | 期望与方差 |
| normal_prob | 正态分布概率计算 |
| regression | 回归分析 |
| independence_test | 独立性检验 |
| hypergeometric | 超几何分布 |
| ID | Name |
|---|---|
| dot_product | 向量数量积 |
| linear_combination | 向量线性运算 |
| basis_repr | 基底表示 |
| collinear | 共线条件 |
| perpendicular | 垂直条件 |
| projection | 向量投影 |
| vector_area | 向量求面积 |
| ID | Name |
|---|---|
| set_operations | 集合运算(交并补) |
| venn_three | 三集合韦恩图 |
| set_equation | 集合方程 |
| complement | 补集运算 |
| subset_condition | 子集条件求参数 |
| ID | Name |
|---|---|
| permutation_basic | 排列基本问题 |
| combination_basic | 组合基本问题 |
| binomial_expansion | 二项式定理展开 |
| binomial_coefficient | 二项式系数 |
| mixed_counting | 排列组合综合 |
| derangement | 错排问题 |
| grouping | 分组分配问题 |
| coloring | 涂色问题 |
| gap_method | 隔板法 |
| inclusion_exclusion | 容斥原理 |
| ID | Name |
|---|---|
| line_parametric | 直线参数方程 |
| ellipse_parametric | 椭圆参数方程 |
| polar_conversion | 极坐标与直角坐标互化 |
| polar_curve | 极坐标曲线 |
| parametric_intersection | 参数方程联立 |
| parametric_distance | 参数方程求距离 |
| ID | Name |
|---|---|
| complex_basic | 复数基本运算 |
| complex_modulus | 复数模 |
| polar_form | 复数三角形式 |
| complex_equation | 复数方程 |
| complex_geometry | 复数几何意义 |
| de_moivre | 棣莫弗定理 |
| ID | Name |
|---|---|
| four_propositions | 四种命题 |
| sufficient_necessary | 充要条件判断 |
| quantifier_negation | 全称命题与存在命题的否定 |
| truth_table | 命题真假判断(真值表) |
| proposition_proof | 反证法证明 |
Solves one solid geometry problem into a self-contained interactive lesson page. Three entry points:
| Entry point | What it does |
|---|---|
| Text problem | Extracts the statement and solves directly |
| Image upload | Reads the problem from the image via vision, echoes it back for confirmation, then solves |
| Random problem | Solves with random parameters; re-rolls if the answer isn't clean |
Problem types covered: line-plane angle, dihedral angle, angle between skew lines, point-to-plane distance, volume, and more — on cubes / cuboids, pyramids / prisms, cylinders / cones. All solved uniformly via the "coordinate system + vector method."
Trigger words: solid geometry, line-plane angle, dihedral angle, angle between skew lines, distance to plane, interactive geometry solution page; 立体几何、线面角、二面角、异面直线、点到平面距离、正四棱锥、解这道几何题、随机出一道立体几何题、这张图里的立体几何题, etc.
The compute core lib/geometry_kernel.py depends on sympy. Use any python3 that can import sympy:
python3 -m pip install sympy # if sympy is missingcd skills/edu-solid-geometry
python3 scripts/generate.py cube ./cube.html # cube · line-plane angle
python3 scripts/generate.py box ./box.html # cuboid · volume
python3 scripts/generate.py random 7 ./random.html # random problem (seed=7)
python3 lib/geometry_kernel.py # kernel built-in self-checkIf you don't pass an output path, it writes to the current working directory (cwd).
Solves one analytic geometry (conic sections) problem into a self-contained interactive lesson page. Same three entry points as above (text / image / random). Built on a 2D Canvas board + KaTeX with a generic, data-driven interactive engine: a parameter slider drives derived constructions (line∩conic, point-on-conic, central reflection, tangent…) and live readouts, with a theoretical-range bar or a fixed-value indicator.
Problem types covered: standard equation, chord length, dot-product range / fixed value, triangle-area extremum, fixed point, fixed value (slope product), locus, tangent, eccentricity — on ellipses / hyperbolas / parabolas / circles. All solved uniformly via "parametrized line x = my + c + system + Vieta's formulas + substitution."
A correctness note baked into the kernel: open/closed interval endpoints are decided by whether a real line attains them, so the boxed answer always matches what the interactive tool shows (e.g. the ellipse
MA·MBrange is the closed[-3, 7/4]— slide θ to 0° and you read exactly −3).
Trigger words: analytic geometry, conic sections, ellipse, hyperbola, parabola, chord length, dot product range, fixed point, fixed value, locus, eccentricity, interactive analytic geometry solution page; 解析几何、圆锥曲线、椭圆、双曲线、抛物线、焦点弦、向量数量积取值范围、定点问题、定值问题、斜率之积、三角形面积最值、轨迹方程、离心率, etc.
The compute core lib/analytic_kernel.py depends on sympy (same as above).
cd skills/edu-analytic-geometry
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py ellipse_dot_range ./sol.html # ellipse · MA·MB range [-3, 7/4]
python3 scripts/generate.py parabola_dot_const ./sol.html # parabola focal chord · OA·OB ≡ -3
python3 scripts/generate.py all ./out_dir # all registered types
python3 lib/analytic_kernel.py # kernel built-in self-checkLike above, no output path → writes to the current working directory (cwd).
Solves one function & derivative problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with a parameter slider driving function graphs, tangent lines, extrema, and zeros in real-time.
Problem types covered: tangent line equation, monotonicity & extrema, zero-point discussion, exponential/logarithmic comparison, function symmetry, composite monotonicity, image transform, inverse function, range, abstract function, derivative inequality proof, construct function, hidden zero analysis.
Trigger words: 函数, 导数, 切线, 单调性, 极值, 零点, 奇偶性, 复合函数, 反函数, 值域, 隐零点; function, derivative, tangent line, monotonicity, extzeros, symmetry, composite function, inverse function, interactive function solution page.
cd skills/edu-function
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py tangent_cubic ./sol.html # tangent line problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one trigonometry problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with a parameter slider driving waveform changes in real-time.
Problem types covered: sine function image transformation (A/ω/φ), sine law, cosine law, trig evaluation, induction formula, auxiliary angle, trig equation, trig properties, Heron area.
Trigger words: 三角函数, 正弦定理, 余弦定理, 图像变换, 辅助角, 三角形面积, 海伦公式; trigonometry, sine law, cosine law, image transformation, auxiliary angle, interactive trigonometry solution page.
cd skills/edu-trigonometry
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py sine_transform ./sol.html # sine transform problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one sequence problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with a parameter slider driving bar charts and cumulative sum curves in real-time.
Problem types covered: arithmetic sequence, geometric sequence, recursive sequence, telescoping sum, offset subtraction, Sn-an relation, sequence inequality, comprehensive sum, sequence bound proof.
Trigger words: 数列, 等差数列, 等比数列, 通项公式, 前n项和, 裂项求和, 错位相减; sequence, arithmetic sequence, geometric sequence, general term, sum, interactive sequence solution page.
cd skills/edu-sequence
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py arithmetic ./sol.html # arithmetic sequence problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one inequality / linear programming problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with feasible region polygon and objective function contour lines.
Problem types covered: linear programming, AM-GM inequality, quadratic inequality, absolute value inequality, inequality proof, range by inequality.
Trigger words: 不等式, 线性规划, 均值不等式, 可行域, 最值; inequality, linear programming, AM-GM, feasible region, optimization, interactive inequality solution page.
cd skills/edu-inequality
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py linear_program ./sol.html # linear programming problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one line-circle positional relationship problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with a parameter slider driving line slope changes and real-time positional relationship determination.
Problem types covered: line-circle positional relationship, line from points, two-line relationship, circle equation, circle-circle relationship, tangent to circle, chord length.
Trigger words: 直线与圆, 位置关系, 弦长, 切线长; line and circle, positional relationship, chord length, tangent length, interactive geometry solution page.
cd skills/edu-line-circle
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py line_circle_position ./sol.html # line-circle problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one probability & statistics problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with a parameter slider driving distribution curve changes in real-time.
Problem types covered: normal distribution, classical probability, conditional probability, binomial distribution, geometric distribution, expectation/variance, normal probability, regression, independence test, hypergeometric distribution.
Trigger words: 概率, 统计, 正态分布, 二项分布, 期望, 方差, 超几何分布; probability, statistics, normal distribution, binomial distribution, expectation, variance, interactive probability solution page.
cd skills/edu-probability
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py normal_distribution ./sol.html # normal distribution problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one plane vector problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with draggable vector endpoints showing dot product, angle, and projection in real-time.
Problem types covered: dot product, linear combination, basis representation, collinear condition, perpendicular condition, vector projection, vector area.
Trigger words: 向量, 数量积, 夹角, 共线, 垂直, 基底; vector, dot product, angle, collinear, perpendicular, basis, interactive vector solution page.
cd skills/edu-vector
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py dot_product ./sol.html # dot product problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one set theory problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with Venn diagram visualization.
Problem types covered: set operations (intersection/union/complement), three-set Venn diagram, set equation, complement, subset condition.
Trigger words: 集合, 交集, 并集, 补集, 韦恩图, 子集; set, intersection, union, complement, Venn diagram, subset, interactive set solution page.
cd skills/edu-set
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py set_operations ./sol.html # set operations problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one combinatorics problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with step-by-step counting visualization.
Problem types covered: permutation, combination, binomial expansion, binomial coefficient, mixed counting, derangement, grouping, coloring, gap method, inclusion-exclusion.
Trigger words: 排列, 组合, 二项式定理, 错排, 分组, 涂色, 隔板法, 容斥原理; permutation, combination, binomial theorem, derangement, grouping, coloring, interactive combinatorics solution page.
cd skills/edu-combinatorics
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py permutation_basic ./sol.html # permutation problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one parametric equation & polar coordinate problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with parameter slider driving curve changes in real-time.
Problem types covered: line parametric, ellipse parametric, polar conversion, polar curve, parametric intersection, parametric distance.
Trigger words: 参数方程, 极坐标, 极坐标方程, 心形线, 玫瑰线; parametric equation, polar coordinates, cardioid, rose curve, interactive parametric/polar solution page.
cd skills/edu-parametric-polar
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py line_parametric ./sol.html # line parametric problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one complex number problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with complex plane visualization.
Problem types covered: basic operations (add/subtract/multiply/divide), modulus, polar form, complex equation, geometry in complex plane, De Moivre's theorem.
Trigger words: 复数, 模, 辐角, 三角形式, 棣莫弗定理; complex number, modulus, polar form, De Moivre, interactive complex number solution page.
cd skills/edu-complex
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py complex_basic ./sol.html # complex arithmetic problem
python3 scripts/generate.py all ./out_dir # all registered typesSolves one logic & proposition problem into a self-contained interactive lesson page. Built on a 2D Canvas board + MathJax with truth tables and proposition structure visualization.
Problem types covered: four propositions (original/converse/inverse/contrapositive), sufficient/necessary conditions, quantifier negation, truth tables, proof by contradiction.
Trigger words: 逻辑, 命题, 充分条件, 必要条件, 量词, 真值表, 反证法; logic, proposition, sufficient condition, necessary condition, quantifier, truth table, proof by contradiction, interactive logic solution page.
cd skills/edu-logic
python3 scripts/generate.py list # list registered problem types
python3 scripts/generate.py four_propositions ./sol.html # four propositions problem
python3 scripts/generate.py all ./out_dir # all registered types- Get a problem spec — normalize all three entry points into a structured description (body type and dimensions, given conditions, the quantity asked, language).
- Exact kernel computation — sympy computes exact coordinates, key vectors, normals, the final answer, and every intermediate value (as LaTeX strings). Never by hand.
- Assemble and inject the template — feed the
lesson/steps/modeldata into the data-driven templatetemplate/lesson.html; 3D vertex coordinates come fromkernel.to_three(...), sharing the same source as the solution. - Self-check — kernel answer == answer card == final value shown in the last step; a local static server + preview check confirms no console errors and correct formula/highlight rendering.
- Deliver — the finished page is written to the user's current working directory, named like
solution-<short-description>.html.
edulab/
├── .claude-plugin/
│ ├── plugin.json # plugin metadata
│ └── marketplace.json # marketplace manifest
├── index.html # finished sample (quad pyramid · line-plane angle)
├── README.md # English documentation
├── README.zh-CN.md # Chinese documentation
└── skills/
├── edu-solid-geometry/ # solid geometry — 3D (Three.js) + MathJax
├── edu-analytic-geometry/ # analytic geometry / conics — 2D (Canvas) + MathJax
├── edu-function/ # functions & derivatives — 2D (Canvas) + MathJax
├── edu-trigonometry/ # trigonometry — 2D (Canvas) + MathJax
├── edu-sequence/ # sequences — 2D (Canvas) + MathJax
├── edu-inequality/ # inequalities — 2D (Canvas) + MathJax
├── edu-line-circle/ # line & circle — 2D (Canvas) + MathJax
├── edu-probability/ # probability — 2D (Canvas) + MathJax
├── edu-vector/ # vectors — 2D (Canvas) + MathJax
├── edu-set/ # sets — 2D (Canvas) + MathJax
├── edu-combinatorics/ # combinatorics — 2D (Canvas) + MathJax
├── edu-parametric-polar/ # parametric equations & polar — 2D (Canvas) + MathJax
├── edu-complex/ # complex numbers — 2D (Canvas) + MathJax
└── edu-logic/ # logic & propositions — 2D (Canvas) + MathJax
Each skill follows the same structure:
skills/<skill-name>/
├── SKILL.md # skill documentation
├── lib/*_kernel.py # sympy exact-computation core
├── scripts/generate.py # inject template + build_* + registry
├── template/*.html # data-driven template (Canvas/Three.js + MathJax)
├── references/ # conventions.md + problem-schema.md
└── output/ # generated HTML files
edu-solid-geometry
- Add a problem type: add a solver function in
geometry_kernel.py(see the recipe table inreferences/conventions.md), then add abuild_*ingenerate.py. - Add a solid: add a coordinate-construction function in
geometry_kernel.py, then add its edge topology inbodies.py.
edu-analytic-geometry
- Add a problem type: add a target-quantity function in
analytic_kernel.pyand reuserange_over_m/is_constant_in_m, then add abuild_*ingenerate.py(pick an interaction: range bar / fixed value / fixed point / locus trace). - Add a curve: ellipse / hyperbola / parabola / circle are built in; new curves go in
conics.pyand theboard.htmlengine.
Other skills (edu-function, edu-trigonometry, edu-sequence, edu-inequality, edu-line-circle, edu-probability, edu-vector, edu-set, edu-combinatorics, edu-parametric-polar, edu-complex, edu-logic)
- Add a problem type: add a solver function in the corresponding
*_kernel.py, then add abuild_*ingenerate.py. - Add a function/distribution: extend the kernel with new computation functions.
Original skills (edu-solid-geometry, edu-analytic-geometry):
- WY · @akokoi1
Extended skills (edu-function, edu-trigonometry, edu-sequence, edu-inequality, edu-line-circle, edu-probability, edu-vector):
- ofobike
New skills (edu-set, edu-combinatorics, edu-parametric-polar, edu-complex, edu-logic):
- ofobike