Skip to content

docs: add a Bloc STAR Voting help page, and link it from the Basic Multi-Winner tip - #1474

Open
masiarek wants to merge 5 commits into
Equal-Vote:mainfrom
masiarek:docs/bloc-star-help-page
Open

docs: add a Bloc STAR Voting help page, and link it from the Basic Multi-Winner tip#1474
masiarek wants to merge 5 commits into
Equal-Vote:mainfrom
masiarek:docs/bloc-star-help-page

Conversation

@masiarek

@masiarek masiarek commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Description

BetterVoting can already run Bloc STAR — STAR + Basic Multi-Winner — but there's nothing in the docs that explains it. docs/help/ has no page for any voting method's multi-winner behaviour, the ballot text exists only inside paper_ballots.md, faq.md never mentions multi-winner, and tips.bloc_multi_winner is the only method tip in en.yaml with no learn_link, so its tooltip renders without a Learn More at all (tips.proportional_multi_winner has one, to equal.vote/pr).

Two commits:

1. docs/help/bloc_star.md (new, nav_order 9). Covers:

  • what Bloc STAR is, and that "Multi-Winner STAR Voting" unqualified means Bloc STAR (technical specifications 1.c / 1.e)
  • that the 0–5 ballot doesn't change with the seat count, with the same ballot text already used in Paper Ballots
  • the count: scoring round → automatic runoff → remove the winner and repeat, and that removal doesn't reweight or spend anything (the contrast with Proportional Multi-Winner)
  • a fully worked 3-ballot / 3-candidate / 2-seat example — including a 1–1 runoff tie at seat 2 broken by score, which walks a reader straight into Ties
  • how to set the race up in the admin UI
  • when not to use it: not proportional, a cohesive majority sweeps every seat, and the at-large / Section 2 Voting Rights Act warning from starvoting.org/multi_winner — that one is currently written down nowhere on the site, and it's the guidance an admin most needs before choosing Basic Multi-Winner for a representative body
  • voter-facing strategy: score honestly, and specifically don't pad five stars out to the number of seats

2. en.yaml — one line, learn_link on tips.bloc_multi_winner pointing at the new page. styles.tsx renders it as the standard "Learn More" anchor, so no component change is needed; this is the same move as #1465. Drop this commit if you'd rather land the page on its own first.

Notes:

  • The worked example is engine-checked, not hand-waved: tabulated with Larry Hastings' starvote (method=bloc, seats=2), winners A then C, seat 2 decided by the higher-score tiebreaker exactly as docs/help/ties.md specifies. BetterVoting's ladder gives the same answer.
  • I phrased the VRA sentence more carefully than starvoting.org does. The site says at-large bloc voting "was banned in the Voting Rights Act"; what's accurate is that at-large bloc systems have repeatedly been struck down under Section 2 where they diluted minority voting strength. The recommendation is unchanged.
  • Translations: en-only. es / pl / pt-BR carry no tips: block, so this creates no translator obligation.
  • New page will publish to https://docs.bettervoting.com/help/bloc_star.html.

Screenshots / Videos (frontend only)

No visual change beyond the tooltip gaining a "Learn More" anchor, in the same position and style as the Proportional Multi-Winner tip already has.

Related Issues

Related to #1086 — it asks for the results-page help link to stop pointing at "How STAR voting works" for a Bloc race, and suggests electowiki as the target. This gives BetterVoting a first-party page to point at instead, but doesn't touch the results page, so I'm leaving #1086 open.

🤖 Generated with Claude Code

masiarek and others added 2 commits August 4, 2026 07:33
Bloc STAR is selectable on BetterVoting (STAR + Basic Multi-Winner) but has
no help page: the ballot text lives inside paper_ballots.md and nothing
explains the count, the tiebreak, or when not to use an at-large method.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…er tip

The Proportional Multi-Winner tip has a Learn More link; the bloc tip had
no learn_link and therefore no Learn More at all.

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

netlify Bot commented Aug 4, 2026

Copy link
Copy Markdown

Deploy Preview for bettervoting ready!

Name Link
🔨 Latest commit 745a4a3
🔍 Latest deploy log https://app.netlify.com/projects/bettervoting/deploys/6a71dbd550cf1200082d7b81
😎 Deploy Preview https://deploy-preview-1474--bettervoting.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 96e1fa22-9739-4bba-a245-442255b8d855

