Files
eryao/.trellis/tasks/archive/2026-04/04-15-liuyao-algorithm-fix/prd.md
T

1.6 KiB

六爻排盘核心算法修复

背景

经过六爻算数大师审查,发现排盘核心算法存在多个P0致命问题和P1严重问题。

审查报告详见: docs/plans/liuyao-algorithm-audit.md

修复范围

Phase 1: P0致命问题(必须修复)

  1. 空亡判断混入时柱空亡

    • 文件: backend/src/core/divination/derivation.py:254-259
    • 问题: 将日空亡和时空亡合并使用
    • 修复: 仅使用日柱空亡
  2. 暗动判断逻辑根本性错误

    • 文件: backend/src/core/divination/derivation.py:262-276
    • 问题: 仅判断空亡爻被冲;月冲标注为暗动
    • 修复: 暗动=静爻+旺相+日冲;月冲=月破

Phase 2: P1严重问题(建议修复)

  1. 月破未单独标注
  2. 动不为空、旺不为空规则未实现
  3. 三合局未实现(可选,后续迭代)
  4. 反吟伏吟未实现(可选,后续迭代)

验收标准

  1. 空亡仅从日柱计算,时柱空亡不参与判断
  2. 暗动判断正确:静爻+旺相+日冲
  3. 月破独立标注,不与暗动混淆
  4. 动爻不标空亡,旺相爻不标空亡
  5. 所有修改通过单元测试
  6. 排盘准确率提升至90%+

技术约束

  • 遵循 backend/AGENTS.md 规范
  • 使用 uv run 执行Python命令
  • 修改后运行 ruffbasedpyright 检查
  • 不破坏现有API接口

古法依据

  • 《增删卜易》:"空亡者,旬空也,以日干支论之。"
  • 《增删卜易》:"暗动者,旺相之爻,日辰冲之是也。"
  • 《增删卜易》:"动不为空,旺不为空。"