Skip to content

docs(nrl-scoreboard): document all 131 settings, with real renders - #425

Open
ChuckBuilds wants to merge 1 commit into
mainfrom
docs/nrl-readme
Open

docs(nrl-scoreboard): document all 131 settings, with real renders#425
ChuckBuilds wants to merge 1 commit into
mainfrom
docs/nrl-readme

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

The NRL README documented roughly 55 of the plugin's 131 settings and had no images. It now covers every schema leaf — verified with a token audit against config_schema.json — and shows each display mode, the show_records toggle, and the live card at four panel sizes.

Renders

All four images come from docs/assets/nrl-scoreboard/shots.json and re-render with --check.

Three things the fixture had to get right, all noted in the file's comment:

  • Games are seeded onto the per-mode sub-managers (self._managers), not the plugin. Every mode's display() returns early unless games_list is populated, and the live path additionally reads live_games.
  • display_mode must be passed. Without it the plugin's no-argument path selects nothing and draws a blank panel — this is what LEDMatrix#522 and fix(docs-tooling): let shot attrs reach nested plugin state #423 were for.
  • The card reads home_logo_path / away_logo_path off the game dict as Path objects.

The bundled PEN.png / MEL.png are grey placeholder images, so the crests render as grey blocks. Real crests are fetched at runtime by the core's logo downloader. The README says so under each affected image rather than pretending otherwise.

What the old README got wrong

  • Duplicate keys were undocumented. The seven selection limits are declared both at the config root and under game_limits, and manager.py reads both — game_limits wins where present. Same for show_records / show_ranking / show_odds under display_options, and show_favorite_teams_only under filtering. Setting the root copy while the nested one exists presents as a setting that does nothing; the README now explains the precedence and the troubleshooting section names it.
  • other_games_min_quality was documented with a broadcast choice the enum does not offer (["any", "ranked"]).
  • scroll_settings was described as working. It is unreachable — filed as afl and nrl: the scroll_settings block is unreachable — the code reads scroll_mode #422 — and the README now says so rather than documenting six inert knobs.

mode_durations and customization.favorite_result_colors look dead to a grep of this tree because the core reads them (src/common/sports_card.py). The README now says where they are read, so the next person does not delete them.

Checks

  • check_plugin.py: all 8 panel sizes x 3 display modes, zero FAIL
  • Config-token audit: 131 schema leaves, 0 undocumented
  • Every example config validated against the schema, including nesting depth and additionalProperties
  • Every documented default read back from config_schema.json
  • Manifest bumped 1.21.1 -> 1.21.2 (PATCH, docs-only), plugins.json regenerated by update_registry.py

Does not touch the shared sports.py lineage.

Dependency

Carries the docs-tooling commits from #423 (the display_mode shot key, dotted-path attrs, and *_path coercion) so this branch renders standalone. Those changes are identical in both branches and will collapse on merge. The core side is ChuckBuilds/LEDMatrix#522.

🤖 Generated with Claude Code

The README covered roughly 55 of the plugin's 131 settings and had no
images at all. It now documents every schema leaf -- verified by a
token audit against config_schema.json -- and shows each of the three
display modes, the show_records toggle, and the card at four panel
sizes.

Three things the old README got wrong or left out:

- The seven selection limits (recent_games_to_show and friends) are
  declared twice, at the config root and under game_limits, and both
  are read. game_limits wins where present. Same for show_records /
  show_ranking / show_odds under display_options, and for
  show_favorite_teams_only under filtering. Setting the root copy while
  the nested one exists looks like a setting that does nothing.
- other_games_min_quality's documented choices included "broadcast",
  which the enum does not offer.
- The scroll_settings block is unreachable (#422); the README now says
  so rather than describing six knobs that do nothing.

mode_durations and customization.favorite_result_colors are read by the
core, not by this plugin, so they look dead to a grep of this tree. The
README now says where they are read.

Renders come from docs/assets/nrl-scoreboard/shots.json. The fixture
seeds games onto the per-mode sub-managers rather than the plugin --
every mode's display() returns early unless games_list is populated,
and the live path also needs live_games -- and passes display_mode,
without which the plugin's no-argument path selects nothing and draws a
blank panel. The bundled PEN/MEL logo files are grey placeholders, so
the crests render as blocks; the README says so.

check_plugin.py passes on all eight panel sizes for all three modes.

Carries the docs-tooling changes from #423 (display_mode shot key,
dotted-path attrs, *_path coercion), which this render depends on.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 8d4c44a5-6522-4105-80ee-2c6ea0a1735a


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 18 complexity

Metric Results
Complexity 18

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant