跳到主要内容

FinBayes M0 工程化文档包 C-1 独立工程实施 Review

执行摘要

【Inference】M0 文档包足以支撑 C-1 启动,但只足以支撑“按 M0 最小子集落 cognition/types.py + 对完整 1.1 留兼容壳”,不支持一次性落完整 1.1 全 validator。字段表、Pydantic 草案、fixture、CI 接口和反查入口已成型;真正卡点是 1.0 主体与 1.1 minimal 合并、跨字段约束暂不落 validator、子系统接口只到 pseudo-signature、Mock fixture 只有格式没有真实样本。

8 维度评分表

维度分数证据 / 推断
1. 字段完整性4【Evidence】契约源列出 6 个新增顶层字段与 MCA 元数据:projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:20projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:31;子模型覆盖 §2.1-§2.7,完整草案到 StructuredCognitionResult11projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:35projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:95projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:143projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:300。【Inference】可转 Pydantic v2;但 M0 §3.5 另建 minimal,不是一份完整模型。
2. 接口签名3【Evidence】M0 包列 6 通路子系统 22 implement + 12 stub:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:96projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:113;4 认知子系统有方法签名:projects/finbayes/engineering/subsystems/knowledge-graph-service.md:26projects/finbayes/engineering/subsystems/consistency-middleware.md:27projects/finbayes/engineering/subsystems/mca-classifier.md:42projects/finbayes/engineering/subsystems/eval-harness.md:28;退出码 / 异常层级见 projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:788projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1316。【Inference】足够定骨架;运行时异常语义仍偏粗。
3. 测试可执行性4【Evidence】样例输入给可 evalpytest_checkprojects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:903projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:966;schema 单测、contract 目录、credential isolation、sample runner 有接口规范:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1613projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1636projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1672projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1725。【Inference】可直接写 pytest;但 eval 和省略号仍需实施者补安全细节。
4. 数据 fixtures3【Evidence】Mock LLM fixture 目录、hash、index、单条格式、drift 检测均有规范:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:805projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:811projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:825projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:860projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:871projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:893;凭证 negative fixture 有 5 类:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:970。【Inference】路径清楚,但缺真实 fixture 内容、固定 hash、工具 mock payload。
5. 错误处理 contract4【Evidence】BoundaryResult、exit code、AuditEvent payload、同步写入 boundary_rejected、凭证正则 / detector 均已锁:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:144projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:621projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:703projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:788projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1018projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1083。【Inference】边界拒收和凭证隔离足够实现;Provider/fixture/schema drift 的运行时恢复仍不完整。
6. 跨子系统调用3【Evidence】4 子系统输出分工在索引表:projects/finbayes/engineering/subsystems/README.md:22;接口对齐见 KGS projects/finbayes/engineering/subsystems/knowledge-graph-service.md:150、S1 projects/finbayes/engineering/subsystems/consistency-middleware.md:144、MCA projects/finbayes/engineering/subsystems/mca-classifier.md:147、Eval projects/finbayes/engineering/subsystems/eval-harness.md:158;M0 均是 fixture / stub 起步:KGS projects/finbayes/engineering/subsystems/knowledge-graph-service.md:163、S1 projects/finbayes/engineering/subsystems/consistency-middleware.md:157、MCA projects/finbayes/engineering/subsystems/mca-classifier.md:160、Eval projects/finbayes/engineering/subsystems/eval-harness.md:172。【Inference】足够做类型引用,不足以做真实协作行为。
7. 单次 load 负载3【Evidence】topic 包声明 18 个 source、max_tokens: 8000、单源 1500:for-agents/topics/finbayes-m0-implementation/agent-pack.yaml:13for-agents/topics/finbayes-m0-implementation/agent-pack.yaml:91;本地 wc -w:四个核心入口合计 11,392 words,M0 包 7,560,契约源 1,743,基线审计 1,787,agent-pack 302。【Inference】全量载入超预算;C-1 应最小加载 agent-pack → 契约源 → M0 §3.5 / §14.5。
8. 反查路径4【Evidence】llms.txt 要求 source refs 与 mode 消费:for-agents/llms.txt:18for-agents/llms.txt:24;manifest 指向 topic pack:for-agents/manifest.json:154for-agents/manifest.json:169;契约源自称 1.1 schema 单点派生源:projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:14;M0 §3.5 只列最小子集并回指契约源:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:121projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:228。【Inference】反查路径总体单点;需主动区分完整契约 vs M0 minimal。

