紫微斗数 · ziwei-doushu 全资源知识库
0. 定位:只蒸馏一个仓库
本技能只整理 Renhuai123/ziwei-doushu,这是 GitHub 上名称精确匹配、资源最完整的紫微斗数开源仓库:倪海厦《天纪》体系排盘引擎 + 四化系统 + 格局知识库 + 古籍原文 + 1848 条讲记语料 + 两代大规模解读数据集,采集时 ★15,838 / fork 3,071,代码 MIT,持续同步线上发版。
> 同名仓库要先分清:Wolke/ziwei-doushu(Python 小实现)、zhongwubushui/ziwei-doushu(基于主仓库的排盘站点)与本仓库不是同一个项目。真实元数据见 references/upstream.json。本技能的一切路径、API、数据规格均指 Renhuai123/ziwei-doushu。
1. 何时使用
- 「这个仓库里有哪些资源 / 某个功能在哪个文件」→ 第 3 节 +
references/resource-map.md+ 检索脚本。 - 「怎么跑起来 / 怎么改排盘口径 / 怎么验证排盘对不对」→ 第 4 节 +
references/engine-guide.md。 - 「四化表、十四主星、格局、运限怎么算」→ 第 6 节 +
references/foundations.md。 - 「数据集多大、怎么下、能不能用」→ 第 7 节 +
references/datasets-and-license.md。 - 「AI 解读为什么跑不出来」→ 第 8 节开源边界。
- 「能排哪一年到哪一年 / 大限流年能算多远」→ 第 4.1 节排盘时间跨度。
2. 仓库速览(2026-11-05 快照)
| 项 | 值 |
|---|---|
| 仓库 | <https://github.com/Renhuai123/ziwei-doushu> |
| 默认分支 / 文件数 | main / 129 个文件,约 3.6 MB(不含 Releases 数据集) |
| 技术栈 | Next.js 16(App Router)、React 19、TypeScript、Tailwind CSS、Framer Motion;排盘依赖 iztro ^2.5.8 + lunar-javascript ^1.7.3 |
| 体系 | 倪海厦《天纪》,含天纪 / 地纪 / 人纪三纪数据 |
| 授权 | 代码 MIT;数据集 CC BY 4.0;古籍原文公有领域;讲记原话 CC BY-NC-SA 4.0(非商用) |
| 在线平台 | ouranic.cn(运营主体与仓库代码 / 数据许可分离) |
| 排盘受理年份 | 界面 1900–2026(127 年);底层历法上限 2050;数据集覆盖另计,见第 4.1 节 |
3. 全部资源:11 组 129 文件
SK=~/.workbuddy/skills/ziwei-doushu-kb/scripts/find_resource.py
python3 "$SK" --groups # 分组统计
python3 "$SK" 四化 # 按路径或用途检索
python3 "$SK" --group engine --top 30 # 排盘引擎全部文件
python3 "$SK" --group corpus --json # 讲记语料机器可读输出
python3 "$SK" --min-size 40000 --url # 大文件 + 官方网页入口
| 分组 | 文件数 | 内容 |
|---|---|---|
engine |
21 | lib/ziwei/ 排盘内核:算法、常量、四化、格局、流派、真太阳时、夏令时、运限、城市经纬度、名人盘、合盘 |
classics |
5 | lib/classics/ 三部古籍原文数据 + 全文搜索 API |
nihai |
5 | lib/nihai/ 天纪 / 人纪 / 地纪模块与倪海厦传记 |
seo |
2 | lib/seo/knowledge.ts 14 主星 × 13 主题知识图谱、lib/site.ts |
corpus |
20 | docs/tianji-ziwei/ 16 讲原话 + entries.jsonl + 总览图 + 目录说明 + 独立许可 |
docs |
2 | 两版更新总览图 |
app |
17 | Next.js 页面:排盘、合盘、命理百科、古籍阅读器、搜索、隐私与条款 |
components |
16 | 命盘方格、宫位格、出生表单、解读面板、星曜详情、格局卡、时间导航、分享卡等 |
tests |
17 | scripts/regression/ 回归测试,覆盖 768 盘 × 紫微铁律、夏令时、立春边界、闰月口径、时辰边界等 |
github |
8 | issue / PR 模板与 CI workflow |
root |
16 | README 中英、LICENSE、DATASET-LICENSE、贡献指南、包配置与 TS 配置 |
references/files.json 是同一份清单的机器可读版本(含每个文件的字节数、分组、用途说明);references/resource-map.md 是逐文件可读版,含「不在仓库里的东西」清单。
4. 排盘引擎能力(lib/ziwei/)
| 能力 | 实现 |
|---|---|
| 完整排盘 | generateChart():安命宫、定五行局、安十四主星、安辅星、排大限流年 |
| 受理年份 | 界面 1900–2026;lunar-solar.ts 常量 LUNAR_YEAR_MIN/MAX = 1900/2050(超出判非法);详见第 4.1 节 |
| 真太阳时 | true-solar-time.ts:出生地经度差 + 均时差;海外用 utcOffsetMinutes |
| 中国夏令时 | dst-cn.ts:1986–1991 区间判定(只判定、不自动扣除),chinaDSTSpan(year) |
| 钟表读数换算 | clock-adjust.ts:夏令时或当年时区不同时换成标准时间,建议用户手动点、可撤销 |
| 闰月四口径 | split 月中分界(默认)/ next-month 归下月 / prev-month 归本月 / origin-month 不调整 |
| 晚子时换日 | 23:00 后按次日、00:00 后按本日;填出生地时按真太阳时判断,四种策略可切 |
| 亮度七档 | 庙 / 旺 / 得 / 利 / 平 / 不 / 陷,流派可切(默认《斗数全书》,2026-10-20 起) |
| 四化与飞星 | 生年四化、大限 / 流年 / 流月 / 流日 / 流时四化、飞星自化、来因宫追溯 |
| 十二神煞 | 本命按生年支起、流年层按流年支起 |
| 格局判定 | detectPatterns():30+ 格局,条件分「必须 / 加分 / 破格」三层并附古籍出处 |
| 合盘 | heming-knowledge.ts:倪师体系双盘比对 |
9+1 类流派开关(school-config.ts):14 主星亮度表、庚年四化 5 变体(GYWYT 阳武阴同等)、安天马、安天空、截空旬空、安魁钺、天使天伤、长生十二神、晚子时、闰月。默认值 SCHOOL_DEFAULT_CONFIG 对齐主流排盘口径,配置持久化在 localStorage 的 ziwei-school-config-v1。
快速开始:
git clone https://github.com/Renhuai123/ziwei-doushu.git
cd ziwei-doushu
npm install
cp .env.example .env.local # 只看排盘可跳过
npm run dev
npm run typecheck
npm test # 17 个回归脚本串跑
> 开源版不含后端 API 路由,排盘与合盘起盘都在浏览器内完成,不需要任何 API Key。关键 API、配置项与二次开发路径见 references/engine-guide.md。
4.1 排盘时间跨度:三层口径勿混为一谈
| 层次 | 范围 | 依据 |
|---|---|---|
| 界面可选出生年份 | 1900–2026(127 年) | components/BirthForm.tsx 校验 y < 1900 || y > 2026,提示「年份范围:1900–2026」;下拉框 Array.from({length:127}, (_,i)=>2026-i)。上限 2026 是随发版写入的快照值,不是动态当前年 |
| 引擎历法受理上限 | 1900–2050(151 年) | lib/ziwei/lunar-solar.ts 的 LUNAR_YEAR_MIN=1900 / LUNAR_YEAR_MAX=2050,注释称与 /api/generate 对齐,超出直接判非法(lunar 表在极端年份不可靠) |
| 数据集覆盖出生年份 | v3.0 1924–1983(60 年)/v4.0 1950–2026(77 年) | README 数据集规格表,是预生成解读文本,详见第 7 节 |
三者关系:从 Demo 实际能排的是 1900–2026;2050 只是底层农历换算的兜底上限;数据集覆盖更窄,且只是算好的文本。开源快照不含 app/api/ 路由,/api/generate 的实际校验无法逐行复核,服务端以线上版本为准。
运限跨度:大限由 iztro 生成 daXianAge,12 宫每限通常 10 年,起始虚岁由五行局决定,覆盖到百岁上下;当前大限按 horoscope().age.nominalAge(虚岁)判定。流年 / 流月 / 流日 / 流时按所选农历流年换算虚岁查大限(yunxian-context.ts 的 getDaXianIndexForYear),源码未设流年上限,超出已生成大限范围返回 -1;虚岁 1–5 走童限表。真太阳时均时差近似式标注「1900–2026 范围内足以稳定」。详见 references/engine-guide.md 第 6.1 节。
5. 古籍、三纪体系与讲记语料
- 古籍查询库
lib/classics/:ALL_BOOKS收录《骨髓赋》《紫微斗数全集》《紫微斗数全书》三部公有领域原文,静态 JSON 打包、零 DB 零网络;searchClassics(query, limit)子串全文搜索返回带上下文的命中,getBookBySlug/getChapter/getParagraphById按层级取文。Demo 的古籍阅读器与全文搜索页就建在这套 API 上。 - 三纪体系
lib/nihai/:天纪(紫微、易经、堪舆、面相)、地纪(地理风水)、人纪(针灸、经方),导出TIANJI_MODULES/HEXAGRAMS/FENGSHUI_ENTRIES/TIANJI_EPISODES/TIANJI_QUOTES/RENJI_*/DIJI_*及NI_HAIXIA_BIO。核心理念含「命宫为本,三方为用」「人事努力 + 地理调整 > 先天命运」。 - 讲记语料
docs/tianji-ziwei/:倪师《天纪》紫微部分原话 1848 条 = 正课 14 讲(2上–15上)1808 条 + 19上补充 29 条 + 24下补充 11 条,按讲拆成 16 个 markdown;每条格式为「时间码 + B 站链接 + 原话 + 考据标注 + 册目」,entries.jsonl(约 722 KB)为机器可读版。许可 CC BY-NC-SA 4.0,非商用,与根目录 MIT / CC BY 4.0 分离。
6. 知识框架速查
- 十四主星(
constants.ts的STAR_DESCRIPTIONS):紫微(帝王·尊贵)、天机(智慧·机变)、太阳(阳刚·官贵)、武曲(财富·刚毅)、天同(温和·享福)、廉贞(才艺·刑囚)、天府(财库·稳重)、太阴(柔美·财富)、贪狼(欲望·多才)、巨门(口舌·善辩)、天相(辅佐·印绶)、天梁(荫护·医药)、七杀(将星·果决)、破军(开创·变动),各带五行与吉凶倾向。 - 十二宫序:命宫、兄弟、夫妻、子女、财帛、疾厄、迁移、交友、官禄、田宅、福德、父母。
- 五行局:水二局、木三局、金四局、土五局、火六局(
ELEMENT_TO_JU/JU_NAMES)。 - 十天干四化表(
SI_HUA_TABLE,顺序 禄 / 权 / 科 / 忌):甲 廉贞破军武曲太阳|乙 天机天梁紫微太阴|丙 天同天机文昌廉贞|丁 太阴天同天机巨门|戊 贪狼太阴右弼天机|己 武曲贪狼天梁文曲|庚 太阳武曲太阴天同|辛 巨门太阳文曲文昌|壬 天梁紫微左辅武曲|癸 破军巨门太阴贪狼。庚年有 5 种流派变体,用gengYearSihua切换。 - 三方四正:命宫 + 财帛 + 官禄 + 迁移;
getSanFangPalaces()按地支[m, m+4, m+8, m+6]取。 - 经典格局(
patterns.ts):君臣庆会、紫府同宫、府相朝垣、阳梁昌禄、武贪格、杀破狼、机月同梁、日月同宫、日月夹命、巨日同宫、石中隐玉、明珠出海、辅弼夹命、昌曲夹命、魁钺夹命、双禄朝垣、三奇加会、羊陀夹忌、火铃夹命、空劫夹命、铃昌陀武、马头带箭等,另有破格警示组。 - 运限:大限、小限、流年、流月、流日、流时;童限由
yunxian-context.ts处理。
完整表格与出处说明见 references/foundations.md。
7. 两代数据集与四段授权
| 数据集 | 命盘 | 维度 | 压缩 / 解压 | 覆盖 | 许可 |
|---|---|---|---|---|---|
v3.0 样本(v3.0-samples) |
518,400 | 13 主题 | 5.5 GB / 33.1 GB | 1924–1983(60 年):年 60 × 月 12 × 日 30 × 时 12 × 性别 2 | CC BY 4.0 |
v4.0 解读(v4.0-13d) |
674,976 | 13 维 = 8,774,688 段 | 161 MB / 56.6 GB | 1950–2026 真实日期 × 12 时辰 × 男女 | CC BY 4.0 |
v4.0 为 JSON Lines,每行一张盘,字段 k(YYYY-MM-DD-时辰序号-性别)、y/m/d、h(时辰序号 0–11,不是钟点)、g(male/female)、ms(命宫第一主星)、t(各维字数)、c(13 维 Markdown 全文,键为 overview/personality/love/career/wealth/health/family/children/move/friends/home/spirit/parents)。按年份分 77 个 zstd 文件,解压须 zstd -d --long=27,用 SHA256SUMS.txt 校验。
四段授权:代码 MIT;Releases 数据集 CC BY 4.0(唯一要求保留来源标注,作者「王多鱼AI」);古籍原文公有领域;docs/tianji-ziwei/ 讲记原话 CC BY-NC-SA 4.0 非商用,数据集解读里引用的原话同样不在数据授权范围内。详见 references/datasets-and-license.md。
本技能边界:只提供路径索引与自撰说明,不打包、不复制、不再分发任何源码、古籍原文、讲记语料或数据集实体;需要原始资源请按第 3 节给出的官方链接自行获取。术数属传统文献与民俗文化研究对象,结论不具科学预测效力,宜作文本与文化分析材料。
8. 开源边界:什么不在仓库里
| 不开源 | 说明 |
|---|---|
| 13 主题断语库 | 线上上万行;lib/ziwei/db-analysis.ts 只是 2 KB 占位实现 |
AI 解读 prompt 与 /api/interpret、/api/heming |
需自行实现接口,配 API Key 也不会生效 |
| 用户系统、支付、服务端安全、部署配置 | 不在开源范围 |
| 线上商业版界面 | 仓库 app/ + components/ 是最小 Demo,线上组件代码量约为其 10 倍 |
| 数据集实体文件 | 不在 git 树中,走 Releases 分发 |
想自建 AI 解读:用 lib/ziwei/patterns.ts(格局规则 + 古籍出处)与 heming-knowledge.ts(合盘方法论)作知识源,自行构造 prompt,或直接用 CC BY 4.0 的 v4.0 数据集做检索增强。
9. 排障
| 现象 | 原因与处理 |
|---|---|
| 排盘与他人对不上 | 优先对齐三处口径:闰月(leapMonth)、晚子时(lateZishi)、庚年四化(gengYearSihua);其次看亮度流派与真太阳时 |
| 真太阳时校正无效 | 需填出生地(cities.ts 提供经纬度);海外出生地传 utcOffsetMinutes |
| 夏令时结果不变 | 引擎只判定 1986–1991 区间,不自动扣时;clock-adjust.ts 需用户确认后手动换算 |
| 亮度不一致 | 2026-10-20 起默认改《斗数全书》;v4.0 数据集(10-15 生成)按旧默认「现代修正 v2」,两者亮度字会有差异 |
| 名盘样本时辰错位 | famous.ts 的 hour 是时辰地支索引 0–11,不是 0–23 小时数;已加回归钉住 |
| AI 解读无输出 | Demo 不含后端接口,属预期;参第 8 节 |
npm test 失败 |
17 个回归脚本串跑,任一失败即中断;按失败脚本名定位对应口径 |
| 闰月参数写错被静默处理 | 2026-11-02 起当场抛错,不再静默按归本月排盘 |
10. 官方链接
- 仓库:<https://github.com/Renhuai123/ziwei-doushu>
- 语料来源:<https://github.com/Renhuai123/nihai-tianji-corpus>
- 排盘依赖:<https://github.com/SylarLong/iztro> · <https://docs.iztro.com/quick-start.html>
- 文件直达:
python3 scripts/find_resource.py --group engine --url
11. 文件导航
| 文件 | 内容 |
|---|---|
SKILL.md |
本文件:仓库定位、全资源总览、引擎能力、知识速查、边界与排障 |
references/files.json |
129 个文件的机器可读清单(路径 / 大小 / 分组 / 用途) |
references/resource-map.md |
逐文件资源地图 + 不开源清单 |
references/foundations.md |
紫微斗数知识框架:主星、宫位、四化表、五行局、格局、运限、流派 |
references/engine-guide.md |
引擎开发指南:导出函数、配置项、年份边界与运限跨度、回归测试、二次开发路径 |
references/datasets-and-license.md |
两代数据集规格、下载与校验、四段授权分层 |
references/upstream.json |
主仓库与同名 / 上游仓库的真实元数据,避免混淆 |
scripts/find_resource.py |
全库资源检索 CLI |