Skip to content

ofobike/edulab

 
 

Repository files navigation

edulab

简体中文 · English

A collection of education skills that turn academic problems into interactive lesson web pages.

Install

Recommended — install with skills in one command:

npx skills add wy51ai/edulab

To update to the latest version later:

npx skills update

Or 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.

Skills Overview

# 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

Complete Problem Type List

Click to expand all 130 problem types (by skill)

edu-solid-geometry (12 types) — Three.js 3D

ID Name
pyramid 正四棱锥·线面角
cube 正方体·线面角
box 长方体·体积
skew 正方体·异面直线夹角
dihedral 正四棱锥·二面角
distance 正方体·点到平面距离
tri_pyramid 正三棱锥·线面角
tetra 正四面体·二面角
circumscribed_sphere 正方体·外接球
inscribed_sphere 正四面体·内切球
space_vector_angle 正四棱锥·空间向量法求线面角
space_vector_distance 正四棱锥·空间向量法求点到平面距离

edu-analytic-geometry (11 types) — Canvas 2D

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 椭圆·切线方程

edu-function (17 types) — Canvas 2D

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 隐零点分析

edu-trigonometry (9 types) — Canvas 2D

ID Name
sine_transform 三角函数图像变换
sine_law 正弦定理
cosine_law 余弦定理
trig_eval 三角求值(和差公式)
induction 诱导公式化简
auxiliary_angle 辅助角公式
trig_equation 解三角方程
trig_properties 三角函数性质
heron_area 海伦公式求面积

edu-sequence (9 types) — Canvas 2D

ID Name
arithmetic 等差数列
geometric 等比数列
recursive 递推数列求通项
telescoping 裂项求和
offset_subtraction 错位相减求和
sn_an Sn与an关系
sequence_inequality 数列不等式
comprehensive_sum 综合求和
sequence_bound 数列放缩证明

edu-inequality (6 types) — Canvas 2D

ID Name
linear_program 线性规划
am_gm 均值不等式求最值
quadratic_inequality 一元二次不等式
absolute_inequality 含绝对值不等式
inequality_proof 不等式证明
range_by_inequality 不等式求范围

edu-line-circle (7 types) — Canvas 2D

ID Name
line_circle_position 直线与圆位置关系
line_from_points 两点式求直线方程
two_lines 两直线位置关系
circle_equation 求圆的方程
circle_circle 圆与圆位置关系
tangent_to_circle 圆的切线
chord_length 弦长计算

edu-probability (10 types) — Canvas 2D

ID Name
normal_distribution 正态分布
classical_prob 古典概型
conditional_prob 条件概率
binomial_dist 二项分布
geometric_dist 几何分布
expectation_variance 期望与方差
normal_prob 正态分布概率计算
regression 回归分析
independence_test 独立性检验
hypergeometric 超几何分布

edu-vector (7 types) — Canvas 2D

ID Name
dot_product 向量数量积
linear_combination 向量线性运算
basis_repr 基底表示
collinear 共线条件
perpendicular 垂直条件
projection 向量投影
vector_area 向量求面积

edu-set (5 types) — Canvas 2D

ID Name
set_operations 集合运算(交并补)
venn_three 三集合韦恩图
set_equation 集合方程
complement 补集运算
subset_condition 子集条件求参数

edu-combinatorics (10 types) — Canvas 2D

ID Name
permutation_basic 排列基本问题
combination_basic 组合基本问题
binomial_expansion 二项式定理展开
binomial_coefficient 二项式系数
mixed_counting 排列组合综合
derangement 错排问题
grouping 分组分配问题
coloring 涂色问题
gap_method 隔板法
inclusion_exclusion 容斥原理

edu-parametric-polar (6 types) — Canvas 2D

ID Name
line_parametric 直线参数方程
ellipse_parametric 椭圆参数方程
polar_conversion 极坐标与直角坐标互化
polar_curve 极坐标曲线
parametric_intersection 参数方程联立
parametric_distance 参数方程求距离

edu-complex (6 types) — Canvas 2D

ID Name
complex_basic 复数基本运算
complex_modulus 复数模
polar_form 复数三角形式
complex_equation 复数方程
complex_geometry 复数几何意义
de_moivre 棣莫弗定理

edu-logic (5 types) — Canvas 2D

ID Name
four_propositions 四种命题
sufficient_necessary 充要条件判断
quantifier_negation 全称命题与存在命题的否定
truth_table 命题真假判断(真值表)
proposition_proof 反证法证明

Skill: edu-solid-geometry

edu-solid-geometry demo

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.

Dependency

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 missing

Generate from the command line (without Claude)

cd 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-check

If you don't pass an output path, it writes to the current working directory (cwd).

Skill: edu-analytic-geometry

edu-analytic-geometry demo

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·MB range 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.

Dependency

The compute core lib/analytic_kernel.py depends on sympy (same as above).

Generate from the command line (without Claude)

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-check

Like above, no output path → writes to the current working directory (cwd).

Skill: edu-function

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.

Generate from the command line

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 types

Skill: edu-trigonometry

Solves 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.

Generate from the command line

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 types

Skill: edu-sequence

Solves 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.

Generate from the command line

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 types

Skill: edu-inequality

Solves 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.

Generate from the command line

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 types

Skill: edu-line-circle

Solves 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.

Generate from the command line

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 types

Skill: edu-probability

Solves 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.

Generate from the command line

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 types

Skill: edu-vector

Solves 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.

Generate from the command line

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 types

Skill: edu-set

Solves 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.

Generate from the command line

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 types

Skill: edu-combinatorics

Solves 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.

Generate from the command line

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 types

Skill: edu-parametric-polar

Solves 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.

Generate from the command line

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 types

Skill: edu-complex

Solves 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.

Generate from the command line

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 types

Skill: edu-logic

Solves 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.

Generate from the command line

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

How it works

  1. Get a problem spec — normalize all three entry points into a structured description (body type and dimensions, given conditions, the quantity asked, language).
  2. Exact kernel computation — sympy computes exact coordinates, key vectors, normals, the final answer, and every intermediate value (as LaTeX strings). Never by hand.
  3. Assemble and inject the template — feed the lesson / steps / model data into the data-driven template template/lesson.html; 3D vertex coordinates come from kernel.to_three(...), sharing the same source as the solution.
  4. 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.
  5. Deliver — the finished page is written to the user's current working directory, named like solution-<short-description>.html.

Project structure

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

Extending

edu-solid-geometry

  • Add a problem type: add a solver function in geometry_kernel.py (see the recipe table in references/conventions.md), then add a build_* in generate.py.
  • Add a solid: add a coordinate-construction function in geometry_kernel.py, then add its edge topology in bodies.py.

edu-analytic-geometry

  • Add a problem type: add a target-quantity function in analytic_kernel.py and reuse range_over_m / is_constant_in_m, then add a build_* in generate.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.py and the board.html engine.

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 a build_* in generate.py.
  • Add a function/distribution: extend the kernel with new computation functions.

License

Apache-2.0

Authors

Original skills (edu-solid-geometry, edu-analytic-geometry):

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

Star History

Star History Chart

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 65.1%
  • Python 34.9%