这是什么 · What this is

面向 2026-06-24 上线团队会的 prior——ZH 与 MenoClaw 基于真实材料(dev log / 代码 / feedback+bug / test+bot 日志 / 雨来现状 / hub 结构)对开发状态的诚实评估。每条判断都可溯源到代码/日志;这里的观点是讨论的起点,不是结论,欢迎来会上反驳。受众=内部(本频道 dev + 雨来 final-push)。不含任何密钥/内部 URL。

TL;DR — 6/24 之前必须解决的(headline)

  1. 数字捏造(fabricated stats) — 最大质量风险。运行时 guard 已上线(18185e1),但未量化、ZH 未最终确认关闭。→ 需要一次新测试 + 你签字。
  2. 录取分/位次 = 志愿填报最核心、却最不就绪。本地零分数据;雨来是唯一来源,等位分仅云南。→ 验证雨来 key 实时有效 + 明确”分数=云南 only”的上线预期。
  3. 成本/滥用敞口 — 线上公开、无鉴权、无限速、无预算上限;prefetch 5× 扇出。→ 上线前必须加 gate + 限速 + OpenRouter 花费上限。
  4. 就业率渲染 bug — ~1388 所学校的就业/升学率因类型不一致被静默丢弃(只有 667 所正确渲染)。→ 一行修复,launch 前做。
  5. Free Render = 易失盘 + autoDeploy from main → 每次 push 抹掉所有在玩会话 + 全部遥测。→ 解耦部署 / 加持久存储。

🚀 6-24 上线日更新 (MenoClaw, launch day)

6-20 以来已上线 (live on gaokao.meno.sh)

  • 会话持久化(原 §7 P0):_rank_save 每轮异步把会话推到机器(box)持久层;Render 重启后 _rank_load 从 box 恢复 → 重启不再丢局(d376d8b)。⚠️ 这是备份/恢复,非零停机:部署仍会重启、清内存,但用户下一步操作时自动恢复。根因:Render /data 不可写,旧的本地 pickle 一直静默失败、会话只在内存 → 每次重启全丢。
  • 回访码:结尾页给 ?run=<sid> 链接,凭码只读回看该局结尾(经 box /rank_revisit)。
  • /kpi 看板(经 box,持久):使用数 / 完成率 / 每局 起始%→结束%(+Δ)/ 深度 / 徽章 + OpenRouter 额度。遥测 session_log.jsonl 在 box 上、扛重启(补上原 §3 缺口)。
  • 主动识别 / 画像实时更新(原 §5 P1 已做):每站「最想听你说」追问 + 多轮小对话(/rank_chat,只显最新 2 条、每轮并进画像)+ 结尾对话框。轮次上限服务端强制(每站 3 / 结尾 5)防刷 token。
  • 成就徽章(Claude Design 墨章);框架/抗话术测试已接线(原 §6 P0 之一:frame_results 进结尾 + log)。
  • resolver:无 @ 也能从连写抽出学校+专业(LLM 抽取,assembly bug 已修 fbbda28)。
  • 其它:mock 假数据已 gate(?mock=1 才走);语音改 base64-JSON 上传(绕开 HTTP2 报错);KPI 隐私(画像不入日志可选,目前按 ZH”先保留”)。

新发现的工程问题(代码审计 2026-06-24)— 按严重度

P0(上线即暴露,匿名可达):

  1. 存储型 XSS — 用户输入的”专业”标签未转义直插 innerHTML(rank_page.html renderStage 的 ${st.top}/${st.contender}/${st.factor.label}),填 <img onerror=…> 当专业即执行。修:这些字段套 escHtml(页面已有此函数、这里漏用)。
  2. 请求体无大小上限 → 内存 DoS — 所有 POST(尤其 /voice_profile)按客户端 Content-Length 整体读入内存、无 cap;Content-Length: 5亿 即可 OOM 掉 512MB 实例。修:MAX_BODY 早拒(JSON ~2MB / 语音 ~15MB);int(Content-Length) 也要 try。
  3. /prompts_save 公开可写 — 匿名访客能 POST 改写线上 LLM 模板(prompt 注入 / 烧 token / 套画像)。修:/prompts* 加 token 门或绑非公开端口。
  4. 解析模型太弱(本次 考古系 bug 根因)RESOLVE_MODEL=deepseek-v4-flash 抽取不稳(北京大学考古系→失败、北大考古系→成功);考古学 在清单里、非覆盖问题。换 gpt-4o-mini(更稳、一样便宜快 0.6s)。

