跳到主要内容

⚠️ 阶段 1 步骤已被重判(2026-06-10):本 ADR 的基线切换结论(新基线 = 大驼峰 CurvatureLabs/FinBayes)不变、仍生效;但其阶段 1 Step 1.1–1.7 的原方案已由 ADR-028 D-3 逐行重判(cognition 从「集成审计、保护孤岛」翻转为「抛弃静态实现、目的保留」,Step 1.3 从机械 sed 改名细化等)。阶段 1 步骤与闸门定义以 ADR-028 为准。

ADR-024 基线选定为 CurvatureLabs/FinBayes(承认 Codex 5/20-5/26 路线)

文件名沿用早先版本("基线切换至 CurvatureLabs/finclaw"),正文以当前正式决定为准:选定 CurvatureLabs/FinBayes(大驼峰)作为新基线。

状态

accepted(owner 2026-06-06 拍板,经四方完整对比 + 重做事实核 + 承认 Codex 5/20-5/26 已有路线)。

背景

§9(CURRENT-MILESTONE)定下"完整可用金融 agent 产品"的方向后,主控做了两轮基线对比:

  • 第一轮(6/6 上午)只盯了三个候选(当前 FinBayes 工程仓 / martin-Finclaw / CurvatureLabs/finclaw 小写 / Hermes),结论选小写 finclaw。
  • 第二轮(6/6 下午)owner 提醒「还有一个 CurvatureLabs/FinBayes(大驼峰)」,主控实地核才发现:
    • 它是 owner 2026-05-20 主动从 martin 整仓 copy 进来当"transformable baseline"的副本(README 自陈),不是裸 martin。
    • Codex 在它的 codex/finbayes-analysis-runtime 分支上已经做了 6 天密集工作(5/20-5/26),包括:
      • 6,325 行金融认知契约层(finclaw/cognition/,taxonomy + DAG orchestrator + evidence model + synthesis validator + widget projection,martin 完全没有这层)
      • 5,580 行新测试(13 个文件,martin 自己零测试)
      • 23 份治理级设计文档(G0 audit → G2 closeout → 4 份 Package C 评测 → 4 份 vs-martin 30-case 评测 → v2-engineering-landing)
      • Live Kimi 30/30 PASS(avg 45.3s/case、widget 完整率 100%、quality grade A、0 fallback、0 raw error)—— 这是本系列第一次有 cognition 层在真模型上跑通 30 案全过的实证
      • 已主动对齐治理仓 Labs-FinTecAI/projects/finbayes,下一步指向 goal-execution.md 里的 G1: First-screen Answerability
    • 唯一硬伤:所有 Codex 工作 0 commit,全在工作树(35 modified + 整个 finclaw/cognition/ / tests/ / docs/design/ / scripts/ untracked),但 git add . && git commit 即可解决。

四方对比同一把尺,关键事实:

维度martinHermesfinclaw(小写)FinBayes(大驼峰)
代码量18.2K1M+21.4K32.4K(martin 18.2 + Codex 14.2)
活跃度9 周静默16h 前 commit今天 commitCodex 6 天密集但 0 commit
金融工具31 个01(实质)继承 31 个 + 1 cognition tool
事后复盘线 / 校准watchlist 字符串覆盖nudge(管 agent 记什么,不管判断对不对)schema 齐、引擎未连6.3K 行认知契约层 + Live PASS 实证
渠道 / 产品面12 渠道22 渠道 + 3 套 UI + 6 部署后端(工程天花板)FastAPI + React继承 martin 12 渠道
测试网03,763+480 全过 + FakeProvider5,580 行 + Live 30/30 PASS
设计文档后期 LLM 生成完整2,865 行与代码对齐23 份治理级文档
工程卫生CI 删uv.lock + CVEpyproject + 测试守门0 commit(最大债,可立解)
距"完整可用"距离大(要补 judgment + 测试)最大(要从零长金融层)中(要补金融工具 + scheduler,6-9 周)最近(3-5 周,已 Live PASS)

