跳到主要内容

ADR-019 — posterior 用户面翻译措辞对齐 MP-3

⚠️ 已退役(2026-06-04)——由 ADR-021 · kelly_cap 退役 取代。 它规定的「仓位上界(非仓位建议)」posterior 胶囊已随 kelly_cap 从代码删除(FinBayes 684d69d)。仅作历史记录保留。

§0 决策简述

决议:把 posterior(含 kelly_cap)的用户面价值翻译从「建议仓位区间」更正为「仓位上界(非仓位建议)」,使 MP-5 与 MP-3 字面一致。落点:MP-5 §3 + contracts/field-surface-mapping.yamluser_widget_translation / value / 白名单与示例措辞,全部由「建议仓位区间」改为「仓位上界(非仓位建议)」。

owner 已批(2026-06-01,R8 验收后定下一焦点=可操作-边界内强化时)。本 ADR 是 M1.6 M 层(posterior/mca 用户语胶囊)渲染 posterior 的前置——S 切片不渲染 posterior 故不受此约束。

§1 触发:渲染层四透镜 brainstorm 的红队发现

M1.6 渲染层 brainstorm 红队透镜发现协议级活雷:MP-5 §3(含 contract)把 posterior 的用户翻译写成「建议仓位区间」,而 MP-3 A.1/D.1 红线是「kelly_cap = 认知层凯利上界估计、非仓位建议,拒绝用户偏好/风险等级覆盖」。两者字面冲突:渲染层一旦把 posterior 按 MP-5 翻译成「建议仓位区间」,就直接造出 MP-3 禁止的「建议仓位」语义。S 切片绕开(不渲染 posterior),但 M 层渲染 posterior 前必须先消除此冲突。

§2 理由

  • MP-3 是 P0 签字红线、且是 FinBayes 边界纪律的核心(R7'/R8 实测 FinBayes 0 高置信越界、kelly 不渲染成仓位是其差异化)。冲突应以 MP-3 为准、改 MP-5 措辞。
  • 「仓位上界」保留了该字段对用户的可操作价值(让用户知道"不确定性给仓位设了多高的认知天花板"——这正是 R8 回灌①"可操作-边界内"要补的),同时「非仓位建议」显式否定了"建议你买这么多"的指令语义。
  • 不改 schema(kelly_cap: float[ge=0, lt=0.25] 不动)、不改 MP-3、不改字段暴露面分层原则(MP-5 §3 白名单为主仍成立)——只修该字段的用户翻译措辞

§3 落地

  • MP-5-field-surface-layering-protocol.md:全文「建议仓位区间」→「仓位上界(非仓位建议)」(§3 映射表 / 白名单 / block-list 注 / 里程碑表 / 示例);加修订注 + frontmatter last-updated 2026-06-01。
  • contracts/field-surface-mapping.yamlposterior.user_widget_translation / 翻译映射 value / 注释里的「建议仓位区间」→「仓位上界(非仓位建议)」。
  • verify:kb cross-section 一致性须绿(MP-5 ↔ contract 镜像一致)。

§4 对渲染层(M1.6 M 层)的约束

  • M 层渲染 posterior 胶囊时,用户面措辞用「仓位上界(非仓位建议)」+ 双峰/尾宽的白话("大概率小赚、尾部能崩"),显式挂"看对前提下"的条件绝不渲染成"建议你买 X%"。
  • kelly_cap token 不外泄;硬上限 0.25 不被任何表达层逻辑突破或重算(MP-3)。
  • 这块"仓位上界 + 不确定性"正是 R8 回灌①"可操作-边界内"的认知内容——可操作但不越界。