紫微问真 · 职业诊断图文报告
把命盘翻译成能截图、能转发、能交付的图文报告。
排盘是事实层,解读是翻译层 —— 脚本负责前者,你负责后者,两层不许混。
两条铁律
- 排盘一律走脚本(
scripts/ziwei_chart.py)。命宫、身宫、五行局、紫微落宫、十四主星、辅煞、庙旺、三层四化、大限流年全部由脚本按《紫微斗数全书》安星法计算。模型不凭记忆安星、不心算紫微落宫、不臆造时辰。 - 只写适配倾向,不写注定。「你更适合有对手、有规矩的场」可以;「你注定干这行」不行。所有结论都落回「人可以主动调整」。
一、三步跑完
# 进入本 skill 目录(换成你的实际安装路径)
cd /path/to/ziwei-pro-visual-report
mkdir -p out
# 0) 依赖自检:缺库就装(纯 Python 包,官方源可装)
python -c "import lunar_python" 2>/dev/null || python -m pip install -U lunar-python
# 本机有多个 Python 时,用那个装了 lunar-python 的解释器执行后面两步
# 1) 排盘 → JSON(农历、年干支、真太阳时全部自动)
python scripts/ziwei_chart.py --solar 1980-02-20 --time 00:14 --gender 男 \
--city 呼和浩特 --year 2026 --out out/chart.json
# 2) 读 chart.json,按第六节字段表写 copy.json(这是唯一的创作环节)
# 3) 渲染单文件 HTML(CSS 内嵌,可微信发送/打印/长截图)
python scripts/build_report.py --chart out/chart.json --copy out/copy.json --out out/report.html
> 只依赖标准库 + lunar-python。不需要联网、不需要装浏览器、不调任何外部 API。
渲染器自带结构自检:缺章节、标签未闭合、copy 缺字段会 CHECK FAIL 并列原因,别忽略。
参数速查
| 场景 | 命令 |
|---|---|
| 公历 + 精确时间 | --solar 1980-02-20 --time 00:14 |
| 农历 | --lunar 1980-1-5 --time 00:14 |
| 农历闰月 | --lunar 2020-4-10r |
| 不知道经度 | --city 呼和浩特(内置 70+ 城市);或 --lon 111.75 |
| 关掉真太阳时 | --no-tst(仅用户明确要求按北京时间时用) |
| 23 点后不归次日 | --zi early(默认 late,即斗数通行「归次日子时」) |
| 指定流年起点 | --year 2026(默认今年),--ln-years 4 |
| 引擎自检 | --selftest(应输出 SELFTEST PASS) |
--gender 决定大限顺逆,必须问清,不能猜。
二、输入校验(先校验,再开口)
必需四项:出生日期(公历/农历须明确)、出生时间(到分为佳)、性别、当前从事工作(行业 + 岗位 + 工作状态,例:「矿业投资并购咨询,自有商务公司,项目制,常驻矿部」)。
可选但影响精度:出生城市(真太阳时)、关注点(转型/升职/创业/合作/稳定度)、现居城市(地盘参考)。
六种必须追问或标注的情况
| 情况 | 处理 |
|---|---|
| 23:00–24:00 出生 | 追问「按斗数归次日(默认)还是不换日」。两派结论不同时两盘对照着说,不擅自选一个 |
| 时辰未知 | 不排。紫微斗数缺时辰无法定命宫(命宫由生时逆推),必须回问;实在不知,只能做「时辰存疑」的简版并标 ⚠️ |
| 公历/农历不清 | 先复述确认(「您说的是 1980 年 2 月 20 日公历,对吗?」),再算。农历闰月要问是否闰月 |
| 1986–1991 出生 | 提示夏令时(钟表时间减 1 小时)。引擎会自动提示,减不减由用户确认 |
| 西部出生 | 必须做真太阳时。乌鲁木齐比北京时间慢近 2 小时,校正后可能跨时辰甚至跨午夜 |
| 出生地不明 | 不做校正,标「未做真太阳时校正」,不猜经度 |
缺性别、缺工作,都要先问 —— 缺这两项的报告等于没写。
三、排盘口径
脚本已实现,细节见 references/koujing.md(用户质疑口径时照它回答):
- 命宫:寅起正月顺数至生月,再逆数至生时;身宫同起点顺数
- 五行局:命宫干支纳音定局(水二/木三/金四/土五/火六),同时是起运岁
- 紫微:生日除局口诀(
--selftest覆盖五局初一初二共 13 个锚点) - 庙旺:取《全书》卷二总表 168 格
- 四化:通行本十天干表;生年 / 大限(宫干)/ 流年(年干)三层叠加
- 大限:阳男阴女顺行,阴男阳女逆行,自命宫起每宫十年,输出前 8 步
- 空宫借对宫主星,力量约七至八成
四、五条红线
- 不编星曜、不跳安星规则、不默认时辰。排盘与判读分离,事实全部来自
chart.json。 - 不用绝对化断语:不论生死、不说离散、不断破财、不谈刑克;一律改为倾向与概率(「较大概率 / 次概率 / 需留意」)。
- 单星不成断语:必须结合庙陷、辅煞、四化、三方四正。看事业必须官禄、财帛、迁移、命宫四宫合参。
- 不预测具体事件(疾病、事故、官司、婚姻成败),流年只给能量层与宫位层趋势;每宫至少给「较大概率 / 次概率 / 需留意」三种可能。
- 不涉医疗、投资标的、跳槽公司名。结尾必须带合规脚注(渲染器已内置页脚,聊天回复里再补一句)。
五、报告结构(13 卡,顺序固定)
| # | 卡片 | 内容来源 |
|---|---|---|
| 1 | 封面 | name sketch + 命盘元信息 + 朱印 |
| 2 | 定盘声明 | chart.meta ju gong + pan_note |
| 3 | 十二宫主盘 | 脚本直出(4×4 边框盘,四化配色,命/身/限/三年标记) |
| 4 | 命宫深度 | ming.read codes shen + 三方四正 |
| 5 | 官禄职业基因 | guan.gene mode combos sihua |
| 6 | 财帛 × 迁移 × 福德 | tri.cai tri.qian tri.fu |
| 7 | 四化飞星 | 脚本直出落点 + sihua.birth/daxian/liunian/jie_line |
| 8 | 大限时间轴 | 脚本直出 8 步 + daxian.themes/current/next |
| 9 | 流年观察 | 脚本直出流年宫位 + liunian[4] |
| 10 | 职业诊断主卡 | career.*(报告灵魂页) |
| 11 | 现代转译 | translate.* 五项 |
| 12 | 行动建议 | actions caution ref |
| 13 | 分享尾卡 | poem + 朱印 |
六、copy.json 字段表(唯一的创作环节)
事实全部来自 chart.json,不要自己编数字:宫位、星曜、庙旺、四化落点都在里面。
| 字段 | 落点 | 要求 |
|---|---|---|
title |
封面主标题 | 默认「紫微命盘 · 职业诊断报告」 |
name |
封面命格名 | 4–8 字,意象+结构。如「紫府坐寅 · 七杀朝垣」 |
sketch |
封面副线 | ≤40 字,一句话速写,要有画面 |
pan_note |
定盘卡 | 待复核事项(夏令时、时辰存疑、真太阳时跨日)。没有就不写 |
board_note |
主盘卡 | 1 句读图说明(标记含义) |
ming.read |
命宫卡 | 3–5 句性格底层,说人话 |
ming.codes |
命宫卡 | 3–5 个标签,每个 ≤8 字 |
ming.shen |
命宫卡 | 1 句身宫走向(中年后重心) |
guan.gene |
官禄卡 | 1 句「你靠什么成事」 |
guan.mode |
官禄卡 | 事业模式一句话(管理/专业/开创/服务/资源整合) |
guan.combos |
官禄卡 | 3–4 个关键组合标签 |
guan.sihua |
官禄卡 | 四化在官禄的含义;本宫无四化时讲对宫牵引 |
tri.cai tri.qian tri.fu |
三联卡 | 各 {text, line},text 50–80 字,line 是金句 |
sihua.birth |
四化卡 | 生年四化落点,讲「禄在哪个位、忌在哪个位」的组合意义 |
sihua.daxian |
四化卡 | 当前大限四化,落到具体宫位与事 |
sihua.liunian |
四化卡 | 本年流年四化一句 |
sihua.jie_line |
四化卡 | 化忌牵动线:一生反复修的功课,报告的命门 |
daxian.themes |
大限轴 | 8 个 2–4 字主题,对应 8 步大限,标出当前 |
daxian.current |
大限轴 | 当前这步的读法 |
daxian.next |
大限轴 | 下一步的交接提醒 |
liunian |
流年卡 | 4 条:{year, keywords[3], text, window, guard},只讲节奏与窗口 |
liunian_note |
流年卡 | 1 句免责式解读 |
career.fit |
诊断卡 | high / mid / low |
career.fit_reason |
诊断卡 | 1–2 句,落在官禄/财帛/迁移三方,不泛泛 |
career.gene_type |
诊断卡 | 底盘类型(统领/策划/执行/开创/服务型) |
career.guan_mode |
诊断卡 | 官禄模式 |
career.wealth_mode |
诊断卡 | 财路特征(稳积/捕捉/杠杆/分润) |
career.stage |
诊断卡 | 宜守本地 / 宜向外走 |
career.post_fix |
诊断卡 | 岗位动作诊断:从「做什么」到「怎么做得更顺」,60–120 字 |
career.pivot |
诊断卡 | 2–3 条转型信号,要有阈值、看得见 |
career.keep |
诊断卡 | 什么条件下继续做 |
translate |
转译卡 | 五个键:career wealth relation family mind,各 {text, line} |
actions |
行动卡 | 3 条可执行动作,具体到「今年内做什么」 |
caution |
行动卡 | 今年别硬刚的那件事,1–2 句 |
ref |
行动卡 | {industry, direction, rhythm} 三个短标签,只给方向不给城市命令 |
poem |
尾卡 | 自创四句点题诗(不抄古诗),用 \n 分行 |
hero_image |
封面 | 可选,主视觉图路径(会 base64 内嵌) |
写文案的判定方法、好坏对照、金句骨架 → references/career-matrix.md。写之前先看一遍好/坏对照表。
七、配图(可选)
用 ImageGen 出 1 张封面主视觉(竖版 3:4),路径写进 hero_image,渲染时自动内嵌。
提示词骨架:
Deep navy-purple galaxy background, Chinese ziwei astrology chart,
golden star trails forming palace grid, cinnabar seal, ethereal mist,
premium mystic editorial, minimalist, generous negative space, no text
- 图里不要出现汉字(模型生成的中文几乎必错,印章交给 CSS 画)。
- 生图后裁掉右下角水印区再传入。
- 图只做氛围,不承载信息;信息全在版式里。
八、交付
- 成品是单文件 HTML(CSS 内嵌、图片 base64),可直接微信发送、打印、手机长截图。
- 命名:
紫微命盘_{命格名}.html。 - 放到用户方便找的位置(Windows 放桌面下建子目录,macOS/Linux 放 ~/Desktop 或当前项目目录),用
present_files打开预览。 - 聊天回复给结论摘要:命格名、一句速写、官禄模式、职业契合度、当前大限关键词、今年那句「别硬刚」。不要把 HTML 正文复述一遍。
- 每次输出都带合规声明(页脚已内置,聊天里再补一句)。
九、排错
| 现象 | 原因 | 处理 |
|---|---|---|
ModuleNotFoundError: lunar_python |
环境缺库 | pip install lunar-python(官方源;本机清华镜像不可达) |
| 命宫与用户认知不符 | 生时或历法记错 | 先核对时辰与公历/农历,再看真太阳时是否把时辰挪了 |
| 紫微落宫与网上软件差一宫 | 日数取错(23 点后归次日 / 闰月折半) | 看 meta.day_used 与 meta.month_used,向用户解释,别直接改数 |
| 庙旺与别的软件有一格不同 | 流派异文(太阴寅午未、太阳丑戌等) | 说明「《全书》卷二总表口径」,见 references/koujing.md 第八节 |
| 庚年生人四化对不上 | 庚干科忌两派有别 | 说明取「太阴科、天同忌」通行本 |
| 大限为空 | 未传 --gender |
补上,性别决定顺逆 |
CHECK FAIL 缺章节 |
copy 漏字段 | 按第六节字段表补齐 |
CHECK FAIL 标签未闭合 |
copy 里写了对不上的 <b> |
只允许 <b></b> <br> <i></i> 三种行内标签 |
报告里出现 None |
copy 某字段写成 null | 删掉该键或给空串 |
紫微斗数为传统民俗文化,本报告属文化解读与自我认知工具,不构成医疗、投资、婚恋、法律、职业跳槽等现实决策的唯一依据。命由己造,相由心生;趋势供参考,选择留给你自己。