Bazi Full Fortune Telling

Other

八字全方位算命 Skill — 排盘引擎 + 六亲十神规则 + 家庭校准 + 八大维度全方位分析模板。

Install

openclaw skills install bazi-full-fortune

八字全方位算命 Skill

项目定位

本项目是一个完整的八字命理工作流工具集,包含:

  1. 排盘层 — 基于 cantian-tymext 的 CLI 脚本,支持阳历/农历输入,输出完整四柱、十神、神煞、大运、刑冲合会
  2. 分析层 — 全方位命理解读模板,覆盖家庭、健康、事业、财富、感情、人际、学业、精神八大维度
  3. 参考层 — 家庭背景命理模式速查清单,用于校准分析准确性

何时使用

  • 用户要根据阳历/农历出生时间计算四柱八字
  • 用户要"全方位分析这个八字"或"帮我全面分析八字"
  • 用户要查询某一天对应的农历、干支、宜忌等信息
  • 用户要"查黄历"或看某天宜忌
  • 用户给出已知四柱干支要求反推阳历日期

前置依赖

  • 推荐运行环境:Node 24(可直接运行 TypeScript 源码)
  • 兼容方案:若 Node 版本较低,使用 tsx 执行
npm install

# 仅在需要兼容运行时安装
# npm install -D tsx

〇、使用指南

1. CLI 脚本直接调用

阳历排盘:

node scripts/buildBaziFromSolar.ts "2000-12-22T03:30:00" 0 2
参数说明必填取值
solarTime阳历出生时间(ISO 8601,不带时区)2000-12-22T03:30:00
gender性别1=男,0=女(默认 1)
sect早晚子时配置1=23:00-23:59 算次日,2=算当日(默认 2)

农历排盘:

node scripts/buildBaziFromLunar.ts "2000-11-27T03:30:00" 0 2

参数格式与阳历一致,时间传入农历日期。注意:不支持农历闰月,闰月需先手动转换为阳历再调用阳历排盘。

黄历查询:

# 查询今天
node scripts/getChineseCalendar.ts

# 查询指定日期
node scripts/getChineseCalendar.ts 2024-02-10

反推扫描(从已知八字四柱反查阳历出生日期):

# 完整四柱匹配
node scripts/scan_year.ts 2000 0 \
  --year-pillar 庚辰 \
  --month-pillar 戊子 \
  --day-pillar 甲寅 \
  --hour-pillar 丙寅 \
  --hour 03:30:00

# 部分匹配(只知道年月日柱,时柱不确定)
node scripts/scan_year.ts 2000 0 \
  --year-pillar 庚辰 \
  --month-pillar 戊子 \
  --day-pillar 甲寅

# 跨年份扫描(同一八字每 60 年重复出现)
for y in 1940 2000; do node scripts/scan_year.ts $y 0 --day-pillar 甲寅; done
参数说明
year要扫描的年份(必填)
gender0=女,1=男(必填)
--year-pillar年柱过滤(如 庚辰)
--month-pillar月柱过滤(如 戊子)
--day-pillar日柱过滤(如 甲寅)
--hour-pillar时柱过滤(如 丙寅)
--hour扫描用的时间,默认 15:30:00(申时)

2. npm scripts 快捷方式

不想记完整路径可以用 npm scripts:

npm run bazi:solar -- "2000-12-22T03:30:00" 0 2
npm run bazi:lunar -- "2000-11-27T03:30:00" 0 2
npm run calendar
npm run calendar -- 2024-02-10
npm run scan -- 2000 0 --day-pillar 甲寅 --hour 03:30:00

3. 作为 AI Agent 技能使用(Hermes / OpenClaw)

安装后,AI Agent 会自动加载此技能。直接对 Agent 说话即可触发:

排盘:

帮我排一下八字:2000年12月22日凌晨3点半,女

全方位分析:

庚辰 戊子 甲寅 丙寅 女 2000年生人,帮我全方位分析

Agent 会自动:

  1. 调用排盘脚本获取完整数据(四柱、十神、神煞、大运、刑冲合会)
  2. 向你提出 5 个校准问题(父母关系、父亲驻地、母亲角色、家庭经济、自身状态)
  3. 根据你的回答校准分析
  4. 按八大维度模板输出完整解读报告

反推阳历:

庚辰 戊子 甲寅 丙寅,女命,帮我反推一下阳历出生日期

查黄历:

帮我查一下今天的黄历
帮我查一下 2024-02-10 的农历和宜忌

4. 完整分析工作流(给开发者/高阶用户)

如果你想手动走完整流程,步骤如下:

第一步:排盘

node scripts/buildBaziFromSolar.ts "2000-12-22T03:30:00" 0 2

输出包含:四柱天干地支、十神、纳音、星运、自坐、藏干、宫位、神煞、大运、刑冲合会。

第二步:校准(向用户确认 5 个事实)

  1. 父母是否在一起?
  2. 父亲做什么工作?常驻地在哪里?
  3. 母亲在带你吗?还是由其他长辈带大?
  4. 家里做什么的?(开店/体制内/务农/外出务工)
  5. 你目前在做什么?(学业/工作/哪个阶段)

第三步:根据排盘数据 + 校准信息,按第八章"全方位分析输出模板"填充分析报告。

第四步:输出为 txt 文件,文件名格式 八字全解_日主X_生肖X.txt


一、排盘 CLI

脚本清单

脚本功能
scripts/buildBaziFromSolar.ts根据阳历时间生成八字 Markdown
scripts/buildBaziFromLunar.ts根据农历时间生成八字 Markdown
scripts/getChineseCalendar.ts查询指定日期(默认今天)的农历与干支信息
scripts/scan_year.ts从已知八字反查阳历日期(全年扫描)
scripts/util.ts公共参数解析工具

buildBaziFromSolar.ts

node scripts/buildBaziFromSolar.ts <solarTime> [gender] [sect]

参数:

  • solarTime(必填):ISO 8601 日期时间(不带时区),如 1990-05-15T14:30:00
  • gender(可选):1=男,0=女,默认 1
  • sect(可选):1=23:00-23:59 视为明天,2=视为当天,默认 2

buildBaziFromLunar.ts

node scripts/buildBaziFromLunar.ts <lunarTime> [gender] [sect]

参数同上,lunarTime 为农历时间。

getChineseCalendar.ts

node scripts/getChineseCalendar.ts [date]
  • date(可选):YYYY-MM-DD 格式,默认当天

农历闰月处理

buildBaziFromLunar.ts 不支持闰月。处理流程:

  1. tyme4ts 构造闰月农历日,获取对应阳历:
import { LunarDay } from 'tyme4ts';
const solarDay = LunarDay.fromYmd(1998, -5, 13).getSolarDay();
// 负月号 = 闰月,如 -5 表示闰五月
  1. 用得到的阳历日期调用 buildBaziFromSolar.ts

二、反推日期:从已知八字反查阳历

当用户只给出四柱干支(如"丁丑 癸卯 戊午 庚申")而没有具体日期时,使用 scan_year.ts

使用方法

# 完整四柱匹配
node scripts/scan_year.ts 1996 0 --year-pillar 丙子 --month-pillar 辛卯 --day-pillar 甲寅 --hour-pillar 壬申

# 部分匹配(只知年月日柱)
node scripts/scan_year.ts 1996 0 --year-pillar 丙子 --month-pillar 辛卯 --day-pillar 甲寅

# 指定时辰扫描
node scripts/scan_year.ts 1996 0 --day-pillar 甲寅 --hour 12:00:00

# 跨年份扫描(每60年重复)
for y in 1936 1996; do node scripts/scan_year.ts $y 0 --day-pillar 甲寅; done

参数:year(必填) gender(0=女/1=男) --year-pillar --month-pillar --day-pillar --hour-pillar --hour(默认15:30:00)

时柱与时间对应表

时辰时间段示例
23:00-00:59T23:30
01:00-02:59T01:30
03:00-04:59T03:30
05:00-06:59T05:30
07:00-08:59T07:30
09:00-10:59T09:30
11:00-12:59T11:30
13:00-14:59T13:30
15:00-16:59T15:30
17:00-18:59T17:30
19:00-20:59T19:30
21:00-22:59T21:30

反推逻辑

  1. 年柱推年份(干支纪年,如丁丑=1997,每60年一轮)
  2. 月柱推农历月份范围
  3. 在缩小的月份范围内用 scan_year.ts 扫描匹配日柱
  4. 验证时柱是否正确

