dsh-metaphysics 0.50.1 → 0.50.5

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,4 +1,50 @@
1
- ## 0.50.1(2026-10-30)
1
+ ## 0.50.5(2026-10-30)
2
+
3
+ 修 GitHub issue #1:「身弱喜火土,给分析成忌火土了」——顺带修掉同源的「同一五行同时出现在喜用与忌神」。
4
+
5
+ - **问题在哪**:`engine/geju.js` 的 `yongshenOf` 先按扶抑定喜忌,再让调候在「调候优先」时把 `climate.avoidElement` 插进 `avoid`;如果这个五行本来就在扶抑的 `favor` 里(例:偏弱己土燥盘,火为印、喜火,调候又忌火),两份列表就会重叠。摘要行仍写「喜水火土……忌金木」,但面板、解读、喜忌筛选各取一份,用户看到的就是「一会儿喜火、一会儿忌火」。身强寒湿盘的水同理。
6
+ - **修法**:调候所忌若已在 `favor`,不再插入 `avoid`,改记入 `disputed`(元素、扶抑角色、调候气候),喜用保留该行;调候所需要素仍按原逻辑从 `avoid` 移除。新增 `disputedTenGods`;`detail`、摘要「用神」「寒暖」行、解读「用神」「寒暖」节、白话、面板用神行与寒暖卡都标「有争议」,并说明「保留在喜用,不列入忌」。没有冲突的盘不出现该标记。
7
+ - **口径**:这是「两派并存」的显式标注,不改旺衰、不改调候判断、不替用户选边;扶抑与调候仍然各自成立,只是不允许同一行同时被判喜与忌。
8
+ - **界面验证**:390px 宽度下,争议行在 366px 内折 2 行,喜忌行与寒暖卡(338/338)均无横向溢出;浅色正文对比度 4.77:1、深色 7.73:1。
9
+ - **测试**:新增 `test/yongshen-disputed.test.mjs`(23 条):两张真实争议盘(1962-03-22 偏弱燥火、2000-01-01 偏强寒湿水)的 favor/avoid/disputed/disputedTenGods、无冲突盘不误报、216 盘扫描喜忌无交集、文本 / 解读 / 白话 / 面板四处可见、白话与解读内嵌一致。统计 **103 个测试文件 / 4593 条断言**,七道闸全绿。
10
+ - **讨论群二维码**:GitHub README 的外部图片会被改写成 `camo.githubusercontent.com`,部分网络下断链;改挂 GitHub Release 附件直链(不经 camo / raw),并保留微信邀请链接兜底。Chrome 内实测 1161×1623 正常加载,README-only,不改运行时与断言数。
11
+
12
+ ## 0.50.4(2026-10-30)
13
+
14
+ 把「口径对照」从命令行搬到结果下面:同一个盘只换一个开关(晚子时 / 真太阳时 / 闰月归月 / 奇门取局 / 晚子时归日),差在哪几个字,现在展开就能看见。
15
+
16
+ - **缺口在哪**:`engine/diff.js` 与 `tools/caliber-diff.mjs` 0.24 起就有,但只停在 CLI;面板与独立页切口径后只给新盘,用户不知道变的是日柱、命宫还是起运。紫微与奇门的差异还落成 `soul.ganzhi`、`siZhu.day` 这种原始路径,读不出来。
17
+ - **引擎**(`engine/index.js`):新增 `caliberCompare(args)`,按 `CALIBER_SWITCHES` 把**当前口径**与**另一档**各排一次,返回 `{currentLabel, altLabel, total, summary, roots, categories}`;对照前剔掉 `cross / verifyPast / question / direction` 等只影响解析与附加模块的参数。`renderText` 在 `result.caliber` 存在时追加【口径对照】段。
18
+ - **标签与根因**(`engine/diff.js`):补紫微(命宫 / 身宫 / 宫位 / 星曜 / 大限 / 飞星 / 格局)与奇门(四柱 / 局数 / 阴阳遁)的标签;`soul.ganzhi`、`siZhu.day`、`ju`、`dayun.jiao.at` 等进入根因表。口径回显字段(`juMethod / juMethodNote / lateZiHourMode / leapPolicy`)不再算差异——此前奇门两张完全相同的盘会被报成「2 处」,非闰月紫微也会凭空多 1 处。
19
+ - **界面**(`src/panel-kit.js` / `src/app.js` / `src/web-ui.js`):结果下新增折叠的「口径对照」卡;summary 先用一句话说「几组开关中几组影响此盘」,展开后逐行给「当前 · A → 换成 · B」、根因旧值→新值、连带分类计数。只对八字 / 紫微 / 奇门出现;对照失败时不影响主结果。卡内走共享调色板,深色只换变量;窄屏隐藏「展开」提示、summary 保持 44px 触摸目标;打印时强制展开。
20
+ - **工具与 CLI**:根 `index.js` 新增 `diff: true`(默认关,每次多排 2–3 张盘);`tools/caliber-diff.mjs` 改用同一个 `caliberCompare`,开关表只维护一份;`tools/build-client.mjs` 把 `diff` 模块打进 `client.js`。
21
+ - **口径**:只列同一组输入下的逐字段差异与根因,不判哪套口径更准,不改盘、不折吉凶;没有根因时如实写「无单一根因」(例如真太阳时只改起运时刻、不改柱)。`total` 是变化字段数,不是分数。
22
+ - **验证**:390×844 同源 iframe 实测(1996-01-19 23:40 · 安徽池州):`scrollWidth 375 < innerWidth 390`,对照卡 351px,展开后无横向溢出;强制展开深色媒体块后卡底 `#211f18`、正文与注 6.74:1、标题 6.49:1。
23
+ - **测试**:`test/caliber-diff.test.mjs` 由 19 条扩到 129 条——开关表、标签 / 根因、口径回显忽略、八字 / 紫微 / 奇门真实盘独立复算(当前→另一档方向、`total / summary / roots` 与 `diffObjects` 对拍)、无变化与无根因边界、XSS 转义、面板 / 独立页 / 工具接线。统计 **102 个测试文件 / 4570 条断言**,七道闸全绿。
24
+ - **文档**:讨论群二维码换新图(`docs/assets/dsh-metaphysics-group.jpg`,11 月 6 日前有效),README 有效期同步;旧 PNG 删除、改用新文件名,避免旧图缓存继续命中。不涉及运行时与断言数。
25
+
26
+ ## 0.50.3(2026-10-30)
27
+
28
+ 给「岁运提示」补上最后一段干支关系:大运与本命四柱的伏吟 / 反吟。以前只比「大运 × 流年」和「流年 × 本命柱」,大运压到本命柱上的那一步一直空着,知识卡的 note 也明写着「未逐年标注」。
29
+
30
+ - **引擎**(`engine/bazi.js`):逐年 `suiyun.signals` 新增 `大运伏吟`(当值大运与本命某柱干支相同)与 `大运反吟`(天克地冲),对年 / 月 / 日 / 时四柱逐柱比对;target 写成「第N步大运·某柱」,detail 写明具体干支。整步大运都在,随每年重复列出,note 与解析层都写明「不当成逐年加重」。原四类信号与顺序不变,`岁运并临` 仍优先于同一组大运的 `运年反吟`。
31
+ - **接线**:摘要、解析层、面板沿用旧路径;摘要与面板 chip 对「大运」类信号也带柱位(`大运反吟(第8步大运·日柱)`),面板 chip 悬停仍给完整依据。`suiyunClassicOf` 口径不变:任一类信号出现就附《三命通会·卷二·总论岁运》原文。
32
+ - **口径**:仍只标干支重复与对冲,不折分数、不判吉凶;大运伏吟/反吟是整步十年的背景,不是逐年加码。选这一条而不是六爻应期具体日期,是因为后者在清单里明确要先建 20 条以上《卜筮正宗》应验日期对拍集,缺语料时输出日期等于拍脑袋。
33
+ - **文档与知识卡**:`bazi-suiyun` 由「四类」改「六类」,note 改为交代「连续多年出现、不逐年加重」;README「岁运提示」、清单 §3 与 0.50.3 说明块同步。
34
+ - **测试**:`test/suiyun.test.mjs` 的独立参照补上两类(六类信号逐条复算),新增 1950 盘钉住「大运伏吟整步重复 2026–2028」、同年 type+target 不重复、摘要与面板柱位、知识卡六类与 note;`test/sanming.test.mjs` 的无信号样例改用 1996-02-18(1984-10-18 在新口径下已有大运信号)。统计 **102 个测试文件 / 4460 条断言**,七道闸全绿。
35
+
36
+ ## 0.50.2(2026-10-30)
37
+
38
+ 给 0.49.0 的「人元司权」补上原文出处:录入《三命通会》卷二·论人元司事(典藏网 7529),并如实并列该本与本插件不同的日数分法。
39
+
40
+ - **缺口在哪**:0.49.0 起每张八字盘都会算「生在本月第几日、哪一干当权」,知识卡却只写「之说见《渊海子平》」,没有卷次、没有链接,解释层也没有一句原文——这是全插件少数「有算法、无出处」的地方。
41
+ - **原文**(`engine/classics.js`):新增 `smt-renyuan`,照录「故支吕所藏者主命,谓之人元……寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日」,81 字逐字核验通过;来源本写作「支吕」,按「异文不改字」原样保留,不替它改字或圆场。
42
+ - **口径分歧**:该本寅月作 5/5/20、卯月作 7/23,本插件通行 30 日表作 7/7/16、10/20;`plain` 与解析层都写明「不是同一套分法、不改取格」,两表并列。新增 scene「人元」,与「岁运」一样不进五条取条表:`compute` 在有 `renyuan` 时挂 `r.renyuanClassic`,摘要人元行加「原文见《三命通会·卷二·论人元司事》」、解析层人元节附原文与白话、面板经通用 section 渲染自动出现;`RENYUAN_TABLE`、旺衰与取格一行未改。
43
+ - **知识卡**:`bazi-yueling-siquan` 的 detail/source/note 补上 7529 与 5/5/20,状态仍为 `variant`。
44
+ - **文档**:README「古籍原文」「人元司权」「致谢」三处、清单 §二.1 / §三表 / §四.1 与 0.50.2 说明块同步。
45
+ - **测试**:`test/classic-quotes.test.mjs` +4(scene 枚举加「人元」、原文/出处/plain、不进五条),`test/sanming.test.mjs` 由 17 条改为 18 条并 +11(结果层/摘要/解析层/面板/知识卡),`test/renyuan.test.mjs` +11(用 `RENYUAN_TABLE` 独立对照原文日数、结果层接线、5/5/20 可见)。统计 **102 个测试文件 / 4432 条断言**,七道闸全绿。
46
+
47
+ ## 0.50.1(已发布 2026-10-30)
2
48
 
