Review RFC Skill
This skill helps you thoroughly review RFCs for the ToolHive ecosystem, ensuring they meet quality standards, architectural alignment, and security requirements.
Overview
When reviewing an RFC, you should evaluate it against multiple dimensions: completeness, technical accuracy, architectural alignment, security considerations, and feasibility.
Review Workflow
Step 1: Read the RFC
First, read the RFC document completely. If provided a PR number or file path, fetch and read it.
Step 2: Fetch Architectural Context
Before reviewing, gather context from the ToolHive architecture documentation. Use mcp__github__get_file_contents to read relevant docs from stacklok/toolhive repo's docs/arch/ directory:
| Document |
When to Read |
00-overview.md |
Always - understand platform concepts |
01-deployment-modes.md |
RFCs affecting deployment, K8s, or local mode |
02-core-concepts.md |
RFCs introducing new concepts or terminology |
03-transport-architecture.md |
RFCs affecting MCP transports or proxy |
04-secrets-management.md |
RFCs involving secrets or credentials |
05-runconfig-and-permissions.md |
RFCs affecting configuration or permissions |
06-registry-system.md |
RFCs affecting registry functionality |
07-groups.md |
RFCs involving server grouping |
08-workloads-lifecycle.md |
RFCs affecting workload management |
09-operator-architecture.md |
RFCs affecting K8s operator or CRDs |
10-virtual-mcp-architecture.md |
RFCs involving aggregation or virtual MCP |
Step 3: Check Related Existing RFCs
Search this repository for related RFCs that might:
- Conflict with the proposal
- Be superseded by the proposal
- Provide context or dependencies
Step 4: Verify Against Target Repository
Search the target repository to verify:
- Proposed changes align with existing code patterns
- No conflicts with recent changes
- API changes are compatible with existing interfaces
Review Checklist
A. Structure and Completeness
B. Security Review (CRITICAL)
The Security Considerations section MUST address all of these:
| Section |
Questions to Verify |
| Threat Model |
Are potential threats identified? Are attacker capabilities considered? |
| Authentication |
How does this affect auth? Are new auth requirements clear? |
| Authorization |
What permission checks are needed? Any new permission models? |
| Data Security |
Is sensitive data identified? Is encryption addressed? |
| Input Validation |
What user input is accepted? How is it validated? |
| Secrets Management |
Are secrets handled properly? Can they be rotated? |
| Audit and Logging |
Are security events logged? Compliance considered? |
| Mitigations |
Are concrete mitigations proposed for identified threats? |
Red flags to watch for:
- Missing or superficial security section
- "N/A" without justification for security subsections
- No threat model for network-exposed features
- Secrets in configuration examples
- Missing input validation for user-provided data
- No audit logging for security-relevant operations
C. Technical Accuracy
D. Diagrams and Examples
E. Feasibility and Impact
ToolHive Ecosystem Context
Target Repositories
| Repository |
Type |
Key Considerations |
toolhive |
Go |
Core platform, CLI, operator, proxy, virtual MCP |
toolhive-studio |
TypeScript |
Desktop UI, Electron app |
toolhive-registry-server |
Go |
Registry API, MCP Registry spec compliance |
toolhive-registry |
Go/JSON |
Registry data, server definitions |
toolhive-cloud-ui |
TypeScript/Next.js |
Cloud UI, OIDC integration |
dockyard |
Go |
Container packaging, security scanning |
Key Architecture Principles to Verify
- Platform, not runner: Does this enhance the platform abstraction?
- Security by default: Does this maintain or improve security posture?
- Middleware composability: Can this be implemented as middleware if appropriate?
- RunConfig portability: Does this preserve configuration portability?
- Cloud-native: Is this Kubernetes-friendly where applicable?
CRD Types (for K8s-related RFCs)
MCPServer - Individual MCP server deployment
MCPRegistry - Registry configuration
MCPToolConfig - Tool filtering and configuration
MCPExternalAuthConfig - External authentication
MCPGroup - Server grouping
VirtualMCPServer - Aggregation of multiple servers
Review Output Format
Structure your review as follows:
## RFC Review: [RFC Title]
### Summary
[1-2 sentence summary of your overall assessment]
### Strengths
- [What the RFC does well]
### Areas for Improvement
#### Critical Issues (Must Fix)
- [Issues that must be addressed before acceptance]
#### Suggestions (Should Consider)
- [Improvements that would strengthen the RFC]
#### Minor/Nitpicks (Optional)
- [Small improvements or style suggestions]
### Security Assessment
[Specific feedback on the security section]
### Architectural Alignment
[How well does this align with ToolHive architecture?]
### Questions for the Author
- [Clarifying questions that need answers]
### Recommendation
[ ] Ready to accept
[ ] Accept with minor changes
[ ] Needs revision (address critical issues)
[ ] Major rework needed
Common Issues to Watch For
Problem Statement Issues
- Too vague or abstract
- Doesn't explain who benefits
- Problem already solved elsewhere
Design Issues
- Over-engineered for the problem
- Missing error handling considerations
- Doesn't consider edge cases
- Breaks existing functionality without migration path
Security Issues
- Missing threat model
- Hardcoded credentials in examples
- No input validation
- Missing audit logging
- Overly permissive defaults
Implementation Issues
- Unrealistic phasing
- Missing dependencies
- No rollback plan
- Insufficient testing strategy
Reference Files
- Template:
rfcs/0000-template.md
- Contributing guide:
CONTRIBUTING.md
- Existing RFCs:
rfcs/THV-*.md
1---2name: review-rfc3description: Review RFCs for the ToolHive ecosystem. Use when the user wants to review, critique, or provide feedback on an RFC for toolhive, toolhive-studio, toolhive-registry, toolhive-registry-server, toolhive-cloud-ui, or dockyard projects.4---5
6# Review RFC Skill
7
8This skill helps you thoroughly review RFCs for the ToolHive ecosystem, ensuring they meet quality standards, architectural alignment, and security requirements.
9
10## Overview
11
12When reviewing an RFC, you should evaluate it against multiple dimensions: completeness, technical accuracy, architectural alignment, security considerations, and feasibility.
13
14## Review Workflow
15
16### Step 1: Read the RFC
17
18First, read the RFC document completely. If provided a PR number or file path, fetch and read it.
19
20### Step 2: Fetch Architectural Context
21
22Before reviewing, gather context from the ToolHive architecture documentation. Use `mcp__github__get_file_contents` to read relevant docs from `stacklok/toolhive` repo's `docs/arch/` directory:
23
24| Document | When to Read |
25|----------|--------------|
26| `00-overview.md` | Always - understand platform concepts |
27| `01-deployment-modes.md` | RFCs affecting deployment, K8s, or local mode |
28| `02-core-concepts.md` | RFCs introducing new concepts or terminology |
29| `03-transport-architecture.md` | RFCs affecting MCP transports or proxy |
30| `04-secrets-management.md` | RFCs involving secrets or credentials |
31| `05-runconfig-and-permissions.md` | RFCs affecting configuration or permissions |
32| `06-registry-system.md` | RFCs affecting registry functionality |
33| `07-groups.md` | RFCs involving server grouping |
34| `08-workloads-lifecycle.md` | RFCs affecting workload management |
35| `09-operator-architecture.md` | RFCs affecting K8s operator or CRDs |
36| `10-virtual-mcp-architecture.md` | RFCs involving aggregation or virtual MCP |
37
38### Step 3: Check Related Existing RFCs
39
40Search this repository for related RFCs that might:
41- Conflict with the proposal
42- Be superseded by the proposal
43- Provide context or dependencies
44
45### Step 4: Verify Against Target Repository
46
47Search the target repository to verify:
48- Proposed changes align with existing code patterns
49- No conflicts with recent changes
50- API changes are compatible with existing interfaces
51
52## Review Checklist
53
54### A. Structure and Completeness
55
56- [ ] **Metadata present**: Status, Author, Created, Last Updated, Target Repository
57- [ ] **Summary**: Clear 2-3 sentence description
58- [ ] **Problem Statement**: Clearly articulates the problem, who's affected, why it matters
59- [ ] **Goals**: Specific, measurable objectives listed
60- [ ] **Non-Goals**: Explicit scope boundaries defined
61- [ ] **Proposed Solution**: Detailed design with diagrams where appropriate
62- [ ] **Security Considerations**: All required subsections present (see below)
63- [ ] **Alternatives Considered**: At least one alternative evaluated
64- [ ] **Compatibility**: Backward and forward compatibility addressed
65- [ ] **Implementation Plan**: Phased approach with concrete tasks
66- [ ] **Testing Strategy**: Multiple test levels covered
67- [ ] **Open Questions**: Unresolved items listed (if any)
68
69### B. Security Review (CRITICAL)
70
71The Security Considerations section MUST address all of these:
72
73| Section | Questions to Verify |
74|---------|---------------------|
75| **Threat Model** | Are potential threats identified? Are attacker capabilities considered? |
76| **Authentication** | How does this affect auth? Are new auth requirements clear? |
77| **Authorization** | What permission checks are needed? Any new permission models? |
78| **Data Security** | Is sensitive data identified? Is encryption addressed? |
79| **Input Validation** | What user input is accepted? How is it validated? |
80| **Secrets Management** | Are secrets handled properly? Can they be rotated? |
81| **Audit and Logging** | Are security events logged? Compliance considered? |
82| **Mitigations** | Are concrete mitigations proposed for identified threats? |
83
84**Red flags to watch for:**
85- Missing or superficial security section
86- "N/A" without justification for security subsections
87- No threat model for network-exposed features
88- Secrets in configuration examples
89- Missing input validation for user-provided data
90- No audit logging for security-relevant operations
91
92### C. Technical Accuracy
93
94- [ ] **Correct terminology**: Uses ToolHive concepts correctly (Workloads, Transports, Middleware, etc.)
95- [ ] **Architecture alignment**: Follows established patterns and principles
96- [ ] **Code examples**: Syntactically correct, idiomatic for the language
97- [ ] **API design**: Consistent with existing APIs in the target repo
98- [ ] **CRD design**: Follows Kubernetes conventions if applicable
99- [ ] **Configuration format**: Matches existing RunConfig patterns
100
101### D. Diagrams and Examples
102
103- [ ] **Mermaid diagrams**: Complex flows illustrated clearly
104- [ ] **Code examples**: Concrete, not abstract placeholders
105- [ ] **Configuration examples**: Realistic YAML/JSON examples
106- [ ] **Sequence diagrams**: For multi-component interactions
107
108### E. Feasibility and Impact
109
110- [ ] **Implementation complexity**: Is the phased approach realistic?
111- [ ] **Dependencies**: Are external dependencies identified?
112- [ ] **Breaking changes**: Are migration paths provided if needed?
113- [ ] **Performance impact**: Considered where relevant?
114- [ ] **Cross-repo impact**: If `multiple` repos, are all impacts identified?
115
116## ToolHive Ecosystem Context
117
118### Target Repositories
119
120| Repository | Type | Key Considerations |
121|------------|------|-------------------|
122| `toolhive` | Go | Core platform, CLI, operator, proxy, virtual MCP |
123| `toolhive-studio` | TypeScript | Desktop UI, Electron app |
124| `toolhive-registry-server` | Go | Registry API, MCP Registry spec compliance |
125| `toolhive-registry` | Go/JSON | Registry data, server definitions |
126| `toolhive-cloud-ui` | TypeScript/Next.js | Cloud UI, OIDC integration |
127| `dockyard` | Go | Container packaging, security scanning |
128
129### Key Architecture Principles to Verify
130
1311. **Platform, not runner**: Does this enhance the platform abstraction?
1322. **Security by default**: Does this maintain or improve security posture?
1333. **Middleware composability**: Can this be implemented as middleware if appropriate?
1344. **RunConfig portability**: Does this preserve configuration portability?
1355. **Cloud-native**: Is this Kubernetes-friendly where applicable?
136
137### CRD Types (for K8s-related RFCs)
138
139- `MCPServer` - Individual MCP server deployment
140- `MCPRegistry` - Registry configuration
141- `MCPToolConfig` - Tool filtering and configuration
142- `MCPExternalAuthConfig` - External authentication
143- `MCPGroup` - Server grouping
144- `VirtualMCPServer` - Aggregation of multiple servers
145
146## Review Output Format
147
148Structure your review as follows:
149
150```markdown
151## RFC Review: [RFC Title]
152
153### Summary
154[1-2 sentence summary of your overall assessment]
155
156### Strengths
157- [What the RFC does well]
158
159### Areas for Improvement
160
161#### Critical Issues (Must Fix)
162- [Issues that must be addressed before acceptance]
163
164#### Suggestions (Should Consider)
165- [Improvements that would strengthen the RFC]
166
167#### Minor/Nitpicks (Optional)
168- [Small improvements or style suggestions]
169
170### Security Assessment
171[Specific feedback on the security section]
172
173### Architectural Alignment
174[How well does this align with ToolHive architecture?]
175
176### Questions for the Author
177- [Clarifying questions that need answers]
178
179### Recommendation
180[ ] Ready to accept
181[ ] Accept with minor changes
182[ ] Needs revision (address critical issues)
183[ ] Major rework needed
184```
185
186## Common Issues to Watch For
187
188### Problem Statement Issues
189- Too vague or abstract
190- Doesn't explain who benefits
191- Problem already solved elsewhere
192
193### Design Issues
194- Over-engineered for the problem
195- Missing error handling considerations
196- Doesn't consider edge cases
197- Breaks existing functionality without migration path
198
199### Security Issues
200- Missing threat model
201- Hardcoded credentials in examples
202- No input validation
203- Missing audit logging
204- Overly permissive defaults
205
206### Implementation Issues
207- Unrealistic phasing
208- Missing dependencies
209- No rollback plan
210- Insufficient testing strategy
211
212## Reference Files
213
214- Template: `rfcs/0000-template.md`
215- Contributing guide: `CONTRIBUTING.md`
216- Existing RFCs: `rfcs/THV-*.md`