三、六亲十神对应(核心规则,不可搞错)

根据命主性别,所有六亲对应的十神不同。这是八字论命的基础,搞错则全盘皆错。

父亲

  • 男命:偏财为父(同性我克)
  • 女命:正财为父(异性我克)

母亲

  • 男命:正印为母(异性生我)
  • 女命:偏印为母(同性生我,又叫枭神)

配偶

  • 男命:正财为妻(异性我克)
  • 女命:正官为夫(异性克我)

子女

  • 男命:七杀为子(同性克我),正官为女(异性克我)
  • 女命:伤官为子(异性我生),食神为女(同性我生)

兄弟姐妹(男女互换)

  • 男命:比肩=兄弟,劫财=姐妹
  • 女命:比肩=姐妹,劫财=兄弟

祖辈(辅助参考)

  • 男命:偏印为祖父(父亲的父亲),正财为祖母(父亲的母亲)
  • 女命:食神为祖父,偏财为祖母

原理

男命属阳,取"同性"星代表同性亲属、"异性"星代表异性亲属;女命属阴,反之。核心逻辑是"同阴阳为偏,异阴阳为正"。

完整速查表

六亲男命十神女命十神
父亲偏财正财
母亲正印偏印(枭神)
配偶正财(妻)正官(夫)
儿子七杀伤官
女儿正官食神
兄弟比肩劫财
姐妹劫财比肩
祖父偏印食神
祖母正财偏财

实战示例(以甲木日主为例)

甲木男命:

  • 父 = 戊土(偏财)
  • 母 = 癸水(正印)
  • 妻 = 己土(正财)
  • 子 = 庚金(七杀),女 = 辛金(正官)
  • 兄弟 = 甲木(比肩),姐妹 = 乙木(劫财)

甲木女命:

  • 父 = 己土(正财)
  • 母 = 壬水(偏印)
  • 夫 = 辛金(正官)
  • 子 = 丁火(伤官),女 = 丙火(食神)
  • 姐妹 = 甲木(比肩),兄弟 = 乙木(劫财)

丁火男命:

  • 父 = 辛金(偏财)
  • 母 = 甲木(正印)
  • 妻 = 庚金(正财)
  • 子 = 壬水(七杀),女 = 癸水(正官)

丁火女命:

  • 父 = 庚金(正财)
  • 母 = 乙木(偏印)
  • 夫 = 壬水(正官)
  • 子 = 戊土(伤官),女 = 己土(食神)

常见错误

  1. 不分男女一律用"偏财为父、正印为母"——这是错的
  2. 不分男女一律用"正财为妻"——女命没有"妻",女命配偶星是正官
  3. 不分男女一律用"官杀为子女"——女命子女星是食伤,不是官杀
  4. 必须在分析开头明确标注命主性别对应的所有六亲十神,后续全文保持一致

子女星特殊情况

  • 男命以官杀为子女(克我者),因为古代"子女克父母"即子女让父母操心
  • 女命以食伤为子女(我生者),因为母亲生育子女
  • 如果命局中子女星不现(不见天干也不藏地支),说明子女缘薄或来得晚
  • 子女星被克(男命食伤克官杀、女命印星克食伤)→ 生育不顺或子女身体弱

四、校准工作流

不要拿到八字就直接给最终结论。Bazi 是骨架,事实是血肉。第一轮分析如果不校准关键事实,可能全错。

排盘后必问的 5 个事实

  1. 父母是否在一起 — 校准月柱天干冲日主的解读(离婚/分离信号)
  2. 父亲职业/常驻地 — 校准父亲星是否"在场"
  3. 母亲是否在带/是否缺席 — 校准母亲星是否"在场"
  4. 家里做什么的(开店/体制内/务农/外出务工)— 校准食伤旺的解读
  5. 自己的学历/工作状态 — 校准印星和财星的解读

工作流

  1. 排盘得到八字 → 跑一遍"骨架分析"(五行强弱、格局、十神)
  2. 立即向用户提出 5 个校准问题
  3. 用户回答后重新分析那些命理信号
  4. 给出最终报告

提问时机

不要堆在最后才问——在"骨架分析"完成后立即提问,用户回答后再做完整解读。


五、分析要点

五行强弱:加权计算,不可数数

绝对不能把地支和藏干本气重复计算。

