Files
Jyotisha/docs/tasks/TASK-consult-career-yoga-functional-20261002.md
T

11 KiB
Raw Blame History

TASK · 事业题看行业与名声、开场守「只说迹象」、功能吉凶改典籍对照表、大格局按「传统格局」上卡(2026-10-02)

  • 基线:origin/staging 6987875b(含 f361365a 三单与名人回测)
  • 分支 / worktree:codex/consult-career-yoga-functional-20261002 / .worktrees/consult-career-yoga-functional-20261002
  • 范围:功能吉凶层(scripts/functional_benefics.py,全站共用)、普通对话瑜伽检测与数据卡、事业清单、开场写法、名人回测评分表。报告面、生时校正面只承受功能吉凶层变化的后果,不改其逻辑。
  • BUG 编号起点:BUG-1174(开工时 grep -o "BUG-1[0-9]\{3\}" docs/BUG_HISTORY.md | sort -u | tail -1 核对,当前最大 1173)。

1. 事故实证

见 docs/testing/consult-affliction-backtest-20261001.md「改动后(第二轮)」与 docs/research/consult_affliction_audit_2026_10_01.md。

  1. 事业题 12/18 被写成「专业型 / 幕后」,行业也读不出。 齐达内(球星):「能变成钱的主线是说话、写东西、分析信息」;乔布斯:「偏知识型、偏幕后,不是靠曝光度」;奥巴马:「专业交付这条路,出头偏慢」。各盘开头几乎是同一段。
  2. 对照组 6 份轻度误报都在开场。 布什父母开场「距离感明显」「偏外,见面少」;齐达内健康「不是能硬扛的类型」。段内已经给了范围,但开场先下了结论。
  3. 功能吉凶(BUG-1158)。 derive_functional_benefic_malefic 把 1 宫同时算作三方宫和角宫,除日月外的命主一律进 yogakarakas:12 个上升里有 10 个多标(白羊火星、金牛金星、双子水星、处女水星、天秤金星、天蝎火星、射手木星、摩羯土星、水瓶土星、双鱼木星)。另有流派差异:12 宫主一律判凶(处女太阳、狮子月亮),吉星管角宫判中性(双子木星、处女木星、双鱼水星),凶星管角宫判中性(天蝎太阳),摩羯月亮(7 宫主)判中性。
  4. 大格局(BUG-1159)。 scripts/jyotish_api_server.py 普通对话 yogas 块只在 chart.yogas 为空时跑规则引擎(if not compact:);乔布斯、泰勒排盘自带 1~2 条,于是 Raman 包成员规则大多被判「未命中」,hits 可能漏报。Sasa、Neecha Bhanga Raja、Gajakesari 不在任何 Raman 包,只进 ungoverned_detected,卡上没有;奥巴马综合篇因此把落陷木星读成「早年自我评价偏低」。

2. 根因

  1. 事业清单只讲时间分层与受冲,没有「从盘上看行业、看名声」的读法;模型用「稳妥上班族」模板补位,「先看受冲」又把人人都有的土星照 10 宫推到开头。
  2. natalAnswerShapeBody 开场「第一句就是结论」不受 AFFLICTION_RANGE_RULE 约束(该规则写的是「这一段」)。
  3. 功能吉凶用一条公式推,没有典籍出处;kendras = {1,4,7,10} 让命主恒满足 yogakaraka 条件。
  4. 规则引擎的跳过条件是性能优化遗留,与「检测完整」冲突;大格局的治理范围从未定过。

