New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Write an engineering RFC for a technical decision

RFC Writer Skill

by mohitagw15856 · MIT license · ★ 1,395 on GitHub · updated Sep 23

RFC Writer Skill cover

Write an engineering RFC (Request for Comments) for a technical decision, architectural change, or significant implementation approach. Use when asked to write an RFC, document a technical proposal, create a design doc, write an…

---
name: rfc-writer
description: "Write an engineering RFC (Request for Comments) for a technical decision, architectural change, or significant implementation approach. Use when asked to write an RFC, document a technical proposal, create a design doc, write an architecture decision for review, or produce a technical specification for team feedback. Produces a complete RFC document covering problem statement, motivation, proposed solution, alternatives rejected, implementation plan, migration plan, security and performance implications, observability changes, rollout plan, and open questions."
---

# RFC Writer Skill

Produce a complete engineering RFC (Request for Comments) for a technical decision or architectural change. An RFC is a structured proposal document — not a persuasion document. Its purpose is to expose a decision to scrutiny, surface trade-offs, document alternatives considered, and create a permanent record of why a choice was made.

A good RFC makes it possible for someone who wasn't in the room to understand years later why the team built something the way they did.

## Required Inputs

Ask for these if not already provided:
- **RFC title and author** — what this RFC is about and who is proposing it
- **Problem being solved** — what is broken, missing, or inadequate today; why action is needed now
- **Proposed solution** — the approach the author is recommending, at least at a high level
- **Context and constraints** — team size, existing architecture, timeline pressures, budget limits, compliance requirements

Overview

Produce a complete engineering RFC (Request for Comments) for a technical decision or architectural change. An RFC is a structured proposal document — not a persuasion document. Its purpose is to expose a decision to scrutiny, surface trade-offs, document alternatives considered, and create a permanent record of why a choice was made.

Manual install (npx, ZIP)
Claude Codenpx skills add mohitagw15856/pm-claude-skills --skill rfc-writer -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/mohitagw15856/pm-claude-skills/tar.gz/f6ca79348c55 \ | tar -xz -C ~/.claude/skills --strip-components=2 pm-claude-skills-f6ca79348c55/skills/rfc-writer
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/50eb1275c520bf9db469/rfc-writer.zip" -OutFile "$env:TEMP\rfc-writer.zip"; Expand-Archive "$env:TEMP\rfc-writer.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md16.6 KB
Read the files here
mohitagw15856/f6ca7931 file
SKILL.md
Show the full text408 lines

RFC Writer Skill

Produce a complete engineering RFC (Request for Comments) for a technical decision or architectural change. An RFC is a structured proposal document — not a persuasion document. Its purpose is to expose a decision to scrutiny, surface trade-offs, document alternatives considered, and create a permanent record of why a choice was made.

A good RFC makes it possible for someone who wasn't in the room to understand years later why the team built something the way they did.

Required Inputs

Ask for these if not already provided:

  • RFC title and author — what this RFC is about and who is proposing it
  • Problem being solved — what is broken, missing, or inadequate today; why action is needed now
  • Proposed solution — the approach the author is recommending, at least at a high level
  • Context and constraints — team size, existing architecture, timeline pressures, budget limits, compliance requirements
  • Alternatives considered — at least 2 alternative approaches the author has thought about
  • Current status — is this pre-decision (seeking feedback) or post-decision (documenting a made decision)?

Output Format


RFC [Number]: [Title]

