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
0003_naive_reptil.sql
0004_shiny_madelyne_pryor.sql
0005_flimsy_squadron_sinister.sql
0005_jazzy_mimic.sql
0006_pretty_invaders.sql
0007_access_modes.sql
0008_make_room_name_nullable.sql
0009_add_display_password.sql
0010_make_game_name_nullable.sql
0011_add_room_game_configs.sql
0012_damp_mongoose.sql
0013_add_player_stats.sql
0013_conscious_firebird.sql
0014_remarkable_master_chief.sql
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
0018_brief_red_wolf.sql
0019_broad_vance_astro.sql
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