AI 版可汗学院 — EARS 需求规格(给 AI / auto-dev 执行)
把 PRD.md 的 Must 功能需求(FR-1 ~ FR-10)形式化为可测试的 EARS 验收标准。可直接作为下游 auto-dev 的 PRD 输入。 书写规范见
~/.claude/skills/requirement-discovery/references/ears-syntax-guide.md。每条只描述一个行为,用 SHALL;优先 Event-driven(WHEN)与 Unwanted(IF-THEN)。 每条编号EARS-x.y,标注追溯到的 FR 与 场景。术语:System = 平台;知识原子 = 带唯一节点 ID 的细粒度知识点;掌握判定 = 达到掌握度阈值。
概述
本规格覆盖 v1 数学一条主线(一元一次方程 → 二元一次方程组)的完整闭环:诊断起点、生成式交互(含降级)、护栏式解题(不给答案)、自动验答、掌握判定与解锁、费曼出口、喜好定制(连接库优先/回退)、家长仪表盘(鼓励式/只读/隐私)、传统兜底路径。
EARS 模式标记:U=Ubiquitous|WHEN=Event-driven|WHILE=State-driven|IF/THEN=Unwanted|WHERE=Optional。
需求 1:知识图谱与掌握式进阶 [Must Have]
追溯:FR-1 | 场景 A、E 用户故事:作为自学的孩子,我想要平台按知识原子组织内容并在我学会后才解锁下一步,以便我不夹生地往后冲、每步都建立在真正学会之上。
- EARS-1.1(U)THE SYSTEM SHALL 为数学主线的每个知识原子分配唯一节点 ID,并存储其前置依赖、年级、难度、课标对齐元数据。
- EARS-1.2(U)THE SYSTEM SHALL 为每个知识原子维护"已掌握 / 进行中 / 未开始"三态之一。
- EARS-1.3(IF/THEN)IF 某知识原子的前置依赖原子尚未达成掌握判定,THEN THE SYSTEM SHALL 锁定该原子、不允许孩子进入。
- EARS-1.4(WHEN)WHEN 孩子在某知识原子达成掌握判定,THE SYSTEM SHALL 解锁其后继原子。
需求 2:诊断式起点 [Must Have]
追溯:FR-2 | 场景 A 用户故事:作为第一次打开平台的孩子,我想要快速定位我的知识漏洞,以便直接跳到真正需要补的地方,而不是从年级头开始灌。
- EARS-2.1(WHEN)WHEN 孩子首次进入数学主线,THE SYSTEM SHALL 发起一组自适应诊断题,并根据每题作答动态调整后续题目难度。
- EARS-2.2(WHEN)WHEN 诊断完成,THE SYSTEM SHALL 输出起点地图,标明已掌握的知识原子、薄弱的知识原子与建议起点原子。
- EARS-2.3(IF/THEN)IF 检测到孩子异常作答(如疑似乱答/瞎点),THEN THE SYSTEM SHALL 不据此给出起点,而是回退到该主线的稳妥起点原子。
- EARS-2.4(IF/THEN)IF 孩子在诊断中途退出,THEN THE SYSTEM SHALL 保存诊断进度,并在下次回来时从断点继续接上。
需求 3:AI 生成式高交互内容(核心心脏,含降级)[Must Have]
追溯:FR-3 | 场景 B 用户故事:作为容易看视频走神的孩子,我想要 AI 当场为我生成可动手交互的讲解,以便我在交互中建立直觉、更投入更易懂。
- EARS-3.1(WHEN)WHEN 孩子进入某知识原子的学习,THE SYSTEM SHALL 实时生成针对该原子的可交互内容(可拖拽模拟/小游戏式讲解)。
- EARS-3.2(IF/THEN)IF 某知识原子已有缓存或预生成的交互内容,THEN THE SYSTEM SHALL 优先复用该内容而非重新生成。
- EARS-3.3(IF/THEN)IF 实时生成失败或超时,THEN THE SYSTEM SHALL 优雅降级到该知识原子的标准化兜底内容(见需求 9),不得呈现白屏。
- EARS-3.4(IF/THEN)IF 生成的数学内容未通过自动验答(见需求 5),THEN THE SYSTEM SHALL 不将该内容呈现给孩子。
需求 4:护栏式解题流(AI 永不直接给答案)[Must Have]
追溯:FR-7 | 场景 D(贯穿 B/E/G)| 决策 D-1(架构级护栏) 用户故事:作为做题卡住的孩子,我想要 AI 引导我自己想出来而不是直接给答案,以便我真正掌握方法而非抄到一个答案。
- EARS-4.1(U)THE SYSTEM SHALL 在任何辅导交互中都不直接向孩子给出最终答案。
- EARS-4.2(WHEN)WHEN 孩子的解答出错,THE SYSTEM SHALL 先分析错误所在,再给出不揭底的方向性提示,并要求孩子再试。
- EARS-4.3(WHEN)WHEN 孩子再试后仍未解出,THE SYSTEM SHALL 以苏格拉底式追问继续引导。
- EARS-4.4(WHEN)WHEN 孩子在多轮引导后仍卡死,THE SYSTEM SHALL 将问题兜底拆解为更小步骤,但仍要求孩子自己完成每一步。
- EARS-4.5(IF/THEN)IF 孩子反复要求"直接给答案",THEN THE SYSTEM SHALL 坚持引导式回应、不妥协给出答案。
- EARS-4.6(IF/THEN)IF 存在任何功能开关或配置试图绕过 EARS-4.1,THEN THE SYSTEM SHALL 拒绝生效(该护栏为架构级、不可被绕过)。
- EARS-4.7(IF/THEN)IF 苏格拉底追问轮次达到上限或检测到孩子受挫,THEN THE SYSTEM SHALL 触发退出条件,转入兜底步骤分解以调节节奏。
需求 5:数学内容自动验答 [Must Have]
追溯:FR-8 | 场景 B、D 用户故事:作为孩子(和家长),我想要 AI 给出的数学判断都被独立校验,以便我不会被 AI 算错的内容误导。
- EARS-5.1(WHEN)WHEN AI 产生任何数学判断、提示或对孩子解答的校验,THE SYSTEM SHALL 用符号计算引擎独立校验其数学正确性。
- EARS-5.2(IF/THEN)IF 自动验答结果与 AI 的判断不一致,THEN THE SYSTEM SHALL 以符号计算引擎的结果为准,并阻止错误内容呈现给孩子。
需求 6:掌握判定与解锁 [Must Have]
追溯:FR-1 配套、FR-6 交叉验证 | 场景 E、F 用户故事:作为孩子,我想要平台判断我是否真学会了再让我往下走,以便我不会夹生前进。
- EARS-6.1(WHEN)WHEN 孩子在某知识原子完成足量练习,THE SYSTEM SHALL 依据掌握度标准(如足量正确且不依赖提示独立完成)评估是否达成掌握判定。
- EARS-6.2(IF/THEN)IF 孩子在同一知识原子反复未达成掌握判定,THEN THE SYSTEM SHALL 更换讲法或更换一批题目,而非无限重复同一套内容。
- EARS-6.3(WHILE)WHILE 评估掌握判定,THE SYSTEM SHALL 结合费曼出口(需求 7)的结果交叉验证,以防孩子仅靠记答案刷过。
- EARS-6.4(WHEN)WHEN 孩子达成某知识原子的掌握判定,THE SYSTEM SHALL 记录该状态并解锁后继原子(与 EARS-1.4 一致)。
需求 7:费曼出口 [Must Have]
追溯:FR-6 | 场景 F 用户故事:作为自认为学会了的孩子,我想要用自己的话讲给 AI 听并被反问,以便暴露并弥合我理解上的漏洞。
- EARS-7.1(WHEN)WHEN 孩子进入费曼出口,THE SYSTEM SHALL 接收孩子用自己话讲述知识原子的文字输入。
- EARS-7.2(WHEN)WHEN 孩子的讲述存在含糊或缺口,THE SYSTEM SHALL 以"听不懂的同学"身份针对该处反问、追问。
- EARS-7.3(IF/THEN)IF 孩子讲述明显偏离主题,THEN THE SYSTEM SHALL 友善地将其引导回正轨、不打击积极性。
- EARS-7.4(U)THE SYSTEM SHALL 在 v1 仅支持文字输入的费曼出口(语音列入后续路线图)。
需求 8:喜好定制与兴趣-学科连接库 [Must Have]
追溯:FR-4、FR-10 | 场景 C | 决策 D-2(防牵强情境) 用户故事:作为有特定兴趣的孩子,我想要数学用我的世界来讲,以便觉得"这是讲给我的"、更投入——但前提是连接要靠谱不牵强。
- EARS-8.1(WHEN)WHEN 孩子首次进入,THE SYSTEM SHALL 询问其兴趣领域并记录为喜好定制偏好。
- EARS-8.2(WHEN)WHEN 生成喜好定制内容,THE SYSTEM SHALL 优先检索连接库中匹配该兴趣与该知识原子的 verified 连接并采用之。
- EARS-8.3(IF/THEN)IF 连接库中无匹配的 verified 连接,THEN THE SYSTEM SHALL 回退到中性、严谨的呈现,不得硬编牵强类比。
- EARS-8.4(IF/THEN)IF 一条候选连接未通过"语义一致性"质量门,THEN THE SYSTEM SHALL 将其标为 pending 而不入库 verified、不在运行时采用。
- EARS-8.5(WHERE)WHERE 孩子选择关闭或更换喜好定制,THE SYSTEM SHALL 即时切换呈现而不将其锁定在某主题中。
- EARS-8.6(U)THE SYSTEM SHALL 为每条连接存储 {兴趣领域, 知识原子节点 ID, 连接类型, 连接内容, 质量状态, 贡献者, 审核者, 适用年级} 全部字段。
需求 9:视频 + 题库标准化兜底路径 [Must Have]
追溯:FR-5 | 场景 G | 决策 D-3 用户故事:作为只想"看视频 + 做题"的孩子,我想要平台尊重这一选择,以便我按自己的节奏高效过完,不被产品形态绑架。
- EARS-9.1(U)THE SYSTEM SHALL 为每个知识原子提供标准化讲解视频与题库。
- EARS-9.2(WHEN)WHEN 孩子选择传统兜底路径,THE SYSTEM SHALL 提供该知识原子的视频 + 题库,而不强迫其进入生成式交互。
- EARS-9.3(WHILE)WHILE 孩子处于传统兜底路径,THE SYSTEM SHALL 持续应用护栏式解题(需求 4)与掌握判定(需求 6)。
需求 10:家长仪表盘(鼓励式问责)[Must Have]
追溯:FR-9 | 场景 I 用户故事:作为辅导不了初中数学的家长,我想要用说人话的方式看到孩子学到哪/有没有漏/在不在认真学/卡在哪,以便安心并能鼓励孩子——但不监控、不越界。
- EARS-10.1(WHEN)WHEN 家长打开仪表盘,THE SYSTEM SHALL 展示孩子在知识图谱上的位置(已掌握/进行中/未开始)、掌握度红黄绿热力图、本周学习时长与连续天数。
- EARS-10.2(WHEN)WHEN 每周周期到达,THE SYSTEM SHALL 自动生成自然语言 AI 周报摘要(本周学了什么 + 盲点 + 下一步建议),并通过微信/邮件主动推送给家长。
- EARS-10.3(WHEN)WHEN 家长发送一键鼓励,THE SYSTEM SHALL 将该鼓励推送给孩子。
- EARS-10.4(U)THE SYSTEM SHALL 将家长侧设为只读,不允许家长代替孩子操作学习。
- EARS-10.5(U)THE SYSTEM SHALL 默认呈现成长与亮点、弱化监视感,并以说人话方式表达、不堆术语。
- EARS-10.6(IF/THEN)IF 某项学习信息未在孩子知情/授权的可见范围内,THEN THE SYSTEM SHALL 不向家长展示该信息(尊重青春期自主性的隐私边界)。
成功指标
详见 PRD.md §6(双主指标,缺一不可)。EARS 层关键可验证指标:
- 掌握:完成主线的学生中达成掌握判定的比例;撤掉 AI 后迁移测试表现(对照 Bastani 期末考 -6.45% 风险。来源:https://hamsabastani.github.io/education_llm.pdf)。
- 留存/体验:次日留存、7 日留存、单次学习时长。
约束条件
- AI 永不直接给答案(EARS-4.1/4.6,架构级护栏,不可绕过)。
- 数学自动验答兜底(EARS-5.1/5.2)。
- 算力 token 成本本阶段不纳入考量,但生成内容支持缓存/预生成(EARS-3.2)。
- 内容只参考他人知识点/图谱/框架,不直接搬用;教学内容由共创老师原创。
- 学生侧只看经审核的稳定版(v1 由创始团队 + AI 铺设;共创审核流为路线图 FR-14)。
不在范围内
英语及其他学科(FR-11+)、共创平台(FR-14)、数字孪生/语音/众包(FR-15~18)、真人教练版本与 K-12 全科铺开(Out)。任务拆解交给下游 auto-dev,不在此文档展开。
可追溯性矩阵
| FR | 对应 EARS | 场景 |
|---|---|---|
| FR-1 知识图谱+掌握式进阶 | 1.1–1.4、6.4 | A、E |
| FR-2 诊断起点 | 2.1–2.4 | A |
| FR-3 生成式交互(含降级) | 3.1–3.4 | B |
| FR-4 喜好定制 | 8.1、8.5 | C |
| FR-5 传统兜底 | 9.1–9.3 | G |
| FR-6 费曼出口 | 7.1–7.4、6.3 | F |
| FR-7 护栏式解题 | 4.1–4.7 | D(贯穿 B/E/G) |
| FR-8 自动验答 | 5.1–5.2、3.4 | B、D |
| FR-9 家长仪表盘 | 10.1–10.6 | I |
| FR-10 兴趣-学科连接库 | 8.2–8.4、8.6 | C |
书写规范见 references/ears-syntax-guide.md。本规格自洽完整,可直接作为 auto-dev 输入。