CLAUDE: Update NEXT_SESSION.md - Task 2 complete

- Updated current status to 33% complete (2 of 6 tasks done)
- Added comprehensive Task 2 completion details
- Updated success criteria to show 24/85 new tests passing
- Set next task to Task 3: Complete Result Charts - Part A
This commit is contained in:
Cal Corum 2025-10-30 06:43:13 -05:00
parent 121a9082f1
commit f07d8ca043

View File

@ -1,9 +1,9 @@
# Next Session Plan - Phase 3 Week 7 in Progress # Next Session Plan - Phase 3 Week 7 in Progress
**Current Status**: Phase 3 - Week 7 (~17% Complete) **Current Status**: Phase 3 - Week 7 (~33% Complete)
**Last Commit**: `95d8703` - "CLAUDE: Implement Week 7 Task 1 - Strategic Decision Integration" **Last Commit**: `121a908` - "CLAUDE: Implement Week 7 Task 2 - Decision Validators"
**Date**: 2025-10-29 **Date**: 2025-10-30
**Remaining Work**: 83% (5 of 6 tasks remaining) **Remaining Work**: 67% (4 of 6 tasks remaining)
--- ---
@ -12,13 +12,15 @@
### 🎯 Where to Begin ### 🎯 Where to Begin
1. Read this entire document first 1. Read this entire document first
2. Review `@.claude/implementation/WEEK_7_PLAN.md` for comprehensive task details 2. Review `@.claude/implementation/WEEK_7_PLAN.md` for comprehensive task details
3. Start with **Task 2: Decision Validators** (next logical step) 3. Start with **Task 3: Complete Result Charts - Part A** (next logical step)
4. Run tests after each change: `pytest tests/unit/core/test_validators.py -v` 4. Run tests after each change: `pytest tests/unit/config/test_result_charts.py -v`
### 📍 Current Context ### 📍 Current Context
**Week 7 Task 1 is complete!** We've implemented the async decision workflow infrastructure that integrates AI and human decision-making. The GameEngine now has `await_defensive_decision()` and `await_offensive_decision()` methods that use asyncio Futures for WebSocket communication. AI teams get instant decisions, human teams wait with timeout. **Week 7 Tasks 1 & 2 are complete!**
- **Task 1**: Async decision workflow infrastructure with asyncio Futures for WebSocket communication
- **Task 2**: Comprehensive validators for defensive and offensive decisions with 24+ test cases
**Next up**: Validate those decisions! Task 2 adds `validate_defensive_decision()` and `validate_offensive_decision()` to the validators module to ensure decisions are legal for the current game state. **Next up**: Enhance the result chart system! Task 3 implements `StandardResultChart` with defensive/offensive decision modifiers, hit location logic, and ~25 test cases. This will allow decisions to actually affect play outcomes.
--- ---
@ -58,7 +60,35 @@
- **Testing**: Config tests 58/58 passing ✅, Terminal client works perfectly ✅ - **Testing**: Config tests 58/58 passing ✅, Terminal client works perfectly ✅
### 2. Manual Outcome Testing Feature (Bonus) ### 2. Decision Validators (Week 7 Task 2) - 100%
- **Enhanced Validators** (`app/core/validators.py`)
- `validate_defensive_decision()` - Comprehensive validation:
- Validates all alignments (normal, shifted_left, shifted_right, extreme_shift)
- Validates all depths (infield: in/normal/back/double_play, outfield: in/normal/back)
- Validates hold_runners require actual runners on specified bases
- Validates hold_runners only on bases 1, 2, or 3
- Validates double_play depth requires runner on first
- Validates double_play depth not allowed with 2 outs
- `validate_offensive_decision()` - Comprehensive validation:
- Validates all approaches (normal, contact, power, patient)
- Validates steal_attempts only to bases 2, 3, or 4
- Validates steal_attempts require runner on base-1
- Validates bunt_attempt not allowed with 2 outs
- Validates bunt_attempt and hit_and_run cannot be simultaneous
- Validates hit_and_run requires at least one runner on base
- Clear error messages for all validation failures
- Follows "Raise or Return" pattern with ValidationError exceptions
- **Impact**: All decisions validated before resolution, prevents illegal game states
- **Comprehensive Tests** (`tests/unit/core/test_validators.py`)
- 24+ new test cases covering all validation logic
- 13 defensive decision validation tests
- 16 offensive decision validation tests
- Edge case coverage (0 outs, 1 out, 2 outs, various runner scenarios)
- All 54/54 tests passing ✅
- **Impact**: Full coverage of decision validation rules
### 3. Manual Outcome Testing Feature (Bonus)
- **Terminal Client Commands** (`terminal_client/commands.py`, `terminal_client/repl.py`) - **Terminal Client Commands** (`terminal_client/commands.py`, `terminal_client/repl.py`)
- Added `list_outcomes` command - Displays categorized table of all 30+ PlayOutcome values - Added `list_outcomes` command - Displays categorized table of all 30+ PlayOutcome values
- Added `resolve_with <outcome>` command - Force specific outcome for testing - Added `resolve_with <outcome>` command - Force specific outcome for testing
@ -468,13 +498,13 @@ After each task:
**Week 7** will be **100% complete** when: **Week 7** will be **100% complete** when:
- ✅ Task 1: Strategic Decision Integration (DONE) - ✅ Task 1: Strategic Decision Integration (DONE)
- [ ] Task 2: Decision Validators (~20 tests passing) - ✅ Task 2: Decision Validators (DONE - 24 tests passing)
- [ ] Task 3: Result Charts Part A (~25 tests passing) - [ ] Task 3: Result Charts Part A (~25 tests passing)
- [ ] Task 4: Result Charts Part B (~20 tests passing) - [ ] Task 4: Result Charts Part B (~20 tests passing)
- [ ] Task 5: Double Play Mechanics (~10 tests passing) - [ ] Task 5: Double Play Mechanics (~10 tests passing)
- [ ] Task 6: WebSocket Handlers (~15 tests passing) - [ ] Task 6: WebSocket Handlers (~15 tests passing)
- [ ] Task 7: Terminal Client Enhancement (manual testing passes) - [ ] Task 7: Terminal Client Enhancement (manual testing passes)
- [ ] All 85+ new tests passing - [ ] All 85+ new tests passing (currently 24/85 done)
- [ ] Terminal client demonstrates all features - [ ] Terminal client demonstrates all features
- [ ] Documentation updated - [ ] Documentation updated
- [ ] Git commits for each task - [ ] Git commits for each task