来源权重
天干透出100%(1.0)
月令本气100%(1.0,当令加成)
其他地支本气≈70%(0.7)
藏干中气≈40%(0.4)
藏干余气≈20%(0.2)

十神分析

  • 天干透出的十神权重最高
  • 地支藏干的十神为辅

刑冲合会

  • 冲 = 冲突/变动/分离
  • 合 = 牵绊/合作/稳定
  • 刑 = 内在折磨/反复
  • 害 = 暗中损害

神煞

  • 重点看:贵人、驿马、桃花、空亡、孤鸾、八专
  • 神煞是锦上添花,不是决定性因素

大运

  • 每步大运10年
  • 重点分析当前和未来2步大运
  • 结合流年给出关键年份提醒

六、全方位分析输出模板

输出要求

  1. 先跑排盘脚本获取数据
  2. 如需校准,先向用户提问
  3. 按以下模板生成 txt 文件
  4. 文件名格式:八字全解_日主X_生肖X.txt

模板

---

全方位命理解读

八字:[年柱] [月柱] [日柱] [时柱]
日主:[日干]([阴阳][五行])
生肖:[生肖]
纳音:[纳音]命
性别:[男/女]

---

👨‍👩‍👧 家庭

父亲
- 男命看偏财,女命看正财([位置])
- [根据十神、地支、藏干分析父亲性格和能力]
- [父亲与命主的关系:刑冲合会]
- [父亲对命主的影响]
- 💡 建议:[针对父子/父女关系的建议]

母亲
- 男命看正印,女命看偏印(枭神)——[位置]
- [根据十神、地支、藏干分析母亲性格]
- [母亲与命主的关系]
- [母亲对命主的影响]
- 💡 建议:[针对母子/母女关系的建议]

兄弟姐妹
- [比肩/劫财分析同辈关系]
- [数量和关系质量]

家庭整体
- [家境分析:月柱冠带/临官等]
- [父母关系]
- [童年氛围]
- [成年后与家庭的关系走向]

---

🏥 健康

五行对应脏腑
🌳 木
• 脏腑: 肝胆
• 强弱: [根据排盘判断]
• 状况: [具体表现]

🔥 火
• 脏腑: 心脏、眼睛
• 强弱: [根据排盘判断]
• 状况: [具体表现]

🌍 土
• 脏腑: 脾胃
• 强弱: [根据排盘判断]
• 状况: [具体表现]

🪙 金
• 脏腑: 肺、大肠、皮肤
• 强弱: [根据排盘判断]
• 状况: [具体表现]

💧 水
• 脏腑: 肾、膀胱、生殖
• 强弱: [根据排盘判断]
• 状况: [具体表现]

重点健康问题
1. [根据五行过旺/过弱/刑冲分析的第1个问题]
2. [第2个问题]
3. [第3个问题]
4. [第4个问题]
5. [第5个问题]

健康养生建议
- ✅ [建议1]
- ✅ [建议2]
- ✅ [建议3]
- ✅ [建议4]
- ⚠️ [注意事项]

---

👤 外貌身材

整体气质
[日主五行对应的气质描述]

- 身形:[骨架、体态]
- 脸型:[脸型特征]
- 眉眼:[眉眼特征]
- 鼻梁:[鼻型]
- 皮肤:[肤色肤质]
- 头发:[发质发量]
- 声音:[声音特征]

气质加分项
- [神煞对外貌的影响]
- [十神组合对气质的影响]

身材走势
- [年龄段1]:[描述]
- [年龄段2]:[描述]
- [年龄段3]:[描述]
- 💡 [当前年龄的建议]

穿着风格
- 适合:[风格建议]
- 不适合:[避免的风格]
- 颜色:[喜用五行对应颜色]
- 避免:[忌神五行对应颜色]
- 小配饰加分:[饰品建议]

---

💼 事业

事业格局
[十神组合判断事业类型]

- [事业特点1]
- [事业特点2]
- [事业特点3]
- [事业特点4]

适合行业(按喜用五行排序)
🪙 金
• 行业: [具体行业]
• 适配度: [星级]

🔥 火
• 行业: [具体行业]
• 适配度: [星级]

🌍 土
• 行业: [具体行业]
• 适配度: [星级]

🌳 木
• 行业: [具体行业]
• 适配度: [星级]

