八字命理排盘与解读
用途
根据用户提供的出生时间(支持农历/公历、闰月、出生地真太阳时校正),排出四柱八字,计算十神、藏干、纳音、五行强弱、神煞、刑冲合害、大运与流年,据此给出性格、事业、财运、婚姻、健康的解读,并产出一份自包含的 HTML 命理报告。
何时使用
- 用户给出生日("我农历 1990 年五月十五下午两点半出生,帮我算算")要求看命、测运势
- 询问喜用神、日主旺衰、格局、五行补缺、起名用神
- 询问某年流年运势、本命年注意事项、何时转运
- 询问婚姻感情、配偶特征,或两人八字合婚
- 询问财运、行业与事业方向
- 询问健康养生方向(须明确声明不构成医疗建议)
工作流
第 1 步:收齐四项必需信息
排盘缺一不可,缺任何一项都要先问:
- 出生日期(公历还是农历必须问清;农历需确认是否闰月)
- 出生时辰(若用户不知道,可仅排三柱做简析,但须明确告知时柱缺失、精度下降)
- 性别(决定大运顺逆)
- 出生地(用于真太阳时校正;不提供则按北京时间,并在报告中注明未校正)
把口语时间归一:"下午两点半"→ 14:30;"早上七八点"这类模糊表述要追问,或用 07:30 并标注为估计值。
第 2 步:排盘(必须调用脚本,禁止心算)
cd <skill>/scripts
python bazi.py --name 张三 --gender 男 --date 1990-05-15 --time 14:30 --lunar --place 北京 --out /tmp/chart.json
参数:
- --lunar 表示 --date 为农历;闰月再加 --leap
- --place 城市名(内置约 40 个城市经度),也可用 --longitude 116.4 直接给东经度数
- --zishi next(默认,23 点后日柱换次日)或 --zishi ye(夜子时,日柱仍用当日)
- --years 2020-2040 指定流年区间,默认「去年~未来 8 年」
- 不加 --out 则 JSON 打印到 stdout
绝不允许自己推算干支、节气或大运。 脚本内置的农历与节气数据已用权威历法库对拍验证(公历 1900–2100 全区间,四柱、大运与参照库完全一致)。
第 3 步:读取参考库做命理判断
先读 references/mingli-jichu.md(十神、旺衰、取用神),再按问题选读:
| 用户关注 | 读这份 |
|---|---|
| 旺衰、格局、喜用神、性格 | references/mingli-jichu.md |
| 神煞吉凶、刑冲合害 | references/shensha-hechong.md |
| 事业、财运、婚姻、健康 | references/zhuanxiang-jiema.md |
| 大运起伏、流年吉凶、合婚 | references/dayun-liunian-hehun.md |
| 子时/闰月/真太阳时等边界坑 | references/paipan-qa.md |
判断要点:
- 旺衰以 得令、得地、得势 三项为主。脚本已在 wuxing.deling / roots / tongdang / yin 给出原始事实,据此判断,不要另编数字
- 取用神遵循「扶抑、调候、通关」三条主线,结论要落到 喜什么、忌什么,并给出方位/行业/颜色/年份的可执行建议
- 五行占比只是参考量。不要把"缺某五行"直接说成"命里缺什么就补什么",须结合日主喜忌判断
第 4 步:写解读文案并生成报告
python report.py --data /tmp/chart.json --text /tmp/interp.json --out ~/张三-八字命理.html
interp.json 字段(全部可选,缺则跳过对应板块):
{
"title": "张三 · 八字命理详批",
"summary": "总括:日主强弱、格局、一生大势",
"xingge": "性格与天赋",
"wangshuai": "日主旺衰与格局判断",
"xiyong": {"text": "取用神分析", "yong": ["金","水"], "ji": ["火","土"]},
"shiye": "事业方向与行业建议",
"caiyun": "财运特征与理财建议",
"hunyin": "婚姻感情与配偶特征",
"jiankang": "健康与养生提示",
"dayun_notes": {"1": {"text": "该运解读", "score": 72}},
"liunian_notes": {"2026": "该年提示"},
"tips": ["趋吉建议一", "建议二"]
}
dayun_notes 的 score(0–100)会绘制大运起伏曲线,建议给出,让报告有可视化走势。
第 5 步:对话里先给结论,再交付报告
先在聊天中输出 不超过 500 字的核心结论(四柱是什么、日主强弱、喜忌、对用户最关心问题的直接回答),再调用 present_files 交付 HTML 报告。
合婚
两人合婚用 hehun.py,参数分 --a-* / --b-* 两组:
python hehun.py --a-name 男方 --a-gender 男 --a-date 1990-06-07 --a-time 14:30 \
--b-name 女方 --b-gender 女 --b-date 1992-03-05 --b-time 09:20 --b-lunar \
--out /tmp/hehun.json
读取输出里的 hehun 字段(生肖合冲、日柱合冲害、纳音、五行互补、评分),结合 references/dayun-liunian-hehun.md 写 interp.json 的:
{"hehun": {"summary": "总评", "pros": ["相合点"], "cons": ["需注意"], "advice": "经营建议"}}
硬性约束
- 排盘必须跑脚本,禁止凭记忆或心算写干支、节气、大运。
- 每个结论都要能追溯到命局:引用具体哪一柱、哪个十神、哪个神煞、哪步大运,不做无来源的模糊断言。
- 不做绝对化预言。禁止"你一定会…""必定离婚/破财/生病"这类断言,改用「偏向」「更容易」「需注意」,把命理定位为倾向性参考。
- 健康内容必须标注不构成医疗建议,只谈五行失衡对应的养生方向,不做疾病诊断与治疗建议。
- 涉及生育性别选择、改名改运、风水收费项目等:只提供传统文化视角的说明,不作效果承诺。
- 报告必须带免责声明(
report.py已内置于页脚,不要删除)。 - 出生在 23:00 之后 或 节气交节日 的命例,脚本会给出
zishi_warning,必须在回复中说明派系差异,必要时建议两种排法各看一次。
文件清单
scripts/_calendar_data.py 1900-2100 农历与节气固化数据(自动生成,勿手改)
scripts/calendar_cn.py 农历↔公历互转、节气查询
scripts/ganzhi.py 干支五行十神纳音神煞静态知识库
scripts/bazi.py 排盘引擎 + CLI(输出 JSON)
scripts/hehun.py 合婚
scripts/report.py HTML 报告渲染
assets/report.css 报告样式(宣纸浅色风)
references/*.md 命理解读参考库
脚本仅依赖 Python 标准库,无需联网、无需安装任何包。