Author: [Name] | Team: [Team name] Created: [Date] | Last updated: [Date] Status: Draft | In Review | Approved | Rejected | Superseded by RFC-[X] Ticket: [JIRA-XXX] | Slack thread: [#channel link] Review deadline: [Date — when comments should be submitted by]


Abstract

[2–4 sentences summarising the entire RFC. Should stand alone — someone reading only this should understand what is being proposed, why, and what the main trade-off is. Write this last.]


1. Problem Statement

[Describe the problem being solved. Focus on the problem, not the solution. Be specific and quantified where possible.]

Current state: [Describe how things work today — the existing system, process, or architecture. Include any relevant constraints or limitations.]

Why this is a problem now: [Why is this being addressed now rather than earlier or later? Reference metrics, incidents, product requirements, or scaling thresholds that make this urgent or timely.]

Example of the problem in practice: [A concrete scenario or incident that illustrates the problem. This helps reviewers understand the real-world impact, not just the abstract description.]

// Example: current behaviour that illustrates the problem
[code snippet, log output, or sequence description showing the problem]

Impact of not solving this:

  • [Impact 1 — e.g. "New tenant onboarding requires 3 hours of manual configuration per account"]
  • [Impact 2 — e.g. "Auth service handles 400 req/s; projected to hit capacity within 8 weeks at current growth"]
  • [Impact 3 — e.g. "Current approach is incompatible with the upcoming multi-region requirement"]

2. Goals and Non-Goals

Goals:

  • [Specific, measurable outcome — e.g. "Reduce tenant onboarding time from 3 hours to <5 minutes"]
  • [e.g. "Support 2,000 req/s on the auth service with P99 latency ≤50ms"]
  • [e.g. "Enable multi-region deployment without changes to the application layer"]

Non-goals: (what this RFC explicitly does not address)

  • [e.g. "This RFC does not address authentication for internal service-to-service calls — see RFC-042"]
  • [e.g. "Performance improvements to the existing system — this RFC replaces it"]
  • [e.g. "Migration of historical data — covered in a follow-on RFC"]

Success metrics:

Metric Current Target Measurement method
[e.g. Onboarding time] [3 hours] [<5 minutes] [Prometheus histogram on onboarding job duration]
[e.g. Auth latency P99] [120ms] [≤50ms] [Datadog APM]
[e.g. Engineer setup time] [4 hours] [<30 minutes] [Onboarding survey]

3. Background and Motivation

[Provide the context a reviewer needs to evaluate the proposal. This is not a repeat of the problem statement — it is the surrounding technical and business context.]

Existing system overview: [Describe the relevant parts of the current architecture. Include an ASCII diagram if the relationships between components help understanding.]

[ASCII diagram of current architecture — optional but strongly recommended for architectural RFCs]

  ┌──────────┐     ┌──────────────┐     ┌──────────────┐
  │  Client  │────▶│  [Service A] │────▶│  [Service B] │
  └──────────┘     └──────────────┘     └──────────────┘
                           │
                           ▼
                   ┌──────────────┐
                   │  [Database]  │
                   └──────────────┘

Prior work and related decisions:

  • [RFC-XXX: Title — relevant previous decision; link]
  • [ADR-XXX: Title — architectural decision record]
  • [Any external standards, blog posts, or vendor documentation that informs this proposal]

Constraints:

  • [e.g. Must remain backward compatible with v1 API clients for 12 months]
  • [e.g. Team has no Rust expertise — solution must be in Python or Go]
  • [e.g. Must be deployable without a maintenance window]

4. Proposed Solution

[Describe the proposed approach clearly and specifically. Include enough detail that an engineer could begin implementing from this document, but don't write the code — that is for the PR.]

4.1 High-Level Approach

[1–3 paragraphs describing the overall solution. Explain the key idea and why it solves the problem.]

4.2 Architecture
[ASCII diagram of the proposed architecture — what the system looks like after this RFC is implemented]

  ┌──────────┐     ┌──────────────────┐     ┌──────────────┐
  │  Client  │────▶│  [New Component] │────▶│  [Service B] │
  └──────────┘     └──────────────────┘     └──────────────┘
                           │                       │
                           ▼                       ▼
                   ┌──────────────┐       ┌──────────────┐
                   │  [Store A]   │       │  [Store B]   │
                   └──────────────┘       └──────────────┘
4.3 Detailed Design

[Break the solution into its key components or decisions. For each, explain what it does and why it was designed this way.]

Component / Decision 1: [Name]

[Description of this component — what it does, how it works, why this approach was chosen.]

// Example interface, API contract, or pseudocode (not implementation code)
[Relevant schema, API definition, data flow, or pseudocode]

Component / Decision 2: [Name]

[Description]

Component / Decision 3: [Name]

[Description]

4.4 API Changes

Complete this section if the RFC introduces or modifies any API endpoints, events, or interfaces.

New endpoints / events:

[HTTP method + path or event name]
Request: { ... }
Response: { ... }

Modified endpoints:

  • [endpoint]: [what changes and why; backward compatibility note]

Deprecated endpoints:

  • [endpoint]: deprecated in favour of [new endpoint] — removal timeline: [date/version]
4.5 Data Model Changes

Complete this section if any database schema or data structure changes are required.

[Describe schema changes at a high level. Reference the database-migration-plan skill for detailed migration steps.]

-- Key schema changes (abbreviated — full migration in [link])
[DDL statements for key additions/changes]

5. Alternatives Considered

Every alternative must include an explicit reason why it was rejected. "We went with the proposed solution" is not a reason.

Alternative 1: [Name]

Description: [What this alternative would involve.]

Pros:

  • [Pro 1]
  • [Pro 2]

Cons:

  • [Con 1]
  • [Con 2]

Why rejected: [Specific reason — e.g. "Requires 3× the infrastructure cost", "Incompatible with multi-region requirement", "Team has no expertise in this technology and the ramp-up would miss the Q3 deadline"]


Alternative 2: [Name]

Description: [What this alternative would involve.]

Pros:

  • [Pro 1]
  • [Pro 2]

Cons:

  • [Con 1]
  • [Con 2]

Why rejected: [Specific reason]


Alternative 3: Do nothing / defer

Description: Accept the current state and revisit the problem in [timeframe].

Why rejected: [Why deferring is not acceptable — reference the impact of not solving this from Section 1.]


6. Implementation Plan

Estimated effort: [X engineer-weeks] | Target completion: [Date / Quarter] Team: [Who is building this — names or roles]

Phase Description Duration Dependencies Owner
1 [e.g. Core implementation — new component built and tested] [X weeks] [None] [Name]
2 [e.g. Integration — connect new component to existing services] [X weeks] [Phase 1 complete] [Name]
3 [e.g. Rollout — canary deploy, then full rollout] [X weeks] [Phase 2 + staging validated] [Name]
4 [e.g. Cleanup — deprecate old system, remove feature flags] [X weeks] [Phase 3 stable for X weeks] [Name]

Key milestones:

  • [Date]: [Milestone — e.g. "Core implementation complete and code-reviewed"]
  • [Date]: [Milestone — e.g. "Staging environment validation complete"]
  • [Date]: [Milestone — e.g. "10% canary traffic without regression"]
  • [Date]: [Milestone — e.g. "Full rollout complete"]
  • [Date]: [Milestone — e.g. "Old system decommissioned"]

7. Migration Plan

Complete this section if the RFC requires migrating existing users, data, or API consumers.

Migration strategy: [Big-bang / Phased / Parallel-run / Opt-in]

Who is affected:

  • [e.g. All existing API v1 consumers — requires updated client libraries]
  • [e.g. X million rows in the orders table require backfilling]

Migration steps:

  1. [Step 1 — describe action, who does it, estimated duration]
  2. [Step 2]
  3. [Step 3]

Backward compatibility window: [How long will the old system/API remain available?]

Communication plan:

  • [Who needs to be notified, when, and how — e.g. "API consumers will receive a deprecation notice 3 months before the old endpoint is removed"]

8. Security Implications

[Describe the security impact of this change. If there are no security implications, state that explicitly with reasoning — do not leave this section blank.]

Concern Impact Mitigation
[e.g. New API endpoint exposed to internet] [e.g. New attack surface] [e.g. Rate limiting, auth required, WAF rules]
[e.g. New data stored — user PII] [e.g. GDPR scope expanded] [e.g. Encrypted at rest, access log, data retention policy]
[e.g. Service-to-service communication] [e.g. Token forgery risk] [e.g. mTLS between services]

Has a threat model been produced or updated? [Yes — link / No — required before implementation / Not required — reason]


9. Performance Implications

[Describe the expected performance impact. Include projections for the new system and how it was estimated.]

Metric Current Projected Measurement method
[e.g. P99 latency — /api/auth] [120ms] [≤50ms] [Load test results — link]
[e.g. Database query count per request] [12] [3] [Query logging in staging]
[e.g. Memory per instance] [512MB] [768MB] [Profiling — link]
[e.g. Infrastructure cost] [$X/month] [$Y/month] [AWS cost calculator estimate]

Load testing: [Has load testing been done? Link to results. If not, when will it be done?]

Performance risks:

  • [Risk 1 — e.g. "New component adds a network hop that may increase tail latency under congestion — needs validation at 2× peak load"]

10. Observability Changes

Describe what new or changed metrics, logs, traces, and alerts this RFC introduces.

New metrics:

Metric name Type Description Alert threshold
[service].[component].[metric] [counter/gauge/histogram] [What it measures] [e.g. P99 > 100ms for 5 min]

New log events:

Event Level When emitted Key fields
[event.name] INFO [When] user_id, duration_ms, result

Distributed tracing: [Are spans added for new components? Which operations are instrumented?]

Dashboard changes: [New dashboard / updated existing dashboard — link]


11. Rollout Plan

Rollout strategy: [Feature flag / Canary / Blue-green / Gradual traffic shift / Full deploy]

Stage Traffic % Duration Success criteria Rollback trigger
Internal testing 0% (dogfood) [X days] [No errors in internal usage] Any error
Canary 1% [X hours] [Error rate <0.1%; P99 latency within budget] Error rate >0.5%
Limited rollout 10% [X days] [As above + business metrics stable] Error rate >0.2%
Full rollout 100% — [All success metrics from Section 2 met] Any SLO breach

Feature flag: [Name of feature flag, if applicable] — managed in [LaunchDarkly / Unleash / config]

Rollback procedure:

// How to roll back if the rollout needs to be reversed
1. [Step 1 — e.g. Toggle feature flag to off]
2. [Step 2 — e.g. Deploy previous version]
3. [Step 3 — e.g. Notify stakeholders]

12. Open Questions

[List any unresolved questions, design decisions not yet made, or areas where the author is specifically seeking feedback. Assign an owner and a resolution deadline for each.]

# Question Owner Deadline Resolution
1 [e.g. Should we use optimistic or pessimistic locking for concurrent updates to [resource]?] [Name] [Date] [Pending / [Answer]]
2 [e.g. What is the retention policy for [new data type]?] [Name] [Date] [Pending / [Answer]]
3 [e.g. Do we need a read replica for this query pattern at launch, or can we defer it?] [Name] [Date] [Pending / [Answer]]

13. Decision

To be filled in after the review period closes.

Decision: [Approved / Rejected / Approved with modifications] Decision date: [Date] Decision makers: [Names]

Summary of key feedback addressed:

  • [Feedback item and how it was resolved]

Conditions of approval (if any):

  • [e.g. Must complete load testing before Phase 2 begins]

Quality Checks

  • The problem statement is specific and quantified — not "the current system is slow" but "P99 latency is 800ms; budget is 200ms"
  • Goals section includes measurable success metrics, not aspirational statements
  • Every alternative has an explicit rejection reason — not just a list of cons
  • Security implications section is completed, not left blank
  • Performance implications include projected numbers, not just "should be better"
  • Open questions are assigned to named owners with deadlines — not floating
  • The RFC is written to be read by someone who was not in the planning conversations
  • Migration plan addresses all affected parties — users, API consumers, data — not just the technical steps

Anti-Patterns

  • Do not write the RFC as a persuasion document — its purpose is to expose trade-offs, not sell a decision
  • Do not list alternatives without explicit rejection reasons — "we preferred the proposed solution" is not a reason
  • Do not leave the security implications section blank or write "N/A" without a reasoned explanation
  • Do not write open questions without assigning a named owner and a resolution deadline
  • Do not skip the "impact of not solving this" section — without it, reviewers cannot assess urgency
1---
2name: rfc-writer
3description: "Write an engineering RFC (Request for Comments) for a technical decision, architectural change, or significant implementation approach. Use when asked to write an RFC, document a technical proposal, create a design doc, write an architecture decision for review, or produce a technical specification for team feedback. Produces a complete RFC document covering problem statement, motivation, proposed solution, alternatives rejected, implementation plan, migration plan, security and performance implications, observability changes, rollout plan, and open questions."
4---
5 
6# RFC Writer Skill
7 
8Produce a complete engineering RFC (Request for Comments) for a technical decision or architectural change. An RFC is a structured proposal document — not a persuasion document. Its purpose is to expose a decision to scrutiny, surface trade-offs, document alternatives considered, and create a permanent record of why a choice was made.
9 
10A good RFC makes it possible for someone who wasn't in the room to understand years later why the team built something the way they did.
11 
12## Required Inputs
13 
14Ask for these if not already provided:
15- **RFC title and author** — what this RFC is about and who is proposing it
16- **Problem being solved** — what is broken, missing, or inadequate today; why action is needed now
17- **Proposed solution** — the approach the author is recommending, at least at a high level
18- **Context and constraints** — team size, existing architecture, timeline pressures, budget limits, compliance requirements
19- **Alternatives considered** — at least 2 alternative approaches the author has thought about
20- **Current status** — is this pre-decision (seeking feedback) or post-decision (documenting a made decision)?
21 
22## Output Format
23 
24---
25 
26# RFC [Number]: [Title]
27 
28**Author:** [Name] | **Team:** [Team name]
29**Created:** [Date] | **Last updated:** [Date]
30**Status:** Draft | In Review | Approved | Rejected | Superseded by RFC-[X]
31**Ticket:** [JIRA-XXX] | **Slack thread:** [#channel link]
32**Review deadline:** [Date — when comments should be submitted by]
33 
34---
35 
36## Abstract
37 
38[2–4 sentences summarising the entire RFC. Should stand alone — someone reading only this should understand what is being proposed, why, and what the main trade-off is. Write this last.]
39 
40---
41 
42## 1. Problem Statement
43 
44[Describe the problem being solved. Focus on the *problem*, not the solution. Be specific and quantified where possible.]
45 
46**Current state:**
47[Describe how things work today — the existing system, process, or architecture. Include any relevant constraints or limitations.]
48 
49**Why this is a problem now:**
50[Why is this being addressed now rather than earlier or later? Reference metrics, incidents, product requirements, or scaling thresholds that make this urgent or timely.]
51 
52**Example of the problem in practice:**
53[A concrete scenario or incident that illustrates the problem. This helps reviewers understand the real-world impact, not just the abstract description.]
54 
55```
56// Example: current behaviour that illustrates the problem
57[code snippet, log output, or sequence description showing the problem]
58```
59 
60**Impact of not solving this:**
61- [Impact 1 — e.g. "New tenant onboarding requires 3 hours of manual configuration per account"]
62- [Impact 2 — e.g. "Auth service handles 400 req/s; projected to hit capacity within 8 weeks at current growth"]
63- [Impact 3 — e.g. "Current approach is incompatible with the upcoming multi-region requirement"]
64 
65---
66 
67## 2. Goals and Non-Goals
68 
69**Goals:**
70- [ ] [Specific, measurable outcome — e.g. "Reduce tenant onboarding time from 3 hours to <5 minutes"]
71- [ ] [e.g. "Support 2,000 req/s on the auth service with P99 latency ≤50ms"]
72- [ ] [e.g. "Enable multi-region deployment without changes to the application layer"]
73 
74**Non-goals:** *(what this RFC explicitly does not address)*
75- [e.g. "This RFC does not address authentication for internal service-to-service calls — see RFC-042"]
76- [e.g. "Performance improvements to the existing system — this RFC replaces it"]
77- [e.g. "Migration of historical data — covered in a follow-on RFC"]
78 
79**Success metrics:**
80| Metric | Current | Target | Measurement method |
81|---|---|---|---|
82| [e.g. Onboarding time] | [3 hours] | [<5 minutes] | [Prometheus histogram on onboarding job duration] |
83| [e.g. Auth latency P99] | [120ms] | [≤50ms] | [Datadog APM] |
84| [e.g. Engineer setup time] | [4 hours] | [<30 minutes] | [Onboarding survey] |
85 
86---
87 
88## 3. Background and Motivation
89 
90[Provide the context a reviewer needs to evaluate the proposal. This is not a repeat of the problem statement — it is the surrounding technical and business context.]
91 
92**Existing system overview:**
93[Describe the relevant parts of the current architecture. Include an ASCII diagram if the relationships between components help understanding.]
94 
95```
96[ASCII diagram of current architecture — optional but strongly recommended for architectural RFCs]
97 
98 ┌──────────┐ ┌──────────────┐ ┌──────────────┐
99 │ Client │────▶│ [Service A] │────▶│ [Service B] │
100 └──────────┘ └──────────────┘ └──────────────┘
101 │
102 ▼
103 ┌──────────────┐
104 │ [Database] │
105 └──────────────┘
106```
107 
108**Prior work and related decisions:**
109- [RFC-XXX: Title — relevant previous decision; link]
110- [ADR-XXX: Title — architectural decision record]
111- [Any external standards, blog posts, or vendor documentation that informs this proposal]
112 
113**Constraints:**
114- [e.g. Must remain backward compatible with v1 API clients for 12 months]
115- [e.g. Team has no Rust expertise — solution must be in Python or Go]
116- [e.g. Must be deployable without a maintenance window]
117 
118---
119 
120## 4. Proposed Solution
121 
122[Describe the proposed approach clearly and specifically. Include enough detail that an engineer could begin implementing from this document, but don't write the code — that is for the PR.]
123 
124### 4.1 High-Level Approach
125 
126[1–3 paragraphs describing the overall solution. Explain the key idea and why it solves the problem.]
127 
128### 4.2 Architecture
129 
130```
131[ASCII diagram of the proposed architecture — what the system looks like after this RFC is implemented]
132 
133 ┌──────────┐ ┌──────────────────┐ ┌──────────────┐
134 │ Client │────▶│ [New Component] │────▶│ [Service B] │
135 └──────────┘ └──────────────────┘ └──────────────┘
136 │ │
137 ▼ ▼
138 ┌──────────────┐ ┌──────────────┐
139 │ [Store A] │ │ [Store B] │
140 └──────────────┘ └──────────────┘
141```
142 
143### 4.3 Detailed Design
144 
145[Break the solution into its key components or decisions. For each, explain what it does and why it was designed this way.]
146 
147**Component / Decision 1: [Name]**
148 
149[Description of this component — what it does, how it works, why this approach was chosen.]
150 
151```
152// Example interface, API contract, or pseudocode (not implementation code)
153[Relevant schema, API definition, data flow, or pseudocode]
154```
155 
156**Component / Decision 2: [Name]**
157 
158[Description]
159 
160**Component / Decision 3: [Name]**
161 
162[Description]
163 
164### 4.4 API Changes
165 
166*Complete this section if the RFC introduces or modifies any API endpoints, events, or interfaces.*
167 
168**New endpoints / events:**
169```
170[HTTP method + path or event name]
171Request: { ... }
172Response: { ... }
173```
174 
175**Modified endpoints:**
176- `[endpoint]`: [what changes and why; backward compatibility note]
177 
178**Deprecated endpoints:**
179- `[endpoint]`: deprecated in favour of `[new endpoint]` — removal timeline: [date/version]
180 
181### 4.5 Data Model Changes
182 
183*Complete this section if any database schema or data structure changes are required.*
184 
185[Describe schema changes at a high level. Reference the database-migration-plan skill for detailed migration steps.]
186 
187```sql
188-- Key schema changes (abbreviated — full migration in [link])
189[DDL statements for key additions/changes]
190```
191 
192---
193 
194## 5. Alternatives Considered
195 
196*Every alternative must include an explicit reason why it was rejected. "We went with the proposed solution" is not a reason.*
197 
198### Alternative 1: [Name]
199 
200**Description:**
201[What this alternative would involve.]
202 
203**Pros:**
204- [Pro 1]
205- [Pro 2]
206 
207**Cons:**
208- [Con 1]
209- [Con 2]
210 
211**Why rejected:**
212[Specific reason — e.g. "Requires 3× the infrastructure cost", "Incompatible with multi-region requirement", "Team has no expertise in this technology and the ramp-up would miss the Q3 deadline"]
213 
214---
215 
216### Alternative 2: [Name]
217 
218**Description:**
219[What this alternative would involve.]
220 
221**Pros:**
222- [Pro 1]
223- [Pro 2]
224 
225**Cons:**
226- [Con 1]
227- [Con 2]
228 
229**Why rejected:**
230[Specific reason]
231 
232---
233 
234### Alternative 3: Do nothing / defer
235 
236**Description:**
237Accept the current state and revisit the problem in [timeframe].
238 
239**Why rejected:**
240[Why deferring is not acceptable — reference the impact of not solving this from Section 1.]
241 
242---
243 
244## 6. Implementation Plan
245 
246**Estimated effort:** [X engineer-weeks] | **Target completion:** [Date / Quarter]
247**Team:** [Who is building this — names or roles]
248 
249| Phase | Description | Duration | Dependencies | Owner |
250|---|---|---|---|---|
251| 1 | [e.g. Core implementation — new component built and tested] | [X weeks] | [None] | [Name] |
252| 2 | [e.g. Integration — connect new component to existing services] | [X weeks] | [Phase 1 complete] | [Name] |
253| 3 | [e.g. Rollout — canary deploy, then full rollout] | [X weeks] | [Phase 2 + staging validated] | [Name] |
254| 4 | [e.g. Cleanup — deprecate old system, remove feature flags] | [X weeks] | [Phase 3 stable for X weeks] | [Name] |
255 
256**Key milestones:**
257- [ ] [Date]: [Milestone — e.g. "Core implementation complete and code-reviewed"]
258- [ ] [Date]: [Milestone — e.g. "Staging environment validation complete"]
259- [ ] [Date]: [Milestone — e.g. "10% canary traffic without regression"]
260- [ ] [Date]: [Milestone — e.g. "Full rollout complete"]
261- [ ] [Date]: [Milestone — e.g. "Old system decommissioned"]
262 
263---
264 
265## 7. Migration Plan
266 
267*Complete this section if the RFC requires migrating existing users, data, or API consumers.*
268 
269**Migration strategy:** [Big-bang / Phased / Parallel-run / Opt-in]
270 
271**Who is affected:**
272- [e.g. All existing API v1 consumers — requires updated client libraries]
273- [e.g. X million rows in the `orders` table require backfilling]
274 
275**Migration steps:**
2761. [Step 1 — describe action, who does it, estimated duration]
2772. [Step 2]
2783. [Step 3]
279 
280**Backward compatibility window:** [How long will the old system/API remain available?]
281 
282**Communication plan:**
283- [Who needs to be notified, when, and how — e.g. "API consumers will receive a deprecation notice 3 months before the old endpoint is removed"]
284 
285---
286 
287## 8. Security Implications
288 
289[Describe the security impact of this change. If there are no security implications, state that explicitly with reasoning — do not leave this section blank.]
290 
291| Concern | Impact | Mitigation |
292|---|---|---|
293| [e.g. New API endpoint exposed to internet] | [e.g. New attack surface] | [e.g. Rate limiting, auth required, WAF rules] |
294| [e.g. New data stored — user PII] | [e.g. GDPR scope expanded] | [e.g. Encrypted at rest, access log, data retention policy] |
295| [e.g. Service-to-service communication] | [e.g. Token forgery risk] | [e.g. mTLS between services] |
296 
297**Has a threat model been produced or updated?** [Yes — link / No — required before implementation / Not required — reason]
298 
299---
300 
301## 9. Performance Implications
302 
303[Describe the expected performance impact. Include projections for the new system and how it was estimated.]
304 
305| Metric | Current | Projected | Measurement method |
306|---|---|---|---|
307| [e.g. P99 latency — /api/auth] | [120ms] | [≤50ms] | [Load test results — link] |
308| [e.g. Database query count per request] | [12] | [3] | [Query logging in staging] |
309| [e.g. Memory per instance] | [512MB] | [768MB] | [Profiling — link] |
310| [e.g. Infrastructure cost] | [$X/month] | [$Y/month] | [AWS cost calculator estimate] |
311 
312**Load testing:** [Has load testing been done? Link to results. If not, when will it be done?]
313 
314**Performance risks:**
315- [Risk 1 — e.g. "New component adds a network hop that may increase tail latency under congestion — needs validation at 2× peak load"]
316 
317---
318 
319## 10. Observability Changes
320 
321*Describe what new or changed metrics, logs, traces, and alerts this RFC introduces.*
322 
323**New metrics:**
324| Metric name | Type | Description | Alert threshold |
325|---|---|---|---|
326| `[service].[component].[metric]` | [counter/gauge/histogram] | [What it measures] | [e.g. P99 > 100ms for 5 min] |
327 
328**New log events:**
329| Event | Level | When emitted | Key fields |
330|---|---|---|---|
331| `[event.name]` | INFO | [When] | `user_id`, `duration_ms`, `result` |
332 
333**Distributed tracing:** [Are spans added for new components? Which operations are instrumented?]
334 
335**Dashboard changes:** [New dashboard / updated existing dashboard — link]
336 
337---
338 
339## 11. Rollout Plan
340 
341**Rollout strategy:** [Feature flag / Canary / Blue-green / Gradual traffic shift / Full deploy]
342 
343| Stage | Traffic % | Duration | Success criteria | Rollback trigger |
344|---|---|---|---|---|
345| Internal testing | 0% (dogfood) | [X days] | [No errors in internal usage] | Any error |
346| Canary | 1% | [X hours] | [Error rate <0.1%; P99 latency within budget] | Error rate >0.5% |
347| Limited rollout | 10% | [X days] | [As above + business metrics stable] | Error rate >0.2% |
348| Full rollout | 100% | — | [All success metrics from Section 2 met] | Any SLO breach |
349 
350**Feature flag:** [Name of feature flag, if applicable] — managed in [LaunchDarkly / Unleash / config]
351 
352**Rollback procedure:**
353```
354// How to roll back if the rollout needs to be reversed
3551. [Step 1 — e.g. Toggle feature flag to off]
3562. [Step 2 — e.g. Deploy previous version]
3573. [Step 3 — e.g. Notify stakeholders]
358```
359 
360---
361 
362## 12. Open Questions
363 
364[List any unresolved questions, design decisions not yet made, or areas where the author is specifically seeking feedback. Assign an owner and a resolution deadline for each.]
365 
366| # | Question | Owner | Deadline | Resolution |
367|---|---|---|---|---|
368| 1 | [e.g. Should we use optimistic or pessimistic locking for concurrent updates to [resource]?] | [Name] | [Date] | [Pending / [Answer]] |
369| 2 | [e.g. What is the retention policy for [new data type]?] | [Name] | [Date] | [Pending / [Answer]] |
370| 3 | [e.g. Do we need a read replica for this query pattern at launch, or can we defer it?] | [Name] | [Date] | [Pending / [Answer]] |
371 
372---
373 
374## 13. Decision
375 
376*To be filled in after the review period closes.*
377 
378**Decision:** [Approved / Rejected / Approved with modifications]
379**Decision date:** [Date]
380**Decision makers:** [Names]
381 
382**Summary of key feedback addressed:**
383- [Feedback item and how it was resolved]
384 
385**Conditions of approval (if any):**
386- [e.g. Must complete load testing before Phase 2 begins]
387 
388---
389 
390## Quality Checks
391 
392- [ ] The problem statement is specific and quantified — not "the current system is slow" but "P99 latency is 800ms; budget is 200ms"
393- [ ] Goals section includes measurable success metrics, not aspirational statements
394- [ ] Every alternative has an explicit rejection reason — not just a list of cons
395- [ ] Security implications section is completed, not left blank
396- [ ] Performance implications include projected numbers, not just "should be better"
397- [ ] Open questions are assigned to named owners with deadlines — not floating
398- [ ] The RFC is written to be read by someone who was not in the planning conversations
399- [ ] Migration plan addresses all affected parties — users, API consumers, data — not just the technical steps
400 
401## Anti-Patterns
402 
403- [ ] Do not write the RFC as a persuasion document — its purpose is to expose trade-offs, not sell a decision
404- [ ] Do not list alternatives without explicit rejection reasons — "we preferred the proposed solution" is not a reason
405- [ ] Do not leave the security implications section blank or write "N/A" without a reasoned explanation
406- [ ] Do not write open questions without assigning a named owner and a resolution deadline
407- [ ] Do not skip the "impact of not solving this" section — without it, reviewers cannot assess urgency
408 
View all files on GitHub →

Details

Updated
Sep 23, 2026
License
MIT
Stars on the repo
★ 1,395
Checked
Source
mohitagw15856/pm-claude-skills ↗
Creator
mohitagw15856 · 193 listings
View creator

Made with rfc-writer

RFC Writer Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)
RFC Writer Skill — Galaxy 3D — fly through all 1170 skills as a glowing constellation you orbit and click into (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

RFC Writer Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)
RFC Writer Skill — PM Skills Wrapped — your practice turned into a shareable, Spotify-Wrapped-style story (from the mohitagw15856/pm-claude-skills README)

by mohitagw15856

Similar skills

See all →
SkillDiagnose why a specific ad creative is winning or losingCreative performance analysisgmmh1/claude-paid-media-skills · by gmmh1Diagnose why a specific ad creative is winning or losing using the generalized hook-hold-click-convert funnel, applicable across any platform. Triggers on 'why is this ad underperforming', 'diagnose my creative', or 'where in the funnel is this ad failing'. Platform-agnostic diagnostic framework — platform-specific versions (meta-ads-creative-analytics) apply this with platform-native metrics.New listingPromptAct as a professional full-stack developer taskedProfessional Full-Stack Developer for Network Mapping & Monitoring Applicationf/prompts.chat · by Yohanes Farly RakinaungAct as a professional full-stack developer tasked with building a web application for mapping and monitoring networks using Mikrotik Netwatch API. Implement multi-user role-based management to handle devices, monitor their status, and manage user subscriptions.New listingSkillEstablishes a project's quality bar as a written contractConstraint driven developmentaddyosmani/agent-skills · by addyosmaniEstablishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplemented stubs, thresholds edited down. Use when no quality bar is written down, when the user says "set up constraints" or "define our standards", when the user wants dimensions they care about — accessibility, web performance, coverage — set up as enforced constraints, when an agent keeps silencing checks or skipping tests to get to green, when you need a coverage or performance threshold and don't know what number to pick, or when an agent writes more code than anyone will read.★ 98.7k GitHub starsSkillInstruments code so production behavior is visibleObservability and instrumentationaddyosmani/agent-skills · by addyosmaniInstruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.★ 98.7k GitHub starsSkillOptimizes application performance across frontend, backendPerformance optimizationaddyosmani/agent-skills · by addyosmaniOptimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.★ 98.7k GitHub starsSkillDiscovers and invokes agent skillsUsing agent skillsaddyosmani/agent-skills · by addyosmaniDiscovers and invokes agent skills. Use when starting a session, or when you need to decide which skill or workflow applies to the piece of work at hand. This is the meta-skill that governs how all other skills are discovered and invoked.★ 98.7k GitHub stars

More from mohitagw15856

SkillDesign a 360-degree feedback survey or write a structured360-Degree Feedback Template Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design a 360-degree feedback survey or write a structured 360 feedback report. Use when asked to build a 360 feedback process, write 360 feedback for a colleague, design a feedback survey, or produce a feedback report. Produces either a complete survey instrument with rating scales and open-ended questions, or a structured narrative feedback report with themes, strengths, and development areas.★ 1.4k GitHub starsSkillDesign statistically rigorous A/B tests for product featuresA/B Test Planner Skillmohitagw15856/pm-claude-skills · by mohitagw15856Design statistically rigorous A/B tests for product features, UI changes, onboarding flows, and pricing experiments. Use when asked to set up an experiment, design an A/B test, calculate sample size, or interpret test results. Produces a complete test plan with hypothesis, variant definitions, sample size, duration estimate, guardrail metrics, and a results interpretation guide.★ 1.4k GitHub starsSkillGenerate a WCAG 2.2 accessibility audit checklistAccessibility Audit Skillmohitagw15856/pm-claude-skills · by mohitagw15856Generate a WCAG 2.2 accessibility audit checklist and remediation suggestions for any UI or design. Use when asked to audit for accessibility, check WCAG compliance, review a design for a11y issues, or create an accessibility remediation plan. Produces a prioritised checklist with pass/fail assessments and specific fixes.★ 1.4k GitHub starsSkillBuild a structured account plan for any key customerAccount Plan Skillmohitagw15856/pm-claude-skills · by mohitagw15856Build a structured account plan for any key customer or target account. Use when asked to create an account plan, key account strategy, strategic account review, or territory plan. Produces a complete account plan with relationship map, growth opportunities, risks, and 90-day action plan.★ 1.4k GitHub starsSkillOptimize an article for Answer Engine Optimization so AIAEO Optimizer Skillmohitagw15856/pm-claude-skills · by mohitagw15856Optimize an article for Answer Engine Optimization (AEO) so AI engines like ChatGPT, Perplexity, and Claude can extract, quote, and cite it. Use when asked to AEO-optimize, make content AI-readable, improve AI citation chances, or adapt an article for answer engines. Produces an AEO-optimised rewrite with question headings, 50–80 word answer capsules, a paragraph-length audit, and flagged trust signals.★ 1.4k GitHub starsSkillConduct a structured ethical review of an AI or ML featureAI Ethics Review Skillmohitagw15856/pm-claude-skills · by mohitagw15856Conduct a structured ethical review of an AI or ML feature, model, or product. Use when preparing to deploy an AI system, assessing algorithmic risk, auditing a model for bias, or producing a responsible AI impact assessment. Produces a structured ethics review covering fairness, transparency, privacy, safety, accountability, and societal impact with a risk tier score, pre-deployment checklist, and prioritised mitigations.★ 1.4k GitHub stars