💧 水
• 行业: [具体行业]
• 适配度: [星级]

事业时间线
[年龄段1]
• 阶段: [关键词]
• 关键词: [描述]

[年龄段2]
• 阶段: [关键词]
• 关键词: [描述]

[年龄段3]
• 阶段: [关键词]
• 关键词: [描述]

[年龄段4]
• 阶段: [关键词]
• 关键词: [描述]

[年龄段5]
• 阶段: [关键词]
• 关键词: [描述]

与领导/同事关系
- [与上司的关系模式]
- [容易遇到的类型]
- [职场人际建议]
- ✅ [合作贵人特征]

---

💰 财富

财运格局
- [财星分析:正财/偏财哪个旺]
- [赚钱模式]
- [财运特征]

财富等级预估
- 走对路:[描述]
- 走错路:[描述]
- 保险策略:[建议]

破财年份(重点记)
- ⚠️ [年份1]:[原因]
- ⚠️ [年份2]:[原因]
- ⚠️ [年份3]:[原因]

偏财 vs 正财
- 偏财:[适合的赚钱方式]
- 正财:[适合的赚钱方式]
- [命主的财运偏向]
- 💡 建议:[理财建议]

理财避坑
- ❌ [不要做的事1]
- ❌ [不要做的事2]
- ❌ [不要做的事3]
- ✅ [应该做的事1]
- ✅ [应该做的事2]

---

💕 感情婚姻

[男命:妻子画像 / 女命:丈夫画像]
- [配偶星位置分析]
- [配偶性格特征]
- [配偶外貌特征]
- [配偶职业/年龄倾向]

感情模式
- [感情特点1]
- [感情特点2]
- [感情特点3]
- [典型感情过程]

婚配建议
- 宜配生肖:[三合/六合生肖]
- 次配:[其他合适生肖]
- ⚠️ 慎配:[相冲/相害生肖]
- 配偶方位:[喜用神对应方位]
- 职业上:[适合的配偶职业类型]

婚期最佳年
- ✨ [年份1]([原因],最推荐)
- ✨ [年份2]([原因],第二选择)
- 🟢 [其他可选年份]
- ⛔️ 避开 [不利的年份]

感情避坑
- ❌ [不要做的事]
- ❌ [不要做的事]
- ✅ [应该做的事]
- ✅ [应该做的事]

---

👥 人际关系

朋友圈
- [比肩/劫财分析交友特点]
- [朋友数量和质量]
- [社交风格]

贵人运
- [贵人神煞分析]
- 贵人类型:[描述]
- 贵人属相:[生肖]
- 贵人方位:[方位]
- 💡 [如何吸引贵人]

小人运
- [小人出现的时期]
- 小人类型:[描述]
- ⚠️ [防小人建议]

---

📚 学业

读书运
- [印星分析学业]
- [考试运]
- [思维特点]
- [适合的研究方向]

学历预估
- [正常路线]
- [学术路线]
- [潜在障碍]

学习风格
- [学习方式偏好]
- [动力来源]
- 💡 建议:[学习方法建议]

---

🧘 精神世界

[神煞分析精神层面]
- [灵性/直觉特点]
- [内心世界的矛盾]
- [艺术/创作天赋]

内心世界
- 表面:[外在表现]
- 内心:[内在真实状态]
- [独处时的状态]
- 💡 建议:[精神出口建议]

信仰建议
- [适合的信仰方向]
- [适合的修行方式]
- [可能接触玄学的时期]

---

[对应生肖emoji] 综合特质 · 一句话总结

生肖 emoji 对照:鼠🐭 牛🐮 虎🐯 兔🐰 龙🐲 蛇🐍 马🐴 羊🐑 猴🐒 鸡🐔 狗🐶 猪🐷

[用一句话概括整个命盘的核心特质和人生走向]

[2-3句话总结人生节奏和关键转折点]

输出格式规则

  1. 不用 加粗(某些渲染器不支持)
  2. 不给具体数字(身高/婚龄/金额等用范围描述)
  3. 用 Emoji 做视觉分隔
  4. 用 --- 做章节分隔
  5. 文件编码 UTF-8
  6. 中文输出

七、常见陷阱

不要纯靠手推判断日主强弱

手动分析容易遗漏星运细节。必须以脚本输出的 星运自坐 字段为准,再结合五行生克综合判断。

