feat(projman): add RFC system for feature tracking
Implement wiki-based Request for Comments system for capturing, reviewing, and tracking feature ideas through their lifecycle. New commands: - /rfc-create: Create RFC from conversation or clarified spec - /rfc-list: List RFCs grouped by status - /rfc-review: Submit Draft RFC for review - /rfc-approve: Approve RFC for sprint planning - /rfc-reject: Reject RFC with documented reason RFC lifecycle: Draft → Review → Approved → Implementing → Implemented Integration: - /sprint-plan detects approved RFCs and offers selection - /sprint-close updates RFC status on completion - clarity-assist suggests /rfc-create for feature ideas New MCP tool: allocate_rfc_number Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
380
plugins/projman/skills/rfc-templates.md
Normal file
380
plugins/projman/skills/rfc-templates.md
Normal file
@@ -0,0 +1,380 @@
|
||||
---
|
||||
name: rfc-templates
|
||||
description: RFC page templates and frontmatter format specifications
|
||||
---
|
||||
|
||||
# RFC Templates
|
||||
|
||||
## Purpose
|
||||
|
||||
Provides templates for RFC wiki pages and defines the required/optional sections for complete RFC documentation.
|
||||
|
||||
## When to Use
|
||||
|
||||
- **Commands**: `/rfc-create` when generating new RFC pages
|
||||
- **Integration**: Referenced by `rfc-workflow.md` for page structure
|
||||
|
||||
---
|
||||
|
||||
## RFC Page Frontmatter
|
||||
|
||||
Every RFC page starts with a metadata block using blockquote format:
|
||||
|
||||
```markdown
|
||||
> **RFC:** 0001
|
||||
> **Title:** Short Descriptive Title
|
||||
> **Status:** Draft
|
||||
> **Author:** @username
|
||||
> **Created:** 2026-01-25
|
||||
> **Updated:** 2026-01-25
|
||||
> **Champion:** (unassigned)
|
||||
> **Sprint:** (none)
|
||||
> **Superseded-By:** (none)
|
||||
```
|
||||
|
||||
### Frontmatter Fields
|
||||
|
||||
| Field | Required | Description |
|
||||
|-------|----------|-------------|
|
||||
| `RFC` | Yes | 4-digit RFC number (e.g., 0001) |
|
||||
| `Title` | Yes | Short descriptive title |
|
||||
| `Status` | Yes | Current lifecycle status |
|
||||
| `Author` | Yes | Original RFC author |
|
||||
| `Created` | Yes | Creation date (YYYY-MM-DD) |
|
||||
| `Updated` | Yes | Last update date (YYYY-MM-DD) |
|
||||
| `Champion` | No | Assigned reviewer/sponsor |
|
||||
| `Sprint` | No | Sprint reference when implementing |
|
||||
| `Superseded-By` | No | RFC number if superseded |
|
||||
|
||||
---
|
||||
|
||||
## Full RFC Page Template
|
||||
|
||||
```markdown
|
||||
> **RFC:** NNNN
|
||||
> **Title:** [Short Title]
|
||||
> **Status:** Draft
|
||||
> **Author:** @[username]
|
||||
> **Created:** YYYY-MM-DD
|
||||
> **Updated:** YYYY-MM-DD
|
||||
> **Champion:** (unassigned)
|
||||
> **Sprint:** (none)
|
||||
> **Superseded-By:** (none)
|
||||
|
||||
# RFC-NNNN: [Full Title]
|
||||
|
||||
## Summary
|
||||
|
||||
A brief (2-3 paragraph) explanation of the proposed change. This should be understandable by someone unfamiliar with the codebase.
|
||||
|
||||
**What:** What is being proposed?
|
||||
**Why:** Why is this change needed?
|
||||
**Impact:** What will be different after this is implemented?
|
||||
|
||||
## Motivation
|
||||
|
||||
### Problem Statement
|
||||
|
||||
Describe the problem this RFC addresses. Include:
|
||||
- Current pain points or limitations
|
||||
- User stories or use cases
|
||||
- Why existing solutions are insufficient
|
||||
|
||||
### Goals
|
||||
|
||||
- [ ] Goal 1: Specific, measurable outcome
|
||||
- [ ] Goal 2: Another specific outcome
|
||||
- [ ] Goal 3: Third outcome
|
||||
|
||||
### Non-Goals
|
||||
|
||||
What is explicitly out of scope for this RFC:
|
||||
- Non-goal 1
|
||||
- Non-goal 2
|
||||
|
||||
## Detailed Design
|
||||
|
||||
### Overview
|
||||
|
||||
High-level description of the solution approach.
|
||||
|
||||
### Architecture
|
||||
|
||||
Describe the technical architecture:
|
||||
- Components involved
|
||||
- Data flow
|
||||
- Integration points
|
||||
|
||||
### Implementation Details
|
||||
|
||||
#### Component 1
|
||||
|
||||
Detailed implementation for component 1.
|
||||
|
||||
#### Component 2
|
||||
|
||||
Detailed implementation for component 2.
|
||||
|
||||
### API/Interface Changes
|
||||
|
||||
If applicable, describe any API or interface changes:
|
||||
|
||||
```python
|
||||
# Example new API
|
||||
def new_function(param1: str, param2: int) -> dict:
|
||||
"""Description of new function."""
|
||||
pass
|
||||
```
|
||||
|
||||
### Database/Storage Changes
|
||||
|
||||
If applicable, describe any data model changes.
|
||||
|
||||
### Configuration Changes
|
||||
|
||||
If applicable, describe any new configuration options.
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Alternative 1: [Name]
|
||||
|
||||
**Description:** Brief description of this alternative.
|
||||
|
||||
**Pros:**
|
||||
- Pro 1
|
||||
- Pro 2
|
||||
|
||||
**Cons:**
|
||||
- Con 1
|
||||
- Con 2
|
||||
|
||||
**Why not chosen:** Explanation.
|
||||
|
||||
### Alternative 2: [Name]
|
||||
|
||||
**Description:** Brief description of this alternative.
|
||||
|
||||
**Pros:**
|
||||
- Pro 1
|
||||
|
||||
**Cons:**
|
||||
- Con 1
|
||||
|
||||
**Why not chosen:** Explanation.
|
||||
|
||||
## Unresolved Questions
|
||||
|
||||
Questions that need to be answered before or during implementation:
|
||||
|
||||
1. **Question 1:** Description of open question
|
||||
- Possible answer A
|
||||
- Possible answer B
|
||||
|
||||
2. **Question 2:** Description of another open question
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Dependency 1: Description and status
|
||||
- Dependency 2: Description and status
|
||||
|
||||
## Security Considerations
|
||||
|
||||
Describe any security implications:
|
||||
- Authentication/authorization impacts
|
||||
- Data privacy considerations
|
||||
- Potential attack vectors and mitigations
|
||||
|
||||
## Testing Strategy
|
||||
|
||||
How will this be tested:
|
||||
- Unit tests
|
||||
- Integration tests
|
||||
- Manual testing checklist
|
||||
|
||||
## Rollout Plan
|
||||
|
||||
How will this be deployed:
|
||||
- Feature flags
|
||||
- Phased rollout
|
||||
- Rollback strategy
|
||||
|
||||
---
|
||||
|
||||
## Review Notes
|
||||
|
||||
*(Added during Review phase)*
|
||||
|
||||
### Review Discussion
|
||||
|
||||
Summary of review feedback and discussions.
|
||||
|
||||
### Changes Made
|
||||
|
||||
List of changes made in response to review feedback.
|
||||
|
||||
---
|
||||
|
||||
## Decision
|
||||
|
||||
*(Added when Approved or Rejected)*
|
||||
|
||||
**Decision:** [Approved/Rejected]
|
||||
**Date:** YYYY-MM-DD
|
||||
**Decided By:** @[username]
|
||||
|
||||
**Rationale:**
|
||||
|
||||
Explanation of the decision.
|
||||
|
||||
---
|
||||
|
||||
## Implementation
|
||||
|
||||
*(Added during Implementing phase)*
|
||||
|
||||
**Sprint:** [Sprint reference]
|
||||
**Started:** YYYY-MM-DD
|
||||
**Issues:**
|
||||
- #123: Issue title
|
||||
- #124: Another issue
|
||||
|
||||
### Progress Notes
|
||||
|
||||
Updates during implementation.
|
||||
|
||||
---
|
||||
|
||||
## Completion
|
||||
|
||||
*(Added when Implemented)*
|
||||
|
||||
**Completed:** YYYY-MM-DD
|
||||
**Release:** vX.Y.Z
|
||||
**Lessons Learned:** [Link to lessons wiki page]
|
||||
|
||||
### Final Notes
|
||||
|
||||
Summary of what was implemented and any deviations from the original design.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Section Requirements by Status
|
||||
|
||||
### Draft (Minimum)
|
||||
- Summary (complete)
|
||||
- Motivation (at least Problem Statement)
|
||||
- Detailed Design (at least Overview)
|
||||
|
||||
### Review (Required)
|
||||
All Draft sections plus:
|
||||
- Alternatives Considered (at least 1)
|
||||
- Unresolved Questions (can be empty if none)
|
||||
|
||||
### Approved (Required)
|
||||
All Review sections plus:
|
||||
- Decision section with approval
|
||||
|
||||
### Implementing (Required)
|
||||
All Approved sections plus:
|
||||
- Implementation section with Sprint and Issues
|
||||
|
||||
### Implemented (Required)
|
||||
All Implementing sections plus:
|
||||
- Completion section
|
||||
|
||||
---
|
||||
|
||||
## RFC-Index Entry Format
|
||||
|
||||
### Draft Section Entry
|
||||
```markdown
|
||||
| [RFC-0005](RFC-0005:-Idea-Z) | Idea Z | @user | 2026-01-25 |
|
||||
```
|
||||
|
||||
### Review Section Entry
|
||||
```markdown
|
||||
| [RFC-0004](RFC-0004:-Feature-Y) | Feature Y | @user | 2026-01-20 |
|
||||
```
|
||||
|
||||
### Approved Section Entry
|
||||
```markdown
|
||||
| [RFC-0003](RFC-0003:-Feature-X) | Feature X | @champion | 2026-01-15 |
|
||||
```
|
||||
|
||||
### Implementing Section Entry
|
||||
```markdown
|
||||
| [RFC-0002](RFC-0002:-Feature-W) | Feature W | Sprint 18 | 2026-01-22 |
|
||||
```
|
||||
|
||||
### Implemented Section Entry
|
||||
```markdown
|
||||
| [RFC-0001](RFC-0001:-Initial-Feature) | Initial Feature | 2026-01-10 | v5.0.0 |
|
||||
```
|
||||
|
||||
### Rejected Section Entry
|
||||
```markdown
|
||||
| [RFC-0006](RFC-0006:-Rejected-Idea) | Rejected Idea | Out of scope | 2026-01-18 |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Minimal RFC Template (Quick Start)
|
||||
|
||||
For rapid RFC creation from conversation:
|
||||
|
||||
```markdown
|
||||
> **RFC:** NNNN
|
||||
> **Title:** [Title]
|
||||
> **Status:** Draft
|
||||
> **Author:** @[username]
|
||||
> **Created:** YYYY-MM-DD
|
||||
> **Updated:** YYYY-MM-DD
|
||||
> **Champion:** (unassigned)
|
||||
> **Sprint:** (none)
|
||||
> **Superseded-By:** (none)
|
||||
|
||||
# RFC-NNNN: [Title]
|
||||
|
||||
## Summary
|
||||
|
||||
[Brief description of the proposal]
|
||||
|
||||
## Motivation
|
||||
|
||||
### Problem Statement
|
||||
|
||||
[What problem does this solve?]
|
||||
|
||||
### Goals
|
||||
|
||||
- [ ] [Primary goal]
|
||||
|
||||
## Detailed Design
|
||||
|
||||
### Overview
|
||||
|
||||
[High-level approach]
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
*(To be added during review)*
|
||||
|
||||
## Unresolved Questions
|
||||
|
||||
- [Any open questions?]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Creating RFC from Clarified Spec
|
||||
|
||||
When `/clarify` provides a clarified specification, map sections:
|
||||
|
||||
| Clarify Output | RFC Section |
|
||||
|----------------|-------------|
|
||||
| Problem/Context | Motivation > Problem Statement |
|
||||
| Goals/Outcomes | Motivation > Goals |
|
||||
| Scope/Requirements | Detailed Design > Overview |
|
||||
| Constraints | Detailed Design or Non-Goals |
|
||||
| Success Criteria | Testing Strategy |
|
||||
Reference in New Issue
Block a user