Review 综合与行动方案
本文档把 3 份 Claude Code sub-agent review report + Codex worker-dispatch 任务包(待用户分发) + 主会话自查发现合并为统一行动方案。
Review 矩阵
| Reviewer | 维度 | 范围 | 状态 | report |
|---|---|---|---|---|
| Sub-agent A | 跨章内部一致性 | 主架构 27 节(深读 §4-13/15/17/18/20/21/23/27,浅读其余) | ✅ 完成 | 2026-05-27-review-A-cross-chapter-consistency.md |
| Sub-agent B | 上位文档对齐 | 战略白皮书 + 产品定义文档 vs 主架构 | ✅ 完成 | 2026-05-27-review-B-upper-doc-alignment.md |
| Sub-agent C | 工程可实施性 | M0 走通骨架 + 子系统接口完备度 + 测试/评估可执行度 | ✅ 完成 | 2026-05-27-review-C-engineering-feasibility.md |
| Codex | 战略保真度 + 业务建模自洽 + 写作纪律 + 综合独立验证 | 全篇 5796 行 + 上位文档 cross-check | 🟡 任务包已准备 | codex-review-task-spec.md(待用户粘贴到 Codex 跑) |
| Claude Code 主会话 | 整合 + 自查(禁词 grep / Mermaid 错误修复 / merge 完整性) | 同步进行 | ✅ 完成 | (本文档) |
三个 Reviewer 的 P0 清单(去重合并)
P0-1:§8 vs §27 代码骨架冲突(Reviewer A)
问题:§8 用 finbayes/cli/、finbayes/cognition/web_tasks.py 等旧路径;§27 用 src/finbayes/io/entries/{cli,tui,web,mcp,channels}/ 标准 src layout。两套互斥目录骨架,照 §8 实施会导致与 §27 / §17 / §18 / §20 / §21 / §25 全部不兼容。
根因:§8 是早期章节产出,§27 是最后产出,重写过程中 §27 升级了代码组织约定但 §8 未同步更新。
修复方案:以 §27 为事实源,重写 §8 "当前容器→代码包映射"段落,统一加 src/ 前缀与 io/entries/ 层级;或彻底删 §8 该段,仅写"详见 §27"。
P0-2:§11 状态机清单 vs §27 状态机映射 不一致(Reviewer A)
问题:
- §11 列 5 个 first-class 状态机:Session / Task / TaskGroup / Judgment Record / StateCandidate
- §27 列 5 个状态机:Task / Fin Object / Judgment Record / State Candidate / Provider Readiness
- §25 说"完整 5 个状态机"但不指明哪 5 个
Session、TaskGroup 在 §27 消失;Fin Object(§4 没说有状态机)、Provider Readiness(§9 没建状态机定义)凭空出现。
修复方案:在 §11 与 §27 之间统一一份权威清单。倾向保留 §11 的 5 个 + 加入 Provider Readiness = 6 个(Session/Task/TaskGroup/JR/Candidate/ProviderReadiness),把 Fin Object 移到"无独立状态机的对象"类。具体待 ADR 或 OpenSpec 提案裁决。
P0-3:M0 子系统切片边界不闭合(Reviewer C)
问题:§25 M0 矩阵把 6 个子系统全标"✅"或"⚠️ 最小可用",但每个子系统未定义"M0 切片到哪一行接口"。Codex 没法判断 State Management M0 是否要实现 confirm_candidate 等接口。
修复方案:新增"M0 接口子集表",按 6 子系统列出 M0 implement / M0 stub / M0 skip 三栏。
P0-4:§9 关键接口签名缺类型(Reviewer C)
问题:6 个子系统的"关键接口"表只给自然语言伪签名("输入:归一化输入 / 输出:TaskGroup"),没给 Pydantic schema 或 Python type hint。M0 核心 dataclass(NormalizedInput / TaskGroup / EvidencePlan / EvidencePacket / StructuredCognitionResult / StateCandidate)只有名字没字段。
修复方案:新增附录"M0 核心 Pydantic 模型 v0 草案",给 6 个核心 dataclass 的字段级 schema。
P0-5:M0 验收"题眼命中 / 反方 / 失效条件"无判定脚本(Reviewer C)
问题:M0 验收要求"5 条样例输入,输出含反方 + 失效条件 + 题眼命中"。前两项可走 Pydantic 必填字段(schema 还要补),"题眼命中"在 §21 是 LLM-as-judge 维度但 M6 才上。M0 阶段如何判定?
修复方案:明示 M0 退化判定 = "schema 字段非空 + 长度下限 + 人工 5 条 checklist"。
P0-6:§26 样本断言依赖 M6 才有的评估运行器(Reviewer C)
问题:§26 列出每个里程碑(含 M0/M1)都要"样本断言"走评估运行器,但 §21 评估运行器在 M6 才上。M0-M5 期间样本断言怎么落?
修复方案:在 §26 明示"M0-M5 用简化判定:5 条 fixture + Pydantic + grep + 人工 checklist 充当样本断言;M6 起切换到评估运行器"。
P0-7:§17 凭证识别正则未提供基线集(Reviewer C)
问题:§17 列 6 类凭证识别策略但正则放在工程实施仓。M0 验收第 4 项"5 类凭证样式输入全部拒收"没有 negative test set 基线。
修复方案:新增附录"5 类凭证样式的 minimum negative test fixture"作为本仓内联(M0 实施 Codex 直接复用)。
P0-8:§27 工程实施仓路径"不写入本仓"导致 Codex 无 cwd(Reviewer C)
问题:§27 说工程实施仓物理路径"由维护者本地记录"。Codex 在 M0 接手时 task packet 缺少工程实施仓绝对路径。
修复方案:§27 新增段"工程实施仓的发现路径:通过 OpenSpec task packet 携带 working_directory 字段;维护者级 user memory finbayes_repos.md 是 fallback 引用"。
P0-9:战略白皮书 5 处旧术语命中(Reviewer B + 主会话自查)
详见下方"上位文档修订方案"段。
P1 / P2 清单(精选高价值)
来自 Reviewer A:
- §15 表数量"8 vs 6"漂移(mermaid 与文字不一致)
- 业务对象命名中英混用(建议 §4 加"工程英文名"列)
- §10 S5 标题降级层级与图内容不符(写"L1→L2→L3"但内容 5 层)
- §13 / §18 / §20 对 L1' 表示形式抖动(
L1A/L1B/L1'/L1b三套)
来自 Reviewer C:
- §12 asyncio 跨任务 trace ID 传递机制未指定(建议
contextvars.ContextVar) - §19 Schema migration 幂等机制未指定
- §19 Prompt prompt_id 命名规范缺
- §20 LLM Mock fixture hash 字段白名单未具体化
- §18 日志脱敏的具体实现路径(structlog vs Pydantic SecretStr vs logging Filter)
- §21 软/硬阈值数值"3.5/5"的来源与校准方法
来自主会话自查:
- CHAP-25 Mermaid 双引号 parse error(已修复)
- 主文档合并完整性(已 verify ✅)
上位文档修订方案
详见 Reviewer B 报告。这里给出可直接拿到 governance/change-protocol.md 流程的草案。
战略白皮书修订草案
| # | 行号 | 现状 | 改为 | 理由 |
|---|---|---|---|---|
| S1.1 | L109 | "形成条件化判断、准备行动方案和复盘历史判断" | "形成条件化判断、准备交易行动前检查与复盘历史判断" | 战略与工程层术语统一 |
| S1.2 | L158 | "准备一次行动判断" | "准备一次交易决策" | 同上 |
| S1.3 | L182 | "还是准备行动判断" | "还是准备交易决策" | 同上 |
| S1.4 | L286 | "条件化、概率化的行动准备支持" | "条件化、概率化的交易准备支持" | 同上 |
| S1.5 | L310 | "反方、条件化判断、历史复盘和行动准备支持" | "反方、条件化判断、历史复盘和交易准备支持" | 同上 |
辅助 P1 修订:在 §6.3 或 §7 末尾补一段:
"第一阶段识别七类金融认知任务:解释、分析、比较、复盘、风险识别、交易准备、交易决策辅助。具体定义由产品定义文档承接。"
辅助 P2 stub 指针(详见 Reviewer B 表):
- §14 末尾补"长期状态对象的写入遵循候选→用户确认两步契约(详见架构 §11)"
- §14 第二段后补"用户在本地优先单机部署中配置 Provider 偏好是 first-class,工程层提供 4 层降级保障 LLM 不可用时仍可用(详见架构 §9 / §13)"
产品定义文档修订草案
无 P0。
P1(L24 文档分工句细化):
加入:"架构文档(architecture.md)中关于状态对象生命周期、降级链、子系统职责、ADR 等工程细节是本文档的延伸定义,本文档不重复定义。"
P2 stub 指针(详见 Reviewer B 表):
- §1 / §11 末尾补"工程实现按 6 子系统组织,详见架构文档 §9"
- §3.4 / §3.5 末尾补"候选→已确认两步写入工程承接详见架构 §11"
- §9 多入口契约补"Provider 选择走 4 层降级,详见架构 §9 / §13"
- §10.3 末尾补"凭证不变量端到端阻断工程细节见架构 §17"
- §4.3 末尾补"自然语言到任务的识别策略由 ADR-004 决议"
上位文档修订的执行流程
- 起 OpenSpec 提案
governance/proposals/inbox/2026-05-27--upper-doc-alignment-after-arch-v2.md - 内容含:S1.1-S1.5(5 处术语替换,P0)+ 战略白皮书 §6.3 / §7 / §14 段落补充(P1/P2)+ 产品定义文档 L24 / §1 / §3.4 / §3.5 / §4.3 / §9 / §10.3 stub 补充(P1/P2)
- 走 governance/change-protocol.md 流程
- 评审通过后再编辑两份上位文档
给 Codex 的 worker-dispatch 任务包
路径:governance/workstreams/finbayes-arch-rewrite/reviews/codex-review-task-spec.md
用户操作:复制该文档全部内容到 ChatGPT Pro / Codex,让 Codex 独立完成深度 review;Codex 完成后把 review report 粘贴回 Claude Code,主会话整合到本文档"Codex 独立发现"段。
Codex review 的独特价值:与 3 个 sub-agent 不同维度的覆盖(战略保真度深度 + 业务建模逻辑自洽 + 写作纪律),跨 Agent 三角验证。
行动方案(按优先级排序)
立即可执行(无需评审)
- ✅ Mermaid parse error 修复(CHAP-25 已修)
- ✅ 3 份 sub-agent review 持久化
- ✅ Codex worker-dispatch 任务包准备好
待用户决策
- 派发 Codex review(用户复制任务包到 ChatGPT Pro 跑)
- 上位文档对齐 OpenSpec 提案(用户授权后由 Claude Code 起草,走 governance/change-protocol.md)
待评审通过后执行(不可绕过流程)
- 修订战略白皮书 5 处旧术语 + P1/P2 补充
- 修订产品定义文档 L24 + P2 stub 指针补充
主架构修订(高优先级,需用户决策修订路径)
- §8 / §27 代码骨架统一:选 §27 为事实源,回到 drafts/CHAP-08-*.md 修订后重新合并
- §11 / §27 状态机清单统一:在 §11 与 §27 之间裁决,回到 drafts/CHAP-11-.md 与 CHAP-27-.md 修订后重新合并
- 新增附录"M0 工程包"(10 项 deliverable,详见 Reviewer C 末段)—— 这是 Codex 接手 M0 的前置条件
- §9 接口签名补 Pydantic schema(M0 核心 6 个 dataclass)
- §17 凭证 negative test fixture 内联
- L1' 表示形式统一(选定
L1'为标准形式,全篇统一)
其他 P1(在 ADR / 工程实施仓 落点)
- ADR-005 写并发原语时含
contextvars.ContextVar决定 - ADR-008 写 Provider 接口时含 LLM Mock fixture hash 规范
- ADR-009 写 Prompt 版本化时含 prompt_id 命名规范
- ADR-010 写输出端过滤时含正则集合
- §18 日志脱敏机制 ADR / 工程实施仓决定(不一定独立 ADR)
给用户的关键决策点
请用户在下列 3 类决策中选择推进方向(可多选):
A. 主架构修订(高优先级)
- A1:是否立刻修订 §8 / §27 代码骨架冲突?(回 drafts/ 修后重新合并主文档)
- A2:是否立刻修订 §11 / §27 状态机清单不一致?
B. 上位文档对齐
- B1:是否立刻起草上位文档对齐 OpenSpec 提案?(5 处术语 P0 + P1/P2 stub)
C. 工程包补全
- C1:是否立刻起草 §28 "M0 工程包" 附录?(含 10 项 deliverable,是 Codex 接手 M0 的前置)
D. Codex review
- D1:是否立刻派发 Codex 独立 review?(用户复制任务包到 ChatGPT Pro)
建议优先级:D1(成本最低,跨 Agent 三角验证最大价值) → A1 + A2(阻断 M0 启动的核心修订) → B1(上位文档对齐,与 A 并行不冲突) → C1(M0 工程包,在 A 与 B 完成后)。