八字数学形式化构建指南

状态:工作草案 v0.1;发布者:TradeCat Labs(交易猫实验室);最近评审:

边界:本文只描述形式化与软件可验证性,不证明传统命理具备现代科学意义上的因果性或预测效力。

状态:工作草案 v0.1 目标:规定如何把一个传统规则或历法事实构建成 FateCat 可执行、可验证、可维护的能力切片。

1. 构建原则

每个切片必须遵循:

SOURCE
  -> SPEC
  -> PROFILE
  -> CONTRACT
  -> IMPLEMENTATION
  -> FIXTURES
  -> PROPERTY/GOLDEN GATES
  -> EVIDENCE
  -> DELIVERY

禁止从报告文案、UI 字段或单个样例反向生成规则。

“构建完成”不是指写出公式,而是指定义、机器契约、实现、正反例、边界例、证据和维护责任同时闭环。

2. 产物分层

产物 路径 职责
人类形式规范 本目录 解释对象、术语、性质和边界
机器契约 contracts/fate/ schema、Profile、枚举、规则和版本真相源
领域实现 domains/fate-analysis/services/fate-core/ 执行已登记算法和规则
Golden 数据 domains/fate-analysis/data-products/bazi/golden/ 匿名正例、反例和边界例
服务级测试 domains/fate-analysis/services/fate-core/tests/ 单元、性质和算法测试
仓库级门禁 tests/regression/ 契约、跨端、导出和防回潮测试
本地 CI scripts/local-ci.sh 统一调度,不复制业务规则
交付层 domains/experience-delivery/ 只呈现 capability 输出

在机器契约落地前,文档必须明确标记 draft;不得让生产代码解析 Markdown 作为规则来源。

3. 构建波次

B0:范围、术语和来源

输入:

动作:

  1. 定义主题边界和非目标。
  2. 列出所有同义词和歧义词。
  3. 登记来源、版本、适用范围和许可证状态。
  4. 区分基础事实、传统规则、解释策略和报告文案。
  5. 建立当前实现与目标模型的差异清单。

输出:

门禁:来源不明、定义冲突或无法区分事实与文案时停止。

B1:输入和 Profile

输入:B0 产物。

动作:

  1. 定义原始输入和 canonical 输入。
  2. 明确地点、坐标、时区、UTC、DST fold 和时间误差。
  3. 枚举会改变结果的所有 Profile 选项。
  4. 定义无效、无定义和多候选状态。
  5. 固定 provider 和依赖版本。

输出:

门禁:任何隐式默认值都必须删除或变成显式 Profile。

B2:历法和四柱

动作顺序:

  1. 六十甲子有限代数。
  2. 年柱映射及年界。
  3. 月柱映射及节气月界。
  4. 日柱映射及参考纪元。
  5. 时柱映射及早晚子时。
  6. 真太阳时和历史时区对边界的影响。
  7. 起运只在四柱本体稳定后另建模型。

每个映射必须给出:

门禁:四柱基础值不稳定时,不进入强弱、格局或用神构建。

B3:有限派生结构

推荐顺序:

  1. 干支阴阳。
  2. 干支五行。
  3. 十神。
  4. 藏干。
  5. 地支本气、中气、余气 Profile。
  6. 十二长生。
  7. 空亡。
  8. 干支静态关系。
  9. 纳音和神煞等辅助层。

有限映射优先使用枚举表和穷举性质测试。任何权重都必须与基础映射分离,并进入版本化 Profile。

门禁:

B4:规则语义

推荐顺序:

  1. 月令与日主结构。
  2. 常规强弱证据。
  3. 常规格局候选。
  4. 合冲刑害破的结构关系。
  5. 合化状态链。
  6. 调候、扶抑、通关、病药策略。
  7. 特殊格局和从化保护。
  8. 岁运触发。
  9. 专题 Profile。

每条规则必须包含:

ruleId
system
layer
topic
predicate
exceptions
evidenceFields
sourceRuleIds
priority/weight
conflictPolicy
riskBoundary
lifecycle

规则实现不得只返回自然语言。自然语言必须从结构化命题和 evidence 渲染。

门禁:没有反例、例外或风险边界的规则不得晋升 production。

B5:不确定性、冲突和证据图

动作:

  1. 对候选 canonical 输入执行集合值计算。
  2. 对每个字段计算候选值集合和稳定性。
  3. unknownfalse 分离。
  4. 将未解决冲突作为一等输出。
  5. 建立 Evidence DAG。
  6. 验证上游不确定性不会在下游无依据消失。

门禁:任何最终命题无法回溯到输入、Profile、算法或规则时停止。

B6:集成和交付

动作:

  1. 接入 calculate_pure_analysis 的单一生产链。
  2. Capability schema 暴露结构化结果和 evidence。
  3. Web/API/Bot/CLI/Agent 只消费同一输出。
  4. Markdown 只负责呈现,不重算规则。
  5. 对同一固定样本执行多端 semantic hash 对比。

门禁:任何交付端出现独立排盘、独立规则或独立权重实现时阻断。

4. 单切片构建模板

每个最小切片应填写:

ID:
标题:
所属波次:
对象定义:
定义域:
值域:
Profile 依赖:
来源:
当前实现:
目标实现:
无定义条件:
不变量:
正例:
反例:
边界例:
性质测试:
Golden:
Evidence 节点:
风险边界:
兼容影响:
回滚方式:
Owner:

示例切片应足够小,例如“十神天干到天干映射”,而不是“完成所有用神系统”。

5. 测试结构

5.1 穷举测试

适用于有限映射:

5.2 性质测试

优先验证:

5.3 边界矩阵

每个时间边界至少覆盖:

boundary - epsilon
boundary
boundary + epsilon

并记录:

5.4 Golden

Golden 只锁定已审查行为,不自动证明行为正确。每个 Golden 必须注明:

5.5 Oracle

Oracle 只用于差异发现。发生差异时必须分类:

禁止采用“多数库一致即真”的投票策略。

6. 现有验证入口

当前相关入口包括:

.venv/bin/python -m pytest -q tests/regression/test_location.py
.venv/bin/python -m pytest -q tests/regression/test_calendar_oracle_contract.py
.venv/bin/python -m pytest -q tests/regression/test_fate_policy_assets.py
.venv/bin/python -m pytest -q tests/regression/test_bazi_ziwei_rule_depth.py
.venv/bin/python -m pytest -q tests/regression/test_evidence_coverage_trend_gate.py
bash scripts/provider-dependency-smoke.sh
bash scripts/bazi-ziwei-l4-golden-smoke.sh --profile quick
bash scripts/local-ci.sh --profile quick

这些入口目前验证现有工程,不代表数学形式化已经完成。新增机器契约后必须增加专用 gate,而不是只扩充文档。

7. 构建审查清单

定义

来源

实现

测试

输出

8. 停止条件

遇到以下任一情况,停止晋升: