Install
openclaw skills install bazi-full-fortune八字全方位算命 Skill — 排盘引擎 + 六亲十神规则 + 家庭校准 + 八大维度全方位分析模板。
openclaw skills install bazi-full-fortune本项目是一个完整的八字命理工作流工具集,包含:
cantian-tymext 的 CLI 脚本,支持阳历/农历输入,输出完整四柱、十神、神煞、大运、刑冲合会tsx 执行npm install
# 仅在需要兼容运行时安装
# npm install -D tsx
阳历排盘:
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 | 要扫描的年份(必填) |
| gender | 0=女,1=男(必填) |
| --year-pillar | 年柱过滤(如 庚辰) |
| --month-pillar | 月柱过滤(如 戊子) |
| --day-pillar | 日柱过滤(如 甲寅) |
| --hour-pillar | 时柱过滤(如 丙寅) |
| --hour | 扫描用的时间,默认 15:30:00(申时) |
不想记完整路径可以用 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
安装后,AI Agent 会自动加载此技能。直接对 Agent 说话即可触发:
排盘:
帮我排一下八字:2000年12月22日凌晨3点半,女
全方位分析:
庚辰 戊子 甲寅 丙寅 女 2000年生人,帮我全方位分析
Agent 会自动:
反推阳历:
庚辰 戊子 甲寅 丙寅,女命,帮我反推一下阳历出生日期
查黄历:
帮我查一下今天的黄历
帮我查一下 2024-02-10 的农历和宜忌
如果你想手动走完整流程,步骤如下:
第一步:排盘
node scripts/buildBaziFromSolar.ts "2000-12-22T03:30:00" 0 2
输出包含:四柱天干地支、十神、纳音、星运、自坐、藏干、宫位、神煞、大运、刑冲合会。
第二步:校准(向用户确认 5 个事实)
第三步:根据排盘数据 + 校准信息,按第八章"全方位分析输出模板"填充分析报告。
第四步:输出为 txt 文件,文件名格式 八字全解_日主X_生肖X.txt。
| 脚本 | 功能 |
|---|---|
scripts/buildBaziFromSolar.ts | 根据阳历时间生成八字 Markdown |
scripts/buildBaziFromLunar.ts | 根据农历时间生成八字 Markdown |
scripts/getChineseCalendar.ts | 查询指定日期(默认今天)的农历与干支信息 |
scripts/scan_year.ts | 从已知八字反查阳历日期(全年扫描) |
scripts/util.ts | 公共参数解析工具 |
node scripts/buildBaziFromSolar.ts <solarTime> [gender] [sect]
参数:
solarTime(必填):ISO 8601 日期时间(不带时区),如 1990-05-15T14:30:00gender(可选):1=男,0=女,默认 1sect(可选):1=23:00-23:59 视为明天,2=视为当天,默认 2node scripts/buildBaziFromLunar.ts <lunarTime> [gender] [sect]
参数同上,lunarTime 为农历时间。
node scripts/getChineseCalendar.ts [date]
date(可选):YYYY-MM-DD 格式,默认当天buildBaziFromLunar.ts 不支持闰月。处理流程:
tyme4ts 构造闰月农历日,获取对应阳历:import { LunarDay } from 'tyme4ts';
const solarDay = LunarDay.fromYmd(1998, -5, 13).getSolarDay();
// 负月号 = 闰月,如 -5 表示闰五月
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:59 | T23:30 |
| 丑 | 01:00-02:59 | T01:30 |
| 寅 | 03:00-04:59 | T03:30 |
| 卯 | 05:00-06:59 | T05:30 |
| 辰 | 07:00-08:59 | T07:30 |
| 巳 | 09:00-10:59 | T09:30 |
| 午 | 11:00-12:59 | T11:30 |
| 未 | 13:00-14:59 | T13:30 |
| 申 | 15:00-16:59 | T15:30 |
| 酉 | 17:00-18:59 | T17:30 |
| 戌 | 19:00-20:59 | T19:30 |
| 亥 | 21:00-22:59 | T21:30 |
scan_year.ts 扫描匹配日柱根据命主性别,所有六亲对应的十神不同。这是八字论命的基础,搞错则全盘皆错。
男命属阳,取"同性"星代表同性亲属、"异性"星代表异性亲属;女命属阴,反之。核心逻辑是"同阴阳为偏,异阴阳为正"。
| 六亲 | 男命十神 | 女命十神 |
|---|---|---|
| 父亲 | 偏财 | 正财 |
| 母亲 | 正印 | 偏印(枭神) |
| 配偶 | 正财(妻) | 正官(夫) |
| 儿子 | 七杀 | 伤官 |
| 女儿 | 正官 | 食神 |
| 兄弟 | 比肩 | 劫财 |
| 姐妹 | 劫财 | 比肩 |
| 祖父 | 偏印 | 食神 |
| 祖母 | 正财 | 偏财 |
甲木男命:
甲木女命:
丁火男命:
丁火女命:
不要拿到八字就直接给最终结论。Bazi 是骨架,事实是血肉。第一轮分析如果不校准关键事实,可能全错。
不要堆在最后才问——在"骨架分析"完成后立即提问,用户回答后再做完整解读。
绝对不能把地支和藏干本气重复计算。
| 来源 | 权重 |
|---|---|
| 天干透出 | 100%(1.0) |
| 月令本气 | 100%(1.0,当令加成) |
| 其他地支本气 | ≈70%(0.7) |
| 藏干中气 | ≈40%(0.4) |
| 藏干余气 | ≈20%(0.2) |
八字全解_日主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句话总结人生节奏和关键转折点]
手动分析容易遗漏星运细节。必须以脚本输出的 星运 和 自坐 字段为准,再结合五行生克综合判断。
绝对不能把地支和藏干本气重复计算。详见上方"分析要点 → 五行强弱"。
辛金(珠玉金)忌土重埋金。辛金喜壬水洗涤、喜甲木疏土。不能机械套用"印生身=印是喜用"。
详见 references/family-patterns.md。核心原则:先回答"在不在场"再回答"严不严"。
食神制杀 = 用温和方式管人/化解压力。在大机构、小个体户、自由职业、家庭中都可能出现。形态取决于命中其他配置。
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.ts 用 bazi.yearPillar.toString() 导致所有反推扫描永远返回 0 matches。
当 skill 同时存在于本地 Hermes(~/.hermes/skills/)和 GitHub 仓库时:
cp ~/Documents/bazi-full-fortune/scripts/*.ts ~/.hermes/skills/divination/bazi-full-fortune/scripts/ 等references/family-patterns.md — 家庭背景命理模式速查清单(8种模式的信号→推断→校准问题)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"
Z、+08:00),以免产生与预期不一致的换日结果sect,避免晚子时归属歧义buildBaziFromSolar.tsscan_year.ts(纯 TypeScript,无需 Python)