跳到主要内容

Step 7 · Round 2 Codex 工程实施 Review

执行摘要

【Evidence】Step 6 commit 1419939 已落 4 个新事实源,并修订 M0 pack、1.1 契约源、4 子系统、readiness、status / sync / INDEX 等;npm run verify:kbnpm run derive:check 本轮实跑通过。
【Inference】Round 1 的主要 C-1 启动威胁大多关闭:字段完整性 4→4.5,接口签名 3→4,测试可执行性 4→4,数据 fixtures 3→3.5,错误处理 4→4.5,跨子系统调用 3→4,单次 load 3→3,反查路径 4→4.5。保真度估算从约 88-90% 升至 93-94%;若把“C-1 只做 schema surface + import smoke”作为启动定义,可启动;若要求 ≥95% 且能直接进入 pytest/fixture 执行,当前基线还差 3 个工程级缺口。

17 项 closure 表

结论Evidence / Inference
C-A 10 要素完整模型关闭【Evidence】契约源 §1 明列 10 要素 inline,§5 新增 StructuredCognitionResultV10BodyStructuredCognitionResultFullV11projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md:22-31:302-357。【Inference】Round 1 “只注释沿用 1.0”已关。
C-B 4 子系统 11 placeholder基本关闭【Evidence】4 子系统均补 placeholder 段,覆盖 MarketStateWindowStructuredCognitionResultDraftGroundTruthCaseInputAnnotatedCaseSLAWindowIAAReportSemiManualQualityReportAxisLevelCalibrationWindowCalibrationReportprojects/finbayes/engineering/subsystems/knowledge-graph-service.md:82-92consistency-middleware.md:74-84eval-harness.md:84-143mca-classifier.md:85-116。【Inference】import 链可按文档补;字段语义仍是 M0 placeholder。
C-C 5 fixture 全 crypto部分关闭【Evidence】M0 §8 改为 ETH/BTC/API key/BTC ETF/BTC 下单拒收,且 §7 末写 5 条 YAML 片段与 crypto-only 约束:m0-walking-skeleton.md:931-987:989-1041。【Inference】原“美联储 / AAPL 越界”关闭;但仓内没有实际 tests/m0/fixtures/samples/*.yaml 文件,仍是“照写”材料。
C-D 字段宽紧矩阵部分关闭【Evidence】新矩阵列 s1 / worst_axis / tag_version / regulation_status 的 M0-M2 状态与 regression 触发:milestone-field-evolution-matrix.md:18-31。【Inference】Round 1 四个冲突能反查;但只覆盖 4 字段,不覆盖所有 1.1 Optional→required 演化。
C-E ConfigDict 合并语义关闭【Evidence】契约源锁定多继承顺序、extra="ignore" 覆盖、序列化口径与 merge 函数:cognition-1.1-contract.md:360-370。【Inference】双 ConfigDict 歧义已关。
C-F AuditWriter 三层 fallback基本关闭【Evidence】AuditWriter._write_sync 主 SQLite → JSONL → stderr + raise:m0-walking-skeleton.md:1552-1595,约束说明回放与 exit 90::1614-1618。【Inference】零丢失承诺比 Round 1 强;stderr 兜底若事件构造错误仍可能泄露 payload,需 C-1 实现时用脱敏 processor 包住。
C-G 半人工 SLA M0 接入关闭【Evidence】M0 区分模型自动产出与允许人工覆盖字段:m0-walking-skeleton.md:1043-1060;契约源 §7 列人工覆盖与必须自动产出:cognition-1.1-contract.md:381-393。【Inference】原 SLA 悬空已关。
C-H exit code namespace关闭【Evidence】退出码 71 给 FinBayesError 默认,70 保留 Exception 兜底,90 给 audit 故障:m0-walking-skeleton.md:793-824:1426-1460。【Inference】Round 1 catch 语义冲突已关。
C-I Task.mca_bucket关闭【Evidence】Task 补 `mca_bucket: "MCABucketM0
C-J extra=ignore 注释关闭【Evidence】M0 _BaseM0 与契约源均说明 extra="ignore" 是兼容策略:m0-walking-skeleton.md:274-277:403-409cognition-1.1-contract.md:354-363。【Inference】“疏忽还是设计”已关。
L-A PR checklist关闭【Evidence】.archon/workflows/pr-review-checklist.md 新增 10 项 gate,含契约、ADR、verify、derive、接口闭合、state ledger:.archon/workflows/pr-review-checklist.md:13-30
L-B 代码 vs ADR 归口基本关闭【Evidence】anti-bloat guard §2 补实施细节 vs 契约调整归口:projects/finbayes/engineering/architecture-anti-bloat-guard.md:28-30。【Inference】规则有了;自动 enforcement 未有。
L-C ADR INDEX / namespace基本关闭【Evidence】新 decisions/INDEX.md 声明 arch-rewrite namespace 与跨工作流前缀;主架构也补 namespace 说明:governance/workstreams/finbayes-arch-rewrite/decisions/INDEX.md:11-36projects/finbayes/engineering/architecture.md:4646-4658。【Inference】反查已改善;主架构仍保留“全局唯一”旧行,靠下一行 namespace 修正,读者仍需细读。
L-D owner map部分关闭【Evidence】pending-decisions-owner-map.md 聚合 27 项,列 owner / 拍板时点:projects/finbayes/engineering/pending-decisions-owner-map.md:11-25:27-62。【Inference】F5 关闭;但 worst_axis 同时出现在 MP-2 与 DA-6,归口有重复。
L-E proposal 物理归档关闭但遗留旧口径【Evidence】文件已在 governance/proposals/accepted/2026/,frontmatter 写 promoted:governance/proposals/accepted/2026/2026-05-28--finbayes-cognition-mechanism-output-extension-to-adr008.md:1-12;本轮 test -f inbox/... 为不存在。【Inference】F3 关闭;但正文仍写“5 字段 + mca_tag”:同文件 :187-204,可能污染审计阅读。
L-F 状态账本回写基本关闭【Evidence】cognition status Phase 9 已完成:governance/workstreams/finbayes-cognition-system-research/status.md:50-63;sync plan 已写 ADR-008 supplement accepted 并可推进:governance/workstreams/finbayes-whitepaper-v3-downstream-sync/sync-plan-adr007-supplement.md:64-79。【Inference】F2/F4 关闭。
L-G 持续构建 / 反向传播部分关闭【Evidence】strategic-whitepaper、subsystems README、architecture §29 均保留 accepted(持续构建)语义:projects/finbayes/strategic-whitepaper.md:351projects/finbayes/engineering/subsystems/README.md:39projects/finbayes/engineering/architecture.md:5986。【Inference】主链关闭;全仓仍有历史 proposal / drafts 旧“5 字段”“6 轴”文本,需靠语境白名单。

8 维度评分对比表

维度Round 1Round 2变化
字段完整性44.510 要素 + FullV11 + Task.mca_bucket 已补;M0 类缺 schema_version 扣分。
接口签名3411 placeholder 关断 import 断链;仍是 placeholder 语义。
测试可执行性44CI 接口仍是规范非实现;eval runner 仍存在。
数据 fixtures33.55 条 crypto YAML 片段已给;未落实际 fixture 文件,hash 实现仍是接口。
错误处理 contract44.5exit namespace + AuditWriter fallback 成型;stderr payload 脱敏需实现锁。
跨子系统调用344 子系统正交关系 + placeholders + Task.mca_bucket 已清楚。
单次 load 负载33agent-pack 仍 max_tokens: 8000,却含多个 full source;readiness 又写“budget ~22K token”:for-agents/topics/finbayes-m0-implementation/agent-pack.yaml:13-1192026-05-28-pre-engineering-readiness.md:142
反查路径44.5INDEX / owner map / matrix / checklist 都补齐;accepted proposal 旧口径是残留噪声。

新引入威胁清单

  1. 【Evidence】M0 文档仍声明“所有 Pydantic 模型含 schema_version”,contract 测试也断言所有 BaseModel 有字段:m0-walking-skeleton.md:28:1820-1829;但 §3.5 _BaseM0 与所有 *M0 类没有 schema_version:274-400。【Inference】C-1 若把 §3.5 类纳入 test_pydantic_schema_stability.py,会直接失败。这是 Step 6 后仍未关的最高优先级工程风险。
  2. 【Evidence】§7 称 5 条 fixture “落于 tests/m0/fixtures/samples/”,但本仓 rg --files 未找到该目录 / 文件;文档只提供 YAML 片段:m0-walking-skeleton.md:989-1041。【Inference】fixture 从“缺样本”升为“可照写”,尚未到“可执行”。若 C-1 task 以治理库文档为唯一输入,仍需手工复制。
  3. 【Evidence】accepted proposal 正文仍保留旧字段口径“5 个新字段”“mca_tag”“structured-result-version”:governance/proposals/accepted/2026/2026-05-28--finbayes-cognition-mechanism-output-extension-to-adr008.md:187-206;正式契约已是 6 顶层字段 + mca_bucket + structured_result_versioncognition-1.1-contract.md:20-31。【Inference】审计链里存在旧口径,虽非当前事实源,但会误导新 reviewer。
  4. 【Evidence】pending-decisions-owner-map.md 同时把 worst_axis 列为 MP-2 必拍 C-1 与 DA-6 直接出 ADR:pending-decisions-owner-map.md:21-23:50-51。【Inference】同一决策出现两个归口路径,C-1 时可能重复拍板或绕开 owner。
  5. 【Evidence】Mock hash 仍只给 docstring,代码里写“详细实现见工程实施仓”:m0-walking-skeleton.md:869-881;nightly drift 又要求字段级 diff fail::916-923。【Inference】hash 确定性仍是实施者自创,fixture drift gate 的可重复性未完全锁定。
  6. 【Evidence】agent-pack max_tokens: 8000 / per_source_tokens: 1500,但 source 包含 M0、契约源、矩阵、data-splits、ADR-008、ADR-003 等 full:for-agents/topics/finbayes-m0-implementation/agent-pack.yaml:13-97。【Inference】单次 load 负载威胁未恶化但未关闭,≥95% 保真度不能把它算满。

仍漏盲点(本轮特意找)

  • 【Evidence】verify:kb / derive:check 均通过;但它们不检查 Pydantic schema_version 闭合、真实 fixture 文件存在、proposal 正文旧口径、owner map 重复归口。【Inference】治理校验绿灯不能证明 C-1 工程入口 ≥95%。
  • 【Evidence】M0 §3.5 仍用 # src/finbayes/cognition/contract_v1_1_m0.py 注释:m0-walking-skeleton.md:249,而 C-1 输出仍期望 cognition/types.pyfor-agents/topics/finbayes-m0-implementation/agent-pack.yaml:99-102。【Inference】Round 1 的路径漂移只被契约源部分修正,M0 pack 注释仍可能让实现分叉。
  • 【Evidence】AuditWriter fallback 2 把完整 event JSON 写 stderr:m0-walking-skeleton.md:1588-1595。【Inference】只要上游 boundary payload 构造错误,fallback 会把不该落盘的 payload 写日志;C-1 需把 fallback 也纳入凭证隔离测试。

C-1 启动决议

【Inference】“当前基线 ≥95% 保真度”不成立;我估算为 93-94%
【Inference】但“启动 C-1 第一 PR”成立,前提是 C-1 scope 明确收缩为:cognition/types.py schema surface + 1.0/1.1 合并 + import smoke + 最小 fixture 文件落盘,不承诺完整 1.1 validator / 真实子系统行为。
【Unknown】若实施仓已有额外 task packet、fixture 文件或代码 scaffold,本仓证据不能证明;本报告只按治理仓当前文件判断。

与 Round 1 的差异 + 元 review

【Evidence】Round 1 最终判断是“可启动 C-1,但首 PR 限 schema surface,不承诺完整 1.1 全 validator”:governance/workstreams/finbayes-arch-rewrite/2026-05-28-step3-codex-review-report.md:72-74
【Inference】Round 2 的差异是:Step 6 确实把 Round 1 的“解释冲突”大多变成“有单点可查的实现约束”;剩余问题从“文档不知道该怎么写”转为“文档让 Codex 照写时仍会漏测试/文件/命名细节”。
【Inference】互换 Round 1 的盲点多数也已吸收:undefined types、Task.mca_bucket、exit code、AuditWriter、proposal 物理归档、sync/status drift 都关掉或基本关掉。新盲点集中在二阶一致性:文档内代码块与自身 contract test 的一致性、accepted 归档物正文旧口径、owner map 的重复归口。
【Evidence】本轮实跑 npm run verify:kb 输出 links/content-hygiene 通过,npm run derive:check 输出 check passed。
【Inference】Step 6 可以作为 Step 7 后 C-1 启动基线,但报告建议把启动口径从“≥95% 保真”改成“条件启动,已知 3 个 C-1 前置小修:M0 类 schema_version、fixture 文件实体化、proposal/owner-map 旧口径清理”。