RFC automation
May 29, 2026 · View on GitHub
Instructions for maintainers. Authors only need the README.
Authoring (mention to authors)
- Copy
accepted/0000-template.md→accepted/0000-your-rfc.md. - Fill in
titleand the body. Leave the rest of the front-matter alone. - Open a PR.
The bot owns number, status, dates, filename, and INDEX.md.
Validate (PR check)
Runs automatically on every PR that touches accepted/, implemented/,
or withdrawn/. Validates only the changed files. New proposals
(accepted/0000-*.md) are held to the full spec; non-proposed files
are lenient (warnings, not errors). No action needed.
Ratify (after merging an RFC PR)
Automatic. When an accepted/0000-*.md is merged to main, the bot:
- Assigns the next number (
max + 1, skipping any reserved by open bot PRs) - Fills
status,accepted_at,created - Renames the file to
accepted/NNNN-name.md - Regenerates
INDEX.md - Opens
bot/rfc-ratify-NNNN-namefor review
Review and merge the bot PR like any other.
If the push trigger didn't fire (e.g. the workflow itself was broken when the
RFC was merged), re-run manually: Actions → RFC ratify → Run workflow
with file = accepted/0000-name.md. Same outcome as the automatic path.
Transition (implemented / withdrawn)
Manual: Actions → RFC transition → Run workflow.
Inputs:
rfc_number— e.g.50status—implementedorwithdrawnimplementation— optional, e.g.npm/cli#1234(only forimplemented)
The bot moves the file, sets the date, scaffolds the withdrawal amendment
if applicable, regenerates INDEX.md, and opens
bot/rfc-transition-NNNN-status for review. Edit the withdrawal scaffold
in that PR before merging.
Local commands
npm run rfc:validate # validate all RFCs
npm run rfc:validate -- accepted/foo.md # validate one file
npm run rfc:index # regenerate INDEX.md
npm run rfc:backfill # one-shot: add front-matter to pre-automation files
CLI entrypoints in bin/ accept the same args the workflows use; see the
top of each file.