RFC Template (Standards-Track Style)
Use this template for cross-team contracts and protocols. It is intentionally aligned with the structure used in RFC-001 so all RFCs are consistent and easy to review.
RFC vs ADR
| Aspect | ADR | RFC |
|---|---|---|
| Purpose | Record a decision already made | Propose/formalize a contract requiring discussion |
| Lifecycle | Immutable once accepted | Evolves during review; then frozen at accepted revision |
| Scope | Internal architecture decisions | Cross-team interfaces, contracts, policies |
Authoring Rules
- RFCs MUST define a clear contract boundary (what is standardized and what is not).
- RFC numbers are strictly increasing and never reused.
- File naming:
RFC-<number>-<kebab-case-title>.md. - Use RFC 2119 language (
MUST,SHOULD,MAY) for normative requirements. - Keep implementation details minimal; link to ADRs/design docs for internals.
- Breaking contract changes MUST be proposed in a new RFC that references prior RFCs.
Copy/Paste Starter
# RFC-XXX: <Title>
## Status of This Memo
RFC: XXX
Category: Standards Track
Status: PROPOSED STANDARD
Published: YYYY-MM-DD
Updated: YYYY-MM-DD
Obsoletes: None | RFC-XXX
Superseded By: None | RFC-YYY
**Author**: <name> <<work_email>>
**Related Documents**: <ADR-XXX>, <RFC-YYY>, <doc links>
## Abstract
State what this RFC standardizes, why it exists, and what outcomes it enables.
## Table of Contents
1. [Introduction](#1-introduction)
2. [Terminology](#2-terminology)
3. [Scope](#3-scope)
4. [Contract Specification](#4-contract-specification)
5. [Responsibilities](#5-responsibilities)
6. [Versioning and Change Management](#6-versioning-and-change-management)
7. [Risks and Considerations](#7-risks-and-considerations)
8. [Open Questions](#8-open-questions)
9. [Decision Outcome](#9-decision-outcome)
10. [References](#10-references)
## 1. Introduction
### 1.1 Background
What triggered this RFC and what changed.
### 1.2 Problem Statement
What ambiguity, risk, or misalignment exists today.
### 1.3 Goals
Numbered list of contract goals.
## 2. Terminology
Use RFC 2119 interpretation statement and define terms used in this RFC.
## 3. Scope
### 3.1 In Scope
- ...
### 3.2 Out of Scope
- ...
## 4. Contract Specification
Define the contract clearly:
- naming and structure
- payload/schema expectations
- state transitions/workflow
- normative requirements (`MUST`/`SHOULD`/`MAY`)
## 5. Responsibilities
- Engineering
- Product
- Analytics/Operations (as applicable)
## 6. Versioning and Change Management
- how contract changes are proposed
- backward compatibility expectations
- deprecation/sunset policy
## 7. Risks and Considerations
- technical
- operational
- reporting/compliance
## 8. Open Questions
- unresolved decisions
## 9. Decision Outcome
- Accepted / Accepted with modifications / Rejected / Superseded
## 10. References
- ADRs
- RFCs
- related technical docs