writing-rfcs
Skill131 starsChanged 9 days agoApache-2.0View on GitHub
Drafts an RFC in rfcs/ for changes that need design agreement: new subsystems, cross-chart APIs, or behavior changes across many components. Use when a change is significant or uncertain; bugs and small features use filing-issues instead.
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adding-chart-marksSkill
- adding-child-componentsSkill
- adding-propsSkill
- chart-featuresSkill
- comparing-time-periodsSkill
- filing-issuesSkill
- fixing-bugsSkill
- implementing-milestonesSkill
- s2-design-tokensSkill
- summarizing-bugsSkill
- writing-s2-docs-pagesSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use when a change needs design agreement before it's built: a new subsystem or cross-chart API, or a behavior change across many components.
- Very specific: line 13
Read planning/README.md first, particularly "RFCs," "Stages," and "Cross-cutting concerns." Start from rfcs/template.md.
- Very specific: line 23
Read any referenced notes or planning/research/ note.
- Distinctive: line 35
If the target component or the goal is unclear, ask before going further.
- Very specific: line 39
If the environment provides a semantic code-search or navigation tool, prefer it over reading full files.
- Very specific: line 49
Write rfcs/<slug>.md from the template.
- Distinctive: line 61
Keep implementation detail at the level of "which files and functions change." Line-level plans go in the issues.
≈ “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
Write an RFC
Use when a change needs design agreement before it's built: a new subsystem or cross-chart
API, or a behavior change across many components. New chart types start in lab, and stage
planning is done with milestones; neither needs an RFC. Bugs and small features don't need
one either; use filing-issues.
Read planning/README.md first, particularly "RFCs," "Stages," and "Cross-cutting
concerns." Start from rfcs/template.md.
The input is whatever has been gathered so far: freeform notes, a research note, a Jira ticket, a Figma link, or existing GitHub issues. Don't assume a fixed shape.
Step 1 — Gather the inputs
- Read any referenced notes or
planning/research/note. - Fetch the Jira ticket via
mcp__corp-jira__*if one is given. Ticket descriptions often contain exact design values. - Fetch the Figma node via
mcp__figma__*if a Figma URL is given. - For S2 design values, check
.agents/skills/s2-<chartType>/references/tokens.mdfirst if it exists. It's the authoritative source for that chart's tokens. List the existing GitHub issues this RFC covers:
gh issue list --repo adobe/react-spectrum-charts --state open --label rsc:<Component>
If the target component or the goal is unclear, ask before going further.
Step 2 — Explore the relevant code
If the environment provides a semantic code-search or navigation tool, prefer it over
reading full files. Read the target mark's *Options/*SpecOptions types and spec builder
files, and the equivalent S1 files. If S1 already solves the same problem, the design should
reuse its approach unless there's a reason not to.
For each item in the cross-cutting checklist, read the relevant mechanism rather than guessing.
Step 3 — Write the RFC
Write rfcs/<slug>.md from the template. Use a short, descriptive slug
with no number (e.g. s2-remove-vega-embed).
- Detailed Design: the proposed API (props, types, defaults) with examples, the behavior,
and how it fits the existing architecture. Cover the edge cases in
planning/README.mdthat apply. - Scope: one row per piece of work, each with an existing or proposed issue. Mark proposed issues as "new" until they exist.
- Cross-Cutting Concerns: say which subsystems the design touches and how.
- Alternatives and Drawbacks: include the options you rejected and why.
- Open Questions: anything reviewers need to decide.
Keep implementation detail at the level of "which files and functions change." Line-level plans go in the issues.
Step 4 — Report
Summarize the RFC for the user: the design in a few sentences, the scope table, and the open questions. Open a PR only after the user approves.
Once the RFC is accepted (merged), create the scope issues, link them back to the RFC, and fill in their numbers in the Scope table. Maintainers schedule them into milestones.
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.

