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.zip

Installs 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.
264 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

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

You give it
Codebase and system understanding
You get back
Design-driven technical document (RFC)

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

  1. Read the code first, then write the doc. Ground the architecture in code facts, not imagination.
  2. "Why" matters more than "what." Every design decision must explain its motivation and trade-offs.
  3. Write like you're talking to a colleague. Avoid academic tone and template bloat — use concrete examples instead of abstract descriptions.
  4. 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 thisDo this instead
Blindly follow an RFC template, filling every sectionOnly 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 codeInclude simplified structures / pseudocode, use file paths to guide readers to the source
Only list interface definitionsThread them together with a complete call-flow walkthrough
"Extensible," "high cohesion," "low coupling"State specific design choices and their costs
Inconsistent use of bilingual terminologyDecide 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 font for 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.

SkillInstallsUpdatedSafetyDifficulty
write-rfc (this skill)04moNo flagsIntermediate
ai-docs02moNo flagsIntermediate
architecture-decision-records545moReviewBeginner
docs-write226moNo flagsBeginner

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

00

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.

54217

docs-write

metabase

Write documentation following Metabase's conversational, clear, and user-focused style. Use when creating or editing documentation files (markdown, MDX, etc.).

22139

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.

15111

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.

1686

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.

694

Search skills

Search the agent skills registry