بنقرة واحدة
rfc
RFC (Request for Comments) Writing Skill
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
RFC (Request for Comments) Writing Skill
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Bash Shell Script Development Guidelines
Go Project Planning Skill
Godot C# Game Development Skill
Godot Game Development Skill
Golang Development Guidelines
Grill Me - Relentless Design Interview
| name | rfc |
| description | RFC (Request for Comments) Writing Skill |
This skill provides guidance for creating effective RFCs that propose solutions and drive consensus through collaborative feedback.
A Request for Comments (RFC) is a formal written document that proposes a solution to a problem and seeks feedback on that proposal. Unlike a PRD which focuses on the problem, an RFC focuses on the solution.
Key principle: An RFC facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas, but a collaborative practice to shape an idea and find serious flaws early.
Use an RFC when:
Skip an RFC when:
| Document | Focus | When to Write |
|---|---|---|
| PRD | The problem and requirements | Before solution design |
| RFC | The solution and implementation | After problem is understood |
A PRD answers: "What problem are we solving and why?" An RFC answers: "How will we solve it?"
# [RFC] Title: Brief Description of Proposal
| Field | Value |
|-------|-------|
| **Created** | [Date] |
| **Current Version** | [Version] |
| **Target Version** | [Version] |
| **PRD** | [Link if applicable] |
| **Status** | WIP / In-Review / Approved / Obsolete |
| **Owner** | [Name] |
| **Contributors** | [Names] |
| Status | Meaning |
|---|---|
| WIP | Still drafting; not ready for review |
| In-Review | Ready for feedback from stakeholders |
| Approved | Decision finalized, ready for implementation |
| Implemented | Proposal executed |
| Obsolete | Superseded by another RFC |
| Abandoned | Decision made not to proceed |
Purpose: Provide a brief executive summary (1-2 paragraphs).
Important: Anyone opening the document should form a clear understanding of the RFC's intent from reading this section alone.
Include:
## Overview
This RFC proposes [solution] to address [problem summary]. The expected
outcome is [benefit/goal]. This change will affect [scope/systems].
Purpose: Provide full context so any reader can understand why this RFC is necessary.
Key test: If you can't show a random engineer the background section and have them acquire nearly full context on the necessity for the RFC, the background is not complete enough.
Include:
## Background
### Current State
[How things work today. What exists. The status quo.]
### Problem Context
[Why the current state is insufficient. Link to PRD if available.]
### Prior Work
[Previous RFCs, discussions, or attempts. What was learned.]
### Constraints
[Technical, organizational, or time constraints affecting the solution.]
**Related Documents**:
- PRD: [link]
- Previous RFC: [link]
- Discussion: [link]
Purpose: Given the background, propose the solution.
This section provides an overview of the "how" without diving into implementation details (those come in the next section).
## Proposal
### Goal
[What we're trying to achieve with this solution]
### Proposed Solution
[Overview of the approach. High-level description of how it works.]
### Key Design Decisions
1. **[Decision 1]**: [Rationale]
2. **[Decision 2]**: [Rationale]
3. **[Decision 3]**: [Rationale]
### Scope
- **In Scope**: [What this RFC covers]
- **Out of Scope**: [What this RFC does NOT cover]
Purpose: Detail how the implementation will work.
Include:
## Implementation
### Architecture Overview
[High-level architecture diagram or description]
### Component Changes
#### [Component 1]
**Current**: [How it works now]
**Proposed**: [How it will work]
**Changes Required**:
- [Change 1]
- [Change 2]
#### [Component 2]
[Same structure]
### API Changes
#### New Endpoints/Methods
POST /api/v1/widgets Request: { "name": string, "config": object } Response: { "id": string, "status": string }
#### Modified Endpoints/Methods
[Existing API changes]
#### Deprecated Endpoints/Methods
[What will be deprecated and timeline]
### Data Model Changes
[Database schema changes, new tables, migrations]
### Dependencies
[External dependencies, services, libraries]
Purpose: Document user-impacting changes.
Include any changes to:
## UI/UX
### User-Facing Changes
#### CLI Changes
$ tool config --format json
$ tool config --format json --validate
#### Configuration Changes
```yaml
# New configuration option
widgets:
enabled: true
max_count: 100
[New or modified error messages users will see]
[How users migrate from old to new behavior]
### 7. Rollout Plan
**Purpose**: Describe how this will be deployed and validated.
```markdown
## Rollout Plan
### Phases
#### Phase 1: [Description]
- **Timeline**: [Dates]
- **Scope**: [What's included]
- **Success Criteria**: [How we know it worked]
- **Rollback Plan**: [How to revert if needed]
#### Phase 2: [Description]
[Same structure]
### Feature Flags
[Any feature flags used for gradual rollout]
### Monitoring
[Metrics and alerts to watch during rollout]
Purpose: Describe how the solution will be validated.
## Testing Strategy
### Unit Tests
[Key unit test scenarios]
### Integration Tests
[Integration test approach]
### Performance Tests
[Load testing, benchmarks]
### Manual Testing
[Manual validation steps]
### Acceptance Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
Purpose: Address security implications.
## Security Considerations
### Threat Model
[What threats does this introduce or mitigate?]
### Authentication/Authorization
[Changes to auth model]
### Data Handling
[Sensitive data considerations]
### Audit/Compliance
[Audit trail, compliance requirements]
Purpose: Document ideas that were considered but rejected.
Important: Don't delete abandoned ideas from the document. Organize them with explanations of why they were abandoned. This preserves the reasoning for future readers.
## Abandoned Ideas
### [Idea 1 Title]
**Description**: [What was proposed]
**Why Abandoned**: [Reason it was rejected]
**Discussion**: [Link to relevant discussion if any]
### [Idea 2 Title]
[Same structure]
Purpose: List unresolved questions that need input.
## Open Questions
1. **[Question]**
- Context: [Why this matters]
- Options: [Possible answers]
- Owner: [Who will decide]
2. **[Question]**
[Same structure]
## References
- [Related RFC 1](link)
- [External documentation](link)
- [Research/papers](link)
Before marking an RFC as ready for review:
Use for:
Use for:
Mini RFC Sections:
references/hashicorp-template.mdreferences/best-practices.md