Create RFD Workflow¶
Purpose: Capture ideas, explore options, and document decisions before implementation
Use When: Proposing new approach, exploring options, need team input, documenting decisions
Philosophy¶
"Ideas should be timely rather than polished." — Oxide Computer Company, RFD 1
RFDs (Requests for Discussion) are inspired by the IETF's RFC tradition. The key insight is that sharing incomplete ideas early leads to better outcomes than polishing in isolation.
Core principles:
- Share early, refine together
- Document options, not just decisions
- Capture context for future readers
- Build consensus before implementation
When to Use RFD vs PRD¶
| Scenario | Use RFD | Use PRD |
|---|---|---|
| "Should we use Redis or PostgreSQL for sessions?" | ||
| "Build session management with Redis" | ||
| "Exploring authentication approaches" | ||
| "Implement OAuth with Google and GitHub" | ||
| "Should we adopt a new framework?" | ||
| Multiple valid options, need discussion | ||
| Requirements clear, need implementation plan |
Key distinction:
- RFD = "Why" and "What options" (explore, discuss, decide)
- PRD = "What" and "How" (plan, implement, deliver)
Typical flow:
RFD States (Lifecycle)¶
stateDiagram-v2
[*] --> Prediscussion
Prediscussion --> Ideation
Ideation --> Discussion
Ideation --> Abandoned
Discussion --> Published
Discussion --> Abandoned
Published --> Committed
Committed --> [*]
Abandoned --> [*] | State | Description | Location |
|---|---|---|
| Prediscussion | Very early, author still forming idea | .claude/rfd/ |
| Ideation | Ready for informal feedback, not finalized | .claude/rfd/ |
| Discussion | Open for team discussion, seeking consensus | docs/rfd/ |
| Published | Decision made, documented for reference | docs/rfd/ |
| Committed | Implemented, part of the codebase | docs/rfd/ |
| Abandoned | Proposal rejected or superseded | docs/rfd/ |
How to Use¶
Basic Usage¶
With Context¶
@.claude/skills/create-rfd/SKILL.md
I'm considering authentication approaches for our new service.
We could use JWT tokens, session cookies, or OAuth. The service needs
to support both web and mobile clients.
State Promotion¶
RFD to PRD Transition¶
RFD Structure¶
Every RFD includes these sections:
Frontmatter¶
---
rfd: 0042
title: API Caching Strategy
authors:
- name: Your Name
state: Ideation
labels: [architecture, performance]
created: 2026-01-15
updated: 2026-01-15
discussion: null
related_prd: null
---
Sections¶
| Section | Purpose |
|---|---|
| Summary | One paragraph overview |
| Problem Statement | What problem we're solving |
| Background | Context readers need |
| Options Considered | Each option with pros/cons |
| Proposal | Recommended approach (or "seeking feedback") |
| Implementation Considerations | High-level technical notes |
| Security Considerations | Security implications |
| Compatibility | Breaking changes, migration |
| Open Questions | Questions needing answers |
| References | Related RFDs, external resources |
Embedded Mode¶
During regular development, Claude will suggest creating an RFD when it detects:
- User asks "Should we use X or Y?"
- Discussion involves 2+ approaches with pros/cons
- Architectural decision point
- Significant deviation from existing patterns
Example suggestion:
I notice we're discussing multiple approaches for authentication. Would you like me to create an RFD to formally document these options? This will help capture the decision for future reference.
Shall I create RFD 0045: Authentication Strategy?
File Organization¶
project/
├── .claude/rfd/ # Private RFDs (Prediscussion, Ideation)
│ └── 0042-rfd-api-caching.md
├── docs/rfd/ # Public RFDs (Discussion, Published, Committed)
│ ├── index.md # RFD overview
│ └── 0001.md # Individual RFDs
└── rfd-index.yaml # Master index
Tips for Good RFDs¶
Content Quality¶
- Be honest about tradeoffs: Every option has cons
- Include rejected options: Future readers need to know what was considered
- Quantify when possible: "50ms vs 200ms" beats "faster vs slower"
- Link to evidence: External resources, benchmarks, case studies
Process Quality¶
- Share early: Don't polish in isolation
- Keep scope focused: One decision per RFD
- Update as you learn: RFDs can evolve during discussion
- Close the loop: Move to Published/Committed/Abandoned
Common Mistakes¶
Only documenting the chosen option
Waiting until decision is made to write
Scope creep (multiple decisions in one RFD)
Abandoning without explanation
Never updating state (stale "Discussion" RFDs)
When NOT to Use RFD¶
Skip RFD for:
- Obvious decisions: Only one viable option
- Small scope: Won't affect others, easily reversible
- Already decided: Discussion already happened elsewhere
- Implementation details: HOW not WHAT (use PRD instead)
- Urgent fixes: Document post-hoc if needed
Related Workflows¶
| Workflow | Relationship |
|---|---|
| Create PRD | Creates implementation plan after RFD decision |
| Document Work | Can identify mini-RFDs worth promoting |
| Generate Tasks | Breaks down PRD (which may reference RFD) |
Learn More¶
- RFD Overview - Browse all RFDs
- Oxide's RFD 1 - Original inspiration
- Create PRD Workflow - For implementation planning