五行强弱判断:加权计算,不可数数

绝对不能把地支和藏干本气重复计算。详见上方"分析要点 → 五行强弱"。

辛金喜忌:不要把土当喜用神

辛金(珠玉金)忌土重埋金。辛金喜壬水洗涤、喜甲木疏土。不能机械套用"印生身=印是喜用"。

父母分析:不要套"严父慈母"/"严母慈父" cliché

详见 references/family-patterns.md。核心原则:先回答"在不在场"再回答"严不严"。

食神制杀的工作形态:不一定是大机构

食神制杀 = 用温和方式管人/化解压力。在大机构、小个体户、自由职业、家庭中都可能出现。形态取决于命中其他配置。

cantian-tymext API 返回中文字段名,不是英文

buildBaziFromSolar() 返回的对象使用中文字段名,不是英文。手写代码时必须用中文字段访问:

// ❌ 错误 — 这些字段不存在,返回 undefined
bazi.yearPillar
bazi.monthPillar
bazi.dayPillar
bazi.hourPillar

// ✅ 正确 — 中文字段名
bazi.年柱.天干.天干  // → "庚"
bazi.年柱.地支.地支  // → "辰"
bazi.月柱.天干.天干  // → "戊"
// ... 以此类推

完整字段结构示例(甲申年 戊辰月 甲寅日 庚午时):

{
  "性别": 1, "阳历": "...", "农历": "...", "八字": "...", "生肖": "猴", "日主": "甲",
  "年柱": { "天干": { "天干": "甲", "五行": "木", "阴阳": "阳", "十神": "比肩" }, "地支": { "地支": "申", ... } },
  "月柱": { ... }, "日柱": { ... }, "时柱": { ... },
  "胎元": ..., "胎息": ..., "命宫": ..., "身宫": ..., "神煞": [...], "大运": [...], "刑冲合会": {...}
}

⚠️ 陷阱:try/catch 会把 TypeError: Cannot read properties of undefined 静默吞掉,表面看到 0 matches 而不是报错。写 scan_year 类脚本时,不要把 pillar 访问放在宽泛的 try/catch 里——至少 log 一下非日期相关的错误。

经验教训:PR #2 修复了此 bug,原 scan_year.tsbazi.yearPillar.toString() 导致所有反推扫描永远返回 0 matches。

本地 skill 与 GitHub 仓库同步

当 skill 同时存在于本地 Hermes(~/.hermes/skills/)和 GitHub 仓库时:

  • PR 合并只更新 GitHub 仓库,不会自动更新本地 skill
  • 每次合并 PR 后,必须手动将改动同步到本地 skill 目录
  • 同步方法:cp ~/Documents/bazi-full-fortune/scripts/*.ts ~/.hermes/skills/divination/bazi-full-fortune/scripts/
  • 同理,ClawHub 发布也需要手动同步后重新 publish

八、参考文档

  • references/family-patterns.md — 家庭背景命理模式速查清单(8种模式的信号→推断→校准问题)

九、ClawHub 发布注意事项

Frontmatter 必须纯 ASCII

ClawHub 后端(Convex DB)不接受非 ASCII 字符作为字段名。以下会导致发布失败:

  • tags 中包含中文标签(如 八字命理四柱)→ 报错 Field name 八字 has invalid character '八'
  • name 字段使用中文(如 八字全方位算命)→ 同样报错

正确做法:

  • tags 只用英文:[bazi, fortune-telling, chinese-astrology, destiny-analysis, four-pillars]
  • name 用英文:Bazi Full Fortune Telling(中文放在 description 里,description 支持 Unicode)
# ❌ 会失败
clawhub publish . --name "八字全方位算命" --tags "bazi,八字,命理"

# ✅ 正确
clawhub publish . --name "Bazi Full Fortune Telling" --tags "bazi,fortune-telling,chinese-astrology"

十、注意事项

  1. 所有命令均在项目根目录执行
  2. 时间字符串不要携带时区后缀(如 Z+08:00),以免产生与预期不一致的换日结果
  3. 涉及 23:00-23:59 出生时,建议显式传 sect,避免晚子时归属歧义
  4. 农历闰月必须先转阳历再用 buildBaziFromSolar.ts
  5. 反推扫描请用 scan_year.ts(纯 TypeScript,无需 Python)