3
49
  宿主侧栏面板的首屏与独立页并轨:三组卡片、最近用过、分组↔平铺、窄屏收纳,全部从同一份数据生成,不再「页面一套、侧栏一套」。
4
50
 
@@ -10,7 +56,7 @@
10
56
  - **口径**:分组只是另一套入口——19 个 tab 原样保留,不改变任何默认值、排盘参数与结果;存储不可用(隐私模式)只少记「最近用过」,面板照常可用。
11
57
  - **测试**:新增 `test/panel-first-screen.test.mjs` 40 条——分组数据、唯一数据源、页面产物对拍、面板接线、折叠与降级。统计 **102 个测试文件 / 4406 条断言**,七道闸全绿。
12
58
 
13
- ## 0.50.0(2026-10-30)
59
+ ## 0.50.0(已并入 0.50.1)
14
60
 
15
61
  知识卡 `liuyao-yingqi` 一直写着「应期只作时间窗口的提示」,引擎却一行都没给:用神旺衰算了、伏神出伏算了,轮到「什么时候见分晓」只剩「未做」。这一版把诚实的那一半补上——列出该留意的地支与快慢方向,仍不给具体日期。
16
62
 
@@ -21,7 +67,7 @@
21
67
  - **文档**:README「六爻」「精度与口径」两条、清单 §3.1 / §4.3 与 0.50.0 说明块同步;package description 补「应期线索」。
