dsh-metaphysics 0.50.5 → 0.55.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/README.md CHANGED
@@ -1,355 +1,364 @@
1
- # dsh-metaphysics · 命理排盘
2
-
3
- Chinese metaphysics (玄学 / xuanxue) for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): BaZi (Four Pillars), Zi Wei Dou Shu, LiuYao, MeiHua YiShu, Da Liu Ren, Qi Men Dun Jia, relationship compatibility, Tarot, plus quick-reference tools — almanac, date selection, bone-weight fortune, Xiao Liu Ren, horoscope, numerology, an MBTI-style 16-type questionnaire, life-curve, feng shui and name analysis.
4
-
5
- 给 DeepSeek Harness 用的**玄学命理**插件:**四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、奇门遁甲、合盘、塔罗牌**八大排盘体系,外加**黄历、农历(公农历互转)、择日、称骨、小六壬、星座、生命数字、人生K线、风水、起名、十六型人格**十一套速查,同时提供 Agent 工具与 Web 面板。
6
-
7
- > 传统命理与占卜属文化娱乐用途,不构成医疗、投资、法律或生死判断的依据。
8
-
9
- ## 插件市场备注
10
-
11
- **命理排盘(玄学)· 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗 + 黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格** —— 一个插件把十九套体系装进 Harness:对话里说一句就排盘,侧栏还有可视化面板。
12
-
13
- - **八字**:42 颗神煞(分吉凶七类,天干星双查年干与日干、三合星双查年支与日支,悬停看查法)、日主旺衰量化并给出依据、格局与用神(月令取格 + 化气/专旺/从格 + 十神组合,每条附判定依据)、**通关结构**(用神与克它的忌神两行各 ≥1.5 分时,指出五行里唯一能接上的那一行并分「可通/关弱/为忌/未通」四档,不折吉凶)、大运流年按喜忌五行与十神打分(大吉/吉/平/忌/大忌,可看逐项理由),大运另有**交运时刻**(日/时辰级,三日折一年放大)与每步起止日期
14
- - **紫微**:十四主星与 49 星曜(主星带**庙旺得利平不陷**亮度标注)、四层十二神、生年四化与宫干自化、**四化飞星串连**(宫干化星 → 星定落宫 → 顺同一支化逐宫追到成环)、**三方四正复合飞化**(四宫 16 条按落宫归堆,标双忌会/禄忌同宫/三化会/自化)、34 条格局(标吉/中性/忌倾向与依据,每条都有独立的成立条件复算)、大限一览、流年四化落宫;**闰月口径**默认按日切分(1–15 归本月、16 起归次月,主流排盘口径),可切 `leapMonth: next/prev`;本命/大限/流年三视图一键切换,命宫红框、三方四正浅底标出;竖屏与窄侧栏保持 4×4 宫盘(宫位相对位置不丢)
15
- - **六爻**:摇卦或手动爻值、纳甲、六亲、六神、世应;本卦/变卦并列、真爻线渲染(阳爻整条、阴爻断开、动爻描红);卦体关系(六冲/六合/伏吟/反吟/化进神/化退神)按纳甲地支推导并标注;**用神落位与卦体联动**(七档取六亲、不上卦取伏神并标飞伏生克、用神与卦体/动变/旬空串起来看)、**用神旺衰**(月建五态 + 日辰五关系,月破/暗动/冲空分开标)、**伏神出伏条件**(飞伏生克 + 月建日辰归四档,只判条件不出应期)、**全卦逐爻旺衰**(六爻全给五态与五关系,附分布、世应与最旺最弱爻)、**化进/化退力重**(按月建五态落档:得令/失令/月破,只给档位不折分数)
16
- - **梅花**:时间/数字起卦、体用生克分档、互变错综四卦齐出,本卦上下卦分块标体用
17
- - **大六壬**:天地盘 4×4 方盘(天盘大字、地盘小字、天将右下)、四课、九宗门三传、格局(贼克/元首/重审/伏吟/返吟/八专等)
18
- - **奇门遁甲**:时家转盘,拆补 / 超神接气 / 置闰三流派取局;九宫、值符值使、空亡驿马、门迫与宫制门严格区分;六仪击刑(按地支相刑定宫)与三奇入墓(按五行墓库定宫)逐宫标出;八门、九星与天盘干按月令分旺相休囚死;天盘干与所落宫另论干宫生克(干克宫/宫克干/干生宫/宫生干/比和)
19
- - **合盘**:八字或紫微双盘对照(日主、夫妻宫、五行互补 / 互落宫、四化引动)
20
- - **塔罗**:78 张全牌、1/3/5 张牌阵,逐牌牌位义 + 整体解读,体系与逆位口径写明
21
- - **速查十件**:黄历(四柱/建除/宜忌/冲煞/节气 + 值日十二神/时辰吉凶/二十八宿/胎神/吉神方位/纳音/六合三合)、农历(公农历互转)、择日(27 类事项、按五组归类、冲属相排除)、称骨(骨重 + 称骨歌原文 + 释义)、
22
- 小六壬(时间/报数起课)、星座(档案 + 当日基调)、生命数字(生命路径/生日/态度数)、人生 K 线(逐年分与形态)、
23
- 风水(八宅命卦/大游年/流年紫白/门主灶/玄空下卦)、起名(391 字库、逐字判定、五格三才与音韵检查)——口径与边界各自写明
24
- - 全部本地计算,不收集数据;结果供文化娱乐参考,不作医疗、投资、法律或生死判断
25
-
26
- ### 报告化与可核验(0.16 / 0.17 / 0.18 / 0.20 新增)
27
-
28
- - **一页读懂 + 三张表**:整体/事业/财富/感情/节奏五条摘要;大运表、流年表、触发事件表(紫微是大限/流年/触发)
29
- - **证据卡 + 置信度**:每条维度结论可展开到逐条盘面事实与所用技法,置信度按证据条数分强/中/弱
30
- - **追问**:工具参数 `ask`,围绕已算好的盘回答「2027 年事业怎么样」这类问题;不重排、不猜测,找不到会明说
31
- - **八字 × 紫微 交叉验证**:工具参数 `cross`,五项并列对照,标注同向 / 有张力 / 互补
32
- - **晚子时开关**:23:00 后算次日还是当日,面板与独立页都能切;奇门另有「归当日 / 归次日」
33
- - **口径对照**:同一个盘只换一个开关(晚子时 / 真太阳时 / 闰月归月 / 奇门取局 / 晚子时归日),结果下方折叠列出「根因字段 旧值 → 新值」与连带变化数;面板、独立页与工具参数 `diff: true` 共用同一份开关表。只列差异,不判哪套更准,不改盘面
34
- - **验前事**:列出过去几年流年信号,自评准/不准/不确定后算贴合度;只读,不改盘
35
- - **生时校正**:给定过去 2–3 件大事,对候选时辰逐一排盘打分排序;只缩小范围,不替代出生记录
36
- - **导出**:`.md`(盘面 + 解析)与 PNG 摘要长图(Canvas 直出,零依赖);独立页支持打印/存 PDF
37
- - **调候解释**:解释层新增「寒暖燥湿」一节,文本摘要加「寒暖:」一行
38
- - **古籍原文**:《子平真诠》论用神/正官/财/印/食神/偏官/伤官/阳刃/建禄月劫/用神配气候/用神成败救应/用神变化/杂气如何取用 13 章 + 《滴天髓》通神论寒暖/燥湿/衰旺/中和/官杀/伤官/月令/体用/精神/通关 10 条 + 《三命通会》卷五、卷六论正官/正财/偏财/印绶/食神/伤官/阳刃/建禄 8 条与卷五官煞去留杂论 1 条,另有专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞/从财 7 篇,按格局与气候匹配后附在结果里(原句照录、白话释义、出处章号)。同一个格,子平真诠在前讲「怎么用」,三命通会紧随作对照讲「怎么取、怕什么」,两条并列、不合并成一句断语;正财与偏财在三命通会里分章,两格各取本格一条,七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。命中的专旺格与从财/从杀格先取单章原文(从儿、从强三书无专章,不硬凑)。另有《三命通会》卷二「总论岁运」一条,只在盘面出现岁运并临/反吟/伏吟时随「岁运提示」给出——它不占 5 条上限;原文的「返吟/伏吟」按「岁运与日柱相对 / 岁运压日」说,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。另录《三命通会》卷二「论人元司事」一条,随「人元司权」一节给出,同样不占 5 条上限;该本日数(寅月 5/5/20、卯月 7/23)与本插件通行 30 日表不同,原文并列、不改取格。用神总纲位按盘四选一:有化气格取「用神变化」,辰戌丑未四墓月取「杂气如何取用」,见组合取「用神成败救应」,其余取「论用神」总纲——不另加位次,整节仍以 5 条为限;通关结构成立且关可通时,另以「通关」条占去泛论气候的那一位,寒暖/燥湿的具体条目照留。杂气月取格按「透干 → 三合会支 → 本气」的次序:会支只认三合、不认三会方,兼透时只取最先透出的那一干,依据里写明走的是哪一条——原文的「兼透则兼用」只列原则,落到单一格名时必须择一,这块取舍仍属各家分歧
39
- - **《穷通宝鉴》120 格**:十天干 × 十二月令逐格录入用神顺序与原文摘句(「十二月乙木,木寒宜丙」这类原句照录),调候卡里直接给出「这一格书上取什么」与出处章号
40
- - **方法与验证页**:独立页内置静态页,写明对拍数据、测试与闸门、口径与已知边界
41
- - **离线单文件页(随包分发)**:`命理排盘.html` 一份文件、零依赖、双击即开,十九个入口按用途分三组(也能一键切回平铺),断网可用;它随 npm 包发布,装完插件就有(路径见下)
42
-
43
- ### 离线单文件页 `命理排盘.html`
44
-
45
- 订阅(`npm i dsh-metaphysics` 或 `dsh plugin add dsh-metaphysics`)之后,这份页面就在包里:
46
-
47
- - `node_modules/dsh-metaphysics/命理排盘.html` —— 复制到任意位置双击打开,或用浏览器「打开文件」;不需要装依赖、不需要起服务、不需要联网
48
- - 也可以用 `require.resolve('dsh-metaphysics/命理排盘.html')` 拿到绝对路径(`package.json` 的 `exports` 已登记)
49
- - 它是**同源生成物**:与侧栏面板、Agent 工具共用同一份 `engine/`,所以版本一致——包里是哪个版本,页面就是哪个版本
50
- - 与联网无关的部分全部本地算:历法、排盘、古籍摘句、对拍数据都在文件里;只有两处例外,点了才生效——典籍出处的外部链接、以及地理编码选「在线」时的 OpenStreetMap 查询
51
- - 想重新生成(改了源码之后):`npm run build:html`,默认写到仓库根 `命理排盘.html`;`npm run build:desktop` 会把同一份同时写到仓库根与桌面(`~/Desktop/命理排盘.html`),页面左上角的版本徽标用来看桌面那份是不是最新;`-- --out <路径>` 可另存到别处
52
-
53
- ## 功能
54
-
55
- ### 四柱八字(bazi)
56
- - 四柱、藏干、十神、纳音、空亡(**逐柱**)
57
- - **十二长生**:地势(日干对各支)、自坐(各柱干对本支)
58
- - **神煞(42 星,7 类)**:贵人(天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医)、文星(文昌、德秀)、婚姻(桃花、红鸾、天喜、孤辰、寡宿、金舆)、性情(华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵)、事业(禄神、将星、驿马)、凶煞(劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网)、格局(天赦日、金神、三奇贵人)。天干类双查年干与日干,三合类双查年支与日支;每颗星附查法依据,界面悬停可见
59
- - **日主旺衰**:月令权重 + 通根 + 天干帮扶,量化分档,并给出依据(季节权重、通根地支、帮扶/耗泄明细)
60
- - **人元司权**:按「节」到出生日的日差,算出本月第几日、哪一藏干当权(30 日表:余气 → 中气 → 本气;节当日为第 1 日,第 31 日以后按本气并标出)。另有 7/7/16、9/3/18 等分法,结果里只列本插件口径;三命通会卷二「论人元司事」此本又作寅月 5/5/20、卯月 7/23,原文随该节并列、不改取格。司权表比本柱藏干表宽(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样。分日只作解释层的一层细节,取格仍按本气、透干与会支判定,不随轮值改判
61
- - **寒暖燥湿(调候优先)**:月令温度 + 全局火水比例 + 湿土燥土判定气候,给出调候所取(寒湿取丙火、燥热取壬水)与所忌、温度/燥湿标尺、按日主五行的体感白话;流年大运评分接入调候(寒局再逢水加重扣权);面板在「用神」下有寒暖卡
62
- - **《穷通宝鉴》120 格**:按「日主 + 月令」查到该格用神顺序(如乙木丑月取丙),附原文摘句与章号;寒暖卡里与调候判定并列显示,两者不同向时以调候为先(「书里的取用」与「这一盘的气候」各自摆出来,不悄悄合并)
63
- - **格局与用神**:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神按「调候优先 + 扶抑校验」:先判寒暖燥湿(寒/寒湿/寒燥/湿滞/平/燥/燥热/温热,附温度与燥湿量化值与依据),调候所需与扶抑冲突时显式仲裁并说明理由,不冲突时注明同向;再列喜忌十神;若调候所忌正好是扶抑所喜,保留在喜用、单列「有争议」,不把同一五行同时判喜判忌;两行相战时另判通关(克方所生、又能生用神的那一行,五行里唯一),按局中分量报强弱
64
- - **行运吉凶**:大运、流年按喜忌五行与十神加权评分,分大吉/吉/平/忌/大忌五档,悬停可看逐项理由
65
- - **岁运提示**:逐年标出**岁运并临**(当值大运与流年干支相同)、**运年反吟**(大运与流年天克地冲)、**大运伏吟 / 反吟**(大运与原局某柱干支相同 / 天克地冲)、**流年伏吟 / 反吟**(流年与原局某柱干支相同 / 天克地冲);流年按立春起算,交运落在年内时前后两步大运并列。大运与本命四柱的伏吟/反吟整步大运都在,会连续多年出现,不逐年加重。只标干支重复与对冲、不判吉凶,摘要、解析、白话与面板四处可见;有信号时解析层另附《三命通会·卷二·总论岁运》原文(含「返吟/伏吟」与本书口径不同的说明)
66
- - **大运交运日**:按「三日折一年」把出生到节令的间隔放大,算出**交运时刻(日/时辰级)**与每步大运的起止日期(同月同日同时刻换,闰日退到 2 月 28 日);大运表的「交运」列、面板曲线与 chip 悬停都能看到
67
- - **干支关系**:五合、相冲、相克;六合、三合半合、三会半会拱会、冲、害、破、刑
68
- - 大运、流年(含与原局地支的关系)、真太阳时(按出生地经度修正)
69
- - **四柱表版式**:按专业排盘习惯——年/月/日/时四柱并排固定成四列,左侧一列窄行名,列间不画竖线、只用极淡横线分行;天干地支作大字并随五行着色,日柱表头单独标红;藏干按「干·五行」逐行列出,十神按比劫/食伤/财/官杀/印五类分组着色;末行给**五行旺相休囚死**(以月令当令五行为基准,依次推出 旺/相/休/囚/死 五态)
70
-
71
- ### 紫微斗数(ziwei)
72
- - 农历(定朔 + 冬至置闰)、命宫、身宫、五行局
73
- - 紫微/天府、十四主星、六吉六煞、禄存天马、**49 颗星曜**
74
- - **十四主星庙旺得利平不陷**:按《紫微斗数全书》系通行表标注(各家在太阳/太阴少数宫位有出入,只标主星、不硬标辅星),庙旺标绿、得利平标灰、不陷标红
75
- - **九类流派开关**(不传则保持原 49 星盘面):`brightnessSchool`(亮度表 default/QS/XD1/ZZ/XD2)、`gengYearSihua`(庚干四化五变体,只作用于生年四化)、`tianmaSchool`(年支/生月三合)、`tiankongSchool`(不排/年支顺行/加生时)、`jiekongSchool`(不排/单星/正副双星/占验派,启用时并排旬空副旬)、`kuiyueSchool`(qs1/qs2/中一鸣/网络)、`tianshiTianshang`(常规/中州阴男阳女互换)、`changshengSchool`(默认/水二/火土,火土派土五局长生起寅)、`lateZishi`(晚子时当日/次日)。也可用 `schools: {...}` 整体嵌套传;非法取值静默回默认
76
- - 四层十二神:长生、博士、将前、岁前
77
- - 生年四化、宫干自化、大限、小限、流年(命宫、三方四正、流禄流羊流陀)、斗君
78
- - **格局识别(34 条,附判定依据与吉/中性/忌倾向)**:吉格:紫府同宫、紫府朝垣、君臣庆会、极向离明、七杀朝斗、英星入庙、石中隐玉、巨日同宫、日月夹命、日月对照、左右夹命、昌曲夹命、魁钺夹命、三奇嘉会、双禄朝垣、府相朝垣、禄马交驰、月朗天门、日出扶桑、机月同梁;中性:武贪同行、双禄交流、火贪铃贪、杀破狼、命无正曜;忌格:火铃夹命、羊陀夹命、羊陀夹忌、铃昌陀武、命里逢空、马头带箭、天罗地网、刑囚夹印、泛水桃花。**夹局只看两星是否分居命宫前后、不分左右**;「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫(擎羊在禄存 +1、陀罗在禄存 −1,两星只能夹禄存);「刑囚夹印」不按字面判夹(廉贞与天相永远隔偶数宫),取通行说法「廉贞天相同守命宫于子午、擎羊同宫」(其它宫位同宫不算)。34 条由 `test/ziwei-patterns.test.mjs` 用独立谓词逐条复算,并要求每条至少命中一次
79
- - **大限一览**:十二限排序列出宫位、年龄区间、宫干四化落宫、三方主星;**流年四化**:逐年给出四化星落宫与命宫三方主星
80
- - **四化飞星串连**:宫干定四化、四化定落宫,再顺同一支化从落宫接着飞,最多 12 步、回到走过的宫即记「成环」。盘面给 12 宫 × 四化 = 48 条飞化与自化标记;摘要/解析/面板都按四支(禄权科忌)列出 `命宫→官禄→父母→命宫` 这样的整条链,解释层只写方向与牵引、不断吉凶
81
- - **三方四正复合飞化**:把命宫连同对宫与两个三合宫(共四宫)的宫干四化一起摊开,约 16 条按落宫归堆,落到同一宫就是会照;标出双忌会、禄忌同宫、三化以上会宫与自化。会在一处的化越多,那一宫被牵动的力道越集中;摘要/解析/面板都给出会聚结论,同样只描会照与方向、不折吉凶
82
- - **流月 / 流日 / 流时**:由流年斗君逐级下推——斗君起正月顺行至该农历月,流月命宫起初一顺行至该农历日,流日命宫起子时顺行至该时辰;每层给落宫、宫干四化落宫与三方四正。基准时刻默认取本机当前时刻(可用 `asOf` 指定以便复现)
83
- - **宫位点击展开详情**:点任一宫摊开该宫完整星曜(含亮度、四化)、宫干四化、四层十二神、大限/小限,并把三方四正(三合两宫 + 对宫)一起列出、在盘上同步描边;空宫标注「借对宫 XX」;再点一次收起
84
- - 昌曲专论:与丑未的关系、是否入命三方、吸收面清杂
85
-
86
- ### 六爻(liuyao)
87
- - 摇卦或手动爻值、本卦/变卦、纳甲、六亲、六神、世应
88
- - 卦体关系按纳甲地支实配推导:六冲卦(10 支,八纯 + 天雷无妄 + 雷天大壮)、六合卦(8 支)、卦伏吟 / 卦反吟(地支全冲、八卦正对两路)、爻伏吟 / 爻反吟
89
- - 化进神 / 化退神:动爻变出同五行顺次之支(寅→卯、巳→午、申→酉、亥→子,土丑→辰→未→戌→丑),进者标「化进神 N」、退者标「化退神 N」,并写明本支→变支
90
- - **化进/化退力重**:方向之外再按月建五态落档——旺相 → 后劲足(退则退得缓)、休囚 → 后劲有限(退则退得实)、死 → 进得虚、逢月破 → 月破失据、缺月建 → 只报趋势;旬空另标、不改结论。只给档位,不折加权分数
91
- - 用神落位:按所问之事取六亲——求财看妻财、工作职位看官鬼、文书考试看父母、健康以官鬼为病(子孙为医药)、出行以世爻为用、感情男看妻财女看官鬼;用神不上卦时回到本宫首卦取伏神,标出飞伏生克(飞生伏 / 伏生飞 / 飞克伏 / 伏克飞 / 比和),首卦两现时列候选**不代选**;再叠月建与日辰:月令五态(旺相休囚死)看这一段时令,日辰五关系(日生/日克/比和/泄/耗)看当天扶克,月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空,只报状态不折成分数
92
- - **伏神出伏条件**:用神不上卦时,把飞伏生克与月建日辰并起来看——飞生伏、伏克飞、日辰生/比和、月建旺/相算「助」,飞克伏、日辰克、月破算「压」;有助无压为「可出」、有助有压为「有助有压」、有压无助为「受压难出」、两者都无为「未得助」。四档只并列条件、不排各家优先级;旬空只标出、不并入档位,也不出应期日期
93
- - **应期线索**:只给「该留意哪一支」与快慢方向——用神(不上卦则取伏神)逢值、逢冲、逢合三支列出,旬空另标出空填实与冲空;按月建五态给偏速 / 偏缓 / 待解 / 未定。不换算成具体日期、不排先后、不判忌神受制,摘要、解析层、白话与面板四处可见
94
- - **全卦逐爻旺衰**:月建与日辰落到全部六爻(不只挑出来的用神)——每爻给月令五态与日辰五关系,另标月破/暗动/冲空,世应、动爻、旬空单独标出;再给五态分布(旺相休囚死各几爻)与最旺/最弱爻,看出整张卦的气聚在哪一头。不指定所问之事也能出
95
- - 用神与卦体联动:把用神所处的卦体一并标出——用神在六冲卦(主散)/ 六合卦(主成)/ 逢变六冲 / 逢变六合 / 在内卦伏吟 / 在外卦反吟(注明地支全冲还是八卦正对)/ 化进神 / 化退神 / 爻伏吟 / 爻反吟 / 旬空 / 持世 / 临应 / 发动
96
- - 面板:本卦与变卦并列对照,真爻线渲染(阳整、阴断、动描红),世应与动爻一目了然;卦体标签与用神标签各以 chip 行列出
97
- - 只需起卦时刻(取日辰定六神、月建定旺衰),与出生时间无关
98
-
99
- ### 梅花易数(meihua)
100
- - 时间起卦(年月日时数)或数字起卦(两数取余、可手动指定动爻)
101
- - 本卦 / 互卦 / 变卦 / 错卦 / 综卦五盘齐出;本卦上下卦分块并标「体」「用」
102
- - 体用生克按五行判吉凶:用生体大吉、比和吉、体克用吉、体生用耗、用克体凶
103
-
104
- ### 大六壬(daliuren)
105
- - 月将加时起天地盘(4×4 方盘:天盘大字、地盘小字、天将右下)
106
- - 四课(干上/支上递推,标注生克与天将)、九宗门发三传(贼克·元首·重审·比用·涉害·遥克·昴星·别责·八专·伏吟·返吟)
107
- - 昼夜贵人(以天盘临方定顺逆)、旬空标注、格局名与断语
108
-
109
- ### 塔罗(tarot)
110
- - 78 张全牌、正逆位、1/3/5 张牌阵(面板可直接选牌阵,换张数自动重抽)
111
- - 每张牌给编号、牌阶级、核心义与牌阵位义;解读 6–8 段(逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议)
112
- - 明确标注体系:RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断
113
-
114
- ### 速查十一件(almanac / convert / zeri / chenggu / xiaoliuren / star / numerology / mbti / trend / fengshui / name)
115
-
116
- 十一套轻量体系,输入都只要一到几个字段,结果走同一套面板与独立页(tab 由 8 个扩到 19 个),
117
- 速查结果用等宽文本卡渲染,不套命盘模板。**全部本地确定性计算**:同一天、同一输入永远同一结果。
118
-
119
- - **黄历 `almanac`**:农历、四柱干支(年柱按立春、月柱按节)、建除十二神、宜忌简表、冲煞、上一/下一节气、每日一卦,以及**值日十二神(黄道/黑道)、十二时辰吉凶(五鼠遁干支 + 时家十二神)、二十八宿、胎神、财神/喜神/福神/阳贵/阴贵方位、日柱纳音、六合三合吉配生肖**;值日神/二十八宿/胎神/吉神方位与 lunar-javascript 逐日对拍。`scope` 明写未收录逐日全量吉凶神煞与彭祖百忌
120
- - **择日 `zeri`**:27 类事项(婚嫁类领证/提亲/收送聘金/满月酒,生活类旅行/访亲友/入学,建造类动土/装修建造/试车买车,工商类交易/投资/签订合同/纳财/赴任等)按「常用 / 婚嫁 / 生活 / 建造 / 工商」五组归类 × 建除适配逐日打分,分「推荐 / 可用 / 回避」,当事人属相冲煞日直接排除且每条回避带理由;这是**排序引导**,不是吉凶断语
121
- - **公农历互转 `convert`**:公历 → 农历(农历年月日、是否闰月、干支四柱、生肖)与农历 → 公历(需显式指定闰月,小月无三十会报错),往返自洽;只知道农历生日时可先转公历再排盘
122
- - **称骨 `chenggu`**:年/月/日/时四项骨重求和,按总重查**通行本《称骨歌》原文**(二两一钱…七两二钱共 52 首),并给白话释义与分档批语(如 1990-08-15 巳时 = 五两六钱,歌诀「此格推来礼义通…」);骨重表对拍公开黄历页,不采信其他插件的表
123
- - **小六壬 `xiaoliuren`**:时间起课(农历月/日/时三掐)与报数起课(三个 1–99),六宫吉凶与白话断语;缺时辰会明确要求补,不默认某个时辰
124
- - **星座 `star`**:太阳星座档案(四象、守护星、关键词、契合星座)+ 当日四维基调;基调由日期哈希确定性生成,明写「不是随机数」,纯娱乐向
125
- - **生命数字 `numerology`**:生命路径数 / 生日数 / 态度数,11/22/33 主数保留;与八字口径不同,混问时会说明两套不可互相印证
126
- - **人生 K 线 `trend`**:复用八字的旺衰、大运与流年十神,按固定计分表给出 1–100 岁逐年分与最佳/最差年份;面板与独立页画的是**蜡烛图**(实体=相对上一岁的涨跌、影线=±4 分,叠 5/10 年均线并在右缘标末端值、大运条纹带与分界虚线、最高/最低岁标记),图下再给全段均值 / 最好大运 / 最差大运 / 波动幅度,并直接嵌在八字结果底部,与「人生运势曲线」(大运阶梯 + 流年折线)互补:曲线看趋势,K 线看逐年涨跌。旺衰正好落在换档阈值(±0.3)时只提示、不给顺位结论
127
- - **风水 `fengshui`**:八宅命卦(1900s/2000s 男女公式、立春界)、大游年四吉四凶、流年九宫飞白、24 山门主灶布局倾向、命宅配调停文案;另有 `action:'xuankong'` 排**玄空下卦**——三元九运(1864 起一运、每运 20 年)、运盘/山盘/向盘(入中运星按本宫同元龙定顺逆,五黄入中按本山阴阳)、当运星落宫、山星/向星合十,以及**表法**与**盘面**两套旺山旺向并列(口径不同,不合并);工具层 `action` 枚举与 `period` 参数已同步(缺省九运并注明);`scope` 明写**不含**替卦/兼向、年月日时飞星与现场勘舆
128
- - **十六型人格 `mbti`**:一份 **MBTI 风格**的 24 题问卷(四维度各 6 题,李克特 1–5 计分,按维度净分取字母、平手取 I/N/F/P 并标「临界」),先不带 `answers` 调一次拿到题目,再把 24 个分数按顺序传回来;结果给四维强度(临界/轻微/明显/很强)、类型称号与关键词、优势与留意、认知功能栈(主导 → 辅助 → 第三 → 劣势)、工作/关系/学习/课题四段白话。**不是官方 MBTI 量表**(未用其题目、常模与评鉴许可),只作自我参照,不用于招聘、晋升或诊断;跳过某题传 `null`,答满 12 题即可出口径。面板与独立页把这 24 题做成 4 题一页的分页问卷(1–5 单选 + 进度条 + 上一页/下一页),答案按题序交给 `answers`。
129
- - **起名 `name`**:391 字自建字库(常用名用字,按五行分段,每字带**拼音/声调/康熙笔画**),评估时**逐字**给五行、释义、来源与是否合喜用,未收录的字不猜五行但给**同喜用五行的可换字**(也可用 `charElements` 自行指定);**五格剖象**按康熙字典繁体笔画算天格/人格/地格/外格/总格,配通行本 81 数理(超 81 按 −80 回绕)与三才五行,任一字缺笔画就整体返回「算不了」并点名缺哪个字,可用 `strokeOverrides`(逐字)/`surnameStrokes`(按姓)补;**音韵**只做机械检查——全名同调、相邻同声母/同韵母、叠字撞音,判「顺口/略拗/拗口」,**不做语义谐音**;生成候选名按「合喜用 → 两字异行 → 五格格数 → 性别倾向 → 字库序」排序,只是排序不是「吉名」判定
130
-
131
- ### 解析与详解(interpret)
132
- 每个体系的排盘结果下方都会跟一个「解析与详解」模块,帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 `withInterpret: true` 即可一并返回。
133
-
134
- - **结构化输出**:`{ moduleType, system, title, lead, dimensions[], sections[], disclaimer }`;`moduleType` 为 `natal`(命盘)/ `divination`(卦象)/ `card`(牌阵),`dimensions` 固定五个维度;`sections` 可带 `tone`(`good`/`watch`/`bad`),面板据此上色
135
- - **分层结构与逐宫(0.43 新增)**:紫微多出**命身底色**(命宫主星 + 亮度 + 双星组合 + 身宫落点)、**逐宫分析**(十二宫各一条:宫位取象 + 主星亮度 + 吉星/煞星 + 四化,下接一句读法)与**三层格局**(有利格局 / 结构提示 / 忌格提醒,每条写名称、人话、依据与做法);八字多出**命局框架**(日主/用神/格局 + 一句命局基调)、**正面画像**(外在取象 / 性格底色 / 事业与家庭)、**流年时间轴**(近三年逐条给档位与理由)与**专业建议**(喜用落地 / 忌神自觉 / 地支关系 / 调候)。措辞取自两份独立词库 `engine/ziwei-words.js`、`engine/bazi-words.js`——引擎只出事实,词库只出说法,词库里没有任何判断条件
136
- - **五个维度**:整体运势、工作与职业选择、事业发展、爱情与感情、健康状况——每项给「解读 + 行动建议」;紫微的维度只点名六煞(擎羊/陀罗/火星/铃星/地空/地劫),其余杂曜留在逐宫,避免满屏星名
137
- - **依据可核对**:每个维度都附一行「依据」,列出这条结论引用的事实——命盘类(八字/紫微)给日主旺衰、月令、喜忌、大运流年、宫位主星与煞星;卦象类(六爻/梅花/六壬)给本卦互卦变卦、世应、动爻、三传四课与神将;塔罗给牌阵、主轴、正逆位与元素分布。面板与文本两条输出路径都会显示
138
- - **报告化阅读**:解析区顶部有「一页读懂」(整体/事业/财富/感情/节奏五条摘要)、目录锚点,以及三张表——八字是「大运表 / 流年表 / 触发事件表」,紫微是「大限表 / 流年表 / 触发事件表」。表格只把已有字段摊平,不新增判断;打印时表格不撕页、目录自动隐藏;≤640px 时表头隐藏、一行摊成一张卡(每格用列名当行标),不再出现六列排到 748px、右半边被截断又看不出能横滑的情况
139
- - **证据卡与置信度**:每个维度的依据收进可展开的 `<details>`,点开可见逐条盘面事实与所用技法;维度旁标注「置信度 强/中/弱」(按证据条数分档,不引新算法)。文本输出同样带「置信度:…」
140
- - **看示例**:面板与独立页都有「看示例」按钮,用固定的示例盘(1990-05-12 14:30 男 石家庄)走与真实排盘相同的渲染路径
141
- - **追问**:工具参数 `ask`、面板与独立页的追问输入框——围绕**已算好的盘**回答「2027 年事业怎么样」「财运如何」这类问题;只取盘面已有字段(流年/大运/宫位/分节),不重排、不猜测;年份超出已排范围或没识别到方面时,明确说找不到并给出可问范围
142
- - **问进对话**:面板追问框旁边多一个「问进对话」按钮——把这张盘的白话结论、摘要和你的问题拼成一段提问,**直接写进 DSH 的对话输入框并提交**(走输入框正常的回车路径,有回合在跑时排队、不打断当前回答),由对话里的模型接着答;提问模板把面板已算好的「直答 / 说人话」放进「开场结论」小节,要求模型开场先沿用它再展开,并写明「不用重排盘、要引到具体柱/宫/爻、没依据就说看不出来、别给绝对化断言」,按「开头一句无术语结论 → 每条判断分**盘面|白话|倾向|边界**四行 → 收尾一句『如果只记一件事』」的骨架答,术语出现一个就当场翻成日常话(调候 / 化气 / 通关 / 空亡 / 争合 单独点名)。插件的对话桥还没挂上时(例如插件刚装好还没重启)退回复制,提示你粘进对话窗
143
- - **八字 × 紫微 交叉验证**:工具参数 `cross`(或面板勾选)会用同一份出生信息再排另一套盘,对事业/财富/感情/身体/节奏五项并列对照,标注「同向 / 有张力 / 互补」;只作对照,不把两套体系折算成同一个分数。面板与独立页把它画成**对照卡**:一个方面一张卡,标题行带判断标签(绿 / 琥珀 / 蓝),八字与紫微各占一栏,注释放最后一行;窄屏改单列——不再是五段「八字——…;紫微——…;判断:…」的长句连读(Markdown 与工具输出仍是原来的五行文本)
144
- - **量化口径**:只量化引擎已有数据(十神权重、大运/流年档位、宫位与四化计数),**不换算金额、不给健康诊断**;报告里有「量化口径」分节写明这条边界
145
- - **方法与验证**:独立页内置同页「方法与验证」(体系、128 条卦例对拍、测试文件与断言条数取自断言基线、七道闸、口径与已知边界),离线可开
146
- - **夏令时校正(0.18 新增)**:1986–1991 年中国夏令时期间的钟面时间在排盘前自动减 1 小时(跨日回退),八字/紫微/合盘/验前事/生时校正统一生效;出生证已是真实太阳口径时可用 `dst: false` 关闭
147
- - **合婚明细层(0.18 新增)**:合盘新增属相六合/三合/六冲/相害/相刑、天干五合、双向十神、跨盘地支、年命纳音与吉凶象计数分档;只作明细,不改原总分
148
- - **晚子时开关**:面板与独立页都能切「23:00 后算次日/当日」;奇门另可切「归当日/归次日」——这是排盘口径,不是结果重算
149
- - **验前事**:八字报告下方列出过去 6 年流年信号,用户自评「准/不准/不确定」,算一个贴合度提示;只读、不改盘
150
- - **生时校正**:输入过去 2–3 件大事(年份 + 类别),对候选时辰逐一排盘并按固定规则打分,返回候选排序——用于缩小时辰范围,不替代出生记录
151
- - **导出**:面板与独立页都能「导出 .md」(盘面 + 一页读懂 + 三张表 + 交叉验证 + 追问);独立页另有打印/存 PDF
152
- - **推导可复核**:八字/紫微另有「看盘顺序」「时间窗」「交叉校验」「未纳入」四段——先看什么后看什么、未来几步大运与近五年流年、喜忌分量与运年是否同向、以及这套算法**没有**计算什么;六爻/六壬对应给「看卦/看课顺序」与「未纳入」。这些都从盘面数据推出,不新增断语
153
- - **卦象**(六爻/梅花/大六壬)额外给:卦名与卦辞大意、爻辞与动爻、体用关系、互卦与变卦、落到生活里
154
- - **塔罗**额外给:整盘连贯解读(把几张牌串成一条线,避免各张互相矛盾)与牌面结构(大阿卡纳占比、元素分布、正逆位)
155
- - **文案口径**:第二人称、温和、只给倾向与建议,不作绝对判断;底部保留理性参考的免责提示
156
- - **解读区可折叠**:内容较长(五维度 + 体系模块),点标题栏或箭头即可展开/收起;宽屏默认展开、窄屏默认收起,手动切过之后按你的选择来
157
- - **窄屏与深色(0.48 新增)**:390×844 下实测并修过一轮——目录改成单行横滑胶囊(隐藏滚动条、首尾留 11px),目录链接、证据摘要、名词解释摘要统一 44px 触摸高度;表头从 `--label` 换成 `--ink2`(浅色 10.5:1、深色 10:1),卡内标签与备注用 `--muted`(5.3:1 / 6.7:1),三档判断标签与目录链接在两套变量下都 ≥4.5:1;全部只走主题变量,深色仍然只换变量。dsh 侧栏「窗口宽、报告窄」不触发 `@media`,同一批规则按 `.mp-it` 的容器宽度另挂一份 `@container`,420px 侧栏下同样摊成卡片
158
-
159
- ### 所问之事与询问方向(六爻 / 梅花 / 大六壬 / 塔罗)
160
-
161
- 问事的体系要先说清问什么,解读才有落点:
162
-
163
- - **所问之事**:必填,支持多行,占位示例「用一句话描述所问之事,例如:今年是否适合换工作?」;不填就起卦会给提示,不会给一份没有落点的解读
164
- - **询问方向**:下拉选择——综合(默认)、财运、事业、感情、健康、学业、出行。选项表 `DIRECTIONS` 由 `engine/interpret.js` 导出,界面与解析层共用一份,不两处维护
165
- - **联动方式**:`interpret(result, { question, direction })`。所选方向对应的维度会被提到最前并标注「最贴近你的问题」,正文点明你所问的事,引语也会回显;解读开头固定一行「问题:xxx | 询问方向:xxx」供你确认
166
- - **不重摇卦**:改问题或方向只重出解读,卦象本身不动
167
- - 命盘类(八字 / 紫微)不问事,不显示这两项,也不会出现回显行
168
-
169
- ## 安装
170
-
171
- ### 从 npm
172
-
173
- ```bash
174
- dsh plugin install dsh-metaphysics
175
- ```
176
-
177
- 或在 Harness 的「插件」面板里搜索 `dsh-metaphysics`。
178
-
179
- ### 从本地目录
180
-
181
- ```bash
182
- dsh plugin install /path/to/dsh-metaphysics
183
- ```
184
-
185
- ### 从 tgz
186
-
187
- ```bash
188
- dsh plugin install ./dsh-metaphysics-0.17.0.tgz
189
- ```
190
-
191
- ## 使用
192
-
193
- ### 对话里
194
-
195
- 直接说:
196
-
197
- - 「排个八字:1990-05-12 14:30,女,河北石家庄」
198
- - 「排紫微盘:1990-05-12 14:30,女,河北石家庄」
199
- - 「帮我起一卦,问这个项目能不能成」
200
- - 「梅花易数,报两个数 17 和 29」
201
- - 「起个六壬课,问这周谈判顺利吗」
202
- - 「抽三张塔罗,问这份工作要不要接」
203
-
204
- 模型会调用 `metaphysics_chart` 工具,参数 `system` 取 `bazi` / `ziwei` / `liuyao` / `meihua` / `daliuren` / `tarot`。
205
- 注意:八字与紫微要**出生时间**;六爻、梅花、六壬只要**起卦时刻**(通常就是当下),与出生时间无关。
206
-
207
- ### 面板
208
-
209
- 重启后侧栏出现**太极图标**,点开是排盘面板:紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗八个排盘 tab,另有黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格十一个速查 tab。奇门 tab 里「换局规则」可选拆补、超神接气、置闰;盘面下方用键值表列出局数、值符值使、空亡驿马、击刑与入墓、月令与门星干旺衰、干宫生克等事实,与解读区的结论分开。
210
-
211
- 结果卡下方的追问行里,输入问题后可以点「追问」(在本地按盘面字段直接答,不联网)或「问进对话」(把提问发进 DSH 对话窗,由模型接着答)。
212
-
213
- > 独立页(`命理排盘.html`)同样是这十九个 tab:速查 tab 在左侧展开对应小表单(择日的起算日/事项/天数/属相、农历的转换方向/农历日期/闰月、小六壬的时间或报数、风水的命卦/门主灶/玄空与坐向、运(结果都是方位网格:八向标吉凶、玄空九宫列运/山/向三数)、起名的评估或生成、十六型人格的分页问卷(4 题一页、1–5 打分,答满 12 题可先看结果));合盘要填双方出生信息、可选八字/紫微两种合盘;奇门用「换局规则」单选组(拆补/超神接气/置闰)与「询问方向」定用神。这份文件与侧栏面板是**各自生成**的两份产物(同一份 `engine/`),随包发布的是仓库根这一份;自己在桌面另存过的话,用 `npm run build:desktop` 一次刷新两处,别手工拷。
214
-
215
- > 首屏默认按用途分三组:**问一件事**(六爻/梅花/塔罗/奇门/六壬/小六壬)、**看一个人**(八字/紫微/合盘/人格/称骨/数字/人生K)、**查日子**(黄历/择日/农历/星座/风水/起名),每项带一句白话(如「摇六次,问一件事」);用过的入口会进「最近用过」,最多 3 条。19 个平铺 tab 仍保留,右上角「分组 / 平铺」随时切换,选择记在本机;手机端每组先露 4 项,其余点「还有 N 个」展开。这份分组数据只有一份(`src/groups.mjs`),独立页与宿主侧栏面板在构建时各自取用;侧栏宽度不等同窗口宽度,收纳按容器查询生效。
216
-
217
- ### 深色与导出
218
-
219
- - **深色主题**:跟随系统(`prefers-color-scheme`),盘面与页面同时切换,只换一套 CSS 变量,元素规则一行不改
220
- - **打印永远是浅色**:深色主题下直接打印会得到一整页耗墨的深底 PDF,所以深色规则用 `@media screen` 限定
221
- - **存为 PDF / 打印**:结果下方有按钮,走浏览器原生打印(不引第三方库);A4 纵向、隐藏输入区与按钮、盘面与解读不被撕页、四化色块保留颜色。折叠着的「解析与详解」在打印时会自动展开,不会只印出一个标题栏
222
-
223
- ## 精度与口径
224
-
225
- - **节气**:VSOP87B 截断级数(105 项)+ 岁差 + 章动 + 光行差;与日本国立天文台《暦要項》对拍,2024/2025 共 48 个节气最大偏差 **0.6 分钟**;出生时刻距「节」不足 20 分钟时会提示复核。**1929-01-01 之前按北京地方平时(UTC+7.7611)**推算,之后按东八区——与农历共用同一套换算,避免 14 分钟错位
226
- - **农历**:定朔(Meeus 第 49 章,误差约 1 分钟)+ 冬至所在月为十一月 + 无中气置闰
227
- - **真太阳时**:经度差 + 均时差;内置 34 个省会 + 200 个地级市坐标(±0.2°),地址更细时可开「联网精确到区县」(Nominatim)。**单盘与合盘用的是同一套修正**(合盘双方各按自己出生地算)。只按经度修正,**未含历史时区与夏令时**:海外出生请先把当地钟表时间换算成东八区标准时再输入;没给经度时摘要首行会出 ⚠
228
- - **晚子时**:八字/大六壬默认 23:00 后换日,奇门默认归当日;`lateZi` 与 `lateZiHourMode` 是同一个开关的两个名字。各体系摘要都会写明本次采用的口径,不改默认值、不偷偷改盘
229
- - **口径对照**:`caliberCompare` 只做「当前口径 → 另一档」的逐字段比对,根因按柱 / 命宫 / 局数 / 起运归类,`total` 是变化字段数、不是分数;没有根因时写明「无单一根因」(如真太阳时只改起运时刻)。取局流派、晚子时归日、闰月政策属于口径回显,不计入差异;「其他」是尚未归类的派生字段,不隐藏也不折算。对照会用同一组输入多排 2–3 张盘(工具里由 `diff: true` 显式开启)
230
- - **可复现**:塔罗/六爻给 `seed` 即得同一次抽牌/摇卦;紫微流月流日流时、塔罗的抽牌时刻、八字的流年基准年都可传 `asOf` 钉死
231
- - **紫微四化**:中州派常用表(庚干作太阳禄、武曲权、太阴科、天同忌)
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 后若槽位改名,按钮会静默退回「复制」而不是报错
233
- - **紫微飞星串连**:只认宫干四化表、星落哪宫就是哪宫之力,串连只跟**同一支化**逐宫跳(不混支、不借对宫),满 12 步或回到走过的宫即停;宫干四化在 12 宫上是「一个宫 → 一个宫」的函数映射,所以完整盘上每条链必然成环(实测 1/3/4/5/6 步),「断点」只可能来自星未上盘。这一层只描方向与牵引,不断吉凶,也不叠大限流年算力重
234
- - **八字 × 紫微交叉验证**:五项只并列、不合并成总分。任一侧当前阶段取不到时(八字尚未起运、紫微大限不在范围内),该项标「互补」并写明缺的是哪一边,不把「没取到」当成「没有问题」;节奏一项的说明按实情分档——八字顺而紫微煞星多、八字偏紧而紫微平静、八字为平而紫微煞星多,三种说法各写各的,不共用一句「一边顺、一边压」
235
- - **日主旺衰**:量化算法,非唯一流派
236
- - **奇门宫位条件**:门迫只认同宫内「门五行克宫五行」,宫克门是「宫制门」不为迫;六仪击刑按月支相刑定宫(甲子戊震三、甲戌己坤二、甲申庚艮八、甲午辛离九、甲辰壬巽四、甲寅癸巽四),三奇入墓按五行墓库定宫(乙木墓未→坤二、丙丁火墓戌→乾六)。这三项只判**天盘**、只作宫位条件,不自动断用神受制,也不打分排序
237
- - **奇门旺衰**:八门、九星与天盘干(三奇六仪)按月支五行判旺相休囚死(同气旺、月令所生相、生月令休、克月令囚、被月令克死),只报力量强弱不折吉凶;门旺而宫克门仍受宫制。
238
- - **六爻用神旺衰**:月建按月支五行定五态(同气旺、月令所生相、生月令休、克月令囚、被月令克死),日辰定五关系(日生/日克/比和/泄/耗),月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空;只报状态标签,不折成分数
239
- - **六爻全卦逐爻旺衰**:与用神旺衰同一套判定,只是不挑用神、六爻全给,并标世应/动爻/旬空与五态分布。五态只按「爻五行 × 月支五行」判,各家对月破、暗动、冲空取名不一,本插件按「月建冲=月破、日冲静爻=暗动、日冲旬空=冲空」给标签;不折加权分数、不据此断成败;化进/化退已叠月建五态给档位(见下一条),但日辰加权与动变连环仍未做
240
- - **紫微三方四正复合飞化**:四宫 16 条飞化按落宫归堆,会聚判定只看「落在同一宫」这一条结构事实(双忌≥2、禄忌同见、三化以上、自化);各家对会照要不要折分数、要不要再叠大限流年分歧较大,本插件只标会照与方向
241
- - **紫微夹局与刑囚夹印**:「夹」只要求两星分居命宫前后、不分左右(日月、左右、魁钺本来就没有固定左右;0.38.2 之前按固定顺序判,昌曲夹命与羊陀夹命从未命中,日月/左右/魁钺各漏约一半)。擎羊在禄存 +1、陀罗在禄存 −1,两星只能夹禄存,所以「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫。刑囚夹印按字面判夹不成立(廉贞与天相永远隔偶数宫),取通行说法「廉贞天相同守命宫于子午、擎羊同宫」,判的是守命那一宫,其它宫位三星同宫不报;命宫卯酉、廉贞天相对照遇擎羊的变体未纳入。34 条格局的判定与 `test/ziwei-patterns.test.mjs` 的独立谓词逐条对齐,并要求每条至少命中一次
242
- - **奇门干宫生克**:天盘干(三奇六仪)与所落宫五行的关系另算一层——干克宫/宫克干/干生宫/宫生干/比和,与门宫关系并列各说各的、不折成一个分数;十干克应(天盘干加地盘干的 100 组)仍未做
243
- - **六爻化进化退**:只按「同五行地支顺次」定方向(木 寅→卯、火 巳→午、金 申→酉、水 亥→子,土 丑→辰→未→戌→丑 成环),同五行不相邻不算;方向之外再按月建五态给一档力重(旺相 → 后劲足、休囚 → 后劲有限、死 → 进得虚;退则得令退得缓、失令退得实;月破压过一切),只给档位、不折加权分数,也不据此断吉凶。土的进退次序各家说法不完全一致
244
- - **六爻应期线索**:只做「时间窗口的方向」——用神(不上卦取伏神)的逢值、逢冲、逢合三支,旬空另加出空填实与冲空;快慢按月建五态分偏速 / 偏缓 / 待解 / 未定(两现而旺衰不一或缺月建记未定)。不换算日期、不排先后、不判忌神受制,也不叠动变连环;近事以日计、远事以月计,用哪把尺由事情远近决定,本插件不代选。具体应期日期仍是 `liuyao-yingqi-exact` 的待办项
245
- - **八字交运日**:交运时刻 = 出生时刻 + 「出生到起运侧节令」的真实天数 × 365.2422/3,顺排数到下一节、逆排数到上一节;同一条比例即古法「三日折一年、一日折四月、一时辰折十日」。每步大运在同月同日同时刻换,闰日退位。一年取回归年 365.2422 日——按 360 日折算的流派会差一两天,`dayun.jiao.yearDays` 把这个口径写进了结果
246
- - **八字通关**:只在「用神与克它的忌神两行在局中各 ≥1.5 分」时成立相战,通关行由五行生克唯一确定(克方所生、又生用神;金克木以水为关),按局中分量分「可通 / 关弱 / 为忌 / 未通」四档,`usable` 仅指「可通」;通关行若在本盘属忌神,只标「为忌」、不当桥用。只写进用神 detail、摘要与解释层,不折分数、不断吉凶,也不判通关之力够不够用。`test/tongguan.test.mjs` 用五组相克、阈值边界与 24 年逐月真实盘独立重算核对
247
- - **岁运提示**:六类信号只认干支事实——**天克地冲**要求天干相克且地支相冲,缺一不算(例如丙子年对丙午年柱是同干相冲,不标反吟);当值大运取与「该年立春到次年立春」相交的步,交运落在年内时前后两步并列。不折分数、不判吉凶,「岁运并临主大凶」一说不采;大运与本命四柱的伏吟/反吟整步大运都在,随每年重复列出、不逐年加重;四柱十神的引化也未叠入
248
- - **六爻用神**:只落到「哪一爻是用神、它与卦体/动变/旬空什么关系、月建日辰给它什么状态」这一层——不叠出一个月建日辰换算的力重分数,用神两现时把候选都列出来而不代选;伏神给出伏于何爻、飞伏生克与出伏条件(飞生伏、伏克飞、日辰生/比和、月建旺/相算助,飞克伏、日辰克、月破算压,归四档),条件只并列、不排各家优先级,也不出具体日期与应期
249
- - **十六型人格**:MBTI **风格**的自建问卷,不是官方 MBTI 量表——题目、计分与常模都是本插件自己的,不与任何商业量表对齐;四维净分 =(分数 − 3)× 侧向求和,平手按 I / N / F / P 取并标「临界」,强度是按「净分 / (答数 × 2)」分的四档,不代表任何总体分布。结果只作自我参照,不用来评价他人能力、做招聘或临床判断
250
- - **入参**:日期按月份天数与闰年校验(`1990-02-30` 直接报错,不滚到下个月);八字/紫微/合盘的性别必填(性别决定大运大限顺逆,不做默认);六爻爻值必须正好 6 个,留空才随机摇卦。非法入参带错误码返回(`E_INPUT` / `E_LINES` / `E_COUNT` / `E_ASOF` / `E_PARTNER`),不静默改成另一个盘;风水缺坐向、非 24 山、坐向不对宫、运越界与运非整数(含字符串)同样归 `E_INPUT`,工具层不会把它们标成内部错误,也不会把 `2.5` 静默当成缺省九运
251
- - **对拍**:历法对 NAOJ 历要项与 ICU 抽样的农历;流派规则对典籍通例——六爻八宫卦序与世应(京房)、六壬日干寄宫与中气换将(《大六壬指南》)、紫微纳音定五行局与紫微天府相照(《紫微斗数全书》);另有《增删卜易》9 条与《卜筮正宗》**128 条**原文卦例(93 条本卦→变卦 + 35 条静卦)。期望值在 `test/fixtures/classics.json`,出处见其 `meta.sources`,卦例原始数据与排除理由在 `tools/data-boshizhengzong.mjs`。卦例只取原文能稳定读出的字段:卦名、卦宫、缺爻(伏神)、动爻**个数**(与原文 x/○ 标记数核对过)、有日期的旬空;**动爻在哪一爻**不录——卦象表在 PDF/DOCX 里串行,硬解析等于造数据
252
-
253
- ## 数据与隐私
254
-
255
- - 全部计算在本地完成
256
- - **默认不联网**:地址只查内置坐标表(最细到地级市,足够真太阳时)。只有把 `geocode` 设为 `online`(面板上勾「联网精确到区县」)才会把出生地原文发给 OpenStreetMap Nominatim,用于精确到区县/路名;失败即回退内置表,同一地址 6 小时内不重复请求
257
- - 不收集、不上传任何其他数据
258
-
259
- ## 开发
260
-
261
- ```bash
262
- npm run build # 生成 client.js(浏览器端产物)
263
- npm run build:html # 生成独立的 命理排盘.html(可离线双击使用),默认写到工作区根目录
264
- # 想同时更新桌面那份:npm run build:desktop(写到 ~/Desktop/命理排盘.html)
265
- # 存到别处:node tools/build-html.mjs --out "D:\某处\命理排盘.html"
266
- npm test # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
267
- npm run test:ci # 构建 + 产物自检 + 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定(CI 跑的就是这条)
268
- npm run test:baseline # 断言数确实要减少时,显式重建基线
269
- npm run check:html # 单独跑 HTML 注入面扫描
270
- npm run check:patterns # 单独跑工程约定检查
271
- npm run release # 测试 → 构建 → 校验产物 → 发 npm → 核对附件(token 从 NPM_TOKEN 读)
272
- ```
273
-
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 调用,也可单独用来核对某个版本)。
275
-
276
- **测试的七道闸**:
277
-
278
- 1. `test/_harness.mjs`——任何一条 `ok()` 失败都让进程非零退出(此前 9 个文件只打印不失败,全量"全绿"没有意义)
279
- 2. `test/assertion-baseline.json`——每个文件的 PASS 条数低于基线即失败,防止"删断言让测试变绿"
280
- 3. `tools/verify-tests-can-fail.mjs`——故意写错一条断言,必须真的变红,防止第 1 条被改回去
281
- 4. `tools/check-html-sinks.mjs`——`innerHTML` 里拼接的量必须经过白名单转义函数,否则 CI 直接红
282
- 5. `tools/check-patterns.mjs`——engine 不得引用浏览器/Node API 与 `console`,不得用 `var`/`debugger`,`new Date()` 与 `Math.random` 只允许出现在白名单文件
283
- 6. `test/fuzz.test.mjs`——固定种子的随机生日扫射八个排盘体系,覆盖边界日期、参数矩阵与"同参数必得同结果"
284
- 7. `tools/check-bundle.mjs`——产物必须在**宿主形态**下能编译能跑:读 `client.js` 原文逐模块编译、模拟 `__ModuleLoader__` 执行 factory、校验 IIFE 收口与不可见分隔符,并要求产物与源码重构建逐字节一致(2026-10-25 的启动崩溃就是 Node 侧全绿、Chromium 侧语法错,这道闸专门守这个缝)
285
-
286
- `client.js` 是构建产物,不要手改;改动记录见 [CHANGELOG.md](CHANGELOG.md)。
287
-
288
- ### 发版
289
-
290
- ```bash
291
- # 先在 npm 生成 Granular Token:Read and write + 勾 Bypass 2FA
292
- NPM_TOKEN=npm_xxx npm run release # 正式发布(会先跑测试与构建校验)
293
- NPM_TOKEN=npm_xxx npm run release -- --dry-run # 只校验不发布
294
- NPM_CLI=/path/to/npm-cli.js NPM_TOKEN=... npm run release # 本机没有 npm CLI 时
295
- node tools/release.mjs --verify-only # 只核对 registry 上当前版本的附件
296
- ```
297
-
298
- 脚本会拦下:工作区不干净、`client.js` 未随源码重建、registry 上已有同版本;发布后自动核对新版本与 `dist-tags`,并提示补 `git tag`。
299
-
300
- **发布后为什么要看附件,而不是只看 `npm publish` 的输出**:npm 的发布是异步的,版本条目会先出现在 packument 里(连 shasum、签名、`latest` 都齐),tarball 附件却可能晚几分钟才落盘。这中间别人 `npm i` 会撞 404,而 `npm publish` 早就打印了成功。所以 `tools/verify-publish.mjs` 的判据是四条:tarball 返回 200、下载到的字节 sha1 与 registry 记的 `shasum` 一致、`fileCount` 对得上、包里该有的文件(`package.json`/`client.js`/`命理排盘.html`)确实在。15 分钟内一直对不上就判定失败并给出处置路径。
301
-
302
- 另外记一条实操限制:`unpublish`/`deprecate` 属于「绕过 2FA 的破坏性动作」,granular token 会被 403 拒绝(`Granular access tokens that bypass two-factor authentication may not perform this action`),这类动作只能在 npm 网页上用 2FA 做;真要撤版,把版本号升一个补丁号重发通常更快。
303
-
304
- ### 样式命名约定
305
-
306
- 面板的 CSS 是以 `<style>` 注入到宿主页面的,**没有 shadow DOM 隔离**,所以每个类名都带命名空间前缀,避免和宿主页面的同名元素互相染色:
307
-
308
- | 前缀 | 归属 |
309
- |---|---|
310
- | `pp-` | 紫微盘骨架(宫格、宫位选中、三方四正、身宫) |
311
- | `bz-` | 四柱八字表(干支大字、藏干、十神、五行旺衰) |
312
- | `dt-` | 宫位详情面板 |
313
- | `flow-` | 流月 / 流日 / 流时 |
314
- | `ct-` / `ft-` | 盘心 / 盘脚 |
315
- | `mp-` | 各模块根容器:`mp-it`(解析)、`mp-dl`(六壬)、`mp-hy`(六爻)、`mp-mh`(梅花)、`mp-tt`(塔罗)、`mp-hex`(爻线)、`mp-trib`(体用) |
316
- | `hb-` / `tritag-` | 卦盒 / 体用标签 |
317
- | `dl-` / `ss-` / `ssx-` / `ssg-` | 六壬盘块 / 神煞族 |
318
- | `ask-` | 所问之事回显 |
319
-
320
- 两条硬规矩:
321
-
322
- - **不用泛词做类名**(`.body`、`.big`、`.s`、`.p`、`.on`、`.it` 这类)。名字越泛,越容易在同一个文件里被两处语义共用——本项目已经栽过两次:`.pp-body` 同时是「整块视图容器」和「身宫格」,一次导致身宫整格消失,另一次的 `::after` 残骸在页面左上角飘出一个孤立的「身」方块。
323
- - **模块根类名必须带前缀**。裸用的 `.it` / `.dl` / `.hy` 一旦注入全局,宿主页面的同名元素会被一起改写。
324
-
325
- *2026-10 做过一轮全量整改:199 个类名按语义分组补齐前缀(约 540 处替换),计算逻辑一行未动,20 组断言与全量视口扫描全绿。*
326
-
327
-
328
- ## 关于:一个人做的插件,欢迎来聊
329
-
330
- 这个插件是我个人所做,不是团队产品,也没有经费和人手。十九套体系一个人铺下来,能力有限、力有未逮:排盘规则各家口径不一,我按自己读到的通行本取了一套并写进口径里;看不懂、算错、算漏、话说过头的地方,一定还有。
331
-
332
- 所以有意见、有想法尽管说,不必客气——
333
-
334
- - **对玄学命理本身有想法**:某个神煞该不该这么取、某条断法是不是牵强、某段解析是不是话说太重了,欢迎进群友好讨论。我不认为自己的口径就是对的,能把分歧讲清楚,比谁赢更有意思。
335
- - **盘排错了、页面出 bug**:请把输入(时间、地点、性别、体系、所问之事)和当时的输出一起带上,我照着复现;能修就修,修不了会写进「已知边界」。
336
-
337
- 微信群:**dsh-metaphysics**
338
-
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">
340
-
341
- 这批二维码 7 天内有效(11 月 6 日前,2026-10-30 更新);过期了在 [issues](https://github.com/xuanfu-web/dsh-metaphysics/issues) 说一声,我换新图。只想提问题、不想进群的,开 issue 一样算数。
342
-
343
- ## 致谢
344
-
345
- 本插件的十套速查体系(农历互转为自有实现)在**能力范围**上参考了同生态的 [dsh-xuanji(玄机阁)](https://github.com/huangziyuan-general/dsh-xuanji)(MIT):黄历、择日、称骨、小六壬、星座、生命数字、人生 K 线、风水、起名。
346
- **实现是独立的**:没有拷贝对方源码,也没有引入它的依赖(iztro / lunar-javascript),全部按行为规格用本项目的 calendar / lunar / dst 模块重写,并逐项与公开通行表或 lunar-javascript 对拍(称骨表的初版错误就是这样查出来的)。特此致谢。
347
-
348
- 《子平真诠》《滴天髓》《三命通会》的原文摘句取自 [中华典藏网](https://www.diancang.xyz/)(古籍,public domain),照录通行本、附章名与链接;释义为白话自撰。三命通会取与格局取用直接相关的十六篇——论十神八篇(正财、偏财在该本分章),加专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞、弃命从财七篇,另取卷五官煞去留杂论作七杀格的对照(该本没有单列的「论偏官」);另录卷二「总论岁运」「论人元司事」两条,分别作岁运提示与人元司权的出处(人元一条的日数与通行表不同,原文并列、不改判)。从儿、从强三书没有可整段照录的专章,未硬凑。
349
-
350
- 《穷通宝鉴》120 格的原文摘句取自 [luckclub.cn](https://www.luckclub.cn/bazi/004/)(古籍,public domain),用神顺序参考 [knowyourbazi.com](https://knowyourbazi.com/zh-hans/qiongtong/) 的整理表;两者逐格对读,原文全章未见某个用神字时(如八月丁火的「丙」),数据里直接标了 note 说明「按整理表录入、待以善本核对」,没有替它圆场。
351
-
352
- ## License
353
-
354
- MIT
355
-
1
+ # dsh-metaphysics · 命理排盘
2
+
3
+ [![公开对拍:0 处不符](docs/assets/verification-badge.svg)](docs/verification.html)
4
+
5
+ Chinese metaphysics (玄学 / xuanxue) for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): BaZi (Four Pillars), Zi Wei Dou Shu, LiuYao, MeiHua YiShu, Da Liu Ren, Qi Men Dun Jia, relationship compatibility, Tarot, plus quick-reference tools — almanac, date selection, bone-weight fortune, Xiao Liu Ren, horoscope, numerology, an MBTI-style 16-type questionnaire, life-curve, feng shui and name analysis.
6
+
7
+ 给 DeepSeek Harness 用的**玄学命理**插件:**四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、奇门遁甲、合盘、塔罗牌**八大排盘体系,外加**黄历、农历(公农历互转)、择日、称骨、小六壬、星座、生命数字、人生K线、风水、起名、十六型人格**十一套速查,同时提供 Agent 工具与 Web 面板。
8
+
9
+ > 传统命理与占卜属文化娱乐用途,不构成医疗、投资、法律或生死判断的依据。
10
+
11
+ ## 插件市场备注
12
+
13
+ **命理排盘(玄学)· 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗 + 黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格** —— 一个插件把十九套体系装进 Harness:对话里说一句就排盘,侧栏还有可视化面板。
14
+
15
+ - **八字**:42 颗神煞(分吉凶七类,天干星双查年干与日干、三合星双查年支与日支,悬停看查法)、日主旺衰量化并给出依据、格局与用神(月令取格 + 化气/专旺/从格 + 十神组合,每条附判定依据)、**通关结构**(用神与克它的忌神两行各 ≥1.5 分时,指出五行里唯一能接上的那一行并分「可通/关弱/为忌/未通」四档,不折吉凶)、大运流年按喜忌五行与十神打分(大吉/吉/平/忌/大忌,可看逐项理由),大运另有**交运时刻**(日/时辰级,三日折一年放大)与每步起止日期
16
+ - **紫微**:十四主星与 49 星曜(主星带**庙旺得利平不陷**亮度标注)、四层十二神、生年四化与宫干自化、**四化飞星串连**(宫干化星 → 星定落宫 → 顺同一支化逐宫追到成环)、**三方四正复合飞化**(四宫 16 条按落宫归堆,标双忌会/禄忌同宫/三化会/自化)、34 条格局(标吉/中性/忌倾向与依据,每条都有独立的成立条件复算)、大限一览、流年四化落宫;**闰月口径**默认按日切分(1–15 归本月、16 起归次月,主流排盘口径),可切 `leapMonth: next/prev`;本命/大限/流年三视图一键切换,命宫红框、三方四正浅底标出;竖屏与窄侧栏保持 4×4 宫盘(宫位相对位置不丢)
17
+ - **六爻**:摇卦或手动爻值、纳甲、六亲、六神、世应;本卦/变卦并列、真爻线渲染(阳爻整条、阴爻断开、动爻描红);卦体关系(六冲/六合/伏吟/反吟/化进神/化退神)按纳甲地支推导并标注;**用神落位与卦体联动**(七档取六亲、不上卦取伏神并标飞伏生克、用神与卦体/动变/旬空串起来看)、**用神旺衰**(月建五态 + 日辰五关系,月破/暗动/冲空分开标)、**伏神出伏条件**(飞伏生克 + 月建日辰归四档,只判条件不出应期)、**全卦逐爻旺衰**(六爻全给五态与五关系,附分布、世应与最旺最弱爻)、**化进/化退力重**(按月建五态落档:得令/失令/月破,只给档位不折分数)
18
+ - **梅花**:时间/数字起卦、体用生克分档、互变错综四卦齐出,本卦上下卦分块标体用
19
+ - **大六壬**:天地盘 4×4 方盘(天盘大字、地盘小字、天将右下)、四课、九宗门三传、格局(贼克/元首/重审/伏吟/返吟/八专等)
20
+ - **奇门遁甲**:时家转盘,拆补 / 超神接气 / 置闰三流派取局;九宫、值符值使、空亡驿马、门迫与宫制门严格区分;六仪击刑(按地支相刑定宫)与三奇入墓(按五行墓库定宫)逐宫标出;八门、九星与天盘干按月令分旺相休囚死;天盘干与所落宫另论干宫生克(干克宫/宫克干/干生宫/宫生干/比和)
21
+ - **合盘**:八字或紫微双盘对照(日主、夫妻宫、五行互补 / 互落宫、四化引动)
22
+ - **塔罗**:78 张全牌、1/3/5 张牌阵,逐牌牌位义 + 整体解读,体系与逆位口径写明
23
+ - **速查十件**:黄历(四柱/建除/宜忌/冲煞/节气 + 值日十二神/时辰吉凶/二十八宿/胎神/吉神方位/纳音/六合三合)、农历(公农历互转)、择日(27 类事项、按五组归类、冲属相排除)、称骨(骨重 + 称骨歌原文 + 释义)、
24
+ 小六壬(时间/报数起课)、星座(档案 + 当日基调)、生命数字(生命路径/生日/态度数)、人生 K 线(逐年分与形态)、
25
+ 风水(八宅命卦/大游年/流年紫白/门主灶/玄空下卦)、起名(391 字库、逐字判定、五格三才与音韵检查)——口径与边界各自写明
26
+ - 全部本地计算,不收集数据;结果供文化娱乐参考,不作医疗、投资、法律或生死判断
27
+
28
+ ### 报告化与可核验(0.16 / 0.17 / 0.18 / 0.20 新增)
29
+
30
+ - **一页读懂 + 三张表**:整体/事业/财富/感情/节奏五条摘要;大运表、流年表、触发事件表(紫微是大限/流年/触发)
31
+ - **证据卡 + 置信度**:每条维度结论可展开到逐条盘面事实与所用技法,置信度按证据条数分强/中/弱
32
+ - **追问**:工具参数 `ask`,围绕已算好的盘回答「2027 年事业怎么样」这类问题;不重排、不猜测,找不到会明说
33
+ - **八字 × 紫微 交叉验证**:工具参数 `cross`,五项并列对照,标注同向 / 有张力 / 互补
34
+ - **晚子时开关**:23:00 后算次日还是当日,面板与独立页都能切;奇门另有「归当日 / 归次日」
35
+ - **口径对照**:同一个盘只换一个开关——八字晚子时 / 真太阳时;紫微闰月、真太阳时与九类流派开关(共 11 组);奇门取局 / 晚子时归日。结果下方折叠列出「根因字段 旧值 → 新值」与连带变化数;面板、独立页与工具参数 `diff: true` 共用同一份开关表。只列差异,不判哪套更准,不改盘面
36
+ - **影子盘 ID**:工具参数 `shadow: true`(面板与独立页默认开启)为结果生成 `LY-XXXXXXX` 短 ID。同一组归一化参数——键序无关、默认值等价、地址与等值经度等价——在任何机器上得到同一 ID;`baseId` 不含版本,`id` 含版本。面板可一键复制,同一 `baseId` 重排时自动与本地上一张盘比对,版本升级或字段变化会展开列出根因(如「时柱 甲子 → 壬辰」)。塔罗 / 六爻未给 `seed` 时把实际牌面 / 六爻值算进 ID,不把两次不同的抽牌误认成同一张盘
37
+ - **推导链**:工具参数 `trace: true`(面板与独立页对六爻 / 八字 / 紫微默认开启)返回每一层的 `{field, rule, inputs, result, source}`——六爻是纳甲 → 六亲 → 世应 → 伏神 → 旺衰,八字是旺衰分值与格局取用,紫微是格局命中条件。只读盘面,不重算、不改盘;面板用右侧抽屉逐层展开规则、结构化输入、结果与出处。六爻的询问方向参与起卦计算,改方向时只重算用神 / 旺衰 / 伏神三层,不重摇一卦
38
+ - **验前事**:列出过去几年流年信号,自评准/不准/不确定后算贴合度;只读,不改盘
39
+ - **生时校正**:给定过去 2–3 件大事,对候选时辰逐一排盘打分排序;只缩小范围,不替代出生记录
40
+ - **导出**:`.md`(盘面 + 解析)与 PNG 摘要长图(Canvas 直出,零依赖);独立页支持打印/存 PDF
41
+ - **调候解释**:解释层新增「寒暖燥湿」一节,文本摘要加「寒暖:」一行
42
+ - **古籍原文**:《子平真诠》论用神/正官/财/印/食神/偏官/伤官/阳刃/建禄月劫/用神配气候/用神成败救应/用神变化/杂气如何取用 13 章 + 《滴天髓》通神论寒暖/燥湿/衰旺/中和/官杀/伤官/月令/体用/精神/通关 10 条 + 《三命通会》卷五、卷六论正官/正财/偏财/印绶/食神/伤官/阳刃/建禄 8 条与卷五官煞去留杂论 1 条,另有专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞/从财 7 篇,按格局与气候匹配后附在结果里(原句照录、白话释义、出处章号)。同一个格,子平真诠在前讲「怎么用」,三命通会紧随作对照讲「怎么取、怕什么」,两条并列、不合并成一句断语;正财与偏财在三命通会里分章,两格各取本格一条,七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。命中的专旺格与从财/从杀格先取单章原文(从儿、从强三书无专章,不硬凑)。另有《三命通会》卷二「总论岁运」一条,只在盘面出现岁运并临/反吟/伏吟时随「岁运提示」给出——它不占 5 条上限;原文的「返吟/伏吟」按「岁运与日柱相对 / 岁运压日」说,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。另录《三命通会》卷二「论人元司事」一条,随「人元司权」一节给出,同样不占 5 条上限;该本日数(寅月 5/5/20、卯月 7/23)与本插件通行 30 日表不同,原文并列、不改取格。用神总纲位按盘四选一:有化气格取「用神变化」,辰戌丑未四墓月取「杂气如何取用」,见组合取「用神成败救应」,其余取「论用神」总纲——不另加位次,整节仍以 5 条为限;通关结构成立且关可通时,另以「通关」条占去泛论气候的那一位,寒暖/燥湿的具体条目照留。杂气月取格按「透干 → 三合会支 → 本气」的次序:会支只认三合、不认三会方,兼透时只取最先透出的那一干,依据里写明走的是哪一条——原文的「兼透则兼用」只列原则,落到单一格名时必须择一,这块取舍仍属各家分歧
43
+ - **《穷通宝鉴》120 格**:十天干 × 十二月令逐格录入用神顺序与原文摘句(「十二月乙木,木寒宜丙」这类原句照录),调候卡里直接给出「这一格书上取什么」与出处章号
44
+ - **方法与验证页**:独立页内置静态页,写明对拍数据、测试与闸门、口径与已知边界
45
+ - **公开对拍报告**(0.54.0 起):[docs/verification.html](docs/verification.html) 汇总 128 条《卜筮正宗》卦例(成对 93 + 静卦 35;源 138 条中剔除 5 条并逐条给理由)、312 张紫微盘 × 34 条格局(10,608 条独立判定)、20 个奇门时辰 × 9 宫(180 个宫位)与 12 个交运案例。可按「一致 / 剔除 + 理由 / 不一致」和体系筛选,34 条格局的命中分布单独列出;README 顶部徽章由同一生成器写出,并披露「5 剔除」。报告、徽章与 `test/verification.test.mjs` 共用 `tools/verification.mjs`,判定变了或报告没重建,CI 就红
46
+ - **离线单文件页(随包分发)**:`命理排盘.html` 一份文件、零依赖、双击即开,十九个入口按用途分三组(也能一键切回平铺),断网可用;它随 npm 包发布,装完插件就有(路径见下)
47
+
48
+ ### 离线单文件页 `命理排盘.html`
49
+
50
+ 订阅(`npm i dsh-metaphysics` 或 `dsh plugin add dsh-metaphysics`)之后,这份页面就在包里:
51
+
52
+ - `node_modules/dsh-metaphysics/命理排盘.html` —— 复制到任意位置双击打开,或用浏览器「打开文件」;不需要装依赖、不需要起服务、不需要联网
53
+ - 也可以用 `require.resolve('dsh-metaphysics/命理排盘.html')` 拿到绝对路径(`package.json` 的 `exports` 已登记)
54
+ - 它是**同源生成物**:与侧栏面板、Agent 工具共用同一份 `engine/`,所以版本一致——包里是哪个版本,页面就是哪个版本
55
+ - 与联网无关的部分全部本地算:历法、排盘、古籍摘句、对拍数据都在文件里;只有两处例外,点了才生效——典籍出处的外部链接、以及地理编码选「在线」时的 OpenStreetMap 查询
56
+ - 想重新生成(改了源码之后):`npm run build:html`,默认写到仓库根 `命理排盘.html`;`npm run build:desktop` 会把同一份同时写到仓库根与桌面(`~/Desktop/命理排盘.html`),页面左上角的版本徽标用来看桌面那份是不是最新;`-- --out <路径>` 可另存到别处
57
+
58
+ ## 功能
59
+
60
+ ### 四柱八字(bazi)
61
+ - 四柱、藏干、十神、纳音、空亡(**逐柱**)
62
+ - **十二长生**:地势(日干对各支)、自坐(各柱干对本支)
63
+ - **神煞(42 星,7 类)**:贵人(天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医)、文星(文昌、德秀)、婚姻(桃花、红鸾、天喜、孤辰、寡宿、金舆)、性情(华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵)、事业(禄神、将星、驿马)、凶煞(劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网)、格局(天赦日、金神、三奇贵人)。天干类双查年干与日干,三合类双查年支与日支;每颗星附查法依据,界面悬停可见
64
+ - **日主旺衰**:月令权重 + 通根 + 天干帮扶,量化分档,并给出依据(季节权重、通根地支、帮扶/耗泄明细)
65
+ - **人元司权**:按「节」到出生日的日差,算出本月第几日、哪一藏干当权(30 日表:余气 → 中气 → 本气;节当日为第 1 日,第 31 日以后按本气并标出)。另有 7/7/16、9/3/18 等分法,结果里只列本插件口径;三命通会卷二「论人元司事」此本又作寅月 5/5/20、卯月 7/23,原文随该节并列、不改取格。司权表比本柱藏干表宽(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样。分日只作解释层的一层细节,取格仍按本气、透干与会支判定,不随轮值改判
66
+ - **寒暖燥湿(调候优先)**:月令温度 + 全局火水比例 + 湿土燥土判定气候,给出调候所取(寒湿取丙火、燥热取壬水)与所忌、温度/燥湿标尺、按日主五行的体感白话;流年大运评分接入调候(寒局再逢水加重扣权);面板在「用神」下有寒暖卡
67
+ - **《穷通宝鉴》120 格**:按「日主 + 月令」查到该格用神顺序(如乙木丑月取丙),附原文摘句与章号;寒暖卡里与调候判定并列显示,两者不同向时以调候为先(「书里的取用」与「这一盘的气候」各自摆出来,不悄悄合并)
68
+ - **格局与用神**:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神按「调候优先 + 扶抑校验」:先判寒暖燥湿(寒/寒湿/寒燥/湿滞/平/燥/燥热/温热,附温度与燥湿量化值与依据),调候所需与扶抑冲突时显式仲裁并说明理由,不冲突时注明同向;再列喜忌十神;若调候所忌正好是扶抑所喜,保留在喜用、单列「有争议」,不把同一五行同时判喜判忌;两行相战时另判通关(克方所生、又能生用神的那一行,五行里唯一),按局中分量报强弱
69
+ - **行运吉凶**:大运、流年按喜忌五行与十神加权评分,分大吉/吉/平/忌/大忌五档,悬停可看逐项理由
70
+ - **岁运提示**:逐年标出**岁运并临**(当值大运与流年干支相同)、**运年反吟**(大运与流年天克地冲)、**大运伏吟 / 反吟**(大运与原局某柱干支相同 / 天克地冲)、**流年伏吟 / 反吟**(流年与原局某柱干支相同 / 天克地冲);流年按立春起算,交运落在年内时前后两步大运并列。大运与本命四柱的伏吟/反吟整步大运都在,会连续多年出现,不逐年加重。只标干支重复与对冲、不判吉凶,摘要、解析、白话与面板四处可见;有信号时解析层另附《三命通会·卷二·总论岁运》原文(含「返吟/伏吟」与本书口径不同的说明)
71
+ - **大运交运日**:按「三日折一年」把出生到节令的间隔放大,算出**交运时刻(日/时辰级)**与每步大运的起止日期(同月同日同时刻换,闰日退到 2 月 28 日);大运表的「交运」列、面板曲线与 chip 悬停都能看到
72
+ - **干支关系**:五合、相冲、相克;六合、三合半合、三会半会拱会、冲、害、破、刑
73
+ - 大运、流年(含与原局地支的关系)、真太阳时(按出生地经度修正)
74
+ - **四柱表版式**:按专业排盘习惯——年/月/日/时四柱并排固定成四列,左侧一列窄行名,列间不画竖线、只用极淡横线分行;天干地支作大字并随五行着色,日柱表头单独标红;藏干按「干·五行」逐行列出,十神按比劫/食伤/财/官杀/印五类分组着色;末行给**五行旺相休囚死**(以月令当令五行为基准,依次推出 旺/相/休/囚/死 五态)
75
+
76
+ ### 紫微斗数(ziwei)
77
+ - 农历(定朔 + 冬至置闰)、命宫、身宫、五行局
78
+ - 紫微/天府、十四主星、六吉六煞、禄存天马、**49 颗星曜**
79
+ - **十四主星庙旺得利平不陷**:按《紫微斗数全书》系通行表标注(各家在太阳/太阴少数宫位有出入,只标主星、不硬标辅星),庙旺标绿、得利平标灰、不陷标红
80
+ - **九类流派开关**(不传则保持原 49 星盘面):`brightnessSchool`(亮度表 default/QS/XD1/ZZ/XD2)、`gengYearSihua`(庚干四化五变体,只作用于生年四化)、`tianmaSchool`(年支/生月三合)、`tiankongSchool`(不排/年支顺行/加生时)、`jiekongSchool`(不排/单星/正副双星/占验派,启用时并排旬空副旬)、`kuiyueSchool`(qs1/qs2/中一鸣/网络)、`tianshiTianshang`(常规/中州阴男阳女互换)、`changshengSchool`(默认/水二/火土,火土派土五局长生起寅)、`lateZishi`(晚子时当日/次日)。也可用 `schools: {...}` 整体嵌套传;非法取值静默回默认
81
+ - 四层十二神:长生、博士、将前、岁前
82
+ - 生年四化、宫干自化、大限、小限、流年(命宫、三方四正、流禄流羊流陀)、斗君
83
+ - **格局识别(34 条,附判定依据与吉/中性/忌倾向)**:吉格:紫府同宫、紫府朝垣、君臣庆会、极向离明、七杀朝斗、英星入庙、石中隐玉、巨日同宫、日月夹命、日月对照、左右夹命、昌曲夹命、魁钺夹命、三奇嘉会、双禄朝垣、府相朝垣、禄马交驰、月朗天门、日出扶桑、机月同梁;中性:武贪同行、双禄交流、火贪铃贪、杀破狼、命无正曜;忌格:火铃夹命、羊陀夹命、羊陀夹忌、铃昌陀武、命里逢空、马头带箭、天罗地网、刑囚夹印、泛水桃花。**夹局只看两星是否分居命宫前后、不分左右**;「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫(擎羊在禄存 +1、陀罗在禄存 −1,两星只能夹禄存);「刑囚夹印」不按字面判夹(廉贞与天相永远隔偶数宫),取通行说法「廉贞天相同守命宫于子午、擎羊同宫」(其它宫位同宫不算)。34 条由 `test/ziwei-patterns.test.mjs` 用独立谓词逐条复算,并要求每条至少命中一次
84
+ - **大限一览**:十二限排序列出宫位、年龄区间、宫干四化落宫、三方主星;**流年四化**:逐年给出四化星落宫与命宫三方主星
85
+ - **四化飞星串连**:宫干定四化、四化定落宫,再顺同一支化从落宫接着飞,最多 12 步、回到走过的宫即记「成环」。盘面给 12 宫 × 四化 = 48 条飞化与自化标记;摘要/解析/面板都按四支(禄权科忌)列出 `命宫→官禄→父母→命宫` 这样的整条链,解释层只写方向与牵引、不断吉凶
86
+ - **三方四正复合飞化**:把命宫连同对宫与两个三合宫(共四宫)的宫干四化一起摊开,约 16 条按落宫归堆,落到同一宫就是会照;标出双忌会、禄忌同宫、三化以上会宫与自化。会在一处的化越多,那一宫被牵动的力道越集中;摘要/解析/面板都给出会聚结论,同样只描会照与方向、不折吉凶
87
+ - **流月 / 流日 / 流时**:由流年斗君逐级下推——斗君起正月顺行至该农历月,流月命宫起初一顺行至该农历日,流日命宫起子时顺行至该时辰;每层给落宫、宫干四化落宫与三方四正。基准时刻默认取本机当前时刻(可用 `asOf` 指定以便复现)
88
+ - **宫位点击展开详情**:点任一宫摊开该宫完整星曜(含亮度、四化)、宫干四化、四层十二神、大限/小限,并把三方四正(三合两宫 + 对宫)一起列出、在盘上同步描边;空宫标注「借对宫 XX」;再点一次收起
89
+ - 昌曲专论:与丑未的关系、是否入命三方、吸收面清杂
90
+
91
+ ### 六爻(liuyao)
92
+ - 摇卦或手动爻值、本卦/变卦、纳甲、六亲、六神、世应
93
+ - 卦体关系按纳甲地支实配推导:六冲卦(10 支,八纯 + 天雷无妄 + 雷天大壮)、六合卦(8 支)、卦伏吟 / 卦反吟(地支全冲、八卦正对两路)、爻伏吟 / 爻反吟
94
+ - 化进神 / 化退神:动爻变出同五行顺次之支(寅→卯、巳→午、申→酉、亥→子,土丑→辰→未→戌→丑),进者标「化进神 N」、退者标「化退神 N」,并写明本支→变支
95
+ - **化进/化退力重**:方向之外再按月建五态落档——旺相 → 后劲足(退则退得缓)、休囚 → 后劲有限(退则退得实)、死 → 进得虚、逢月破 → 月破失据、缺月建 → 只报趋势;旬空另标、不改结论。只给档位,不折加权分数
96
+ - 用神落位:按所问之事取六亲——求财看妻财、工作职位看官鬼、文书考试看父母、健康以官鬼为病(子孙为医药)、出行以世爻为用、感情男看妻财女看官鬼;用神不上卦时回到本宫首卦取伏神,标出飞伏生克(飞生伏 / 伏生飞 / 飞克伏 / 伏克飞 / 比和),首卦两现时列候选**不代选**;再叠月建与日辰:月令五态(旺相休囚死)看这一段时令,日辰五关系(日生/日克/比和/泄/耗)看当天扶克,月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空,只报状态不折成分数
97
+ - **伏神出伏条件**:用神不上卦时,把飞伏生克与月建日辰并起来看——飞生伏、伏克飞、日辰生/比和、月建旺/相算「助」,飞克伏、日辰克、月破算「压」;有助无压为「可出」、有助有压为「有助有压」、有压无助为「受压难出」、两者都无为「未得助」。四档只并列条件、不排各家优先级;旬空只标出、不并入档位,也不出应期日期
98
+ - **应期线索**:只给「该留意哪一支」与快慢方向——用神(不上卦则取伏神)逢值、逢冲、逢合三支列出,旬空另标出空填实与冲空;按月建五态给偏速 / 偏缓 / 待解 / 未定。不换算成具体日期、不排先后、不判忌神受制,摘要、解析层、白话与面板四处可见
99
+ - **全卦逐爻旺衰**:月建与日辰落到全部六爻(不只挑出来的用神)——每爻给月令五态与日辰五关系,另标月破/暗动/冲空,世应、动爻、旬空单独标出;再给五态分布(旺相休囚死各几爻)与最旺/最弱爻,看出整张卦的气聚在哪一头。不指定所问之事也能出
100
+ - 用神与卦体联动:把用神所处的卦体一并标出——用神在六冲卦(主散)/ 六合卦(主成)/ 逢变六冲 / 逢变六合 / 在内卦伏吟 / 在外卦反吟(注明地支全冲还是八卦正对)/ 化进神 / 化退神 / 爻伏吟 / 爻反吟 / 旬空 / 持世 / 临应 / 发动
101
+ - 面板:本卦与变卦并列对照,真爻线渲染(阳整、阴断、动描红),世应与动爻一目了然;卦体标签与用神标签各以 chip 行列出
102
+ - 只需起卦时刻(取日辰定六神、月建定旺衰),与出生时间无关
103
+
104
+ ### 梅花易数(meihua)
105
+ - 时间起卦(年月日时数)或数字起卦(两数取余、可手动指定动爻)
106
+ - 本卦 / 互卦 / 变卦 / 错卦 / 综卦五盘齐出;本卦上下卦分块并标「体」「用」
107
+ - 体用生克按五行判吉凶:用生体大吉、比和吉、体克用吉、体生用耗、用克体凶
108
+
109
+ ### 大六壬(daliuren)
110
+ - 月将加时起天地盘(4×4 方盘:天盘大字、地盘小字、天将右下)
111
+ - 四课(干上/支上递推,标注生克与天将)、九宗门发三传(贼克·元首·重审·比用·涉害·遥克·昴星·别责·八专·伏吟·返吟)
112
+ - 昼夜贵人(以天盘临方定顺逆)、旬空标注、格局名与断语
113
+
114
+ ### 塔罗(tarot)
115
+ - 78 张全牌、正逆位、1/3/5 张牌阵(面板可直接选牌阵,换张数自动重抽)
116
+ - 每张牌给编号、牌阶级、核心义与牌阵位义;解读 6–8 段(逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议)
117
+ - 明确标注体系:RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断
118
+
119
+ ### 速查十一件(almanac / convert / zeri / chenggu / xiaoliuren / star / numerology / mbti / trend / fengshui / name)
120
+
121
+ 十一套轻量体系,输入都只要一到几个字段,结果走同一套面板与独立页(tab 由 8 个扩到 19 个),
122
+ 速查结果用等宽文本卡渲染,不套命盘模板。**全部本地确定性计算**:同一天、同一输入永远同一结果。
123
+
124
+ - **黄历 `almanac`**:农历、四柱干支(年柱按立春、月柱按节)、建除十二神、宜忌简表、冲煞、上一/下一节气、每日一卦,以及**值日十二神(黄道/黑道)、十二时辰吉凶(五鼠遁干支 + 时家十二神)、二十八宿、胎神、财神/喜神/福神/阳贵/阴贵方位、日柱纳音、六合三合吉配生肖**;值日神/二十八宿/胎神/吉神方位与 lunar-javascript 逐日对拍。`scope` 明写未收录逐日全量吉凶神煞与彭祖百忌
125
+ - **择日 `zeri`**:27 类事项(婚嫁类领证/提亲/收送聘金/满月酒,生活类旅行/访亲友/入学,建造类动土/装修建造/试车买车,工商类交易/投资/签订合同/纳财/赴任等)按「常用 / 婚嫁 / 生活 / 建造 / 工商」五组归类 × 建除适配逐日打分,分「推荐 / 可用 / 回避」,当事人属相冲煞日直接排除且每条回避带理由;这是**排序引导**,不是吉凶断语
126
+ - **公农历互转 `convert`**:公历 → 农历(农历年月日、是否闰月、干支四柱、生肖)与农历 → 公历(需显式指定闰月,小月无三十会报错),往返自洽;只知道农历生日时可先转公历再排盘
127
+ - **称骨 `chenggu`**:年/月/日/时四项骨重求和,按总重查**通行本《称骨歌》原文**(二两一钱…七两二钱共 52 首),并给白话释义与分档批语(如 1990-08-15 巳时 = 五两六钱,歌诀「此格推来礼义通…」);骨重表对拍公开黄历页,不采信其他插件的表
128
+ - **小六壬 `xiaoliuren`**:时间起课(农历月/日/时三掐)与报数起课(三个 1–99),六宫吉凶与白话断语;缺时辰会明确要求补,不默认某个时辰
129
+ - **星座 `star`**:太阳星座档案(四象、守护星、关键词、契合星座)+ 当日四维基调;基调由日期哈希确定性生成,明写「不是随机数」,纯娱乐向
130
+ - **生命数字 `numerology`**:生命路径数 / 生日数 / 态度数,11/22/33 主数保留;与八字口径不同,混问时会说明两套不可互相印证
131
+ - **人生 K 线 `trend`**:复用八字的旺衰、大运与流年十神,按固定计分表给出 1–100 岁逐年分与最佳/最差年份;面板与独立页画的是**蜡烛图**(实体=相对上一岁的涨跌、影线=±4 分,叠 5/10 年均线并在右缘标末端值、大运条纹带与分界虚线、最高/最低岁标记),图下再给全段均值 / 最好大运 / 最差大运 / 波动幅度,并直接嵌在八字结果底部,与「人生运势曲线」(大运阶梯 + 流年折线)互补:曲线看趋势,K 线看逐年涨跌。旺衰正好落在换档阈值(±0.3)时只提示、不给顺位结论
132
+ - **风水 `fengshui`**:八宅命卦(1900s/2000s 男女公式、立春界)、大游年四吉四凶、流年九宫飞白、24 山门主灶布局倾向、命宅配调停文案;另有 `action:'xuankong'` 排**玄空下卦**——三元九运(1864 起一运、每运 20 年)、运盘/山盘/向盘(入中运星按本宫同元龙定顺逆,五黄入中按本山阴阳)、当运星落宫、山星/向星合十,以及**表法**与**盘面**两套旺山旺向并列(口径不同,不合并);工具层 `action` 枚举与 `period` 参数已同步(缺省九运并注明);`scope` 明写**不含**替卦/兼向、年月日时飞星与现场勘舆
133
+ - **十六型人格 `mbti`**:一份 **MBTI 风格**的 24 题问卷(四维度各 6 题,李克特 1–5 计分,按维度净分取字母、平手取 I/N/F/P 并标「临界」),先不带 `answers` 调一次拿到题目,再把 24 个分数按顺序传回来;结果给四维强度(临界/轻微/明显/很强)、类型称号与关键词、优势与留意、认知功能栈(主导 → 辅助 → 第三 → 劣势)、工作/关系/学习/课题四段白话。**不是官方 MBTI 量表**(未用其题目、常模与评鉴许可),只作自我参照,不用于招聘、晋升或诊断;跳过某题传 `null`,答满 12 题即可出口径。面板与独立页把这 24 题做成 4 题一页的分页问卷(1–5 单选 + 进度条 + 上一页/下一页),答案按题序交给 `answers`。
134
+ - **起名 `name`**:391 字自建字库(常用名用字,按五行分段,每字带**拼音/声调/康熙笔画**),评估时**逐字**给五行、释义、来源与是否合喜用,未收录的字不猜五行但给**同喜用五行的可换字**(也可用 `charElements` 自行指定);**五格剖象**按康熙字典繁体笔画算天格/人格/地格/外格/总格,配通行本 81 数理(超 81 按 −80 回绕)与三才五行,任一字缺笔画就整体返回「算不了」并点名缺哪个字,可用 `strokeOverrides`(逐字)/`surnameStrokes`(按姓)补;**音韵**只做机械检查——全名同调、相邻同声母/同韵母、叠字撞音,判「顺口/略拗/拗口」,**不做语义谐音**;生成候选名按「合喜用 → 两字异行 → 五格格数 → 性别倾向 → 字库序」排序,只是排序不是「吉名」判定
135
+
136
+ ### 解析与详解(interpret)
137
+ 每个体系的排盘结果下方都会跟一个「解析与详解」模块,帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 `withInterpret: true` 即可一并返回。
138
+
139
+ - **结构化输出**:`{ moduleType, system, title, lead, dimensions[], sections[], disclaimer }`;`moduleType` 为 `natal`(命盘)/ `divination`(卦象)/ `card`(牌阵),`dimensions` 固定五个维度;`sections` 可带 `tone`(`good`/`watch`/`bad`),面板据此上色
140
+ - **分层结构与逐宫(0.43 新增)**:紫微多出**命身底色**(命宫主星 + 亮度 + 双星组合 + 身宫落点)、**逐宫分析**(十二宫各一条:宫位取象 + 主星亮度 + 吉星/煞星 + 四化,下接一句读法)与**三层格局**(有利格局 / 结构提示 / 忌格提醒,每条写名称、人话、依据与做法);八字多出**命局框架**(日主/用神/格局 + 一句命局基调)、**正面画像**(外在取象 / 性格底色 / 事业与家庭)、**流年时间轴**(近三年逐条给档位与理由)与**专业建议**(喜用落地 / 忌神自觉 / 地支关系 / 调候)。措辞取自两份独立词库 `engine/ziwei-words.js`、`engine/bazi-words.js`——引擎只出事实,词库只出说法,词库里没有任何判断条件
141
+ - **五个维度**:整体运势、工作与职业选择、事业发展、爱情与感情、健康状况——每项给「解读 + 行动建议」;紫微的维度只点名六煞(擎羊/陀罗/火星/铃星/地空/地劫),其余杂曜留在逐宫,避免满屏星名
142
+ - **依据可核对**:每个维度都附一行「依据」,列出这条结论引用的事实——命盘类(八字/紫微)给日主旺衰、月令、喜忌、大运流年、宫位主星与煞星;卦象类(六爻/梅花/六壬)给本卦互卦变卦、世应、动爻、三传四课与神将;塔罗给牌阵、主轴、正逆位与元素分布。面板与文本两条输出路径都会显示
143
+ - **报告化阅读**:解析区顶部有「一页读懂」(整体/事业/财富/感情/节奏五条摘要)、目录锚点,以及三张表——八字是「大运表 / 流年表 / 触发事件表」,紫微是「大限表 / 流年表 / 触发事件表」。表格只把已有字段摊平,不新增判断;打印时表格不撕页、目录自动隐藏;≤640px 时表头隐藏、一行摊成一张卡(每格用列名当行标),不再出现六列排到 748px、右半边被截断又看不出能横滑的情况
144
+ - **证据卡与置信度**:每个维度的依据收进可展开的 `<details>`,点开可见逐条盘面事实与所用技法;维度旁标注「置信度 强/中/弱」(按证据条数分档,不引新算法)。文本输出同样带「置信度:…」
145
+ - **看示例**:面板与独立页都有「看示例」按钮,用固定的示例盘(1990-05-12 14:30 男 石家庄)走与真实排盘相同的渲染路径
146
+ - **追问**:工具参数 `ask`、面板与独立页的追问输入框——围绕**已算好的盘**回答「2027 年事业怎么样」「财运如何」这类问题;只取盘面已有字段(流年/大运/宫位/分节),不重排、不猜测;年份超出已排范围或没识别到方面时,明确说找不到并给出可问范围
147
+ - **问进对话**:面板追问框旁边多一个「问进对话」按钮——把这张盘的白话结论、摘要和你的问题拼成一段提问,**直接写进 DSH 的对话输入框并提交**(走输入框正常的回车路径,有回合在跑时排队、不打断当前回答),由对话里的模型接着答;提问模板把面板已算好的「直答 / 说人话」放进「开场结论」小节,要求模型开场先沿用它再展开,并写明「不用重排盘、要引到具体柱/宫/爻、没依据就说看不出来、别给绝对化断言」,按「开头一句无术语结论 → 每条判断分**盘面|白话|倾向|边界**四行 → 收尾一句『如果只记一件事』」的骨架答,术语出现一个就当场翻成日常话(调候 / 化气 / 通关 / 空亡 / 争合 单独点名)。插件的对话桥还没挂上时(例如插件刚装好还没重启)退回复制,提示你粘进对话窗
148
+ - **八字 × 紫微 交叉验证**:工具参数 `cross`(或面板勾选)会用同一份出生信息再排另一套盘,对事业/财富/感情/身体/节奏五项并列对照,标注「同向 / 有张力 / 互补」;只作对照,不把两套体系折算成同一个分数。面板与独立页把它画成**对照卡**:一个方面一张卡,标题行带判断标签(绿 / 琥珀 / 蓝),八字与紫微各占一栏,注释放最后一行;窄屏改单列——不再是五段「八字——…;紫微——…;判断:…」的长句连读(Markdown 与工具输出仍是原来的五行文本)
149
+ - **量化口径**:只量化引擎已有数据(十神权重、大运/流年档位、宫位与四化计数),**不换算金额、不给健康诊断**;报告里有「量化口径」分节写明这条边界
150
+ - **方法与验证**:独立页内置同页「方法与验证」(体系、128 条卦例与 20 个奇门时辰对拍、测试文件与断言条数取自断言基线、七道闸、口径与已知边界),离线可开
151
+ - **夏令时校正(0.18 新增)**:1986–1991 年中国夏令时期间的钟面时间在排盘前自动减 1 小时(跨日回退),八字/紫微/合盘/验前事/生时校正统一生效;出生证已是真实太阳口径时可用 `dst: false` 关闭
152
+ - **合婚明细层(0.18 新增)**:合盘新增属相六合/三合/六冲/相害/相刑、天干五合、双向十神、跨盘地支、年命纳音与吉凶象计数分档;只作明细,不改原总分
153
+ - **晚子时开关**:面板与独立页都能切「23:00 后算次日/当日」;奇门另可切「归当日/归次日」——这是排盘口径,不是结果重算
154
+ - **验前事**:八字报告下方列出过去 6 年流年信号,用户自评「准/不准/不确定」,算一个贴合度提示;只读、不改盘
155
+ - **生时校正**:输入过去 2–3 件大事(年份 + 类别),对候选时辰逐一排盘并按固定规则打分,返回候选排序——用于缩小时辰范围,不替代出生记录
156
+ - **导出**:面板与独立页都能「导出 .md」(盘面 + 一页读懂 + 三张表 + 交叉验证 + 追问);独立页另有打印/存 PDF
157
+ - **推导可复核**:八字/紫微另有「看盘顺序」「时间窗」「交叉校验」「未纳入」四段——先看什么后看什么、未来几步大运与近五年流年、喜忌分量与运年是否同向、以及这套算法**没有**计算什么;六爻/六壬对应给「看卦/看课顺序」与「未纳入」。这些都从盘面数据推出,不新增断语
158
+ - **卦象**(六爻/梅花/大六壬)额外给:卦名与卦辞大意、爻辞与动爻、体用关系、互卦与变卦、落到生活里
159
+ - **塔罗**额外给:整盘连贯解读(把几张牌串成一条线,避免各张互相矛盾)与牌面结构(大阿卡纳占比、元素分布、正逆位)
160
+ - **文案口径**:第二人称、温和、只给倾向与建议,不作绝对判断;底部保留理性参考的免责提示
161
+ - **解读区可折叠**:内容较长(五维度 + 体系模块),点标题栏或箭头即可展开/收起;宽屏默认展开、窄屏默认收起,手动切过之后按你的选择来
162
+ - **窄屏与深色(0.48 新增)**:390×844 下实测并修过一轮——目录改成单行横滑胶囊(隐藏滚动条、首尾留 11px),目录链接、证据摘要、名词解释摘要统一 44px 触摸高度;表头从 `--label` 换成 `--ink2`(浅色 10.5:1、深色 10:1),卡内标签与备注用 `--muted`(5.3:1 / 6.7:1),三档判断标签与目录链接在两套变量下都 ≥4.5:1;全部只走主题变量,深色仍然只换变量。dsh 侧栏「窗口宽、报告窄」不触发 `@media`,同一批规则按 `.mp-it` 的容器宽度另挂一份 `@container`,420px 侧栏下同样摊成卡片
163
+
164
+ ### 所问之事与询问方向(六爻 / 梅花 / 大六壬 / 塔罗)
165
+
166
+ 问事的体系要先说清问什么,解读才有落点:
167
+
168
+ - **所问之事**:必填,支持多行,占位示例「用一句话描述所问之事,例如:今年是否适合换工作?」;不填就起卦会给提示,不会给一份没有落点的解读
169
+ - **询问方向**:下拉选择——综合(默认)、财运、事业、感情、健康、学业、出行。选项表 `DIRECTIONS` 由 `engine/interpret.js` 导出,界面与解析层共用一份,不两处维护
170
+ - **联动方式**:`interpret(result, { question, direction })`。所选方向对应的维度会被提到最前并标注「最贴近你的问题」,正文点明你所问的事,引语也会回显;解读开头固定一行「问题:xxx | 询问方向:xxx」供你确认
171
+ - **不重摇卦**:改问题或方向只重出解读,卦象本身不动
172
+ - 命盘类(八字 / 紫微)不问事,不显示这两项,也不会出现回显行
173
+
174
+ ## 安装
175
+
176
+ ### 从 npm
177
+
178
+ ```bash
179
+ dsh plugin install dsh-metaphysics
180
+ ```
181
+
182
+ 或在 Harness 的「插件」面板里搜索 `dsh-metaphysics`。
183
+
184
+ ### 从本地目录
185
+
186
+ ```bash
187
+ dsh plugin install /path/to/dsh-metaphysics
188
+ ```
189
+
190
+ ### 从 tgz
191
+
192
+ ```bash
193
+ dsh plugin install ./dsh-metaphysics-0.17.0.tgz
194
+ ```
195
+
196
+ ## 使用
197
+
198
+ ### 对话里
199
+
200
+ 直接说:
201
+
202
+ - 「排个八字:1990-05-12 14:30,女,河北石家庄」
203
+ - 「排紫微盘:1990-05-12 14:30,女,河北石家庄」
204
+ - 「帮我起一卦,问这个项目能不能成」
205
+ - 「梅花易数,报两个数 17 和 29」
206
+ - 「起个六壬课,问这周谈判顺利吗」
207
+ - 「抽三张塔罗,问这份工作要不要接」
208
+
209
+ 模型会调用 `metaphysics_chart` 工具,参数 `system` 取 `bazi` / `ziwei` / `liuyao` / `meihua` / `daliuren` / `tarot`。
210
+ 注意:八字与紫微要**出生时间**;六爻、梅花、六壬只要**起卦时刻**(通常就是当下),与出生时间无关。
211
+
212
+ ### 面板
213
+
214
+ 重启后侧栏出现**太极图标**,点开是排盘面板:紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗八个排盘 tab,另有黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格十一个速查 tab。奇门 tab 里「换局规则」可选拆补、超神接气、置闰;盘面下方用键值表列出局数、值符值使、空亡驿马、击刑与入墓、月令与门星干旺衰、干宫生克等事实,与解读区的结论分开。
215
+
216
+ 结果卡下方的追问行里,输入问题后可以点「追问」(在本地按盘面字段直接答,不联网)或「问进对话」(把提问发进 DSH 对话窗,由模型接着答)。
217
+
218
+ > 独立页(`命理排盘.html`)同样是这十九个 tab:速查 tab 在左侧展开对应小表单(择日的起算日/事项/天数/属相、农历的转换方向/农历日期/闰月、小六壬的时间或报数、风水的命卦/门主灶/玄空与坐向、运(结果都是方位网格:八向标吉凶、玄空九宫列运/山/向三数)、起名的评估或生成、十六型人格的分页问卷(4 题一页、1–5 打分,答满 12 题可先看结果));合盘要填双方出生信息、可选八字/紫微两种合盘;奇门用「换局规则」单选组(拆补/超神接气/置闰)与「询问方向」定用神。这份文件与侧栏面板是**各自生成**的两份产物(同一份 `engine/`),随包发布的是仓库根这一份;自己在桌面另存过的话,用 `npm run build:desktop` 一次刷新两处,别手工拷。
219
+
220
+ > 首屏默认按用途分三组:**问一件事**(六爻/梅花/塔罗/奇门/六壬/小六壬)、**看一个人**(八字/紫微/合盘/人格/称骨/数字/人生K)、**查日子**(黄历/择日/农历/星座/风水/起名),每项带一句白话(如「摇六次,问一件事」);用过的入口会进「最近用过」,最多 3 条。19 个平铺 tab 仍保留,右上角「分组 / 平铺」随时切换,选择记在本机;手机端每组先露 4 项,其余点「还有 N 个」展开。这份分组数据只有一份(`src/groups.mjs`),独立页与宿主侧栏面板在构建时各自取用;侧栏宽度不等同窗口宽度,收纳按容器查询生效。
221
+
222
+ ### 深色与导出
223
+
224
+ - **深色主题**:跟随系统(`prefers-color-scheme`),盘面与页面同时切换,只换一套 CSS 变量,元素规则一行不改
225
+ - **打印永远是浅色**:深色主题下直接打印会得到一整页耗墨的深底 PDF,所以深色规则用 `@media screen` 限定
226
+ - **存为 PDF / 打印**:结果下方有按钮,走浏览器原生打印(不引第三方库);A4 纵向、隐藏输入区与按钮、盘面与解读不被撕页、四化色块保留颜色。折叠着的「解析与详解」在打印时会自动展开,不会只印出一个标题栏
227
+
228
+ ## 精度与口径
229
+
230
+ - **节气**:VSOP87B 截断级数(105 项)+ 岁差 + 章动 + 光行差;与日本国立天文台《暦要項》对拍,2024/2025 共 48 个节气最大偏差 **0.6 分钟**;出生时刻距「节」不足 20 分钟时会提示复核。**1929-01-01 之前按北京地方平时(UTC+7.7611)**推算,之后按东八区——与农历共用同一套换算,避免 14 分钟错位
231
+ - **农历**:定朔(Meeus 第 49 章,误差约 1 分钟)+ 冬至所在月为十一月 + 无中气置闰
232
+ - **真太阳时**:经度差 + 均时差;内置 34 个省会 + 200 个地级市坐标(±0.2°),地址更细时可开「联网精确到区县」(Nominatim)。**单盘与合盘用的是同一套修正**(合盘双方各按自己出生地算)。只按经度修正,**未含历史时区与夏令时**:海外出生请先把当地钟表时间换算成东八区标准时再输入;没给经度时摘要首行会出 ⚠
233
+ - **晚子时**:八字/大六壬默认 23:00 后换日,奇门默认归当日;`lateZi` 与 `lateZiHourMode` 是同一个开关的两个名字。各体系摘要都会写明本次采用的口径,不改默认值、不偷偷改盘
234
+ - **口径对照**:`caliberCompare` 只做「当前口径 → 另一档」的逐字段比对,根因按柱 / 命宫 / 局数 / 起运归类,`total` 是变化字段数、不是分数;没有根因时写明「无单一根因」(如真太阳时只改起运时刻)。紫微的 11 组含九类流派开关(亮度 / 庚干四化 / 天马 / 天空 / 截空旬空 / 魁钺 / 天伤天使 / 长生 / 晚子时),平铺参数与 `schools` 嵌套都能读;取局流派、晚子时归日、闰月政策与流派回显属于口径回显,不计入差异;「其他」是尚未归类的派生字段,不隐藏也不折算。对照会按开关数多排盘(工具里由 `diff: true` 显式开启)
235
+ - **八字五合**:干支关系只标「有合」,摘要写「戊癸合(化火待定)」;是否真化另看月令、化神与争合妒合,不在关系层直接断「合化火」
236
+ - **可复现**:塔罗/六爻给 `seed` 即得同一次抽牌/摇卦;紫微流月流日流时、塔罗的抽牌时刻、八字的流年基准年都可传 `asOf` 钉死。**影子盘** `shadow: true` 另给一个短 ID:同参数同 ID、换版本 `id` 变而 `baseId` 不变;面板与独立页把快照存在本地,同盘重排自动做字段级 diff。未固定 `asOf` 时流年随「此刻」变化,卡片会提示先固定再比对;与 `seed` 一样,随机源不写进 ID 时无法复算,所以塔罗 / 六爻的实际牌面会算入指纹。**推导链** `trace: true` 则逐层给出规则、输入、结果与出处,只读结果,不改变盘面与 ID
237
+ - **紫微四化**:中州派常用表(庚干作太阳禄、武曲权、太阴科、天同忌)
238
+ - **问进对话**:只做文本组装,不改盘、不调模型——面板把 `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 后若槽位改名,按钮会静默退回「复制」而不是报错
239
+ - **紫微飞星串连**:只认宫干四化表、星落哪宫就是哪宫之力,串连只跟**同一支化**逐宫跳(不混支、不借对宫),满 12 步或回到走过的宫即停;宫干四化在 12 宫上是「一个宫 → 一个宫」的函数映射,所以完整盘上每条链必然成环(实测 1/3/4/5/6 步),「断点」只可能来自星未上盘。这一层只描方向与牵引,不断吉凶,也不叠大限流年算力重
240
+ - **八字 × 紫微交叉验证**:五项只并列、不合并成总分。任一侧当前阶段取不到时(八字尚未起运、紫微大限不在范围内),该项标「互补」并写明缺的是哪一边,不把「没取到」当成「没有问题」;节奏一项的说明按实情分档——八字顺而紫微煞星多、八字偏紧而紫微平静、八字为平而紫微煞星多,三种说法各写各的,不共用一句「一边顺、一边压」
241
+ - **日主旺衰**:量化算法,非唯一流派
242
+ - **奇门宫位条件**:门迫只认同宫内「门五行克宫五行」,宫克门是「宫制门」不为迫;六仪击刑按月支相刑定宫(甲子戊震三、甲戌己坤二、甲申庚艮八、甲午辛离九、甲辰壬巽四、甲寅癸巽四),三奇入墓按五行墓库定宫(乙木墓未→坤二、丙丁火墓戌→乾六)。这三项只判**天盘**、只作宫位条件,不自动断用神受制,也不打分排序
243
+ - **奇门旺衰**:八门、九星与天盘干(三奇六仪)按月支五行判旺相休囚死(同气旺、月令所生相、生月令休、克月令囚、被月令克死),只报力量强弱不折吉凶;门旺而宫克门仍受宫制。
244
+ - **六爻用神旺衰**:月建按月支五行定五态(同气旺、月令所生相、生月令休、克月令囚、被月令克死),日辰定五关系(日生/日克/比和/泄/耗),月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空;只报状态标签,不折成分数
245
+ - **六爻全卦逐爻旺衰**:与用神旺衰同一套判定,只是不挑用神、六爻全给,并标世应/动爻/旬空与五态分布。五态只按「爻五行 × 月支五行」判,各家对月破、暗动、冲空取名不一,本插件按「月建冲=月破、日冲静爻=暗动、日冲旬空=冲空」给标签;不折加权分数、不据此断成败;化进/化退已叠月建五态给档位(见下一条),但日辰加权与动变连环仍未做
246
+ - **紫微三方四正复合飞化**:四宫 16 条飞化按落宫归堆,会聚判定只看「落在同一宫」这一条结构事实(双忌≥2、禄忌同见、三化以上、自化);各家对会照要不要折分数、要不要再叠大限流年分歧较大,本插件只标会照与方向
247
+ - **紫微夹局与刑囚夹印**:「夹」只要求两星分居命宫前后、不分左右(日月、左右、魁钺本来就没有固定左右;0.38.2 之前按固定顺序判,昌曲夹命与羊陀夹命从未命中,日月/左右/魁钺各漏约一半)。擎羊在禄存 +1、陀罗在禄存 −1,两星只能夹禄存,所以「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫。刑囚夹印按字面判夹不成立(廉贞与天相永远隔偶数宫),取通行说法「廉贞天相同守命宫于子午、擎羊同宫」,判的是守命那一宫,其它宫位三星同宫不报;命宫卯酉、廉贞天相对照遇擎羊的变体未纳入。34 条格局的判定与 `test/ziwei-patterns.test.mjs` 的独立谓词逐条对齐,并要求每条至少命中一次
248
+ - **奇门干宫生克**:天盘干(三奇六仪)与所落宫五行的关系另算一层——干克宫/宫克干/干生宫/宫生干/比和,与门宫关系并列各说各的、不折成一个分数;十干克应(天盘干加地盘干的 100 组)仍未做
249
+ - **六爻化进化退**:只按「同五行地支顺次」定方向(木 寅→卯、火 巳→午、金 申→酉、水 亥→子,土 丑→辰→未→戌→丑 成环),同五行不相邻不算;方向之外再按月建五态给一档力重(旺相 → 后劲足、休囚 → 后劲有限、死 → 进得虚;退则得令退得缓、失令退得实;月破压过一切),只给档位、不折加权分数,也不据此断吉凶。土的进退次序各家说法不完全一致
250
+ - **六爻应期线索**:只做「时间窗口的方向」——用神(不上卦取伏神)的逢值、逢冲、逢合三支,旬空另加出空填实与冲空;快慢按月建五态分偏速 / 偏缓 / 待解 / 未定(两现而旺衰不一或缺月建记未定)。不换算日期、不排先后、不判忌神受制,也不叠动变连环;近事以日计、远事以月计,用哪把尺由事情远近决定,本插件不代选。具体应期日期仍是 `liuyao-yingqi-exact` 的待办项
251
+ - **八字交运日**:交运时刻 = 出生时刻 + 「出生到起运侧节令」的真实天数 × 365.2422/3,顺排数到下一节、逆排数到上一节;同一条比例即古法「三日折一年、一日折四月、一时辰折十日」。每步大运在同月同日同时刻换,闰日退位。一年取回归年 365.2422 日——按 360 日折算的流派会差一两天,`dayun.jiao.yearDays` 把这个口径写进了结果
252
+ - **八字通关**:只在「用神与克它的忌神两行在局中各 ≥1.5 分」时成立相战,通关行由五行生克唯一确定(克方所生、又生用神;金克木以水为关),按局中分量分「可通 / 关弱 / 为忌 / 未通」四档,`usable` 仅指「可通」;通关行若在本盘属忌神,只标「为忌」、不当桥用。只写进用神 detail、摘要与解释层,不折分数、不断吉凶,也不判通关之力够不够用。`test/tongguan.test.mjs` 用五组相克、阈值边界与 24 年逐月真实盘独立重算核对
253
+ - **岁运提示**:六类信号只认干支事实——**天克地冲**要求天干相克且地支相冲,缺一不算(例如丙子年对丙午年柱是同干相冲,不标反吟);当值大运取与「该年立春到次年立春」相交的步,交运落在年内时前后两步并列。不折分数、不判吉凶,「岁运并临主大凶」一说不采;大运与本命四柱的伏吟/反吟整步大运都在,随每年重复列出、不逐年加重;四柱十神的引化也未叠入
254
+ - **六爻用神**:只落到「哪一爻是用神、它与卦体/动变/旬空什么关系、月建日辰给它什么状态」这一层——不叠出一个月建日辰换算的力重分数,用神两现时把候选都列出来而不代选;伏神给出伏于何爻、飞伏生克与出伏条件(飞生伏、伏克飞、日辰生/比和、月建旺/相算助,飞克伏、日辰克、月破算压,归四档),条件只并列、不排各家优先级,也不出具体日期与应期
255
+ - **十六型人格**:MBTI **风格**的自建问卷,不是官方 MBTI 量表——题目、计分与常模都是本插件自己的,不与任何商业量表对齐;四维净分 =(分数 − 3)× 侧向求和,平手按 I / N / F / P 取并标「临界」,强度是按「净分 / (答数 × 2)」分的四档,不代表任何总体分布。结果只作自我参照,不用来评价他人能力、做招聘或临床判断
256
+ - **入参**:日期按月份天数与闰年校验(`1990-02-30` 直接报错,不滚到下个月);八字/紫微/合盘的性别必填(性别决定大运大限顺逆,不做默认);六爻爻值必须正好 6 个,留空才随机摇卦。非法入参带错误码返回(`E_INPUT` / `E_LINES` / `E_COUNT` / `E_ASOF` / `E_PARTNER`),不静默改成另一个盘;风水缺坐向、非 24 山、坐向不对宫、运越界与运非整数(含字符串)同样归 `E_INPUT`,工具层不会把它们标成内部错误,也不会把 `2.5` 静默当成缺省九运
257
+ - **对拍**:历法对 NAOJ 历要项与 ICU 抽样的农历;流派规则对典籍通例——六爻八宫卦序与世应(京房)、六壬日干寄宫与中气换将(《大六壬指南》)、紫微纳音定五行局与紫微天府相照(《紫微斗数全书》);另有《增删卜易》9 条与《卜筮正宗》**128 条**原文卦例(93 条本卦→变卦 + 35 条静卦)。期望值在 `test/fixtures/classics.json`,出处见其 `meta.sources`,卦例原始数据与排除理由在 `tools/data-boshizhengzong.mjs`。卦例只取原文能稳定读出的字段:卦名、卦宫、缺爻(伏神)、动爻**个数**(与原文 x/○ 标记数核对过)、有日期的旬空;**动爻在哪一爻**不录——卦象表在 PDF/DOCX 里串行,硬解析等于造数据
258
+
259
+ ## 数据与隐私
260
+
261
+ - 全部计算在本地完成
262
+ - **默认不联网**:地址只查内置坐标表(最细到地级市,足够真太阳时)。只有把 `geocode` 设为 `online`(面板上勾「联网精确到区县」)才会把出生地原文发给 OpenStreetMap Nominatim,用于精确到区县/路名;失败即回退内置表,同一地址 6 小时内不重复请求
263
+ - 不收集、不上传任何其他数据
264
+
265
+ ## 开发
266
+
267
+ ```bash
268
+ npm run build # 生成 client.js(界面入口)与 client.<name>.js(按 tab 的引擎分块)
269
+ npm run build:html # 生成独立的 命理排盘.html(可离线双击使用),默认写到工作区根目录
270
+ npm run build:verification # 重建 docs/verification.html 与 README 徽章(判定改动后必须重建)
271
+ # 想同时更新桌面那份:npm run build:desktop(写到 ~/Desktop/命理排盘.html)
272
+ # 存到别处:node tools/build-html.mjs --out "D:\某处\命理排盘.html"
273
+ npm test # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
274
+ npm run test:ci # 构建 + 产物自检 + 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定(CI 跑的就是这条)
275
+ npm run test:baseline # 断言数确实要减少时,显式重建基线
276
+ npm run check:html # 单独跑 HTML 注入面扫描
277
+ npm run check:patterns # 单独跑工程约定检查
278
+ npm run release # 测试 → 构建 → 校验产物 → 发 npm → 核对附件(token 从 NPM_TOKEN 读)
279
+ ```
280
+
281
+ 也可以直接调脚本:`node tools/build-client.mjs`、`node tools/build-html.mjs`、`node tools/verification.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 调用,也可单独用来核对某个版本)。
282
+
283
+ **测试的七道闸**:
284
+
285
+ 1. `test/_harness.mjs`——任何一条 `ok()` 失败都让进程非零退出(此前 9 个文件只打印不失败,全量"全绿"没有意义)
286
+ 2. `test/assertion-baseline.json`——每个文件的 PASS 条数低于基线即失败,防止"删断言让测试变绿"
287
+ 3. `tools/verify-tests-can-fail.mjs`——故意写错一条断言,必须真的变红,防止第 1 条被改回去
288
+ 4. `tools/check-html-sinks.mjs`——`innerHTML` 里拼接的量必须经过白名单转义函数,否则 CI 直接红
289
+ 5. `tools/check-patterns.mjs`——engine 不得引用浏览器/Node API 与 `console`,不得用 `var`/`debugger`,`new Date()` 与 `Math.random` 只允许出现在白名单文件
290
+ 6. `test/fuzz.test.mjs`——固定种子的随机生日扫射八个排盘体系,覆盖边界日期、参数矩阵与"同参数必得同结果"
291
+ 7. `tools/check-bundle.mjs`——产物必须在**宿主形态**下能编译能跑:读 `client.js` 与每个 `client.<name>.js` 原文逐模块编译、模拟 `__ModuleLoader__` 执行 factory、校验分块注册名 / 返回 `Engine` / 自包含、IIFE 收口与不可见分隔符,并要求所有产物与源码重构建逐字节一致;入口 gzip 必须 < 100KB(2026-10-25 的启动崩溃就是 Node 侧全绿、Chromium 侧语法错,这道闸专门守这个缝)
292
+
293
+ `client.js` 与 `client.<name>.js` 都是构建产物,不要手改。入口只带界面;面板按当前 tab 用 `require.async` 取引擎分块,首次打开不再下载整套引擎。改动记录见 [CHANGELOG.md](CHANGELOG.md)。
294
+
295
+ ### 发版
296
+
297
+ ```bash
298
+ # 先在 npm 生成 Granular Token:Read and write + 勾 Bypass 2FA
299
+ NPM_TOKEN=npm_xxx npm run release # 正式发布(会先跑测试与构建校验)
300
+ NPM_TOKEN=npm_xxx npm run release -- --dry-run # 只校验不发布
301
+ NPM_CLI=/path/to/npm-cli.js NPM_TOKEN=... npm run release # 本机没有 npm CLI 时
302
+ node tools/release.mjs --verify-only # 只核对 registry 上当前版本的附件
303
+ ```
304
+
305
+ 脚本会拦下:工作区不干净、`client.js` 未随源码重建、registry 上已有同版本;发布后自动核对新版本与 `dist-tags`,并提示补 `git tag`。
306
+
307
+ **发布后为什么要看附件,而不是只看 `npm publish` 的输出**:npm 的发布是异步的,版本条目会先出现在 packument 里(连 shasum、签名、`latest` 都齐),tarball 附件却可能晚几分钟才落盘。这中间别人 `npm i` 会撞 404,而 `npm publish` 早就打印了成功。所以 `tools/verify-publish.mjs` 的判据是四条:tarball 返回 200、下载到的字节 sha1 与 registry 记的 `shasum` 一致、`fileCount` 对得上、包里该有的文件(`package.json`/`client.js`/`命理排盘.html`)确实在。15 分钟内一直对不上就判定失败并给出处置路径。
308
+
309
+ 另外记一条实操限制:`unpublish`/`deprecate` 属于「绕过 2FA 的破坏性动作」,granular token 会被 403 拒绝(`Granular access tokens that bypass two-factor authentication may not perform this action`),这类动作只能在 npm 网页上用 2FA 做;真要撤版,把版本号升一个补丁号重发通常更快。
310
+
311
+ ### 样式命名约定
312
+
313
+ 面板的 CSS 是以 `<style>` 注入到宿主页面的,**没有 shadow DOM 隔离**,所以每个类名都带命名空间前缀,避免和宿主页面的同名元素互相染色:
314
+
315
+ | 前缀 | 归属 |
316
+ |---|---|
317
+ | `pp-` | 紫微盘骨架(宫格、宫位选中、三方四正、身宫) |
318
+ | `bz-` | 四柱八字表(干支大字、藏干、十神、五行旺衰) |
319
+ | `dt-` | 宫位详情面板 |
320
+ | `flow-` | 流月 / 流日 / 流时 |
321
+ | `ct-` / `ft-` | 盘心 / 盘脚 |
322
+ | `mp-` | 各模块根容器:`mp-it`(解析)、`mp-dl`(六壬)、`mp-hy`(六爻)、`mp-mh`(梅花)、`mp-tt`(塔罗)、`mp-hex`(爻线)、`mp-trib`(体用) |
323
+ | `hb-` / `tritag-` | 卦盒 / 体用标签 |
324
+ | `dl-` / `ss-` / `ssx-` / `ssg-` | 六壬盘块 / 神煞族 |
325
+ | `ask-` | 所问之事回显 |
326
+
327
+ 两条硬规矩:
328
+
329
+ - **不用泛词做类名**(`.body`、`.big`、`.s`、`.p`、`.on`、`.it` 这类)。名字越泛,越容易在同一个文件里被两处语义共用——本项目已经栽过两次:`.pp-body` 同时是「整块视图容器」和「身宫格」,一次导致身宫整格消失,另一次的 `::after` 残骸在页面左上角飘出一个孤立的「身」方块。
330
+ - **模块根类名必须带前缀**。裸用的 `.it` / `.dl` / `.hy` 一旦注入全局,宿主页面的同名元素会被一起改写。
331
+
332
+ *2026-10 做过一轮全量整改:199 个类名按语义分组补齐前缀(约 540 处替换),计算逻辑一行未动,20 组断言与全量视口扫描全绿。*
333
+
334
+
335
+ ## 关于:一个人做的插件,欢迎来聊
336
+
337
+ 这个插件是我个人所做,不是团队产品,也没有经费和人手。十九套体系一个人铺下来,能力有限、力有未逮:排盘规则各家口径不一,我按自己读到的通行本取了一套并写进口径里;看不懂、算错、算漏、话说过头的地方,一定还有。
338
+
339
+ 所以有意见、有想法尽管说,不必客气——
340
+
341
+ - **对玄学命理本身有想法**:某个神煞该不该这么取、某条断法是不是牵强、某段解析是不是话说太重了,欢迎进群友好讨论。我不认为自己的口径就是对的,能把分歧讲清楚,比谁赢更有意思。
342
+ - **盘排错了、页面出 bug**:请把输入(时间、地点、性别、体系、所问之事)和当时的输出一起带上,我照着复现;能修就修,修不了会写进「已知边界」。
343
+
344
+ 微信群:**dsh-metaphysics**
345
+
346
+ <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">
347
+
348
+ 图片用 GitHub Release 附件(不经过 camo / raw,部分网络下更稳)。
349
+
350
+ 这批二维码 7 天内有效(11 月 6 日前,2026-10-30 更新);过期了在 [issues](https://github.com/xuanfu-web/dsh-metaphysics/issues) 说一声,我换新图。只想提问题、不想进群的,开 issue 一样算数。
351
+
352
+ ## 致谢
353
+
354
+ 本插件的十套速查体系(农历互转为自有实现)在**能力范围**上参考了同生态的 [dsh-xuanji(玄机阁)](https://github.com/huangziyuan-general/dsh-xuanji)(MIT):黄历、择日、称骨、小六壬、星座、生命数字、人生 K 线、风水、起名。
355
+ **实现是独立的**:没有拷贝对方源码,也没有引入它的依赖(iztro / lunar-javascript),全部按行为规格用本项目的 calendar / lunar / dst 模块重写,并逐项与公开通行表或 lunar-javascript 对拍(称骨表的初版错误就是这样查出来的)。特此致谢。
356
+
357
+ 《子平真诠》《滴天髓》《三命通会》的原文摘句取自 [中华典藏网](https://www.diancang.xyz/)(古籍,public domain),照录通行本、附章名与链接;释义为白话自撰。三命通会取与格局取用直接相关的十六篇——论十神八篇(正财、偏财在该本分章),加专旺五格(曲直/炎上/从革/润下/稼穑)与弃命从煞、弃命从财七篇,另取卷五官煞去留杂论作七杀格的对照(该本没有单列的「论偏官」);另录卷二「总论岁运」「论人元司事」两条,分别作岁运提示与人元司权的出处(人元一条的日数与通行表不同,原文并列、不改判)。从儿、从强三书没有可整段照录的专章,未硬凑。
358
+
359
+ 《穷通宝鉴》120 格的原文摘句取自 [luckclub.cn](https://www.luckclub.cn/bazi/004/)(古籍,public domain),用神顺序参考 [knowyourbazi.com](https://knowyourbazi.com/zh-hans/qiongtong/) 的整理表;两者逐格对读,原文全章未见某个用神字时(如八月丁火的「丙」),数据里直接标了 note 说明「按整理表录入、待以善本核对」,没有替它圆场。
360
+
361
+ ## License
362
+
363
+ MIT
364
+