3. 决策记录(产品 2026-10-02 授权)

  • D1 功能吉凶改为典籍对照表。 ①yogakaraka 只认「同时管一个角宫(4、7、10)与一个三方宫(5、9)」,命主本身不因管 1 宫成为 yogakaraka;②12 个上升的吉 / 凶 / 中性 / yogakaraka 改为按《Brihat Parashara Hora Shastra》第 34 章逐上升写死的对照表,每格注明出处(译本、章、颂),不再用公式推。原文含义有歧义的格子,在进度记录里列出、保留公式值并标 source: formula_fallback,交产品与占星顾问复核。推翻 strict_functional_benefic_malefic_v1(09817b96,2026-06-28)。全站(报告、生时校正、合盘、今日星语、数据卡)随之变化,属产品已知代价。
  • D2 修瑜伽检测跳过。 规则引擎每次都跑,与排盘自带的瑜伽合并去重;这是完整性修复,不放宽任何边界。
  • D3 大格局以「传统格局,本站未验证,只作参考」上卡。 引擎检测到的封闭名单内大格局(五大人格 Ruchaka / Bhadra / Hamsa / Malavya / Sasa、Gajakesari、Neecha Bhanga Raja、Budha-Aditya,执行方可按引擎实有名称对齐,名单外不加)单列 traditional_yogas,只放成立的(hit),带固定标签。读法:只能用来说明「这颗星 / 这条线有力量」,不能单独下结论,不进受冲计数,不改置信度上限。产品明确授权在这一处放宽 AGENTS §8.4「不得放宽验证边界」,范围仅限这一栏的展示;Raman 治理包与 modules.yogas 不变。
  • D4 事业清单加行业与名声读法,禁写无依据的定性。 定稿文本见 T4。
  • D5 开场守同一条规则。 开场不得替用户断定 AFFLICTION_RANGE_RULE 列出的事实,也不写「距离感明显」「不是能硬扛的类型」这类程度结论;开场只说哪条线顺、哪条线有压力迹象。
  • D6 回测加「行业对不对」。 名人回测的名人都是名人,「公众型」天然成立,所以事业题改看行业与公众性是否与生平相符。

4. 硬红线

  1. scripts/jyotish_api_server.py 只允许 bugfix 级改动(≤ 10 行,tests/test_api_server_growth_contract.py 必须过);逻辑放 scripts/consultation_native_layers.py 或独立模块。
  2. 功能吉凶对照表每格必须有出处;不得凭记忆填表。原文取自公开译本(如 R. Santhanam 译本),引用写进代码注释与进度记录。
  3. 生时校正回归门:scripts/active_rectification_event_engine.py 等读功能吉凶层。改动前后各跑一次生时校正评测(docs/research/ 下 v5 77 例评测的现成脚本,按 rectification-scoring-research-20260929 记录的命令),命中率与 Top-k 不得下降超过 1 个百分点;超过就停在 T1、报告数字,交产品决定。
  4. golden 由真实引擎重新生成;数据卡 12,000 / 18,000 字符断言不改。
  5. 不改 Raman 治理包、claim_boundary、置信度上限;不改 Skill 文件。
  6. 改既有断言写「原值 / 新值 / 原因」。

5. 任务分解

T1 功能吉凶对照表(BUG-1158 改 resolved,或新号)

  • functional_benefics.py:新增 BPHS_CH34_TABLE(12 上升 × {yogakarakas, benefics, malefics, neutrals, citations}),derive_functional_benefic_malefic 改为查表;SOURCE 改为 bphs_ch34_table_v1;owned_houses 照旧计算。
  • 进度记录给出 12 上升「旧值 / 新值 / 出处」对照表。
  • 验收:Python 定向测试锁 12 上升全部格子;白羊不再有 yogakaraka 火星;金牛 / 天秤 yogakaraka 只有土星;巨蟹 / 狮子只有火星;摩羯 / 水瓶只有金星;硬红线 3 的评测前后数字写进进度记录。

T2 瑜伽检测不跳过(BUG-1174)

  • 规则引擎每次都跑,与 chart.yogas 合并去重后再进 Raman 筛选。
  • 验收:三位 golden 名人 + 回测 9 位,改前 / 改后 hits 对照表写进进度记录;新增测试锁住「chart.yogas 非空时规则引擎仍运行」。