22
68
  - **测试**:新增 `test/liuyao-yingqi.test.mjs` 73 条——12 支冲合独立复算、64 卦 × 13 组月建(12 支 + 缺月建)× 4 方向 3328 盘逐条复算(月态 / 月破 / 旬空 / 快慢 / 归并去重)、旬空 / 月破 / 用神两现 / 伏神 / 缺月建 / 两现快慢不一六条边界、四处可见与不出现日期、旧结果兼容、确定性。统计 **101 个测试文件 / 4366 条断言**,七道闸全绿。
23
69
 
24
- ## 0.49.3(2026-10-30)
70
+ ## 0.49.3(已并入 0.50.1)
25
71
 
26
72
  离线页(`命理排盘.html`)的「农历」tab 一直是坏的:转换方向那条分段控件从来没显示出来,农历日期怎么填都被判格式错;同一次真机检查还量出深色主题下「选中态实心底上的白字」只有约 3:1。这一版把断链接通,把强调面文字换成变量(两套配色各自过 WCAG),并顺手收掉窄屏闰月勾选框被拉高的毛病。
27
73
 
@@ -32,7 +78,7 @@
32
78
  - **验证**:真 390×844(CDP 设备模拟)浅/深各跑一遍——无横向溢出(scrollW=390)、`农历2026年九月十七 ⇄ 2026-10-26` 正常出结果、日期标签为「日期(公历)」、勾选框 18×18、tab 与主按钮触摸目标 44/48px。
33
79
  - **测试**:新增 `test/convert-ui.test.mjs` 31 条(两个入口同一套正则、2026-9-17 与闰六月前后边界、每个 `#qk-*` 都有显隐接线、闰月与 datetime 透传、格式错误文案走 textContent);`test/theme.test.mjs` 现为 65 条。统计 **100 个测试文件 / 4293 条断言**,七道闸全绿。
34
80
 
35
- ## 0.49.2(2026-10-30)
81
+ ## 0.49.2(已并入 0.50.1)
36
82
 
37
83
  黄历卡片里的二十八宿,把「壁水貐」写成了「壁水獝」、「胃土雉」写成了「胃土彘」——两个字都只是动物名,不影响排盘、宜忌与宿值日,但它是用户每天在摘要和面板上能看到的原文。这一版按通行二十八宿名逐字改正,并把整张表在测试里独立重录一遍,逐字对拍。
38
84
 
@@ -41,7 +87,7 @@
41
87
  - **文案**:`engine/almanac.js` 顶部「诚实边界」注释同步——二十八宿、胎神、值日神、吉神方位已收录,未收录的只剩逐日全量吉凶神煞与彭祖百忌(旧注释把已收录项也写成了「未收录」,与返回值的 `scope` 打架)。
42
88
  - **测试**:新增 `test/almanac-xiu.test.mjs` 60 条——通行表在测试里独立录 28 行逐字对拍(含壁水貐、胃土雉)、四宫各七、动物不重、12 支 × 7 日的七曜顺序、13 段 56 天的 28 日循环与 28 日不重不漏、2026 全年不再出现「獝」「彘」、壁/胃的星期锚点、结果层/文本摘要/面板三处可见、同日两次逐字段一致、400 天宿五行与星期七曜一致。统计 **99 个测试文件 / 4262 条断言**,七道闸全绿。
43
89
 
44
- ## 0.49.1(2026-10-30)
90
+ ## 0.49.1(已并入 0.50.1)
45
91
 
46
92
  「岁运提示」是引擎里唯一一节没有原文支撑的能力:逐年标出岁运并临 / 运年反吟 / 流年伏吟反吟,读法却是自己写的;知识卡 `bazi-suiyun` 的出处只写「见《三命通会》《渊海子平》」,没有卷次也没有链接。这一版补上《三命通会》卷二「总论岁运」原文,并顺手记下一处口径分歧。
47
93
 
@@ -54,7 +100,7 @@
54
100
  - **文档**:README「古籍原文」「岁运提示」与致谢、清单 §二·7 与文末注同步;三命通会条目 16 → 17。
55
101
  - **测试**:`test/sanming.test.mjs` +14 条(原文抽检、章名/链接、scene 与 tag、不进五条表、有/无信号两向的结果层/摘要/解析层/面板表现、知识卡出处),条目计数 16 → 17;`test/classic-quotes.test.mjs` +4 条(原文、出处、plain 口径)并把 scene 枚举加入「岁运」。统计 **98 个测试文件 / 4202 条断言**,七道闸全绿。
