| English Version | 中文版 |
本目录收录 Request for Comments (RFC)——NPS 协议族非平凡变更从 提案、讨论到决议的正式记录。RFC 是 思考文档,不是实现计划: 存在的目的是让”为什么这样决定”的论证比决定本身活得更久。
任何 PR 在动手之前 必须 先开 RFC,如果它:
0x02、新帧类型、新的 NPS 状态码段)spec/frame-registry.yaml 里增删帧NPS-6-*)min_agent_version以下 建议 开 RFC(shepherd 同意可以免):
以下 不需要 RFC:
经验法则: 如果合上 PR 就意味着 6 个 SDK 要么跟进要么显式拒绝,它就要走 RFC。
Draft ─────► Accepted ─────► Active ─────► Superseded
│ │
│ └──► Withdrawn (作者撤回)
└──► Rejected
| 状态 | 含义 | 如何切换 |
|---|---|---|
Draft |
作者起草/修订中;PR 已开,对 dev |
作者继续推提交 |
Accepted |
合入 dev;各 SDK 可以开始实现 |
shepherd 达到批准阈值后合 PR |
Active |
至少一个参考 SDK 已落地;帧/规范变更进主线 | 后续 PR 切状态;要求 ≥1 SDK + CI 绿 |
Superseded |
被后续 RFC 取代 | 取代它的 RFC 填 Supersedes:,本 RFC 填 Superseded-By: |
Withdrawn |
作者不再推进;作为历史保留 | 作者改头部 |
Rejected |
讨论达成”拒绝”共识;作为历史保留 | shepherd 改头部并写拒绝原因 |
Rejected 与 Withdrawn 的 RFC 永不删除——论证过程本身就是产出。
Accept 的最低门槛:
加长窗口:
| 变更类型 | 最短讨论窗口 |
|---|---|
| 新帧 / 新 Reserved 位分配 | 14 天 |
| 破坏性 wire-format 变更 | 21 天 |
抬高 min_agent_version |
21 天 + 1 个月废弃通告期 |
NPS-RFC-{NNNN}-{kebab-slug}.md(英文主稿)NPS-RFC-{NNNN}-{kebab-slug}.cn.md(中文副本)NNNN 是四位数字补零,在 PR 开立时分配,单调递增。即使是
Withdrawn / Rejected 的 RFC,编号也永不复用。
template.md → NPS-RFC-{下一个编号}-{slug}.mdtemplate.cn.md → NPS-RFC-{下一个编号}-{slug}.cn.md 并翻译Status: Draft)dev 开 PR,title 格式:
rfc: NPS-RFC-{NNNN} — {一句话摘要}合入 dev 且状态为 Accepted 后,各 SDK 可开始实现工作。等任一
参考 SDK 发版包含该变更,再提一个 follow-up PR 把 Status:
切到 Active。
| 编号 | 标题 | 状态 | 接受日期 | 取代 |
|---|---|---|---|---|
| 0001 | 为 NCP 原生模式加入连接前导,用于流量识别 | Draft | — | — |
| 0002 | NID 证书改用 X.509 + ACME | Draft | — | — |
| 0003 | Agent 身份三级保证等级(反爬 / 信任分流) | Draft | — | — |
| 0004 | NID 声誉日志(Agent 版 Certificate Transparency) | Draft | — | — |