write-rfc
Helps you write clear technical RFCs that focus on the 'why' behind architectural design decisions.
Install
mkdir -p .claude/skills/write-rfc && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11842" && unzip -o skill.zip -d .claude/skills/write-rfc && rm skill.zipInstalls to .claude/skills/write-rfc
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Draft or revise a design RFC that explains architecture from first principles — why the system exists, how layers interact, what trade-offs were made, and where it's headed. Use when writing or improving technical design documents, RFCs, or architecture overviews.Key capabilities
- →Draft or revise design RFCs.
- →Explain system motivation and trade-offs.
- →Describe how layers interact and data flows.
- →Ground architecture in code facts.
- →Organize documents with a defined skeleton.
How it works
The skill guides the creation of design RFCs by emphasizing code-grounded facts, motivations, and trade-offs, following a structured writing process.
Inputs & outputs
When to use write-rfc
- →Drafting an architectural RFC
- →Explaining system trade-offs in design docs
- →Documenting complex module interactions
- →Summarizing the 'why' of a system change
About this skill
Write Design RFC
Produce a design-driven technical document that helps readers (teammates, reviewers, your future self) quickly understand why a system is designed the way it is.
Core Principles
- Read the code first, then write the doc. Ground the architecture in code facts, not imagination.
- "Why" matters more than "what." Every design decision must explain its motivation and trade-offs.
- Write like you're talking to a colleague. Avoid academic tone and template bloat — use concrete examples instead of abstract descriptions.
- If one sentence is enough, don't use a paragraph.
Writing Process
Step 1: Understand the System (Required)
Before writing anything, figure out:
- Directory structure and layering (which directories / modules / files)
- Where the entry points are, how data flows through the system
- What the core abstractions are (key types, interfaces, registries)
- What the existing tests are actually testing
Method: read code, run commands, look at tests — don't just read existing docs.
Step 2: Define the Document Skeleton
Organize in the following order; merge or skip sections that don't apply:
1. One-line summary (what the system is, what problem it solves)
2. Why it exists (motivation — describe 2-3 pain points)
3. Overall architecture (layers / modules, ASCII diagram or mermaid)
4. What each layer does (responsibilities, key abstractions, data flow)
5. Key design decisions (list 3-5, each explaining "what was chosen / why / what it costs")
6. Future evolution (brief list)
Step 3: Write Each Section
One-line summary
- Use the pattern "X is a Y that does Z."
- Example:
agent-cli is a "dual-entry, single-datasource" analysis tool — both humans and AI Agents use the same underlying capabilities to analyze build data.
Why it exists
- Skip "background" — go straight to pain points.
- Each pain point: bold keyword + one-sentence explanation.
Overall architecture
- Prefer ASCII art or simple mermaid; don't draw overly complex diagrams.
- Use a table to clarify what each layer "cares about / doesn't care about."
What each layer does
- Anchor descriptions with concrete file names / function names / type names.
- Include key code structures (pseudocode or simplified), don't paste large blocks of source code.
- Use "not X, but Y" phrasing to clarify commonly misunderstood designs.
Key design decisions
- For each decision, use the three-part format: "Choice → Benefit → Cost."
- Don't just list benefits — always state the cost.
Future evolution
- Use a numbered list, one sentence per item.
- Only include actionable directions, not vague aspirations.
Quality Checklist
Self-review after writing:
- An engineer unfamiliar with the project can read and understand the core design in 5 minutes
- Every technical term is explained or exemplified on first use
- No "correct but useless" filler (e.g., "this system has good extensibility")
- Code paths and file names match the actual repository (verified by reading code)
- The design decisions section covers at least 3 key choices, each with trade-off explanations
Anti-patterns
| Don't do this | Do this instead |
|---|---|
| Blindly follow an RFC template, filling every section | Only write sections that carry real information |
| "This system uses a layered architecture" | Draw a diagram + use a table to clarify each layer's responsibility |
| Paste large blocks of source code | Include simplified structures / pseudocode, use file paths to guide readers to the source |
| Only list interface definitions | Thread them together with a complete call-flow walkthrough |
| "Extensible," "high cohesion," "low coupling" | State specific design choices and their costs |
| Inconsistent use of bilingual terminology | Decide the term on first occurrence, keep it consistent throughout |
Language & Formatting
- Either Chinese or English is fine; follow the project's primary language. Keep domain-specific English terms as-is in Chinese docs (e.g., handler, planner, MCP).
- Use
code fontfor file names, function names, and commands. - Use bold for key concepts (at most 1-2 per paragraph).
- Keep paragraphs short — no more than 4 sentences each.
When not to use it
- →When the goal is to document without reading the code first.
- →When an academic tone or template bloat is desired.
- →When only listing benefits without stating costs.
Limitations
- →Documentation must be design-driven.
- →Every design decision must explain its motivation and trade-offs.
- →Diagrams should be ASCII art or simple mermaid.
How it compares
This skill mandates grounding design documents in actual code and explaining the 'why' behind decisions, rather than just describing 'what' or following a generic template.
Compared to similar skills
write-rfc side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| write-rfc (this skill) | 0 | 4mo | No flags | Intermediate |
| ai-docs | 0 | 2mo | No flags | Intermediate |
| architecture-decision-records | 54 | 5mo | Review | Beginner |
| docs-write | 22 | 6mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
ai-docs
arcasilesgroup
Manages the documentation lifecycle: CHANGELOG, README, solution-intent architecture docs, external docs portals, and documentation quality gates. Auto-invoked by /ai-pr. Trigger for 'update the changelog', 'the README is stale', 'document this feature', 'docs portal needs updating', 'did we documen
architecture-decision-records
wshobson
Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.
docs-write
metabase
Write documentation following Metabase's conversational, clear, and user-focused style. Use when creating or editing documentation files (markdown, MDX, etc.).
content-research-writer
ComposioHQ
Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section. Transforms your writing process from solo effort to collaborative partnership.
doc-coauthoring
anthropics
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
research-grants
davila7
Write competitive research proposals for NSF, NIH, DOE, and DARPA. Agency-specific formatting, review criteria, budget preparation, broader impacts, significance statements, innovation narratives, and compliance with submission requirements.