56
102
 
57
- ## 0.49.0(2026-10-30)
103
+ ## 0.49.0(已并入 0.50.1)
58
104
 
59
105
  「月令是什么」此前只答到月支本气:知识卡 `bazi-yueling-siquan` 写着「月内分日轮值」,引擎却一个字段都没给,面板与摘要里也看不到「生在本月第几日、哪一干当权」。这一版把《渊海子平》的人元司权分日落进引擎与解释层,补上清单 §3.3 里挂得最久的争议项。
60
106
 
@@ -66,7 +112,7 @@
66
112
  - **文档**:README「人元司权」一条;清单 §3.3 与 §4.1 同步,并补实现说明块。
67
113
  - **测试**:新增 `test/renyuan.test.mjs` 361 条——逐支核表(合计 30、连续、五行、末段为本气、2–3 段)、纯边界(首日/末日/下一段/第 31 日/第 0 日夹取)、12 张真实盘独立复算日差、已知盘 1990-05-12(巳月第 7 日庚)与 1990-11-08(亥月第 1 日戊,不在藏干表)、2023-06-05(第 31 日按本气)、立春前后 30 分钟切换、删字段不改格、确定性、摘要/解析层/知识卡口径,并禁绝「一定/必然/注定/百分百」。统计 **98 个测试文件 / 4185 条断言**,七道闸全绿。
68
114
 
69
- ## 0.48.0(2026-10-30)
115
+ ## 0.48.0(已并入 0.50.1)
70
116
 
71
117
  在 390×844 的真视口(无头 Edge + DevTools 协议,浅色与系统深色各跑一遍)里把「交叉验证」和三张表量了一遍:大运表六列排到 748px,屏幕只露出左半边,右边界既没有渐隐也没有「还能滑」的提示;交叉验证是五段「八字——…;紫微——…;判断:…」的长句连读;表头 11px 的 `--label` 对 `--band` 只有 3.51:1;目录链接 22px、证据摘要 33px、名词解释 22px,都够不着 44px 的触摸目标。这一版按测量结果改样式与结构,`test/theme.test.mjs` 锁的深色/打印/窄屏规则一条没动,七道闸全绿。
72
118
 
@@ -78,7 +124,7 @@
78
124
  - **侧栏也生效**:dsh 侧栏是「窗口宽、报告窄」,`@media` 不触发;`.mp-it` 声明为查询容器,同一批窄屏规则另挂一份 `@container (max-width:640px)`。实测把报告放进 420px 容器(窗口 1280px):表格 1092px → 396px 且不再横滑、目录链接 44px、对照卡单列,与 390px 视口下的结果一致。
79
125
  - **测试**:新增 `test/narrow-report.test.mjs` 52 条——结构(五张卡、十个分栏、`data-label` 数量、转义)、窄屏样式规则(含容器查询版)、触摸目标、两套调色板逐对对比度,并反向锁住「表头若改回 label 会掉到 3.51:1」。统计 **97 个测试文件 / 3824 条断言**,七道闸全绿。
80
126
 
81
- ## 0.47.1(2026-10-30)
127
+ ## 0.47.1(已并入 0.50.1)
82
128
 
83
129
  交叉验证是 README 里挂了很久的能力,但测试只在外围点了六下(条目数、三档词、文本出现),五项判定的阈值、性别分支与节奏真值表一条没锁;顺手查出两处「说得比数据多」的文案。
84
130
 
@@ -88,7 +134,7 @@
88
134
  - **文档**:README「精度与口径」补一条,写明缺一侧时的标法与节奏说明的分档。
89
135
  - **测试**:96 个测试文件 / 3772 条断言,七道闸全绿。
90
136
 
91
- ## 0.47.0(2026-10-30)
137
+ ## 0.47.0(已并入 0.50.1)
92
138
 
93
139
  四墓月(辰戌丑未)此前只取月令本气,藏干透了也用不上、三合会成了局也看不见;同一段代码还把戊辰、戊戌、己丑、己未当成建禄,把透干/会支取到的劫财写成「劫财格」。这一版把《子平真诠》十六「论杂气如何取用」落进引擎与原文库。
94
140
 
@@ -408,6 +454,8 @@
408
454
 
409
455
  0.39.0–0.46.4 同样只提交在本地;这些内容随 **0.46.5** 一并发布(2026-10-30),npm 上的 latest 从 0.38.2 直接跳到 0.46.5。
410
456
 
457
+ 0.47.0–0.50.0 同样只提交在本地;这些内容随 **0.50.1** 一并发布(2026-10-30),npm 上的 latest 从 0.46.5 跳到 0.50.1。
458
+
411
459
  ## 0.34.0(已发布)
412
460
 
413
461
  六爻补上**用神旺衰**:月建给这一段时令的气,日辰给当天的扶克。此前用神只算到「落在哪一爻、与卦体怎么对」,旺不旺一律写「仍要月建日辰」,等于把最关键的一半留白。
