Contributor ranks.

A transparent summary of sustained contribution. Every point comes from a published signal, a capped category or a documented manual override — never from a guess.

Three tiers.

Thresholds are cumulative. A contributor keeps earning points inside a tier until the next threshold is reached; the bar on each card shows how far the next tier is.

Digger

0 pts

The first marks in the burrow. Reviews, issues, translations and small fixes all count.

Wombat Digger

Foreman

100 pts

A steady hand on the framework: merged work, reviews and documentation that others build on.

Wombat Foreman

Burrow Engineer

300 pts

Sustained, cross-cutting contribution — controls, RFCs, translations, reviews and community work.

Wombat Burrow Engineer

How points are earned.

Each signal has a fixed weight and a per-category cap. The cap keeps the rank from being a pure volume contest: a long review history and a focused control change both matter.

Merged pull request

10 pts each · cap 30

A merged pull request in the framework repository. The offline cache is used as a conservative proxy; GraphQL replaces it with the exact merged-PR count when a token is present.

cached GitHub contributions or GraphQL merged PRs · max 300 pts

Pull-request review

6 pts each · cap 40

A substantive review on someone else's pull request. Self-reviews do not count.

GitHub GraphQL (reviewed-by) · max 240 pts

Issue triage

4 pts each · cap 25

An issue assigned to and handled by the contributor.

GitHub GraphQL (assigned issues) · max 100 pts

Documentation

5 pts each · cap 20

Merged documentation work, including the framework docs and this website.

GitHub GraphQL (merged PRs labelled area:docs) · max 100 pts

Translation

5 pts each · cap 20

Merged translations of docs, pages or release notes.

GitHub GraphQL (merged PRs labelled area:translation) · max 100 pts

Controls or RFC work

12 pts each · cap 10

A merged control change or an accepted RFC authored by the contributor.

GitHub GraphQL (merged PRs labelled area:controls / area:rfc) · max 120 pts

Talk or session

15 pts each · cap 8

A conference talk, workshop or community session. Recorded by a maintainer with a reason; never inferred.

manual override only · max 120 pts

Offline-first, enriched when possible.

The weekly GitHub Action reads the committed contributor cache first. When a GITHUB_TOKEN is available it adds exact merged-PR, review and label counts from the GitHub GraphQL API. If the API is unavailable, the cached numbers are kept and the run still succeeds.

Signals that GitHub cannot see — conference talks, workshops and community sessions — are only ever added through a documented override in _data/ranks.yml. No contribution number is invented.

Current standings.

Sorted by points, then by login. The same data drives the homepage cards and the badge files.

Put the badge on your README.

Every published contributor gets a static SVG. It is self-contained, so it renders without JavaScript, fonts or third-party requests.

Wombat Foreman — @lewandos

Copy this Markdown snippet. The badge URL is stable and the target is this contributor hub.

Wombat Foreman badge for lewandos
[![Wombat Foreman](https://www.wombat-gov.dev/badges/lewandos.svg)](https://www.wombat-gov.dev/contributors/)

Privacy.

The rank system publishes the smallest useful surface: a public GitHub login and a rank. Nothing else.

Only a public GitHub login and the computed rank are published. No email addresses, private activity or unapproved contribution details are included. Bots are excluded.