North Coder

RFC Mode

使用 RFC Mode 先完成设计、拆分子任务,再进入实现。

RFC Mode 是 North Coder 的内建 Agent profile,适合在写代码前先澄清需求、调研代码、记录设计决策,并把工作拆成可执行子任务。

它和普通会话最大的区别是:RFC Mode 会产出正式 RFC 文档,并把子任务状态写入结构化元数据,后续可以在 RFC View 中审阅和执行。

为什么用 RFC 而不是直接写代码

小需求可以让 Agent 直接实现。但面对"重构整个认证模块,支持 SSO 和 RBAC"这类任务,直接动手写代码往往导致设计遗漏、上下文丢失和结果不可预期。

RFC 机制借鉴了 Rust 等开源社区的长期实践——在实现大功能前先提出设计方案,经过审阅后再动工。这套流程同样适合人与 Agent 的协作:

📋 需求澄清 → 📐 设计文档 → 🔀 子任务拆解 → 🔨 逐个实现 → ✅ 质量验证

相比直接让 Agent 写代码,RFC Mode 有四个关键优势:

  • 多轮问答澄清需求:自然语言描述常常模糊或遗漏。RFC Mode 会先提问、确认边界,帮你把需求想清楚,再动手写设计文档。
  • 合理的细节程度:RFC 只记录架构、接口设计、权衡取舍和验收标准,不写实现细节。既足够指导实现,又不会过度膨胀导致维护困难。
  • 可审阅的设计界面:代码越来越难 Review,但 RFC 文档是人能读懂的设计方案。团队可以在实现前一起审阅 RFC,达成共识后再动工。
  • 持续的项目记忆:RFC 文档沉淀在代码仓库里,Agent 可以快速获取高质量的设计上下文。代码中也会通过注释标记关联的 RFC 编号,形成双向索引。

什么时候使用

适合使用 RFC Mode:

  • 新功能或跨模块改动。
  • API、数据模型、权限、安全或部署相关变化。
  • 需求还不清楚,需要先讨论设计选择。
  • 需要拆成多个子任务并跟踪状态。
  • 希望把“为什么这么做”留成可回看的设计记录。

不建议使用 RFC Mode:

  • 单文件文案调整。
  • 明确的小 bug 修复。
  • 不需要设计取舍的机械改动。
  • 只是想让 Agent 直接实现一个很小的任务。

基本流程

  1. 进入目标工作区。
  2. 在会话里选择 RFC Mode Agent profile。
  3. 描述问题、目标、约束和已知背景。
  4. RFC Mode 会先阅读代码并提出必要的澄清问题。
  5. 你确认关键设计选择后,RFC Mode 会生成 RFC。
  6. 聊天流中会出现 RFC 提案面板。
  7. 打开完整 RFC View,审阅元信息、子任务和正文。
  8. 对已就绪子任务点击执行,进入实现会话。

如果 RFC 还不满意,可以继续在同一个 RFC Mode 会话中给反馈,让 Agent 修改设计。

RFC 产物

RFC Mode 会生成两类文件:

文件用途
docs/rfcs/NNNN-title.mdRFC 正文,记录背景、设计、权衡、验证计划和未决问题。
docs/rfcs/meta/NNNN-title.jsonRFC 元信息和子任务状态,供 RFC View 和任务执行使用。

正文适合人阅读;JSON 元数据适合界面和 Agent 读写。日常使用时不需要手动编辑 JSON 状态。

RFC View

打开 RFC 文件时,North Coder 会优先显示 RFC View。它把 RFC 正文和元数据合并成一个可操作界面:

  • 元信息卡片:状态、优先级、标签、日期等。
  • 子任务表:任务 ID、标题、依赖、状态、Ref 和执行按钮。
  • RFC 正文:完整设计内容。
  • 搜索:可以搜索元信息、子任务和正文。

子任务状态包括:

状态含义
pending等待执行。
in-progress正在执行或可继续执行。
implemented已完成。
blocked有未完成依赖,界面根据依赖自动推算。

执行子任务

在 RFC View 或聊天流里的 RFC 提案面板中,可以执行单个子任务,也可以执行所有已就绪任务。

执行前可以选择要使用的 Agent profile。启动后,North Coder 会创建或打开对应实现会话,并注入该子任务的范围、验收标准和状态更新要求。

实现完成后,Agent 应通过 update_rfc_task_status 工具更新任务状态。不要让 Agent 直接手改 docs/rfcs/meta/*.json 里的状态字段,因为工具会检查状态流转和依赖关系。

和 Plan Mode 的区别

模式适合场景产物执行方式
RFC Mode需要正式设计记录和任务拆分的功能docs/rfcs/*.md + docs/rfcs/meta/*.json从 RFC View 执行子任务
Plan Mode需求基本明确,只想先探索并生成实现计划.north-coder/plans/*.mdHand Off 或在当前会话继续
General小任务或直接实现代码改动和会话记录当前会话直接执行

如果一个任务会影响长期架构或团队协作,优先使用 RFC Mode。如果只是想让 Agent 先看代码再列步骤,使用 Plan Mode 会更轻量。

写好 RFC Mode 任务

给 RFC Mode 的第一条消息建议包含:

  • 背景:为什么要做这件事。
  • 目标:希望用户或系统获得什么能力。
  • 范围:哪些模块需要考虑,哪些不需要。
  • 约束:兼容性、安全、性能、部署、UI 或时间限制。
  • 验证:希望实现阶段如何证明完成。

示例:

我希望为文档站增加搜索分析能力。请先用 RFC Mode 调研现有 docs-site 搜索实现,
设计一个不引入后端服务的方案,明确数据采集边界、隐私约束和子任务拆分。

审阅建议

批准 RFC 前,重点看:

  1. 背景和目标是否准确。
  2. 非目标是否排除了不该做的事。
  3. 设计决策是否说明了理由。
  4. 子任务是否能独立执行。
  5. 依赖关系是否合理。
  6. 验证计划是否能证明实现完成。

如果这些内容还不清楚,先让 RFC Mode 修改 RFC,再开始实现。

本页内容