- Add skill complexity budget system with base costs per skill type: - Basic skills: 0 (trivial bead movements) - Five complements: 1 (single mental substitution) - Ten complements: 2 (cross-column operations) - Cascading operations: 3 (multi-column) - Add per-term complexity debug overlay in VerticalProblem (toggle via visual debug mode) - Shows total cost per term and individual skill costs - Highlights over-budget terms in red - Make session structure parts toggleable in configure page: - Can enable/disable abacus, visualization, and linear parts - Time estimates, problem counts adjust dynamically - At least one part must remain enabled - Fix max terms per problem not being respected: - generateSingleProblem was hardcoding 3-5 terms - Now properly uses minTerms/maxTerms from constraints - Set visualization complexity budget to 3 (more restrictive) - Hide complexity badges for zero-cost (basic) skills in ManualSkillSelector 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Soroban Web Application
Interactive web application for learning soroban (Japanese abacus) calculation with tutorials, practice sessions, and multiplayer arcade games.
Features
- Tutorials - Step-by-step lessons for learning soroban techniques
- Practice Sessions - Adaptive practice with progressive help system
- Arcade Games - Multiplayer educational games for reinforcement
- Worksheet Generator - Create printable math worksheets
Getting Started
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Run type checks
npm run type-check
# Run all quality checks
npm run pre-commit
Documentation
Components
| Component | Description |
|---|---|
| Decomposition Display | Interactive mathematical decomposition visualization |
| Worksheet Generator | Math worksheet creation with Typst PDF generation |
Games
| Game | Description |
|---|---|
| Arcade System | Modular multiplayer game architecture |
| Know Your World | Geography quiz game |
Developer Documentation
Located in .claude/ directory:
CLAUDE.md- Project conventions and guidelinesCODE_QUALITY_REGIME.md- Quality check proceduresGAME_SETTINGS_PERSISTENCE.md- Game config architectureZ_INDEX_MANAGEMENT.md- Z-index layering systemDEPLOYMENT.md- Deployment and CI/CD
Project Structure
apps/web/
├── src/
│ ├── app/ # Next.js App Router pages
│ ├── components/ # Shared React components
│ │ ├── decomposition/ # Math decomposition display
│ │ ├── practice/ # Practice session components
│ │ └── tutorial/ # Tutorial player components
│ ├── contexts/ # React context providers
│ ├── arcade-games/ # Multiplayer game implementations
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities and libraries
│ └── db/ # Database schema and queries
├── .claude/ # Developer documentation
├── public/ # Static assets
└── styled-system/ # Generated Panda CSS
Technology Stack
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Panda CSS
- Database: SQLite with Drizzle ORM
- Abacus Visualization: @soroban/abacus-react
Related Documentation
Parent: Main README - Complete project overview Abacus Component: packages/abacus-react - Abacus visualization library