Files
settled-reach/docs/sprints/sprint-37/joint.md
T
jpmschweitzer 8b3baf511f chore(meta): plan Sprint 37: Sweep — 25-ticket spring-clean sprint
Tickets:
- ci (7): #854, #855, #856, #857, #858, #859, #723
- server (9): #853, #860, #862, #863, #874, #877, #878, #789, #847
- client (6): #866, #869, #870, #872, #873, #875
- copy (3): #861, #865, #876

Themes: asset pipeline discipline, PROTOCOL_VERSION removal (D-192),
D-167 HeritageRoot purge, D-032 smuggler/detective enum audit, New Game
regression fix + merge-path test coverage, copy wiki residue purge,
bookmark save-state, generator quality patches.

Debt surfaced from Q/D-record sweep: Q-095 Commission name, D-167 and
D-032 residue, plus spring-cleaning pulls from stale backlog (#789,
#847, #723, #862).

#868 cancelled (superseded by #874 + #875).
2026-04-21 16:00:22 +02:00

4.3 KiB

Sprint 37: Sweep — Joint Overview

Sprint goal: Spring-clean accumulated debt: asset pipeline discipline, PROTOCOL_VERSION removal, D-167/D-032 dead-code purge, New Game regression fix, copy wiki residue, bookmark save-state, and generator quality patches.

Sprint 37 is a maintenance and polish sprint. No new features. Every ticket is either closing a decision-without-follow-through, fixing a regression, establishing infrastructure discipline, or clearing content debt.

Pre-Sprint Decisions

Decision Status Owner Blocks
Q-095: Commission formal name Open — resolve sprint day 1 copy (Jeroen picks) #876, #865
D-192: Drop PROTOCOL_VERSION Confirmed server then client #874 → #875
D-167: HeritageRoot removal Confirmed server #877
D-032: Smuggler/detective enum Confirmed obsolete server #878

Full Ticket Roster

Team # Title Priority
ci #854 Generator-driven asset pipeline (epic) high
ci #855 systems.db regeneration with versioning awareness high
ci #856 Stamp systems.db with generator metadata (meta table) high
ci #857 Pre-push git hook for systems.db consistency high
ci #858 Extend /pr-push with rebase + regen + stage high
ci #859 Document the source-canonical rule medium
ci #723 Add decision-to-ticket coverage report medium
server #853 Generator-patch follow-up: dedup, mountains, suffix, compass medium
server #860 Resolve 21 raw-commodity / system coverage gate gaps medium
server #863 Wire SelectedBookmark into SaveState medium
server #874 Drop PROTOCOL_VERSION on server (D-192) medium
server #877 Remove HeritageRoot type alias and Heritage variant (D-167) medium
server #878 Audit and purge dead smuggler/detective enum (D-032) medium
server #789 Storyteller activation_pass log should be DEBUG not WARN low
server #847 Determinism smoke test for generate_atlas.py low
server #862 Refactor BookmarkPlugin to accept injected registry low
client #866 dialogue_box _escape_bbcode chained replace corrupts [lb] high
client #869 Fix MetaScreen test helper regression — anti_tedium (7 fails) high
client #872 New Game flow hangs on 'connecting' high
client #873 Scene-level merge-path UI flow tests (gdUnit4) high
client #870 Delete or revive 8 parse-error test files medium
client #875 Drop PROTOCOL_VERSION on client (D-192) medium
copy #861 Author 112 brand corp wiki stubs to three-layer depth medium
copy #865 Purge remaining v0.1 Sova/Van Maanen's residue from wiki medium
copy #876 decide(content): Commission formal name (Q-095) medium

Total: 25 tickets across 4 teams.

Cross-Team Dependencies

server #874 (PROTOCOL_VERSION drop) → client #875
copy #876 (Commission name) → copy #865 (faction files use resolved name)
ci #855 → #856 → #857, #858, #859 (asset pipeline chain)

Sprint Completion Criteria

The sprint is done when all of the following are true:

  1. make economy-db passes end-to-end with no coverage gate failures (#860 done).
  2. make game → New Game → character creation completes without hanging (#872 done).
  3. Scene-level gdUnit4 tests exist for all four merge-path flows and pass headless (#873 done).
  4. server/src/bridge/types.rs contains no PROTOCOL_VERSION constant and no version field in the snapshot envelope (#874 done).
  5. client/scripts/protocol/protocol.gd contains no version-mismatch guard (#875 done, after #874).
  6. server/src/simulation/generator.rs contains no HeritageRoot type alias and no Heritage enum variant (#877 done).
  7. server/data/systems.db carries a meta table with schema_version, generator_sha, generated_at (#856 done).
  8. git push on a branch with a stale systems.db is rejected by the pre-push hook (#857 done).
  9. .claude/rules/asset-pipeline.md exists and is referenced from CLAUDE.md (#859 done).
  10. All 112 new brand corp wiki pages are ≥95 lines with three-layer content (#861 done).
  11. Q-095 is resolved: a D-record exists for the Commission formal name (#876 done).
  12. tooling/db/ticket list --sprint 37 shows all 25 tickets as done.