价值放在认证之前
考虑过
内测码墙和整页登录,先拿到账号再给体验。
选择
/exam/ 静默创建 Guest。复用正式模考 UI,加载固定 12 道 CFA 单选。GET 不返回正确答案;POST 服务端确定性批改,不调 Grade Agent。
原因
用户要先看见批改,才会愿意留邮箱。开放游客会增加成本和滥用,所以 Gateway 只精确放行两条 guest-exam-demo 路径,32KiB、最多 12 题。账户型能力仍在注册后。

我把产品从内测码准入推向可走完的游客模考,再把题库做成模考与陪练共用的数据底座:真题用来考,锚点留在服务端,原题不回传。变式生成与质检内核由队友负责。
佛脚AI 把 PDF、视频、链接等学习材料,变成可对话、可测验、可追踪的学习闭环。我负责产品路线、优先级和反馈评审,并从产品设计、UI/UX、前端延伸到游客路径、题库表结构、陪练状态机与 GA4 使用信号。
65 秒中文演示,展示佛脚AI 从产品入口到核心学习体验的完整流程。英文版本将在后续补充。
功能清单说明产品有什么。决策说明为什么做成这样。下面三张生产截图是证据,不是装饰。
考虑过
内测码墙和整页登录,先拿到账号再给体验。
选择
/exam/ 静默创建 Guest。复用正式模考 UI,加载固定 12 道 CFA 单选。GET 不返回正确答案;POST 服务端确定性批改,不调 Grade Agent。
原因
用户要先看见批改,才会愿意留邮箱。开放游客会增加成本和滥用,所以 Gateway 只精确放行两条 guest-exam-demo 路径,32KiB、最多 12 题。账户型能力仍在注册后。

考虑过
把 FeaturePanel 做成摘要、思维导图、闪卡、测验的独立按钮墙。
选择
材料进 Content 状态机,产物作为 artifact 挂在同一 sessionId。阅读、提问、生成连续切换。
原因
功能数量增加会抬高认知负担。孤立按钮会让用户丢掉正在读的材料。

考虑过
演示 JSON 继续支撑模考,陪练直接讲真题,或复用举一反三接口。
选择
四表拆开卷和题;陪练独立域,不写模考错题表;createSession 不下发锚点;冻结三阶加 L1–L4。
原因
没有独立题目实体,就无法跨卷复用,也无法在不泄露原题的前提下练。变式生成与 Blind Solver / Judge 由队友负责。