📥 Commits

Reviewing files that changed from the base of the PR and between 15289d3 and 2d18ecc.

📒 Files selected for processing (2)
  • docs/help/bloc_star.md
  • packages/frontend/src/i18n/en.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Added comprehensive guidance on Bloc STAR Voting, including the ballot process, runoff calculation, winner selection, setup, suitability, and representation considerations.
    • Added a link from the multi-winner voting tips to the new Bloc STAR documentation.

Walkthrough

Summary
Adds a complete Bloc STAR Voting documentation page. The page covers ballot use, sequential scoring, automatic runoff, winner removal, a two-seat example, BetterVoting setup, suitability, representation limits, voting guidance, and related resources. Adds an English localization link from the bloc multi-winner help content to the new page.

Poem
Poem

A rabbit scores each choice with care,
Then hops through runoffs in the air.
Two winners rise from ballots bright,
A help link points the way just right.
“Learn Bloc STAR!” the rabbit sings.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the new Bloc STAR help page and its link from the Basic Multi-Winner tip.
Description check ✅ Passed The description follows the template and clearly documents the changes, visual impact, and related issue.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

The page claimed a runoff percentage is a share of the voters who
expressed a preference between the two finalists. It is the other way
round: the bar labels divide by every ballot cast, and it is the dashed
majority threshold that divides by the preference-expressing subset
(ResultsBarChart.tsx:85 drops the last row -- Equal Support or exhausted
-- from the marker's denominator only).

That mismatch is the subject of Equal-Vote#1471; this page should not state the
opposite of it. Also names the on-screen category, "Equal Support"
(en.yaml:304), so a reader can find it on the results chart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The circulated paper-ballot text says "the candidate with the most votes
is elected"; technical specifications v1.3 §3.d says "the finalist
preferred by the most voters wins". The second closes the stars-are-votes
reading that the first invites, so the page now carries both and says which
to print. §3.e licenses the paraphrase, so neither is off-spec.

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

masiarek commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed a third commit after actually reading the specification rather than the campaign pages.

starvoting.org/technical_specifications 301s to a scanned PDF (v1.3, published 2024-12-20) with no text layer, which is presumably why the two wordings have been allowed to drift. Extracted from the file, §3.d prescribes a different multi-winner explanation than the paper-ballot text this repo carries:

technical specifications §3.d docs/help/paper_ballots.md
who wins a seat "the finalist preferred by the most voters wins" "the candidate with the most votes is elected"
the ballot goes to "your vote" "your full vote"
the winner count above the race (§3.c) folded into the first instruction

The first row is the one worth caring about. "The candidate with the most votes" invites a voter to read stars as votes and conclude the top scorer is elected — exactly what Bloc STAR doesn't guarantee, and the thing this page has a whole section warning about. "The finalist preferred by the most voters" names the field and the currency and closes it.

§3.e permits paraphrase "as long as they are presented with the meaning unchanged", so the circulated version isn't off-spec — but that clause is where the meaning is arguably not unchanged. The page now prints both and says to use the specification's on a real ballot.

Two other things from the same read, for whoever maintains the paper-ballot doc: §3.a makes printing the instructions and the method explanation mandatory, not advisory; and §2.c defines Bloc as single-winner STAR "with an additional Automatic Runoff round conducted for each seat" — terse, but correct, because the removal step leaves every remaining candidate's score untouched, so only the runoff genuinely repeats.

Happy to make the same correction in docs/help/paper_ballots.md in a separate PR if you want the two docs consistent — I left it out of this one to keep the diff to a new file plus one line.

My previous commit wrote the whole file from a local copy taken before
fe6c177, so it silently reverted that fix and put the wrong claim back on
the page. The correction stands as written: the bar labels divide by every
ballot cast, and only the majority-threshold marker drops the Equal Support
row (ResultsBarChart.tsx:85). Restored verbatim; the specification-wording
section from the reverting commit is kept.

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

masiarek commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Correction on my side: my previous commit wrote the whole file from a copy taken before fe6c177, so it reverted that denominator fix and put the wrong claim back on the page for about ten minutes. Restored verbatim in 745a4a3 — the bar labels divide by every ballot cast, only the majority-threshold marker drops the Equal Support row. The specification-wording section is unaffected.

@masiarek
masiarek requested a review from ArendPeter August 4, 2026 12:42
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