package/README.md CHANGED
@@ -30,11 +30,12 @@ Chinese metaphysics (玄学 / xuanxue) for [DeepSeek Harness](https://github.com
30
30
  - **追问**:工具参数 `ask`,围绕已算好的盘回答「2027 年事业怎么样」这类问题;不重排、不猜测,找不到会明说
31
31
  - **八字 × 紫微 交叉验证**:工具参数 `cross`,五项并列对照,标注同向 / 有张力 / 互补
32
32
  - **晚子时开关**:23:00 后算次日还是当日,面板与独立页都能切;奇门另有「归当日 / 归次日」
33
+ - **口径对照**:同一个盘只换一个开关(晚子时 / 真太阳时 / 闰月归月 / 奇门取局 / 晚子时归日),结果下方折叠列出「根因字段 旧值 → 新值」与连带变化数;面板、独立页与工具参数 `diff: true` 共用同一份开关表。只列差异,不判哪套更准,不改盘面
33
34
  - **验前事**:列出过去几年流年信号,自评准/不准/不确定后算贴合度;只读,不改盘
34
35
  - **生时校正**:给定过去 2–3 件大事,对候选时辰逐一排盘打分排序;只缩小范围,不替代出生记录
35
36
  - **导出**:`.md`(盘面 + 解析)与 PNG 摘要长图(Canvas 直出,零依赖);独立页支持打印/存 PDF
36
37
  - **调候解释**:解释层新增「寒暖燥湿」一节,文本摘要加「寒暖:」一行
37
- - **古籍原文**:《子平真诠》论用神/正官/财/印/食神/偏官/伤官/阳刃/建禄月劫/用神配气候/用神成败救应/用神变化/杂气如何取用 13 章 + 《滴天髓》通神论寒暖/燥湿/衰旺/中和/官杀/伤官/月令/体用/精神/通关 10 条 + 《三命通会》卷五、卷六论正官/正财/偏财/印绶/食神/伤官/阳刃/建禄 8 条与卷五官煞去留杂论 1 条,另有专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞/从财 7 篇,按格局与气候匹配后附在结果里(原句照录、白话释义、出处章号)。同一个格,子平真诠在前讲「怎么用」,三命通会紧随作对照讲「怎么取、怕什么」,两条并列、不合并成一句断语;正财与偏财在三命通会里分章,两格各取本格一条,七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。命中的专旺格与从财/从杀格先取单章原文(从儿、从强三书无专章,不硬凑)。另有《三命通会》卷二「总论岁运」一条,只在盘面出现岁运并临/反吟/伏吟时随「岁运提示」给出——它不占 5 条上限;原文的「返吟/伏吟」按「岁运与日柱相对 / 岁运压日」说,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。用神总纲位按盘四选一:有化气格取「用神变化」,辰戌丑未四墓月取「杂气如何取用」,见组合取「用神成败救应」,其余取「论用神」总纲——不另加位次,整节仍以 5 条为限;通关结构成立且关可通时,另以「通关」条占去泛论气候的那一位,寒暖/燥湿的具体条目照留。杂气月取格按「透干 → 三合会支 → 本气」的次序:会支只认三合、不认三会方,兼透时只取最先透出的那一干,依据里写明走的是哪一条——原文的「兼透则兼用」只列原则,落到单一格名时必须择一,这块取舍仍属各家分歧
38
+ - **古籍原文**:《子平真诠》论用神/正官/财/印/食神/偏官/伤官/阳刃/建禄月劫/用神配气候/用神成败救应/用神变化/杂气如何取用 13 章 + 《滴天髓》通神论寒暖/燥湿/衰旺/中和/官杀/伤官/月令/体用/精神/通关 10 条 + 《三命通会》卷五、卷六论正官/正财/偏财/印绶/食神/伤官/阳刃/建禄 8 条与卷五官煞去留杂论 1 条,另有专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞/从财 7 篇,按格局与气候匹配后附在结果里(原句照录、白话释义、出处章号)。同一个格,子平真诠在前讲「怎么用」,三命通会紧随作对照讲「怎么取、怕什么」,两条并列、不合并成一句断语;正财与偏财在三命通会里分章,两格各取本格一条,七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。命中的专旺格与从财/从杀格先取单章原文(从儿、从强三书无专章,不硬凑)。另有《三命通会》卷二「总论岁运」一条,只在盘面出现岁运并临/反吟/伏吟时随「岁运提示」给出——它不占 5 条上限;原文的「返吟/伏吟」按「岁运与日柱相对 / 岁运压日」说,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。另录《三命通会》卷二「论人元司事」一条,随「人元司权」一节给出,同样不占 5 条上限;该本日数(寅月 5/5/20、卯月 7/23)与本插件通行 30 日表不同,原文并列、不改取格。用神总纲位按盘四选一:有化气格取「用神变化」,辰戌丑未四墓月取「杂气如何取用」,见组合取「用神成败救应」,其余取「论用神」总纲——不另加位次,整节仍以 5 条为限;通关结构成立且关可通时,另以「通关」条占去泛论气候的那一位,寒暖/燥湿的具体条目照留。杂气月取格按「透干 → 三合会支 → 本气」的次序:会支只认三合、不认三会方,兼透时只取最先透出的那一干,依据里写明走的是哪一条——原文的「兼透则兼用」只列原则,落到单一格名时必须择一,这块取舍仍属各家分歧
38
39
  - **《穷通宝鉴》120 格**:十天干 × 十二月令逐格录入用神顺序与原文摘句(「十二月乙木,木寒宜丙」这类原句照录),调候卡里直接给出「这一格书上取什么」与出处章号
39
40
  - **方法与验证页**:独立页内置静态页,写明对拍数据、测试与闸门、口径与已知边界
40
41
  - **离线单文件页(随包分发)**:`命理排盘.html` 一份文件、零依赖、双击即开,十九个入口按用途分三组(也能一键切回平铺),断网可用;它随 npm 包发布,装完插件就有(路径见下)
@@ -56,12 +57,12 @@ Chinese metaphysics (玄学 / xuanxue) for [DeepSeek Harness](https://github.com
56
57
  - **十二长生**:地势(日干对各支)、自坐(各柱干对本支)
57
58
  - **神煞(42 星,7 类)**:贵人(天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医)、文星(文昌、德秀)、婚姻(桃花、红鸾、天喜、孤辰、寡宿、金舆)、性情(华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵)、事业(禄神、将星、驿马)、凶煞(劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网)、格局(天赦日、金神、三奇贵人)。天干类双查年干与日干,三合类双查年支与日支;每颗星附查法依据,界面悬停可见
58
59
  - **日主旺衰**:月令权重 + 通根 + 天干帮扶,量化分档,并给出依据(季节权重、通根地支、帮扶/耗泄明细)
59
- - **人元司权**:按「节」到出生日的日差,算出本月第几日、哪一藏干当权(30 日表:余气 → 中气 → 本气;节当日为第 1 日,第 31 日以后按本气并标出)。另有 7/7/16、9/3/18 等分法,结果里只列本插件口径;司权表比本柱藏干表宽(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样。分日只作解释层的一层细节,取格仍按本气、透干与会支判定,不随轮值改判
60
+ - **人元司权**:按「节」到出生日的日差,算出本月第几日、哪一藏干当权(30 日表:余气 → 中气 → 本气;节当日为第 1 日,第 31 日以后按本气并标出)。另有 7/7/16、9/3/18 等分法,结果里只列本插件口径;三命通会卷二「论人元司事」此本又作寅月 5/5/20、卯月 7/23,原文随该节并列、不改取格。司权表比本柱藏干表宽(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样。分日只作解释层的一层细节,取格仍按本气、透干与会支判定,不随轮值改判
60
61
  - **寒暖燥湿(调候优先)**:月令温度 + 全局火水比例 + 湿土燥土判定气候,给出调候所取(寒湿取丙火、燥热取壬水)与所忌、温度/燥湿标尺、按日主五行的体感白话;流年大运评分接入调候(寒局再逢水加重扣权);面板在「用神」下有寒暖卡
61
62
  - **《穷通宝鉴》120 格**:按「日主 + 月令」查到该格用神顺序(如乙木丑月取丙),附原文摘句与章号;寒暖卡里与调候判定并列显示,两者不同向时以调候为先(「书里的取用」与「这一盘的气候」各自摆出来,不悄悄合并)
62
- - **格局与用神**:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神按「调候优先 + 扶抑校验」:先判寒暖燥湿(寒/寒湿/寒燥/湿滞/平/燥/燥热/温热,附温度与燥湿量化值与依据),调候所需与扶抑冲突时显式仲裁并说明理由,不冲突时注明同向;再列喜忌十神;两行相战时另判通关(克方所生、又能生用神的那一行,五行里唯一),按局中分量报强弱
63
+ - **格局与用神**:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神按「调候优先 + 扶抑校验」:先判寒暖燥湿(寒/寒湿/寒燥/湿滞/平/燥/燥热/温热,附温度与燥湿量化值与依据),调候所需与扶抑冲突时显式仲裁并说明理由,不冲突时注明同向;再列喜忌十神;若调候所忌正好是扶抑所喜,保留在喜用、单列「有争议」,不把同一五行同时判喜判忌;两行相战时另判通关(克方所生、又能生用神的那一行,五行里唯一),按局中分量报强弱
63
64
  - **行运吉凶**:大运、流年按喜忌五行与十神加权评分,分大吉/吉/平/忌/大忌五档,悬停可看逐项理由
64
- - **岁运提示**:逐年标出**岁运并临**(当值大运与流年干支相同)、**运年反吟**(大运与流年天克地冲)、**流年伏吟 / 反吟**(流年与原局某柱干支相同 / 天克地冲);流年按立春起算,交运落在年内时前后两步大运并列。只标干支重复与对冲、不判吉凶,摘要、解析、白话与面板四处可见;有信号时解析层另附《三命通会·卷二·总论岁运》原文(含「返吟/伏吟」与本书口径不同的说明)
65
+ - **岁运提示**:逐年标出**岁运并临**(当值大运与流年干支相同)、**运年反吟**(大运与流年天克地冲)、**大运伏吟 / 反吟**(大运与原局某柱干支相同 / 天克地冲)、**流年伏吟 / 反吟**(流年与原局某柱干支相同 / 天克地冲);流年按立春起算,交运落在年内时前后两步大运并列。大运与本命四柱的伏吟/反吟整步大运都在,会连续多年出现,不逐年加重。只标干支重复与对冲、不判吉凶,摘要、解析、白话与面板四处可见;有信号时解析层另附《三命通会·卷二·总论岁运》原文(含「返吟/伏吟」与本书口径不同的说明)
65
66
  - **大运交运日**:按「三日折一年」把出生到节令的间隔放大,算出**交运时刻(日/时辰级)**与每步大运的起止日期(同月同日同时刻换,闰日退到 2 月 28 日);大运表的「交运」列、面板曲线与 chip 悬停都能看到
66
67
  - **干支关系**:五合、相冲、相克;六合、三合半合、三会半会拱会、冲、害、破、刑
67
68
  - 大运、流年(含与原局地支的关系)、真太阳时(按出生地经度修正)
@@ -225,6 +226,7 @@ dsh plugin install ./dsh-metaphysics-0.17.0.tgz
225
226
  - **农历**:定朔(Meeus 第 49 章,误差约 1 分钟)+ 冬至所在月为十一月 + 无中气置闰
226
227
  - **真太阳时**:经度差 + 均时差;内置 34 个省会 + 200 个地级市坐标(±0.2°),地址更细时可开「联网精确到区县」(Nominatim)。**单盘与合盘用的是同一套修正**(合盘双方各按自己出生地算)。只按经度修正,**未含历史时区与夏令时**:海外出生请先把当地钟表时间换算成东八区标准时再输入;没给经度时摘要首行会出 ⚠
227
228
  - **晚子时**:八字/大六壬默认 23:00 后换日,奇门默认归当日;`lateZi` 与 `lateZiHourMode` 是同一个开关的两个名字。各体系摘要都会写明本次采用的口径,不改默认值、不偷偷改盘
229
+ - **口径对照**:`caliberCompare` 只做「当前口径 → 另一档」的逐字段比对,根因按柱 / 命宫 / 局数 / 起运归类,`total` 是变化字段数、不是分数;没有根因时写明「无单一根因」(如真太阳时只改起运时刻)。取局流派、晚子时归日、闰月政策属于口径回显,不计入差异;「其他」是尚未归类的派生字段,不隐藏也不折算。对照会用同一组输入多排 2–3 张盘(工具里由 `diff: true` 显式开启)
228
230
  - **可复现**:塔罗/六爻给 `seed` 即得同一次抽牌/摇卦;紫微流月流日流时、塔罗的抽牌时刻、八字的流年基准年都可传 `asOf` 钉死
229
231
  - **紫微四化**:中州派常用表(庚干作太阳禄、武曲权、太阴科、天同忌)
230
232
  - **问进对话**:只做文本组装,不改盘、不调模型——面板把 `Engine.askPrompt` 生成的一段话交给 DSH 客户端槽位 `conversation.input.right` 拿到的 `inputActions`,先 `setDraft` 再 `submit`(官方输入框的正常提交路径);桥不在时退回复制剪贴板并给出提示。提问里带的盘面摘要按 3000 字截断并标注「摘要已截断」;面板已有解析时,模板会在摘要之前插入「开场结论」小节(直答 + 说人话,原样取自面板结果),让对话开场与面板同一口径;固定骨架(抬头 + 回答要求)约 520 字,不随 `maxChars` 变,`test/ask-prompt.test.mjs` 有断言盯它别长成小作文。这条链依赖 Harness 的客户端 slot API(`conversation.input.right` + `inputActions`),升级 Harness 后若槽位改名,按钮会静默退回「复制」而不是报错
@@ -242,7 +244,7 @@ dsh plugin install ./dsh-metaphysics-0.17.0.tgz
242
244
  - **六爻应期线索**:只做「时间窗口的方向」——用神(不上卦取伏神)的逢值、逢冲、逢合三支,旬空另加出空填实与冲空;快慢按月建五态分偏速 / 偏缓 / 待解 / 未定(两现而旺衰不一或缺月建记未定)。不换算日期、不排先后、不判忌神受制,也不叠动变连环;近事以日计、远事以月计,用哪把尺由事情远近决定,本插件不代选。具体应期日期仍是 `liuyao-yingqi-exact` 的待办项
243
245
  - **八字交运日**:交运时刻 = 出生时刻 + 「出生到起运侧节令」的真实天数 × 365.2422/3,顺排数到下一节、逆排数到上一节;同一条比例即古法「三日折一年、一日折四月、一时辰折十日」。每步大运在同月同日同时刻换,闰日退位。一年取回归年 365.2422 日——按 360 日折算的流派会差一两天,`dayun.jiao.yearDays` 把这个口径写进了结果
244
246
  - **八字通关**:只在「用神与克它的忌神两行在局中各 ≥1.5 分」时成立相战,通关行由五行生克唯一确定(克方所生、又生用神;金克木以水为关),按局中分量分「可通 / 关弱 / 为忌 / 未通」四档,`usable` 仅指「可通」;通关行若在本盘属忌神,只标「为忌」、不当桥用。只写进用神 detail、摘要与解释层,不折分数、不断吉凶,也不判通关之力够不够用。`test/tongguan.test.mjs` 用五组相克、阈值边界与 24 年逐月真实盘独立重算核对
245
- - **岁运提示**:四类信号只认干支事实——**天克地冲**要求天干相克且地支相冲,缺一不算(例如丙子年对丙午年柱是同干相冲,不标反吟);当值大运取与「该年立春到次年立春」相交的步,交运落在年内时前后两步并列。不折分数、不判吉凶,「岁运并临主大凶」一说不采;大运与原局之间的伏吟反吟未逐年标,四柱十神的引化也未叠入
247
+ - **岁运提示**:六类信号只认干支事实——**天克地冲**要求天干相克且地支相冲,缺一不算(例如丙子年对丙午年柱是同干相冲,不标反吟);当值大运取与「该年立春到次年立春」相交的步,交运落在年内时前后两步并列。不折分数、不判吉凶,「岁运并临主大凶」一说不采;大运与本命四柱的伏吟/反吟整步大运都在,随每年重复列出、不逐年加重;四柱十神的引化也未叠入
246
248
  - **六爻用神**:只落到「哪一爻是用神、它与卦体/动变/旬空什么关系、月建日辰给它什么状态」这一层——不叠出一个月建日辰换算的力重分数,用神两现时把候选都列出来而不代选;伏神给出伏于何爻、飞伏生克与出伏条件(飞生伏、伏克飞、日辰生/比和、月建旺/相算助,飞克伏、日辰克、月破算压,归四档),条件只并列、不排各家优先级,也不出具体日期与应期
247
249
  - **十六型人格**:MBTI **风格**的自建问卷,不是官方 MBTI 量表——题目、计分与常模都是本插件自己的,不与任何商业量表对齐;四维净分 =(分数 − 3)× 侧向求和,平手按 I / N / F / P 取并标「临界」,强度是按「净分 / (答数 × 2)」分的四档,不代表任何总体分布。结果只作自我参照,不用来评价他人能力、做招聘或临床判断
248
250
  - **入参**:日期按月份天数与闰年校验(`1990-02-30` 直接报错,不滚到下个月);八字/紫微/合盘的性别必填(性别决定大运大限顺逆,不做默认);六爻爻值必须正好 6 个,留空才随机摇卦。非法入参带错误码返回(`E_INPUT` / `E_LINES` / `E_COUNT` / `E_ASOF` / `E_PARTNER`),不静默改成另一个盘;风水缺坐向、非 24 山、坐向不对宫、运越界与运非整数(含字符串)同样归 `E_INPUT`,工具层不会把它们标成内部错误,也不会把 `2.5` 静默当成缺省九运
@@ -269,7 +271,7 @@ npm run check:patterns # 单独跑工程约定检查
269
271
  npm run release # 测试 → 构建 → 校验产物 → 发 npm → 核对附件(token 从 NPM_TOKEN 读)
270
272
  ```
271
273
 
272
- 也可以直接调脚本:`node tools/build-client.mjs`、`node tools/build-html.mjs`、`node tools/check-bundle.mjs`、`node tools/test-all.mjs`、`node tools/check-assertions.mjs`、`node tools/verify-tests-can-fail.mjs`、`node tools/check-html-sinks.mjs`、`node tools/check-patterns.mjs`、`node tools/release.mjs`、`node tools/verify-publish.mjs`(被 release 调用,也可单独用来核对某个版本)。
274
+ 也可以直接调脚本:`node tools/build-client.mjs`、`node tools/build-html.mjs`、`node tools/caliber-diff.mjs`(同盘换口径的逐字段对照)、`node tools/check-bundle.mjs`、`node tools/test-all.mjs`、`node tools/check-assertions.mjs`、`node tools/verify-tests-can-fail.mjs`、`node tools/check-html-sinks.mjs`、`node tools/check-patterns.mjs`、`node tools/release.mjs`、`node tools/verify-publish.mjs`(被 release 调用,也可单独用来核对某个版本)。
273
275
 
274
276
  **测试的七道闸**:
275
277
 
@@ -334,16 +336,16 @@ node tools/release.mjs --verify-only # 只核对 registry 上当前版
334
336
 
335
337
  微信群:**dsh-metaphysics**
336
338
 
337
- ![dsh-metaphysics 讨论群二维码](docs/assets/dsh-metaphysics-group.png)
339
+ <img src="https://github.com/xuanfu-web/dsh-metaphysics/releases/download/v0.50.1/dsh-metaphysics-group-2026-10-30.jpg" alt="dsh-metaphysics 讨论群二维码" width="480">
338
340
 
339
- 这批二维码 7 天内有效(至 2026-11-05);过期了在 [issues](https://github.com/xuanfu-web/dsh-metaphysics/issues) 说一声,我换新图。只想提问题、不想进群的,开 issue 一样算数。
341
+ 这批二维码 7 天内有效(11 月 6 日前,2026-10-30 更新);过期了在 [issues](https://github.com/xuanfu-web/dsh-metaphysics/issues) 说一声,我换新图。只想提问题、不想进群的,开 issue 一样算数。
340
342
 
341
343
  ## 致谢
342
344
 
343
345
  本插件的十套速查体系(农历互转为自有实现)在**能力范围**上参考了同生态的 [dsh-xuanji(玄机阁)](https://github.com/huangziyuan-general/dsh-xuanji)(MIT):黄历、择日、称骨、小六壬、星座、生命数字、人生 K 线、风水、起名。
344
346
  **实现是独立的**:没有拷贝对方源码,也没有引入它的依赖(iztro / lunar-javascript),全部按行为规格用本项目的 calendar / lunar / dst 模块重写,并逐项与公开通行表或 lunar-javascript 对拍(称骨表的初版错误就是这样查出来的)。特此致谢。
345
347
 
346
- 《子平真诠》《滴天髓》《三命通会》的原文摘句取自 [中华典藏网](https://www.diancang.xyz/)(古籍,public domain),照录通行本、附章名与链接;释义为白话自撰。三命通会取与格局取用直接相关的十六篇——论十神八篇(正财、偏财在该本分章),加专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞、弃命从财七篇,另取卷五官煞去留杂论作七杀格的对照(该本没有单列的「论偏官」);另录卷二「总论岁运」一条作岁运提示的出处。从儿、从强三书没有可整段照录的专章,未硬凑。
348
+ 《子平真诠》《滴天髓》《三命通会》的原文摘句取自 [中华典藏网](https://www.diancang.xyz/)(古籍,public domain),照录通行本、附章名与链接;释义为白话自撰。三命通会取与格局取用直接相关的十六篇——论十神八篇(正财、偏财在该本分章),加专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞、弃命从财七篇,另取卷五官煞去留杂论作七杀格的对照(该本没有单列的「论偏官」);另录卷二「总论岁运」「论人元司事」两条,分别作岁运提示与人元司权的出处(人元一条的日数与通行表不同,原文并列、不改判)。从儿、从强三书没有可整段照录的专章,未硬凑。
347
349
 
348
350
  《穷通宝鉴》120 格的原文摘句取自 [luckclub.cn](https://www.luckclub.cn/bazi/004/)(古籍,public domain),用神顺序参考 [knowyourbazi.com](https://knowyourbazi.com/zh-hans/qiongtong/) 的整理表;两者逐格对读,原文全章未见某个用神字时(如八月丁火的「丙」),数据里直接标了 note 说明「按整理表录入、待以善本核对」,没有替它圆场。
349
351