skills/rfc_template/SKILL.md
Guidelines and templates for authoring Request for Comments (RFCs). Activate when proposing significant features/refactorings, exploring design alternatives under high ambiguity, or gathering technical consensus.
npx skillsauth add danicat/godoctor rfc_templateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill establishes the standards, templates, and procedures for authoring Request for Comments (RFCs). RFCs are collaborative, conversational design proposals used when an engineering problem is highly ambiguous, complex, or has multiple viable solutions.
According to modern architectural practices (like scaling architecture conversationally):
All RFCs must be stored in the dedicated RFC directory:
design/rfc/
├── 0001-use-structured-logging.md
├── 0002-migrate-to-sqlite-cache.md
└── 0003-parallelize-type-enrichment.md
.md)NNNN-short-descriptive-title.md where NNNN is a sequential 4-digit number starting at 0001.Use this standard template when creating a new RFC file in the design/rfc/ directory:
# RFC-[Number]: [Descriptive Proposal Title]
- **Status:** [Draft | Ready for Review | In Review | Approved | Rejected]
- **Date:** [YYYY-MM-DD]
- **Author(s):** [Names]
- **Deciders/Reviewers:** [Names of people or agents requested for feedback]
- **ADR Reference:** [Optional: Link to ADR-XXXX if approved]
## 1. Executive Summary
Provide a high-level, 2–3 sentence summary of the proposal, what problem it addresses, and the recommended solution. Think of this as the elevator pitch.
## 2. Context & Problem Statement
Detail the current situation, the forces at play, and the engineering pain points we are trying to solve. What are the constraints, user requirements, or performance bottlenecks?
## 3. Proposed Solution
Describe the recommended technical design in detail. Include structural layout, API changes, package splits, or new tool registrations. Use Mermaid diagrams or code blocks to illustrate the design.
## 4. Discarded Alternatives
List the other options that were considered but are not recommended. Be explicit about why they are inferior (e.g., "Option B was discarded because it requires an external Docker daemon, breaking our local-only execution constraint").
## 5. Supporting Materials & Prototypes
Document any spikes, benchmark results, or code prototypes. Link to any temporary code created in the `scratch/` directory during exploration.
## 6. Open Questions
List any unresolved issues, technical gaps, or design points where you are explicitly requesting community (or agent) feedback.
## 7. References
Provide links to official documentations, source code declarations, or industry articles that support the proposal.
An RFC progresses through these states:
development
Guidelines and templates for structuring software development goals and ideas into actionable, bounded tasks using Context/Todo/AC, enforced by the DoR gate. Activate when scoping user requests, decomposing RFCs into tasks, or creating a new task file.
development
Pre-release checklist and quality gate to verify codebase health, docs, and security before interacting with Git. Activate when preparing to tag/publish a release, concluding milestones, or running final verification on a pull request.
development
Highly actionable step-by-step checklist for diagnosing and resolving Go compilation errors, type errors, build/test failures, and runtime issues. Activate on any build or execution failure.
tools
Guidelines and procedures for querying, verifying, and upgrading Go module dependencies and toolchains. Activate when adding or upgrading Go packages, auditing go.mod, addressing dependency vulnerabilities, or verifying toolchain versions.