2025‑04‑20 Report
Overview
Today we reorganized the codebase by moving and rewriting core game and tool modules, introduced a composite effects pipeline, revamped the play‑choose logic, and pushed our test coverage to 95.7%.
Key Accomplishments
-
Project Structure & Module Reorganization
-
Moved
game/choose
intoplay/choose
to align naming with gameplay flow. -
Relocated
game/tracker
andgame/logger
intocore/tools
for clearer separation of cross‑cutting utilities. -
Core State & Logging Rewrite
-
Completely rewrote
game/state
,game/tracker
, andgame/logger
:- Standardized state fields and ordering.
- Streamlined tracker events and logger output formats.
-
Ensured all tool modules follow the “module‑prefix” naming convention and export only their public API.
-
Play‑Choose Logic Overhaul
-
Rewrote
play/choose
to simplify choice resolution and strategy loading. -
Introduced dynamic strategy discovery in the loader, decoupling strategy files from hard‑coded registration.
-
Effects Pipeline
-
Added
effects/pipeline
as a composite effects runner:- Chains multiple effect functions in sequence.
- Supports early termination and branching based on effect results.
-
Updated individual effects to emit standardized output for pipeline consumption.
-
Testing & Coverage
-
Expanded unit tests: now 22/23 tests passing across 8 units (95.65% coverage).
- Added new tests for the composite pipeline and the reordered modules.
Next Steps
- Complete Pipeline Logic
Finalize branching, rollback, and conditional execution withineffects/pipeline
. - Enhance Core Effects
Refactoreffects/core
for DRYness and better default parameters. - Grow Strategy Suite
Implement additional choose‑strategies to cover edge cases. - Finish Base Set Cards
Add remaining card definitions and associated effects for the base set. - Refactor Tools
Rewritetools/tracker
andtools/logger
to use the new pipeline abstractions. - Implement Game Loop
Begin a fullgame/loop
module: turn phases, supply management, and trash handling.
Conclusion
Significant progress today on restructuring and the new effects pipeline. Tomorrow we’ll finalize the pipeline logic and start wiring up the full game loop.