决策

  1. 新基线 = CurvatureLabs/FinBayes(大驼峰,本地工程仓)。承认 Codex 5/20-5/26 在此仓上的全部代码产出(cognition 契约层 + 新测试 + Live Kimi 30/30 PASS 实证)作为本次构建的基线资产。
  2. 第一步:把 Codex 6 天工作落 commitgit add . && git commit -m "baseline: import Codex G0→G2 closeout + Package C Live PASS"),解决"0 commit 在工作树"的工程卫生债。这是任何后续动作的前置。
  3. 保留与不再走,要分清
    • 保留:Codex 的代码(finclaw/cognition/)+ 测试(tests/test_finbayes_*)+ Live Kimi 30/30 PASS 实证。这些是阶段 1 "不退化" 的保护对象。
    • 不再走:Codex 当时规划的下一步路线(docs/design/finbayes-v2-engineering-landing.md 指向的 "G1 first-screen answerability")已过期失效——因为它锚定的是 5/26 之前的治理仓口径,而 5/27-6/6 治理仓做了多轮修订(ADR-013 / ADR-021 kelly_cap 退役 / ADR-022 术语整顿 / §9 快慢两条线方法论 / INV-15/16 加入 / owner 6/6 取消交易限制),Codex 一概不知。
    • 改走:本次重构按 owner 6/6 拍板的两阶段框架走(详见下方「执行框架」段)——阶段 1 不退化(与 Codex 规划无关)+ 阶段 2 按最新治理文档 + 反向矫正。
  4. martin / finclaw(小写) / Hermes 在此版本里的位置
    • martin:作为大驼峰 FinBayes 的上游 baseline,工具集已经继承在 finclaw/ 子包内,不需要再"借"或"移植"。
    • finclaw(小写):owner 自己之前的 FastAPI 重构项目,作为未走的路保留,不再当基线候选;它的 React 前端在团队 Web 前端集成阶段可参考。
    • Hermes:作为设计参照(学它的 steer / nudge / MCP 三 transport / Ink TUI / 工程范式如 uv.lock + CVE 跟踪),不当基线、不搬码。
  5. 执行环境:新会话在 owner 自己终端跑,能连真模型本地网关,真数据 / 真模型自己就能跑、自己验;owner 做最后验收。owner 授权与本次纪律详见下方「执行方式」段。

执行方式(owner 2026-06-06 拍板)

owner 授权:① claude/ 分支自动提交(不动 main、不跳 git hook);② Auto Mode 已开;③ 本次不加交易 / 下单 / 执行类限制(先完成完备功能集成,边界以后再定);④ 本阶段不接 FinTecEval(效果暂由 owner 在自己终端 + Codex 设计的 Package C 评测体系验)。

Auto Mode 说明:Claude Code 的 AI 权限分类器——常规安全操作(读文件、跑测试、加文件等)自动批准,危险操作(删库、push main、改密钥、跳 git hook)照旧问 owner。owner 接受由此带来的更高 token 消耗。

Dynamic Workflows / /loop / /goal / Skill 按需用、不强制:Claude Code 内置的动态工作流(一段 JS 编排脚本同时跑多个子 agent + 对抗式验证 + 断点续跑)、/loop/goal(把目标拆成"抽干一个队列直到机器可判定的完成条件")、Skill(把可复用做法写成配方文件放进 Claude Code 的 skills 目录)——这些是新会话可选的工具,哪一阶段哪一段合适就用哪一段(比如包改名机械替换、对 martin 30 case 对比、清单类审计就合适用工作流并行 + Skill 复用做法;线性的一次性步骤就别套)。不是要全套都套上

撤回 / 修订的早先论述

  • 早先版本说"新基线 = CurvatureLabs/finclaw(小写)",那是只对了三方对比(漏了大驼峰)的结论。正式作废
  • 早先版本说"FinBayes 认知核未经实证、且唯一一次同模型对照输给 martin"——这指的是旧 FinBayes 仓FinBayes(本地旧工程仓))的认知核(synthesize_cognition + MCA + S1 + posterior)。大驼峰 FinBayes 仓的 cognition 契约层是 Codex 另起炉灶的不同实现(taxonomy + DAG orchestrator + evidence model + synthesis validator),并且已经有 Live Kimi 30/30 PASS。两者别混。

执行框架(两阶段,owner 2026-06-06 追加拍板)

owner 建议把本次基线重构分两阶段,主控核后接受、且认为它比"治理对齐 + 去 martin 化并行"的早先框架更对(理由:保护 Codex 已 PASS 实证、明确"基线立得住"的闸门、承认治理仓也可能有过期项需要反向矫正)。

阶段 1:基线立得住、不退化

目标:让大驼峰 FinBayes 在 FinBayes 身份下,产品形态/能力至少与 martin 原仓持平,不出现任何退化。

