一键导入
rfc-writer
A CLI tool for creating, managing, and validating RFCs (Request for Comments) in a project. Invoke with `ion run rfc-writer`.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
A CLI tool for creating, managing, and validating RFCs (Request for Comments) in a project. Invoke with `ion run rfc-writer`.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | rfc-writer |
| description | A CLI tool for creating, managing, and validating RFCs (Request for Comments) in a project. Invoke with `ion run rfc-writer`. |
| metadata | {"binary":"rfc-writer","version":"0.1.0"} |
RFC Writer is a CLI tool that manages an rfc/ directory in your project. It creates RFC documents from built-in templates, tracks metadata (authors, status, revisions), and validates that RFCs contain all required sections.
Use this tool when you need to:
ion run rfc-writer init
Creates the rfc/ directory in the current project. Run this once before creating RFCs.
ion run rfc-writer new \
--title "Add user authentication" \
--template standard \
--author "username:user@example.com" \
--agent "claude-opus-4:co-author" \
--description "Proposal for adding OAuth2-based authentication"
Required flags:
--title — The RFC title (must be unique; errors if an RFC with the same title already exists)Optional flags:
--template — Template to use: standard (default), lightweight, architecture--author — Author in github_handle:email format (repeatable for multiple authors). If omitted, auto-detected from git config (github.user/user.name and user.email).--agent — AI agent in name:role format (repeatable)--description — Short description of the RFCThe RFC file is auto-numbered (e.g., rfc/0001-add-user-authentication.md) and initialized with status draft.
ion run rfc-writer list
Shows all RFCs with their filename, title, and current status.
ion run rfc-writer validate rfc/0001-add-user-authentication.md
Checks that the RFC contains all sections required by its template and that its status is valid for the template type. Reports any missing sections or invalid status.
ion run rfc-writer status rfc/0001-add-user-authentication.md -s review
Updates the status of an existing RFC. The new status must be one of the allowed values for the RFC's template (see below). Errors if the status is not permitted.
Required flags:
-s / --set — The new status valueion run rfc-writer revise rfc/0001-add-user-authentication.md \
-m "Revised authentication flow to use PKCE" \
--author "alice:alice@example.com" \
--description "Updated proposal using PKCE flow" \
--agent "claude-opus-4:co-author"
Appends a timestamped revision entry (with author) to the RFC's frontmatter and optionally updates the RFC description and agent list. Use this whenever you make meaningful changes to an existing RFC so the revision history is tracked.
Required flags:
-m / --message — Description of what changed in this revisionOptional flags:
--author — Revision author in github_handle:email format. Falls back to git config if omitted.--description — Update the RFC's short description--agent — AI agent in name:role format (repeatable, appended to RFC agent list; duplicates by name are ignored)ion run rfc-writer templates
Each template is a markdown file in src/templates/ with YAML frontmatter that configures its status_options and description. Required sections are derived from the H2 headings in the template body.
All templates must include the three special status options: draft, approved, implemented. These are displayed with color in list output (yellow, green, cyan respectively).
Full RFC for significant changes.
Allowed status options: draft, review, approved, rejected, superseded, withdrawn, implemented
Required sections:
For smaller, well-scoped changes.
Allowed status options: draft, review, approved, rejected, withdrawn, implemented
Required sections:
Architecture Decision Record (ADR) style.
Allowed status options: draft, review, approved, superseded, withdrawn, implemented
Required sections:
Each RFC has YAML frontmatter with these fields:
---
title: "RFC Title"
description: "Short description of the proposal"
status: draft
authors:
- github: "@username"
email: "user@example.com"
agents:
- name: "claude-opus-4"
role: "co-author"
created: "2026-03-21T12:00:00Z"
revisions:
- timestamp: "2026-03-21T12:00:00Z"
author:
github: "@username"
email: "user@example.com"
description: "Initial draft"
template: standard
---
Status values: Defined per template in its frontmatter (see Templates section). Three special statuses — draft, approved, implemented — are required for all templates and shown with color in list output.
standard for significant changes, lightweight for small scoped work, architecture for infrastructure/design decisions.Summary: Write this last. It should be 2-3 sentences that a busy reader can scan to decide whether to read the full RFC. Avoid jargon.
Motivation: Focus on the problem, not the solution. Include concrete examples, user pain points, or data. A reader who disagrees with the motivation will reject the RFC regardless of the design.
Detailed Design: Be specific enough that someone else could implement it. Include:
Drawbacks: Be honest. Every change has costs. Acknowledging them builds trust and often leads to better designs through discussion.
Alternatives: Show your work. Explain why rejected alternatives were worse, not just that they were considered. Include "do nothing" as an alternative when appropriate.
Unresolved Questions: Flag what you don't know yet. This invites focused feedback instead of broad bikeshedding.
All binary skills support:
ion run rfc-writer self skill # Output the SKILL.md
ion run rfc-writer self info # Show version and build info
ion run rfc-writer self check # Check for updates
ion run rfc-writer self update # Update to the latest version