soroban-abacus-flashcards/apps/web
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
..
.claude feat: add skill configuration system with interactive 2D difficulty plot 2025-11-11 15:04:28 -06:00
.storybook fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
__tests__ fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
content/blog chore: restore stashed work from previous session 2025-11-08 14:59:40 -06:00
data fix: align share persistence with user session logic 2025-11-11 12:03:32 -06:00
docs fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
drizzle feat: add skill configuration system with interactive 2D difficulty plot 2025-11-11 15:04:28 -06:00
e2e fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
public refactor(worksheets): extract ConfigPanel helper components (Phase 1) 2025-11-08 11:50:49 -06:00
scripts worksheet studio 2025-11-11 11:44:40 -06:00
src feat: add skill configuration system with interactive 2D difficulty plot 2025-11-11 15:04:28 -06:00
.dockerignore.test chore: trigger Docker rebuild 2025-11-07 12:11:46 -06:00
.gitignore
CARD_SORTING_PORT_PLAN.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
COMPLEMENT_RACE_PORT_PLAN.md
DEVELOPMENT_STANDARDS.md
LINTING.md
README.md fix: prevent undefined displayRules error in worksheet generator 2025-11-07 13:01:54 -06:00
biome.jsonc fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
drizzle.config.ts fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
eslint.config.js fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
next-env.d.ts
next.config.js feat: enable production source maps for easier debugging 2025-11-08 20:32:06 -06:00
package.json feat: add worksheet sharing infrastructure with database persistence 2025-11-11 11:17:44 -06:00
panda.config.ts fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
playwright.config.ts fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
pnpm-lock.yaml
server.js fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
svg-processing-test.js fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00
test-arcade-api.sh
test-flashcards-final.pdf
test-flashcards.pdf
test-simplified.pdf
test_fullscreen_persistence.html
test_panda_simple.html
tsconfig.json worksheet studio 2025-11-11 11:44:40 -06:00
tsconfig.server.json
vitest.config.ts fix(worksheets): ten-frames not rendering in mastery mode 2025-11-10 10:06:27 -06:00

README.md

Test deployment - Mon Nov 3 16:31:57 CST 2025