Skip to content

Add a glossary page to the help docs - #1549

Open
masiarek wants to merge 2 commits into
Equal-Vote:mainfrom
masiarek:docs/glossary
Open

masiarek wants to merge 2 commits into
Equal-Vote:mainfrom
masiarek:docs/glossary

Conversation

@masiarek

Copy link
Copy Markdown
Collaborator

Description

Adds docs/help/glossary.md — a single alphabetical glossary of every term a voter or an election administrator meets in BetterVoting or in an email it sent them.

Coverage:

  • The five election states (draft, finalized, open, closed, archived), including that draft is the only editable state, that draft ballots are test votes deleted at finalize, and that finalize is one-way.
  • All seven voting methods by their on-screen names (STAR Voting, Proportional STAR Voting, Approval Voting, Ranked Robin, Ranked Choice Voting, Single Transferable Vote, Choose One Plurality), plus Scoring Round, Automatic Runoff, Equal Support, exhausted ballots, quota, and Condorcet-style head-to-head.
  • The four roles (owner, admin, auditor, credentialer) with what each can and can't do, taken from permissions.ts.
  • Setup vocabulary: Basic vs Proportional Multi-Winner, restricted elections, email list vs ID list, voter roll, write-ins, None of the Above, the election-vs-poll term swap.
  • Results vocabulary: preliminary vs official results, Stats for Nerds, tiebreaker, ballot ID, cast vote record.

Definitions were harvested from the product itself (en.yaml, the shared domain model, the tabulators) rather than from election science generally, so each entry uses the exact on-screen wording and stays definite where the code is definite. Every entry leads with a one-line answer for a voter, then admin nuance.

Mechanics: front matter parents to BetterVoting Documentation (nav_order 17); internal links use the .md form and target only pages already on main. Verified with a local github-pages Jekyll build — the page renders, appears in the nav, and every relative link rewrites to .html.

Screenshots / Videos (frontend only)

N/A — docs only.

Related Issues

None.

🤖 Generated with Claude Code

One page defining every term a voter or admin meets in the product:
the five election states, all seven voting methods by their on-screen
names, the four roles (owner, admin, auditor, credentialer) with what
each can do, Basic vs Proportional Multi-Winner, Equal Support,
Scoring Round / Automatic Runoff, exhausted ballots, quota, write-ins,
the voter roll, test votes, preliminary vs official results, and the
election-vs-poll vocabulary swap.

Definitions are harvested from the product itself (en.yaml, the shared
domain model, permissions.ts, the tabulators) rather than from voting
theory generally, so each entry uses the exact on-screen name and is
definite where the code is definite. Each entry leads with a one-line
answer for a voter, then admin-relevant nuance. Cross-references use
the .md link form and target only pages already on main.

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

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@masiarek, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 48 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: fe1d2990-329e-4365-afab-eb05cbb28047

📥 Commits

Reviewing files that changed from the base of the PR and between 7bc75a8 and f977306.

📒 Files selected for processing (1)
  • docs/help/glossary.md

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.

@netlify

netlify Bot commented Aug 17, 2026

Copy link
Copy Markdown

Deploy Preview for bettervoting ready!

Name Link
🔨 Latest commit f977306
🔍 Latest deploy log https://app.netlify.com/projects/bettervoting/deploys/6a82d8332d3c6c0008be5de2
😎 Deploy Preview https://deploy-preview-1549--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.

Found by a consistency review across the whole help set. Each was checked
against origin/main rather than reasoned about.

- Finalized, and Email list: both said invitations are sent automatically --
  one 'queues the voter invitations', the other 'when the election opens,
  BetterVoting emails each voter'. finalizeElectionController sets state and
  deletes test ballots; it sends nothing, and no scheduler exists. Invitations
  go out only when an admin sends them. This is the most consequential error in
  the set: believing it means an election opens and no voter is ever told. Two
  other pages already say this correctly, so the glossary was contradicting
  them.

- Ballot ID: said the identifier is shown on the confirmation page. It is
  deliberately not. castVoteController scrubs it there, with the comment
  'prevent voters from creating receipts (vote buying/coercion)'; it appears
  only via the receipt link. Documenting it as visible would have quietly
  undermined an intentional anti-coercion measure, so the entry now states
  where it appears and why it is absent from the browser.

- Archived: said an admin can archive. archiveElectionController requires
  canEditElectionState, which is owner-only -- and the glossary's own Admin
  entry already said admins cannot change election state, so the page
  contradicted itself.

- Also drops the 'for email-list elections' qualifier on receipts, which exist
  wherever an email address is known.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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