From 6522c6d5251237a873390b902fff5c76fbabe9a9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 17:40:02 +0000 Subject: [PATCH] docs: record the validated hockey scroll-display pilot for B5 B5 cannot ship until this PR merges and 3.2.0 exists -- a plugin cannot floor ledmatrix_min_version at a release that does not exist, and an unguarded src.common.sports_scroll import would break every user on 3.1.0. The pilot has been validated ahead of that gate: hockey's scroll_display.py adopted against a core carrying 3.2.0 goes from 691 to 289 lines with all 16 harness renders byte-for-byte identical. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01FgbA8SMutQQpXkMG8LMmC4 --- docs/SPORTS_UNIFICATION.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/SPORTS_UNIFICATION.md b/docs/SPORTS_UNIFICATION.md index cfbbe9dc..83253b7b 100644 --- a/docs/SPORTS_UNIFICATION.md +++ b/docs/SPORTS_UNIFICATION.md @@ -208,7 +208,18 @@ legacy compatibility rather than the mechanism. | **B2** ✅ | `CelebrationMixin` + rotation strategies as opt-in capabilities | Plugins that don't opt in have zero new code in their MRO; strategies checked against verbatim plugin transcriptions | | **B3** ✅ | Upstream the scroll **orchestration** layer as `src/common/sports_scroll.py`, reading `global_config['target_fps']` natively | Plugin copies remain until sunset; content building stays per-sport | | **B4** | Bump to 3.2.0, record modules in CHANGELOG, migrate `ledmatrix_min` → `ledmatrix_min_version` | Gives plugins a version to floor on | -| **B5** | Pilot one plugin per lineage (hockey, soccer, football) on guarded core imports; then the remaining six; then delete bundled copies | Pilot soaks before rollout; harness + golden suites gate each | +| **B5** ⏳ | Pilot one plugin per lineage (hockey, soccer, football) on core imports; then the remaining six; then delete bundled copies | Pilot soaks before rollout; harness + golden suites gate each | + +**B5 is blocked on this PR merging and 3.2.0 shipping** — a plugin cannot floor +`ledmatrix_min_version` at a release that does not exist, and an unguarded +`src.common.sports_scroll` import would break every user on 3.1.0. + +The hockey scroll-display pilot has been **validated ahead of that gate**: +adopted against a core carrying 3.2.0, `scroll_display.py` went from 691 to 289 +lines and all 16 harness renders (8 sizes × 2 screens) came out byte-for-byte +identical to the pre-adoption run. The adoption recipe and the two gotchas it +surfaced are written up in the plugins repo's +`docs/plugin-development/08-shared-sports-code.md`. ## Rules for contributors