C-1 task 模拟:具体卡点

  1. 【Evidence】完整草案 s1 必填:cognition-1.1-contract.md:300;M0 minimal 里 s1 可空:m0-walking-skeleton.md:380。【Inference】写 types.py 时会卡“C-1 要完整必填,还是 M0 可空 stub”。
  2. 【Evidence】M0 要求序列化层合并成单一 JSON:m0-walking-skeleton.md:383,但 1.0 主体和 1.1 minimal 分属两个类:m0-walking-skeleton.md:211m0-walking-skeleton.md:380。【Inference】实施者必须自创 merge function / combined model。
  3. 【Evidence】契约源列 12 条跨字段约束:cognition-1.1-contract.md:128,又说落盘时用 model_validatorcognition-1.1-contract.md:311;M0 包却说 M0 不落 @model_validatorm0-walking-skeleton.md:399。【Inference】“完整 1.1 schema”与“M0 不落 validator”会产生任务解释冲突。
  4. 【Evidence】Mock fixture 只有目录和示意格式:m0-walking-skeleton.md:811m0-walking-skeleton.md:871。【Inference】schema 单测不阻塞;M0 sample runner 会缺可运行 fixture。
  5. 【Evidence】M0 task packet 必须携带 working_directory,实际路径不写入本仓:m0-walking-skeleton.md:1194m0-walking-skeleton.md:1218。【Inference】独立接手 C-1 若没有 task packet,会先卡 cwd。

缺失清单

  • 【Evidence】完整模型草案未内嵌 1.0 十要素,只注释“沿用 1.0”:cognition-1.1-contract.md:300。【Inference】直接从契约源生成单一模型会缺主体字段。
  • 【Evidence】M0 §3.5 注释路径是 contract_v1_1_m0.pym0-walking-skeleton.md:245;C-1 输出目标却是 cognition/types.py,基线审计也识别过路径漂移:governance/workstreams/finbayes-arch-rewrite/2026-05-28-pre-engineering-docs-audit.md:87。【Inference】import surface 需统一。
  • 【Evidence】sample runner 用受限 eval,但未给安全解析器:m0-walking-skeleton.md:1757。【Inference】测试能写,但安全实现要补。
  • 【Evidence】M0 regulation_status 整体 stub:m0-walking-skeleton.md:238;完整契约要求 MCA 轴 3 = F2/F3 时必选:cognition-1.1-contract.md:137;基线报告把此列为 P2 注释缺口:2026-05-28-pre-engineering-docs-audit.md:90。【Inference】应显式固定 M0 fixture 默认 F1,否则 validator / fixture 会打架。
  • 【Evidence】topic acceptance 包含 .archon/workflows/milestone-M0.yaml 存在性检查:agent-pack.yaml:107。【Inference】这属于 M0 workflow 验收,不应阻塞 C-1 schema PR。

修复建议

P0

  • 【Inference】C-1 packet 写死 scope:cognition/types.py 落 1.0 主体 + StructuredCognitionResult11Minimal + MCABucketM0;完整 1.1 子模型可导出,但 M0 不启用完整 validator。证据:M0 双 schema 并存与 M1+ 合并说明 m0-walking-skeleton.md:383m0-walking-skeleton.md:386
  • 【Inference】补合并输出接口,例如 merge_cognition_result_v1_1(base, extension) -> dict,并在 §14.5 schema tests 断言 structured_result_version == "1.1"。证据:m0-walking-skeleton.md:383
  • 【Inference】在 M0 §3.5 或 C-1 packet 明确 mca_bucket.axis_3_institutional_friction = "F1" 的默认 fixture 约束。

P1

  • 【Inference】把 contract_v1_1_m0.py 注释统一为最终并入 src/finbayes/cognition/types.py
  • 【Inference】为 5 条 LLM fixture 给最小可运行 JSON 和固定 hash。
  • 【Inference】把 12 条跨字段约束分成 M0 enforced / M0 documented only / M1+ enforced 三列。

P2

  • 【Inference】将 pytest_checkeval 改成小型断言 DSL 或明确 allowlist helper。
  • 【Inference】topic 包保留 18 source,但给 C-1 最小加载序列:agent-pack → cognition-1.1-contract → m0 §3.5 → m0 §14.5。
  • 【Inference】.archon workflow 存在性检查降为 M0 workflow 验收,不进 C-1 schema gate。

与 Claude 视角预期差异

  • 【Evidence】基线报告判断“P0 修完即可启动 C-1”:2026-05-28-pre-engineering-docs-audit.md:129。【Inference】工程视角同意可启动,但首 PR 应限于 schema surface,不承诺完整 1.1 行为 validator。
  • 【Evidence】基线报告重点是死链、字段数漂移、跨文档措辞:2026-05-28-pre-engineering-docs-audit.md:77。【Inference】本 review 更关注代码会卡的双模型合并、fixture 缺样本、validator 时机、cwd/task packet。
  • 【Evidence】Claude 侧把 regulation_status stub 冲突列为 P2:2026-05-28-pre-engineering-docs-audit.md:90。【Inference】治理上非 P0;代码实现上若写 validator,会直接影响测试期望,需在 C-1 前注释清楚。

最终判断

【Inference】可以启动 C-1,但启动条件应写成:按 M0 最小子集落 Pydantic v2 schema、保留完整 1.1 类型草案反查路径、暂不启用完整跨字段 validator、用单测锁定 1.0 主体 + 1.1 minimal 合并 JSON。若目标是“一次性完整落 StructuredCognitionResult 1.1 全字段 + 全 validator + 4 子系统行为”,当前文档包还不够。