Files
ScoreKeeper/TODO.md
2026-10-10 22:57:27 -07:00

2.6 KiB

Score Keeper Tasks

Done means implemented in source, not validated by automated behavioral tests. Ready means not yet implemented. See docs/Modernize.md for the broader roadmap and docs/human-tests.md for manual pre-release validation.

ID Status Title
SK-01 Done Save scores between clean server launches using enable-time load and disable-time save. Crash-safe/periodic persistence is still future work.
SK-02 Done Track independent UUID-keyed scores by named bucket with singular/plural units and initial values; support default and individual assignments.
SK-03 Done Add per-bucket admin, global, player, and none reporting policies.
SK-04 Done Notify affected online players when their active bucket changes, including current score and units.
SK-05 Done Implement target-score, timed, and manually stopped bucket runs with configurable top N, optional initial reset/snapshot restoration, global leader reporting, and final personal standings. Active runs persist across clean restarts.
SK-06 Done Archive player, bucket, or all-bucket scores and reset live entries to initial values; list archive IDs and contents.
SK-07 Done Replace the release plugin with Git-sensitive semantic versioning (minimum 0.2.1, v tag prefix) and re-enable Gradle configuration cache. Versions are Git-derived, not a hardcoded snapshot.
SK-08 Ready Add JUnit 5 test infrastructure and keep the default Gradle test task server-free. Use a compatible in-memory Paper harness such as MockBukkit; use Mockito only for narrow boundaries where a harness is unnecessary.
SK-09 Ready Add fast score/bucket tests: validation and duplicates, initial values, UUID isolation, lazy entries, default/per-player selection, and signed add/subtract/reset behavior.
SK-10 Ready Test YAML round trips, assignments, active runs/snapshots, archive contents/resets, legacy loading, and malformed/unknown entries using temporary data directories.
SK-11 Ready Test command validation/dispatch/permissions, reporting/messages, bucket switches, ranking/ties, top-N thresholds, target/duration/manual completion, and restoration. Use controllable time/scheduling where needed.
SK-12 Ready Add a separate opt-in integrationTest source set/task for real Paper loading, command dispatch, companion API wiring, and restart persistence. Keep it outside normal test/build.
SK-13 Ready Add an option to /score-get for a specific bucket, preserving current optional-player syntax.