一键导入
write-rfc
// Write RFCs for the ToolHive ecosystem. Use when the user wants to create a new RFC, proposal, or design document for toolhive, toolhive-studio, toolhive-registry, toolhive-registry-server, toolhive-cloud-ui, or dockyard projects.
// Write RFCs for the ToolHive ecosystem. Use when the user wants to create a new RFC, proposal, or design document for toolhive, toolhive-studio, toolhive-registry, toolhive-registry-server, toolhive-cloud-ui, or dockyard projects.
Help respond to review comments on an RFC pull request. Use when the user wants to address, reply to, or resolve feedback on an open RFC PR for toolhive, toolhive-studio, toolhive-registry, toolhive-registry-server, toolhive-cloud-ui, or dockyard projects.
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.
| name | write-rfc |
| description | Write RFCs for the ToolHive ecosystem. Use when the user wants to create a new RFC, proposal, or design document for toolhive, toolhive-studio, toolhive-registry, toolhive-registry-server, toolhive-cloud-ui, or dockyard projects. |
| allowed-tools | Read, Glob, Grep, Bash(git:*), mcp__github__*, mcp__fetch__fetch, WebFetch, Task, Edit, Write, AskUserQuestion |
This skill helps you write high-quality RFCs for the ToolHive ecosystem following established patterns and conventions.
ToolHive RFCs follow a specific format with the naming convention THV-{NUMBER}-{descriptive-name}.md. The NUMBER must match the PR number and be zero-padded to 4 digits.
Before writing an RFC, ask the user about:
toolhive - Core runtime, CLI (thv), operator (thv-operator), proxy-runner (thv-proxyrunner), virtual MCP (vmcp)toolhive-studio - Desktop UI application (Electron/TypeScript)toolhive-registry - MCP server registry datatoolhive-registry-server - Registry API server (thv-registry-api)toolhive-cloud-ui - Cloud/Enterprise web UI (Next.js)dockyard - Container packaging for MCP serversmultiple - Cross-cutting changesBefore drafting, research the relevant codebase:
Use mcp__github__get_file_contents to read from stacklok/toolhive repo's docs/arch/ directory:
| Document | Content |
|---|---|
00-overview.md | Platform overview, key components |
01-deployment-modes.md | Local vs Kubernetes modes |
02-core-concepts.md | Nouns (Workloads, Transports, Proxy, etc.) and Verbs |
03-transport-architecture.md | stdio, SSE, streamable-http transports |
04-secrets-management.md | Secrets handling, providers |
05-runconfig-and-permissions.md | Configuration format, permission profiles |
06-registry-system.md | Registry architecture, MCPRegistry CRD |
07-groups.md | Server grouping concepts |
08-workloads-lifecycle.md | Lifecycle management |
09-operator-architecture.md | K8s operator, CRDs |
10-virtual-mcp-architecture.md | Virtual MCP aggregation |
Read rfcs/ directory in this repository to understand patterns and check for related proposals.
Use mcp__github__search_code or mcp__github__get_file_contents to explore:
| Repository | Purpose |
|---|---|
stacklok/toolhive | Core platform, CLI, operator, proxy |
stacklok/toolhive-studio | Desktop UI |
stacklok/toolhive-registry-server | Registry API server |
stacklok/toolhive-registry | Registry data |
stacklok/toolhive-cloud-ui | Cloud/Enterprise UI |
stacklok/dockyard | Container packaging |
Create the RFC following the template structure from rfcs/0000-template.md.
# RFC-XXXX: Title
- **Status**: Draft
- **Author(s)**: Name (@github-handle)
- **Created**: YYYY-MM-DD
- **Last Updated**: YYYY-MM-DD
- **Target Repository**: [from step 1]
- **Related Issues**: [links if applicable]
Every RFC MUST address:
If the RFC involves Kubernetes, include CRD examples:
apiVersion: toolhive.stacklok.dev/v1alpha1
kind: MCPServer
metadata:
name: example
spec:
# ...
CRD types: MCPServer, MCPRegistry, MCPToolConfig, MCPExternalAuthConfig, MCPGroup, VirtualMCPServer
The RFC file should be named THV-XXXX-{descriptive-name}.md where XXXX is the PR number. Since you don't know the PR number yet, use a placeholder like THV-XXXX-{name}.md and remind the user to rename it to match the PR number after creating the PR.
Before finalizing, verify:
ToolHive is a platform for MCP server management (not just a container runner):
| Binary | Location | Purpose |
|---|---|---|
thv | toolhive | Main CLI |
thv-operator | toolhive | Kubernetes operator |
thv-proxyrunner | toolhive | K8s proxy container |
vmcp | toolhive | Virtual MCP server (aggregation) |
thv-registry-api | toolhive-registry-server | Registry API server |
rfcs/0000-template.mdCONTRIBUTING.mdrfcs/THV-*.md