Skip to content

docs(soccer-scoreboard): document all 636 settings, with real renders - #436

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

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

Conversation

@ChuckBuilds

@ChuckBuilds ChuckBuilds commented Sep 4, 2026

Copy link
Copy Markdown
Owner

The soccer README documented six of the ten leagues by pasting a near-identical config block for each, covered a fraction of the 636 settings, and had no images. It now documents every schema leaf — token audit: 0 undocumented — with six renders.

Kept: the ChuckBuilds links block, the supported-league table, the custom-league codes, the World Cup section, the TEAMS.md pointer, and the non-favorite dwell table.

Structure

Ten league blocks, 53 leaves each, identical except enabled. One <league> section collapses 477 of the 636 leaves — the largest such win in this series.

Soccer is also structurally unlike its siblings: three display modes in total (soccer_live / soccer_recent / soccer_upcoming), shared across every enabled league, rather than three per league.

leagues.<slug>.display_options does nothing

Issue #435. Each of the ten league blocks declares display_options with show_records, show_ranking and show_odds. Nothing reads it — zero hits in the plugin, zero in the core. _adapt_config_for_manager takes all three from the plugin config root (manager.py:447-449).

Proved by render in both directions: toggling the per-league copy gives byte-identical panels with no records; toggling the root key draws them and removes them.

That is 30 settings, and it is the opposite precedence to every other scoreboard in this repo, where the per-league copy wins. Anyone carrying a config pattern across from hockey or basketball will set the one that does nothing. The README documents the behaviour that exists and points at the issue.

A near-miss worth recording: scroll_settings in the same league blocks looked equally unreferenced — zero hits in manager.py. It is live: scroll_display.py:128 overrides _get_scroll_settings(league) and delegates to the core base class, which reads it (9 references in core src/). Grepping the core is what separated a real finding from a false one.

Match states

Soccer has the richest status model of the six, and it was undocumented outside a bullet list in the World Cup section.

match states

1H, 2H, HALF, ET1, ET2, ETH, PEN while live; Final, F/ET, F/Pen once over. Both groups now have their own render. Real Premier League crests.

Checks

  • check_plugin.py: 24/24 PASS, zero FAIL
  • Config-token audit: 636 schema leaves (including custom_leagues[] item fields), 0 undocumented
  • Every example config validated against the schema, including nesting depth and additionalProperties (leagues sets additionalProperties: false)
  • Every documented default read back from config_schema.json
  • Manifest bumped 2.24.1 -> 2.24.2 (PATCH, docs-only), plugins.json regenerated

Does not touch the shared sports.py lineage.

This completes the six-scoreboard set

nrl #425, lacrosse #428, football #430, hockey #433, basketball #434, and this one — 1,600+ settings documented with 0 undocumented across all six, every one with rendered images and a passing harness.

Dependency

Carries the docs-tooling commits from #423 so this branch renders standalone; identical across all six branches and they collapse on merge.

🤖 Generated with Claude Code

The README documented six of the ten leagues by pasting a near-identical
config block for each, covered a fraction of the 636 settings, and had
no images. It now documents every schema leaf -- verified by a token
audit -- with six renders, and keeps the ChuckBuilds links block, the
supported-league table, the custom-league codes, the World Cup section,
the TEAMS.md pointer and the non-favorite dwell table.

Ten league blocks, 53 leaves each, identical except enabled. One
<league> section collapses 477 of the 636 leaves.

leagues.<slug>.display_options does nothing. Nothing in this plugin or
in the core reads it; _adapt_config_for_manager takes show_records,
show_ranking and show_odds from the plugin config root instead. Proved
by render in both directions -- toggling the per-league copy gives
byte-identical panels, toggling the root key draws and removes the
records. That is 30 settings, and it is the opposite precedence to every
other scoreboard here, so a config pattern carried across sets the wrong
one. Filed as #435; the README documents the behaviour that exists.

scroll_settings in the same blocks looks equally unreferenced but is
live -- scroll_display.py delegates to the core base class, which reads
it. Grepping the core is what separated the two.

Soccer has the richest status model of the set, and it was undocumented
beyond a list in the World Cup section: 1H, 2H, HALF, ET1, ET2, ETH and
PEN while live, then Final, F/ET or F/Pen. Both now have renders.

check_plugin.py passes 24/24 with no FAIL.

Carries the docs-tooling changes from #423, 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: 00621f9e-a2d1-4ef1-bfe2-1ef3b8ab95ad


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