Skip to content

feat(2024): add Levels collection — Batch 1 (Barbarian, Fighter, Monk, Rogue)#4

Merged
t11z merged 1 commit intomainfrom
feat/2024-levels-batch1
Apr 5, 2026
Merged

feat(2024): add Levels collection — Batch 1 (Barbarian, Fighter, Monk, Rogue)#4
t11z merged 1 commit intomainfrom
feat/2024-levels-batch1

Conversation

@t11z
Copy link
Copy Markdown
Owner

@t11z t11z commented Apr 5, 2026

Summary

  • Adds 80 level documents (4 classes × 20 levels) to the 2024 data set with SRD 5.2.1-verified progressions
  • Introduces -nyi URL bypass in tables.test.ts to allow incremental shipping before the Features collection exists
  • Adds Zod schema for 2024 Levels with focus_points (2024 Monk rename from ki_points)

Classes included

Class Levels Key class_specific fields
Barbarian 1–20 rage_count, rage_damage_bonus (no brutal_critical_dice in 2024)
Fighter 1–20 action_surges, indomitable_uses, extra_attacks
Monk 1–20 focus_points (was ki_points), martial_arts (1d6→1d8→1d10→1d12), unarmored_movement
Rogue 1–20 sneak_attack

Notable 2024 changes vs 2014

  • Barbarian: rage capped at 6 (not 9999); L19 is Epic Boon, not ASI; 4 ASIs total (L4/8/12/16)
  • Fighter: 6 ASIs (L4/6/8/12/14/16); new features Tactical Mind, Tactical Shift, Tactical Master, Studied Attacks
  • Monk: focus_points replaces ki_points; martial arts die bumped one tier per bracket; Deflect Attacks replaces Deflect Missiles
  • Rogue: 5 ASIs (L4/8/10/12/16); Reliable Talent moved to L7; new Cunning Strike, Steady Aim, Devious Strikes

Infrastructure

Feature URLs use -nyi suffix (e.g., /api/2024/features/barbarian-rage-nyi) since the Features collection is not yet in this fork. tables.test.ts is updated with a bypass that skips broken-link validation for any URL ending in -nyi, matching the convention introduced in upstream PR 5e-bits#1056.

Test plan

  • npm test — all 50 tests pass
  • Schema test validates all 80 level documents
  • Tables test passes with -nyi bypass in place

🤖 Generated with Claude Code

…, Rogue)

Adds 80 level documents (4 classes × 20 levels) to the 2024 data set with
SRD 5.2.1-verified class_specific progressions and feature lists.

- Barbarian: rage_count/rage_damage_bonus; no brutal_critical_dice (2024 uses Brutal Strike)
- Fighter: action_surges, indomitable_uses, extra_attacks progressions
- Monk: focus_points (renamed from ki_points), martial_arts (1d6→1d8→1d10→1d12), unarmored_movement
- Rogue: sneak_attack progression; ASIs at L4/8/10/12/16

Feature URLs use -nyi suffix (Features collection not yet implemented).
tables.test.ts updated with -nyi bypass to allow incremental shipping.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@t11z
Copy link
Copy Markdown
Owner Author

t11z commented Apr 5, 2026

Spot Check Report: 2024 Levels Batch 1

PR: #4
Branch: feat/2024-levels-batch1
Date: 2026-04-05
SRD Source: SRD_CC_v5.2.1.pdf

10 records checked across all 4 classes. Each entry was compared against the class features table in the PDF.


Results

1. barbarian-3 — p. 28

Field Our Data SRD
prof_bonus 2 +2
features Barbarian Subclass, Primal Knowledge Barbarian Subclass, Primal Knowledge
rage_count 3 3
rage_damage_bonus 2 +2
ability_score_bonuses 0

Status: ✅ Pass


2. barbarian-9 — p. 28

Field Our Data SRD
prof_bonus 4 +4
features Brutal Strike Brutal Strike
rage_count 4 4
rage_damage_bonus 3 +3
ability_score_bonuses 2 2 (L4, L8)

Status: ✅ Pass


3. barbarian-16 — p. 28

Field Our Data SRD
prof_bonus 5 +5
features Ability Score Improvement Ability Score Improvement
rage_count 5 5
rage_damage_bonus 4 +4
ability_score_bonuses 4 4 (L4, L8, L12, L16)

Status: ✅ Pass


4. fighter-2 — p. 47

Field Our Data SRD
prof_bonus 2 +2
features Action Surge (one use), Tactical Mind Action Surge (one use), Tactical Mind
action_surges 1 1
indomitable_uses 0 0
extra_attacks 0 0
ability_score_bonuses 0

Status: ✅ Pass


5. fighter-11 — p. 47

Field Our Data SRD
prof_bonus 4 +4
features Two Extra Attacks Two Extra Attacks
action_surges 1 1 (still 1; second use not until L17)
indomitable_uses 1 1 (gained at L9)
extra_attacks 2 2 (three attacks total)
ability_score_bonuses 3 3 (L4, L6, L8)

Status: ✅ Pass


6. fighter-17 — p. 47

Field Our Data SRD
prof_bonus 6 +6
features Action Surge (two uses), Indomitable (three uses) Action Surge (two uses), Indomitable (three uses)
action_surges 2 2
indomitable_uses 3 3
extra_attacks 2 2 (Three Extra Attacks not until L20)
ability_score_bonuses 6 6 (L4, L6, L8, L12, L14, L16)

Status: ✅ Pass


7. monk-5 — p. 50

Field Our Data SRD
prof_bonus 3 +3
features Extra Attack, Stunning Strike Extra Attack, Stunning Strike
focus_points 5 5
martial_arts 1d8 1d8
unarmored_movement 10 +10 ft.
ability_score_bonuses 1 1 (L4)

Status: ✅ Pass


8. monk-10 — p. 50

Field Our Data SRD
prof_bonus 4 +4
features Heightened Focus, Self-Restoration Heightened Focus, Self-Restoration
focus_points 10 10
martial_arts 1d8 1d8 (bumps to 1d10 at L11)
unarmored_movement 20 +20 ft.
ability_score_bonuses 2 2 (L4, L8)

Status: ✅ Pass


9. monk-14 — p. 50

Field Our Data SRD
prof_bonus 5 +5
features Disciplined Survivor Disciplined Survivor
focus_points 14 14
martial_arts 1d10 1d10
unarmored_movement 25 +25 ft.
ability_score_bonuses 3 3 (L4, L8, L12)

Status: ✅ Pass


10. rogue-7 — p. 62

Field Our Data SRD
prof_bonus 3 +3
features Evasion, Reliable Talent Evasion, Reliable Talent
sneak_attack 4d6 4d6
ability_score_bonuses 1 1 (L4)

Status: ✅ Pass


Summary

# Record Status Notes
1 barbarian-3 ✅ Pass
2 barbarian-9 ✅ Pass
3 barbarian-16 ✅ Pass
4 fighter-2 ✅ Pass
5 fighter-11 ✅ Pass
6 fighter-17 ✅ Pass
7 monk-5 ✅ Pass
8 monk-10 ✅ Pass
9 monk-14 ✅ Pass
10 rogue-7 ✅ Pass

10/10 records correct. No bugs found.

All class_specific progressions (rage, action surges, indomitable uses, extra attacks, focus points, martial arts die, unarmored movement, sneak attack) match the SRD tables exactly. Proficiency bonuses, ability score bonus counts, and feature lists are all verified correct.

@t11z t11z self-assigned this Apr 5, 2026
@t11z t11z merged commit c797ec9 into main Apr 5, 2026
5 checks passed
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.

1 participant