CLAUDE: Add X-Check commands to terminal client help system

Added documentation for 8 X-Check testing and gameplay commands that
were implemented but missing from the help system:

X-Check Testing Commands:
- roll_jump: Roll jump dice for stolen base testing
- test_jump: Test jump roll distribution statistics
- roll_fielding: Roll fielding check dice for X-Check defensive plays
- test_fielding: Test fielding roll distribution

Testing & Development:
- test_location: Test hit location distribution
- rollback: Roll back the last N plays

Interrupt Plays:
- force_wild_pitch: Force a wild pitch interrupt play
- force_passed_ball: Force a passed ball interrupt play

Changes:
- help_text.py: Added new command categories to show_command_list()
  - "X-Check Testing" section with 4 dice testing commands
  - "Interrupt Plays" section with 2 force commands
  - Moved test_location and rollback to "Testing & Development"

- help_text.py: Added detailed HELP_DATA entries for all 8 commands
  - Complete usage, options, examples, and notes for each
  - Includes dice component explanations and expected distributions

Users can now run 'help' to see all commands or 'help <command>' for
detailed information about X-Check testing features.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Cal Corum 2025-11-04 15:33:23 -06:00
parent e6bd66ee39
commit 8fb740fe3e

View File

@ -120,6 +120,22 @@ class HelpFormatter:
# Testing # Testing
console.print("[bold yellow]Testing & Development:[/bold yellow]") console.print("[bold yellow]Testing & Development:[/bold yellow]")
console.print(" list_outcomes Show all available PlayOutcome values") console.print(" list_outcomes Show all available PlayOutcome values")
console.print(" test_location Test hit location distribution")
console.print(" rollback Roll back the last N plays")
console.print()
# X-Check Testing (Dice Systems)
console.print("[bold yellow]X-Check Testing:[/bold yellow]")
console.print(" roll_jump Roll jump dice for stolen base testing")
console.print(" test_jump Test jump roll distribution")
console.print(" roll_fielding Roll fielding check dice")
console.print(" test_fielding Test fielding roll distribution")
console.print()
# Interrupt Plays
console.print("[bold yellow]Interrupt Plays:[/bold yellow]")
console.print(" force_wild_pitch Force a wild pitch interrupt play")
console.print(" force_passed_ball Force a passed ball interrupt play")
console.print() console.print()
# Utilities # Utilities
@ -347,6 +363,164 @@ HELP_DATA = {
'examples': [ 'examples': [
'clear' 'clear'
] ]
},
# X-Check Testing Commands
'roll_jump': {
'summary': 'Roll jump dice for stolen base testing',
'usage': 'roll_jump [LEAGUE]',
'options': [
{
'name': 'LEAGUE',
'type': 'sba|pd',
'desc': 'League type (default: sba)'
}
],
'examples': [
'roll_jump # Roll for SBA league',
'roll_jump pd # Roll for PD league'
],
'notes': 'Components: 1d20 check (1=pickoff, 2=balk, 3+=normal), 2d6 jump total'
},
'test_jump': {
'summary': 'Test jump roll distribution statistics',
'usage': 'test_jump [COUNT] [LEAGUE]',
'options': [
{
'name': 'COUNT',
'type': 'integer',
'desc': 'Number of rolls to test (default: 10)'
},
{
'name': 'LEAGUE',
'type': 'sba|pd',
'desc': 'League type (default: sba)'
}
],
'examples': [
'test_jump # 10 rolls for SBA',
'test_jump 100 # 100 rolls for SBA',
'test_jump 50 pd # 50 rolls for PD'
],
'notes': 'Shows pickoff/balk/normal frequency and 2d6 distribution'
},
'roll_fielding': {
'summary': 'Roll fielding check dice for X-Check defensive plays',
'usage': 'roll_fielding <POSITION> [LEAGUE]',
'options': [
{
'name': 'POSITION',
'type': 'P|C|1B|2B|3B|SS|LF|CF|RF',
'desc': 'Fielding position (required)'
},
{
'name': 'LEAGUE',
'type': 'sba|pd',
'desc': 'League type (default: sba)'
}
],
'examples': [
'roll_fielding SS # Roll for shortstop (SBA)',
'roll_fielding P pd # Roll for pitcher (PD)',
'roll_fielding CF # Roll for center field'
],
'notes': 'Components: 1d20 range, 3d6 error total, d100/special rare play check'
},
'test_fielding': {
'summary': 'Test fielding roll distribution for a position',
'usage': 'test_fielding <POSITION> [COUNT] [LEAGUE]',
'options': [
{
'name': 'POSITION',
'type': 'P|C|1B|2B|3B|SS|LF|CF|RF',
'desc': 'Fielding position (required)'
},
{
'name': 'COUNT',
'type': 'integer',
'desc': 'Number of rolls (default: 10)'
},
{
'name': 'LEAGUE',
'type': 'sba|pd',
'desc': 'League type (default: sba)'
}
],
'examples': [
'test_fielding SS # 10 rolls for shortstop',
'test_fielding 2B 100 # 100 rolls for second base',
'test_fielding CF 50 pd # 50 rolls for center field (PD)'
],
'notes': 'Shows rare play frequency, average range/error, and distribution stats'
},
'test_location': {
'summary': 'Test hit location distribution for an outcome',
'usage': 'test_location <OUTCOME> [HANDEDNESS] [COUNT]',
'options': [
{
'name': 'OUTCOME',
'type': 'PlayOutcome',
'desc': 'PlayOutcome enum value (e.g., groundball_c)'
},
{
'name': 'HANDEDNESS',
'type': 'L|R',
'desc': 'Batter handedness (default: R)'
},
{
'name': 'COUNT',
'type': 'integer',
'desc': 'Number of samples (default: 100)'
}
],
'examples': [
'test_location groundball_c',
'test_location groundball_c L',
'test_location flyout_b R 200'
],
'notes': 'Shows distribution of hit locations based on pull rates'
},
'rollback': {
'summary': 'Roll back the last N plays',
'usage': 'rollback <NUM_PLAYS>',
'options': [
{
'name': 'NUM_PLAYS',
'type': 'integer',
'desc': 'Number of plays to roll back (must be > 0)'
}
],
'examples': [
'rollback 1 # Undo the last play',
'rollback 3 # Undo the last 3 plays',
'rollback 5 # Undo the last 5 plays'
],
'notes': 'Deletes plays from database and reconstructs state by replaying'
},
'force_wild_pitch': {
'summary': 'Force a wild pitch interrupt play',
'usage': 'force_wild_pitch',
'options': [],
'examples': [
'force_wild_pitch # Runner on 2nd advances to 3rd'
],
'notes': 'Advances all runners one base. This is an interrupt play (pa=0)'
},
'force_passed_ball': {
'summary': 'Force a passed ball interrupt play',
'usage': 'force_passed_ball',
'options': [],
'examples': [
'force_passed_ball # Runner on 1st advances to 2nd'
],
'notes': 'Advances all runners one base. This is an interrupt play (pa=0)'
} }
} }