# 生产故障记录：身强/身弱判定口径冲突

- **时间**：2025-12-17  
- **影响**：用户报告同一份排盘出现“强弱判断：偏弱”与“身强判定：身强”矛盾，导致用神建议被误导，信任度下降。  
- **根因**：代码同时输出两套强弱算法结果——
  - 外部库 bazi-1 weak 判定（`_calc_wuxing_scores.weakStrong`，含长生/帝旺权重）。  
  - 本地自写简化算法 `_calc_strength`（仅按三柱生克计数）。  
  报告同时展示两者，口径不一致。  
- **处置**：移除本地 `_calc_strength` 使用，统一以外部库 weak 判定为唯一来源；报告口径随之统一。  
- **代码变更**：`services/telegram-service/src/bazi_calculator.py`  
  - `strength` 仅取 `wx_scores['weakStrong']`；删除 `_calc_strength` 调用与实现。  
- **后续动作**：  
  1. 回归测试：随机 10 份排盘确认强弱口径唯一且与 bazi-1 原输出一致。  
  2. 补充单测：验证无 `weakStrong` 时的异常提示（当前无回退）。  
  3. 评审其他指标是否仍存在双口径输出（如用神、格局）。  
  4. **强制规范**：禁止再引入任何“自写替代算法”用于核心判定（身强弱、用神、神煞、格局等）；必须直接调用外部原生库的计算结果，违者视为生产红线。  
