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:20、projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:31;子模型覆盖 §2.1-§2.7,完整草案到 StructuredCognitionResult11:projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:35、projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:95、projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:143、projects/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:96、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:113;4 认知子系统有方法签名:projects/finbayes/engineering/subsystems/knowledge-graph-service.md:26、projects/finbayes/engineering/subsystems/consistency-middleware.md:27、projects/finbayes/engineering/subsystems/mca-classifier.md:42、projects/finbayes/engineering/subsystems/eval-harness.md:28;退出码 / 异常层级见 projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:788、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1316。【Inference】足够定骨架;运行时异常语义仍偏粗。 |
| 3. 测试可执行性 | 4 | 【Evidence】样例输入给可 eval 的 pytest_check:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:903、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:966;schema 单测、contract 目录、credential isolation、sample runner 有接口规范:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1613、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1636、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1672、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1725。【Inference】可直接写 pytest;但 eval 和省略号仍需实施者补安全细节。 |
| 4. 数据 fixtures | 3 | 【Evidence】Mock LLM fixture 目录、hash、index、单条格式、drift 检测均有规范:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:805、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:811、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:825、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:860、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:871、projects/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. 错误处理 contract | 4 | 【Evidence】BoundaryResult、exit code、AuditEvent payload、同步写入 boundary_rejected、凭证正则 / detector 均已锁:projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:144、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:621、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:703、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:788、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:1018、projects/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:13、for-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:18、for-agents/llms.txt:24;manifest 指向 topic pack:for-agents/manifest.json:154、for-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:121、projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md:228。【Inference】反查路径总体单点;需主动区分完整契约 vs M0 minimal。 |
C-1 task 模拟:具体卡点
- 【Evidence】完整草案
s1必填:cognition-1.1-contract.md:300;M0 minimal 里s1可空:m0-walking-skeleton.md:380。【Inference】写types.py时会卡“C-1 要完整必填,还是 M0 可空 stub”。 - 【Evidence】M0 要求序列化层合并成单一 JSON:
m0-walking-skeleton.md:383,但 1.0 主体和 1.1 minimal 分属两个类:m0-walking-skeleton.md:211、m0-walking-skeleton.md:380。【Inference】实施者必须自创 merge function / combined model。 - 【Evidence】契约源列 12 条跨字段约束:
cognition-1.1-contract.md:128,又说落盘时用model_validator:cognition-1.1-contract.md:311;M0 包却说 M0 不落@model_validator:m0-walking-skeleton.md:399。【Inference】“完整 1.1 schema”与“M0 不落 validator”会产生任务解释冲突。 - 【Evidence】Mock fixture 只有目录和示意格式:
m0-walking-skeleton.md:811、m0-walking-skeleton.md:871。【Inference】schema 单测不阻塞;M0 sample runner 会缺可运行 fixture。 - 【Evidence】M0 task packet 必须携带
working_directory,实际路径不写入本仓:m0-walking-skeleton.md:1194、m0-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.py:m0-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:383、m0-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_check的eval改成小型断言 DSL 或明确 allowlist helper。 - 【Inference】topic 包保留 18 source,但给 C-1 最小加载序列:agent-pack → cognition-1.1-contract → m0 §3.5 → m0 §14.5。
- 【Inference】
.archonworkflow 存在性检查降为 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_statusstub 冲突列为 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 子系统行为”,当前文档包还不够。