dev-rfc
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDev RFC Skill
Dev RFC 技能
Write RFCs and technical proposals that serve two purposes: aligning stakeholders on what to build and why (RFCs), and helping engineers understand how a system works (architecture docs). Most real proposals blend both — the skill helps you pick the right sections for the situation.
撰写的RFC和技术提案需满足两大目的:让利益相关者就构建内容及其原因达成共识(RFC),以及帮助工程师理解系统的工作原理(架构文档)。实际工作中的多数提案会融合两者的内容——本技能可帮助你根据场景选择合适的文档章节。
Reference Templates
参考模板
Read for the three structural templates:
references/template.md- RFC — for pre-build alignment. Focuses on abstract, approaches (with fair comparison), service SLAs, observability, and rollout plan.
- Architecture Doc — for documenting built systems. Focuses on diagrams, source tree, data flow, design philosophy.
- One-Pager — for small changes (< 1 week). Problem, Proposed Solution, Rollout. ~20 lines.
阅读 获取三种结构化模板:
references/template.md- RFC — 用于构建前的共识对齐。重点关注摘要、方案对比、服务SLA、可观测性和上线计划。
- Architecture Doc(架构文档) — 用于记录已构建的系统。重点关注图表、源码目录、数据流、设计理念。
- One-Pager(单页文档) — 用于小型变更(耗时<1周)。包含问题、提议方案、上线计划,约20行内容。
Step 0: Pick the Mode
步骤0:选择模式
Ask the user (or infer from context) which situation they're in:
| Situation | Mode | Key question the doc answers |
|---|---|---|
| Planning a new system or major change | RFC | "Should we build this, and how?" |
| Documenting an existing system | Architecture Doc | "How does this system work?" |
| Proposing a change to an existing system | RFC (with before/after diagrams in Detailed Design) | "Why are we changing this, and what will it look like?" |
| Small scoped change (< 1 week) | One-Pager | "What and why, briefly?" |
For changes to existing systems, use the RFC structure as the backbone but include before/after architecture diagrams in the Detailed Design section, with and markers on components.
[NEW][CHANGED]询问用户(或根据上下文推断)其所处的场景:
| 场景 | 模式 | 文档要解答的核心问题 |
|---|---|---|
| 规划新系统或重大变更 | RFC | “我们是否应该构建这个系统,以及如何构建?” |
| 记录现有系统 | Architecture Doc | “这个系统是如何工作的?” |
| 提议对现有系统进行变更 | RFC(在详细设计中包含变更前后的架构图) | “我们为什么要进行此变更,变更后会是什么样子?” |
| 小范围变更(<1周) | One-Pager | “简要说明内容及原因?” |
针对现有系统的变更,以RFC结构为基础,在详细设计章节中添加变更前后的架构图,并在组件上标注和标记。
[NEW][CHANGED]File Placement
文件存放位置
- Formal proposal or RFC — as primary location
docs/rfcs/RFC-NNN-title.md - Architecture doc for the whole project — at the repo root
ARCHITECTURE.md - Subsystem doc — or alongside the code it describes
docs/design/subsystem-name.md
If the user hasn't specified where to put the doc, ask.
- 正式提案或RFC — 主存放位置为
docs/rfcs/RFC-NNN-title.md - 项目整体架构文档 — 存放在代码库根目录的
ARCHITECTURE.md - 子系统文档 — 存放在 或其描述的代码旁
docs/design/subsystem-name.md
若用户未指定文档存放位置,请询问确认。
Step 1: Understand the Project
步骤1:了解项目
Before writing anything, build a mental model.
For RFCs:
- Clarify the problem statement and constraints with the user
- Understand who the stakeholders and approvers are
- Ask about existing systems this interacts with or replaces
- Identify hard constraints (timeline, budget, compatibility, compliance)
- Ask what alternatives have already been considered or rejected
For architecture docs:
- Read the project's README, CLAUDE.md, and any existing docs
- Explore the source tree to identify major subsystems and their boundaries
- Trace the main data flow from input to output
- Look at key types/interfaces that flow between modules
- Check git history for context on architectural decisions
在撰写任何内容之前,先建立对项目的认知模型。
针对RFC:
- 与用户明确问题陈述和约束条件
- 了解利益相关者和审批人员
- 询问与此提案交互或替代的现有系统
- 识别硬性约束(时间线、预算、兼容性、合规性)
- 询问已考虑或已否决的替代方案
针对架构文档:
- 阅读项目的README、CLAUDE.md及任何现有文档
- 浏览源码目录,识别主要子系统及其边界
- 追踪从输入到输出的主要数据流
- 查看模块间传递的关键类型/接口
- 查看git历史记录,了解架构决策的背景
Step 2: Draft the Document
步骤2:起草文档
Follow the appropriate structure from . The sections to include depend on mode and project complexity — the template has scaling guidance for small/medium/large projects.
references/template.mdThe most important sections per mode:
RFC — the sections approvers care about most:
- Abstract — 3-5 sentence executive summary. A reader should be able to decide whether to read the full RFC from this alone.
- Approaches — all evaluated options with fair comparison. This is what distinguishes an RFC from a spec.
- Service SLAs & Observability — production readiness. Shows the proposal accounts for how the system will behave and be monitored in production.
Architecture Doc — the sections new contributors care about most:
- High-Level Architecture (with diagram) — the single-glance understanding.
- Source Tree — the "where do I find X" index.
- Key Design Decisions — the "why is it done this way" answers.
遵循 中的对应结构。需包含的章节取决于文档模式和项目复杂度——模板中提供了针对小型/中型/大型项目的扩展指导。
references/template.md各模式下最重要的章节:
RFC — 审批人员最关注的章节:
- 摘要 — 3-5句话的执行摘要。读者应仅通过此部分就能决定是否阅读完整RFC。
- 方案对比 — 所有评估过的选项及公平对比。这是RFC与规范文档的核心区别。
- 服务SLA与可观测性 — 生产就绪性。表明提案考虑了系统在生产环境中的表现及监控方式。
架构文档 — 新贡献者最关注的章节:
- 高层架构(含图表) — 一眼就能理解的系统概览。
- 源码目录 — “我在哪里能找到X”的索引。
- 关键设计决策 — “为什么要这样做”的答案。
Step 3: Write Effective Content
步骤3:撰写高质量内容
Not all systems are pipelines. Choose the diagram shape that matches the system:
- Pipeline — compilers, data pipelines, ETL. Linear stages with data flowing through.
- Request-flow — services, APIs. Request path through middleware, handlers, dependencies.
- Event-flow — event-driven systems. Producers, queues/topics, consumers.
- Layer diagram — web apps, CRUD. UI → API → service → data layers.
The diagram is the centerpiece. A reader should understand the overall system flow from it alone. Use ASCII box-drawing art. Label stages with module paths and descriptions. Show data formats between stages.
Be concrete, not abstract. Instead of "Module A processes the input and passes it to Module B", write: " emits (expanded text with line markers), which consumes to produce ." For proposals, use proposed type/interface names.
Preprocessor::preprocess()StringLexer::tokenize()Vec<Token>Approaches should present genuine alternatives with fair pros/cons. Don't strawman alternatives to make the recommended approach look better. Each approach should have real strengths acknowledged. A reviewer who disagrees with your recommendation should feel their preferred option was represented honestly.
Goals & Non-Goals should be specific and falsifiable. Example (for "migrate auth to OAuth2"):
Goals:
- All user-facing login flows use OAuth2 authorization code flow by end of Q3
- Support Google and GitHub as identity providers at launch
- Session token storage meets SOC 2 requirements (encrypted at rest, 24h max lifetime)
Non-Goals:
- Migrating service-to-service auth (stays on mTLS for now)
- Building a custom identity provider — we'll use Auth0
- Supporting SAML (enterprise SSO is a separate Q4 project)
Service SLAs should be concrete. Don't say "high availability" — state "99.95% uptime." Don't say "low latency" — state "P99 under 300ms." Justify each target.
Separate decisions from philosophy. Key Design Decisions are factual choices ("We use SSA form"). Design Philosophy captures principles that guide ongoing decisions ("Separation of concerns through representations").
并非所有系统都是流水线。选择与系统匹配的图表类型:
- 流水线图 — 编译器、数据流水线、ETL。数据流经线性阶段。
- 请求流程图 — 服务、API。请求通过中间件、处理器、依赖的路径。
- 事件流程图 — 事件驱动系统。生产者、队列/主题、消费者。
- 分层图 — Web应用、CRUD系统。UI → API → 服务 → 数据层。
图表是文档的核心。读者应仅通过图表就能理解整体系统流程。使用ASCII绘图工具绘制图表,标注阶段的模块路径和描述,显示阶段间的数据格式。
具体而非抽象。不要写“模块A处理输入并传递给模块B”,而应写:“ 输出 (带行标记的扩展文本),供 处理以生成 。” 对于提案,使用提议的类型/接口名称。
Preprocessor::preprocess()StringLexer::tokenize()Vec<Token>方案对比应呈现真实替代方案及公平的优缺点。不要为了凸显推荐方案而刻意贬低其他方案。每个方案都应承认其真实优势。即使不同意你的推荐方案,评审人员也应觉得他们偏好的选项得到了如实呈现。
目标与非目标应具体且可验证。示例(针对“将认证迁移至OAuth2”):
目标:
- 到Q3末,所有面向用户的登录流程均使用OAuth2授权码流程
- 上线时支持Google和GitHub作为身份提供商
- 会话令牌存储符合SOC 2要求(静态加密,最长生命周期24小时)
非目标:
- 迁移服务间认证(目前仍使用mTLS)
- 构建自定义身份提供商——我们将使用Auth0
- 支持SAML(企业SSO是单独的Q4项目)
服务SLA应具体。不要说“高可用性”,而应说明“99.95%的正常运行时间”。不要说“低延迟”,而应说明“P99延迟低于300ms”。并为每个目标提供依据。
区分决策与理念。关键设计决策是事实性选择(“我们使用SSA形式”)。设计理念是指导后续决策的原则(“通过表示实现关注点分离”)。
Step 4: Review Checklist
步骤4:评审检查清单
For RFCs:
- Is the Abstract clear enough that a reader can decide whether to read the full RFC?
- Does Approaches honestly represent all options with genuine pros/cons?
- Is the Recommendation well-justified — does it explain what's being given up?
- Are Service SLAs concrete with specific numbers, not vague ("high availability")?
- Are Goals & Non-Goals specific enough to evaluate the proposal against?
- Is there a concrete rollback plan with decision criteria?
- Are Open Questions clearly flagged for approver input?
For architecture docs:
- Can someone unfamiliar with the project understand the flow from the diagram alone?
- Are concrete types and method names in Data Flow accurate?
- Do Key Design Decisions cover what a new contributor needs first?
- Are cross-references to other docs (README, per-module docs) included?
针对RFC:
- 摘要是否清晰到读者可以决定是否阅读完整RFC?
- 方案对比是否如实呈现了所有选项及真实的优缺点?
- 推荐方案是否有充分的理由——是否说明了需要放弃的内容?
- 服务SLA是否具体且有明确数字,而非模糊表述(如“高可用性”)?
- 目标与非目标是否足够具体,可用于评估提案?
- 是否有具体的回滚计划及决策标准?
- 是否明确标记了需要审批人员输入的开放问题?
针对架构文档:
- 不熟悉项目的人能否仅通过图表理解系统流程?
- 数据流中的具体类型和方法名称是否准确?
- 关键设计决策是否涵盖了新贡献者首先需要了解的内容?
- 是否包含了指向其他文档(README、模块文档)的交叉引用?
Step 5: Collect Feedback & Iterate (Optional)
步骤5:收集反馈并迭代(可选)
After writing the RFC, offer to open a review UI in the user's browser. The review UI runs a local server that auto-saves feedback, supports multiple revision rounds, and lets the user explicitly approve the document.
Path resolution: In the commands below,refers to the absolute path of this SKILL.md file. Resolve it as the directory containing this file (e.g., if SKILL.md is at$SKILL_PATH, then/path/to/dev-rfc/SKILL.mdis$(dirname "$SKILL_PATH")). Requires Bun (or Node 22+ with/path/to/dev-rfc).--experimental-strip-types
撰写完RFC后,可提议在用户浏览器中打开评审界面。评审界面运行本地服务器,自动保存反馈,支持多轮修订,并允许用户明确批准文档。
路径解析: 以下命令中的指此SKILL.md文件的绝对路径。解析为包含此文件的目录(例如,如果SKILL.md位于$SKILL_PATH,则/path/to/dev-rfc/SKILL.md为$(dirname "$SKILL_PATH"))。需要Bun(或Node 22+并启用/path/to/dev-rfc)。--experimental-strip-types
First Round
第一轮评审
- Save the RFC to its target file path.
- Start the review server:
This starts an HTTP server onbash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>"and opens the browser. Feedback auto-saves tolocalhost:3118as the user types (800ms debounce). The server also serves the latest version of the markdown on each refresh.<doc-dir>/.rfc-review/feedback.json - Tell the user: "I've opened the RFC review in your browser at http://localhost:3118. Add feedback to any section, highlight text for inline comments, then click Submit Feedback (for revisions) or Approve (if it looks good). Your feedback auto-saves as you type."
- When the user says they're done reviewing, read feedback from the workspace:
bash
cat <doc-dir>/.rfc-review/feedback.json
- 将RFC保存到目标文件路径。
- 启动评审服务器:
此命令会在bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>"启动HTTP服务器并打开浏览器。用户输入的反馈会自动保存到localhost:3118(800ms防抖)。每次刷新页面时,服务器都会提供最新版本的markdown文档。<doc-dir>/.rfc-review/feedback.json - 告知用户:“我已在你的浏览器中打开RFC评审页面,地址为http://localhost:3118。你可以为任意章节添加反馈,高亮文本添加行内评论,然后点击**提交反馈**(进行修订)或**批准**(若文档符合要求)。你的反馈会在输入时自动保存。”
- 当用户表示评审完成后,从工作区读取反馈:
bash
cat <doc-dir>/.rfc-review/feedback.json
Check Status
检查状态
- — The user approved the RFC. Stop iterating. Announce that the RFC is finalized.
"status": "approved" - — The user wants changes. Proceed to revision.
"status": "needs_revision" - — The user closed the browser mid-review. Ask if they want to continue or if the current draft feedback is sufficient.
"status": "draft"
- — 用户已批准RFC。停止迭代。告知用户RFC已最终定稿。
"status": "approved" - — 用户需要修改文档。进入修订阶段。
"status": "needs_revision" - — 用户在评审中途关闭了浏览器。询问用户是否要继续,或当前草稿的反馈是否足够。
"status": "draft"
Revision Guidelines
修订指南
When revising, prioritize feedback in this order (most specific → most general):
- Inline comments () — targeted at specific text. Address each one.
inline_comments - Section feedback () — per-section concerns. Revise the relevant section.
sections[].feedback - Overall feedback () — broad themes. Apply across the document.
overall_feedback
Empty feedback for a section means no concerns — skip it. Don't make changes where no feedback was given.
修订时,按以下优先级处理反馈(最具体 → 最通用):
- 行内评论 () — 针对特定文本。逐一处理。
inline_comments - 章节反馈 () — 针对章节的问题。修订相关章节。
sections[].feedback - 整体反馈 () — 宽泛的主题。在整个文档中应用修改。
overall_feedback
章节无反馈表示没有问题——跳过该章节。不要在没有反馈的地方进行修改。
Subsequent Rounds
后续评审轮次
After revising the RFC, start the next review round with the previous feedback visible as read-only context:
bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>" \
--previous-feedback <doc-dir>/.rfc-review/feedback-history/feedback-round-N.json \
--iteration N+1The server automatically archives the previous to on startup. The reviewer sees their previous feedback (read-only) above each section, so they can verify their concerns were addressed.
feedback.jsonfeedback-history/feedback-round-N.jsonRepeat the check-status → revise → re-launch loop until the user approves or opts out.
修订完RFC后,启动下一轮评审,将之前的反馈作为只读上下文显示:
bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>" \\
--previous-feedback <doc-dir>/.rfc-review/feedback-history/feedback-round-N.json \\
--iteration N+1服务器启动时会自动将之前的 归档到 。评审人员会在每个章节上方看到之前的反馈(只读),以便确认他们的问题已得到解决。
feedback.jsonfeedback-history/feedback-round-N.json重复“检查状态 → 修订 → 重新启动评审”循环,直到用户批准或选择退出。
Termination
终止迭代
Stop iterating when any of these happen:
- The user clicks Approve in the UI ()
"status": "approved" - The user says "looks good", "ship it", "done", or similar
- The user explicitly says they don't want more rounds
出现以下情况之一时停止迭代:
- 用户在UI中点击批准()
"status": "approved" - 用户说“看起来不错”、“发布吧”、“完成”或类似表述
- 用户明确表示不需要更多轮次的评审
Static Fallback
静态 fallback
If the server can't start (port conflict, environment issue), fall back to static mode:
bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>" --staticThis opens a standalone HTML file. Feedback downloads as to on submit. Ask the user where the file landed.
feedback.json~/DownloadsSkip this step entirely if the user wants the doc written directly without a review loop, or for one-pagers.
如果服务器无法启动(端口冲突、环境问题),切换到静态模式:
bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" <doc-path> --title "<project name>" --static此命令会打开一个独立的HTML文件。提交的反馈会下载为 到 。询问用户文件的保存位置。
feedback.json~/Downloads如果用户希望直接撰写文档而无需评审循环,或针对单页文档,则完全跳过此步骤。
Step 5b: Live Authoring Mode (Optional)
步骤5b:实时撰写模式(可选)
Instead of writing the entire RFC and then reviewing, use live authoring mode where the UI opens first with a skeleton of all planned sections, you write sections one at a time, each section appears in the browser in real-time, and the user gives per-section feedback before you write the next section.
无需先撰写完整RFC再评审,可使用实时撰写模式:先在UI中打开所有计划章节的框架,逐个撰写章节,每个章节会实时显示在浏览器中,用户在撰写下一章前可对当前章节给出反馈。
When to Use Live Mode
何时使用实时模式
- The user wants to collaborate on the RFC as it's being written
- The RFC is complex and benefits from iterative alignment on each section
- The user explicitly asks for "live", "interactive", or "step-by-step" mode
- 用户希望在撰写RFC时进行协作
- RFC复杂,需要针对每个章节进行迭代对齐
- 用户明确要求“实时”、“交互式”或“分步”模式
Launch the Live Server
启动实时服务器
- Plan the section headings for the RFC based on the template and project scope.
- Start the server in live mode:
This opens the browser showing a skeleton with all planned sections as pending cards.bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" --live --title "<project name>" \ --sections '["Abstract","Motivation","Goals and Non-Goals","Detailed Design","Approaches","Service SLAs","Rollout Plan"]' - Tell the user: "I've opened the RFC in live authoring mode at http://localhost:3118. I'll write each section one at a time — you can approve or request changes on each section before I move to the next."
- 根据模板和项目范围规划RFC的章节标题。
- 启动实时模式服务器:
此命令会打开浏览器,显示包含所有计划章节的待处理卡片框架。bash
bun run "$(dirname "$SKILL_PATH")/scripts/generate_review.ts" --live --title "<project name>" \\ --sections '["Abstract","Motivation","Goals and Non-Goals","Detailed Design","Approaches","Service SLAs","Rollout Plan"]' - 告知用户:“我已在实时撰写模式下打开RFC,地址为http://localhost:3118。我会逐个撰写章节——在我开始下一章前,你可以批准当前章节或要求修改。”
Section-by-Section Protocol
逐章节流程
For each section in order:
- Write the section content as markdown.
- Push it to the server:
The section appears in the browser immediately via SSE.bash
curl -s -X POST http://localhost:3118/api/section/add \ -H 'Content-Type: application/json' \ -d '{"id": "abstract", "heading": "Abstract", "markdown": "## Abstract\n\nYour content here..."}' - Wait for user feedback:
This blocks until the user clicks "Approve" or "Request Changes" in the browser (5-minute timeout).bash
curl -s http://localhost:3118/api/wait-feedback?section=abstract - Handle the response:
- — Move to the next section.
{"action": "approve"} - — Read the feedback, revise the section, then push the update:
{"action": "request_changes", "text": "..."}Then callbashcurl -s -X POST http://localhost:3118/api/section/update \ -H 'Content-Type: application/json' \ -d '{"id": "abstract", "markdown": "## Abstract\n\nRevised content..."}'again./api/wait-feedback?section=abstract - — The user hasn't responded in 5 minutes. Prompt them in the CLI or retry.
{"timeout": true}
按顺序处理每个章节:
- 撰写章节内容,格式为markdown。
- 推送到服务器:
bash
curl -s -X POST http://localhost:3118/api/section/add \\ -H 'Content-Type: application/json' \\ -d '{"id": "abstract", "heading": "Abstract", "markdown": "## Abstract\
Your content here..."}'
章节会通过SSE立即显示在浏览器中。
3. **等待用户反馈:**
```bash
curl -s http://localhost:3118/api/wait-feedback?section=abstract此命令会阻塞,直到用户在浏览器中点击“批准”或“要求修改”(5分钟超时)。
4. 处理响应:
- — 进入下一个章节。
{"action": "approve"} - — 读取反馈,修订章节,然后推送更新:
{"action": "request_changes", "text": "..."}bashcurl -s -X POST http://localhost:3118/api/section/update \\ -H 'Content-Type: application/json' \\ -d '{"id": "abstract", "markdown": "## Abstract\
Revised content..."}' ``` 然后再次调用
/api/wait-feedback?section=abstract- — 用户5分钟未响应。在CLI中提示用户或重试。
{"timeout": true}
Completion
完成撰写
Once all sections are approved, assemble the full markdown from all approved sections and write it to the target file path. The user can also click "Finalize RFC" in the browser once all sections are approved.
所有章节批准后,将所有已批准章节的内容合并为完整的markdown文档,并写入目标文件路径。所有章节批准后,用户也可在浏览器中点击“最终确定RFC”。
Fallback
Fallback
If live mode encounters issues, fall back to batch mode (Step 5) by writing the full RFC first and then opening the standard review UI.
如果实时模式出现问题, fallback到批量模式(步骤5):先撰写完整RFC,然后打开标准评审界面。
Tone and Style
语气与风格
- Present tense, declarative voice for architecture docs. Future tense only for proposals.
- Concise — every word should earn its place
- Prefer showing (diagrams, code, type signatures) over telling
- Short paragraphs — this is reference material, not prose
- Markdown formatting: bold for emphasis, code blocks for types/paths, tables for comparisons
- 架构文档使用现在时、陈述语气。提案仅使用将来时。
- 简洁——每个词都要有存在的意义
- 优先展示(图表、代码、类型签名)而非描述
- 短段落——这是参考资料,不是散文
- Markdown格式:加粗用于强调,代码块用于类型/路径,表格用于对比
Doc Sizing
文档规模
| Change size | Format | Sections |
|---|---|---|
| Small (< 1 week, single component) | One-pager | Problem, Proposed Solution, Rollout |
| Medium (1-4 weeks, multiple components) | Standard RFC | Full RFC or architecture doc |
| Large (> 1 month, cross-team) | Full RFC + sub-docs | Top-level doc + linked sub-docs for subsystems |
| 变更规模 | 格式 | 章节 |
|---|---|---|
| 小型(<1周,单个组件) | One-Pager | 问题、提议方案、上线计划 |
| 中型(1-4周,多个组件) | 标准RFC | 完整RFC或架构文档 |
| 大型(>1个月,跨团队) | 完整RFC + 子文档 | 顶层文档 + 链接到子系统的子文档 |
Review Workflow Guidance
评审工作流指南
Include the status in the metadata header:
- Draft — Author is still writing. Not ready for formal review.
- In Review — Shared with approvers. Specify what feedback is needed.
- Approved — Approvers signed off. Plan of record.
- Superseded — Newer RFC replaces this one. Link to replacement.
- Deprecated — System no longer exists or proposal was abandoned.
在元数据头部包含状态:
- Draft(草稿) — 作者仍在撰写。未准备好正式评审。
- In Review(评审中) — 已分享给审批人员。明确说明需要哪些反馈。
- Approved(已批准) — 审批人员已签字确认。作为记录方案。
- Superseded(已取代) — 新的RFC替代了此文档。链接到替代文档。
- Deprecated(已废弃) — 系统已不存在或提案已被放弃。",