Step 11 · 4 整改包详细可执行方案
0. 总览
| 包 | 解决根因 | 关闭问题 | 工作量 | 信心提升 | 优先级 |
|---|---|---|---|---|---|
| III 决策权分级 + AI 三方互审 + 真人 owner | 根因 3 | Cat E 6 项 + R1 主控 fresh-eyes | 1.5-2.5 天 | +6-9% | P0 |
| IV 自动校验 cross-section + agent-pack 修复 + review 范式 | 根因 4 | Cat F+G+H 11 项 | 2.5-4 天 | +8-10% | P0 |
| II 承接生成器 + 工程包模板 + Archon gate | 根因 2 | Cat D 7 项 | 2-3 天 | +5-8% | P1 |
| I contracts/ 单一事实源层 | 根因 1 | Cat A+C 24 项 / 40% | 3-5 天 | +10-15% | P1 |
总工作量:9-14.5 天;总信心提升:+29-42 pp(从 65% 起步 → 84-90%)。
用户拍板已反映:
- 整改包 I 详细方案保留(用户决定建 contracts/)
- 整改包 III §3.5 用 AI 三方互审 + 人类决策混合方案(不只用 a 或 b)
1. 整改包 III · 决策权三档分级 + AI 三方互审 + 真人 owner 时间表
1.1 目标
把 27 项 owner map 从平级"AI 双签"重新分类为 P0 / P1 / P2 三档;建立 AI 三方互审 + 人介入机制;写"真人 owner 招募时间表"。
1.2 解决根因 + 关闭问题
- 根因 3(AI 自决策网络无法承担产品立场决策)
- Cat E 6 项:AI 自循环 / MP-3 inline / 法务 owner 待指定 / 主控 fresh-eyes 二阶 / 商业承诺无验证 / Phase 5 owner 空挂
1.3 详细动作清单
Action III-1:重写 projects/finbayes/engineering/pending-decisions-owner-map.md(0.5 天)
按以下 schema 重新分类 27 项:
# 每项 owner 字段格式 (从平级"AI 双签" → 三档)
P0_strategic_invariant:
- id: MP-3
issue: "kelly_cap × 不直接下单战略不变量下游消费协议"
decision_category: "产品立场(战略不变量级)"
owner: "人类用户(必须签字)"
ai_advisory: "Claude 主控 + Codex 起草建议方案"
blocking: "C-1 启动前必关闭"
signing_protocol: |
1. AI 三方起草(Claude 主控 + Codex + OOSO/Cursor 第三方)
2. 人类用户审 + 签字(audit trail 段含 user_id + timestamp + signature)
3. 落 ADR-007/008 supplement 显式条款,不接受 PR audit trail inline 30 min 决议
- id: DA-1
issue: "数据 license 合规裁决"
decision_category: "合规底线"
owner: "法务 owner(待招募,M1 启动前 2 月到位)"
ai_advisory: "Claude 主控 + Codex 整理 19 数据源 license 矩阵"
blocking: "M1 启动前必关闭(M0 mock 不阻塞)"
# ... DA-2 / DA-3 / DA-4 同 DA-1 模板
P1_engineering_contract: # AI 三方互审 + 真人 30 天内回查
- id: MP-1
issue: "字段名/数据类型细节"
decision_category: "工程契约(无战略不变量影响)"
owner: "Claude 主控 + Codex + [第三方 AI 角色] 三方互审"
human_owner: "工作流维护者(30 天内回查 audit trail)"
review_protocol: |
1. Claude 主控起草 spec
2. Codex 工程实施 review(fresh eyes 一阶)
3. 第三方 AI 角色(OOSO/Cursor/Hermes 选一)独立 review(fresh eyes 二阶)
4. 三方一致 → 决议 + 写入 audit trail
5. 工作流维护者 T+30 天内回查 audit trail,可触发 P0 升级
blocking: "C-1 不阻塞"
# ... MP-2/4/5 / DA-5/6 / RX-5 / Phase 5 首季 owner 模板
P2_implementation_detail: # AI 双签即可
- id: ...
decision_category: "工程实施细节(字段语义/fixture/测试断言/错误码)"
owner: "Claude 主控 + Codex 双签"
review_protocol: "PR audit trail inline 决议 OK"
blocking: "C-1 不阻塞"
27 项分类决议(基于 Step 10 主控视角 + Codex 视角综合判断):
| 档 | 数量 | 项 ID 列表 |
|---|---|---|
| P0(人类必签) | 5 | MP-3, DA-1, DA-2, DA-3, DA-4 |
| P1(AI 三方互审 + 人 30 天回查) | 8 | MP-1, MP-2, MP-4, MP-5, DA-5, DA-6, RX-5, Phase5-NS-eval-owner |
| P2(AI 双签 + PR inline) | 14 | 其余字段语义/工程细节 |
Action III-2:写"真人 owner 招募时间表",挂到 pending-decisions-owner-map.md 末尾 + Archon milestone 日历(0.25 天)
human_owner_recruitment_schedule:
- role: "金融领域专家"
purpose: "RX-5 8 机制定义挑战 + B7 桶 case 库扩充"
deadline: "M0 期间召集(T0+30 天前确认到位)"
fallback: "Phase 5 首季评估时由 EvalHarness reviewer 召集"
- role: "法务 owner"
purpose: "DA-1~DA-4 4 ADR 真人签字 + Provider license 矩阵审"
deadline: "M1 启动前 2 月到位"
fallback: "M0 走 mock 不阻塞,M1 前若未到位则暂停 Provider 真接入"
- role: "数据治理 owner"
purpose: "DA-3 跨源仲裁 + DA-4 历史回填窗口"
deadline: "M1 启动前 1 月到位"
fallback: "同上"
- role: "数据科学家 / 半人工标注 reviewer"
purpose: "Phase 5 首季评估 owner(T0+3 月)"
deadline: "T0+2 月前到位(招募 + 培训 1 月)"
fallback: "T0+3 月若未到位,Phase 5 评估延后 1 月"
- role: "UX"
purpose: "M3 多入口 Web UI / M1 候选两步契约 UI"
deadline: "M1 启动前 1 月到位"
fallback: "M1 范围只做 CLI + TUI,UI 推迟 M2"
Action III-3:改 governance/workstreams/finbayes-arch-rewrite/decisions/ADR-003-工程实施栈与协作.md(0.25 天)
补 fresh-eyes 二阶原则(spec 起草人不当自己 spec reviewer):
## fresh-eyes 二阶原则(新增)
### 一阶(已有)
实施者不当自己代码的 PR reviewer。
### 二阶(本次新增)
**spec 起草人不当自己 spec 的 PR reviewer**。
原因:spec 起草人(Claude 主控 / Codex)作为 AI 同时承担 spec 起草 + PR review 时,
"承认自己 spec 错"的心理成本极低(只是改文档),"承认自己作为 reviewer 错过 spec bug"
的心理成本极高(要重 review),存在结构性 bias。
### 应对(用户拍板:AI 三方互审 + 人介入)
1. P0 决策(战略不变量 / 合规底线):**人类用户必签**,AI 三方仅起草建议
2. P1 决策(工程契约层):**AI 三方互审**(Claude 主控 + Codex + 第三方 AI 如 OOSO/Cursor/Hermes 选一)
3. P2 决策(工程实施细节):AI 双签可
4. **每个 milestone 至少 1 个 PR gate 由人类工作流维护者亲自走**(不只签字,亲自 review 关键 PR)
5. M0 验收人工 5 条 checklist 评分人**必须**含真人维护者(不能仅 AI)
Action III-4:加 .archon/workflows/pr-review-checklist.md 第 11 项(0.1 天)
## 11. P0 决策触及检查
每个 PR 必须 grep 是否触及 owner map 中 P0 项(MP-3, DA-1~DA-4 等)。
- 若触及 P0 → PR 必须 attach 人类签字 audit trail 段(user_id + timestamp + signature)
- 若仅触及 P1 → PR 必须 attach AI 三方互审记录(Claude + Codex + 第三方 AI 各自 review 摘要)
- 若仅触及 P2 → 走默认 AI 双签 inline
校验脚本:scripts/audit_p0_decision_touch.mjs(属于整改包 IV)
Action III-5:M1 范围加"商业信号采集"占位任务(0.2 天)
承接战略白皮书 §15 三类商业未决(单位经济 / 留存竞争 / L1-L3 商业强度)。
写入 engineering-packs 中 m1-state-confirmation 占位 pack(属于整改包 II)。
Action III-6:v3-downstream-sync 7 项 P0 audit 或显式标"M0 期间不依赖"(0.2 天)
读 governance/workstreams/finbayes-whitepaper-v3-downstream-sync/status.md,对当前 active 工作流的 7 项 P0 做:
- 选 a:逐项 audit 是否 M0 启动依赖;不依赖的标"M0 不阻塞,M1 前关闭";依赖的关闭后启动
- 选 b:主控声明"M0 期间不依赖未关闭 7 项 P0",附 audit 证据段
1.4 工作量分解
| Action | 工作量 |
|---|---|
| III-1 重写 owner map 27 项三档分类 | 0.5 天 |
| III-2 真人 owner 招募时间表 | 0.25 天 |
| III-3 改 ADR-003 加 fresh-eyes 二阶 | 0.25 天 |
| III-4 加 PR checklist 第 11 项 | 0.1 天 |
| III-5 M1 商业信号采集占位 | 0.2 天 |
| III-6 v3-downstream-sync 7 P0 处置 | 0.2 天 |
| 合计 | 1.5 天(+ 0.5 天 buffer) |
1.5 验收标准
-
pending-decisions-owner-map.md27 项全部分到 P0/P1/P2 一档,无遗漏 - P0 5 项每项都有 signing_protocol 段
- P1 8 项每项都有 AI 三方互审 review_protocol 段
- 真人 owner 招募时间表 5 个角色全部有 deadline + fallback
- ADR-003 fresh-eyes 二阶原则成文 + AI 三方互审协议落地
- PR checklist 第 11 项可执行(含具体 grep 规则)
- v3-downstream-sync 7 P0 audit 或显式标"M0 不依赖"
1.6 风险 + 兜底
- 风险 1:第三方 AI 角色(OOSO/Cursor/Hermes)当前未集成在仓内工作流。
- 兜底:ADR-003 写"第三方 AI 角色暂定 OOSO;若 OOSO 不可用降级为 Hermes 或人类工作流维护者直接 review;M1 启动前正式选定一个常驻角色"
- 风险 2:真人 owner 招募延迟。
- 兜底:每个角色都有 fallback(M0 走 mock / Phase 5 延后 / UI 推 M2)
- 风险 3:人类用户对 P0 5 项签字延误,阻塞 C-1。
- 兜底:每项 P0 提供"主控 + Codex 起草 1 页签字建议方案"作为输入,降低人类决策成本
2. 整改包 IV · cross-section 机械校验 + agent-pack 修复 + review 范式 playbook
2.1 目标
把 verify-kb 从"形式层"升级到"内容层",自动捕获跨章节漂移;修 agent-pack budget 实际不符;把"核心契约文件强制完整通读"写入 review 范式。
2.2 解决根因 + 关闭问题
- 根因 4(review 范式与文档复杂度不匹配)
- Cat F+G+H 11 项:agent-pack budget / anchor 错 / 编号错位 / 状态机数错 / 风险表数错 / safe eval / ADR stale 残留 / namespace 不一致 / 抽查失效
2.3 详细动作清单
Action IV-1:新增 scripts/audit_cross_section_consistency.mjs(1.5 天)
verify-kb 子检查脚本,含 5 个子规则:
// Rule 1: ADR 状态 propagate
// 输入:governance/workstreams/*/decisions/INDEX.md 中 accepted ADR 列表
// 动作:grep 全仓 "ADR-NNN 待写|待定|待 accepted|TBD" 残留
// fail 条件:accepted ADR 在仓内仍被引用为"待写/待定"
// Rule 2: 编号一致性
// 输入:枚举所有 S1-S9 / MP-1~MP-5 / DA-1~DA-6 / ADR-NNN 引用
// 动作:在主架构 + 工程包 + subsystems 中比对每个编号的语义
// fail 条件:同一编号在不同位置语义不同(如 §6 S2 复合任务 vs §20 S2 LLM Provider 降级)
// Rule 3: 计数一致性
// 输入:grep "N 个状态机" / "N 维评测" / "N MCA 桶" 等模式
// 动作:抽取数字 + 对比 contracts/state-machines.yaml 等 ground truth
// fail 条件:同一概念计数不一致(6 状态机 vs 5 状态机)
// Rule 4: namespace prefix
// 输入:所有 ADR-{005,006,007,008,009,010} 引用
// 动作:检查是否带 workstream/ 前缀
// fail 条件:ADR-008 引用未消歧(arch-rewrite vs whitepaper-rewrite)
// Rule 5: 路径一致性
// 输入:所有 evals/ vs eval/ 单复数引用,所有 src/finbayes/* 路径
// 动作:grep + 对比 contracts/code-paths.yaml ground truth
// fail 条件:路径与 ground truth 不一致
集成到 package.json:
"verify:cross-section": "node scripts/audit_cross_section_consistency.mjs",
"verify:kb": "node scripts/verify-kb.mjs && npm run verify:cross-section"
注意:Rule 1/3/4/5 依赖 contracts/ 目录中的 ground truth source。如果整改包 I 还没建 contracts/,先创建最小 stub(5 个 yaml 占位)保证 IV 能跑;I 完成后 stub 替换为完整 source。
Action IV-2:新增 scripts/audit_p0_decision_touch.mjs(0.5 天)
PR 时检查是否触及 owner map P0 项,配合整改包 III-4。
// 输入:git diff (PR 改的文件 + 行)
// 动作:grep diff 中是否含 MP-3 / DA-1~DA-4 / kelly_cap / unauthorized_trading / license_compliance 等 P0 关键词
// fail 条件:触及 P0 但 PR 描述无人类签字 audit trail 段
集成到 pre-commit + CI:
# pre-commit hook
node scripts/audit_p0_decision_touch.mjs --staged
# CI on PR
node scripts/audit_p0_decision_touch.mjs --base=main
Action IV-3:修 for-agents/topics/finbayes-m0-implementation/agent-pack.yaml(0.25 天)
budgets:
max_tokens: 45000 # 8000 -> 45000(实际需要 38-45K)
per_source_tokens: 4000 # 1500 -> 4000
sources:
- path: projects/finbayes/engineering/engineering-packs/cognition-1.1-contract.md
include_mode: full # spec -> full(单文件 7.3K token,必须 full)
# ... 其余 source 按实际需要调
anchors:
# 修正错锚:
- "17-边界与安全" # 替换 "27-认证密钥治理"(§27 实际是代码仓位置映射)
- "25-里程碑映射"
- "11-状态对象生命周期"
- "29-认知体系工程承接"
注意:修改后必须跑 npm run derive 更新 for-agents/topics/finbayes-m0-implementation/ 派生物。
Action IV-4:新增 commons/playbooks/document-review-paradigm.md(0.5 天)
review 范式 playbook,写入 commons 给所有项目复用:
# 文档 review 范式
## 1. 复杂度阈值 + review 范式映射
| 文档大小 | 推荐 review 范式 |
| --- | --- |
| < 30K chars / < 600 行 | 单 agent 抽查或通读均可 |
| 30K-100K chars / 600-2000 行 | 优先通读;抽查需声明覆盖率 |
| **> 100K chars / > 2000 行** | **强制完整通读,抽查决议无效**(Step 10 教训:抽查 vs 完整通读问题数 1:2.5)|
## 2. 双视角 review 协议
(写主控视角 / 工程实施视角 / 治理视角 / 三视角各自侧重)
## 3. 核心契约文件清单
(架构主文件 / 产品定义 / cognition-contract / 4 subsystems / ADR-007/008 supplement 等强制完整通读)
## 4. AI 三方互审协议(P1 级决议)
Claude 主控 → Codex 工程实施 → 第三方 AI(OOSO/Cursor/Hermes)→ 三方一致 → 决议
(写明每方关注点 / 输入输出格式 / 不一致时的升级路径)
## 5. 问题驱动 vs 根因驱动 review 切换
- 默认问题驱动(找 N 个具体问题)
- 当 N+1 轮 review 仍发现新问题且数量未明显下降 → 切到根因驱动 review(穿透到结构性根因)
- Step 10 教训:前 9 轮问题驱动不收敛,Step 10 + Step 11 切根因驱动才出方案
Action IV-5:写架构主文件回写 patch 清单(0.3 天)
把整改包 IV 之外但属于 Cat C "stale 残留" 的内容显式补回写:
patches_to_apply_post_remediation:
- file: projects/finbayes/engineering/architecture.md
line_range: "4477-4509" # §22 缺口清单
change: "ADR-004~010 列表中 ADR-004/008/010 移到 accepted;保留 ADR-005/006/007/009 待写"
- file: projects/finbayes/engineering/architecture.md
line_range: "5693-5696" # §27 业务对象映射
change: "改 \"详见 ADR-008 待\" → \"详见 ADR-008(arch-rewrite namespace, accepted)\""
- file: projects/finbayes/engineering/architecture.md
line_range: "5747-5757" # §27 输出端凭证扫描
change: "改 \"ADR-010 决策后定\" → \"ADR-010 accepted,规则见 ADR-010 §3\""
- file: projects/finbayes/engineering/architecture.md
line_range: "4987-4995" # §24 E4 风险缓解
change: "改 \"详见 ADR-010 待定\" → \"详见 ADR-010 accepted\""
- file: projects/finbayes/engineering/architecture.md
line_range: "5053-5059" # §24 风险汇总表
change: "P2 数量 9 → 11(实际列出 T2/T4/T5/B3/B4/E2/E3/E4/V2/V3/V4 共 11 个)"
- file: projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md
line_range: "2042-2043" # §15 ADR 状态
change: "改 \"ADR-010 待 accepted\" → \"ADR-010 accepted\""
- file: projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md
line_range: "971-972" # sample 3 断言
change: "把 'sk-abc123' not in str(audit_events) 改为不依赖 str() 的结构化扫描,或在 safe_globals 加 str"
- file: projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md
line_range: "1008-1056" # 5 fixture mca_bucket
change: "5 条 fixture 的 mca_bucket 七轴字段全部展开(factor_horizon/data_density/forensic_strength/narrative_dominance/correlation_phase/intervention_proximity/knowledge_coverage)"
整改包 IV 不直接 apply 这些 patch(属于 routine 修复),但把清单留给整改启动后的执行 task。
2.4 工作量分解
| Action | 工作量 |
|---|---|
| IV-1 audit_cross_section_consistency.mjs | 1.5 天 |
| IV-2 audit_p0_decision_touch.mjs | 0.5 天 |
| IV-3 agent-pack.yaml 修正 | 0.25 天 |
| IV-4 document-review-paradigm.md playbook | 0.5 天 |
| IV-5 stale 残留 patch 清单 | 0.3 天 |
| 合计 | 3 天(+ 1 天 buffer) |
2.5 验收标准
-
npm run verify:kb通过 + 自动跑 cross-section 子检查 - 跑 5 条规则各发现≥ 1 处违规(如果不发现任何违规,规则有问题)
- agent-pack.yaml 修完后
npm run derive通过,derived 物体积合理 - document-review-paradigm.md playbook 写入 commons,被 ADR-003 引用
- PR checklist 第 11 项可执行
- stale 残留 patch 清单 7 项全部落到 task list
2.6 风险 + 兜底
- 风险 1:audit_cross_section_consistency.mjs 规则 1/3/4/5 依赖 contracts/ ground truth,但整改包 I 还没建。
- 兜底:先建 contracts/ 最小 stub(5 个 yaml 占位含最关键字段),IV 跑通;I 完成后 stub 替换为完整 source。
- 风险 2:规则误报率高。
- 兜底:每条规则先 dry-run 一轮,校准白名单(如允许"deprecated 历史段保留旧引用作为 audit trail")
- 风险 3:第三方 AI 角色(OOSO/Cursor)集成成本。
- 兜底:AI 三方互审协议先用"Claude 主控 + Codex + Claude 主控(不同 sub-agent context)"作为 fallback,正式第三方角色 M0 期间确认
3. 整改包 II · 承接生成器 + 工程包模板 + Archon gate
3.1 目标
把"每个 milestone / subsystem / ADR 工程包派生"从手工劳动变成 template + Archon gate 强制承接;保证 M0 完成后 M1 工程包自动启动起草。
3.2 解决根因 + 关闭问题
- 根因 2(实施承接是手工劳动)
- Cat D 7 项:M1-M7 0 起草 / ADR-005/006/007/009 待写 / engineering/README 失修 / horizontal-concerns-bundle / §29 4 子系统未进 §27 代码路径 / goal-execution.md / 其他承接断层
3.3 详细动作清单
Action II-1:写 projects/finbayes/engineering/engineering-packs/_template/(0.75 天)
_template/
milestone-pack-template.md # 15 节占位
subsystem-pack-template.md # 9 节占位
horizontal-concern-pack-template.md # 横切包模板
README.md # 模板使用说明
milestone-pack-template.md 15 节大纲(基于 m0-walking-skeleton 提炼):
§1 范围与边界(implement/stub 表)
§2 接口子集(34 类签名表 - implement/stub/未触及)
§3 schema(Pydantic 字段定义,引用 contracts/)
§3.5 milestone 内 schema_version 子集
§4 SQLite DDL(如有)
§5 业务对象(引用 architecture.md §4 + contracts/)
§6 LLM Provider 接入要求
§7 评测维度子集
§8 sample fixtures(5-10 条 minimum 可 validate)
§9 凭证治理 fixture(5 类 negative test)
§10 凭证正则基线
§11 验收 checklist(自动 + 人工 5 条)
§12 Archon 工作流契约引用
§13 风险与降级
§14 测试目录树
§14.5 contract test
§15 ADR 引用清单(namespace prefixed)
Action II-2:写 projects/finbayes/engineering/engineering-packs/README.md(0.25 天)
目录入口,列全部 pack 清单:
# Engineering Packs
## 当前已起草
- `m0-walking-skeleton.md` — M0 implementation packet(2052 行)
- `cognition-1.1-contract.md` — Structured Cognition Result 1.1 契约源
- `data-providers.md` — 19 数据源准入
- `data-splits.md` — train/dev/test 70/20/10 + 8 label 分桶
- `eval-harness-formulas.md` — 11 维 D1-D11 公式
- `milestone-field-evolution-matrix.md` — M0/M1/M2 字段收紧
## 待起草(占位待启动)
- `m1-state-confirmation.md` — M1 候选两步写入 + Judgment Record 持久化
- `m2-task-types.md` — M2 7 任务类型扩展
- `m3-multi-entry.md` — M3 Web UI / MCP / TUI 多入口
- `m4-market-extension.md` — M4 国际市场扩展
- `m5-proactive-signal.md` — M5 主动信号 + Watchlist
- `m6-eval-loop.md` — M6 完整评估闭环
- `m7-evolution.md` — M7 演化能力
- `horizontal-concerns-bundle.md` — 横切包(logging/audit/migration/CI gate/contract regression)
## 启动协议
每个待起草 pack 由前一 milestone 收尾 gate 强制触发起草任务(见 .archon/workflows/milestone-MN.yaml)。
模板见 `_template/milestone-pack-template.md`。
Action II-3:起 M1 + horizontal-bundle 占位包(0.5 天)
不写实质内容,只用 template 起占位 + 显式标"待 M0 收尾启动":
m1-state-confirmation.md (占位 ~200 行)
- frontmatter: status: pending / blocking: M0 完成
- §1 范围: TODO(M0 收尾时起草)
- §2-§15: 占位
horizontal-concerns-bundle.md (占位 ~150 行)
- frontmatter: status: pending / blocking: M0 实施期间持续推进
- 覆盖范围: logging/audit/migration/CI gate/contract regression
- 详细内容: TODO
Action II-4:改 .archon/workflows/milestone-M0.yaml(0.25 天)
在 M0 收尾 gate 加 blocking task:
gates:
- id: m0-acceptance-gate
blocking: true
triggers_on_pass:
- task: m1-state-confirmation-pack-draft
owner: claude-controller
deadline: "T+7 days" # M0 完成后 7 天内起 M1 pack 草稿
- task: adr-005-prompt-as-data-draft
owner: claude-controller
deadline: "T+14 days"
- task: adr-006-tool-categories-draft
owner: claude-controller
deadline: "T+14 days"
- task: adr-007-state-write-two-step-draft
owner: claude-controller
deadline: "T+14 days"
- task: adr-009-error-degradation-draft
owner: claude-controller
deadline: "T+14 days"
Action II-5:改 projects/finbayes/engineering/README.md(0.2 天)
补全文档清单 + 删除 goal-execution.md 从阅读顺序:
# FinBayes 工程化文档导航
## 当前文档清单(16 份)
### 主级 (4 份)
- product-definition.md
- architecture.md
- architecture-anti-bloat-guard.md
- pending-decisions-owner-map.md
### Engineering Packs (6 份)
(引用 engineering-packs/README.md)
### Subsystems (4 份 + 入口)
(引用 subsystems/README.md)
### Archon 工作流
- .archon/workflows/milestone-M0.yaml
- .archon/workflows/pr-review-checklist.md
## 阅读顺序(Mermaid)
graph TD
A[product-definition] --> B[architecture]
B --> C[engineering-packs/]
B --> D[subsystems/]
C --> E[.archon/workflows/]
(删除:goal-execution.md 从阅读顺序,仅保留"## 历史参考"段链)
3.4 工作量分解
| Action | 工作量 |
|---|---|
| II-1 写 3 个 template | 0.75 天 |
| II-2 写 engineering-packs/README.md | 0.25 天 |
| II-3 起 M1 + horizontal-bundle 占位包 | 0.5 天 |
| II-4 改 Archon M0 gate trigger | 0.25 天 |
| II-5 改 engineering/README.md | 0.2 天 |
| 合计 | 2 天(+ 1 天 buffer) |
3.5 验收标准
- 3 个 template 文件创建,含完整 15 节 / 9 节 / 横切包结构
- engineering-packs/README.md 列全部 14 份 pack(6 已起草 + 8 待起草)
- m1-state-confirmation.md + horizontal-concerns-bundle.md 占位文件创建(status: pending)
- Archon M0 gate
triggers_on_pass含 5 项后续任务(M1 pack + 4 ADR draft) - engineering/README.md 16 份文档清单 + 阅读顺序 mermaid 不含 goal-execution.md
- goal-execution.md frontmatter status: deprecated-partial(确认)+ 移到"## 历史参考"段
3.6 风险 + 兜底
- 风险 1:占位包语义不清,可能被误读为已起草。
- 兜底:frontmatter 强制
status: pending;正文头部显式 banner"⚠️ 占位包,等 M0 收尾启动起草"
- 兜底:frontmatter 强制
- 风险 2:Archon trigger task 没有真实执行能力(Archon 是 workflow 契约不是 worker)。
- 兜底:M0 收尾时由人类工作流维护者 + 主控手动 trigger 5 项 task;Archon 仅做"未执行则 fail gate"的契约检查
4. 整改包 I · contracts/ 单一事实源层(用户拍板要建)
4.1 目标
把"跨多份 .md 重复定义的核心 schema"上抽到 contracts/ 目录的 machine-readable source,所有 .md 文档引用而非重复定义。从结构上禁止跨文档字段漂移。
4.2 解决根因 + 关闭问题
- 根因 1(单一事实源不存在)
- Cat A 14 项 + Cat C 10 项 = 24 项 / 40% 问题
4.3 详细动作清单
Action I-1:建 contracts/ 目录 + 7 个 ground truth yaml(2 天)
contracts/
README.md # 本目录性质说明 + 派生路径
structured-cognition-result.yaml # 10 要素 + 6 顶层字段 + Task 元数据
state-machines.yaml # 6 状态机定义
business-scenarios.yaml # S1-S9 编号
evaluation-dimensions.yaml # 11 维 D1-D11
mca-buckets.yaml # 7 轴 + 8 label
code-paths.yaml # src/finbayes/* + evals/ + tests/
adr-states.yaml # ADR 状态 single source
structured-cognition-result.yaml 示例(最关键的一份):
# Single source of truth for StructuredCognitionResult 1.1
# All .md documents must reference this, not redefine
schema_version: "1.1"
contract_namespace: "whitepaper-rewrite" # ADR-008 supplement
maintained_by: "Claude 主控 + Codex"
# 10 必含要素(产品定义 §7 + ADR-008 supplement §1)
required_elements:
- id: main_answer
type: str
constraints: { min_length: 30 }
notes: "题眼优先,非指令式"
- id: invalidation_conditions
type: List[str]
constraints: { min_length: 1 } # 强约束,工程上不可能输出空
- id: counter_evidence
type: List[str]
constraints: { allow_empty: true, requires_reason_if_empty: true }
# ... 其余 7 要素
# 6 顶层字段(机制层,1.1 新增)
top_level_fields:
- id: causal_graph
type: CausalGraph
optional: true # M0 stub
- id: phase_evidence
type: PhaseEvidence
optional: true # M0 stub
- id: correlation_regime
type: CorrelationRegime
optional: true # M0 stub
- id: regulation_status
type: RegulationStatus
optional: true # M0 stub
- id: posterior
type: Posterior
optional: true # M0 含 kelly_cap 但下游协议见 MP-3 (P0 待人签)
- id: s1
type: S1Consistency
required: true # 必选,M0 simplified
# Task 元数据(不入 StructuredCognitionResult body)
task_metadata:
- id: mca_bucket
type: MCABucket
required: true
note: "Task 元数据,不入 StructuredCognitionResult body"
# Milestone-specific subset
m0_subset:
required_elements_implemented: 10 # 全部 10 要素 schema-level 落地(不是 7!)
top_level_fields_stub: 5 # causal_graph / phase_evidence / correlation_regime / regulation_status / posterior 全部 stub schema
top_level_fields_simplified: 1 # s1 simplified
state-machines.yaml:
state_machines:
- id: session
count_authority: true # 用于跨章节计数校验
states: [Active, Snapshotted, Archived, Deleted]
independent: true # 删除不级联
- id: task
states: [Pending, Running, Completed, Failed, Cancelled]
terminal: [Completed, Failed, Cancelled]
- id: task_group
states: [Running, AllCompleted, Merged, Failed]
- id: judgment_record
states: [Candidate, Confirmed, Updated, Archived]
- id: state_candidate
states: [Pending, Confirmed, Edited, Expired, Rejected]
sub_types: [JudgmentCandidate, ProfileCandidate, WatchlistCandidate, MCATagCandidate]
- id: provider_readiness
states: [Probing, Ready, Degraded, Unavailable]
note: "§11 指向 §9 但 §9.6 未画图;本次显式声明"
# Cross-document count source
canonical_count: 6 # NOT 5! §20/§26 写 5 是错的
code-paths.yaml:
src_layout:
base: src/finbayes/
pipeline_subsystems:
input: io/
output: io/
orchestration: orchestration/
evidence_synthesis: cognition/
state_management: state/
capability_registry: capabilities/
provider_adapter: providers/
cognition_subsystems: # §29 4 子系统
knowledge_graph_service: cognition/knowledge_graph/
consistency_middleware: cognition/consistency/
mca_classifier: cognition/mca/
eval_harness: evals/harness/
evals_layout:
base: evals/ # 注意:复数 evals 而非 eval!agent-pack 用 eval 是错的
subdirs: [datasets, runner, rubrics, results, reports]
judge_prompts: prompts/eval_judges/
tests_layout:
base: tests/
subdirs: [unit, integration, e2e/quick, e2e/real, degradation, boundary, m0/fixtures/samples]
adr-states.yaml:
adr_states:
- id: ADR-001
namespace: arch-rewrite
title: 工程范式
state: accepted
- id: ADR-002
namespace: arch-rewrite
title: 架构文档结构
state: accepted
- id: ADR-003
namespace: arch-rewrite
title: 工程实施栈与协作
state: accepted
- id: ADR-004
namespace: arch-rewrite
title: 任务识别策略
state: accepted
- id: ADR-005
namespace: arch-rewrite
title: Prompt as Data
state: waiting # 待写,M1 启动前 accepted
blocking_milestone: M1
- id: ADR-006
namespace: arch-rewrite
title: 工具分类与执行边界
state: waiting
blocking_milestone: M1
- id: ADR-007
namespace: arch-rewrite
title: 状态写入两步候选
state: waiting
blocking_milestone: M1 # 候选两步写入语义
- id: ADR-008
namespace: arch-rewrite
title: LLM Provider 接口抽象
state: accepted
- id: ADR-008
namespace: whitepaper-rewrite
title: StructuredCognitionResult 字段
state: accepted # 注意 namespace 区分
- id: ADR-009
namespace: arch-rewrite
title: 错误码与降级语义
state: waiting
blocking_milestone: M1
- id: ADR-010
namespace: arch-rewrite
title: 凭证过滤位置
state: accepted
Action I-2:改 scripts/verify-kb.mjs 加 schema-ref 校验(0.5 天)
// 新增 rule: schema-ref
// 输入:所有 .md 中 :::schema 或 contracts/ 路径引用
// 动作:
// 1. 解析引用(如 contracts/structured-cognition-result.yaml#/required_elements/0)
// 2. 验证 yaml 中存在
// 3. fail 条件:引用不存在 OR yaml 字段值与文档内描述冲突
Action I-3:改 scripts/derive-agent-pack.mjs(0.5 天)
agent-pack.yaml 的 outputs / anchors / source 路径从 contracts/code-paths.yaml 派生而非硬写:
// 当前: outputs 硬写在 agent-pack.yaml
// 改后: outputs 从 contracts/code-paths.yaml 派生
const codePaths = parseYaml('contracts/code-paths.yaml');
agentPack.outputs = [
`${codePaths.src_layout.base}cognition/types.py`,
// ...
];
Action I-4:主架构关键段引用化(1 天)
把主架构 §4 / §9 / §21 / §27 / §28 / §29 中的"重复定义字段/状态机/路径"段改为引用 contracts/:
## §4 业务对象与关系
### 4.1 StructuredCognitionResult
字段定义见 `contracts/structured-cognition-result.yaml`。
本节叙述其在架构中的角色(不重复字段表)。
不完全删除重复定义(保留作为 audit trail),但加 banner:"字段权威定义见 contracts/...,本段为叙述用途,若与 contracts/ 不一致以 contracts/ 为准。"
Action I-5:subsystems / engineering-packs / agent-pack 引用化(0.5 天)
各文档头部加 frontmatter 字段:
schema_sources:
- contracts/structured-cognition-result.yaml
- contracts/state-machines.yaml
- contracts/code-paths.yaml
verify-kb 检查:文档内引用的 schema 必须列在 schema_sources 中。
Action I-6:补全 IV-1 cross-section 校验依赖(0.25 天)
整改包 IV-1 中的 5 条规则依赖 contracts/ 作为 ground truth。I 完成后把 IV-1 stub 替换为真实 source 引用。
4.4 工作量分解
| Action | 工作量 |
|---|---|
| I-1 建 contracts/ + 7 yaml | 2 天 |
| I-2 verify-kb 加 schema-ref 规则 | 0.5 天 |
| I-3 derive-agent-pack.mjs 派生化 | 0.5 天 |
| I-4 主架构关键段引用化 | 1 天 |
| I-5 subsystems / engineering-packs / agent-pack 引用化 | 0.5 天 |
| I-6 补全 IV-1 依赖 | 0.25 天 |
| 合计 | 4.75 天(+ 1 天 buffer) |
4.5 验收标准
-
contracts/目录创建,7 个 yaml 文件齐全 + README -
npm run verify:kb通过 schema-ref 规则(找出当前所有 .md 中违反 contracts/ ground truth 的引用) -
npm run derive跑通且 agent-pack.yaml outputs/anchors 从 contracts/ 派生 - 主架构 §4 / §9 / §21 / §27 / §28 / §29 关键段加引用 banner
- subsystems / engineering-packs 头部加 schema_sources frontmatter
- 跨章节计数自动校验通过(6 状态机 / 11 维 / 8 桶 / S1-S9 等)
4.6 风险 + 兜底
- 风险 1:contracts/ yaml schema 设计错误,后期改大幅返工。
- 兜底:第一周只填核心字段(最关键 3-4 个 yaml);其余 yaml 占位 + 后续迭代
- 风险 2:现有 .md 引用化工作量大(散布多处)。
- 兜底:分两阶段 — 阶段 1 加 banner + frontmatter(不删旧内容),阶段 2 在 M0 期间逐步删除重复定义
- 风险 3:machine-readable yaml 可读性下降。
- 兜底:每个 yaml 都配套生成 .md 人可读版(脚本派生),可读版从 yaml 派生不反向
5. 整体启动顺序 + 工作量分布
5.1 推荐启动顺序
Week 1:
Day 1-1.5 整改包 III (1.5 天) - 决策权分级 + AI 三方互审 + 真人 owner
Day 2-5 整改包 IV (3 天) - cross-section 校验 + agent-pack + review playbook
Day 5.5 M0 启动决议(条件 GO with III+IV 完成)
Week 2-3:
Day 6-8 整改包 II (2 天) - 承接生成器 + 模板 + Archon gate
Day 8-13 整改包 I (4.75 天) - contracts/ 单一事实源层
Week 3+:
M0 实施期间 + 整改包 I/II 持续推进 + Apply stale 残留 patch 清单
5.2 各包之间依赖
III ──┐
├──> IV ──┬──> II ──> M1 启动
│ │
contracts/ ─┘ │
stub I (完整) ──> verify cross-section 升级到完整 ground truth
- III + IV 可立刻并行(无依赖)
- II 依赖 IV(gate trigger 机制 + verify-kb 规则)
- I 依赖 IV stub(IV-1 5 规则需要 contracts/ 至少 stub 版)
- I 完成后回头升级 IV-1(用真实 ground truth 替换 stub)
5.3 关键 milestone gate
| Gate | 通过条件 | 时点 |
|---|---|---|
| G1 启动 C-1 条件 GO | III + IV 完成;MP-3 + DA-1~DA-4 P0 人签或显式占位;agent-pack budget 修复 | T0+5-6 天 |
| G2 M0 收尾 | M0 验收 11 维全绿 + Archon M0 gate 通过 + III/IV 全部 closure | T0+M0 完成 |
| G3 M1 启动 | II 完成 + I 完成 + ADR-005/006/007/009 accepted + 真人 owner(法务/数据治理/UX)到位 | T0+M0 +1-2 周 |
6. 验收与启动决议
完成 4 整改包后:
| 维度 | 当前 | Post 整改 |
|---|---|---|
| 完整性 / 冗余 / 冲突 | CONDITIONAL | PASS |
| 100% 落地保真度 M0 | 85% | 92% |
| 100% 落地保真度 M1-M7 | 40-50% | 70% |
| 切片可行性 | FAIL (agent-pack 8K vs 38K) | PASS |
| AI 自循环签字风险 | 19/27 项 | 5/27 P0 强制人签 + 8/27 P1 三方互审 + 14/27 P2 双签 |
| Claude 主控启动信心 | 65-68% | 85%+ |
| Codex 起手 PR 跑通概率 | 58% | 78-82% |
| review 范式 | 抽查为主 | 完整通读 + 机械 cross-section + AI 三方互审 |
| fresh-eyes 二阶覆盖 | 无 | ADR-003 显式 + AI 三方互审 + 人介入 |
7. 留给用户决策
详细方案已输出,请用户确认:
- 整改顺序:推荐 III → IV → II → I(共 9-14.5 天),是否接受?
- AI 三方互审第三方角色:用户拍板"AI 三方互审 + 人介入",第三方 AI 暂定 OOSO;如需用其他(Cursor / Hermes),告知。
- 真人 owner 招募启动时点:金融领域专家 M0 期间召集 / 法务 M1 前 2 月 / 其余 M1 前 1 月 — 是否接受?
- MP-3 + DA-1~DA-4 5 项 P0 人签:需用户在 C-1 启动前抽时间签 — 是否安排?
- 整改启动后是否实时回报进度:每个 Action 完成后是否要 commit + push + 通知?
确认后启动。
8. 关联资产
- 综合分析:
2026-05-28-step11-synthesis-and-remediation.md - Step 10 完整双视角 review:
2026-05-28-step10-fresh-claude-master-review.md+2026-05-28-step10-fresh-codex-impl-review.md - 待执行整改 patch 清单(来自 IV-5):见 §2.3 Action IV-5
- 真人 owner 招募时间表(来自 III-2):见 §1.3 Action III-2
- 待起 ADR:ADR-005 / ADR-006 / ADR-007 / ADR-009(M1 启动前 accepted)