Skip to main content
Protocol proposals use a lightweight RFC (Request for Comments) process to ensure material changes are motivated, reviewed, and recorded before they reach the specification. This page describes when the process applies, how to submit a proposal, and what a decision record looks like.

What requires an RFC

When in doubt: if the change would force downstream implementations to update code to keep working, it requires an RFC.

Lifecycle

1

Draft

Open a GitHub issue using the proposal template as the body. Title format: RFC: <short description>. Add the rfc label. The author should solicit early feedback from working group members or affected implementers before requesting formal review.
2

WG review

The issue is queued for the next working group session. At least two working group members must complete the reviewer checklist before the WG votes. The review period is a minimum of seven calendar days after the issue is filed.
3

Decision

The WG records a decision — accepted, rejected, or deferred — by posting a decision record as a comment on the RFC issue. Dissent must be recorded even when consensus is reached.
4

Specification change

After the decision record exists and its status is accepted, any contributor may open the spec PR. The PR must reference the RFC issue with Refs #N (not Closes #N) and may not merge until the decision record exists. The spec PR reviewer confirms the diff matches the accepted RFC scope. The final spec PR carries Closes #N to close the RFC issue on merge.An accepted RFC is the required trigger for each spec-lifecycle stage transition: it is what moves a feature from Draft → Proposed, or gates Deprecated → Sunset. No lifecycle transition is valid without a traceable, accepted decision record.

Proposal template

Copy this into the GitHub issue body when filing an RFC:

Decision-record format

Post this as a comment on the RFC issue after the WG vote. The Dissent section is required — omitting it signals that all reviewers explicitly confirmed no minority position existed.

See also

  • Specification lifecycle — approved RFCs drive spec-lifecycle stage transitions (Draft → Proposed → Final, and Final → Deprecated); the dedicated page tracks #2441
  • Governance overview — the three-party model and campaign governance domains
  • Embedded human judgment — the principle behind the governance system that most RFCs serve