Skip to content

Add complete N2 curriculum (days 961–1320) with new exercise types - #22

Merged
alanfwilliams merged 1 commit into
claude/implement-n2-Av6N7from
claude/implement-n2-q5Gjc
Feb 21, 2026
Merged

Add complete N2 curriculum (days 961–1320) with new exercise types#22
alanfwilliams merged 1 commit into
claude/implement-n2-Av6N7from
claude/implement-n2-q5Gjc

Conversation

@alanfwilliams

Copy link
Copy Markdown
Owner

Summary

This PR completes the N2 level of the Japanese course, extending the curriculum from 960 days (N5–N3) to 1,320 days (N5–N2). All N2 lesson data, exercise types, and tests are now implemented and passing.

Key Changes

Curriculum & Content

  • Extended curriculum to 1,320 days with complete N2 content (days 961–1320)
  • Added 6 new phases (21–26) covering N3 Review, N2 Vocabulary, Verbs, Grammar, Kanji, and Test Prep
  • Updated phase constants (EXPECTED_PHASE_NAMES, PHASE_NUMS) to include all 26 active phases

Exercise System

  • Implemented new exercise types for N2: synonym, reorder, error_find, kanji_reading
  • Updated exerciseCap() to return 9 for N2/N1 lessons (vs. 5 for N5/N4, 7 for N3)
  • Added dayToLevel() helper to map day numbers to JLPT levels (N5/N4/N3/N2/N1)
  • Added furiganaHTML() helper for ruby tag generation with furigana readings

Testing

  • Updated curriculum integrity tests to verify 1,320 days and N2 boundaries
  • Added comprehensive N2 phase boundary tests (phases 21–26, days 961–1320)
  • Added tests for new helper functions: furiganaHTML, dayToLevel, exerciseCap
  • Added tests for N2-specific exercise generation (synonym, reorder, error_find, kanji_reading)
  • Added passage field validation for all reading-type lessons
  • Updated phase constant tests to cover all 26 phases

Documentation

  • Updated CLAUDE.md to reflect 1,320-day curriculum and expanded test coverage (20 modules)
  • Updated README.md with N2 course structure and day ranges
  • Updated N3-N2-N1-REQUIREMENTS.md to mark N2 as complete and focus on N1 planning

Test Results

All 104 tests passing, including:

  • 10 curriculum integrity tests
  • 6 phase constant tests
  • 3 furiganaHTML tests
  • 5 dayToLevel tests
  • 3 exerciseCap tests
  • 5 buildExercises N2 tests
  • 1 passage validation test
  • React render smoke test

https://claude.ai/code/session_019tPnpN7y7wh5X3MeGPthzp

- Expand run-tests.js from 88 to 104 tests: add furiganaHTML, dayToLevel,
  exerciseCap, buildExercises N2 types (synonym, kanji_reading), N2 phase
  boundary checks, passage validation, and updated phase constant coverage
  (phases 1–26, not just 1–20)
- Fix tests.html phase constant test names ('20 phase keys' → '26 phase keys')
- Add N2-specific QUnit tests in tests.html: synonym, reorder, error_find,
  kanji_reading exercises, and N2 exercise cap enforcement
- Update CLAUDE.md: 960→1320 days, 14→20 test modules, full curriculum table
  with N2 phases 21–26, key implementation notes
- Update README.md: N5–N3 → N5–N2, add N2 course section (days 961–1320),
  move N1 to future content
- Update N3-N2-N1-REQUIREMENTS.md: mark N2 ✅ complete in scope table,
  Phase B checklist, and file changes summary

https://claude.ai/code/session_019tPnpN7y7wh5X3MeGPthzp
@alanfwilliams
alanfwilliams merged commit 807550e into claude/implement-n2-Av6N7 Feb 21, 2026
1 check passed
@alanfwilliams
alanfwilliams deleted the claude/implement-n2-q5Gjc branch February 21, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants