# dsh-metaphysics 中文文档

规范地址：https://npmcn.com/package/dsh-metaphysics/

版本：0\.61\.1
npm 元数据更新时间：2026-11-03T11:40:59.912Z
中文译文更新时间：2026-11-03T15:25:41.554Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/dsh-metaphysics
原文对照：https://npmcn.com/package/dsh-metaphysics/?lang=original
项目主页：https://github.com/xuanfu-web/dsh-metaphysics#readme
源码仓库：https://github.com/xuanfu-web/dsh-metaphysics

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.3 MB，100 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-10-22T16:24:48.050Z
- 最新版本发布：2026-11-03T11:40:59.768Z
- 已发布版本数：33（近 12 个月 33 个）

## 中文简介

DeepSeek Harness: 19个系统和11个快速参考（历书，日月转换，…），具有气候调节（tiaohou）， 120个简通宝鉴条目，1062个字符的人名库，每字拼音，康希笔划

## 安装

```sh
npm install dsh-metaphysics
```

也可以使用：`pnpm add dsh-metaphysics`、`yarn add dsh-metaphysics`、`bun add dsh-metaphysics`

## README

# dsh-metaphysics · 命理排盘

[![公开对拍：0 处不符](https://npmcn.com/package/dsh-metaphysics/docs/assets/verification-badge.svg)](https://npmcn.com/package/dsh-metaphysics/docs/verification.html)

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.

给 DeepSeek Harness 用的**玄学命理**插件：**四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、奇门遁甲、合盘、塔罗牌**八大排盘体系，外加**黄历、农历（公农历互转）、择日、称骨、小六壬、星座、生命数字、人生K线、风水、起名、十六型人格**十一套速查，同时提供 Agent 工具与 Web 面板。

> 传统命理与占卜属文化娱乐用途，不构成医疗、投资、法律或生死判断的依据。

## 插件市场备注

**命理排盘（玄学）· 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗 + 黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格** —— 一个插件把十九套体系装进 Harness：对话里说一句就排盘，侧栏还有可视化面板。

-   **八字**：42 颗神煞（分吉凶七类，天干星双查年干与日干、三合星双查年支与日支，悬停看查法）、日主旺衰量化并给出依据、格局与用神（月令取格 + 化气/专旺/从格 + 十神组合，每条附判定依据；专旺再分**成格/待定/破格**，从格再分**真从/假从**并记微根与虚透）、**四宫**（胎元＝月干进一、月支进三；胎息＝日干五合、日支六合；命宫/身宫按生月与生时两支合数定宫，与 Tyme 1.5.4 / 紫微派同口径，已用 704 组日期逐组对齐）、**通关结构**（用神与克它的忌神两行各 ≥1.5 分时，指出五行里唯一能接上的那一行并分「可通/关弱/为忌/未通」四档，不折吉凶）、大运流年按喜忌五行与十神打分（大吉/吉/平/忌/大忌，可看逐项理由），大运另有**交运时刻**（日/时辰级，三日折一年放大）与每步起止日期
-   **紫微**：十四主星与 49 星曜（主星带**庙旺得利平不陷**亮度标注）、四层十二神、生年四化与宫干自化、**四化飞星串连**（宫干化星 → 星定落宫 → 顺同一支化逐宫追到成环）、**三方四正复合飞化**（四宫 16 条按落宫归堆，标双忌会/禄忌同宫/三化会/自化）、34 条格局（标吉/中性/忌倾向与依据，每条都有独立的成立条件复算）、大限一览、流年四化落宫；**闰月口径**默认按日切分（1–15 归本月、16 起归次月，主流排盘口径），可切 `leapMonth: next/prev`；本命/大限/流年三视图一键切换，命宫红框、三方四正浅底标出；竖屏与窄侧栏保持 4×4 宫盘（宫位相对位置不丢）
-   **六爻**：摇卦或手动爻值、纳甲、六亲、六神、世应；本卦/变卦并列、真爻线渲染（阳爻整条、阴爻断开、动爻描红）；卦体关系（六冲/六合/伏吟/反吟/化进神/化退神）按纳甲地支推导并标注；**用神落位与卦体联动**（七档取六亲、不上卦取伏神并标飞伏生克、用神与卦体/动变/旬空串起来看）、**用神旺衰**（月建五态 + 日辰五关系，月破/暗动/冲空分开标）、**伏神出伏条件**（飞伏生克 + 月建日辰归四档，只判条件不出应期）、**全卦逐爻旺衰**（六爻全给五态与五关系，附分布、世应与最旺最弱爻）、**化进/化退力重**（按月建五态落档：得令/失令/月破，只给档位不折分数）、**经文原文**（动爻取该爻爻辞、六爻皆变且为乾坤补用九/用六、静卦只给卦辞）
-   **梅花**：时间/数字起卦、体用生克分档、互变错综四卦齐出，本卦上下卦分块标体用；经文原文与六爻同一张表，另列互卦卦辞
-   **大六壬**：天地盘 4×4 方盘（天盘大字、地盘小字、天将右下）、四课、九宗门三传、格局（贼克/元首/重审/伏吟/返吟/八专等）
-   **奇门遁甲**：时家转盘，拆补 / 超神接气 / 置闰三流派取局；九宫、值符值使、空亡驿马、门迫与宫制门严格区分；六仪击刑（按地支相刑定宫）与三奇入墓（按五行墓库定宫）逐宫标出；八门、九星与天盘干按月令分旺相休囚死；天盘干与所落宫另论干宫生克（干克宫/宫克干/干生宫/宫生干/比和）
-   **合盘**：八字或紫微双盘对照（日主、夫妻宫、五行互补 / 互落宫、四化引动）；可再加第三人做**三方合盘**——你×对方、你×第三方、对方×第三方三对并列，指出最顺/最需磨合的一对与分歧最大的一维，不合成「三人总分」
-   **塔罗**：78 张全牌、1/3/5 张牌阵，逐牌牌位义 + 整体解读；逐张库带英文名、牌面图像、核心义与占星对应（RWS 底本、三源互核），宫廷牌与首牌「不给什么」也写明
-   **速查十件**：黄历（四柱/建除/宜忌/冲煞/节气 + 值日十二神/时辰吉凶/二十八宿/胎神/吉神方位/纳音/六合三合）、农历（公农历互转）、择日（27 类事项、按五组归类、冲属相排除）、称骨（骨重 + 称骨歌原文 + 释义）、 小六壬（时间/报数起课）、星座（档案 + 当日基调）、生命数字（生命路径/生日/态度数）、人生 K 线（逐年分与形态）、 风水（八宅命卦/大游年/流年紫白/门主灶/玄空下卦与替卦/年月日时紫白）、起名（1062 字库 + 998 姓 / 82 复姓的姓氏库、逐字判定、五格三才与音韵检查）——口径与边界各自写明
-   全部本地计算，不收集数据；结果供文化娱乐参考，不作医疗、投资、法律或生死判断

### 报告化与可核验（0.16 / 0.17 / 0.18 / 0.20 新增）

-   **一页读懂 + 三张表**：整体/事业/财富/感情/节奏五条摘要；大运表、流年表、触发事件表（紫微是大限/流年/触发）
-   **证据卡 + 置信度**：每条维度结论可展开到逐条盘面事实与所用技法，置信度按证据条数分强/中/弱
-   **追问**：工具参数 `ask`，围绕已算好的盘回答「2027 年事业怎么样」这类问题；不重排、不猜测，找不到会明说
-   **排盘句柄**：每次结果带 `handle`（形如 `mc1.…`），下一次只传 `{ handle, asOf, direction, question }` 这类增量就能追问同一张盘，或传 `{ handle, system: 'ziwei' }` 看同一时刻另一套盘，不必重报出生时间与出生地。句柄把参数编码进去（不依赖进程内存），键序固定、带校验位，截断或改字报 `E_HANDLE`；`trace` / `shadow` / `withInterpret` 这类输出开关不进句柄。它是编码不是加密——含出生时间与出生地，别公开贴出。随机抽牌只复现参数、不复现牌面，要复现须带 `seed`
-   **一句话改参**：工具参数 `revise`（可配合 `handle`）接住「换成紫微看 2030 年事业」「女命」「晚子时算次日」「出生在成都」「不用真太阳时」「详细解读一下」这类原话，引擎翻成参数补丁再排盘，并在结果 `revision` 里回报改了哪些、没认哪些。只认明确句式——换体系要有切换词，单提一句「紫微里怎么说」不换盘；出生年份与时辰一句话给不出分秒，不猜，改为提示直传 `datetime`。识别不到时盘面一字不动。摘要给「【改参】原话 + 旧 → 新 + 未处理」，面板与独立页给改参卡
-   **八字 × 紫微 交叉验证**：工具参数 `cross`，五项并列对照，标注同向 / 有张力 / 互补
-   **晚子时开关**：23:00 后算次日还是当日，面板与独立页都能切；奇门另有「归当日 / 归次日」
-   **口径对照**：同一个盘只换一个开关——八字晚子时 / 真太阳时；紫微闰月、真太阳时与十一类流派开关（共 13 组）；奇门取局 / 晚子时归日。结果下方折叠列出「根因字段 旧值 → 新值」、几项关键结论的两列并排（日柱 / 旺衰 / 格局 / 喜用 / 起运等，只列变化项）与连带变化数；面板、独立页与工具参数 `diff: true` 共用同一份开关表。只列差异，不判哪套更准，不改盘面
-   **影子盘 ID**：工具参数 `shadow: true`（面板与独立页默认开启）为结果生成 `LY-XXXXXXX` 短 ID。同一组归一化参数——键序无关、默认值等价、地址与等值经度等价——在任何机器上得到同一 ID；`baseId` 不含版本，`id` 含版本。面板可一键复制，同一 `baseId` 重排时自动与本地上一张盘比对，版本升级或字段变化会展开列出根因（如「时柱 甲子 → 壬辰」）。塔罗 / 六爻未给 `seed` 时把实际牌面 / 六爻值算进 ID，不把两次不同的抽牌误认成同一张盘
-   **推导链**：工具参数 `trace: true`（面板与独立页对六爻 / 八字 / 紫微 / 奇门 / 大六壬默认开启）返回每一层的 `{field, rule, inputs, result, source}`——六爻是纳甲 → 六亲 → 世应 → 伏神 → 旺衰，八字是旺衰分值与格局取用，紫微是格局命中条件，奇门是盘面事实 → 用神落宫 → 门/星/干旺衰 → 宫位生克，大六壬是天地盘 → 四课 → 三传。只读盘面，不重算、不改盘；面板用右侧抽屉逐层展开规则、结构化输入、结果与出处。**每层出处分两类**（A1+）：能对上已录入篇名的写「《书》卷·篇；实现：engine/…」，例如六爻伏神引《增删卜易》卷二·飛伏神章第二十八、六爻旺衰引卷一月將章与日辰章、八字格局引《子平真诠》八、论用神（调候参《穷通宝鉴》五行总论）、奇门引《奇门遁甲统宗》卷一/卷二/卷三/卷十一·玄机赋（中）、紫微引《紫微斗数全书》卷三；对不上的明写「规则表 / 非古籍定数 / 未录入古籍章页」——八字旺衰是本仓量化规则，奇门用神与十干克应、六爻纳甲与世应是本仓规则表，大六壬没有可稳定核验的公有领域章页，三层都只标「通行口诀，未标卷次」。书名只出已登记的五本，测试会拦下表外的书名。六爻的询问方向参与起卦计算，改方向时只重算用神 / 旺衰 / 伏神三层，不重摇一卦；奇门改方向同样只重算用神落宫层，不重新起局。开 `trace` 时结果同时带 `traceText`——同一份层的 Markdown，可直接贴进对话或文档；面板抽屉里也可一键复制
-   **验前事**：列出过去几年流年信号，自评准/不准/不确定后算贴合度；只读，不改盘
-   **生时校正**：给定过去 2–3 件大事，对候选时辰逐一排盘打分排序；只缩小范围，不替代出生记录
-   **导出**：`.md`（盘面 + 解析）与 PNG 摘要长图（Canvas 直出，零依赖）；独立页支持打印/存 PDF
-   **调候解释**：解释层新增「寒暖燥湿」一节，文本摘要加「寒暖：」一行
-   **古籍原文**：《子平真诠》论用神/正官/财/印/食神/偏官/伤官/阳刃/建禄月劫/用神配气候/用神成败救应/用神变化/杂气如何取用 13 章 + 《滴天髓》通神论寒暖/燥湿/衰旺/中和/官杀/伤官/月令/体用/精神/通关 10 条 + 《三命通会》卷五、卷六论正官/正财/偏财/印绶/食神/伤官/阳刃/建禄 8 条与卷五官煞去留杂论 1 条，另有专旺五格（曲直/炎上/从革/润下/稼穑）与弃命从煞/从财 7 篇，按格局与气候匹配后附在结果里（原句照录、白话释义、出处章号）。同一个格，子平真诠在前讲「怎么用」，三命通会紧随作对照讲「怎么取、怕什么」，两条并列、不合并成一句断语；正财与偏财在三命通会里分章，两格各取本格一条，七杀没有单列「论偏官」，取卷五「官煞去留杂论」讲混杂时的去留。命中的专旺格与从财/从杀格先取单章原文（从儿、从强三书无专章，不硬凑）。另有《三命通会》卷二「总论岁运」一条，只在盘面出现岁运并临/反吟/伏吟时随「岁运提示」给出——它不占 5 条上限；原文的「返吟/伏吟」按「岁运与日柱相对 / 岁运压日」说，与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义，两者并列、不合并。另录《三命通会》卷二「论人元司事」一条，随「人元司权」一节给出，同样不占 5 条上限；该本日数（寅月 5/5/20、卯月 7/23）与本插件通行 30 日表不同，原文并列、不改取格。用神总纲位按盘四选一：有化气格取「用神变化」，辰戌丑未四墓月取「杂气如何取用」，见组合取「用神成败救应」，其余取「论用神」总纲——不另加位次，整节仍以 5 条为限；通关结构成立且关可通时，另以「通关」条占去泛论气候的那一位，寒暖/燥湿的具体条目照留。杂气月取格按「透干 → 三合会支 → 本气」的次序：会支只认三合、不认三会方，兼透时只取最先透出的那一干，依据里写明走的是哪一条——原文的「兼透则兼用」只列原则，落到单一格名时必须择一，这块取舍仍属各家分歧
-   **《穷通宝鉴》120 格**：十天干 × 十二月令逐格录入用神顺序与原文摘句（「十二月乙木，木寒宜丙」这类原句照录），调候卡里直接给出「这一格书上取什么」与出处章号
-   **方法与验证页**：独立页内置静态页，写明对拍数据、测试与闸门、口径与已知边界
-   **公开对拍报告**（0.54.0 起）：[docs/verification.html](https://npmcn.com/package/dsh-metaphysics/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 就红
-   **引文索引**（B6）：[docs/citations.html](https://npmcn.com/package/dsh-metaphysics/docs/citations.html) 把每张知识卡指到书名、卷章、原文与链接；引文库 94 条（八字经典 41 + 引文索引 53：紫微 23、三命通会 6、增删卜易 13、奇门 5、穷通宝鉴 1、梅花 1、大六壬 3、滴天髓 1），53 张卡里 46 张已定位到可核验原文，由 `test/citations.test.mjs` 逐条核验「原文子串确实出现在来源正文里」，其余 6 张通行说与 1 张待补单独标出，不冒充原文（大六壬已补《大六壬大全》四库本卷一·起例与卷二·神将释，加时布盘仍标通行口诀；《增删卜易》底本为繁体，原文照录）。原文快照在 `test/fixtures/citation-sources.json`（58 个章页），由 `tools/sync-citation-sources.mjs` 抓取公共领域古籍生成
-   **参考资料登记**：[docs/参考资料与对拍来源.md](https://npmcn.com/package/dsh-metaphysics/docs/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99%E4%B8%8E%E5%AF%B9%E6%8B%8D%E6%9D%A5%E6%BA%90.md) 记下 ziwei.pub/bazi 的四宫公式与信息层次、tyme4ts 对拍证据、玄空 B5 的替卦与紫白底本、紫微身主两派，以及 H4 十二颗杂曜安星诀的九处公开辑本入口（含「两颗独立站点同表才收」「转抄例子与诀文相抵时以诀文为准」「同名异星不合并」三条口径）；另有历法 / 卦例 / 紫微 / 八字 / 奇门的外部来源入口。新增参考先登记再改代码，采用范围必须能指向一条测试或对拍证据
-   **离线单文件页（随包分发）**：`命理排盘.html` 一份文件、零依赖、双击即开，十九个入口按用途分三组（也能一键切回平铺），断网可用；它随 npm 包发布，装完插件就有（路径见下）

### 离线单文件页 `命理排盘.html`

订阅（`npm i dsh-metaphysics` 或 `dsh plugin add dsh-metaphysics`）之后，这份页面就在包里：

-   `node_modules/dsh-metaphysics/命理排盘.html` —— 复制到任意位置双击打开，或用浏览器「打开文件」；不需要装依赖、不需要起服务、不需要联网
-   也可以用 `require.resolve('dsh-metaphysics/命理排盘.html')` 拿到绝对路径（`package.json` 的 `exports` 已登记）
-   它是**同源生成物**：与侧栏面板、Agent 工具共用同一份 `engine/`，所以版本一致——包里是哪个版本，页面就是哪个版本
-   与联网无关的部分全部本地算：历法、排盘、古籍摘句、对拍数据都在文件里；只有两处例外，点了才生效——典籍出处的外部链接、以及地理编码选「在线」时的 OpenStreetMap 查询
-   想重新生成（改了源码之后）：`npm run build:html`，默认写到仓库根 `命理排盘.html`；`npm run build:desktop` 会把同一份同时写到仓库根与桌面（`~/Desktop/命理排盘.html`），页面左上角的版本徽标用来看桌面那份是不是最新；`-- --out <路径>` 可另存到别处

## 功能

### 四柱八字（bazi）

-   四柱、藏干、十神、纳音、空亡（**逐柱**）
-   **十二长生**：地势（日干对各支）、自坐（各柱干对本支）
-   **神煞（42 星，7 类）**：贵人（天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医）、文星（文昌、德秀）、婚姻（桃花、红鸾、天喜、孤辰、寡宿、金舆）、性情（华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵）、事业（禄神、将星、驿马）、凶煞（劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网）、格局（天赦日、金神、三奇贵人）。天干类双查年干与日干，三合类双查年支与日支；每颗星附查法依据，界面悬停可见
-   **日主旺衰**：月令权重 + 通根 + 天干帮扶，量化分档，并给出依据（季节权重、通根地支、帮扶/耗泄明细）。地支成三会/三合局时，局中各支的藏干根气按局的五行折算：与日主同五行不折、为日主之印折到六成、其余三会折到一成、三合折到二成；局外一支被六合时，同类不折、为印折到八成、其余折到五成；半合半会不折。帮身的天干（比劫/印）若折后在地支里的根气不足 0.3，按虚透减半计。折了哪几支、哪几个天干虚透，都列在依据里
-   **人元司权**：按「节」到出生日的日差，算出本月第几日、哪一藏干当权（30 日表：余气 → 中气 → 本气；节当日为第 1 日，第 31 日以后按本气并标出）。另有 7/7/16、9/3/18 等分法，结果里只列本插件口径；三命通会卷二「论人元司事」此本又作寅月 5/5/20、卯月 7/23，原文随该节并列、不改取格。司权表比本柱藏干表宽（子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里），两表各照原样。分日只作解释层的一层细节，取格仍按本气、透干与会支判定，不随轮值改判
-   **寒暖燥湿（调候优先）**：月令温度 + 全局火水比例 + 湿土燥土判定气候，给出调候所取（寒湿取丙火、燥热取壬水）与所忌、温度/燥湿标尺、按日主五行的体感白话；流年大运评分接入调候（寒局再逢水加重扣权）；面板在「用神」下有寒暖卡
-   **《穷通宝鉴》120 格**：按「日主 + 月令」查到该格用神顺序（如乙木丑月取丙），附原文摘句与章号；寒暖卡里与调候判定并列显示，两者不同向时以调候为先（「书里的取用」与「这一盘的气候」各自摆出来，不悄悄合并）
-   **格局与用神**：月令取格（建禄/阳刃/月劫/十神格）＋特格（化气、专旺、从格）＋十神组合（官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀），每条附判定依据；专旺以月令助旺且不见官杀/财星为**成格**，气势已成而月令不助为**待定**，官杀逆势或财星耗旺为**破格**并逐条列出破格理由；从格以日主完全无根、无比劫印绶透出为**真从**，有微根或虚透为**假从**（记 `rootWeight` 与根气来源，行运助身则不从）；用神按「调候优先 + 扶抑校验」：先判寒暖燥湿（寒/寒湿/寒燥/湿滞/平/燥/燥热/温热，附温度与燥湿量化值与依据），调候所需与扶抑冲突时显式仲裁并说明理由，不冲突时注明同向；再列喜忌十神；若调候所忌正好是扶抑所喜，保留在喜用、单列「有争议」，不把同一五行同时判喜判忌；两行相战时另判通关（克方所生、又能生用神的那一行，五行里唯一），按局中分量报强弱
-   **行运吉凶**：大运、流年按喜忌五行与十神加权评分，分大吉/吉/平/忌/大忌五档，悬停可看逐项理由
-   **岁运提示**：逐年标出**岁运并临**（当值大运与流年干支相同）、**运年反吟**（大运与流年天克地冲）、**大运伏吟 / 反吟**（大运与原局某柱干支相同 / 天克地冲）、**流年伏吟 / 反吟**（流年与原局某柱干支相同 / 天克地冲）；流年按立春起算，交运落在年内时前后两步大运并列。大运与本命四柱的伏吟/反吟整步大运都在，会连续多年出现，不逐年加重。只标干支重复与对冲、不判吉凶，摘要、解析、白话与面板四处可见；有信号时解析层另附《三命通会·卷二·总论岁运》原文（含「返吟/伏吟」与本书口径不同的说明）
-   **大运交运日**：按「三日折一年」把出生到节令的间隔放大，算出\*\*交运时刻（日/时辰级）\*\*与每步大运的起止日期（同月同日同时刻换，闰日退到 2 月 28 日）；大运表的「交运」列、面板曲线与 chip 悬停都能看到
-   **干支关系**：五合、相冲、相克；六合、三合半合、三会半会拱会、冲、害、破、刑
-   大运、流年（含与原局地支的关系）、真太阳时（按出生地经度修正）
-   **四柱表版式**：按专业排盘习惯——年/月/日/时四柱并排固定成四列，左侧一列窄行名，列间不画竖线、只用极淡横线分行；天干地支作大字并随五行着色，日柱表头单独标红；藏干按「干·五行」逐行列出，十神按比劫/食伤/财/官杀/印五类分组着色；末行给**五行旺相休囚死**（以月令当令五行为基准，依次推出 旺/相/休/囚/死 五态）

### 紫微斗数（ziwei）

-   农历（定朔 + 冬至置闰）、命宫、身宫、五行局
-   紫微/天府、十四主星、六吉六煞、禄存天马、**49 颗星曜**（开 `zuoyaoSchool: 'full'` 补到 61 颗）
-   **杂曜安星诀**（`engine/ziwei-zuoyao.js`）：十二颗通行简盘缺的杂曜逐颗按诀安宫——8 颗走十二月／十干明表，4 颗走起宫顺逆公式（天才由命宫＋生年支、天寿由身宫＋生年支推出）。每颗带诀文原文、定宫依据、基本义与「至少两处独立站点同表」的互核说明，天官／天福另标庙地。同名异星不合并：蜚廉（年支）≠ 博士十二神的飞廉、按年安的天德 ≠ 岁前十二神的天德、年解 ≠ 按月的解神（月解）；龙德、月德与岁前十二神同名同宫，故不入表并把理由随盘面给出。全表盘的诀文、本盘落宫与「没收清单」同时进面板折叠块、复制提问与知识卡
-   **十四主星庙旺得利平不陷**：按《紫微斗数全书》系通行表标注（各家在太阳/太阴少数宫位有出入，只标主星、不硬标辅星），庙旺标绿、得利平标灰、不陷标红
-   **十一类流派开关**（不传则保持原 49 星盘面）：`brightnessSchool`（亮度表 default/QS/XD1/ZZ/XD2）、`gengYearSihua`（庚干四化五变体，只作用于生年四化）、`tianmaSchool`（年支/生月三合）、`tiankongSchool`（不排/年支顺行/加生时）、`jiekongSchool`（不排/单星/正副双星/占验派，启用时并排旬空副旬）、`kuiyueSchool`（qs1/qs2/中一鸣/网络）、`tianshiTianshang`（常规/中州阴男阳女互换）、`changshengSchool`（默认/水二/火土，火土派土五局长生起寅）、`lateZishi`（晚子时当日/次日）、`shenzhuSchool`（身主：`common` 子午年皆火星，默认，与 iztro 及多数排盘一致 / `verse` 按安身主诀「子午安身铃火宿」逐字取子年铃星、午年火星；子午年盘面会注明另一派）、`zuoyaoSchool`（杂曜取盘：`minimal` 默认按通行简盘排 49 颗，与旧盘和已存命盘一致；`full` 再按安星诀补入解神、天巫、天月、阴煞、天官、天福、天厨、蜚廉、天德、年解、天才、天寿十二颗，共 61 颗，每颗的诀文与本盘落宫随盘面给出。这套诀只见近代通行辑本并核——《紫微斗数全书》卷一是赋文与格局、卷二是安身命例，未见此诀，故标「通行说」不署《全书》原文）。也可用 `schools: {...}` 整体嵌套传；非法取值静默回默认
-   四层十二神：长生、博士、将前、岁前
-   生年四化、宫干自化、大限、小限、流年（命宫、三方四正、流禄流羊流陀）、斗君
-   **格局识别（34 条，附判定依据与吉/中性/忌倾向）**：吉格：紫府同宫、紫府朝垣、君臣庆会、极向离明、七杀朝斗、英星入庙、石中隐玉、巨日同宫、日月夹命、日月对照、左右夹命、昌曲夹命、魁钺夹命、三奇嘉会、双禄朝垣、府相朝垣、禄马交驰、月朗天门、日出扶桑、机月同梁；中性：武贪同行、双禄交流、火贪铃贪、杀破狼、命无正曜；忌格：火铃夹命、羊陀夹命、羊陀夹忌、铃昌陀武、命里逢空、马头带箭、天罗地网、刑囚夹印、泛水桃花。**夹局只看两星是否分居命宫前后、不分左右**；「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫（擎羊在禄存 +1、陀罗在禄存 −1，两星只能夹禄存）；「刑囚夹印」不按字面判夹（廉贞与天相永远隔偶数宫），取通行说法「廉贞天相同守命宫于子午、擎羊同宫」（其它宫位同宫不算）。34 条由 `test/ziwei-patterns.test.mjs` 用独立谓词逐条复算，并要求每条至少命中一次。**B2 破格**：吉格与三种可用中性结构（武贪、双禄交流、火贪铃贪）再判一层「破格」——命宫三方四正见羊陀火铃、空劫或化忌，逐条写出是哪颗星落在哪一宫；石中隐玉另判「三方无科禄」、火贪铃贪另判「三方有凶杀」、武贪另判「武贪化忌」、机月同梁与昌曲/魁钺夹命各按本条原文判。忌格与「命无正曜、杀破狼」这类纯结构标签不判破格，状态标 `n/a`。判据与引文见 `engine/ziwei.js · PATTERN_BREAK_RULES`，`test/ziwei-poge.test.mjs` 扫 312 张盘复核
-   **大限一览**：十二限排序列出宫位、年龄区间、宫干四化落宫、三方主星；**流年四化**：逐年给出四化星落宫与命宫三方主星
-   **四化飞星串连**：宫干定四化、四化定落宫，再顺同一支化从落宫接着飞，最多 12 步、回到走过的宫即记「成环」。盘面给 12 宫 × 四化 = 48 条飞化与自化标记；摘要/解析/面板都按四支（禄权科忌）列出 `命宫→官禄→父母→命宫` 这样的整条链，解释层只写方向与牵引、不断吉凶
-   **三方四正复合飞化**：把命宫连同对宫与两个三合宫（共四宫）的宫干四化一起摊开，约 16 条按落宫归堆，落到同一宫就是会照；标出双忌会、禄忌同宫、三化以上会宫与自化。会在一处的化越多，那一宫被牵动的力道越集中；摘要/解析/面板都给出会聚结论，同样只描会照与方向、不折吉凶
-   **流月 / 流日 / 流时**：由流年斗君逐级下推——斗君起正月顺行至该农历月，流月命宫起初一顺行至该农历日，流日命宫起子时顺行至该时辰；每层给落宫、宫干四化落宫与三方四正。基准时刻默认取本机当前时刻（可用 `asOf` 指定以便复现）
-   **宫位点击展开详情**：点任一宫摊开该宫完整星曜（含亮度、四化）、宫干四化、四层十二神、大限/小限，并把三方四正（三合两宫 + 对宫）一起列出、在盘上同步描边；空宫标注「借对宫 XX」；再点一次收起
-   昌曲专论：与丑未的关系、是否入命三方、吸收面清杂

### 六爻（liuyao）

-   摇卦或手动爻值、本卦/变卦、纳甲、六亲、六神、世应
-   卦体关系按纳甲地支实配推导：六冲卦（10 支，八纯 + 天雷无妄 + 雷天大壮）、六合卦（8 支）、卦伏吟 / 卦反吟（地支全冲、八卦正对两路）、爻伏吟 / 爻反吟
-   化进神 / 化退神：动爻变出同五行顺次之支（寅→卯、巳→午、申→酉、亥→子，土丑→辰→未→戌→丑），进者标「化进神 N」、退者标「化退神 N」，并写明本支→变支
-   **化进/化退力重**：方向之外再按月建五态落档——旺相 → 后劲足（退则退得缓）、休囚 → 后劲有限（退则退得实）、死 → 进得虚、逢月破 → 月破失据、缺月建 → 只报趋势；旬空另标、不改结论。只给档位，不折加权分数
-   用神落位：按所问之事取六亲——求财看妻财、工作职位看官鬼、文书考试看父母、健康以官鬼为病（子孙为医药）、出行以世爻为用、感情男看妻财女看官鬼；用神不上卦时回到本宫首卦取伏神，标出飞伏生克（飞生伏 / 伏生飞 / 飞克伏 / 伏克飞 / 比和），首卦两现时列候选**不代选**；再叠月建与日辰：月令五态（旺相休囚死）看这一段时令，日辰五关系（日生/日克/比和/泄/耗）看当天扶克，月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空，只报状态不折成分数
-   **伏神出伏条件**：用神不上卦时，把飞伏生克与月建日辰并起来看——飞生伏、伏克飞、日辰生/比和、月建旺/相算「助」，飞克伏、日辰克、月破算「压」；有助无压为「可出」、有助有压为「有助有压」、有压无助为「受压难出」、两者都无为「未得助」。四档只并列条件、不排各家优先级；旬空只标出、不并入档位，也不出应期日期
-   **应期线索**：只给「该留意哪一支」与快慢方向——用神（不上卦则取伏神）逢值、逢冲、逢合三支列出，旬空另标出空填实与冲空；按月建五态给偏速 / 偏缓 / 待解 / 未定。不换算成具体日期、不排先后、不判忌神受制，摘要、解析层、白话与面板四处可见
-   **全卦逐爻旺衰**：月建与日辰落到全部六爻（不只挑出来的用神）——每爻给月令五态与日辰五关系，另标月破/暗动/冲空，世应、动爻、旬空单独标出；再给五态分布（旺相休囚死各几爻）与最旺/最弱爻，看出整张卦的气聚在哪一头。不指定所问之事也能出
-   用神与卦体联动：把用神所处的卦体一并标出——用神在六冲卦（主散）/ 六合卦（主成）/ 逢变六冲 / 逢变六合 / 在内卦伏吟 / 在外卦反吟（注明地支全冲还是八卦正对）/ 化进神 / 化退神 / 爻伏吟 / 爻反吟 / 旬空 / 持世 / 临应 / 发动
-   面板：本卦与变卦并列对照，真爻线渲染（阳整、阴断、动描红），世应与动爻一目了然；卦体标签与用神标签各以 chip 行列出
-   只需起卦时刻（取日辰定六神、月建定旺衰），与出生时间无关

### 梅花易数（meihua）

-   时间起卦（年月日时数）或数字起卦（两数取余、可手动指定动爻）
-   本卦 / 互卦 / 变卦 / 错卦 / 综卦五盘齐出；本卦上下卦分块并标「体」「用」
-   体用生克按五行判吉凶：用生体大吉、比和吉、体克用吉、体生用耗、用克体凶

### 大六壬（daliuren）

-   月将加时起天地盘（4×4 方盘：天盘大字、地盘小字、天将右下）
-   四课（干上/支上递推，标注生克与天将）、九宗门发三传（贼克·元首·重审·比用·涉害·遥克·昴星·别责·八专·伏吟·返吟）
-   昼夜贵人（以天盘临方定顺逆）、旬空标注、格局名与断语

### 塔罗（tarot）

-   78 张全牌、正逆位、1/3/5 张牌阵（面板可直接选牌阵，换张数自动重抽）
-   逐张库（`engine/tarot-cards.js`，底本 Rider-Waite-Smith 1909，三处独立公开资料互核）每张给七项：英文名、牌面图像（中文白描）、核心寓意、元素、行星、星座、生命树源质；大阿卡纳 22 张全给行星＋星座，数字牌 36 张按花色三分相定星座并标出旬位（如权杖四＝金星在白羊座第三旬），宫廷牌 16 张只给元素与牌位角色（学徒与消息 / 推进与风格 / 滋养与吸引 / 掌控与承担）
-   **两处明写的「不给」**：首牌只归生命树源质不配单一星座；宫廷牌不配星座——公开资料里两套映射在多数花色上把国王与王后对调，本插件不合并两派，留空并写明理由（`systemNote`、面板、解析文末「这套规则有多稳」三处都说）
-   每张牌给编号、牌阶级、核心义与牌阵位义；解读 6–8 段（逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议），面板、白话总结、复制提问四条路径都带得到牌面图像与占星对应
-   明确标注体系：RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断

### 速查十一件（almanac / convert / zeri / chenggu / xiaoliuren / star / numerology / mbti / trend / fengshui / name）

十一套轻量体系，输入都只要一到几个字段，结果走同一套面板与独立页（tab 由 8 个扩到 19 个）， 速查结果用等宽文本卡渲染，不套命盘模板。**全部本地确定性计算**：同一天、同一输入永远同一结果。

-   **黄历 `almanac`**：农历、四柱干支（年柱按立春、月柱按节）、建除十二神、宜忌简表、冲煞、上一/下一节气、每日一卦，以及**值日十二神（黄道/黑道）、十二时辰吉凶（五鼠遁干支 + 时家十二神）、二十八宿、胎神、财神/喜神/福神/阳贵/阴贵方位、日柱纳音、六合三合吉配生肖**；值日神/二十八宿/胎神/吉神方位与 lunar-javascript 逐日对拍。`scope` 明写未收录逐日全量吉凶神煞与彭祖百忌
-   **择日 `zeri`**：27 类事项（婚嫁类领证/提亲/收送聘金/满月酒，生活类旅行/访亲友/入学，建造类动土/装修建造/试车买车，工商类交易/投资/签订合同/纳财/赴任等）按「常用 / 婚嫁 / 生活 / 建造 / 工商」五组归类，宜忌依《协纪辨方书》卷十一「用事」逐条神煞、轻重依卷十「宜忌」六等与德神制化（遇德可解 / 德犹忌 / 与德义不相属按各条按语），逐日定等并给「推荐 / 可用 / 平平 / 回避」，当事人属相冲煞日直接排除且每条回避带理由；六等权重与比值阈值是本仓校准，不是古籍常数，整体是**排序引导**，不是吉凶断语。**候选日比较**（C4-b）：`candidates: ["2026-12-01","2026-12-08"]` 或用面板的「候选日」输入只比这几天，结果给逐日分数与 `compare.best`（这一组最优、同分者、分差），面板画成表并标「最优」；不换算成「好多少」，全部被冲属相排除时直说，不硬推
-   **公农历互转 `convert`**：公历 → 农历（农历年月日、是否闰月、干支四柱、生肖）与农历 → 公历（需显式指定闰月，小月无三十会报错），往返自洽；只知道农历生日时可先转公历再排盘
-   **称骨 `chenggu`**：年/月/日/时四项骨重求和，按总重查**通行本《称骨歌》原文**（二两一钱…七两二钱共 52 首），并给白话释义与分档批语（如 1990-08-15 巳时 = 五两六钱，歌诀「此格推来礼义通…」）；骨重表对拍公开黄历页，不采信其他插件的表
-   **小六壬 `xiaoliuren`**：时间起课（农历月/日/时三掐）与报数起课（三个 1–99），六宫吉凶与白话断语；缺时辰会明确要求补，不默认某个时辰
-   **星座 `star`**：太阳星座档案（四象、守护星、关键词、契合星座）+ 当日四维基调；基调由日期哈希确定性生成，明写「不是随机数」，纯娱乐向
-   **生命数字 `numerology`**：生命路径数 / 生日数 / 态度数，11/22/33 主数保留；与八字口径不同，混问时会说明两套不可互相印证
-   **人生 K 线 `trend`**：复用八字的旺衰、大运与流年十神，按固定计分表给出 1–100 岁逐年分与最佳/最差年份；面板与独立页画的是**蜡烛图**（实体＝相对上一岁的涨跌、影线＝±4 分，叠 5/10 年均线并在右缘标末端值、大运条纹带与分界虚线、最高/最低岁标记），图下再给全段均值 / 最好大运 / 最差大运 / 波动幅度，并直接嵌在八字结果底部，与「人生运势曲线」（大运阶梯 + 流年折线）互补：曲线看趋势，K 线看逐年涨跌。旺衰正好落在换档阈值（±0.3）时只提示、不给顺位结论
-   **风水 `fengshui`**：八宅命卦（1900s/2000s 男女公式、立春界）、大游年四吉四凶、流年九宫飞白、24 山门主灶布局倾向、命宅配调停文案；另有 `action:'xuankong'` 排**玄空下卦/替卦**——三元九运（1864 起一运、每运 20 年）、运盘/山盘/向盘（入中运星按本宫同元龙定顺逆，五黄入中按本山阴阳）、当运星落宫、山星/向星合十，以及**表法**与**盘面**两套旺山旺向并列（口径不同，不合并）。兼向按「坐山偏离本山中心超过 4.5°」改判**替卦**：替星取《沈氏玄空学》坤壬乙诀 24 山表（1/2/6/7/9），山星/向星改以替星入中，顺逆仍按替星本宫同元龙；同卦兼/出卦兼、原运星与「用替而未替」都写明，替卦不套正向表。年月日时紫白按公式派：年逐年退一位；月按年支三组起 8/5/2；日按冬至夏至三段起 1/7/4 与 9/3/6，阳遁顺飞、阴遁逆飞；时按日支三组子时起 1/7/4 与 9/3/6，阳遁顺行顺飞、阴遁逆行逆飞；月取节气月、日按公历日且 23:00 后归次日。`fortuneDate` / `fortuneTime` 可排全四层，只给 `fortuneYear` 时只排年星；`period` 显式优先于日期。工具层 `action` 枚举、`period` 与兼向/日期参数已同步（缺省九运并注明）；各家「日星一律顺飞」「月按农历月」等异说写进 note，不合并
-   **十六型人格 `mbti`**：一份 **MBTI 风格**的 24 题问卷（四维度各 6 题，李克特 1–5 计分，按维度净分取字母、平手取 I/N/F/P 并标「临界」），先不带 `answers` 调一次拿到题目，再把 24 个分数按顺序传回来；结果给四维强度（临界/轻微/明显/很强）、类型称号与关键词、优势与留意、认知功能栈（主导 → 辅助 → 第三 → 劣势）、工作/关系/学习/课题四段白话。**不是官方 MBTI 量表**（未用其题目、常模与评鉴许可），只作自我参照，不用于招聘、晋升或诊断；跳过某题传 `null`，答满 12 题即可出口径。面板与独立页把这 24 题做成 4 题一页的分页问卷（1–5 单选 + 进度条 + 上一页/下一页），答案按题序交给 `answers`。
-   **起名 `name`**：1062 字自建字库（常用名用字，按五行分段，每字带**拼音/声调/康熙笔画**），另有**姓氏库 998 姓 + 82 复姓**（`engine/surname-data.js`，逐姓康熙笔画 + 读音；笔画由三份资料互证 + Unihan 部首结构值复算，25 个分歧字逐个裁定并把理由写在模块头）；评估时**逐字**给五行、释义、来源与是否合喜用，未收录的字不猜五行但给**同喜用五行的可换字**（也可用 `charElements` 自行指定）；**五格剖象**按康熙字典繁体笔画算天格/人格/地格/外格/总格，配通行本 81 数理（超 81 按 −80 回绕）与三才五行，任一字缺笔画就整体返回「算不了」并点名缺哪个字，可用 `strokeOverrides`（逐字）/`surnameStrokes`（按姓）补；多音姓（覃/查/尉…）**主读照算、又读并列显示**，只考证得出笔画的 71 个姓不猜读法、音韵直接落空；**音韵**只做机械检查——全名同调、相邻同声母/同韵母、叠字撞音，判「顺口/略拗/拗口」，**不做语义谐音**；生成候选名按「合喜用 → 两字异行 → 常用字优先 → 五格格数 → 性别倾向 → 字库序」排序，只是排序不是「吉名」判定

### 解析与详解（interpret）

每个体系的排盘结果下方都会跟一个「解析与详解」模块，帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 `withInterpret: true` 即可一并返回。

-   **结构化输出**：`{ moduleType, system, title, lead, dimensions[], sections[], disclaimer }`；`moduleType` 为 `natal`（命盘）/ `divination`（卦象）/ `card`（牌阵），`dimensions` 固定五个维度；`sections` 可带 `tone`（`good`/`watch`/`bad`），面板据此上色
-   **分层结构与逐宫（0.43 新增）**：紫微多出**命身底色**（命宫主星 + 亮度 + 双星组合 + 身宫落点）、**逐宫分析**（十二宫各一条：宫位取象 + 主星亮度 + 吉星/煞星 + 四化，下接一句读法）与**三层格局**（有利格局 / 结构提示 / 忌格提醒，每条写名称、人话、依据与做法）；八字多出**命局框架**（日主/用神/格局 + 一句命局基调）、**正面画像**（外在取象 / 性格底色 / 事业与家庭）、**流年时间轴**（近三年逐条给档位与理由）与**专业建议**（喜用落地 / 忌神自觉 / 地支关系 / 调候）。措辞取自两份独立词库 `engine/ziwei-words.js`、`engine/bazi-words.js`——引擎只出事实，词库只出说法，词库里没有任何判断条件
-   **五个维度**：整体运势、工作与职业选择、事业发展、爱情与感情、健康状况——每项给「解读 + 行动建议」；紫微的维度只点名六煞（擎羊/陀罗/火星/铃星/地空/地劫），其余杂曜留在逐宫，避免满屏星名
-   **依据可核对**：每个维度都附一行「依据」，列出这条结论引用的事实——命盘类（八字/紫微）给日主旺衰、月令、喜忌、大运流年、宫位主星与煞星；卦象类（六爻/梅花/六壬）给本卦互卦变卦、世应、动爻、三传四课与神将；塔罗给牌阵、主轴、正逆位与元素分布。面板与文本两条输出路径都会显示
-   **报告化阅读**：解析区顶部有「一页读懂」（整体/事业/财富/感情/节奏五条摘要）、目录锚点，以及三张表——八字是「大运表 / 流年表 / 触发事件表」，紫微是「大限表 / 流年表 / 触发事件表」。表格只把已有字段摊平，不新增判断；打印时表格不撕页、目录自动隐藏；≤640px 时表头隐藏、一行摊成一张卡（每格用列名当行标），不再出现六列排到 748px、右半边被截断又看不出能横滑的情况
-   **证据卡与置信度**：每个维度的依据收进可展开的 `<details>`，点开可见逐条盘面事实与所用技法；维度旁标注「置信度 强/中/弱」（按证据条数分档，不引新算法）。文本输出同样带「置信度：…」
-   **看示例**：面板与独立页都有「看示例」按钮，用固定的示例盘（1990-05-12 14:30 男 石家庄）走与真实排盘相同的渲染路径
-   **追问**：工具参数 `ask`、面板与独立页的追问输入框——围绕**已算好的盘**回答「2027 年事业怎么样」「财运如何」这类问题；只取盘面已有字段（流年/大运/宫位/分节），不重排、不猜测；年份超出已排范围或没识别到方面时，明确说找不到并给出可问范围
-   **问进对话**：面板追问框旁边多一个「问进对话」按钮——把这张盘的白话结论、摘要和你的问题拼成一段提问，**直接写进 DSH 的对话输入框并提交**（走输入框正常的回车路径，有回合在跑时排队、不打断当前回答），由对话里的模型接着答；提问模板先给「盘面层次」（八字：基本信息 → 四柱 → 旺衰/格局/用神 → 合冲/神煞 → 大运流年 → 古籍依据），要求模型先复述骨架事实、再下判断；把面板已算好的「直答 / 说人话」放进「开场结论」小节，要求开场先沿用它再展开，并写明「不用重排盘、要引到具体柱/宫/爻、没依据就说看不出来、别给绝对化断言」，按「开头一句无术语结论 → 骨架事实 → 每条判断分**盘面｜白话｜倾向｜边界**四行 → 收尾一句『如果只记一件事』」的骨架答，术语出现一个就当场翻成日常话（调候 / 化气 / 通关 / 空亡 / 争合 单独点名）。插件的对话桥还没挂上时（例如插件刚装好还没重启）退回复制，提示你粘进对话窗
-   **八字 × 紫微 交叉验证**：工具参数 `cross`（或面板勾选）会用同一份出生信息再排另一套盘，对事业/财富/感情/身体/节奏五项并列对照，标注「同向 / 有张力 / 互补」；只作对照，不把两套体系折算成同一个分数。面板与独立页把它画成**对照卡**：一个方面一张卡，标题行带判断标签（绿 / 琥珀 / 蓝），八字与紫微各占一栏，注释放最后一行；窄屏改单列——不再是五段「八字——…；紫微——…；判断：…」的长句连读（Markdown 与工具输出仍是原来的五行文本）
-   **量化口径**：只量化引擎已有数据（十神权重、大运/流年档位、宫位与四化计数），**不换算金额、不给健康诊断**；报告里有「量化口径」分节写明这条边界
-   **方法与验证**：独立页内置同页「方法与验证」（体系、128 条卦例与 20 个奇门时辰对拍、测试文件与断言条数取自断言基线、七道闸、口径与已知边界），离线可开
-   **夏令时校正（0.18 新增）**：1986–1991 年中国夏令时期间的钟面时间在排盘前自动减 1 小时（跨日回退），八字/紫微/合盘/验前事/生时校正统一生效；出生证已是真实太阳口径时可用 `dst: false` 关闭
-   **合婚明细层（0.18 新增）**：合盘新增属相六合/三合/六冲/相害/相刑、天干五合、双向十神、跨盘地支、年命纳音与吉凶象计数分档；只作明细，不改原总分
-   **三方合盘（C4-a）**：`partner2` 给第三个人（字段同 `partner`）→ 结果多一个 `triple`：三对分数与三维度并列，`best` / `hardest` / `focus`（三对分歧最大的一维）。**不合成「三人总分」**——和不同的人相处是不同的事；三对分差不足 3 分时不点名「最顺」，只说分数接近。八字与紫微两种合盘都支持；第三人进句柄与影子盘指纹，下一轮只传 `handle` 就能复现
-   **晚子时开关**：面板与独立页都能切「23:00 后算次日/当日」；奇门另可切「归当日/归次日」——这是排盘口径，不是结果重算
-   **验前事**：八字报告下方列出过去 6 年流年信号，用户自评「准/不准/不确定」，算一个贴合度提示；只读、不改盘
-   **生时校正**：输入过去 2–3 件大事（年份 + 类别），对候选时辰逐一排盘并按固定规则打分，返回候选排序——用于缩小时辰范围，不替代出生记录
-   **导出**：面板与独立页都能「导出 .md」（盘面 + 一页读懂 + 三张表 + 交叉验证 + 追问）；独立页另有打印/存 PDF
-   **推导可复核**：八字/紫微另有「看盘顺序」「时间窗」「交叉校验」「未纳入」四段——先看什么后看什么、未来几步大运与近五年流年、喜忌分量与运年是否同向、以及这套算法**没有**计算什么；六爻/六壬对应给「看卦/看课顺序」与「未纳入」。这些都从盘面数据推出，不新增断语
-   **卦象**（六爻/梅花/大六壬）额外给：卦名与卦辞大意、爻辞与动爻、体用关系、互卦与变卦、落到生活里；六爻与梅花再多一节**经文原文**——《周易》卦辞与动爻爻辞照录（64 卦辞 + 384 爻辞 + 用九用六，三份底本互校，异文以〔一作…〕标出）
-   **塔罗**额外给：整盘连贯解读（把几张牌串成一条线，避免各张互相矛盾）与牌面结构（大阿卡纳占比、元素分布、正逆位）
-   **文案口径**：第二人称、温和、只给倾向与建议，不作绝对判断；底部保留理性参考的免责提示
-   **解读区可折叠**：内容较长（五维度 + 体系模块），点标题栏或箭头即可展开/收起；宽屏默认展开、窄屏默认收起，手动切过之后按你的选择来
-   **窄屏与深色（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 侧栏下同样摊成卡片

### 所问之事与询问方向（六爻 / 梅花 / 大六壬 / 塔罗）

问事的体系要先说清问什么，解读才有落点：

-   **所问之事**：必填，支持多行，占位示例「用一句话描述所问之事，例如：今年是否适合换工作？」；不填就起卦会给提示，不会给一份没有落点的解读
-   **询问方向**：下拉选择——综合（默认）、财运、事业、感情、健康、学业、出行。选项表 `DIRECTIONS` 由 `engine/interpret.js` 导出，界面与解析层共用一份，不两处维护
-   **联动方式**：`interpret(result, { question, direction })`。所选方向对应的维度会被提到最前并标注「最贴近你的问题」，正文点明你所问的事，引语也会回显；解读开头固定一行「问题：xxx ｜ 询问方向：xxx」供你确认
-   **不重摇卦**：改问题或方向只重出解读，卦象本身不动
-   命盘类（八字 / 紫微）不问事，不显示这两项，也不会出现回显行

## 安装

### 从 npm

```bash
dsh plugin install dsh-metaphysics
```

或在 Harness 的「插件」面板里搜索 `dsh-metaphysics`。

### 从本地目录

```bash
dsh plugin install /path/to/dsh-metaphysics
```

### 从 tgz

```bash
dsh plugin install ./dsh-metaphysics-0.17.0.tgz
```

## 使用

### 对话里

直接说：

-   「排个八字：1990-05-12 14:30，女，河北石家庄」
-   「排紫微盘：1990-05-12 14:30，女，河北石家庄」
-   「帮我起一卦，问这个项目能不能成」
-   「梅花易数，报两个数 17 和 29」
-   「起个六壬课，问这周谈判顺利吗」
-   「抽三张塔罗，问这份工作要不要接」

模型会调用 `metaphysics_chart` 工具，参数 `system` 取 `bazi` / `ziwei` / `liuyao` / `meihua` / `daliuren` / `tarot`。 注意：八字与紫微要**出生时间**；六爻、梅花、六壬只要**起卦时刻**（通常就是当下），与出生时间无关。

### 面板

重启后侧栏出现**太极图标**，点开是排盘面板：紫微 / 八字 / 六爻 / 梅花 / 六壬 / 奇门 / 合盘 / 塔罗八个排盘 tab，另有黄历 / 农历 / 择日 / 称骨 / 小六壬 / 星座 / 生命数字 / 人生K线 / 风水 / 起名 / 十六型人格十一个速查 tab。奇门 tab 里「换局规则」可选拆补、超神接气、置闰；盘面下方用键值表列出局数、值符值使、空亡驿马、击刑与入墓、月令与门星干旺衰、干宫生克等事实，与解读区的结论分开。

结果卡下方的追问行里，输入问题后可以点「追问」（在本地按盘面字段直接答，不联网）或「问进对话」（把提问发进 DSH 对话窗，由模型接着答）。

> 独立页（`命理排盘.html`）同样是这十九个 tab：速查 tab 在左侧展开对应小表单（择日的起算日/事项/天数/属相/候选日、农历的转换方向/农历日期/闰月、小六壬的时间或报数、风水的命卦/门主灶/玄空与坐向、运、兼向度数、飞星日期与时刻（结果都是方位网格：八向标吉凶、玄空九宫列运/山/向三数，替卦与年月日时另列事实行）、起名的评估或生成、十六型人格的分页问卷（4 题一页、1–5 打分，答满 12 题可先看结果））；合盘要填双方出生信息、可选八字/紫微两种合盘，勾「三方合盘」再加第三人；奇门用「换局规则」单选组（拆补/超神接气/置闰）与「询问方向」定用神。这份文件与侧栏面板是**各自生成**的两份产物（同一份 `engine/`），随包发布的是仓库根这一份；自己在桌面另存过的话，用 `npm run build:desktop` 一次刷新两处，别手工拷。

> 首屏默认按用途分三组：**问一件事**（六爻/梅花/塔罗/奇门/六壬/小六壬）、**看一个人**（八字/紫微/合盘/人格/称骨/数字/人生K）、**查日子**（黄历/择日/农历/星座/风水/起名），每项带一句白话（如「摇六次，问一件事」）；用过的入口会进「最近用过」，最多 3 条。19 个平铺 tab 仍保留，右上角「分组 / 平铺」随时切换，选择记在本机；手机端每组先露 4 项，其余点「还有 N 个」展开。这份分组数据只有一份（`src/groups.mjs`），独立页与宿主侧栏面板在构建时各自取用；侧栏宽度不等同窗口宽度，收纳按容器查询生效。

### 深色与导出

-   **深色主题**：跟随系统（`prefers-color-scheme`），盘面与页面同时切换，只换一套 CSS 变量，元素规则一行不改
-   **打印永远是浅色**：深色主题下直接打印会得到一整页耗墨的深底 PDF，所以深色规则用 `@media screen` 限定
-   **存为 PDF / 打印**：结果下方有按钮，走浏览器原生打印（不引第三方库）；A4 纵向、隐藏输入区与按钮、盘面与解读不被撕页、四化色块保留颜色。折叠着的「解析与详解」在打印时会自动展开，不会只印出一个标题栏

## 读之前：象与数

这套东西分三层——**数**（可复算的坐标：干支、节气、纳甲、十神、宫位）、**象**（坐标之间的关系：当位、承乘、合冲、伏墓）、**辞**（一句判断：吉凶、应期）。普通人读原文读不下去，多半是从「辞」开始背，跳过了前两层。

问事体系（六爻 / 梅花 / 六壬 / 奇门 / 塔罗 / 小六壬）另有一套固定流程：**先确认问的是哪件事 → 找到代表「我」和「事」的符号并说明为什么是它 → 看落位与关系 → 回到现实核对**，开口前还要能过三追问。命令行一句 `npm run prompt:event -- --system liuyao --kind career --question "…"` 就能拿到填好盘面的完整提示，规则与各体系的取用神表见 `docs/问事解读提示.md`。

`docs/象与数-要义导读.md` 是把这三层讲成人话的一篇长文：数是坐标系、象是关系、辞是名字；纳甲为什么必须存在、十神与宫位各自站在哪、为什么「同一个用神伏藏」能读出相反的结论、以及**怎么用三个问题判断一句断语是不是在裸奔**。不教断命，只帮你把事情分清楚：哪些算得准、哪些可商量、哪些只能自己决定。

## 先说结论

排完盘，**最上方**是一段人话总结（方框）：这张盘／这一卦大致在说什么、关键落点在哪、最容易卡住的地方，再加几条可以立刻做的事。它在盘面之前——先给结论，再用下面的盘面作依据；反过来大多数人读不到第二屏。

九个体系都有这一屏：八字（底色／感情／卡点）、紫微（命身／夫妻宫／被冲破的格局）、六爻（世爻／用神／成不成看哪里）、梅花（体用与过程结果）、六壬（起手—转折—落点）、奇门（你的宫与事的宫、门星神）、塔罗（逐张位置义）、合盘（日主关系／夫妻宫／五行互补）、人生 K 线（这一步的基调、最亮与最闷、怎么用）。

其中两条是特意做的「不许糊弄」：六爻若「询问方向」还停在综合，取不到用神，它不会硬给一个结论，而是改读世应与卦体，并把「为什么没有结论、该补哪一步」写在方框里；走势若没拿到当前日期（`asOf`），它不猜「你现在几岁」，直接说明不标当前位置。

这段只做「结构 → 人话」的翻译，不下吉凶断语：可以写「你容易遇到两种类型的人」，不会写「你婚姻不好」。同一张盘每次生成的文字完全一致（引擎不读挂钟，当前时间由界面传入）；时辰未知时它会先说明「只据六字、约七成信息」。

## 精度与口径

-   **节气**：VSOP87B 截断级数（105 项）+ 岁差 + 章动 + 光行差；与日本国立天文台《暦要項》对拍，2024/2025 共 48 个节气最大偏差 **0.6 分钟**；出生时刻距「节」不足 20 分钟时会提示复核。\*\*1929-01-01 之前按北京地方平时（UTC+7.7611）\*\*推算，之后按东八区——与农历共用同一套换算，避免 14 分钟错位
-   **农历**：定朔（Meeus 第 49 章，误差约 1 分钟）+ 冬至所在月为十一月 + 无中气置闰
-   **真太阳时**：经度差 + 均时差；内置 34 个省会 + 200 个地级市坐标（±0.2°），地址更细时可开「联网精确到区县」（Nominatim）。**单盘与合盘用的是同一套修正**（合盘双方各按自己出生地算）。只按经度修正，**未含历史时区与夏令时**：海外出生请先把当地钟表时间换算成东八区标准时再输入；没给经度时摘要首行会出 ⚠
-   **时辰未知**：不知道出生时刻时勾「时辰未知」，八字只排年/月/日三柱，时柱不给、命宫身宫不排、起运与交运降到按日（`dayun.precision: 'day'`），摘要第一行固定写「时柱按正午暂算，涉及时柱的结论仅供参考」；工具侧传 `hourUnknown: true` 等价（八字 / 趋势可用）。**紫微与合盘会直接报 `HOUR_UNKNOWN`**：这两套离开生时支就不成立，硬排出来只是看着像盘。全文不出现 `12:00` 这类占位钟点。
-   **晚子时**：八字/大六壬默认 23:00 后换日，奇门默认归当日；`lateZi` 与 `lateZiHourMode` 是同一个开关的两个名字。各体系摘要都会写明本次采用的口径，不改默认值、不偷偷改盘
-   **口径对照**：`caliberCompare` 只做「当前口径 → 另一档」的逐字段比对，根因按柱 / 命宫 / 局数 / 起运归类，`total` 是变化字段数、不是分数；没有根因时写明「无单一根因」（如真太阳时只改起运时刻）。紫微的 13 组含十一类流派开关（亮度 / 庚干四化 / 天马 / 天空 / 截空旬空 / 魁钺 / 天伤天使 / 长生 / 晚子时 / 身主 / 杂曜全表），平铺参数与 `schools` 嵌套都能读；取局流派、晚子时归日、闰月政策与流派回显属于口径回显，不计入差异；「其他」是尚未归类的派生字段，不隐藏也不折算。每行另给 `views`：八字（日柱 / 时柱 / 旺衰 / 格局 / 喜用 / 起运）、紫微（命宫 / 身宫支 / 五行局 / 身主 / 起大限）、奇门（日柱 / 局数 / 值符 / 值使）的两列并排，只列变化项，摘要里写成「并排：日柱 丙辰 → 乙卯」，面板与独立页画成表格。对照会按开关数多排盘（工具里由 `diff: true` 显式开启）
-   **八字五合**：干支关系只标「有合」，摘要写「戊癸合（化火待定）」；是否真化另看月令、化神与争合妒合，不在关系层直接断「合化火」
-   **可复现**：塔罗/六爻给 `seed` 即得同一次抽牌/摇卦；紫微流月流日流时、塔罗的抽牌时刻、八字的流年基准年都可传 `asOf` 钉死。**影子盘** `shadow: true` 另给一个短 ID：同参数同 ID、换版本 `id` 变而 `baseId` 不变；面板与独立页把快照存在本地，同盘重排自动做字段级 diff。未固定 `asOf` 时流年随「此刻」变化，卡片会提示先固定再比对；与 `seed` 一样，随机源不写进 ID 时无法复算，所以塔罗 / 六爻的实际牌面会算入指纹。**推导链** `trace: true` 则逐层给出规则、输入、结果与出处，只读结果，不改变盘面与 ID
-   **紫微四化**：中州派常用表（庚干作太阳禄、武曲权、太阴科、天同忌）
-   **问进对话**：只做文本组装，不改盘、不调模型——面板把 `Engine.askPrompt` 生成的一段话交给 DSH 客户端槽位 `conversation.input.right` 拿到的 `inputActions`，先 `setDraft` 再 `submit`（官方输入框的正常提交路径）；桥不在时退回复制剪贴板并给出提示。提问里带的盘面摘要按 3000 字截断并标注「摘要已截断」；摘要之前先给「盘面层次」（按体系列 4–6 层阅读顺序，未知体系走通用兜底），再给摘要与回答骨架，让模型先复述事实、再讲结构与时间；面板已有解析时，模板在摘要之前插入「开场结论」小节（直答 + 说人话，原样取自面板结果），让对话开场与面板同一口径；六爻 / 梅花另在盘面摘要之后追加一节\*\*《周易》经文原文\*\*（本卦卦辞、动爻爻辞、互卦与变卦卦辞照录，取自 `engine/yijing-text.js`——模板只读结果里已算好的 `jing`，本身不引原文库，非卦象体系不多塞一段），别家模型拿到的不只是白话大意；固定骨架（抬头 + 层次 + 回答要求）约 700 字，不随 `maxChars` 变，`test/ask-prompt.test.mjs` 有断言盯它别长成小作文。这条链依赖 Harness 的客户端 slot API（`conversation.input.right` + `inputActions`），升级 Harness 后若槽位改名，按钮会静默退回「复制」而不是报错
-   **紫微飞星串连**：只认宫干四化表、星落哪宫就是哪宫之力，串连只跟**同一支化**逐宫跳（不混支、不借对宫），满 12 步或回到走过的宫即停；宫干四化在 12 宫上是「一个宫 → 一个宫」的函数映射，所以完整盘上每条链必然成环（实测 1/3/4/5/6 步），「断点」只可能来自星未上盘。这一层只描方向与牵引，不断吉凶，也不叠大限流年算力重
-   **八字 × 紫微交叉验证**：五项只并列、不合并成总分。任一侧当前阶段取不到时（八字尚未起运、紫微大限不在范围内），该项标「互补」并写明缺的是哪一边，不把「没取到」当成「没有问题」；节奏一项的说明按实情分档——八字顺而紫微煞星多、八字偏紧而紫微平静、八字为平而紫微煞星多，三种说法各写各的，不共用一句「一边顺、一边压」
-   **日主旺衰**：量化算法，非唯一流派。合会折根的折算比例与 0.3 的虚透门槛是本仓取值，不是古籍定数；五行喜忌分喜、忌两档，忌神里全局分量不足 0.5 的另列「中性偏忌」——只是展示分档，`avoid` 不变，大运/流年遇之仍按忌计
-   **奇门宫位条件**：门迫只认同宫内「门五行克宫五行」，宫克门是「宫制门」不为迫；六仪击刑按月支相刑定宫（甲子戊震三、甲戌己坤二、甲申庚艮八、甲午辛离九、甲辰壬巽四、甲寅癸巽四），三奇入墓按五行墓库定宫（乙木墓未→坤二、丙丁火墓戌→乾六），六仪入墓按同一墓库（戊墓戌→乾六、己庚墓丑→艮八、辛壬墓辰→巽四、癸墓未→坤二）。这四项只判**天盘**、只作宫位条件，不自动断用神受制，也不打分排序
-   **奇门旺衰**：八门、九星与天盘干（三奇六仪）按月支五行判旺相休囚死（同气旺、月令所生相、生月令休、克月令囚、被月令克死），只报力量强弱不折吉凶；门旺而宫克门仍受宫制。
-   **六爻用神旺衰**：月建按月支五行定五态（同气旺、月令所生相、生月令休、克月令囚、被月令克死），日辰定五关系（日生/日克/比和/泄/耗），月建冲爻标月破、日辰冲静爻标暗动、冲旬空标冲空；只报状态标签，不折成分数
-   **六爻全卦逐爻旺衰**：与用神旺衰同一套判定，只是不挑用神、六爻全给，并标世应/动爻/旬空与五态分布。五态只按「爻五行 × 月支五行」判，各家对月破、暗动、冲空取名不一，本插件按「月建冲=月破、日冲静爻=暗动、日冲旬空=冲空」给标签；不折加权分数、不据此断成败；化进/化退已叠月建五态给档位（见下一条），但日辰加权与动变连环仍未做
-   **紫微三方四正复合飞化**：四宫 16 条飞化按落宫归堆，会聚判定只看「落在同一宫」这一条结构事实（双忌≥2、禄忌同见、三化以上、自化）；各家对会照要不要折分数、要不要再叠大限流年分歧较大，本插件只标会照与方向
-   **紫微夹局与刑囚夹印**：「夹」只要求两星分居命宫前后、不分左右（日月、左右、魁钺本来就没有固定左右；0.38.2 之前按固定顺序判，昌曲夹命与羊陀夹命从未命中，日月/左右/魁钺各漏约一半）。擎羊在禄存 +1、陀罗在禄存 −1，两星只能夹禄存，所以「羊陀夹命」即禄存守命、「羊陀夹忌」即化忌与禄存同宫。刑囚夹印按字面判夹不成立（廉贞与天相永远隔偶数宫），取通行说法「廉贞天相同守命宫于子午、擎羊同宫」，判的是守命那一宫，其它宫位三星同宫不报；命宫卯酉、廉贞天相对照遇擎羊的变体未纳入。34 条格局的判定与 `test/ziwei-patterns.test.mjs` 的独立谓词逐条对齐，并要求每条至少命中一次
-   **奇门十干克应**：天盘干加地盘干按通行 100 组表逐宫取格名与取象（甲加丙「青龙返首」、庚加丙「太白入荧」、癸加癸「天网四张」等），与门宫、干宫生克并列，只作读盘线索，不自动折吉凶；底本取通行表，《奇门遁甲元灵经》卷二只存甲、乙、丙三组且文字有异，两本并列不合并
-   **奇门干宫生克**：天盘干（三奇六仪）与所落宫五行的关系另算一层——干克宫/宫克干/干生宫/宫生干/比和，与门宫关系并列各说各的、不折成一个分数；它与十干克应（天地盘两干）是两层，互不替代
-   **六爻化进化退**：只按「同五行地支顺次」定方向（木 寅→卯、火 巳→午、金 申→酉、水 亥→子，土 丑→辰→未→戌→丑 成环），同五行不相邻不算；方向之外再按月建五态给一档力重（旺相 → 后劲足、休囚 → 后劲有限、死 → 进得虚；退则得令退得缓、失令退得实；月破压过一切），只给档位、不折加权分数，也不据此断吉凶。土的进退次序各家说法不完全一致
-   **六爻应期线索**：只做「时间窗口的方向」——用神（不上卦取伏神）的逢值、逢冲、逢合三支，旬空另加出空填实与冲空；快慢按月建五态分偏速 / 偏缓 / 待解 / 未定（两现而旺衰不一或缺月建记未定）。不换算日期、不排先后、不判忌神受制，也不叠动变连环；近事以日计、远事以月计，用哪把尺由事情远近决定，本插件不代选。具体应期日期仍是 `liuyao-yingqi-exact` 的待办项
-   **知识标签只讲文本，不讲效度**：知识卡上那三个标签写全了是「文本·诸家一致 / 文本·各家有异说 / 文本·未录入」，意思分别是「各书都这么写」「各书写法不同」「我们还没录」，都不表示该技法有效。0.59.0 之前写作「诸家一致」，容易被读成「这说法可靠」，是产品在无意中误导。文末「这套规则有多稳」现在先列**本盘踩到的**分歧，再列本体系其余通行分歧——用户先要知道「我这盘有几处是取派分歧」，体系总账次要。`test/interpret-knowledge.test.mjs` 用断言锁住「标签必须带文本前缀」，防止被改回去
-   **八字交运日**：交运时刻 = 出生时刻 + 「出生到起运侧节令」的真实天数 × 365.2422/3，顺排数到下一节、逆排数到上一节；同一条比例即古法「三日折一年、一日折四月、一时辰折十日」。每步大运在同月同日同时刻换，闰日退位。一年取回归年 365.2422 日——按 360 日折算的流派会差一两天，`dayun.jiao.yearDays` 把这个口径写进了结果
-   **八字通关**：只在「用神与克它的忌神两行在局中各 ≥1.5 分」时成立相战，通关行由五行生克唯一确定（克方所生、又生用神；金克木以水为关），按局中分量分「可通 / 关弱 / 为忌 / 未通」四档，`usable` 仅指「可通」；通关行若在本盘属忌神，只标「为忌」、不当桥用。只写进用神 detail、摘要与解释层，不折分数、不断吉凶，也不判通关之力够不够用。`test/tongguan.test.mjs` 用五组相克、阈值边界与 24 年逐月真实盘独立重算核对
-   **岁运提示**：六类信号只认干支事实——**天克地冲**要求天干相克且地支相冲，缺一不算（例如丙子年对丙午年柱是同干相冲，不标反吟）；当值大运取与「该年立春到次年立春」相交的步，交运落在年内时前后两步并列。不折分数、不判吉凶，「岁运并临主大凶」一说不采；大运与本命四柱的伏吟/反吟整步大运都在，随每年重复列出、不逐年加重；四柱十神的引化也未叠入
-   **六爻用神**：只落到「哪一爻是用神、它与卦体/动变/旬空什么关系、月建日辰给它什么状态」这一层——不叠出一个月建日辰换算的力重分数，用神两现时把候选都列出来而不代选；伏神给出伏于何爻、飞伏生克与出伏条件（飞生伏、伏克飞、日辰生/比和、月建旺/相算助，飞克伏、日辰克、月破算压，归四档），条件只并列、不排各家优先级，也不出具体日期与应期
-   **十六型人格**：MBTI **风格**的自建问卷，不是官方 MBTI 量表——题目、计分与常模都是本插件自己的，不与任何商业量表对齐；四维净分 =（分数 − 3）× 侧向求和，平手按 I / N / F / P 取并标「临界」，强度是按「净分 / (答数 × 2)」分的四档，不代表任何总体分布。结果只作自我参照，不用来评价他人能力、做招聘或临床判断
-   **入参**：日期按月份天数与闰年校验（`1990-02-30` 直接报错，不滚到下个月）；八字/紫微/合盘的性别必填（性别决定大运大限顺逆，不做默认）；六爻爻值必须正好 6 个，留空才随机摇卦。非法入参带错误码返回（`E_INPUT` / `E_LINES` / `E_COUNT` / `E_ASOF` / `E_PARTNER`），不静默改成另一个盘；风水缺坐向、非 24 山、坐向不对宫、运越界与运非整数（含字符串）、兼向度数越界或坐向不一致、飞星日期/时刻格式非法同样归 `E_INPUT`，工具层不会把它们标成内部错误，也不会把 `2.5` 静默当成缺省九运
-   **对拍**：历法对 NAOJ 历要项与 ICU 抽样的农历；流派规则对典籍通例——六爻八宫卦序与世应（京房）、六壬日干寄宫与中气换将（《大六壬指南》）、紫微纳音定五行局与紫微天府相照（《紫微斗数全书》）；另有《增删卜易》9 条与《卜筮正宗》**128 条**原文卦例（93 条本卦→变卦 + 35 条静卦）。期望值在 `test/fixtures/classics.json`，出处见其 `meta.sources`，卦例原始数据与排除理由在 `tools/data-boshizhengzong.mjs`。卦例只取原文能稳定读出的字段：卦名、卦宫、缺爻（伏神）、动爻**个数**（与原文 x/○ 标记数核对过）、有日期的旬空；**动爻在哪一爻**不录——卦象表在 PDF/DOCX 里串行，硬解析等于造数据

## 能力边界

这不是免责声明，是**具体的「不做什么」**。每条都对应引擎里的一处实现状况——改实现时同步改 `engine/limits.js`，`test/limits.test.mjs` 会核对清单与实现是否矛盾（例如写着「应期不给公历日期」，输出里就真不能出现日期）。

**所有体系共用三条**

-   **技法效度未经检验**：能被复核的只有形式层（纳甲、干支关系、十神、宫位这类可由程序重算的部分），错了能查。解释层是各派通行说法，本插件不声称它比别的说法更准，也没做过能被别人重复的验证。
-   **同盘不同命**：同一张盘对应无数人，从盘面推不出具体某一个人。这是模型的硬缺陷，不是样本不够——换更大的样本也补不上。
-   **不给医疗、法律、投资建议**：不做疾病诊断，不判诉讼胜负，不做买卖与借贷决策。

**按体系**

-   **六爻**：应期只给地支与快慢档，不折算公历日期——应期可取逢值／逢冲／逢合／出空／填实多种，折算成日期只是把不确定性藏进一个具体数字。回测 15 条规则命中 51.7%，平均要给 3.55 个候选支（随机基线 29.6%），高于随机但撑不起一个日期。用神两现时不代选。
-   **八字**：不预测具体年份的事件（不判「哪年结婚／升职／发财」）。岁运并临、运年反吟、伏吟这类只作变动提示、不断吉凶——它们在十年里反复出现，按它们断事等于每年都能找到一次「应验」。旺衰是分档不是评分。化气格的真化判定仍缺实盘对拍。
-   **紫微**：飞星层只报路径不判吉凶（串连与复合飞化的力重未定）；格局只判成立，破格条件未做。
-   **梅花**：不取外应——外应的解释空间几乎没有边界，纳入后任何结论都能凑出来。
-   **大六壬**：三课四传只给结构，应期推演未做。
-   **奇门**：八门、九星入墓未做；用神落宫与击刑入墓只并列条件、不推结论。
-   **塔罗**：只给通行牌义，不做联想式延伸。

面板每份报告底部有「本插件不回答什么」可展开，内容与上表同源。

## 数据与隐私

-   全部计算在本地完成
-   **默认不联网**：地址只查内置坐标表（最细到地级市，足够真太阳时）。只有把 `geocode` 设为 `online`（面板上勾「联网精确到区县」）才会把出生地原文发给 OpenStreetMap Nominatim，用于精确到区县/路名；失败即回退内置表，同一地址 6 小时内不重复请求
-   不收集、不上传任何其他数据

## 开发

```bash
npm run build        # 生成 client.js（界面入口）与 client.<name>.js（按 tab 的引擎分块）
npm run build:html   # 生成独立的 命理排盘.html（可离线双击使用），默认写到工作区根目录
npm run build:verification # 重建 docs/verification.html 与 README 徽章（判定改动后必须重建）
# 想同时更新桌面那份：npm run build:desktop（写到 ~/Desktop/命理排盘.html）
# 存到别处：node tools/build-html.mjs --out "D:\某处\命理排盘.html"
npm test             # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
npm run test:ci      # 构建 + 产物自检 + 回归 + 断言基线 + 测试自检 + HTML 注入面 + 工程约定（CI 跑的就是这条）
npm run smoke        # 全体系冒烟：19 个 tab × 关键选项 × 边界日期，看「排盘→渲染→文本」三条链有没有崩
npm run stress       # 压测：连续排 200 次（不同日期），查不崩、不漂、缓存不涨、体系不串
npm run e2e          # 真机回归：单页 19 个 tab + 宿主面板，各点一遍（无浏览器时自动跳过）
npm run e2e:panel    # 只跑面板那层：真 Chrome + 真 React + 假宿主槽位，43 项
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/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/check-perf.mjs`、`node tools/bench.mjs`（只测不判）、`node tools/release.mjs`、`node tools/verify-publish.mjs`（被 release 调用，也可单独用来核对某个版本）。

**测试的七道闸**：

1.  `test/_harness.mjs`——任何一条 `ok()` 失败都让进程非零退出（此前 9 个文件只打印不失败，全量"全绿"没有意义）
2.  `test/assertion-baseline.json`——每个文件的 PASS 条数低于基线即失败，防止"删断言让测试变绿"
3.  `tools/verify-tests-can-fail.mjs`——故意写错一条断言，必须真的变红，防止第 1 条被改回去
4.  `tools/check-html-sinks.mjs`——`innerHTML` 里拼接的量必须经过白名单转义函数，否则 CI 直接红
5.  `tools/check-patterns.mjs`——engine 不得引用浏览器/Node API 与 `console`，不得用 `var`/`debugger`，`new Date()` 与 `Math.random` 只允许出现在白名单文件
6.  `test/fuzz.test.mjs`——固定种子的随机生日扫射八个排盘体系，覆盖边界日期、参数矩阵与"同参数必得同结果"
7.  `tools/check-bundle.mjs`——产物必须在**宿主形态**下能编译能跑：读 `client.js` 与每个 `client.<name>.js` 原文逐模块编译、模拟 `__ModuleLoader__` 执行 factory、校验分块注册名 / 返回 `Engine` / 自包含、IIFE 收口与不可见分隔符，并要求所有产物与源码重构建逐字节一致；入口 gzip 必须 < 100KB（2026-10-25 的启动崩溃就是 Node 侧全绿、Chromium 侧语法错，这道闸专门守这个缝）

另有一道**性能门槛** `tools/check-perf.mjs`（D3）：跑 `tools/bench.mjs` 的八体系样本，对首次 150ms / p50 10ms / p95 25ms / 带解析 250ms / 1000 盘 4000ms / RSS 800MB 判超限，CI 同样执行。阈值按文档目标留 5–10 倍余量，拦的是数量级回退而非毫秒级抖动；慢机用 `DSH_PERF_SCALE=3` 按倍数放大上限。`npm run bench` 只测量不判错，用来做改动前后的 A/B 对比。

结果卡顶部还有一行**首屏耗时**（D1+）：`首屏 42ms｜引擎 18ms（首次加载）· 排盘 9ms`。数字是这一次在本机的实测——面板从点击到两帧后计时，独立页量「组 HTML + 写 DOM」的同步时间（不含浏览器真正绘制的那一帧）；引擎那段的「首次加载 / 已缓存」来自分块缓存状态。只在本机显示，不上报、不发网络请求；缺哪段省略哪段。

`client.js` 与 `client.<name>.js` 都是构建产物，不要手改。入口只带界面；面板按当前 tab 用 `require.async` 取引擎分块，首次打开不再下载整套引擎。改动记录见 [CHANGELOG.md](https://npmcn.com/package/dsh-metaphysics/CHANGELOG.md)。

### 发版

```bash
# 先在 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 时
node tools/release.mjs --verify-only           # 只核对 registry 上当前版本的附件
```

脚本会拦下：工作区不干净、`client.js` 未随源码重建、registry 上已有同版本；发布后自动核对新版本与 `dist-tags`，并提示补 `git tag`。

**发失败 / 核对失败怎么办**：`release.mjs` 在这两条失败路径上会打印回滚步骤（把 `latest` 指回上一版、`deprecate` 问题版本、网页 2FA 删包、升补丁号、CHANGELOG 改回未发布段；打过 tag 时另有删 tag 两步），但**不自动执行**。同样的步骤可以单独取：

```bash
node tools/release-rollback.mjs --version 0.57.1 --previous 0.57.0 --reason verify-failed
NPM_TOKEN=... node tools/release-rollback.mjs --version 0.57.1 --previous 0.57.0 --apply dist-tag
```

`--apply` 只支持 `dist-tag`（把 `latest` 指回上一版）；`unpublish` / `deprecate` / 删远程 tag 属于共享状态变更，脚本只打印命令，由人确认后执行。

**发布后为什么要看附件，而不是只看 `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 分钟内一直对不上就判定失败并给出处置路径。

另外记一条实操限制：`unpublish`/`deprecate` 属于「绕过 2FA 的破坏性动作」，granular token 会被 403 拒绝（`Granular access tokens that bypass two-factor authentication may not perform this action`），这类动作只能在 npm 网页上用 2FA 做；真要撤版，把版本号升一个补丁号重发通常更快。

### 样式命名约定

面板的 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 组断言与全量视口扫描全绿。_

## 关于：一个人做的插件，欢迎来聊

这个插件是我个人所做，不是团队产品，也没有经费和人手。十九套体系一个人铺下来，能力有限、力有未逮：排盘规则各家口径不一，我按自己读到的通行本取了一套并写进口径里；看不懂、算错、算漏、话说过头的地方，一定还有。

所以有意见、有想法尽管说，不必客气——

-   **对玄学命理本身有想法**：某个神煞该不该这么取、某条断法是不是牵强、某段解析是不是话说太重了，欢迎进群友好讨论。我不认为自己的口径就是对的，能把分歧讲清楚，比谁赢更有意思。
-   **盘排错了、页面出 bug**：请把输入（时间、地点、性别、体系、所问之事）和当时的输出一起带上，我照着复现；能修就修，修不了会写进「已知边界」。
-   邮件联系：1129440028@qq.com（我的 QQ 邮箱）。谢谢！

微信群：**dsh-metaphysics**

![dsh-metaphysics 讨论群二维码](https://github.com/xuanfu-web/dsh-metaphysics/releases/download/v0.50.1/dsh-metaphysics-group-2026-10-30.jpg)

图片用 GitHub Release 附件（不经过 camo / raw，部分网络下更稳）。

这批二维码 7 天内有效（11 月 6 日前，2026-10-30 更新）；过期了在 [issues](https://github.com/xuanfu-web/dsh-metaphysics/issues) 说一声，我换新图。只想提问题、不想进群的，开 issue 一样算数。

## 致谢

本插件的十套速查体系（农历互转为自有实现）在**能力范围**上参考了同生态的 [dsh-xuanji（玄机阁）](https://github.com/huangziyuan-general/dsh-xuanji)（MIT）：黄历、择日、称骨、小六壬、星座、生命数字、人生 K 线、风水、起名。 **实现是独立的**：没有拷贝对方源码，也没有引入它的依赖（iztro / lunar-javascript），全部按行为规格用本项目的 calendar / lunar / dst 模块重写，并逐项与公开通行表或 lunar-javascript 对拍（称骨表的初版错误就是这样查出来的）。特此致谢。

《子平真诠》《滴天髓》《三命通会》的原文摘句取自 [中华典藏网](https://www.diancang.xyz/)（古籍，public domain），照录通行本、附章名与链接；释义为白话自撰。三命通会取与格局取用直接相关的十六篇——论十神八篇（正财、偏财在该本分章），加专旺五格（曲直/炎上/从革/润下/稼穑）与弃命从煞、弃命从财七篇，另取卷五官煞去留杂论作七杀格的对照（该本没有单列的「论偏官」）；另录卷二「总论岁运」「论人元司事」两条，分别作岁运提示与人元司权的出处（人元一条的日数与通行表不同，原文并列、不改判）。从儿、从强三书没有可整段照录的专章，未硬凑。

《穷通宝鉴》120 格的原文摘句取自 [luckclub.cn](https://www.luckclub.cn/bazi/004/)（古籍，public domain），用神顺序参考 [knowyourbazi.com](https://knowyourbazi.com/zh-hans/qiongtong/) 的整理表；两者逐格对读，原文全章未见某个用神字时（如八月丁火的「丙」），数据里直接标了 note 说明「按整理表录入、待以善本核对」，没有替它圆场。

## License

MIT

## 常见问题

### dsh-metaphysics 是什么？

DeepSeek Harness: 19个系统和11个快速参考（历书，日月转换，…），具有气候调节（tiaohou）， 120个简通宝鉴条目，1062个字符的人名库，每字拼音，康希笔划

### 如何安装 dsh-metaphysics？

在项目目录运行 npm install dsh-metaphysics，或使用 pnpm add / yarn add / bun add。

### dsh-metaphysics 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/dsh-metaphysics 是否存在。

### dsh-metaphysics 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### dsh-metaphysics 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### dsh-metaphysics 可以商用吗？

dsh-metaphysics 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### dsh-metaphysics 还在维护吗？

最新版本 0\.61\.1 发布于 2026/11/03（今天）；至今共发布 33 个版本，其中过去 12 个月发布了 33 个；首次发布于 2026/10/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

