dsh-metaphysics 0.63.0 → 0.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,126 @@
1
+ ## 0.65.0(2026-11-10,已发布)
2
+
3
+ > 本段主题(2026-11-10):文墨未渲染数据补渲染——运曜/流曜、来因宫、限流十二神、日干四化、非节气四柱、太极点转换落地;「显示设置」扩到 17 项。
4
+
5
+ ### 非节气四柱落地 +「显示非节气四柱」开关(第 16 项)
6
+ - 口径(紫微斗数排盘口径,与 Steemit 瑞悦玄承专文对拍):紫微按农历排盘——年柱以正月初一换岁、月柱按农历月配五虎遁;日柱时柱与节气版一致。与八字(节气)四柱只在立春前后出生者上年/月两柱有分歧。
7
+ - 引擎:`engine/ziwei.js` 结果对象新增 `nonJieqi: {year, month, day, hour, note}`(农历年干支 + 农历月五虎遁 + 日柱时柱)。
8
+ - 冒烟:1990-02-01(立春前)非节气 `庚午戊寅…` vs 八字 `己巳丁丑…` ✓;1990-05-12 普通日期两者全同 ✓。
9
+ - 面板:中宫四柱行下新增非节气行(带「非节气」小标签),默认隐藏,勾选第 16 开关才显示。
10
+ - 断言基线 9010 → 9019。
11
+
12
+ ### 太极点转换信息 +「显示太极点转换信息」开关(第 17 项)
13
+ - 口径(「一物一太极」,多源一致):以任一宫为新命宫重布十二宫名——如以官禄宫立太极,则官禄为新命宫,按本命宫名序依次重排。
14
+ - 面板:点宫详情新增「太极转换」行 `以某宫[支]立太极 命宫[…] 兄弟[…] …`,默认隐藏,勾选第 17 开关才显示。纯展示,不改排盘数据。
15
+
16
+ ### 日干四化落地 +「显示日干四化」开关(第 15 项)
17
+ - 口径:取日柱天干查十干四化表,四颗化星(禄权科忌)落宫标注。日柱经 `window.Engine.buildBazi`(与中宫四柱同源);四化表借 `daxianList[]` 里宫干等于日干那一宫的 `mutagenHits`(十二宫宫干覆盖十干,即同一张十干四化表)。
18
+ - 面板:宫格下方新增 `.pp-rigan` 一行 `日干丁四化 禄太阴·戌命宫 权天同·寅官禄 科天机·午财帛 忌巨门·子福德`,四化字着禄权科忌四色;默认隐藏,勾选第 15 开关「显示日干四化」(飞星派显示组)才显示。
19
+ - 冒烟:1990-05-12(丁亥日)四颗化星与落宫全对 ✓;`test/display-toggles.test.mjs` 62 条(新增真实渲染断言)。
20
+ - 断言基线 9001 → 9010。
21
+
22
+ ### 限流十二神随限流变化(iztro 口径)
23
+ - 口径(iztro `FunctionalAstrolabe._getHoroscopeBySolarDate` 实读钉死):随流年/大限**重安的只有岁前与将前两组**(`yearlyDecStar: getYearly12(solarDate)`);长生十二神、博士十二神只在本命排一次,horoscope scope 不重算。
24
+ - 引擎:`engine/ziwei.js` 新增 `suiqiByBranch(branch, suipoSchool)`(流支起岁建顺数,中州派大耗改岁破)与 `jiangqianByBranch(branch)`(寅午戌起午、申子辰起子、巳酉丑起酉、亥卯未起卯);`daxianList[]` 挂 `yunSuiqi/yunJiangqian`、流年项挂 `lnSuiqi/lnJiangqian`。
25
+ - 面板:并入 `.pp-hs` 小字行(勾选「显示运曜和流曜」即可见,不再另设开关);大限 12 宫全有、流年 12 宫全有。
26
+ - 冒烟:戌限 `岁建戌…病符酉`、将星起午 ✓;2026 丙午 `岁建午…病符巳` ✓。
27
+
28
+ ### 来因宫落地(iztro 口径)+「显示来因宫」开关
29
+ - 口径(iztro `isOriginalPalace`):生年天干与宫干相同的宫,子丑两宫除外(五虎遁下这两支永不对应生年干)。
30
+ - 引擎:`engine/ziwei.js` 结果新增 `laiyin: {branch, palace, ganzhi}`。
31
+ - 面板:来因宫右上角「因」角标(与身宫左上「身」对称,忌色底),第 14 个显示开关 `显示来因宫`(四化派组,默认勾,取消即藏)。
32
+ - 测试:`test/ziwei.test.mjs` 新增 12 年干 × 3 条断言(不在子丑、唯一且字段一致、与五虎遁独立重算一致),102 PASS;基线 8962 → **9001 条 PASS**。
33
+
34
+ ### 运曜/流曜落地(限流星曜按 iztro 口径)
35
+ - 口径从 iztro 源码实读钉死(`star/horoscopeStar.ts` + `star/location.ts`):按运限/流年干支用本命同表安 10 颗——魁钺禄羊陀按干、天马按支三合、红鸾天喜按支(卯起逆数)、昌曲按干(本命按时支,唯一差异);年解戌起子逆数。火铃不随限流重安。前缀:大限运X、流年流X。
36
+ - 引擎:`engine/ziwei.js` 新增 `horoscopeStarsOf` / `horoscopeStarsByBranch`;`daxianList[]` 每项挂 `yunStars`(10 颗按宫摊);流年结果补 流昌/流曲/流马/流鸾/流喜/年解 六键。
37
+ - 面板:大限/流年视图宫格内新增 `.pp-hs` 小字行(如「运昌酉 流鸾酉」),第 13 个显示开关 `显示运曜和流曜`(默认不勾,勾了才显示——纯增强,默认观感不变)。
38
+ - 「显示设置」12 项 → 13 项;`test/display-toggles.test.mjs` 50 → 51 条;基线 8960 → **8962 条 PASS**。
39
+
40
+ ### 新增文墨式「显示设置」12 项(纯 CSS 显隐)
41
+ - 面板新增 `<details>` 折叠工具条,分「飞星派显示 / 四化派显示 / 限流盘显示」三组,勾了盘面立刻变,**不重排盘、不进引擎、不进工具 schema**(35 个独立参数会撑爆 schema 预算)。
42
+ - 组1 飞星派 5 项:显示神煞(十二神文字)、三台八座恩光天贵、彩色箭头标识自化、流年虚岁年龄、中宫八字;组2 四化派 4 项:显示小星、显示身宫、显示命宫四化、显示三方四正;组3 限流盘 3 项纯增强:自化箭头加粗、六煞星黑字、主辅星加粗。
43
+ - 实现走 CSS 兄弟选择器:复选框是 `.pp` 直接子元素且排在 `.pp-body` / `.pp-zhlegend` 之前;组1/2 默认勾(`:not(:checked)` 才隐藏),组3 默认不勾(`:checked` 才增强)→ **默认盘观感逐字节不变**。
44
+ - 只给四颗日系吉星追加 `.st-sbg`、只给十二神文字包 `.pp-ss-txt`;十四主星仍是字面 `<span class="pp-st main">`,`pp-shen::after` / `pp-tri` 原规则均保留,不动既有顺序断言。
45
+ - 浏览器实测 12 个开关逐个切换:7 组隐藏 `display:none`、身宫角标 `::after{display:none}`、三方连线 `display:none`、3 组增强 `stroke-width:2.8px` / 黑字 / `font-weight:700`,全部生效。
46
+ - 测试:新增 `test/display-toggles.test.mjs` 49 条(结构与默认态、CSS 接线、目标可寻址、不改排盘数据、不碰引擎/schema);基线 164 文件 8911 → **165 文件 8960 条 PASS**。
47
+
48
+ ### 新增第十五、十六类流派开关:截路空亡 / 岁前十二神(中州派)
49
+ - jieluSchool 截路空亡:off 照常(默认)/ zhongzhou 整组不排。只动杂曜清单,不动宫盘。
50
+ - suipoSchool 岁前十二神:off 照常(默认)/ zhongzhou 把「大耗」改记作「岁破」,宫位不变、只换名字。
51
+ - 两把开关独立可选;与 tianshiTianshang 的 zhongzhou 档无耦合。
52
+ - 中州派剩余四处差异至此全部落地:命主取法、四化科、天使天伤位置、截路空亡有无、岁前十二神大耗改岁破。
53
+ - 接线四处:ZIWEI_SCHOOL_KEYS、OPTION_KEYS、OPTION_HINTS、SYSTEM_PARAMS.ziwei、口径对照表各加两档。
54
+ - 测试:开关扩到十六类,紫微对照 18 组,口径卡 18 行;schema-budget 参数 92 个。
55
+
56
+ ## 0.64.0(2026-11-10,已发布)
57
+
58
+ > 本段主题(2026-11-10):自化从「虚下划线徽章」换成文墨天机式的彩色小箭头,修掉 push-tag / autopublish 的 SSH 兜底在这台机上必崩的问题,并按文墨设置树补上「流年四化取干」「十干四化变体」「命主取法」三档口径。**默认盘逐字节不变**:新增开关的默认值等于旧行为。
59
+
60
+ ### SSH 兜底:msys git 起不了 `sh`,只能改走 `GIT_SSH`
61
+
62
+ > 症状:`tools/push-tag.mjs` 的 HTTPS 三次重试全失败时,SSH 兜底也必失败,报 `sh.exe: *** fatal error - couldn't create signal pipe, Win32 error 5`。
63
+
64
+ - **根因:msys 的 `git.exe` 只要需要起 `sh -c` 就崩**。原实现用 `-c core.sshCommand=...` 和 `GIT_SSH_COMMAND` 这两种写法,两者都要求 git 通过 shell 拼命令行,于是无论 key 对不对都先在 `sh` 上死掉。实测三种传参(`tools/ssh-fallback.mjs`):`GIT_SSH_COMMAND` 崩在 `couldn't create signal pipe`;不带覆盖的默认路径同样崩;**只有 `GIT_SSH=<ssh.exe 绝对路径>`(git 直接 exec,不经 shell)能走通**,返回的是干净的 `Permission denied (publickey)`——传输层通了,只差 key。
65
+ - **第二处:Windows OpenSSH 不认环境变量改的 HOME**。原实现想用临时目录里的 `~/.ssh/config` 交代私钥,但 `ssh -G` 探针证明三条路都不通(不覆盖 / `USERPROFILE=` / `HOME=` 全都读不到临时 config,`port` 仍是 22、`identitiesonly` 仍是 no)。改成把一段带标记的 Host 块临时写进**真实** `%USERPROFILE%\.ssh\config`,`finally` 里先还原配置(哪怕删 key 的 API 卡住,用户 ssh 配置也不该长时间被改)、再删 deploy key、最后清临时目录。
66
+ - **第三处:URL 不能再带 `:443`**。`GIT_SSH` 的 simple variant 不允许 git 自己拼 `-p`,端口交给 config 里的 `Port 443`;推送地址改用不带端口的 `ssh://git@ssh.github.com/...`。私钥 ACL 收窄到当前用户(太宽会被 ssh 忽略)。
67
+ - **两处重复实现合并成一份**(新文件 `tools/ssh-fallback.mjs`):`push-tag.mjs` 与 `autopublish.mjs` 原来各抄一份同样的 SSH 兜底、各带同样的 bug,现在都只调 `pushOverSshWithKey()`;两边启动时都会用 `clearStaleBlock()` 清掉上次崩在中途留下的临时 Host 块(含缺结束标记的半截块)。
68
+ - **`push-tag.mjs` 新增 `--ssh-only`**:跳过 HTTPS 直接走兜底,用来单独验证兜底路径。
69
+ - **实测**:`node tools/push-tag.mjs v0.0.0-sshprobe --ssh-only` → 三次都成功推上 `ssh.github.com:443`,deploy key 用完即删,`%USERPROFILE%\.ssh\config` 运行前后都复原成「不存在」。探测 tag 与 deploy key 都已清干净(远端只剩 `v0.63.0`,`GET /repos/.../keys` 为 0)。
70
+ - **测试补了 8 条**(`test/push-tag.test.mjs` 43 PASS、`test/autopublish.test.mjs` 55 PASS):传输层断言改为查共享模块、要求两边都接线到共享模块、要求启动时清残留;并把 `stripManagedBlock` 从源码切出来实跑,覆盖「缺结束标记的半截块」与「多段标记并存」。
71
+
72
+ ### 自化改成彩色小箭头:箭头尖顶住星名,才读得出「化回本宫」
73
+
74
+ > 症状:自化原来只是一枚虚下划线的彩色小字(`禄/权/科/忌`),摊在星曜行尾。用户对照文墨天机后指出:那边是从宫缘飞出的彩色小箭头。
75
+
76
+ - **形态**:`zhaMark()` 画一支 22×9 的 SVG 短箭头(`z-shaft` 弧线 + `z-head` 箭头尖),stroke 跟 `currentColor`,颜色由 `.pp-zha.lu/.quan/.ke/.ji` 决定,与四化同色系。
77
+ - **位置定在星名左边**(`src/panel-kit.js` `starsHTML`):先后试过左上角绝对定位、左缘垂直居中——都压住星名(实测压掉「紫微 庙」)。改成 inline 后,**放星名右边箭头朝外,视觉上成了「从本宫飞出去」,语义正好反**;最终放在星名前、箭头尖顶住星名,读成「这笔化飞出去又落回本宫」。宫位详情里的「宫干四化」行也用同一支箭头(`${箭头}${星名}`),盘面靠位置、详情靠文字。
78
+ - **自化徽章与虚下划线一并退场**:`.pp-m.self` 样式与 `cellHTML` 里的 `pp-zh` 徽章已删(`.pp-zh` 的 CSS 与三合隐藏规则同步清掉),自化只剩箭头一种表示,不再出现「同一件事画两遍」。
79
+ - **图例跟着换**:盘心图例文案 `虚下划线=自化` → `箭头=自化`;`.pp-zhlegend` 的符号从 `→禄` 文本换成真箭头(用 `zhaMark` 渲染),图例与盘面同一套图形。
80
+ - **三合视图同时藏箭头**:`#ppm-sc-sanhe:checked~.pp-body .pp-zha{display:none}`,否则三合派会漏出四化信息——浏览器实测三合下 `.pp-zha` 的 `display` 为 `none`。
81
+ - **测试**(`test/layout.test.mjs` 69 PASS):原来的 `pp-zh` / `pp-m self` / `虚下划线=自化` 三条换成四条——箭头类名存在、四化颜色分层 + 图例口径、读屏说明含「宫干化回本宫」、SVG 含 `z-shaft` 与 `z-head` 两条路径。
82
+
83
+ ### 新增第十二类流派开关:流年四化取干(文墨「依据流年天干 / 依据流年命宫天干」)
84
+
85
+ > 来源:文墨天机 2.5.26 设置树 `group_other` 里的「流年四化-依据流年天干 / 流年四化-依据流年命宫天干」。此前我们的流年四化固定按流年天干取,这条口径没有出口。
86
+
87
+ - **`liunianSihua`**(`engine/ziwei.js`):`year-stem`(默认,与该年干支的天干一致,与旧盘逐字节相同)/ `life-palace-stem`(改用该年流年命宫那一宫的宫干)。
88
+ - **取干结果随盘回显**:每年新增 `sihuaStem`(实际用的那一干)与 `sihuaStemFrom`(`流年天干` / `流年命宫天干`)。四化是被哪张表定的,不靠猜。
89
+ - **实测**:1990-05-12 男命,2026–2037 十二年**取干十二年全不同**(年干随年份走,命宫宫干由五虎遁从生年干起,本来就是两张表),四颗化星随之全变;本命宫盘 12 宫逐字节不变。这条数据被写进代码注释与参数说明,因为一开始误以为「多数年份同干、只差个别年」,是实测推翻的。
90
+ - **接线五处**:`ZIWEI_SCHOOL_DEFAULTS` / `ZIWEI_SCHOOL_OPTIONS`、`engine/index.js` 的 `ZIWEI_SCHOOL_KEYS` 与摘要 `labels`、根 `index.js` 的 `OPTION_KEYS` / 参数说明 / `SYSTEM_PARAMS.ziwei` / schema、`engine/diff.js` 的 `CALIBER_SWITCHES.ziwei`,以及 `rules.schools` 与 `rules.liunian` 两段规则文字。
91
+ - **测试**(`test/ziwei-schools.test.mjs` 133 PASS,新增 12 条):默认取干等于年干且来源写「流年天干」、另一档等于该宫 `stem`、换口径不动本命宫盘、确实换掉四化、`mutagenHits` 跟着换、两条口径下都是四条、非默认口径进摘要流派行而默认口径不插流派行。
92
+ - **三处计数锁同步**:`ZIWEI_SCHOOL_OPTIONS` 十一类 → 十二类(`ziwei-schools.test.mjs` / `ziwei-zuoyao.test.mjs`)、`CALIBER_SWITCHES.ziwei` 13 组 → 14 组(`caliber-diff.test.mjs` 三条)、`schema-budget.test.mjs` 的 `OLD_KEYS` 88 → 89。
93
+
94
+ ### 新增第十三类流派开关:十干四化变体(文墨「十干四化」全表)
95
+
96
+ > 来源:文墨天机 2.5.26 的十干四化设置项。此前我们只有庚干 5 变体(`gengYearSihua`),甲/戊/辛/壬/癸五干的变体没有出口,用户选不到。
97
+
98
+ - **`sihuaVariant`**(`engine/ziwei.js` 的 `SIHUA_VARIANTS`,表里 16 条、开关暴露 11 档):变体名一律取文墨原文四字,按「禄 权 科 忌」顺序念,**名字本身就是那张表**——「廉破曲阳」= 廉贞化禄、破军化权、文曲化科、太阳化忌。可选:廉破曲阳(甲)、贪阴阳机(戊)、阳武同阴/阳武府同/阳武府相/阳武同相(庚)、巨阳武昌(辛)、梁紫府武/梁紫相武(壬)、破巨阳贪(癸);乙丙丁己四干文墨没有变体。表里另六条(廉破武阳/贪阴右机/阳武阴同/巨阳曲昌/梁紫辅武/破巨阴贪)就是各干通行表本身,不必单独选,所以没进枚举。`default`(默认)各干走通行表,与旧盘逐字节相同。
99
+ - **不新增五个参数的取舍**:每干一个开关(`jiaSihua`/`wuSihua`/…)要吃满 2045 字符的 schema 预算余量里的绝大部分,而工具定义每次调用都整份进上下文。变体名自带天干,一个参数足够表达全部十六档。
100
+ - **两把开关的作用范围不同,这一条是实测撞出来的**:「`gengYearSihua` 只换生年四化里庚年那一支」是既有约定(旧盘与存档依赖),而 `sihuaVariant` 换的是**宫干自化、大限宫干、飞星、流年共用的那张表**。第一版把两者塞进同一个 `sihuaTableOf()`,立刻被既有断言 `庚干变体不动宫干自化` 打红——属实是回归,不是测试过时。现在拆成两个入口:`sihuaTableOf()` 只认 `sihuaVariant`(宫干/飞星/流年用),`natalSihuaTableOf()` 先看 `sihuaVariant`、没命中再让 `gengYearSihua` 生效(生年四化用)。
101
+ - **变体与天干不符时不串表**:拿癸干变体套到甲干上,甲干照旧走通行表,不会把别人的表套过来(有断言钉住)。庚干两项同时指定时以 `sihuaVariant` 为准——它说的是「整张表长这样」,比单点覆盖更明确。
102
+ - **八处直取 `MUTAGEN[...]` 全部改走按盘取表**(`engine/ziwei.js` 七处 + `engine/interpret.js` 一处):宫干自化、宫内 `daxian.mutagen`、流年 `mutagen`、`daxianList.mutagenHits`、`flyStarOf`、`enrichLiunian`、`flowOf` 的 `mutagenHits`、以及 `zwNatalSihua` 补齐未上盘四化时查的那张表。`flyStarOf(stem, type)` 增可选第三参 `schools`,不给时沿用通行表,旧调用零漂移。
103
+ - **实测**:十六档逐档验证「在该干为年干的年份上真能改到盘」——五档与本插件通行表完全一致(甲/戊/辛/壬/癸各自的默认档,即 `廉破武阳`/`贪阴右机`/`巨阳曲昌`/`梁紫辅武`/`破巨阴贪`),其余十一档全部改盘;换变体后 12 宫星曜落宫逐字节不变,只有四化相关字段变。
104
+ - **接线五处**:`ZIWEI_SCHOOL_DEFAULTS` / `ZIWEI_SCHOOL_OPTIONS`、`engine/index.js` 的 `ZIWEI_SCHOOL_KEYS` 与摘要 `labels`、根 `index.js` 的 `OPTION_KEYS` / 参数说明 / `SYSTEM_PARAMS.ziwei` / schema、`engine/diff.js` 的 `CALIBER_SWITCHES.ziwei`(口径卡只拿「甲干廉破曲阳」当对照样本,不枚举十六档),以及 `rules.schools` 一段规则文字。
105
+ - **测试**(`test/ziwei-schools.test.mjs` 153 PASS,新增 20 条):默认档等于通行表、变体随盘回显、甲干变体把科从武曲换到文曲而禄权忌不动、宫干四化与飞星跟着换、星曜落宫不变、癸变体套甲干无效、乙丙丁己无变体、庚干优先级、十六档都是完整四条、非默认进摘要流派行。
106
+ - **三处计数锁同步**:`ZIWEI_SCHOOL_OPTIONS` 十二类 → 十三类(`ziwei-schools` / `ziwei-zuoyao`)、`CALIBER_SWITCHES.ziwei` 14 组 → 15 组(`caliber-diff` 四条含口径卡行数与标签列表)、`schema-budget.test.mjs` 的 `OLD_KEYS` 89 → 90。
107
+
108
+ ### 新增第十四类流派开关:命主取法(文墨「安命主 - 依据斗数全书 / 依据中州派理论」)
109
+
110
+ > 来源:文墨天机 2.5.26 设置树 `group_other` 里的「安命主 - 依据斗数全书 / 安命主 - 依据中州派理论」。此前我们的命主固定按命宫地支取,中州派这条口径没有出口。
111
+ >
112
+ > 这条一开始以为是硬骨头:先试着从 APK 里挖表值——解 `App.swf`(`CWS` + `inflateSync{Z_SYNC_FLUSH}`,3.2MB DoABC 标签、18162 条字符串常量),`贪狼/巨门/禄存/文曲/廉贞/武曲/破军` 这些星名**在字符串常量表里一条都没有**,581 处星名命中全是「马头带箭」「日月夹财」这类格局断语。判定为「表值编译进字节码,静态挖不出,不猜」。**后来发现根本不用挖**——两派的差别不是两张表,是「拿哪个地支去查同一张表」。
113
+
114
+ - **`mingzhuSchool`**(`engine/ziwei.js`):`soul-branch`(默认,按命宫所在宫位的地支查表,与旧盘逐字节相同)/ `year-branch`(按生年年支查表,即中州派)。
115
+ - **依据**:《紫微斗数全书》卷二「安命主」定的是那张十二支表(子贪狼、丑亥巨门、寅戌禄存、卯酉文曲、辰申廉贞、巳未武曲、午破军),两派的用法不同:通行本拿命宫地支查,中州派拿生年年支查。iztro 的实现就是这个形状——`earthlyBranches[algorithm === 'zhongzhou' ? earthlyBranchOfYear : earthlyBranchOfSoulPalace].soul`,同一张表换索引。所以不必新造表,`MING_ZHU` 一字未动,只换了查表用的地支。
116
+ - **两派差异有多大要看得见**:实测命宫地支恰好等于生年年支的只占约 8%,即九成以上的人两派命主不同——所以换档时盘上不能只悄悄改一个字。新增 `lifeMasterNote`,两派结果不同时把另一派的结果一并写在括号里(「通行本按命宫地支戌取禄存;中州派按生年年支午取破军」),盘心、摘要、解析三处都会显示;两支相同时该字段缺席,不留空括号。同时新增 `lifeMasterSchool` 回显实际用的取法。
117
+ - **换取法不动盘**:命主是「查表得到的一颗标记星」,不是安星结果。断言钉住 12 宫星曜 JSON 逐字节相等、命宫/身宫/五行局不变——只有命主那一格变。
118
+ - **接线五处**:`ZIWEI_SCHOOL_DEFAULTS` / `ZIWEI_SCHOOL_OPTIONS`、`engine/index.js` 的 `ZIWEI_SCHOOL_KEYS` 与摘要 `labels`、根 `index.js` 的 `OPTION_KEYS` / 参数说明 / `SYSTEM_PARAMS.ziwei` / schema、`engine/diff.js` 的 `CALIBER_SWITCHES.ziwei`,以及 `rules.schools` 与 `rules.masters` 两段规则文字。
119
+ - **实测**:1990-05-12T14:30 男命,命宫在戌、生年年支午 → 默认 `禄存`,中州派 `破军`;1990–2001 十二年扫描 9 年不同 3 年相同(相同的是命宫地支恰等于年支那几年),12 宫逐字节不变。
120
+ - **测试**(`test/ziwei-schools.test.mjs` 172 PASS,新增 17 条):默认取法、默认命主等于命宫地支查表、中州派命主等于生年年支查表、两派该盘确实不同、不动宫位与星曜、不动命宫身宫五行局、两派不同时写辨认说明、说明随档位换叙述顺序、两支相同时结果一致且不写说明、十二年扫描大多不同(钉开关生效,不钉具体次数)、十二支表齐全、表就是《全书》那七颗星、非默认进摘要流派行、摘要命主行带辨认说明。
121
+ - **三处计数锁同步**:`ZIWEI_SCHOOL_OPTIONS` 十三类 → 十四类(`ziwei-schools` / `ziwei-zuoyao`)、`CALIBER_SWITCHES.ziwei` 15 组 → 16 组(`caliber-diff` 四条含口径卡行数与标签列表)、`schema-budget.test.mjs` 的 `OLD_KEYS` 90 → 91(工具定义 12786 / 14500 字符)。
122
+ - **还没做的**:文墨中州派与通行本另有四处差异(戊庚壬三干的四化「科」、天使天伤位置、截路空亡有无、岁前十二神大耗改岁破),这四条本版没接,仍按通行本走。
123
+
1
124
  ## 0.63.0(2026-11-10,已发布)
2
125
 
3
126
  > 本段主题(2026-11-10):修「问进对话」的 chip 挂不上(C3 对话桥)、把命盘类四个 tab 合并成一个分块、补 B15 三项量化字段的输出通道,再按文墨天机的样式重做紫微盘面(三方四正菱形闭环、四化/飞星/三合三视图、自化图示图例)与宿主侧栏宣纸纸纹。**不改任何排盘口径、不新增体系**;文墨 APK 只作只读逆向参照,其安星流派与十干四化变体表只存档、未接入引擎。