从BRD到知识库-两个Skill把需求变成AI能查的知识

0 阅读11分钟

一份需求文档,产品经理吭哧吭哧写两天,评审、拍板、上线。然后它躺进某个网盘、某个飞书空间,或者某人电脑里的 PRD_v2_final_最终版.md。三个月后,新来的同事问「退款到底什么情况下自动放行」,没人答得上来,只能翻聊天记录、翻代码、翻那份早就没人维护的文档。

更别提让 AI 来答了。你把那份 PRD 甩给 Claude,它能读,但读完也白读——因为那文档里全是「系统应该快速地、友好地处理退款」这种正确的废话,没有一条是它能稳定引用、能派生、能沉淀的东西。

本文全程用一个真实跑过的案例串起来:订单退款自动审批,看看怎么把「写完就死」的 PRD,变成「AI 真能查」的知识。


一条主线:从 BRD 到知识条目

先把全景放这儿,后面的每一步都在这张图上:

图片

两个 skill,各管一段,接缝干净:第一个负责把需求写对、写成 AI 能用的样子;第二个负责把它沉淀成会复利的知识。  关键是它们中间那个 raw/prd/ —— 它既是第一个 skill 的终点,又是第二个 skill 的起点。


Skill 一:prd-generator —— 让 PRD 从"人能读"变成"AI 能用"

先说清楚,"AI 友好"到底友好在哪

这不是个玄学词。一份 PRD 对 AI(乃至对下游架构、测试)友不友好,就看三件事:

1. 有没有稳定 ID 的追溯链。
普通 PRD 里,角色、场景、功能都是散文里的名词,AI 没法稳定指向它们。这份模板强制给每个东西一个稳定编号,并且互相引用

  • • ROLE-01 消费者、ROLE-02 客服、ROLE-03 风控管理员
  • • S-01~S-05 场景,每个场景挂着它需要的功能(S-02 → F-03
  • • F-01~F-06 功能,每个功能回指它服务的场景和角色
  • • AC-F03-004NFR-PERF-01UI-01D-01……

追溯链一旦闭合,下游就能干很省事的活:架构设计引用 ROLE-xx、测试用例直接从 AC-Fxx-xxx 派生 TC。链断了,就等于需求没定义清楚——这是模板的第一条铁律。

2. 验收标准是不是 GWT,而不是"功能正常工作"。
这是我最看重的一条。看两版对比,同一个功能:

❌ F-01 用户登录:系统应提供易用的登录界面,用户可以快速登录。
—— "易用""快速",AI 和测试都没法验证,等于没写。

✅ 用 GWT 表格,每条都可观测、可测试、有唯一 AC ID:

AC ID给定(Given)当(When)则(Then)
AC-F03-001金额≤200、非风险名单、已签收进入自动判定自动通过并原路退回,记录命中理由
AC-F03-002金额>200 元进入自动判定转人工,理由=超金额阈值
AC-F03-004风险名单接口超时进入自动判定触发降级,转人工,不自动放行

你看 AC-F03-004——它把"接口挂了怎么办"这种异常路径也写进了验收。只写正常流的 PRD 是半成品,这是第六条铁律。

3. 它到底落在哪。
不是随便一个文件,而是直接落进业务知识库的原始层:team-biz-wiki/raw/prd/{日期}-{业务线}-{需求名称}.md。命了名、带了可追溯的 frontmatter(brd_sourcestatus: draft),天生就是给下一个 skill 当输入的。

实际怎么用

你不用背命令。跟它说人话就行——「基于这份 BRD 写个 PRD」「把这个需求整理成需求文档」,skill 就触发了。然后它会问你一句最关键的:

"你有上游 BRD 或素材想让我分析,还是从零开始构思?"

这就是它的两种模式

  • • 有 BRD/素材(最常见):你把 BRD 甩给它,它提取、你确认、快速补全。
  • • 从零开始:没有上游材料时,它用引导式提问一步步帮你想清楚。

之后是 6 步,每步做完停在一个菜单等你敲 C 继续,绝不自己闷头往下冲:

步骤干什么产出章节
1初始化 + 吃 BRD/素材元信息、需求分析(背景/价值/目标 G-xx)
2角色与权限ROLE 清单、权限矩阵
3场景 + 端到端流程S-xx 场景表、主流程/异常流程 Mermaid 图
4功能需求(核心)F-xx + 每个功能的 GWT 验收
5NFR + UI + 全局说明量化的非功能需求、UI 要点、名词解释
6依赖约束 + 追溯校验D/A/C、追溯映射、闭环校验

这里有个设计我很喜欢:它把自己定位成引导者,不是内容生成器。它不替你瞎编需求,而是用结构化提问帮你把脑子里的东西挖出来、摆整齐。因为需求这东西,AI 编得再顺,也得是你脑子里的那个需求才算数。

第 6 步的追溯校验是临门一脚。它会自动检查:每个场景是不是都挂了功能?每个功能是不是都有 GWT?非目标列没列?我们那次跑,它就老老实实标出来「F-02/F-04/F-06 的 GWT 从略了」——该抓的缺口一个没漏。

产出长什么样

拿订单退款那份的一个真实切片感受下——一张端到端主流程图,AI 画的:

是

否

ROLE-01 消费者·提交退款申请系统·校验订单状态F-03 自动审批引擎·规则判定金额≤200 且 非风险名单 且 已签收?自动通过·发起原路退回转人工·进入 F-04 工作台

节点上标着 ROLE-01F-03F-04——图和文字用的是同一套稳定 ID。这就是"AI 友好"的样子:不是给人看个热闹,是让机器和人指的是同一个东西。


Skill 二:wiki-ingest —— 把 PRD 提炼成会复利的知识

PRD 落进 raw/prd/ 只是第一步。它还是一份"原始材料"——信息密度高,但也夹着一次性的东西(原型链接、评审人、灰度节奏)。真正值钱的知识,得再提炼一道。

这一步的方法论我抄的是 Karpathy 的 LLM Wiki:知识库分三层——raw(只读原始层)→ wiki(LLM 合成层)→ schema(规范层) ,三个操作 Ingest / Query / Lint。wiki-ingest 干的就是 Ingest。

核心心法:ingest 不是复制,是提炼 + 编织

这是最容易做错的地方。很多人以为"沉淀知识"就是把文件拷进 wiki 目录。不是。Karpathy 那句话点得很透:wiki 是一个持续复利的产物,每摄入一份材料,就让它更丰富一点。

所以 ingest 是三个动作:读懂 → 提炼 → 把要点编织进已有的条目网络。判断一条信息要不要留,就一个标准:

下一个人、下一个任务,会来查它吗?

会查的留,不会查的丢。我们那次从退款 PRD 里,留下了这 4 类、丢掉了一堆:

提炼出的条目类目丢掉的东西
退款审批关键术语业务术语埋点事件清单
订单退款自动审批放行规则业务规则UI 色带、原型链接
订单退款审批流程业务流程评审人名单
风控名单接口降级规则异常规则灰度放量节奏

留下的是「规则、流程、术语、异常兜底」——三个月后真会有人来查的;丢掉的是界面细节和过程信息——查它的概率约等于零。

而且它们不是 4 个孤岛。每条都用 related 和 [[双链]] 互相引用:规则 ↔ 流程 ↔ 降级 ↔ 术语。知识要成网,不成岛——这样 AI 检索时能顺着链子把相关的一并捞出来。

比如那条"业务规则",提炼后长这样(注意 sources 回指了 raw 的具体章节,可追溯):

---
title: 订单退款自动审批放行规则
category: 业务规则
sources: [raw/prd/20260701-交易-订单退款自动审批.md]
related: [wiki/退款审批-业务术语.md, wiki/风控名单接口降级规则.md]
status: active
---
## 结论 / 定义
金额  阈值(默认 200 元)  用户不在风险名单  订单已签收  自动通过;
任一不满足即转人工。

一句话结论 + 可追溯来源,AI 一眼就知道该不该点进去、点进去能信。

那道最关键的闸:contributions 评审

这是我给 Karpathy 原版加的唯一一处改动,也是我认为最重要的一处:AI 不许自审自批。

流程是这样的:AI 干所有脏活——读源、提炼、起草,把草稿全写进 contributions/。然后它必须停下来,把草稿清单摆到你面前,请你逐条裁决:通过 / 修改 / 退回。只有你点头的,才晋升进 wiki/

为什么这么设计?因为起草的是 AI,把关的必须是人。要是 AI 自己写自己批,这道闸就形同虚设,知识库迟早变成一个塞满 AI 幻觉的垃圾场。wiki 是提炼层,不是垃圾桶——这是知识库的铁律。

我们那次,AI 起草了 4 条,停下来问我。我说「都通过」,它才走下一步。

晋升那一下,一次动了 6 个文件

我点头之后,它做了一套连贯动作(这也印证了 Karpathy 说的"一次 ingest 常常触及多个文件"):

raw/prd/…订单退款自动审批.md    (只读源,全程没动它一个字)
wiki/ ← 新增 4 条,status: draft → active
catalog.md  ← 4 条登记到对应类目(单一事实源:wiki 有的,这里必须有)
log.md      ← 追加一行 ingest 记录(append-only)
contributions/ ← 清空(草稿全部晋升)

catalog.md 里那条登记长这样,一句话摘要让人和 AI 都能秒判断:

## 业务规则[订单退款自动审批放行规则](wiki/订单退款自动审批放行规则.md) — 金额≤200 且 非风险名单 且 已签收 → 自动通过,否则转人工 · active · 2026-07-01

跑完我做了一次一致性校验:catalog 登记 4 条 = wiki 文件 4 个,每条都有 sources 回指 raw。闭环干净。


为什么是两个 skill,而不是一个

有人会问:干嘛不一步到位,PRD 生成完直接写进 wiki?

因为职责边界raw 是只读的原始材料层,wiki 是提炼后的合成层,中间隔着一道人工评审闸。PRD 是原始材料,天然属于 raw/prd/;它要不要、以什么形态进 wiki,是另一个决策,得过评审。

所以 prd-generator 故意止步于 raw/prd/ ,绝不越过 contributions/ 直接写 wiki。这不是偷懒,是纪律。两个 skill 各司其职,接缝就是那个 raw/prd/ 文件——上一个的终点,下一个的起点,清清爽爽。


几个我踩过或差点踩的坑

  • • GWT 不能留空。  图省事把验收标准写成"功能正常工作",等于没写,下游测试恨死你。宁可功能少写一个,也别让 F-xx 没有 AC。
  • • 稳定 ID 别断链。  场景引用了一个没在 §3 声明的角色,或者功能没挂任何场景——第 6 步的校验会抓,但最好写的时候就别断。
  • • raw 只读,是真的只读。  提炼时只读它、引用它,绝不回头改它。原始材料一旦可改,可追溯性就崩了。
  • • 别让 AI 自审自批。  这条我再强调一遍。contributions 那道闸是知识库质量的命根子。
  • • 别拿脏数据喂真库。  我上面这个案例是空跑演示,用的是假 BRD。演示完那几个文件我是要清掉的——知识库里只留真需求提炼出的真知识。

最后

这套东西跑顺之后,我最大的感受是:需求不再"写完就死"了。

一份 BRD,经 prd-generator 变成带稳定 ID、带 GWT、能追溯的 PRD,落进 raw/prd/;再经 wiki-ingest 提炼成术语、规则、流程、异常四类知识,进 wiki/、登 catalog。之后新同事的疑问、AI 的检索、下游的架构和测试,全都有一个可信的、会持续变丰富的源头去查。

配套:检索知识用 wiki-query,定期给知识库做体检和减法用 wiki-lint。Ingest / Query / Lint 三件套,才是完整的闭环。