步骤

  • Step 1.0 收齐 Codex 6 天工作(git add . && git commit -m "baseline: ..."
  • Step 1.1 集成审计(只读):核 Codex cognition 层是否充分用上 martin 已有能力(12 channels / cron / heartbeat / 31 工具 / ChannelCognitionPayload 全连通否)
  • Step 1.2 集成强化(如审计发现差距)
  • Step 1.3 去 martin 化 PR-1(机械改名):包名 finclaw → finbayes + 内部路径/Docker/bridge/skills/tests,约 1,000 行
  • Step 1.4 去 martin 化 PR-2(自陈文档):LICENSE / README / 删 ARCHITECTURE.md + COMMUNICATION.md / SECURITY.md 改邮箱,约 250 行
  • Step 1.5 INV-11 凭证脱敏(安全基础设施,从治理对齐工作线提前到此):搬旧 FinBayes 仓 credential_filter.py,约 150 行
  • Step 1.6 去 martin 化 PR-3(灵魂重写):bootstrap 模板 SOUL/AGENTS/USER 等 + context.py identity 硬编码完全重写,约 350 行
  • Step 1.7 退化检查 + 对 martin 对比(阶段闸门):同 case 同条件下(同模型/参数/数据源)FinBayes vs martin-Finclaw 6 维度(输出质量 / 执行效率 / token 消耗 / 成功率 / 工具调用深度 / 结构化产物完整度)只强不弱,不出现任何退化

总工作量:约 5-7 个工作日。

阶段 2:战略对齐 + 反向矫正

目标:在阶段 1 稳定基线之上,与治理仓最新上下位文档双向对齐——既把"基线该建但还没建"的部分建起来,也回写治理仓里已过期的项(如交易/执行限制按 owner 6/6 取消、某些 INV 在 Codex Live PASS 实证下是否仍是必须、8 机制/MCA 是否治理仓让步)。

步骤

  • Step 2.0 治理文档反向矫正第一波:取消交易/下单/执行限制(已知确定项)+ 评估 INV-01/INV-02 等是否调整
  • Step 2.1 上下行差距清单:分必建 / 应建 / 可推迟
  • Step 2.2 战略对齐执行:ontology 重组(MP-4 单层 task_type)、INV-15/INV-16 快慢两条线骨架、MP-5 surface 元数据、INV-02/INV-13 validator、23 份 design doc 术语整顿(ADR-022)
  • Step 2.3 战略一致性 review

总工作量:取决于反向矫正后最终留多少;粗估 2-4 周。

详细方案存放

阶段 1 完整方案(含集成审计 10 类清单 + 去 martin 化 11 项决策 + 3 PR 触达清单 + Step 1.7 闸门)存大驼峰 FinBayes 仓 handoff-anchors/2026-06-06-stage-1-baseline-not-regressed.md,不入本治理仓。阶段 2 详细方案待阶段 1 完成后展开。

边界与后果

  • 诚实完成门:完成标准只认"代码接好 + 测试过 + 没破坏原有",不拿测试全绿冒充"产品做好了"。Live 质量由 owner 在自己终端 + 阶段 1 Step 1.7 「vs martin 6 维度只强不弱」闸门 + Codex 设计的 Package C 评测方法验。
  • 包名 / 身份 / LICENSE:阶段 1 PR-1(机械改名)改包名 finclaw → finbayes、CLI 兼容别名删;阶段 1 PR-2(自陈文档)改 LICENSE Copyright → Curvature Labs(owner 11 项决策已全部接受默认建议,详见阶段 1 文档)。
  • 许可:继承 martin 的 MIT。
  • 工程产物不进治理仓:代码 / 日志 / state / 计划留大驼峰 FinBayes 仓或私有运行环境。
  • 小写 finclaw 仓的 claude/baseline-rebuild 分支作废(已在该分支头部加废止标记 commit)。该仓本身保留、作为 owner 早先 FastAPI 重构项目("未走的路")。

关系

  • 取代早先版本的 ADR-024 决议(选小写 finclaw 那版)。
  • ADR-023 · 方案 Z 对 martin 立场修正:martin 作为大驼峰 FinBayes 的上游 baseline 已经被继承,方案 Z「不直接 rebase martin 单体」仍守(我们用的是 owner 2026-05-20 主动 import 的本地副本 + Codex 6 天改造,不是 fork martin 公开仓)。
  • 详细执行方案 / 交接事实源存大驼峰 FinBayes 仓 handoff-anchors/,不入本治理仓。