rfc-author
Skill2 starsChanged 29 days agoMITView on GitHub
Write an RFC — the design document that sits between a problem and the change that implements it. Use when a change is large enough to need its shape agreed before code, when asked to "write an RFC" or "design this", or when a recorded decision needs a worked design to land it. Covers the seam between a brief (what and why) and a spec (exactly what will exist).
In this repository19 other files it gives its agents.
- a11y-checkSkill
- adr-authorSkill
- architecture-authorSkill
- author-preflightSkill
- c4-diagramsSkill
- characteriseSkill
- comment-disciplineSkill
- context-drivenSkill
- discoverSkill
- gpt-delegateSkill
- learnSkill
- record-craft-reviewSkill
- simple-writerSkill
- spec-impactSkill
- spec-writingSkill
- standard-authorSkill
- tddSkill
- ticket-planSkill
- wait-whatSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Use a decision record (ADR) when one durable cross-cutting decision is the whole subject — adr-author if installed.
- Distinctive: line 18
Do not write an RFC to restate a proposal, a task list, or an existing spec.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
RFC author
An RFC is the worked design: given a problem and a decision, here is the shape of the thing, the alternatives weighed, and what it costs.
When not to use
- A bounded change whose design fits coherently in its own change notes keeps it there.
- Use a decision record (ADR) when one durable cross-cutting decision is the
whole subject —
adr-authorif installed. - Do not write an RFC to restate a proposal, a task list, or an existing spec.
Where it sits
| Artifact | Answers |
| brief / ticket | what and why — the problem, in the customer's terms |
| RFC | how, at design level — the shape, the seams, the migration |
| ADR | the one cross-cutting decision an RFC may depend on or produce |
| spec / rule | what will be true afterwards |
| plan | the ordered steps to build it |
⚠️ An RFC that decides one thing should be an ADR. An ADR that carries a whole design should be an RFC with an ADR extracted. If you cannot say which you are writing, you are not ready to write either.
Body
## Summary one paragraph a busy reader can stop after
## Problem the forces, with evidence — not "it would be nice"
## Goals what success looks like, testably
## Non-goals ⛔ do not skip this
## Design the shape: entities, seams, flows, states
## Migration how we get from here to there, INCLUDING the half-done state
## Alternatives what else was considered, with why-not
## Risks & unknowns what could make this wrong
## Open questions with ownersThe three that get skipped and shouldn't
🔶 ## Non-goals. Most RFC arguments are really scope disputes. Naming what
this deliberately does not do ends them before they start.
🔶 ## Migration must describe the half-done state. Every real change has a
window where both shapes exist. A strangler migration rarely fails on the new
design — it fails because nobody wrote down how long the overlap was meant to
last, so it became permanent. Say what the overlap looks like and what ends
it.
🔶 ## Risks & unknowns. An RFC with no risks has not been thought about.
Mark genuine unknowns as unknown rather than guessing — [UNVERIFIED] is a
legitimate thing to ship in a design document.
Status and immutability
draft → accepted → superseded.
⛔ An accepted RFC is not rewritten. Supersede it, or append a dated correction block. A correction recording "the runtime does not do what this says" is the highest-value content an RFC can carry — it is exactly what a reader cannot derive from the code.
⚠️ Prefer a dated correction over a headline status line. A status can assert something a correction below it disproves; a reader who trusts the headline and stops there can build an entire implementation on a design that was already known to be wrong.
Before you finish
- Could a reader stop after
## Summaryand still act correctly? ## Non-goalsis populated## Migrationdescribes the overlap and what ends it- Alternatives have real why-nots, not strawmen
- Any cross-cutting decision inside it extracted to an ADR
- Unknowns marked, not guessed
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