一期不用 AI 动态出题、批改或计划。答题只在浏览器。Gateway 只精确放行 GET/POST /agent/guest-exam-demo。漏斗七步 fail-open,不编转化率。
01
进入 /exam/。URL 固定,没有 ?demo=1。
02
NewExamDashboard 静默创建 Guest。不渲染入口卡、错题集、最近考试、考试库。
03
复用 ExamImmersionStage。加载 guest_full_loop_12_v2 的 12 道 CFA 单选。
04
POST grade:32KiB、最多 12 题。确定性批改。失败回到答题页并保留答案,不得伪造成绩。
05
复用正式结果页。雷达来自本次真实批改。GET 从未返回过正确答案。
06
StudyPlanView 套 5 段固定模板,不触发 AI。
07
CTA 去现有 /auth?mode=register。不做设备指纹。
作为产品负责人 / 产品工程师,我负责产品路线、优先级、反馈评审与主要产品体验,并直接参与 UI/UX、前端、游客路径、题库表结构、陪练状态机及 GA4 使用信号。12 Agent 内部算法、Blind Solver / Judge、变式生成、多模态 RAG 和 AWS CDK 由其他成员负责。
上线后的早期数据证明,这不是停留在原型里的概念项目:用户已经进入落地页、学习工作台和模考等核心路径。
数据区间为 2026-06-07 至 2026-09-04。以上为 GA4 聚合使用信号,不代表增长率、留存率或转化提升;漏斗结论会在事件契约和内部流量清理完成后更新。
先有可运营的题目实体,模考和陪练才有资格共用同一套锚点
Quick 12 / Full 180 验证了模考体验,但一份演示 JSON 撑不起长期运营:题目无法跨卷复用,版本改了无法重放,陪练也没有合格真题可当锚点。所以先把题做成独立实体,卷只负责编排。
CFA Level I 约 16 卷 / 2600+ 题是导入与质检规模,不是我出的题。配图 hash 只看到 16 道复用,文本身份则报出 443 道跨卷复用,以及 2 道文相同、答案不同的源错误。
题目成为独立实体,卷退化成一组引用加编排信息。正确答案存文本不存选项字母,因为字母在跨卷去重时没有稳定含义。
考试库层级 · Category → Program → Track → 出题模版 → Card/Paper → Question + Scope。模版是生成规格,不是历史真题约束。按所选 track 取题,失败即停,不回落到全局题库。
转换停在规范 JSON,从不碰数据库。审计和预览默认只读;必须显式授权才写库、才发布。
转换器注册表覆盖规范 JSON、行测 PDF、CFA 配对 PDF、申论合订本。产物按转换器版本和源 SHA-256 缓存。
本地审计对齐 Admin 拒绝条件:10 MB、解析必填、paperKind 枚举。文本身份忽略配图,才能看见跨卷复用和答案冲突。
远端分波预览,校验和可续跑。一批解析失败时逐文件重放并点名,而不是只给一个不透明错误。
--apply 才写库,--publish 才发布。内容政策:不改、不编答案键;AI 解析必须标注;优先原始 PDF 而不是旧 JSON。
七种规范题型 · 单选、多选、判断、填空、简答、论述、材料分析。当前陪练放量只用前四种客观题当锚点;后三种已入库,生成与评分能力留给后续放量。
真题用来考。同一条题目在服务端当生成锚点。学员看到同知识点、同题型的变式,不是原题。陪练走独立 /exam-coach 协议,不改举一反三 API。没有合格锚点时,才退回纯知识点生成。
陪练是独立产品功能,不是模考配置,也不是举一反三改版。范围从 Program → Track → Paper 读取;createSession 只验证合格锚点,不下发原题。自动笔记、错因五分类、知识树点亮不在 MVP。
冻结的三阶契约
进入即第一阶段。提交前默不展开讲解;答错后仍在本阶段换变式,不倒退。

同知识点新变题。题干高亮加方法提示,不再直接给完整解法。S2 连错两次才临时开步骤。

提交前永不给帮助。零提示答对后追加确认题;连续两道才写 independentPassedAt。

每点一次只开一级,级别只增不减。不提供「我不会,直接看讲解」。默认全用户;自适应开关关掉才熔断。
01
考什么、问哪个量,可高亮题干。S3 关闭。
02
公式名或路径第一步,不代入本题数字。S3 关闭。
03
演示第一步或排除干扰。S2 同阶段连错 2 次才临时开。S3 关闭。
04
只随提交后判题给,没有提交前入口。
掌握证据
看过提示再答对记 correct_with_hint,不算独立通过。掌握 = 连续两道零提示答对,含升一档确认题。确认题打错则降一档、清标记,重新凑两道。四选一 25% 蒙对必须确认。
下一题怎么来
用户一次只交 1 道。首次幂等键 initial:episodeId:stage:1。提交后 prefetch;有同阶段 ready 缓存则不生成不扣费。推进阶段时旧 ready 全部 retired。变体不会变成新锚点。批次 0 通过不结算用户积分。
模考和陪练共用同一套题实体,但会话域分开。已发布试卷可以进入陪练范围;陪练不再依赖另一份临时 JSON,也不改举一反三链路。
在内测、开放体验与注册之间切换

