skills/docs-rfc/SKILL.md
Create numbered RFC (Request For Comments) documents for proposing and discussing changes. This skill should be used when users want to write a proposal, create an RFC, or formally document a proposed change.
npx skillsauth add mgiovani/cc-arsenal docs-rfcInstall 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.
Cross-Platform AI Agent Skill This skill works with any AI agent platform that supports the skills.sh standard.
Create a new RFC (Request For Comments) document for proposing and discussing changes.
CRITICAL: RFCs propose changes to REAL systems. Before writing:
Before writing an RFC, thoroughly explore the codebase to understand current state:
command argumentsminimal, standard, or detailedstandarddocs/rfc/ directoryRFC-XXXX-*)00010001, 0023)add-graphql-api-support# Try to get git author
!`git config user.name 2>/dev/null || echo "Development Team"`
### Phase 7: Load and Populate Template
- Template location: `assets/templates/`
- Select based on variant:
- `minimal` -> `minimal.md`
- `standard` -> `standard.md` (default)
- `detailed` -> `detailed.md`
Replace placeholders:
- `{{RFC_NUMBER}}` - 4-digit number
- `{{RFC_TITLE}}` - Original title (Title Case)
- `{{DATE}}` - Current date (YYYY-MM-DD)
- `{{AUTHOR}}` - Git user name or "Development Team"
- `{{CONTEXT}}` - Gathered context from codebase
- `{{PROJECT_NAME}}` - Git repo or directory name
### Phase 8: Create RFC File
- Filename: `docs/rfc/RFC-XXXX-kebab-case-title.md`
- Ensure `docs/rfc/` directory exists
- Write populated content
- Set initial status to "Draft"
### Phase 9: Report Creation
- Show RFC number and title
- Display file path
- Provide workflow guidance
## Template Variants
### Minimal Template
Quick proposal format for small changes.
**Sections:** Summary, Motivation, Proposal, Open Questions
**Use when:** Small features, minor changes
### Standard Template (Default)
Balanced RFC for most changes.
**Sections:** Summary, Motivation, Proposal, Rationale and Alternatives, Implementation Plan, Testing Plan, Migration Strategy, Open Questions, Timeline
**Use when:** Most feature proposals
### Detailed Template
Comprehensive RFC for major changes.
**Sections:** Summary, Background and Motivation, Goals and Non-Goals, Proposal, Detailed Design, Rationale and Alternatives, Implementation Plan, Testing and Quality Assurance, Migration and Rollout Strategy, Monitoring and Metrics, Security Considerations, Performance Implications, Open Questions and Risks, Timeline and Milestones, Appendices
**Use when:** Major features, architectural changes
## Usage Examples
Basic RFC creation (uses Standard template):
docs-rfc "Add GraphQL API Support" docs-rfc "Implement Rate Limiting" docs-rfc "Add Multi-Tenancy Support" With template variant override:
docs-rfc minimal "Update Logging Format"
docs-rfc detailed "Migration to Microservices Architecture"
docs-rfc detailed "Adopt Event Sourcing Pattern"
## RFC Status Lifecycle
Update status in the RFC as it progresses:
1. **Draft** - Initial proposal, gathering feedback
2. **In Review** - Under discussion, modifications being made
3. **Accepted** - Approved for implementation
4. **Implemented** - Changes have been deployed
5. **Rejected** - Not moving forward with proposal
6. **Withdrawn** - Author withdrew the proposal
## RFC Workflow
### 1. Create RFC
docs-rfc "Proposal Title"
# For API changes
!`find . -name "*router*" -o -name "*controller*" -o -name "*api*" | head -10`
# For feature additions
!`grep -r "export.*function\|export.*class" --include="*.ts" --include="*.js" . | head -20`
# For infrastructure changes
!`find . -name "*.yml" -o -name "*.yaml" -o -name "Dockerfile" | head -10`
# For performance changes
!`grep -r "cache\|redis\|memcache\|performance" --include="*.py" --include="*.ts" . | head -15`
## Important Notes
- **Write Before Implementing**: Create RFCs before starting work
- **Concrete Examples**: Include real code examples when possible
- **Address Concerns**: Proactively address potential objections
- **Update Actively**: RFC is a living document during review
- **Link Related Work**: Reference ADRs, issues, or other RFCs
- **Clear Language**: Keep accessible to all stakeholders
- **Define Success**: Include measurable success criteria
## When to Create RFCs
Create an RFC when proposing:
- Major feature additions
- Significant refactorings
- Architecture changes
- Breaking API changes
- New technology adoptions
- Process changes
- Performance optimizations with trade-offs
- Security enhancements
- Developer experience improvements
## Best Practices
- **Early Documentation**: Write RFC before implementation
- **Be Specific**: Include concrete examples and details
- **Show Your Work**: Document research and investigation
- **Consider Alternatives**: Show what else was considered and why
- **Realistic Timeline**: Include reasonable milestones
- **Risk Assessment**: Document known risks and mitigation
- **Stakeholder Input**: Identify who should review
- **Clear Outcomes**: Define what success looks like
- **Keep Updated**: Reflect changes made during review
## Claude Code Enhanced Features
This skill includes the following Claude Code-specific enhancements:
## Workflow
### Phase 1: Explore Current State (Use Explore Agent)
Before writing an RFC, thoroughly explore the codebase to understand current state:
Use Task tool with Explore agent:
### Phase 2: Parse Arguments
1. Extract proposal title from `$ARGUMENTS`
2. Check for variant keyword: `minimal`, `standard`, or `detailed`
3. If variant found, remove it from title
4. Default variant: `standard`
### Phase 3: Determine RFC Number
- Scan `docs/rfc/` directory
- Find highest existing RFC number (format: `RFC-XXXX-*`)
- Increment by 1
- If no RFCs exist, start with `0001`
- Format as 4-digit padded number (e.g., `0001`, `0023`)
### Phase 4: Sanitize Title for Filename
- Convert title to kebab-case
- Remove special characters
- Lowercase all letters
- Example: "Add GraphQL API Support" -> `add-graphql-api-support`
### Phase 5: Gather Context
- Analyze codebase to understand current state
- Identify relevant files and patterns
- Find similar implementations or related features
- Understand technical constraints
### Phase 6: Get Author Information
```bash
# Try to get git author
!`git config user.name 2>/dev/null || echo "Development Team"`
assets/templates/minimal -> minimal.mdstandard -> standard.md (default)detailed -> detailed.mdReplace placeholders:
{{RFC_NUMBER}} - 4-digit number{{RFC_TITLE}} - Original title (Title Case){{DATE}} - Current date (YYYY-MM-DD){{AUTHOR}} - Git user name or "Development Team"{{CONTEXT}} - Gathered context from codebase{{PROJECT_NAME}} - Git repo or directory namedocs/rfc/RFC-XXXX-kebab-case-title.mddocs/rfc/ directory existsdevelopment
Generate comprehensive test suites with coverage analysis and parallel test writing. Automatically activates when users want to write tests, add test coverage, generate test cases, improve testing, or analyze coverage gaps. Supports pytest, vitest, jest, and all major test frameworks.
development
Multi-agent PR review team orchestration with 7 specialized reviewers for security-sensitive or architectural PRs. Spawns architecture, security, performance, testing, style, docs/UX, and adversary reviewers as a coordinated team. Premium review for critical code changes.
development
Spec-driven team orchestration: adaptive development team scaling from 3 to 11 agents based on complexity.
development
Perform comprehensive security review targeting OWASP Top 10 2025 vulnerabilities for PRs, commits, or entire codebases. This skill should be used when a user wants to audit code security, scan for vulnerabilities, review security posture, or check for OWASP compliance. Analysis only - identifies vulnerabilities without modifying code.