Contribute to rungs — author a module
Contribute
Author a module
Governed by
Updated
2026-08-15
Everything here was paid for once already. A contribution is admitted when it carries its receipts: every claim is evidenced — a file path, a commit, a measured count, or a quoted rule — or it is visibly marked as opinion. CLAUDE.md
1 · A module is a unit
It can be installed, checked, and removed as a unit. It owns files, and it owns the
rules about those files.
2 · Rules ship their checker
Every generated rule is tagged gated or
review-only — no silent third category.
3 · Procedures ship their entry point
A workflow with no invocation surface does not run. The skill lands in the same change
as the doc.
4 · Patterns name their sources
"Four repos converge" is checkable only if each pattern says which:
HGHT — or states its counter-example.
5 · Costs are stated
Every practice names what it costs to run. A pattern without its cost gets recommended
to repos that cannot afford it.
6 · Counts carry receipts
20 pass · 0 fail · 2026-08-15 ·
npx @rungs/cli check
— count, date, command, one line. And the command must test the property the claim is
about: ADR-0006 shipped a 28-name "available" list measured with
npm view, which proves a name is unregistered and says nothing about
whether it is publishable. Four of the 28 were not. State what the check proves.
Write plain markdown. Every rule below detects a convention the corpus already uses; none
of them need an author-side wrapper. The table is read from
src/plugins/rehype-rungs.mjs at build time.
| rule | detected by | state |
|---|---|---|
| pattern-table | table with id · pattern · src · rung headers | gated |
| source-mark | 4/4 · AM/HG/HT/RF · (none — … counter-example …) in a src cell | gated |
| rung-badge | 0–5 in a rung cell; anything else renders RUNG UNSTATED | gated |
| console | ```console fence — undated, so it renders the loud caption | gated |
| enforcement-tag | `gated` / `review-only` inline code | gated |
| adr-chip | a standalone ADR-#### link in a cell or list item | gated |
| opinion-claim | emphasis or blockquote opening with 'Opinion' | gated |
| callout | blockquote opening with ⚠️ Known gap / **Amended <date>** | gated |
| doc-links | relative *.md hrefs — rewritten to wiki routes or GitHub | gated |
| measurement | count + date + command in prose — needs a regex pass with a false-positive budget | not implemented |
| title-block | 'Authoritative for:' scope headers — currently supplied by the layout from frontmatter | not implemented |
Known gap · mapping
Two things cannot be inferred from markdown: whether an unmarked prose sentence is
evidenced (only measurements are mechanically detectable), and the capture date of a
console fence. Both render their loud states rather than a confident default —
9 of 11 rules run today.