不把整页做成登录墙。Gateway 只精确放行两条 guest-exam-demo。GET 不回答案;批改失败不得伪造成绩。
落地结果
游客能先完成真题、批改与报告。guest_exam_funnel 七步 fail-open。这是使用路径,不是转化提升结论。
产品经历了内测码墙、开放注册和调研引导。我把游客 /exam/ 做成可走完的模考:静默 Guest、本地答题、确定性批改、固定计划,再进现有注册页。
不把整页做成登录墙。Gateway 只精确放行两条 guest-exam-demo。GET 不回答案;批改失败不得伪造成绩。
开放游客会增加成本与滥用,因此限额 12 题 / 32KiB,账户型能力仍在注册后。一期故意不用 AI 出题或批改。
把 FeaturePanel 百宝箱能力融入对话

不把生成工具做成彼此孤立的按钮。材料进 Content 状态机,产物作为 artifact 挂在同一 sessionId。
落地结果
用户可围绕同一份材料完成阅读、对话、总结、自测和复习,FeaturePanel 从工具集合变成一套学习工作流。
FeaturePanel 集合了摘要、思维导图、闪卡、测验、知识海报、播客、资源与笔记等能力。我负责确认功能组合、交互入口和产品优先级,并将这些产物集成到 AI Tutor 对话与当前材料上下文。
不把生成工具做成彼此孤立的按钮。材料进 Content 状态机,产物作为 artifact 挂在同一 sessionId。
功能数量快速增长会增加认知负担,因此需要统一入口、状态和产物呈现,同时在桌面与移动端采用不同的材料切换方式。
卷是编排,题是可复用实体

模考只用审计、预览、写入、发布之后的正式卷,不用演示 JSON。
落地结果
答题、批改、弱项复习和考后计划都跑在可运营试卷上。
演示卷验证了模考界面。四表、失败即停检索和受控入库写在上方「近期工作重点」。这张卡片只保留建立在题库上的全屏模考。
模考只用审计、预览、写入、发布之后的正式卷,不用演示 JSON。
结构化题库比直接丢一份 JSON 更慢,但这是后面陪练能复用同一套题目的前提。
独立域;原题只留在服务端

createSession 验证锚点但不下发。next-item 一次交 1 题。掌握要连续两道零提示,含确认题。
落地结果
模考和陪练共用题实体,会话域分开。看过提示再答对不算掌握。
陪练不是模考配置,也不改举一反三 API。截图来自生产环境:选考试与知识点,再走完整讲解、提示递减和零提示验证。
createSession 验证锚点但不下发。next-item 一次交 1 题。掌握要连续两道零提示,含确认题。
变式生成、Blind Solver / Judge 由队友负责。我负责独立域表、状态机、L1–L4 和陪练界面。
用 GA 与 Plausible 验证产品路径

用统一、可去重的事件契约覆盖落地、游客体验、认证、激活和首条消息,并对齐客户端与服务端身份。
落地结果
关键路径事件形成连续链路,用来定位掉点。GA4 数字是使用信号,不是转化提升。
我参与商业化设计,并负责关键事件埋点、注册漏斗和归因修复。数据表现不会被包装成漂亮数字,而是用来判断用户在哪一步流失、哪些产品假设需要调整。
用统一、可去重的事件契约覆盖落地、游客体验、认证、激活和首条消息,并对齐客户端与服务端身份。
事件契约和身份对齐比零散埋点更慢,但避免同一转化被重复计算或在登录前后断裂。
准入不是一次性开关。内测码墙、开放注册和调研引导需要跟随产品阶段变化,而不是散落在页面里的永久逻辑。
功能数量不等于产品价值。FeaturePanel 只有进入 AI Tutor 对话与材料上下文,才从百宝箱变成学习闭环。
演示卷可以验证体验,却不能支撑内容运营。题库成为模考和陪练共用的数据底座之后,变式生成才有资格挂上来。
数据不必好看,但必须可信。漏斗的价值是暴露问题并帮助做下一次优先级判断,而不是包装转化率。