把 PM 脑子里的项目记忆变成团队共享的、结构化的、AI 也能用的活文档—— 一套 5 层文档架构 + MEMORY 驱动系统,让任何人、任何 AI 都能独立点状推进。
我们花了大半天时间,把 Hi Tutor 2.0 的 PRD 协作体系重新做了一遍。一句话总结:
把"PM 个人脑子里的项目记忆"变成"团队共享的、结构化的、AI 也能用的活文档"——为了让产研协作从"线性传递"升级到"任何人 / 任何 AI 都能独立点状推进"。
最终交付物:
你可以从这份文档跳到任何一份 L1 总纲读细节,但读完这一份就能讲清楚"我们怎么做事、为什么这么做"。
写到第 8 份 PRD 的时候,我们发现几个问题:
问题 1:信息漂移
推荐策略 PRD 改了挡位命名(轻松 / 标准 / 深度),但 账户系统 PRD 还用着旧命名(高强度 / 中等 / 轻松)。同一个东西在两份文档里叫法不一样——研发拿到不同 PRD 时一头雾水,要回头问 PM"到底哪个是对的?"。
问题 2:PM 是知识瓶颈
每份 PRD 都依赖"PM 脑子里的隐性共识"——比如"弱网时 AI 怎么降级"这种规则,在数轴 PRD 里说一遍、在日常练习 PRD 里又说一遍、Novi 框架里再说一遍。规则散落各处,研发问"这个降级方案是不是有项目级的统一标准?"——答案是"问 PM"。
问题 3:AI 协作低效
我们越来越多用 AI 写 PRD。但 AI 每次开新会话都不知道"这个项目的铁律是什么、规则在哪查、写过哪些反面案例",每次都要从头讲一遍上下文,效率低、还容易出错。
问题 4:新人上手陡峭
新来的同事翻 8 份散落 PRD,看不出哪些是项目级硬规则、哪些是模块共享决定、哪些是单功能局部规则。所有信息都在同一层,没有结构。
这是我们做这套体系背后的一个判断。
PM 写 PRD → 设计画稿 → 研发开发 → 测试验证 → 发布 ↓ ↓ ↓ ↓ ↓ 信息只往一个方向流动;任何一环卡住整条链停止
┌─── 共享上下文(L1 + L2)───┐
PM ──┤ ├── 设计
AI ──┤ ├── 研发
测试──┤ ├── 运营
└──────────────────────────────┘
大白话:从前是"问 PM",现在是"问文档 + 问 AI"。PM 从"信息中转站"解放出来去做更有价值的事。
要让点式协作真的跑起来,项目记忆必须满足:
我们今天做的所有事,本质都是在为这 4 件事建基础设施。
问题:同一条规则在 5 个地方写过,改一处其他四处不同步。
做法:每条规则只在一份文档的一个章节里展开,其他地方都是"指针"指向它。
举例:
好处:未来任何规则演进,只改 1 份文档;所有依赖它的下游自动跟随。
问题:写 5 份组件 PRD,每份都要重复说一遍"组件和题目页面之间的协作机制"。
做法:把"多份 PRD 共享的决定"抽到 L2 模块中心——每个模块一份背景说明,所有该模块下的 PRD 都读它、引用它,不在每份 PRD 里反复抄。
举例:「首页与学习计划」L2 写:拓展 Event 总数封顶规则、必须联网+登录的边界、Daily Load 的计入逻辑。日常练习 Event PRD、单词卡 PRD、听力 PRD 都引用这份 L2,不重复写。
好处:L2 是"项目的活记忆"——某个模块的所有共识集中在一处;PRD 数量增加时不会信息爆炸。
问题:传统的 PRD 单向"读 L2 → 写完交付"——L2 永远是 PM 一开始定的版本,会随时间腐烂。
做法:PRD 写作过程中主动回填 L2——发现新决定 / 新待决项 / 新术语就停下问 PM 是否回写到 L2。
┌─── 写之前:读 L2(拿共识) PRD ─┤ └─── 写之中 / 之后:发现新决定 → 回写 L2(贡献共识)
好处:L2 持续生长,不会腐烂;PRD 是 L2 的"接收方"也是"贡献方"。
问题:写 PRD 时 AI 经常忘了跑边界检查、忘了同步关联 PRD——除非用户每次都手动提醒。
做法:通过 MEMORY 触发器系统让 AI 在特定场景下自动想起该跑什么动作。
AI 写 PRD →(场景出现)→ MEMORY 触发器激活 → 提醒去翻 L1 → 按规则跑动作
示例:写到一段拗口的话时...
"组件具备权限维度和身份维度..."
↓
MEMORY: feedback_prd_avoid_ai_style 激活
↓
"避免抽象词清单见风格手册 §3.2"
↓
AI 去翻风格手册 → 改写成:
"组件每种对象有两个属性:能不能被学生操作 / 是谁画上去的"
每条 feedback 触发器都很短(5~10 行),只保留触发条件、L1 指针、反面案例、应用方式。具体规则细节全部在 L1 里,MEMORY 不重复展开——这样未来改 L1 时不用同步改 MEMORY。
好处:AI 从"被动工具"变成"主动协作者",不再依赖用户每次提醒。
┌─────────────────────────────────────────────┐
│ L0 项目宪法(CLAUDE.md) │
│ • 项目身份 + MVP 范围 │
│ • 三大铁律标题 │
│ • 4 份 L1 索引 │
│ • 文档分层说明 │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ L1 项目级共享规则(4 份总纲) │
│ • 自检与边界规则总纲 │
│ • 协作与文档体系机制 │
│ • PRD 章节骨架与模板套装 │
│ • PRD 写作风格手册 │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ L2 模块中心(一个模块一份) │
│ • 首页与学习计划_背景说明 │
│ • 组件库_背景说明(待建) │
│ • Novi 对话_背景说明(待建) │
│ • 账户系统_背景说明(待建) │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ L3 局部规格(每个功能一份 PRD) │
│ • 数轴组件 PRD / 坐标轴组件 PRD ... │
│ • 日常练习 Event PRD │
│ • Novi 对话交互框架 PRD │
│ • 账户系统数据结构 PRD │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ L4 形态产物(实现层) │
│ • design-ref/ 设计稿、原型 │
│ • 代码 │
└─────────────────────────────────────────────┘
| 层 | 职责 | 主所有权 | 变更频率 |
|---|---|---|---|
| L0项目宪法 | 项目身份、MVP 范围、铁律标题、L1 索引 | PM | 极低(季度级) |
| L1共享规则 | 自检 / 协作 / 骨架 / 风格 4 类规则 | PM | 低(月级) |
| L2模块中心 | 该模块的跨 PRD 共享决定 | PM + 三方共编辑 | 中(随 PRD 演进) |
| L3局部规格 | 单功能完整规则 + 边界 | PM + 三方共编辑 | 高(每个功能一份) |
| L4实现产物 | 设计稿 / 代码 | 各自 owner | 持续 |
L1 的核心思想:按场景分工,每份只管一件事,不重叠。
| 总纲 | 管什么 | 什么时候翻 |
|---|---|---|
| 自检与边界规则总纲 | 三大铁律必答问题、边界检查五件套、通用场景行为标准、25 条异常候选库 | 写到铁律自检 / 异常清单时 |
| 协作与文档体系机制 | 文档分层细则、L2/L3 联动 5 步节奏、跨 PRD 同步、审计 | 涉及 L2 / 其他 PRD 关系时 |
| PRD 章节骨架与模板套装 | 2 种骨架(通用 / 组件类)、单 PRD 写作步骤、命名规则 | 开新 PRD 第一步选模板时 |
| PRD 写作风格手册 | 写作原则、可视化、去 AI 味 6 条、5 个反面案例对照 | 写每段话时、Review 时 |
为什么是 4 份不是 1 份? 合一份会变成"巨型规范文档",500+ 行没人想读。分 4 份后每份 200~300 行,按场景查阅——风格问题翻风格手册、自检问题翻自检总纲——查找成本最低。
每个模块对应一份 L2,存放在 eduprd/docs/module-hubs/。
L2 里写什么:
L2 不写什么:单功能的具体规则(这是 L3 PRD 的事);跨模块的项目级规则(这是 L1 的事)。
| 骨架 | 适用 | 模板文件 |
|---|---|---|
| 通用版 | 多个小需求合一的版本 / 迭代型 PRD | templates/Hi Tutor 2.0_PRD模板(通用版).md |
| 组件类(6 章) | 教学组件(数轴 / 坐标轴 / 写作组件等) | 参考数轴 PRD v1.1 |
关键约束:每份 PRD 必须自包含;唯一允许的引用是 L1 总纲 + 所属模块 L2;不允许 L3 之间互相引用。
MEMORY 是 AI 的持久记忆系统。每次开新会话,CLAUDE.md + MEMORY 索引会自动加载到 AI 的上下文。
MEMORY 里有什么(共 24 条):
feedback 触发器的作用机制: AI 写 PRD →(场景出现)→ MEMORY 触发器激活 → 提醒去翻 L1 → 按规则跑动作 每条触发器只保留: • 触发条件(什么时候激活) • 指针(指向哪份 L1 哪一节) • Why(历史反面案例,防止 AI 不当回事) • How to apply(一句话怎么用) 规则细节全部在 L1 里,MEMORY 不重复展开。
Hi Tutor 2.0/ ← 项目根目录
│
├── CLAUDE.md ← L0 项目宪法
│
└── eduprd/
├── docs/
│ ├── shared-rules/ ← L1 项目级共享规则(4 份)
│ │ ├── Hi Tutor 2.0_自检与边界规则总纲.md
│ │ ├── Hi Tutor 2.0_协作与文档体系机制.md
│ │ ├── Hi Tutor 2.0_PRD章节骨架与模板套装.md
│ │ └── Hi Tutor 2.0_PRD写作风格手册.md
│ │
│ ├── module-hubs/ ← L2 模块中心
│ │ └── Hi Tutor 2.0_首页与学习计划_背景说明.md
│ │
│ ├── prds/ ← L3 PRD(按模块二级分组)
│ │ ├── home-and-study-plan/ (首页与学习计划)
│ │ │ ├── Hi Tutor 2.0_日常练习Event_PRD.md
│ │ │ └── Hi Tutor 2.0_每日学习推荐策略_PRD.md
│ │ ├── components/ (组件库)
│ │ │ ├── Hi Tutor 2.0_数轴组件_PRD.md
│ │ │ ├── Hi Tutor 2.0_坐标轴组件_PRD.md
│ │ │ ├── Hi Tutor 2.0_写作组件_PRD.md
│ │ │ └── Hi Tutor 2.0_英文写作组件_PRD.md
│ │ ├── novi-chat/ (Novi 对话)
│ │ │ └── Hi Tutor 2.0_Novi对话交互框架_PRD.md
│ │ ├── account-system/ (账户系统)
│ │ │ └── Hi Tutor 2.0_账户系统数据结构_PRD.md
│ │ └── unclassified/ (还没确定模块归属的 PRD)
│ │
│ ├── templates/ ← PRD 模板套装
│ │ └── Hi Tutor 2.0_PRD模板(通用版).md
│ │
│ ├── references/ ← 项目级参考资料
│ │ └── Hi Tutor 2.0_组件事件模板优先级.md
│ │
│ └── Hi Tutor 2.0_产研协作体系说明.md ← 本文档
│
└── design-ref/ ← L4 设计稿、原型
Hi Tutor 2.0_<需求名>_PRD.mdHi Tutor 2.0_<模块名>_背景说明.mdHi Tutor 2.0_<规则类>.mdeduprd/docs/prds/<模块>/;模块未定时存 unclassified/eduprd/docs/module-hubs/eduprd/docs/shared-rules/,原地改Step 1:识别归属模块、读 L2
Step 2:先列 MVP 候选清单(新组件 / 新模块必做)
写新组件 / 新模块 PRD 前,不要凭直觉划分 MVP。先列一份候选功能清单主动问 PM:每条标"MVP 内 / MVP 外 / 待议"。
反面案例:数轴 PRD v0.2 把"并集高亮"自作主张放到了二期,PM 反馈"这功能还是要的,你好像之前没问过 MVP 范围?"——AI 凭"教学重要性"排序砍功能,会错判用户真实优先级。
Step 3:先讨论再落笔
不要拿到需求就埋头写完整 PRD。先用以下两种方式之一:关键决策点列举、或苏格拉底式追问。
每写一节,按这个顺序跑:
决策时序(写之中的关键判断):
| 情况 | 怎么处理 | 时机 |
|---|---|---|
| 触发新决定 / 新待决项 | 即时停,问 PM 是否回写 L2 | 写之中 |
| 与 L2 已有规则冲突 | 即时停,问 PM 是更新 L2 还是 PRD 破例 | 写之中 |
| 关联其他 L3 PRD | 不打断写作流,攒到写之后统一处理 | 写之后 |
Step 1:PRD 内部完整性自检
任何一项没过 → 回写之中补,不带空白交付。
Step 2:列两份外部清单
Step 3:PM 一次性拍板
PM 拍板内部自检结果 + 两份外部清单后,PRD 完成。
| 文档 / 层级 | 激活机制 | 在流程中的具体作用 |
|---|---|---|
| L0CLAUDE.md | 会话开始自动加载到 AI 系统提示,全程背景 | 让 AI 一开始就知道"项目身份、铁律、4 份总纲在哪" |
| MEMORY 索引 | 会话开始自动加载,全程背景 | 给 AI 一份"触发器索引"——遇到具体场景时知道想起哪条规则 |
| MEMORY feedback | 写作中按场景被想起(高频触发) | 提醒"该不该加大白话总结?该不该跑边界检查?这词是不是抽象黑话?" |
| L1自检与边界 | 写之中激活:每节自检 + 异常处写透 | 提供具体的"必答问题清单"和"五件套方法" |
| L1协作体系机制 | 写之前 / 写之中 / 写之后三个时机 | 提供"什么时候停下问 PM、怎么回写 L2、怎么跨 PRD 同步" |
| L1章节骨架套装 | 写之前激活 | 提供"用哪个骨架、怎么组织章节、命名什么、文件存哪" |
| L1写作风格手册 | 写之中高频激活 | 提供"怎么写得不像 AI、怎么配例题" |
| L2模块中心 | 写之前被读、写之中被引用、写之后被回写 | 模块共享决定的"项目活记忆" |
| L3既有 PRD | 写之后作为跨 PRD 同步检查对象 | 提供"还有哪些 PRD 共享我改的概念" |
| L4实现层 | PRD 交付之后驱动 | PRD 是上游,L4 是下游消费方 |
对 PM:出 PRD 不再"开盲盒"——有标准模板和清晰流程;不再"重复回答同一个问题"——共享规则在 L1 / L2,研发自己能查;写 PRD 的质量更稳定——4 份 L1 总纲 + MEMORY 触发器自动兜底。
对研发 / 设计:拿到 PRD 后不用反复来回问——PRD 自包含;项目级硬约束(弱网 / 多孩 / 平板)有统一标准,不再每个 PRD 重新解释。
对 AI 协作:AI 写 PRD 时主动按规则跑;AI 出错的概率显著下降——MEMORY 触发器 + L1 总纲两道兜底。
信息漂移大幅减少:同一个概念在多份 PRD 里自动保持一致——共享规则在 L2 / L1,PRD 引用而不重复;改一处规则自动传导到所有引用它的 PRD(理论上)。
新人上手时间缩短:新同事按"L0 → L1 → 选感兴趣的 L2 → 翻对应 L3"四步就能建立项目认知;不用再"读 50 份 PRD 才看出哪些是项目级规则"。
跨工种协作顺畅:设计师可以独立读 PRD;测试可以独立从 PRD 推导测试点;运营可以独立看 PRD 知道哪些是 Coming soon。
项目记忆持续生长不腐烂:L2 模块中心是"活的"——每份新 PRD 都向它回填决定;一年后 L2 是承载了一年项目演进的共识库。
支持团队规模化扩张:从 1 个 PM 到 3 个 PM:靠 L2 共享上下文不会各做各的;从 5 份 PRD 到 50 份 PRD:靠分层结构不会变成信息泥潭。
为 AI 时代的产研协作打底:当 AI 越来越能独立完成局部任务,本套体系直接为 AI 提供了"可消费的项目上下文",AI 写新 PRD 时直接读 L0 + L1 + L2 就能上手。
这套体系越用越值钱——
反过来,如果不做这件事:PRD 数量越多越乱;PM 离职后项目记忆瞬间崩塌;AI 协作永远停留在"工具"层级,无法升级为"协作者"。
对 PM:
对设计 / 研发 / 测试:
对所有人:所有 PRD / L1 / L2 都在 eduprd/docs/ 下分子目录管理;文档命名规则统一遵守;不在文档里堆砌技术黑话和抽象词(详见风格手册 §3)。
shared-rules/| 情况 | 怎么处理 |
|---|---|
| 发现新的反面案例 | 加到《PRD 写作风格手册》§4「反面案例对照」 |
| 发现新的常见异常场景 | 加到《自检与边界规则总纲》§4「异常场景候选库」 |
| 跨多份 PRD 共享的新决定 | 加到所属 L2 模块中心;如果是项目级,加到 L1 共享规则 |
| 通用版 / 组件类骨架不够用 | 停下来和 PM 讨论是否补一种新骨架——不要硬塞 |
| PRD 模板本身需要改 | 改 templates/Hi Tutor 2.0_PRD模板(通用版).md,同步更新骨架手册 §3.1 |
| 待补 | 触发条件 | 预估工作量 |
|---|---|---|
| 组件库 L2 模块中心 | 写第 5 份组件 PRD 时 | 半天 |
| Novi 对话 L2 模块中心 | 写下一份 Novi 相关 PRD 时 | 半天 |
| 账户系统 L2 模块中心 | 写下一份账户相关 PRD 时 | 半天 |
| Event 流程类 PRD 骨架 | 写第 2 份 Event PRD 时 | 1 天 |
| 框架类 PRD 骨架 | 写第 2 份框架类 PRD 时 | 1 天 |
| PRD 评审 / 修订流程 | 团队规模扩到需要正式评审环节时 | 1 天 |
| PRD 增量演进流程(v1.0 → v2.0) | 第一次需要修订既有 PRD 时 | 半天 |
短期:用新模板试写 1~2 份 PRD,看哪些地方不顺手再迭代;收集团队成员使用反馈,补到 L1 反面案例。
中期:把 L2 模块中心补全到 4 个核心模块;看 MEMORY 是否还能再瘦(现在 24 条,理想是 15 条以内)。
长期:探索"AI 自动审计 L2 与 L3 的漂移"——每周自动跑一次报告;探索"AI 主动建议 L2 应回填什么"——AI 看完 PRD 后主动列建议清单。
| 术语 | 定义 |
|---|---|
| L0项目宪法 | CLAUDE.md,项目级最高指针 |
| L1共享规则 | 4 份总纲,跨 PRD 共享的项目级规则 |
| L2模块中心 | 一个模块对应一份背景说明,存模块共享决定 |
| L3PRD | 局部规格,每个功能一份 |
| L4形态产物 | 设计稿 / 代码 / 原型 |
| MEMORY | AI 持久记忆系统(feedback 触发器 + reference 指针) |
| 三大铁律 | 弱网 / 多孩家庭跨设备 / 中低端平板 |
| 边界检查五件套 | 入口×状态矩阵 / 三个"如果不" / 旅程走查 / 角色切换 / 清单确认 |
| 异常四要素 | 触发条件 / 学生看到什么 / 系统行为 / 退出方式 |
| 单一信息源 | 每条规则只在一处展开,其他地方都是指针 |
| 链式协作 | 传统产研流程:PM → 设计 → 研发 → 测试 → 发布,单向流动 |
| 点式协作 | AI 时代模式:每个角色 / AI 都能独立点状激活上下文,独立推进 |
| 场景 | 翻哪份 |
|---|---|
| 开新 PRD 不知道用什么模板 | 《PRD 章节骨架与模板套装》§2 |
| 写到一段感觉拗口 / AI 味重 | 《PRD 写作风格手册》§3 去 AI 味 6 条 |
| 写到弱网 / 多孩 / 平板相关规则 | 《自检与边界规则总纲》§3 通用场景行为标准 |
| 不知道某场景的异常该怎么写 | 《自检与边界规则总纲》§4 异常候选库 |
| 跑章节边界检查 | 《自检与边界规则总纲》§2.1 |
| 写降级 / 异常分支怎么写透 | 《自检与边界规则总纲》§2.2 |
| 想知道 PRD 怎么和 L2 联动 | 《协作与文档体系机制》§2 |
| 想知道跨 PRD 怎么同步 | 《协作与文档体系机制》§3 |
| 想知道 AI 该自动跑哪些动作 | 《协作与文档体系机制》§5 |
2026-04-28
eduprd/docs/ 平铺改为按 L1/L2/L3 分子目录Hi Tutor 2.0_ 前缀——便于单独分发时识别写 PRD 不再是 PM 的孤独战斗,而是项目共享记忆持续生长的过程。
每一份 PRD 都吃 L2 的输入、贡献新的 L2 共识;每一次冲突都触发体系自我修正;每一个反面案例都成为下一次的预防针。
我们今天搭的不只是一套 PRD 流程,而是一个能跟着项目长大的协作体系。