Chapter 3: 第一周 — 从需求到评估集到 SOW

3.1 第一周的形状:观察 > 提问

fde-book 第二部分(客户发现)的核心一句:Discovery 阶段,观察 > 提问。 客户嘴上说的需求和他实际工作流里的需求经常对不上。你第一周最该做的不是开需求会问”你们想要什么”,而是看他们现在怎么干活——看客服怎么处理工单、看客户经理怎么找条款、看一份报表怎么从 5 个系统里拼出来。

这对应第一章的判断:第一周连不上一个 Outcome 数字,说明你在 Discovery,不该写代码。

危险信号:客户说”我们想要 AI 驱动的全公司知识库”。宽泛目标永远做不出。回话要把它收窄成一个具体 Outcome:”是新员工上手从 30 天降到 15 天,还是客服解决率 65%→80%?先选一个做一版。”

3.2 需求 → 评估集 → SOW 的链条

fde-book 把第一周的产出串成一条链:

观察客户工作流  →  定 1 个 Outcome 数字  →  建评估集 v0(验收的量化形式)
                                              ↓
                                       SOW(把过线分写进合同)

关键洞察:评估集就是验收标准的可执行形式,SOW 里的过线分就是评估集上的阈值。 这三样不是三件独立的事,是同一个”我们要达成什么、怎么算达成”的三种表述。

3.3 评估集 v0 冷启动(4 步,第一周内跑完)

这是 fde-book 给的、本书直接沿用的流程:

  1. 从客户已有数据抽 10 条真实样本——客服工单、历史问答、客户经理常用查询。客户连 10 条都给不出 → 他还在 Discovery。
  2. 自己写 10 条刁难样本——口语化、缩写、错别字、长句、需多步推理、答案是”我不知道”的(系统在这种样本上幻觉最严重)。
  3. 让客户业务方看分布挑刺——这是关键一步。客户会说”这不是我们典型场景”或”你漏了 X 类”。让他挑。
  4. 按客户挑刺方向再加 10 条——这 10 条是客户认账的代表性样本。

到这里 30 条,第一周内完成。核心价值不是数量,是让客户参与样本选择——交付时他不会反咬”评估集本身不对”。

一个最小评估集(保险条款问答示例,jsonl):

{"input":"重疾险等待期一般是多少?","expected_keywords":["90","180","等待期"],"min_score":0.8}
{"input":"我去年体检发现甲状腺结节,现在能投保吗?","expected_keywords":["核保","告知","结节"],"min_score":0.7}
{"input":"被保人犹豫期内退保能退多少?","expected_keywords":["全额","犹豫期"],"min_score":0.9}

跑分两层:机器自动跑关键词召回(30 秒出分),业务专家每周抽 10 条人工打分。机器分管”这次改动有没有搞砸存量”,人工分管”离客户真正满意还差多远”。

3.4 落到 Copilot 上(HOW)

第一周你还没搭完整 harness,但可以用 Copilot 加速这条链的产出:

① 用 Copilot Ask 模式做工作流分析(来自 workshop Lab1 的 Phase 1)。 拿到客户代码库/数据后,第一个 prompt 不是写代码,是理解:

我要给这个客服系统加一个工单分诊能力。开始前帮我理解:
1. 当前的数据模型和 API 表面是什么?
2. 现有的工单处理流程是怎样的?
3. 一个分诊能力可能有哪些边角 case?

② 用 Copilot 把刁难样本批量生成。 第 2 步”自己写 10 条刁难样本”可以让 Copilot 起草:

基于这 10 条真实工单样本,帮我生成 10 条"刁难"测试样本:
口语化表述、含缩写错别字、需多步推理、以及答案应该是"无法判断需转人工"的 case。
输出为 jsonl,每条带 expected_keywords 和 min_score。

注意:Copilot 起草,你和客户审定。生成的样本是草稿,客户挑刺那一步(第 3 步)不能省。

③ 评估集进仓库,第一周就建目录。 哪怕只有 30 条,也立刻 evals/<domain>_v0.jsonl commit 进去——这是后面 Rule 层过线分、CI 评估门的锚点。

④ SOW 过线分回写 Rule 层。 SOW 一旦和客户确认过线分(比如 min_score ≥ 0.85),立刻把这个数字写进 .github/copilot-instructions.md(见 Ch2 的模板)。合同里的数字和仓库里的数字必须是同一个。


落到 Copilot 上 · 本章工件清单

  • evals/<domain>_v0.jsonl — 30 条评估集(客户参与挑选)
  • Copilot Ask 模式的工作流分析记录(存进 docs/discovery.md
  • SOW 里的过线分 = 评估集 min_score 阈值(双向一致)

下一章把”评估”从一次性产出,变成贯穿开发的肌肉记忆。


← 上一章:三条铁律 · 下一章:先 Eval 再开发 →