diff --git a/CHANGELOG.md b/CHANGELOG.md index f05e6ad..54b4f85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to **Hình Học Sống** are documented here. Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning: 4-digit MAJOR.MINOR.PATCH.MICRO per gstack. +## [0.0.4.0] - 2026-04-30 + +### Added + +- **Module 2 (lớp 8): Tam giác đồng dạng** — third interactive theorem demo, live at `/lop-8/tam-giac-dong-dang/`. MVP completes the autoplan plan's 3-module hero set. + - Slider-driven scale-similarity demo: a fixed △ABC on the left, a scaled △A′B′C′ on the right with vertices computed at runtime as `centroid_target + k · (vertex − centroid_ABC)` for `k ∈ [0.5, 2.0]`, step 0.05. + - Live readout table: 6 side lengths + 3 ratios (AB/A′B′, BC/B′C′, CA/C′A′). All 3 ratios stay equal as `k` varies — the killer-demo property of similarity in motion. Color-keyed and tick-marked per Decision D3 (1/2/3 ticks paired with the 3-color palette). + - The `k` value displays prominently above the slider in pair1 red. ARIA-labels on the slider so screen readers can drive the demo by keyboard. + - Page reuses `src/components/similarity-scale.ts` + `renderTicks` helper (extracted as a pattern from Module 1). No new geom-engine module needed — `triangle.sides()` and `vec.scale()` carry the math. +- Hub: lớp 8 card now links forward with "Khám phá" status. All three grade cards are now live. + +### Changed + +- The Astro build now extracts shared geom-engine chunks (`vec.js` ~441B, `triangle.js` ~288B) instead of inlining per-page scripts. Per-page script weight: ~2–3.6KB. Cached across modules after first visit. + +### Notes + +- Module 2's MVP picks the BONUS variant from the autoplan plan (slider-driven scale) over the harder free-vertex-drag form. Reasoning: scale slider gives the strongest "wow" moment in a single gesture and ships in one weekend; free-drag with AA/SAS/SSS đồng dạng detectors is a separate UI surface. Free-drag deferred to v0.0.5.0+ (P2 in TODOS.md). +- Angles are not displayed numerically but are pinned conceptually in the prose: "khi △A′B′C′ phóng/thu theo hệ số k, các cạnh nhân với k nhưng các góc tại A, B, C không thay đổi". Numeric angle readouts arrive when the free-drag mode lands. + ## [0.0.3.0] - 2026-04-30 ### Added diff --git a/TODOS.md b/TODOS.md index e1caf21..5cef696 100644 --- a/TODOS.md +++ b/TODOS.md @@ -67,15 +67,15 @@ Tracked work, organized by component then priority (P0 highest → P4 lowest). S **Priority:** P3 **What:** v0.0.3.0 ships 1 example. SGK textbook has many. Add 2 more. -## Module 2 — Lớp 8 Tam giác đồng dạng (weekend 4) +## Module 2 — Lớp 8 Tam giác đồng dạng -- **Similarity ratio + AA/SAS/SSS-similar detectors** - **Priority:** P1 - **What:** `src/geom-engine/similarity.ts`. Live ratio display via numeric text-node updates only (KaTeX template rendered at build, never re-parsed during drag). +- **Free-vertex-drag mode (AA / SAS / SSS đồng dạng detectors)** + **Priority:** P2 + **What:** v0.0.4.0 ships scale-slider mode. Add a toggle to switch into free-drag mode where both triangles' vertices can be moved independently and the detector identifies which similarity case (if any) holds. Adds `src/geom-engine/similarity.ts`. -- **Scale slider clamped to [0.5, 2.0]** - **Priority:** P1 - **What:** `min=0.5, max=2, step=0.05`. Cannot reach 0. Per Eng failure mode #3. +- **Numeric angle readouts on the canvas** + **Priority:** P3 + **What:** Currently angles are pinned conceptually in prose. Add live numeric readouts (∠A, ∠B, ∠C and primes) so students see "the angles don't change" empirically. ## Testing & CI infrastructure (with first canvas module) @@ -152,3 +152,5 @@ Tracked work, organized by component then priority (P0 highest → P4 lowest). S - **TheoremCanvas primitive first cut** — vanilla TS in Astro `