第二十八节 — M0 工程包指针
这一节回答:M0 走通骨架实施所需的字段级 schema、Pydantic 模型、SQLite DDL、CLI 规格、Mock fixture、凭证正则、audit payload schema、bootstrap 模板、CI 模板等"工程材料"在哪里?
M0 工程包独立成 task-oriented 文档
M0 走通骨架实施所需的全部工程材料不在主架构文档中展开,而是集中在独立的 task-oriented 文档:
projects/finbayes/engineering/engineering-packs/m0-walking-skeleton.md
该文档专为工程化落地 Agent(Codex / Claude Code)一次性 load + 直接消费而设计,含 15 节:
| § | 内容 |
|---|---|
| §1 | M0 范围与 walking skeleton 链路 |
| §2 | M0 接口子集表(6 子系统 × implement/stub/skip = 34 个签名固定的接口) |
| §3 | M0 核心 Pydantic 模型 v0(5 个 types.py 完整代码 + placeholder 类型节) |
| §4 | M0 SQLite DDL v0(4 张业务表 + 1 张元表,含 PRAGMA / 索引) |
| §5 | AuditEvent.payload 按 event_type 字段集(10 种 event 的 schema) |
| §6 | M0 CLI 命令规格(5 命令 + 流式输出 + JSON 输出 + 6 个退出码) |
| §7 | M0 Mock Provider Fixture 规范(目录 + hash 算法白名单 + Provider API 变化检测) |
| §8 | M0 5 条样例输入 + 期望"能力清单"(含可 eval 的 pytest_check 表达式) |
| §9 | M0 5 类凭证 Negative Test Fixture(含 expected_reject_category 与 confidence) |
| §10 | 凭证识别正则基线 v0(5 类 Python pattern + BIP-39 词表 source + Luhn 算法) |
| §11 | M0 输出判定规则 v0(不依赖 LLM-as-judge,退化为 Pydantic + 人工 5 条 checklist) |
| §12 | 工程实施仓发现路径协议(OpenSpec task packet 必备字段) |
| §13 | 工程实施仓 Bootstrap 模板(pyproject + 工具链 + uuid4 + Pydantic ConfigDict + Exception 类层级 + 日志脱敏) |
| §14 | M0 三检 Review Gate CI 模板 |
| §14.5 | CI 接口规范(7 个未提供脚本/测试的接口定义) |
| §14.6 | M0 baseline 文件位置与格式 |
| §15 | 与主架构 / ADR 的承接 |
约 1640 行,工程实施 Agent 可一次 load。
为什么独立成文件
| 理由 | 说明 |
|---|---|
| 上下文负担 | 主架构 6500 行 + M0 工程包 1600 行 合并为 8000+ 行,工程实施 Agent 一次性 load 占 75-85% context,多文件操作易爆 |
| task-oriented vs architecture-oriented | 主架构是"FinBayes 是什么"(业务建模 + 系统全景 + 横向贯穿),M0 工程包是"M0 怎么做"(task packet 级别的可执行材料),消费路径不同 |
| 与 ADR-001 / ADR-003 范式一致 | Walking Skeleton + 里程碑切片 + OpenSpec task packet —— 每个 milestone 一个独立工程包是范式的自然映射 |
| 演化路径清晰 | M1-M7 各起独立工程包(m1-state-confirmation.md 等),不污染主架构 |
Agent 消费路径
| Agent 任务 | 应 Load 的文档 |
|---|---|
| M0 实施 | engineering-packs/m0-walking-skeleton.md + 主架构 §17(边界)+ 主架构 §27(代码仓位置)作 cross-check |
| 架构 Review / 战略保真度审计 | 主架构全文 |
| ADR 起草 | 主架构 §23 + 相关章节 + 调研产物 |
| M1+ 实施(未来) | 对应 engineering-packs/m{N}-*.md + 主架构横向贯穿章节 |
后续里程碑工程包(待起草)
| 里程碑 | 工程包文件 | 状态 |
|---|---|---|
| M0 走通骨架 | engineering-packs/m0-walking-skeleton.md | ✅ 已起草 |
| M1 状态化(候选两步写入 + 完整 8 表) | engineering-packs/m1-state-confirmation.md | 待起草 |
| M2 任务类型扩展(复盘 + 关注流 + clarify) | engineering-packs/m2-task-types.md | 待起草 |
| M3 入口扩展(TUI + Web API) | engineering-packs/m3-multi-entry.md | 待起草 |
| M4 市场扩展(US Stocks) | engineering-packs/m4-market-extension.md | 待起草 |
| M5 主动信号(失效条件触发 + Channel) | engineering-packs/m5-proactive-signal.md | 待起草 |
| M6 评估闭环(LLM-as-judge) | engineering-packs/m6-eval-loop.md | 待起草 |
| M7 演化能力(migration + Prompt 版本化) | engineering-packs/m7-evolution.md | 待起草 |
横向贯穿关注点(边界 / 可观测性 / 演化)的工程切片合订:engineering-packs/horizontal-concerns-bundle.md(待起草)。
与其他章节的关系
- M0 范围与 walking skeleton 链路上位 → §25 与里程碑/任务的对应
- 三检 Review Gate 上位 → §26 审计点
- 业务对象 Pydantic 模型上位 → §4 业务对象与关系
- 子系统接口上位 → §9 每个子系统的内部组件
- 状态机定义上位 → §11 状态对象生命周期
- 数据存储 DDL 上位 → §15 数据存储划分
- 凭证识别策略上位 → §17 边界与安全
- 审计 trail 上位 → §18 可观测性
- 测试体系上位 → §20 测试体系
- 代码物理位置上位 → §27 代码仓位置映射