P1(上线周): 5. _rank/IG/JOBS 缓存无上限 → 慢性内存泄漏(配合 #2 = OOM);加 LRU+TTL。 6. box 持久化:每轮一个异步 POST 上传整份(增长中)pickle、多线程无序 → 可能写入过期状态;应去抖/合并(仅结尾 + 每 N 轮)。 7. box 读路径 key/sid 未校验(应 ^[0-9a-f]{10}$ + quote)。 8. 顶层 open().read() 读 HTML 无 try → 缺文件整服务起不来。 9. 多处错误返 HTTP 200(监控看不出错误率)。

仍未做的老 P0: 公开链接无鉴权 / 无限速 / 无 OpenRouter 花费上限(§8);就业率 pct() 仍丢字符串型(~1388 校,grounding.py);intake 仍不收用户分数 / 家庭状况(§2)。


6·20 会议结论与行动项

今日会议(2026-06-20)纪要已并入本页。参会:何忠豪(ZH)· 邱天异(Tianyi)· 叶晓阳(Ye Xiaoyang)· 高钰贺(Yuhe Gao)· 谢嘉扬(Xie Jiayang,平台数据)· LuKe。

结论

  1. 数据层方向: 现状 = LLM 蒸馏 + 少量公开信息(不足、不够真实、易刻板)。路线:① 整合学校官网 / 培养方案等系统性信息;② 建在校生 / 毕业生真实体验分享机制(需激励 + 审核保真);③ 优先用 AI 从现有海量真实数据(如知乎)提取,而非投大量精力爬精确结构化数据。 › 对齐当前抓取: 结构化抓取(阳光高考课程 + gaokao.cn 各校就业质量报告)已近完成、是真实来源背书的硬数据,低剩余成本不浪费;知乎-AI 提取正是此前悬而未决的**软字段(日常体感 / 体验)**的答案——两者互补。
  2. 体验与核心目标: 核心 = 引导用户达成反思均衡(充分了解可能性后对选择满意)。daily reality 太刻板 → 用真实数据 + 校准(见 §6)做得更具体多样;帮用户区分专业技能 vs 大学生活、打破刻板印象;定位”表面效度”(face validity)——让信息显得合理,而非追求内 / 外效度的极致精确
  3. 技术路线: 「预设框架 + AI 实时生成」:每专业一个基础”路径(path)“,选定学校后 AI 结合该校特点个性化;流程引导反思而非灌输答案(末尾加总结性问题)。

行动项(owner)

  1. 数据 / 技术对接: 谢嘉扬 → 会后把平台现有学生数据(CSV,脱敏)给 何忠豪 做接口对接;何忠豪 把现有数据与新数据维度对齐。
  2. 体验优化(何忠豪): ① 流程中加引导,明确目标是「反思均衡」;② 开头加功能说明 + 免责声明(AI 生成、仅供参考);③ 末尾加总结性问题引导反思。
  3. 用户测试: 叶晓阳 → 联系一位大一学生实测、收集意见;叶晓阳 + 何忠豪 会后继续 UI/UX + 小程序集成。

上线就绪度记分卡(Scorecard)

维度就绪一句话
部署 (deploy)🟡gaokao 已 live 在 Render(gaokao.meno.sh DNS 处理中,ZH 负责);但 free 单实例、易失盘、autoDeploy 危险
专业/院校 KB🟢→🟡856 专业 / 2347 校,广度够;但全是 LLM 断言未核验,且就业率渲染 bug 吃掉大半
录取分数🔴本地无;雨来 等位分仅云南,录取分按省、key 待验证
雨来集成🟡client 已建、优雅降级;key 已写入 Render,但实时有效性 + 省份覆盖未确认
算法 (反思均衡)🟡单次推理的 WTE+investigator+writer 已 live;但bias/框架测试已下线(算法文档仍宣称),narrative 不随游戏更新
人物模型🟡NL 画像是真模型;8 极数值层算了即弃(死代码)——ZH 的怀疑被代码证实
指标 (metrics)🔴没有任何”理想偏好”质量指标;现有 eval 全是过程/多样性
测试🟡引擎套件绿但完全不覆盖 gaokao;gaokao 无确定性回归测试
工程稳健🟡捏造 guard、429 退避、pickle 续跑都在;但无限速/无预算/线程无背压
扩展性🔴pickle 会话 → 水平扩展结构上不可能;单实例封顶
微信小程序🟡审核已过(ZH);仅剩雨来交接 + 代码转换(~1–2 天移植)
协调🟡人齐(ZH/Tianyi/Ahmed/雨来);但 SPEC/render.yaml 文档漂移,雨来侧 owner 未记录

1. 真实世界数据 —— 专业 / 就业 / 录取 / 体验

现状(有据). 广度已具备:856 专业,横跨 12 学科门类(major_catalogue.json);859 张 grounding 卡 = 100% 目录覆盖(major_grounding.json,facts+lived 分离,各带 confidence/provenance);2347 所学校,其中 2121 所有就业数据(uni_employment.json);层次信号 985/211/双一流(school_index_sample.json)。

缺口(诚实).

  • 所有”事实”都是 LLM 断言,未经核验. 在已提交的 main 上,859/859 张卡 = “待真实报告交叉核验” —— 0% 对照源 PDF 核验过。“lived 体验”是 LLM 观点(已明确标注),不是抓取的 UGC —— 真实的知乎/小红书抓取试过、因反爬放弃。
  • 🔴 就业率渲染 bug(影响上线). uni_employment_block() 里的 pct()(grounding.py:67)只格式化 int/float,但 1373 所学校的就业率是字符串(“96.60”、“99%”)→ ~1388 所学校的就业/升学/出国率被静默丢弃,只有 ~667 所正确渲染。你”拥有”的就业数据大半从未进入 prompt。
  • 本地完全没有分数(见 §2)—— 志愿填报最核心的字段。
  • hub 的覆盖数字略有夸大(如 data-overview 说 ~2075 所有数据;实际 2121;data-employment 说 就业率 2029 / salary 692;实际 2026 / 612)。需对齐,使上线叙述准确。

TODO. (P0)pct() 的字符串/数字兼容 —— 最便宜、收益最大。(P1) 拿到有效雨来 key 后,对全部 859 专业重跑 enrich_grounding.py(目前仅 11 个已富化)并提交。(P1) 把 hub 数字与数据对齐。(P2) 回填来源 URL(sources.py 里院校条目只有名字没链接),让出处可点击、卡片脱离”AI蒸馏待核”。

→ 见 grounding-layer · data-overview · data-employment · data-schools-majors · data-admissions

2. 雨来(Yulai)集成

现状. client 已建且设计上优雅降级(yulai.py):6 组端点(major detail/decision/facets、equivalent_score、scores、student_profile),Bearer 鉴权,绝不抛错(出错返回 None/回退 → 游戏不崩)。已接入 investigator 的来源层,排在本地 KB 之上。gaokao Render 服务上已设了一个 yl_live_… key(来自 menoclaw/.env)。

缺口.

  • 实时有效性未确认. 6 月初该 key 曾 401(INVALID_API_KEY);据称 2026-06-19 有效 key 到位。已接线但在部署的服务上未实测。上线前要验。
  • 等位分仅云南;录取分按省、带 data_may_be_partial 标记。即便 key 有效,上线时分数仍是单省
  • 分数查询只映射了 12 个省(grounding.py _PROV_MAP);其他省即便雨来有数据也查不到。
  • 已提交的富化是部分的(11 专业,10 个 verified)且本地未提交 —— main 上 0 个雨来块。

需要雨来给的(阻塞项).(1)确认有效的生产 key + base URL;(2)录取/等位分的省份覆盖时间表 —— 6/24 前云南之外有 ready 的吗?(3)确认 student-profile 授权流程对上线属 out-of-scope。

TODO. (P0) 有效 key + 对 major_detail + equivalent_score 做冒烟测试。(P0/协调) 拿到雨来省份时间表的书面确认。(P1) 明确上线预期:分数=云南 only;其他省=层次 + 定性回退(设计如此)

集成结论(2026-06-20 ZH 讨论,基于实测 live API):

  • 分工: 雨来 → 录取分(按省核验)/ 等位分 / 专业判别;我们补就业(gaokao.cn 各校就业质量报告 ~2300 校带链接,抓取中)+ 专业课程(阳光高考官方)。互补不重复——雨来无就业端点(证实 ZH 判断)。
  • 用户侧数据(年龄/家庭收入/分数)拿不到: 雨来合作方画像接口明确剔除「精确分数位次 / 年龄性别」,只给抽象画像 + 人格 DNA。→ 要么我们自己 intake 收,要么和雨来谈更深共享。这是对接第一问。
  • 用户数据缺口(ZH 指出,真问题): 现 intake 没收用户自己的分数 + 家庭状况——而这两者决定「可达学校」与「冲/稳」倾向,是真实志愿的核心输入。
  • 集成设计: 学生从雨来窗口进(已授权)→ 用雨来录取/等位框定可达集(让模拟真实)→ 在可达集内跑反思均衡。雨来管「能去哪」,我们管「你到底想要哪、为什么」。

→ 见 yulai-integration · data-admissions

3. 真实世界反馈 —— 该问真实用户什么

现状. ?dev=1 dev-feedback 按钮 + listener 管线已存在(devfeedback.json 当前为空 —— 零条目;迄今所有反馈都是 ZH/测试者经 Slack :zh-claw: 来的)。

我们其实该问真实用户的(提议).

  • “它有没有让你觉得被理解了?”(felt-understood 信号 —— 已可采集,未分析)。
  • “有没有哪个场景显得套路/不对劲/像在引导你?”(直接检验”不推荐”原则 + 泛泛的抱怨)。
  • “有没有看起来像编的数字/说法?”(把 eval 缺的捏造审计众包出去)。
  • 前后的信心,以及为什么变(有据 vs 虚增 —— 见 §4)。
  • 垫底的专业有没有被检视过?(Zhilin 的抱怨:只浮现头部两两对比)。

TODO. (P1) 上线链接打开 dev-feedback 按钮;结尾页加这 5 个问题;确保回答写进能扛重启的存储(目前遥测在 Render 易失盘上 —— §7)。

→ 见 log

4. 指标 —— 衡量”理想偏好”

现状 —— 诚实的真相:没有任何理想偏好质量指标. eval/analyze.py 里全是过程/多样性指标:维度轮转(5.4/7)、家庭默认率(3%)、场景覆盖(18/18)、个性化(1K 时 58% 不同维度集)。它们回答的是*“引擎是否多样、不退化?”* —— 一个健康检查 —— 而非*“我们有没有把这个人的理想/低后悔偏好引出来?”*

为什么它本质上难.(1)没有 ground truth —— 理想偏好是反事实的。(2)路径依赖 —— 偏好在检视过程中形成,所以最终排序不是一个先验潜变量可供恢复。(3)收敛 ≠ 质量 —— 排序稳定既可能是反思均衡,也可能是疲劳/固化。

可采纳的代理指标(挑 1–2 个落进 ending() + session log):

  • 扰动下的稳定性 —— #1 能否扛住一个循环里没见过的对抗性 framing?(这正是已下线的框架测试做的 —— 复活它就拿回最好的单一代理。见 §6。)
  • 信息驱动的重排比例 —— 重排里多少是引用了选项特定的信息 vs 漂移(player.pymaterially_new gate,跑在真实会话上)。
  • 有据的信心增量 —— 信心上升扛住了一次扰动,而非单纯虚增。
  • 留出维度的后悔 —— 结束后探一个 WTE 没浮现的维度;若它会翻转排序,说明引出不完整。

TODO. (P1) 至少把一个结果代理写进 session log,让上线后的会话可解释 —— 这个工具”就是数据集”,但前提是它记录了质量信号,而不只是过程多样性。(P2) 等真实会话积累后,跑”显式 14 维 vs LLM 隐式”的 A/B。

→ 见 eval · ideal-preference-dimensions

5. 人物模型 —— 偏好维度

现状. 三套词汇并存,只有一套是 live 的:

  • NL 叙事画像(profile.narrative)—— 从 intake 合成的那一段 150–250 字第二人称散文。这才是生成器读的模型。 经 🪞 面板可实时编辑。
  • 14 个理想偏好维度(human_dimensions.json)—— WTE 每回合打分的轴(“我们在学什么”那层)。但它是 prompt 时让 LLM 每次从头重打分的枚举 —— 不是持久、会更新的信念状态;只有 examined_dims 往下传。所以路径依赖的更新比理论页宣称的弱。
  • 8 个数值极(personality.py)—— 算了即弃。 serialize_for_prompt() 已不再输出它们(注释:“弱信号,ZH 2026-06-17”)。ZH 的怀疑是对的,代码本身已经承认了 —— 它是死重(quiz 选项仍带极标注,但什么都不喂)。

缺口.(a)narrative 只在 intake 时建一次,不含游戏内选择 → 静态画像,不是会更新的信念;(b)8 极 vs 14 维 vs 18 场景是三套互不相连的词汇。

TODO. (P1) 每次重排后刷新/增量更新 narrative,把游戏内选择传进去。(P1) 持久化并回读不确定性 ledger,让 VOI 针对真实更新过的信念计算。(P2) 决定:删掉死的 8 极层,还是把 observed 接回 narrative 合成。

→ 见 profile-construction · ideal-preference-dimensions

6. 理想偏好 / 反思均衡算法 —— 功能

现状(实际在跑的). 每个 stage = 一次 unified_turn LLM 调用(ranked.py:240),融合了:(1)WTE 选出价值-信息最高的未检视维度;(2)选一个 probes 覆盖该维度的未出现场景;(3)investigator 选最有区分度的 contender + 一个针对此人的问题;(4)writer 产出 ≤110 字第一人称小景 + 各选项的 take。重排 = pivot;prefetch-all 预热每个选项的下一 stage,使重排瞬时。结尾 = checklist + 信心增量。一个硬性捏造 guard 会删掉数字若其位数不在 grounding 里。

ZH 的一句话概括(“检视最少被检视的维度 → 给信息 → checklist”)方向对、但机制已过时:它是一次融合调用,不是三个 stage;独立的 wte.py / trajectory.py / 单独的 investigate() 在 live 路径里是遗留/死代码

缺口.

  • 🟡 bias 处理这根支柱没接线. 框架稳定性测试已从 UI 下线,但作为死代码还在,且 reflective-equilibrium-algorithm.md 仍宣称它;ending() 报了一个空洞的 frames_stable。这既是文档诚实问题,也丢掉了我们最好的理想偏好代理(§4)。
  • 选项不自洽 / 跨领域串味(quality-plan §3)—— 仍是计划,未确认上线。

TODO. (P0) 决定 bias 处理:复活框架测试(它已建好;拿回稳定性代理)从算法文档里删掉它。别上线一个不跑的招牌支柱。(P1) 选项身份锁定(quality-plan §2/§3)。

→ 见 reflective-equilibrium-algorithm · world-turning-engine · investigator · ideal-preference-checklist

7. 工程 —— 推理、错误、稳健性

现状. stdlib ThreadingHTTPServer(线程/请求,无 WSGI/队列)。会话在内存 + 本地磁盘 pickle 文件。每 stage = 1 次 LLM 调用(stage = DeepSeek-V3 deepseek-chat;narrative/ending = V4-Pro;web-search 插件开),~20–75s,靠 prefetch 掩盖。捏造 guard + 429 退避(4 次)+ 权威源白名单都是真的、在工作。

缺口 / 失败模式.

  • 🔴 易失盘 + autoDeploy from main —— Render free 盘在每次重部署/休眠时被清 → 每次 push 到 main 抹掉所有在玩会话 + 全部遥测。这里的 /data 不是持久盘。
  • 线程饿死(未观测,扩展性隐患) —— 理论上卡住的调用占线程 ~5 分钟(75s×4),高并发 + 单 key 无界并发可能 429 级联。目前低/单用户测试未发生,仅作扩展期风险记。
  • /voice_profile 无请求体大小限制(整体读入内存)—— 易内存 DoS。
  • 文档/配置漂移: render.yaml 描述的是旧 reflect 应用(plot.web --mock),不是 gaokao;SPEC.md 描述的是被取代的 A/B 模型,不是 live 的 ranked 流。新人上手会被误导。

TODO. (P0,ZH 已定)持久盘 + 会话存储(对话存储)+ 部署与 main 解耦,push 不再抹掉在玩会话。(P0) intake 增收用户分数 + 家庭状况(见 §2 集成结论)。(P1) voice 请求体上限;render.yaml + SPEC.md 漂移修复。

→ 见 backend · per-stage-anatomy

微信小程序

现状(ZH 更正 2026-06-20):审核已通过。 之前我评估「合规要数周」是错的——主体/备案/审核都已完成只剩两件:与雨来团队交接 + 代码转换(repo 里目前零 MP 脚手架;一个 HTML 页 + 几个 JSON 端点 → WXML/WXSS + wx.request,~1–2 天移植)。仍需注意:20–75s 延迟 vs MP 对「秒响应」的预期(prefetch + loading 态要稳);CDN 依赖(Google Fonts/jsDelivr)在国内须本地化。MP 因此可进 6/24 视野,不再是纯上线后项。

8. 扩展 —— 1k / 10k+ 用户

先坏什么,按顺序.(1)free Render 单实例 + 休眠(冷启 30–50s;只能服务个位数并发会话)。(2)ThreadingHTTPServer —— 无背压;每个活跃 stage = 一个被阻塞 20–75s 的线程。(3)🔴 pickle/内存会话 → 水平扩展结构上不可能(两个实例不共享状态;用户 stage-2 请求路由到别的实例 = “会话丢失”)。(4)LLM 限流 + 成本 —— prefetch-all 每 stage 打 ~N(≈5)个投机调用 → ~5× 过度生成;V3 stage 估 ~500–$2k+。(5)🔴 无鉴权 / 无限速 / 无花费上限 —— 公开无鉴权端点;一次爆量或一个滥用者就能把账单打到无界。

1k+ 需要什么. 付费 Render + 多实例;共享会话存储(Redis/Postgres)替换 pickle(或 sticky sessions 作权宜);持久盘/DB 存遥测;应用内并发上限 + 单 IP 限速;OpenRouter 花费上限 + 告警;高负载时把 prefetch 降到只预热 #1;软启动邀请制/加门

上线前最重要的单个基础设施决定

上线 URL 将是公开、无鉴权、无花费上限、且 5× prefetch 扇出。广传之前:钉死每-stage 模型、加 gate + 单 IP 限速、设 OpenRouter 预算告警。这很便宜,且能避免一次”钱包敞开”事故。

9. 用户体验

未做的测试者诉求 —— 会上需分流:

  • Tianyi:intake 应做多选 + 排序;专业内路径(绩点/竞赛/科研/社团)可选可排;*“把就业相关信息都删掉”*除非校准好。
  • Zhilin:🪞 画像不影响后续问题;选了创业但后续问题全是传统求职;只有头部两两对比 → 垫底 3 个专业从不出现(建议:信心低时为全部 5 个生成场景);7 个问题感觉同质化
  • 延迟 UX:20–75s 等待大多被 prefetch 掩盖,但冷启动 + 重排到未预热的选项仍会卡。

TODO. (P1) 决定哪些测试者诉求进 6/24、哪些延后;“画像不影响后续 stage”这条与 §5 的 narrative-refresh 修复重叠,值得做。

10. 协调 —— 谁需要知道什么

人. ZH(owner/拍板/主测试);Tianyi(U08DH1JD8R1,co-lead,给了 6 条评审);Zhilin(测试者,4 条评审);Ahmed(U09LV5P3DQD);MenoClaw(唯一搭建者);雨来/Yusoong(伙伴数据)—— 雨来侧的集成 owner 没有记录 → 责任空缺。

6/24 前每个人都该知道:

  1. 数字捏造是头号风险;guard 已提交但需 ZH 签字 + 一次新测试(他那个失败会话没自动保存 —— 一个该补的日志缺口)。
  2. 上线链接必须加门 + 花费上限才能广传。
  3. SPEC.md / render.yaml 已过时 —— 以 hub(variant 文档 + log)为准,别看 SPEC。
  4. 雨来数据 owner:key 已 live 但富化在半途(未提交);谁为上线的伙伴数据准确性负责?

会上待拍的决定(需要决策)

  1. 范围 已定:公开链接,接入雨来窗口。 → gate/限速/花费上限 + 扩展性优先级随之上调。
  2. 捏造修复(a) —— 是否算关闭?live 跑一局确认。
  3. 分数 —— 以”云南 only,其余省层次+定性”上线,还是分数全部押后到雨来扩省?
  4. bias / 框架测试 —— 复活(拿回稳定性指标)还是从算法文档删掉?
  5. 指标 —— 从第一天起承诺记录哪个结果代理?
  6. 数据 已定:对全 859 专业重跑雨来富化 + 抓取权威公开源(进行中)。
  7. 基础设施 已定:加会话存储 + 持久盘(+ 解耦部署)。
  8. 测试者诉求 —— Tianyi/Zhilin 哪些进 6/24?

TODO 分级

P0(上线前 / 上线日).

  • 🔝 关掉 Render autoDeploy,解耦部署与 main;正式上线后改为低流量一次性批量部署(ZH 2026-06-24)。← 置顶。
  • 修存储型 XSS:用户”专业”标签转义(审计 #1,匿名可达、一行级)。
  • 请求体大小上限:防内存 DoS(审计 #2)。
  • 关闭 / 加门 /prompts_save 等 dev 端点:防匿名改写 LLM 模板(审计 #3)。
  • RESOLVE_MODELgpt-4o-mini:解析稳定(审计 #4,考古系 bug 根因)。
  • 公开链接加 gate + 单 IP 限速 + OpenRouter 花费上限(§8,仍未做)。
  • 修就业率 pct() 字符串兼容(§1,仍未做)。
  • ✅ 会话存储 + 解耦部署的”存储”部分已做(box 持久化);仅剩”解耦”= 上面置顶项。
  • ⬜ 验雨来 key live + 分数冒烟测试(§2);intake 增收用户分数 + 家庭(§2)。
  • ✅ bias 框架测试已接线(§6);⬜ 确认捏造修复关闭(§4/§10)。

P1(上线周).

  • 对全专业重跑并提交雨来富化(§2);对齐 hub 数据数字(§1)。
  • 游戏中刷新 narrative(§5);至少把一个理想偏好代理写进 log(§4)。
  • dev-feedback 按钮 + 5 个用户问题,落到能扛重启的存储(§3)。
  • 修 SPEC.md / render.yaml 漂移(§7);voice 请求体上限。

上线后.

  • 共享会话存储 + 多实例 + 付费 plan,做扩展(§8)。
  • 微信小程序(卡在企业主体 + 备案)(§7)。
  • 选项身份锁定(§6);8 极层的去留决定(§5);显式 vs 隐式维度 A/B(§4)。

出处

2026-06-20 由 MenoClaw 基于 meno-sh/reflection-game main @ 18185e1、hub 的 reflection-game 子页、dev/eval 日志、以及 gaokao git 历史编纂。数字由实际数据文件重新推导(并在 hub 页漂移处更正)。观点已标明 —— 欢迎反驳。