Files
ai-coding-workflow-labs/gstack/README.md
T
tiennm99 364efd422b build(gstack): move from bun to npm
Replace bun.lock with package-lock.json and add package.json#allowScripts for
esbuild and sharp, the two native packages whose install scripts npm 11 gates.

Update README, RUNBOOK, TODOS and CLAUDE.md to npm commands. CLAUDE.md also
claimed ./setup requires bun; it does not any more.

Verified: astro check 0 errors, 39 tests pass, 4 pages build, clean npm ci.
2026-08-17 16:57:29 +07:00

39 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hình Học Sống
Interactive Vietnamese THCS (lớp 79) geometry visualizer. Drag the points; watch the theorems hold. Aligned to the SGK curriculum.
> Sandbox repo currently doubling as a [gstack](https://github.com/garrytan/gstack) trial — see `CLAUDE.md`.
## Status
Scaffold only (v0.0.1.0). Modules are placeholders — landing page lists three grades with "Sắp ra mắt" badges. See the design doc at `~/.gstack/projects/tiennm99-try-gstack/` for the full plan.
## Develop
```sh
npm install
npm run dev # http://localhost:4321/try-gstack/
npm test # Vitest (geom-engine unit tests)
npm run typecheck # Astro check + TS strict
npm run build # Static output to dist/
```
## Deploy
Auto-deploys to GitHub Pages from `main` via `actions/deploy-pages@v4`. See `RUNBOOK.md` for rollback + domain-migration procedure.
## Architecture (locked decisions, per autoplan review)
- **Static**: Astro SSG, `base: '/try-gstack/'`, output `dist/`
- **Typography**: Be Vietnam Pro single family, weights 400/500/700, woff2 only, Vietnamese subset
- **Math engine**: pure `src/geom-engine/` module (no DOM imports), Vitest unit tests; property tests with `fast-check` to be added with first canvas module
- **Canvas**: vanilla SVG + Pointer Events + `setPointerCapture` (no Konva) — to be added with first canvas module
- **Math rendering**: KaTeX, bundled locally + SSR-rendered — to be added with first canvas module
- **Animation**: Web Animations API + `requestAnimationFrame` (no GSAP / Motion One / Lottie)
- **Analytics**: Cloudflare Web Analytics, deferred until 50+ daily sessions
- **i18n**: every string via `t()` from `src/i18n/vi.ts`; English added by adding `en.ts`
## License
TBD.