dsh-metaphysics 0.17.1 → 0.18.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 +99 -23
- package/README.md +35 -10
- package/client.js +2098 -35
- package/engine/almanac.js +215 -0
- package/engine/bazi.js +10 -2
- package/engine/chenggu.js +126 -0
- package/engine/dst.js +68 -0
- package/engine/fengshui.js +288 -0
- package/engine/geo.js +1 -1
- package/engine/hepan.js +82 -1
- package/engine/index.js +277 -2
- package/engine/name.js +303 -0
- package/engine/numerology.js +60 -0
- package/engine/rectify.js +1 -0
- package/engine/star.js +82 -0
- package/engine/trend.js +193 -0
- package/engine/xiaoliuren.js +64 -0
- package/engine/zeri.js +127 -0
- package/engine/ziwei.js +7 -2
- package/index.js +93 -25
- package/locale/en.json +1 -1
- package/locale/zh.json +1 -1
- package/package.json +15 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,29 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
版本按「一组可感知的改动」发,README 与市场条目描述随能力同步。
|
|
4
4
|
|
|
5
|
-
## 0.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
5
|
+
## 0.18.0(未发布)
|
|
6
|
+
|
|
7
|
+
吸收同生态另一款命理插件「玄机阁」(dsh-xuanji,MIT)的能力:**按行为规格独立实现,不 vendor 源码、
|
|
8
|
+
不引入 iztro / lunar-javascript 依赖**,引擎仍为零外部依赖的纯 ESM。
|
|
9
|
+
|
|
10
|
+
### 九套速查体系(新增)
|
|
11
|
+
|
|
12
|
+
每套都有 `engine/*.js` + 工具分支 + 面板/独立页入口 + 测试,口径固定、同日同结果:
|
|
13
|
+
|
|
14
|
+
- **黄历 almanac**:农历、四柱干支(年柱按立春、月柱按节)、建除十二神、宜忌简表、冲煞与财喜神方位、
|
|
15
|
+
上一/下一节气、每日一卦。与 lunar-javascript 对拍四组日期(日柱/月柱/年柱/农历/建除全一致);
|
|
16
|
+
唯一差异是交节当日「上一节气」的日界口径(我们按正午判已交节),已记入 `meta.scope`
|
|
17
|
+
- **择日 zeri**:13 类事项 × 建除适配打分,逐日分「推荐 / 可用 / 回避」,当事人属相冲煞日直接排除,
|
|
18
|
+
每条回避都带理由;明确是「排序引导」,不是吉凶断语
|
|
19
|
+
- **称骨 chenggu**:年/月/日/时四项骨重求和与分档批语。年表按 `(农历年-4)%60` 查 60 甲子,
|
|
20
|
+
月日时各一张表;对拍公开黄历页修正了初版错表(1990-08-15 巳时应为**五两六钱**,不是五两五钱)
|
|
21
|
+
- **小六壬 xiaoliuren**:时间起课(农历月/日/时三掐)与报数起课(三个 1–99),六宫吉凶与白话断语
|
|
22
|
+
- **星座 star**:太阳星座档案 + 当日四维基调;基调由日期哈希确定性生成,同一天同一星座永远一致,
|
|
23
|
+
明写「不是随机数,也不是模型编的」
|
|
24
|
+
- **生命数字 numerology**:生命路径数 / 生日数 / 态度数,11/22/33 主数保留,逐数给数义与课题;
|
|
25
|
+
与八字是两套口径,混问时会说明不可互相印证
|
|
26
|
+
- **人生 K 线 trend**:复用八字的旺衰、大运、流年十神,按固定计分表给 1–100 岁逐年分与 K 线形态、
|
|
27
|
+
分大运 ASCII 走势、最佳/最差年份。旺衰恰好落在换档阈值(±0.3)时只给提示、不给顺位结论
|
|
28
|
+
- **风水 fengshui**:八宅命卦(1900s/2000s 男女公式、立春界)、大游年四吉四凶、流年九宫飞星
|
|
29
|
+
(2026 一白入中为锚)、24 山门主灶布局倾向、命宅配调停文案;`scope` 明写不含玄空各运盘与现场勘舆
|
|
30
|
+
- **起名 name**:评估现有名字或生成候选名;按八字喜用五行(偏强喜克泄耗、偏弱喜生扶)匹配 241 字
|
|
31
|
+
自建字库,未收录的字如实标「未收录」。**不做五格剖象**(需康熙字典笔画)与音韵判断
|
|
32
|
+
|
|
33
|
+
### 1986–1991 夏令时自动校正
|
|
34
|
+
|
|
35
|
+
`engine/dst.js`:中国 1986–1991 年夏季行夏令时,钟面时间比标准时快 1 小时。八字/紫微/合盘/验前事/
|
|
36
|
+
生时校正/人生 K 线/风水在排盘前统一校正,跨日时回退到前一天 23:xx 并给出 `dst.note`;
|
|
37
|
+
`dst: false` 可显式关闭(出生证已是真实太阳口径时用)。修正了「夏令时出生按钟面时间排盘差一个时辰」的口径错误。
|
|
38
|
+
|
|
39
|
+
### 合婚明细层(hepan 增强)
|
|
40
|
+
|
|
41
|
+
原有总分与三维度**不动**,新增 `detail`:属相六合/三合/六冲/相害/相刑、天干五合、双向十神、
|
|
42
|
+
跨盘地支关系、年命纳音生克、吉凶象计数分档(上 / 中上 / 中 / 需磨合)。冲刑害一律中性叙述,不断「必分」。
|
|
43
|
+
|
|
44
|
+
### 界面
|
|
45
|
+
|
|
46
|
+
- 面板与独立页 tab 由 8 个扩到 **17 个**:九套速查体系各有自己的最小输入;速查结果走通用 `pp.quickHTML`
|
|
47
|
+
(等宽文本 + 标题),不套命盘模板
|
|
48
|
+
- 八字面板补传 `verifyPast`,验前事区块终于会在面板里出现(此前只有独立页有)
|
|
49
|
+
- 独立页「方法页」同步体系清单与已知边界
|
|
50
|
+
|
|
51
|
+
### 视觉升级三项(沿用本次工作树)
|
|
52
|
+
|
|
53
|
+
视觉升级三项,均不改计算口径、不新增判断:
|
|
54
|
+
|
|
55
|
+
- **色板拉开层级**:`--bg` 压深作「桌面」(`#fffdf8 → #f6f1e6`),`--card` 提到近白(`#fffefb → #fffdf8`),
|
|
56
|
+
band / tri / soul / sel / link 一并拉开。`--hair` 随底色同步加深(`#efe9dc → #e9e2d3`),否则比背景还亮、
|
|
57
|
+
发丝线会变成高光。深色块用同一套逻辑(底更沉、卡片更亮)。
|
|
58
|
+
改动前 `--bg` 与 `--card` 只差 1/255,卡片与底色几乎同色,一切「卡片」都浮不起来。
|
|
59
|
+
前景色(ink / muted / red / lu / 十神组)一个未动,对比度、打印样式、可访问性不受影响
|
|
60
|
+
- **人生运势曲线**:新增 `pp.curveHTML()`(渲染在八字盘「大运」节内)——大运作阶梯、流年作折线,
|
|
61
|
+
叠在同一坐标系;背景五条档位色带(绿=吉 / 灰=平 / 红=忌),标出全程最高运与最低运,
|
|
62
|
+
今年流年点加粗描边,悬停看逐年「年份(年龄)干支 档位 分值」。
|
|
63
|
+
纯内联 SVG、零依赖,颜色走 CSS 变量,深浅色自动跟随
|
|
64
|
+
- 纵轴固定量程 −2.2 ~ 3.2(引擎实测 score ∈ [−2, 3.2]):固定而非自适应,不同盘之间才可比
|
|
65
|
+
- 数据不足两步大运则不画(不画半张图);缺 `luck` 字段、传 null / 空对象均不崩
|
|
66
|
+
- 新增 `test/curve.test.mjs` 36 条:几何不越界、色带无缝、阶梯形态、点与引擎数据对齐、
|
|
67
|
+
刻度不重叠、安全与无障碍、边界不崩
|
|
68
|
+
- **三套内联 SVG 符号**(零依赖、零外部请求,一律 `currentColor` 跟随主题):
|
|
69
|
+
- **爻线**:原先 span + 背景色拼接、靠 `flex gap:18%` 留阴爻间隙,字号一变间隙就飘;
|
|
70
|
+
改为 104×12 内联 SVG,间隙按画布坐标固定(两段各 43 + 间隙 18 = 104)。三种尺寸共用一份几何
|
|
71
|
+
- **动爻标记**:沿用传统老阳 ○ / 老阴 ×,非动爻留同宽空位,六列对齐不抖;爻线列由 112px 放宽到 128px
|
|
72
|
+
- **五行符号**:12×12 描边图标,形状取各元素最易辨识的意象(木=树 / 火=焰 / 土=「土」字骨 /
|
|
73
|
+
金=菱形 / 水=波纹),接入五行分类 chip 与用神喜忌行
|
|
74
|
+
- **八卦小象**:14×10 三爻 SVG,接在梅花上下卦标题前;爻位由 `TRI_BITS` 自下而上翻转后渲染
|
|
75
|
+
- 新增 `test/symbols.test.mjs` 79 条:三种尺寸几何、阴爻两段+间隙恰为满宽、八个卦逐爻位校验、
|
|
76
|
+
五条元素路径互不相同、整合到六爻/梅花/八字盘、既有结构回归护栏、无脏值无注入面
|
|
77
|
+
- 全量 57 文件 / 1621 条 PASS(原 1362),`test:ci` 七道闸全绿
|
|
78
|
+
- 新增 `test/tools.test.mjs` 65 条 + `test/tools2.test.mjs` 68 条:黄历对拍、择日排除冲属相、
|
|
79
|
+
称骨四项和、小六壬递推、星座边界、生命数字主数、DST 开关、人生 K 线边界、风水坐向、起名未收录字
|
|
80
|
+
|
|
81
|
+
## 0.17.1(已发布)
|
|
82
|
+
|
|
83
|
+
同步更新,**无运行时行为变化**:
|
|
84
|
+
|
|
85
|
+
- README 与仓库现状对齐:补齐奇门 / 合盘(八套体系)、0.16–0.17 的报告化与可核验能力、安装示例版本
|
|
86
|
+
- CI 自检加固:新增 `tools/check-bundle.mjs` 产物自检闸(逐模块编译 client.js、核对与源码一致),`test:ci`
|
|
87
|
+
先构建再检查;`ask.test` 不再读取仓库外的生成物
|
|
88
|
+
- 仅 UA 字符串随版本号更新(`dsh-metaphysics/0.17.1`),排盘逻辑与输出不变
|
|
89
|
+
|
|
90
|
+
## 0.17.0(已发布)
|
|
91
|
+
|
|
92
|
+
对应「晚子时开关 / 验前事 / 生时校正」三条用户反馈:
|
|
93
|
+
|
|
94
|
+
- **晚子时开关**:面板与独立页新增「晚子时换日」(八字/紫微/合盘)与奇门「归当日/归次日」;
|
|
95
|
+
之前引擎已支持 `lateZi` / `lateZiHourMode`,但 UI 没有暴露,用户无法自己调
|
|
96
|
+
- **验前事**:工具参数 `verifyPast`(年数)+ 面板/独立页「验前事」区块——列出过去若干年的
|
|
97
|
+
流年信号(冲/合/刑、档位、十神),用户自评「准/不准/不确定」,用 `verifyFit` 算贴合度并给建议;
|
|
98
|
+
**只读,不重排、不改盘**;贴合度低时先提示核对出生时间/时区/晚子时
|
|
99
|
+
- **生时校正**:`engine/rectify.js` + 工具参数 `rectify`/`events`——对候选时辰逐一排盘,
|
|
100
|
+
按固定规则(事件类别 × 当年十神/关系/档位)打分,返回候选排序与并列说明;
|
|
101
|
+
规则显式可复核,明确「只缩小范围、不替代出生记录」
|
|
102
|
+
- 测试:新增 `test/verify.test.mjs` 25 条;全量 53 个文件 / 1362 条 PASS
|
|
103
|
+
|
|
28
104
|
## 0.16.0(已发布)
|
|
29
105
|
|
|
30
106
|
报告化改版,对应与 Seeself 对比后的 R1–R8:
|
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# dsh-metaphysics · 命理排盘
|
|
2
2
|
|
|
3
|
-
Chinese metaphysics 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 and
|
|
3
|
+
Chinese metaphysics 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, life-curve, feng shui and name analysis.
|
|
4
4
|
|
|
5
|
-
给 DeepSeek Harness
|
|
5
|
+
给 DeepSeek Harness 用的命理插件:**四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、奇门遁甲、合盘、塔罗牌**八大排盘体系,外加**黄历、择日、称骨、小六壬、星座、生命数字、人生K线、风水、起名**九套速查,同时提供 Agent 工具与 Web 面板。
|
|
6
6
|
|
|
7
7
|
> 传统命理与占卜属文化娱乐用途,不构成医疗、投资、法律或生死判断的依据。
|
|
8
8
|
|
|
9
9
|
## 插件市场备注
|
|
10
10
|
|
|
11
|
-
**命理排盘 · 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 /
|
|
11
|
+
**命理排盘 · 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗 + 黄历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名** —— 一个插件把十七套体系装进 Harness:对话里说一句就排盘,侧栏还有可视化面板。
|
|
12
12
|
|
|
13
13
|
- **八字**:42 颗神煞(分吉凶七类,天干星双查年干与日干、三合星双查年支与日支,悬停看查法)、日主旺衰量化并给出依据、格局与用神(月令取格 + 化气/专旺/从格 + 十神组合,每条附判定依据)、大运流年按喜忌五行与十神打分(大吉/吉/平/忌/大忌,可看逐项理由)
|
|
14
14
|
- **紫微**:十四主星与 49 星曜(主星带**庙旺得利平不陷**亮度标注)、四层十二神、生年四化与宫干自化、34 条格局(标吉/忌倾向与依据)、大限一览、流年四化落宫;本命/大限/流年三视图一键切换,命宫红框、三方四正浅底标出;竖屏与窄侧栏保持 4×4 宫盘(宫位相对位置不丢)
|
|
@@ -18,9 +18,12 @@ Chinese metaphysics for [DeepSeek Harness](https://github.com/deepseek-ai/deepse
|
|
|
18
18
|
- **奇门遁甲**:时家转盘,拆补 / 超神接气 / 置闰三流派取局;九宫、值符值使、空亡驿马、门迫与宫制门严格区分
|
|
19
19
|
- **合盘**:八字或紫微双盘对照(日主、夫妻宫、五行互补 / 互落宫、四化引动)
|
|
20
20
|
- **塔罗**:78 张全牌、1/3/5 张牌阵,逐牌牌位义 + 整体解读,体系与逆位口径写明
|
|
21
|
+
- **速查九件**:黄历(四柱/建除/宜忌/冲煞/节气)、择日(13 类事项排序,冲属相排除)、称骨(骨重与批语)、
|
|
22
|
+
小六壬(时间/报数起课)、星座(档案 + 当日基调)、生命数字(生命路径/生日/态度数)、人生 K 线(逐年分与形态)、
|
|
23
|
+
风水(八宅命卦/大游年/流年紫白/门主灶)、起名(喜用五行匹配,未收录如实标注)——口径与边界各自写明
|
|
21
24
|
- 全部本地计算,不收集数据;结果供文化娱乐参考,不作医疗、投资、法律或生死判断
|
|
22
25
|
|
|
23
|
-
### 报告化与可核验(0.16 / 0.17 新增)
|
|
26
|
+
### 报告化与可核验(0.16 / 0.17 / 0.18 新增)
|
|
24
27
|
|
|
25
28
|
- **一页读懂 + 三张表**:整体/事业/财富/感情/节奏五条摘要;大运表、流年表、触发事件表(紫微是大限/流年/触发)
|
|
26
29
|
- **证据卡 + 置信度**:每条维度结论可展开到逐条盘面事实与所用技法,置信度按证据条数分强/中/弱
|
|
@@ -77,6 +80,21 @@ Chinese metaphysics for [DeepSeek Harness](https://github.com/deepseek-ai/deepse
|
|
|
77
80
|
- 每张牌给编号、牌阶级、核心义与牌阵位义;解读 6–8 段(逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议)
|
|
78
81
|
- 明确标注体系:RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断
|
|
79
82
|
|
|
83
|
+
### 速查九件(almanac / zeri / chenggu / xiaoliuren / star / numerology / trend / fengshui / name)
|
|
84
|
+
|
|
85
|
+
九套轻量体系,输入都只要一到几个字段,结果走同一套面板与独立页(tab 由 8 个扩到 17 个),
|
|
86
|
+
速查结果用等宽文本卡渲染,不套命盘模板。**全部本地确定性计算**:同一天、同一输入永远同一结果。
|
|
87
|
+
|
|
88
|
+
- **黄历 `almanac`**:农历、四柱干支(年柱按立春、月柱按节)、建除十二神、宜忌简表、冲煞、财神/喜神方位、上一/下一节气、每日一卦。`scope` 明写未收录的神煞、二十八宿与彭祖百忌
|
|
89
|
+
- **择日 `zeri`**:13 类事项(嫁娶/订婚/开业/入宅/搬家/动土/装修/安葬/出行/祭祀/签约/求医/纳财)× 建除适配逐日打分,分「推荐 / 可用 / 回避」,当事人属相冲煞日直接排除且每条回避带理由;这是**排序引导**,不是吉凶断语
|
|
90
|
+
- **称骨 `chenggu`**:年/月/日/时四项骨重求和与分档批语(如 1990-08-15 巳时 = 五两六钱,上上);骨重表对拍公开黄历页,不采信其他插件的表
|
|
91
|
+
- **小六壬 `xiaoliuren`**:时间起课(农历月/日/时三掐)与报数起课(三个 1–99),六宫吉凶与白话断语;缺时辰会明确要求补,不默认某个时辰
|
|
92
|
+
- **星座 `star`**:太阳星座档案(四象、守护星、关键词、契合星座)+ 当日四维基调;基调由日期哈希确定性生成,明写「不是随机数」,纯娱乐向
|
|
93
|
+
- **生命数字 `numerology`**:生命路径数 / 生日数 / 态度数,11/22/33 主数保留;与八字口径不同,混问时会说明两套不可互相印证
|
|
94
|
+
- **人生 K 线 `trend`**:复用八字的旺衰、大运与流年十神,按固定计分表给出 1–100 岁逐年分、K 线形态、分大运 ASCII 走势与最佳/最差年份;旺衰正好落在换档阈值(±0.3)时只提示、不给顺位结论
|
|
95
|
+
- **风水 `fengshui`**:八宅命卦(1900s/2000s 男女公式、立春界)、大游年四吉四凶、流年九宫飞白、24 山门主灶布局倾向、命宅配调停文案;`scope` 明写**不含**玄空各运盘与现场勘舆
|
|
96
|
+
- **起名 `name`**:评估现有名字或按喜用五行生成候选名;241 字自建字库,未收录的字如实标「未收录」;**不做五格剖象**(需康熙字典笔画)与音韵判断
|
|
97
|
+
|
|
80
98
|
### 解析与详解(interpret)
|
|
81
99
|
每个体系的排盘结果下方都会跟一个「解析与详解」模块,帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 `withInterpret: true` 即可一并返回。
|
|
82
100
|
|
|
@@ -89,7 +107,9 @@ Chinese metaphysics for [DeepSeek Harness](https://github.com/deepseek-ai/deepse
|
|
|
89
107
|
- **追问**:工具参数 `ask`、面板与独立页的追问输入框——围绕**已算好的盘**回答「2027 年事业怎么样」「财运如何」这类问题;只取盘面已有字段(流年/大运/宫位/分节),不重排、不猜测;年份超出已排范围或没识别到方面时,明确说找不到并给出可问范围
|
|
90
108
|
- **八字 × 紫微 交叉验证**:工具参数 `cross`(或面板勾选)会用同一份出生信息再排另一套盘,对事业/财富/感情/身体/节奏五项并列对照,标注「同向 / 有张力 / 互补」;只作对照,不把两套体系折算成同一个分数
|
|
91
109
|
- **量化口径**:只量化引擎已有数据(十神权重、大运/流年档位、宫位与四化计数),**不换算金额、不给健康诊断**;报告里有「量化口径」分节写明这条边界
|
|
92
|
-
- **方法与验证**:独立页内置同页「方法与验证」(体系、128 条卦例对拍、
|
|
110
|
+
- **方法与验证**:独立页内置同页「方法与验证」(体系、128 条卦例对拍、57 个测试文件/1621 条断言、七道闸、口径与已知边界),离线可开
|
|
111
|
+
- **夏令时校正(0.18 新增)**:1986–1991 年中国夏令时期间的钟面时间在排盘前自动减 1 小时(跨日回退),八字/紫微/合盘/验前事/生时校正统一生效;出生证已是真实太阳口径时可用 `dst: false` 关闭
|
|
112
|
+
- **合婚明细层(0.18 新增)**:合盘新增属相六合/三合/六冲/相害/相刑、天干五合、双向十神、跨盘地支、年命纳音与吉凶象计数分档;只作明细,不改原总分
|
|
93
113
|
- **晚子时开关**:面板与独立页都能切「23:00 后算次日/当日」;奇门另可切「归当日/归次日」——这是排盘口径,不是结果重算
|
|
94
114
|
- **验前事**:八字报告下方列出过去 6 年流年信号,用户自评「准/不准/不确定」,算一个贴合度提示;只读、不改盘
|
|
95
115
|
- **生时校正**:输入过去 2–3 件大事(年份 + 类别),对候选时辰逐一排盘并按固定规则打分,返回候选排序——用于缩小时辰范围,不替代出生记录
|
|
@@ -150,9 +170,9 @@ dsh plugin install ./dsh-metaphysics-0.17.0.tgz
|
|
|
150
170
|
|
|
151
171
|
### 面板
|
|
152
172
|
|
|
153
|
-
重启后侧栏出现**太极图标**,点开是排盘面板:紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 /
|
|
173
|
+
重启后侧栏出现**太极图标**,点开是排盘面板:紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗八个排盘 tab,另有黄历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名九个速查 tab。奇门 tab 里「换局规则」可选拆补、超神接气、置闰;盘面下方用键值表列出局数、值符值使、空亡驿马等事实,与解读区的结论分开。
|
|
154
174
|
|
|
155
|
-
> 独立页(`命理排盘.html
|
|
175
|
+
> 独立页(`命理排盘.html`)同样是这十七个 tab:速查 tab 在左侧展开对应小表单(择日的起算日/事项/天数/属相、小六壬的时间或报数、风水的命卦或坐向、起名的评估或生成);合盘要填双方出生信息、可选八字/紫微两种合盘;奇门用「换局规则」单选组(拆补/超神接气/置闰)与「询问方向」定用神。两份文件是**各自生成**的:重新构建后要单独同步你在用的那份拷贝(见「开发」里的 `--out`)。
|
|
156
176
|
|
|
157
177
|
### 深色与导出
|
|
158
178
|
|
|
@@ -185,7 +205,7 @@ npm run build # 生成 client.js(浏览器端产物)
|
|
|
185
205
|
npm run build:html # 生成独立的 命理排盘.html(可离线双击使用),默认写到工作区根目录
|
|
186
206
|
# 想同时更新别处的拷贝(例如桌面那份):node tools/build-html.mjs --out "C:\Users\<你>\Desktop\命理排盘.html"
|
|
187
207
|
npm test # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
|
|
188
|
-
npm run test:ci # 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定(CI 跑的就是这条)
|
|
208
|
+
npm run test:ci # 构建 + 产物自检 + 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定(CI 跑的就是这条)
|
|
189
209
|
npm run test:baseline # 断言数确实要减少时,显式重建基线
|
|
190
210
|
npm run check:html # 单独跑 HTML 注入面扫描
|
|
191
211
|
npm run check:patterns # 单独跑工程约定检查
|
|
@@ -194,14 +214,14 @@ npm run release # 测试 → 构建 → 校验产物 → 发 npm(token
|
|
|
194
214
|
|
|
195
215
|
也可以直接调脚本:`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`。
|
|
196
216
|
|
|
197
|
-
|
|
217
|
+
**测试的七道闸**:
|
|
198
218
|
|
|
199
219
|
1. `test/_harness.mjs`——任何一条 `ok()` 失败都让进程非零退出(此前 9 个文件只打印不失败,全量"全绿"没有意义)
|
|
200
220
|
2. `test/assertion-baseline.json`——每个文件的 PASS 条数低于基线即失败,防止"删断言让测试变绿"
|
|
201
221
|
3. `tools/verify-tests-can-fail.mjs`——故意写错一条断言,必须真的变红,防止第 1 条被改回去
|
|
202
222
|
4. `tools/check-html-sinks.mjs`——`innerHTML` 里拼接的量必须经过白名单转义函数,否则 CI 直接红
|
|
203
223
|
5. `tools/check-patterns.mjs`——engine 不得引用浏览器/Node API 与 `console`,不得用 `var`/`debugger`,`new Date()` 与 `Math.random` 只允许出现在白名单文件
|
|
204
|
-
6. `test/fuzz.test.mjs
|
|
224
|
+
6. `test/fuzz.test.mjs`——固定种子的随机生日扫射八个排盘体系,覆盖边界日期、参数矩阵与"同参数必得同结果"
|
|
205
225
|
7. `tools/check-bundle.mjs`——产物必须在**宿主形态**下能编译能跑:读 `client.js` 原文逐模块编译、模拟 `__ModuleLoader__` 执行 factory、校验 IIFE 收口与不可见分隔符,并要求产物与源码重构建逐字节一致(2026-10-25 的启动崩溃就是 Node 侧全绿、Chromium 侧语法错,这道闸专门守这个缝)
|
|
206
226
|
|
|
207
227
|
`client.js` 是构建产物,不要手改;改动记录见 [CHANGELOG.md](CHANGELOG.md)。
|
|
@@ -241,6 +261,11 @@ NPM_CLI=/path/to/npm-cli.js NPM_TOKEN=... npm run release # 本机没有 npm C
|
|
|
241
261
|
*2026-10 做过一轮全量整改:199 个类名按语义分组补齐前缀(约 540 处替换),计算逻辑一行未动,20 组断言与全量视口扫描全绿。*
|
|
242
262
|
|
|
243
263
|
|
|
264
|
+
## 致谢
|
|
265
|
+
|
|
266
|
+
本插件的九套速查体系在**能力范围**上参考了同生态的 [dsh-xuanji(玄机阁)](https://github.com/huangziyuan-general/dsh-xuanji)(MIT):黄历、择日、称骨、小六壬、星座、生命数字、人生 K 线、风水、起名。
|
|
267
|
+
**实现是独立的**:没有拷贝对方源码,也没有引入它的依赖(iztro / lunar-javascript),全部按行为规格用本项目的 calendar / lunar / dst 模块重写,并逐项与公开通行表或 lunar-javascript 对拍(称骨表的初版错误就是这样查出来的)。特此致谢。
|
|
268
|
+
|
|
244
269
|
## License
|
|
245
270
|
|
|
246
271
|
MIT
|