soroban-abacus-flashcards/apps/web/drizzle
Thomas Hallock 7fbc743c4c feat: add skill configuration system with interactive 2D difficulty plot
Implement comprehensive skill customization system allowing teachers to:
- Configure existing default skills with custom difficulty settings
- Create entirely new custom skills from scratch
- Visualize skills in mastery progression context with directional edges
- Interact with difficulty space using 2D plot with hover tooltips

Database Schema:
- custom_skills table: Stores user-created skills
- skill_customizations table: Stores modifications to default skills
- Both tables track regrouping config, display rules, and metadata

API Endpoints:
- POST /api/worksheets/skills/custom - Create custom skill
- GET /api/worksheets/skills/custom - List custom skills
- PUT /api/worksheets/skills/custom/[id] - Update custom skill
- DELETE /api/worksheets/skills/custom/[id] - Delete custom skill
- POST /api/worksheets/skills/[skillId]/customize - Save customization
- GET /api/worksheets/skills/customizations - List customizations

Components:
- DifficultyPlot2D: Interactive 2D visualization of difficulty space
  - Regrouping Intensity (x-axis) × Scaffolding Level (y-axis)
  - Dual mode: Default presets vs Mastery progression skills
  - Directional edges showing skill progression sequence
  - Hover tooltips with skill details
  - Click to select configuration
  - Visual legend explaining elements

- SkillConfigurationModal: Modal for skill configuration
  - Name and description fields
  - Digit range slider
  - 2D difficulty plot integration
  - Shows mastery progression context when editing
  - Real-time configuration summary

- MasteryModePanel Integration:
  - "Configure Skill" button for existing skills
  - "Create Custom Skill" button for new skills
  - Passes mastery progression to modal for context

Visual Design:
- Purple theme (#9333ea) for mastery progression skills
- Green theme (#10b981) for current configuration
- Dashed arrows with triangular arrow heads
- Numbered skill circles with hover tooltips
- Compact legend in top-right corner

Technical Features:
- PlotPoint interface for custom skill plotting
- Conditional snapping to either presets or custom points
- Vector math for arrow head calculations
- Z-ordering: edges before points
- Event propagation control for hover interactions
- Storybook examples for both components

Bug Fixes:
- Fix page indicator stuck on page 1 in WorksheetPreview
  - Changed from threshold-based to most-visible-page tracking
  - Works correctly for both scroll directions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 15:04:28 -06:00
..
meta feat: add skill configuration system with interactive 2D difficulty plot 2025-11-11 15:04:28 -06:00
0000_third_carnage.sql
0001_friendly_stingray.sql
0002_loose_ultimatum.sql fix: use UUID player IDs in session creation fallback 2025-10-06 13:04:33 -05:00
0003_naive_reptil.sql feat: add arcade room system database schema and managers (Phase 1) 2025-10-06 15:11:24 -05:00
0004_shiny_madelyne_pryor.sql feat: implement modal room enforcement (one room per user) 2025-10-08 08:41:39 -05:00
0005_flimsy_squadron_sinister.sql feat: add database schema for room moderation and invitations 2025-10-13 11:22:02 -05:00
0005_jazzy_mimic.sql fix: prevent duplicate arcade sessions per room 2025-10-10 15:06:19 -05:00
0006_pretty_invaders.sql feat: add database schema for room moderation and invitations 2025-10-13 11:22:02 -05:00
0007_access_modes.sql feat: add room access modes and ownership transfer 2025-10-13 19:19:49 -05:00
0008_make_room_name_nullable.sql feat: improve room creation UX and add password support for share links 2025-10-14 07:09:22 -05:00
0009_add_display_password.sql fix(migrations): add migration 0009 for display_password column 2025-10-14 09:56:26 -05:00
0010_make_game_name_nullable.sql refactor: make game_name nullable to support in-room game selection 2025-10-14 11:30:27 -05:00
0011_add_room_game_configs.sql feat: add drizzle migration for room_game_configs table 2025-10-15 13:40:40 -05:00
0012_damp_mongoose.sql feat(abacus): add nativeAbacusNumbers setting to schema and UI 2025-10-31 20:44:16 -05:00
0013_add_player_stats.sql feat: add per-player stats tracking system 2025-11-03 10:53:54 -06:00
0013_conscious_firebird.sql fix(db): add statement-breakpoint to worksheet_settings migration 2025-11-06 08:26:09 -06:00
0014_remarkable_master_chief.sql fix(worksheets): remove foreign key constraint to support guest users 2025-11-06 08:26:09 -06:00
0015_early_pepper_potts.sql fix: correct GPT-5 API parameters and surface actual grading errors 2025-11-10 06:12:10 -06:00
0016_confused_the_enforcers.sql fix: correct GPT-5 API parameters and surface actual grading errors 2025-11-10 06:12:10 -06:00
0017_skinny_red_hulk.sql feat: add AI-powered worksheet grading with GPT-5 vision 2025-11-10 04:33:22 -06:00
0018_brief_red_wolf.sql feat: add AI-powered worksheet grading with GPT-5 vision 2025-11-10 04:33:22 -06:00
0019_broad_vance_astro.sql feat: add AI-powered worksheet grading with GPT-5 vision 2025-11-10 04:33:22 -06:00
0020_supreme_saracen.sql fix: correct GPT-5 API parameters and surface actual grading errors 2025-11-10 06:12:10 -06:00
0021_little_sentry.sql feat: add worksheet sharing infrastructure with database persistence 2025-11-11 11:17:44 -06:00
0022_nappy_titanium_man.sql feat: add database schema for custom skills and skill customizations 2025-11-11 13:30:36 -06:00