- Home
- Plugin
- Miglioramenti UI
- dsh-metaphysics
dsh-metaphysics
xuanfu-web/dsh-metaphysics
Divination panel and agent tool: BaZi with 42 shensha plus pattern, useful-god and luck scoring; Zi Wei Dou Shu with star brightness, 34 patterns, decade and annual/monthly/daily/hourly mutagen; LiuYao, MeiHua, Da Liu Ren and Tarot, plus ask-driven interpretation; charts are computed locally, with an optional Nominatim lookup for place names.
Installazione
dsh plugin --profile web add github:xuanfu-web/dsh-metaphysicsREADME
dsh-metaphysics · 命理排盘
Chinese metaphysics for DeepSeek Harness: BaZi (Four Pillars), Zi Wei Dou Shu, LiuYao, MeiHua YiShu, Da Liu Ren, Qi Men Dun Jia, relationship compatibility and Tarot.
给 DeepSeek Harness 用的命理插件:四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、奇门遁甲、合盘、塔罗牌,同时提供 Agent 工具与 Web 面板。
传统命理与占卜属文化娱乐用途,不构成医疗、投资、法律或生死判断的依据。
插件市场备注
命理排盘 · 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗 —— 一个插件把八套体系装进 Harness:对话里说一句就排盘,侧栏还有可视化面板。
- 八字:42 颗神煞(分吉凶七类,天干星双查年干与日干、三合星双查年支与日支,悬停看查法)、日主旺衰量化并给出依据、格局与用神(月令取格 + 化气/专旺/从格 + 十神组合,每条附判定依据)、大运流年按喜忌五行与十神打分(大吉/吉/平/忌/大忌,可看逐项理由)
- 紫微:十四主星与 49 星曜(主星带庙旺得利平不陷亮度标注)、四层十二神、生年四化与宫干自化、34 条格局(标吉/忌倾向与依据)、大限一览、流年四化落宫;本命/大限/流年三视图一键切换,命宫红框、三方四正浅底标出;竖屏与窄侧栏保持 4×4 宫盘(宫位相对位置不丢)
- 六爻:摇卦或手动爻值、纳甲、六亲、六神、世应;本卦/变卦并列、真爻线渲染(阳爻整条、阴爻断开、动爻描红)
- 梅花:时间/数字起卦、体用生克分档、互变错综四卦齐出,本卦上下卦分块标体用
- 大六壬:天地盘 4×4 方盘(天盘大字、地盘小字、天将右下)、四课、九宗门三传、格局(贼克/元首/重审/伏吟/返吟/八专等)
- 奇门遁甲:时家转盘,拆补 / 超神接气 / 置闰三流派取局;九宫、值符值使、空亡驿马、门迫与宫制门严格区分
- 合盘:八字或紫微双盘对照(日主、夫妻宫、五行互补 / 互落宫、四化引动)
- 塔罗:78 张全牌、1/3/5 张牌阵,逐牌牌位义 + 整体解读,体系与逆位口径写明
- 全部本地计算,不收集数据;结果供文化娱乐参考,不作医疗、投资、法律或生死判断
报告化与可核验(0.16 / 0.17 新增)
- 一页读懂 + 三张表:整体/事业/财富/感情/节奏五条摘要;大运表、流年表、触发事件表(紫微是大限/流年/触发)
- 证据卡 + 置信度:每条维度结论可展开到逐条盘面事实与所用技法,置信度按证据条数分强/中/弱
- 追问:工具参数
ask,围绕已算好的盘回答「2027 年事业怎么样」这类问题;不重排、不猜测,找不到会明说 - 八字 × 紫微 交叉验证:工具参数
cross,五项并列对照,标注同向 / 有张力 / 互补 - 晚子时开关:23:00 后算次日还是当日,面板与独立页都能切;奇门另有「归当日 / 归次日」
- 验前事:列出过去几年流年信号,自评准/不准/不确定后算贴合度;只读,不改盘
- 生时校正:给定过去 2–3 件大事,对候选时辰逐一排盘打分排序;只缩小范围,不替代出生记录
- 导出:
.md(盘面 + 解析)与 PNG 摘要长图(Canvas 直出,零依赖);独立页支持打印/存 PDF - 方法与验证页:独立页内置静态页,写明对拍数据、测试与闸门、口径与已知边界
功能
四柱八字(bazi)
- 四柱、藏干、十神、纳音、空亡(逐柱)
- 十二长生:地势(日干对各支)、自坐(各柱干对本支)
- 神煞(42 星,7 类):贵人(天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医)、文星(文昌、德秀)、婚姻(桃花、红鸾、天喜、孤辰、寡宿、金舆)、性情(华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵)、事业(禄神、将星、驿马)、凶煞(劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网)、格局(天赦日、金神、三奇贵人)。天干类双查年干与日干,三合类双查年支与日支;每颗星附查法依据,界面悬停可见
- 日主旺衰:月令权重 + 通根 + 天干帮扶,量化分档,并给出依据(季节权重、通根地支、帮扶/耗泄明细)
- 格局与用神:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神取扶抑为主 + 简化调候提示,并列出喜忌十神
- 行运吉凶:大运、流年按喜忌五行与十神加权评分,分大吉/吉/平/忌/大忌五档,悬停可看逐项理由
- 干支关系:五合、相冲、相克;六合、三合半合、三会半会拱会、冲、害、破、刑
- 大运、流年(含与原局地支的关系)、真太阳时(按出生地经度修正)
- 四柱表版式:按专业排盘习惯——年/月/日/时四柱并排固定成四列,左侧一列窄行名,列间不画竖线、只用极淡横线分行;天干地支作大字并随五行着色,日柱表头单独标红;藏干按「干·五行」逐行列出,十神按比劫/食伤/财/官杀/印五类分组着色;末行给五行旺相休囚死(以月令当令五行为基准,依次推出 旺/相/休/囚/死 五态)
紫微斗数(ziwei)
- 农历(定朔 + 冬至置闰)、命宫、身宫、五行局
- 紫微/天府、十四主星、六吉六煞、禄存天马、49 颗星曜
- 十四主星庙旺得利平不陷:按《紫微斗数全书》系通行表标注(各家在太阳/太阴少数宫位有出入,只标主星、不硬标辅星),庙旺标绿、得利平标灰、不陷标红
- 四层十二神:长生、博士、将前、岁前
- 生年四化、宫干自化、大限、小限、流年(命宫、三方四正、流禄流羊流陀)、斗君
- 格局识别(34 条,附判定依据与吉/忌倾向):紫府同宫、紫府朝垣、君臣庆会、极向离明、七杀朝斗、英星入庙、石中隐玉、巨日同宫、日月夹命、日月对照、左右/昌曲/魁钺夹命、三奇嘉会、双禄朝垣、机月同梁、府相朝垣、禄马交驰、月朗天门、日出扶桑、武贪同行、火贪铃贪;忌格:火铃夹命、羊陀夹命、羊陀夹忌、铃昌陀武、命里逢空、马头带箭、天罗地网、刑囚夹印、泛水桃花
- 大限一览:十二限排序列出宫位、年龄区间、宫干四化落宫、三方主星;流年四化:逐年给出四化星落宫与命宫三方主星
- 流月 / 流日 / 流时:由流年斗君逐级下推——斗君起正月顺行至该农历月,流月命宫起初一顺行至该农历日,流日命宫起子时顺行至该时辰;每层给落宫、宫干四化落宫与三方四正。基准时刻默认取本机当前时刻(可用
asOf指定以便复现) - 宫位点击展开详情:点任一宫摊开该宫完整星曜(含亮度、四化)、宫干四化、四层十二神、大限/小限,并把三方四正(三合两宫 + 对宫)一起列出、在盘上同步描边;空宫标注「借对宫 XX」;再点一次收起
- 昌曲专论:与丑未的关系、是否入命三方、吸收面清杂
六爻(liuyao)
- 摇卦或手动爻值、本卦/变卦、纳甲、六亲、六神、世应
- 面板:本卦与变卦并列对照,真爻线渲染(阳整、阴断、动描红),世应与动爻一目了然
- 只需起卦时刻(取日辰定六神、月建定旺衰),与出生时间无关
梅花易数(meihua)
- 时间起卦(年月日时数)或数字起卦(两数取余、可手动指定动爻)
- 本卦 / 互卦 / 变卦 / 错卦 / 综卦五盘齐出;本卦上下卦分块并标「体」「用」
- 体用生克按五行判吉凶:用生体大吉、比和吉、体克用吉、体生用耗、用克体凶
大六壬(daliuren)
- 月将加时起天地盘(4×4 方盘:天盘大字、地盘小字、天将右下)
- 四课(干上/支上递推,标注生克与天将)、九宗门发三传(贼克·元首·重审·比用·涉害·遥克·昴星·别责·八专·伏吟·返吟)
- 昼夜贵人(以天盘临方定顺逆)、旬空标注、格局名与断语
塔罗(tarot)
- 78 张全牌、正逆位、1/3/5 张牌阵(面板可直接选牌阵,换张数自动重抽)
- 每张牌给编号、牌阶级、核心义与牌阵位义;解读 6–8 段(逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议)
- 明确标注体系:RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断
解析与详解(interpret)
每个体系的排盘结果下方都会跟一个「解析与详解」模块,帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 withInterpret: true 即可一并返回。
- 结构化输出:
{ moduleType, system, title, lead, dimensions[], sections[], disclaimer };moduleType为natal(命盘)/divination(卦象)/card(牌阵),dimensions固定五个维度 - 五个维度:整体运势、工作与职业选择、事业发展、爱情与感情、健康状况——每项给「解读 + 行动建议」
- 依据可核对:每个维度都附一行「依据」,列出这条结论引用的事实——命盘类(八字/紫微)给日主旺衰、月令、喜忌、大运流年、宫位主星与煞星;卦象类(六爻/梅花/六壬)给本卦互卦变卦、世应、动爻、三传四课与神将;塔罗给牌阵、主轴、正逆位与元素分布。面板与文本两条输出路径都会显示
- 报告化阅读:解析区顶部有「一页读懂」(整体/事业/财富/感情/节奏五条摘要)、目录锚点,以及三张表——八字是「大运表 / 流年表 / 触发事件表」,紫微是「大限表 / 流年表 / 触发事件表」。表格只把已有字段摊平,不新增判断;打印时表格不撕页、目录自动隐藏
- 证据卡与置信度:每个维度的依据收进可展开的
<details>,点开可见逐条盘面事实与所用技法;维度旁标注「置信度 强/中/弱」(按证据条数分档,不引新算法)。文本输出同样带「置信度:…」 - 看示例:面板与独立页都有「看示例」按钮,用固定的示例盘(1990-05-12 14:30 男 石家庄)走与真实排盘相同的渲染路径
- 追问:工具参数
ask、面板与独立页的追问输入框——围绕已算好的盘回答「2027 年事业怎么样」「财运如何」这类问题;只取盘面已有字段(流年/大运/宫位/分节),不重排、不猜测;年份超出已排范围或没识别到方面时,明确说找不到并给出可问范围 - 八字 × 紫微 交叉验证:工具参数
cross(或面板勾选)会用同一份出生信息再排另一套盘,对事业/财富/感情/身体/节奏五项并列对照,标注「同向 / 有张力 / 互补」;只作对照,不把两套体系折算成同一个分数 - 量化口径:只量化引擎已有数据(十神权重、大运/流年档位、宫位与四化计数),不换算金额、不给健康诊断;报告里有「量化口径」分节写明这条边界
- 方法与验证:独立页内置同页「方法与验证」(体系、128 条卦例对拍、53 个测试文件/1362 条断言、五道闸、口径与已知边界),离线可开
- 晚子时开关:面板与独立页都能切「23:00 后算次日/当日」;奇门另可切「归当日/归次日」——这是排盘口径,不是结果重算
- 验前事:八字报告下方列出过去 6 年流年信号,用户自评「准/不准/不确定」,算一个贴合度提示;只读、不改盘
- 生时校正:输入过去 2–3 件大事(年份 + 类别),对候选时辰逐一排盘并按固定规则打分,返回候选排序——用于缩小时辰范围,不替代出生记录
- 导出:面板与独立页都能「导出 .md」(盘面 + 一页读懂 + 三张表 + 交叉验证 + 追问);独立页另有打印/存 PDF
- 推导可复核:八字/紫微另有「看盘顺序」「时间窗」「交叉校验」「未纳入」四段——先看什么后看什么、未来几步大运与近五年流年、喜忌分量与运年是否同向、以及这套算法没有计算什么;六爻/六壬对应给「看卦/看课顺序」与「未纳入」。这些都从盘面数据推出,不新增断语
- 卦象(六爻/梅花/大六壬)额外给:卦名与卦辞大意、爻辞与动爻、体用关系、互卦与变卦、落到生活里
- 塔罗额外给:整盘连贯解读(把几张牌串成一条线,避免各张互相矛盾)与牌面结构(大阿卡纳占比、元素分布、正逆位)
- 文案口径:第二人称、温和、只给倾向与建议,不作绝对判断;底部保留理性参考的免责提示
- 解读区可折叠:内容较长(五维度 + 体系模块),点标题栏或箭头即可展开/收起;宽屏默认展开、窄屏默认收起,手动切过之后按你的选择来
所问之事与询问方向(六爻 / 梅花 / 大六壬 / 塔罗)
问事的体系要先说清问什么,解读才有落点:
- 所问之事:必填,支持多行,占位示例「用一句话描述所问之事,例如:今年是否适合换工作?」;不填就起卦会给提示,不会给一份没有落点的解读
- 询问方向:下拉选择——综合(默认)、财运、事业、感情、健康、学业、出行。选项表
DIRECTIONS由engine/interpret.js导出,界面与解析层共用一份,不两处维护 - 联动方式:
interpret(result, { question, direction })。所选方向对应的维度会被提到最前并标注「最贴近你的问题」,正文点明你所问的事,引语也会回显;解读开头固定一行「问题:xxx | 询问方向:xxx」供你确认 - 不重摇卦:改问题或方向只重出解读,卦象本身不动
- 命盘类(八字 / 紫微)不问事,不显示这两项,也不会出现回显行
安装
从 npm
dsh plugin install dsh-metaphysics
或在 Harness 的「插件」面板里搜索 dsh-metaphysics。
从本地目录
dsh plugin install /path/to/dsh-metaphysics
从 tgz
dsh plugin install ./dsh-metaphysics-0.17.0.tgz
使用
对话里
直接说:
- 「排个八字:1990-05-12 14:30,女,河北石家庄」
- 「排紫微盘:1996-01-19 07:40,男,新疆喀什」
- 「帮我起一卦,问这个项目能不能成」
- 「梅花易数,报两个数 17 和 29」
- 「起个六壬课,问这周谈判顺利吗」
- 「抽三张塔罗,问这份工作要不要接」
模型会调用 metaphysics_chart 工具,参数 system 取 bazi / ziwei / liuyao / meihua / daliuren / tarot。
注意:八字与紫微要出生时间;六爻、梅花、六壬只要起卦时刻(通常就是当下),与出生时间无关。
面板
重启后侧栏出现太极图标,点开是排盘面板:紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗八个 tab。奇门 tab 里「换局规则」可选拆补、超神接气、置闰;盘面下方用键值表列出局数、值符值使、空亡驿马等事实,与解读区的结论分开。
独立页(
命理排盘.html)同样是这八个 tab:合盘要填双方出生信息、可选八字/紫微两种合盘;奇门用「换局规则」单选组(拆补/超神接气/置闰)与「询问方向」定用神。两份文件是各自生成的:重新构建后要单独同步你在用的那份拷贝(见「开发」里的--out)。
深色与导出
- 深色主题:跟随系统(
prefers-color-scheme),盘面与页面同时切换,只换一套 CSS 变量,元素规则一行不改 - 打印永远是浅色:深色主题下直接打印会得到一整页耗墨的深底 PDF,所以深色规则用
@media screen限定 - 存为 PDF / 打印:结果下方有按钮,走浏览器原生打印(不引第三方库);A4 纵向、隐藏输入区与按钮、盘面与解读不被撕页、四化色块保留颜色。折叠着的「解析与详解」在打印时会自动展开,不会只印出一个标题栏
精度与口径
- 节气:VSOP87B 截断级数(105 项)+ 岁差 + 章动 + 光行差;与日本国立天文台《暦要項》对拍,2024/2025 共 48 个节气最大偏差 0.6 分钟;出生时刻距「节」不足 20 分钟时会提示复核。**1929-01-01 之前按北京地方平时(UTC+7.7611)**推算,之后按东八区——与农历共用同一套换算,避免 14 分钟错位
- 农历:定朔(Meeus 第 49 章,误差约 1 分钟)+ 冬至所在月为十一月 + 无中气置闰
- 真太阳时:经度差 + 均时差;内置 34 个省会 + 200 个地级市坐标(±0.2°),地址更细时可开「联网精确到区县」(Nominatim)。单盘与合盘用的是同一套修正(合盘双方各按自己出生地算)。只按经度修正,未含历史时区与夏令时:海外出生请先把当地钟表时间换算成东八区标准时再输入;没给经度时摘要首行会出 ⚠
- 晚子时:八字/大六壬默认 23:00 后换日,奇门默认归当日;
lateZi与lateZiHourMode是同一个开关的两个名字。各体系摘要都会写明本次采用的口径,不改默认值、不偷偷改盘 - 可复现:塔罗/六爻给
seed即得同一次抽牌/摇卦;紫微流月流日流时、塔罗的抽牌时刻、八字的流年基准年都可传asOf钉死 - 紫微四化:中州派常用表(庚干作太阳禄、武曲权、太阴科、天同忌)
- 日主旺衰:量化算法,非唯一流派
- 入参:日期按月份天数与闰年校验(
1990-02-30直接报错,不滚到下个月);八字/紫微/合盘的性别必填(性别决定大运大限顺逆,不做默认);六爻爻值必须正好 6 个,留空才随机摇卦。非法入参带错误码返回(E_INPUT/E_LINES/E_COUNT/E_ASOF/E_PARTNER),不静默改成另一个盘 - 对拍:历法对 NAOJ 历要项与 ICU 抽样的农历;流派规则对典籍通例——六爻八宫卦序与世应(京房)、六壬日干寄宫与中气换将(《大六壬指南》)、紫微纳音定五行局与紫微天府相照(《紫微斗数全书》);另有《增删卜易》9 条与《卜筮正宗》128 条原文卦例(93 条本卦→变卦 + 35 条静卦)。期望值在
test/fixtures/classics.json,出处见其meta.sources,卦例原始数据与排除理由在tools/data-boshizhengzong.mjs。卦例只取原文能稳定读出的字段:卦名、卦宫、缺爻(伏神)、动爻个数(与原文 x/○ 标记数核对过)、有日期的旬空;动爻在哪一爻不录——卦象表在 PDF/DOCX 里串行,硬解析等于造数据
数据与隐私
- 全部计算在本地完成
- 默认不联网:地址只查内置坐标表(最细到地级市,足够真太阳时)。只有把
geocode设为online(面板上勾「联网精确到区县」)才会把出生地原文发给 OpenStreetMap Nominatim,用于精确到区县/路名;失败即回退内置表,同一地址 6 小时内不重复请求 - 不收集、不上传任何其他数据
开发
npm run build # 生成 client.js(浏览器端产物)
npm run build:html # 生成独立的 命理排盘.html(可离线双击使用),默认写到工作区根目录
# 想同时更新别处的拷贝(例如桌面那份):node tools/build-html.mjs --out "C:\Users\<你>\Desktop\命理排盘.html"
npm test # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
npm run test:ci # 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定(CI 跑的就是这条)
npm run test:baseline # 断言数确实要减少时,显式重建基线
npm run check:html # 单独跑 HTML 注入面扫描
npm run check:patterns # 单独跑工程约定检查
npm run release # 测试 → 构建 → 校验产物 → 发 npm(token 从 NPM_TOKEN 读)
也可以直接调脚本:node tools/build-client.mjs、node tools/build-html.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。
测试的四道闸 + 一道稳定性扫射:
test/_harness.mjs——任何一条ok()失败都让进程非零退出(此前 9 个文件只打印不失败,全量"全绿"没有意义)test/assertion-baseline.json——每个文件的 PASS 条数低于基线即失败,防止"删断言让测试变绿"tools/verify-tests-can-fail.mjs——故意写错一条断言,必须真的变红,防止第 1 条被改回去tools/check-html-sinks.mjs——innerHTML里拼接的量必须经过白名单转义函数,否则 CI 直接红tools/check-patterns.mjs——engine 不得引用浏览器/Node API 与console,不得用var/debugger,new Date()与Math.random只允许出现在白名单文件test/fuzz.test.mjs——固定种子的随机生日扫射八个体系,覆盖边界日期、参数矩阵与"同参数必得同结果"
client.js 是构建产物,不要手改;改动记录见 CHANGELOG.md。
发版
# 先在 npm 生成 Granular Token:Read and write + 勾 Bypass 2FA
NPM_TOKEN=npm_xxx npm run release # 正式发布(会先跑测试与构建校验)
NPM_TOKEN=npm_xxx npm run release -- --dry-run # 只校验不发布
NPM_CLI=/path/to/npm-cli.js NPM_TOKEN=... npm run release # 本机没有 npm CLI 时
脚本会拦下:工作区不干净、client.js 未随源码重建、registry 上已有同版本;发布后自动核对新版本与 dist-tags,并提示补 git tag。
样式命名约定
面板的 CSS 是以 <style> 注入到宿主页面的,没有 shadow DOM 隔离,所以每个类名都带命名空间前缀,避免和宿主页面的同名元素互相染色:
| 前缀 | 归属 |
|---|---|
pp- | 紫微盘骨架(宫格、宫位选中、三方四正、身宫) |
bz- | 四柱八字表(干支大字、藏干、十神、五行旺衰) |
dt- | 宫位详情面板 |
flow- | 流月 / 流日 / 流时 |
ct- / ft- | 盘心 / 盘脚 |
mp- | 各模块根容器:mp-it(解析)、mp-dl(六壬)、mp-hy(六爻)、mp-mh(梅花)、mp-tt(塔罗)、mp-hex(爻线)、mp-trib(体用) |
hb- / tritag- | 卦盒 / 体用标签 |
dl- / ss- / ssx- / ssg- | 六壬盘块 / 神煞族 |
ask- | 所问之事回显 |
两条硬规矩:
- 不用泛词做类名(
.body、.big、.s、.p、.on、.it这类)。名字越泛,越容易在同一个文件里被两处语义共用——本项目已经栽过两次:.pp-body同时是「整块视图容器」和「身宫格」,一次导致身宫整格消失,另一次的::after残骸在页面左上角飘出一个孤立的「身」方块。 - 模块根类名必须带前缀。裸用的
.it/.dl/.hy一旦注入全局,宿主页面的同名元素会被一起改写。
2026-10 做过一轮全量整改:199 个类名按语义分组补齐前缀(约 540 处替换),计算逻辑一行未动,20 组断言与全量视口扫描全绿。
License
MIT
Plugin correlati
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui
dsh-web-ui (dsh-web-ui-all)
zhu1090093659/dsh-web-ui