T3 传统格局栏(BUG-1175)

  • 引擎侧:从检测结果里按封闭名单取成立项,挂 consultation_native_layers(_guard 包裹)。
  • 卡片:general、career、wealth 卡加 traditional_yogas: {label, names},label 为固定文字「传统格局,本站未验证,只作参考」(进 EVIDENCE_CARD_LABELS);没有成立项就不出现。
  • 通用读法加一行:「traditional_yogas 只用来说明力量,不单独下结论,不算受冲,也不抵消受冲。」
  • 验收:奥巴马综合卡含 Sasa、Neecha Bhanga Raja(以引擎实际名称为准);乔布斯、泰勒含 Gajakesari;对照组按实际检测;字符断言通过。

T4 事业清单(BUG-1176)

career 清单加两行(定稿,执行方只可改字段名对齐):

  1. 「行业看星的本性:10 宫里的星、10 宫主、AmK,以及 10 宫主在 D9 的定位星。太阳 = 权力、公职、管理;月亮 = 公众、照护、流动;火星 = 体力、竞技、工程、军警;水星 = 沟通、写作、商业、分析;木星 = 教育、法律、顾问、宗教;金星 = 艺术、表演、娱乐、美;土星 = 劳动、组织、长期工程;罗睺 = 新技术、跨界、海外、大众传播。先说最强的一两颗,不平均罗列。」
  2. 「公众型还是幕后型要有依据:太阳或 10 宫主强且在角宫、AL 或 A10 落角宫、10 宫或命宫有入旺入庙星、traditional_yogas 有大格局,偏公众;10 宫主落 12 宫且无上述信号,才偏幕后。没有依据就不写这一句。不写「出头慢、越往后越稳、靠专业交付」这类人人适用的话,除非能指出具体盘面。」

T5 开场规则(BUG-1177)

natalAnswerShapeBody 开场句改为(定稿):「开场不要标题,先用一到三句人话回答问题;开场同样守受冲规则:不替用户断定在不在身边、几段感情、有没有病,不写程度结论,只说哪条线顺、哪条线有压力迹象。不给这件事起名字,开场不写行动清单。」合同测试锁句。

T6 回测与评分表(BUG-1167 补记)

  • 评分表每位名人的事业项加 expected_field(齐达内:体力、竞技;泰勒、梦露:表演;嘉兰:表演、唱歌;琵雅芙:唱歌、表演;卡罗:绘画、艺术;布什、奥巴马:政治、公职、法律;乔布斯:技术、商业)与 public: true。
  • 全量回测 9 × 4 × 2 + 纠正追问,逐份阅读评分,新增「改动后(第三轮)」一节。
  • 通过线:事业「行业对」≥ 14/18;「专业 / 幕后」误判 ≤ 3/18;对照组严重误报 0、轻度 ≤ 2;严重冲突总数 ≤ 5/72;其余领域不比第二轮差;禁句 0。

T7 文档

docs/BUG_HISTORY.md(1174 起,BUG-1158 / 1159 / 1164 / 1168 更新)、CHANGELOG.md(功能吉凶变化要写成用户能懂的一句)、frontend/docs/VOICE.md、docs/tasks/PROGRESS-consult-career-yoga-functional-20261002.md、docs/tasks/README.md。

6. 让步顺序

T1 触发硬红线 3 时先停 T1,其余照做。T3 名单内某格局引擎没有检测器,写进进度记录,不自己实现检测器。回测不达线如实报告,不得改通过线。

7. 开工前置命令

git fetch origin --prune
git worktree add -b codex/consult-career-yoga-functional-20261002 .worktrees/consult-career-yoga-functional-20261002 origin/staging
grep -o "BUG-1[0-9]\{3\}" .worktrees/consult-career-yoga-functional-20261002/docs/BUG_HISTORY.md | sort -u | tail -1
python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45

验收口径:Python 定向 + quick 门;前端 tsc 0、lint 0 error、全量测试失败名单与基线逐条一致、build / Static;生时校正评测前后数字;名人回测按 T6。