Install
openclaw skills install comprehensive-divination-skill算卦综合 Skill,提供小六壬、六爻纳甲、梅花易数、大六壬四种算卦方法。含智能路由(根据问题自动推荐方法)、基础知识库(天干地支、阴阳五行、八卦、六亲)、以及可独立调用的 Python 计算脚本。所有涉时方法已升级为基于 zhdate 的精确农历/节气/干支计算。触发关键词:算、占卜、卜卦、算算、测算、求测、预测、小六壬、六爻、梅花易数、大六壬、马前课、掐指、摇卦、铜钱卦、起卦、断卦。
openclaw skills install comprehensive-divination-skill本 Skill 整合四种主流算卦方法(小六壬、六爻、梅花易数、大六壬),按"智能路由 → 按需加载 → 执行算卦"的流程工作。
| 你想知道... | 跳到 |
|---|---|
| 🚦 执行前必看(4 个硬约束 Checkpoint + 反模式) | MANDATORY WORKFLOW CHECKPOINTS ← 必读 |
| ⚠️ 当前实现关键点(北京时间基准 / 跨日处理) | 重大变更 |
| 🪤 执行前必读(11 条已知坑 + 实战术) | 已知陷阱 |
| 🏗️ 架构 + 路由 | 架构总览 → 路由与工作流 |
| 📚 方法细节 | 各方法执行流程 |
| 🛠️ 脚本使用 | 脚本速查 |
| ➕ 扩新术种 | 扩展指南 |
| 🌍 海外用户 | README § 🌍 International Users |
| 📂 真实案例 | examples/re-consultation-comparison.md |
这段是硬约束。在执行任何算卦之前,必须按顺序完成下列每一项。任何一项跳过都视为违反本 SKILL。
🔴 在使用 clarify 工具问完这两个问题之前,禁止调用任何 --snapshot 或起卦脚本。
Checkpoint 1: 确认起卦方法
clarify 工具问用户:"用哪种方法算这个卦?",提供 4 个选项(六爻/梅花/小六壬/大六壬)+ 推荐Checkpoint 2: 确认城市/经度(真太阳时校准)
clarify 工具问用户:"你当前所在城市?",提供 5 个选项(成都/北京/上海/手动经度/跳过)Checkpoint 3: 报告校正结果
Checkpoint 4: 起卦 + 解读 + 免责声明
📋 实际执行的指令模板:
[第 0 步] 完成上述 4 个 Checkpoint
[第 1 步] 加载 router/matching-matrix.md
[第 2 步] 加载方法对应的 references
[第 3 步] 调用 scripts/* Python 脚本
[第 4 步] 输出卦象 JSON + 解读 + 应期 + 免责声明
❌ 反模式(绝不能这样):
clarify 工具实际调用)时间基准改为"北京时间(UTC+8)",不再用 datetime.now() 拿本地挂钟时间。
get_beijing_time() —— 强制取北京时间(零网络依赖)longitude_to_true_solar(bj_dt, lon) —— 北京时间 + 经度 → 当地 TSTdatetime_to_shichen(dt) —— datetime → 十二时辰get_full_pipeline(dt=None, longitude=None) —— 一站式 pipelineget_current_lunar_info() 入参/返回字段不变,内部已改用新 pipelinefrom common import get_beijing_time, get_full_pipeline
bj = get_beijing_time() # 北京时间
info = get_full_pipeline(longitude=104.06) # 成都 TST
tst_datetime 可能落在前一天/后一天(如北京时间 6/15 06:00 → 纽约 TST 6/14 17:00),这是天文事实不是 bugzhdate 版本现实与文档不符:requirements.txt 写的是 zhdate>=1.0,但 PyPI 上 Windows 平台最高只有 0.1(1.0 只发了 macOS ARM wheel,无 Windows 版本)。可直接装 pip install zhdate==0.1,API 兼容。脚本实际用到的 ZhDate.from_datetime / to_datetime / leap_month / lunar_year/month/day 在 0.1 中全部存在,已端到端验证。python 解析到 Hermes venv,但 venv 没装 pip 也没装第三方包。直接 python scripts/... 会报 ModuleNotFoundError。先 bootstrap:python -m ensurepip 然后 python -m pip install zhdate==0.1。common.hour_to_shichen(hour) 返回的是 (地支名字符串, 1-12 整数) 元组,不是直接的索引。用法是 shichen_name, hour_idx = common.hour_to_shichen(hour)。对应的字典是 common.DIZHI_SHICHEN(key=地支名字符串),不是按整数索引。xiao_liuren 的入口是 by_month_day_hour(month, day, hour_idx),不是 SKILL 旧版暗示的 calc_xiao_liuren()。calc_gong / LIU_GONG / by_numbers 都在,但前两者是内部辅助。liuyao_yaogua.py --json --day-tg 乙 --day-dz 卯 端到端可用,输出包含世应、动爻、六亲、六神、旬空,可直接喂给 LLM 断卦。不要用 --auto(不会取冻结时间)。references/liuyao/duangua.md)。凡遇"用神两次出现"(如本卦二爻+五爻都是官鬼)应取动爻为主静爻为辅。hour_to_shichen;申时(15-17)未跨则沿用原时辰。已校正的 snapshot['shichen']/shichen_idx 就是结果。get_current_lunar_info 早期版本把 datetime.now() 拿到的本地挂钟直接当成北京时间再做 (经度-120°)*4分钟 修正,纽约用户传 --lon -74.006 会得到错的"申时"而非真实的"寅时"。当前实现改为:先取北京时间(datetime.utcnow() + 8h)→ 再用经度做 TST 校准 → 跨日自动处理。--city 未知城市名时,会调用 Open-Meteo Geocoding API(urllib 标准库,无需 requests)。首次查询慢,结果会缓存到 scripts/_geo_cache.json,下次 0ms 命中。完全离线场景下网络降级会失败,应改用 --lon 传经度。网络调用与 zhdate 安装、起卦计算完全独立,最坏情况(没网+没缓存+没坐标)只是 city 查询失败,不会影响核心起卦流程。_geo_cache.json 跟踪进 git:该文件已加入 .gitignore(每用户本地缓存不同),但首先生成时会创建。完整排查细节、API 真实签名见 references/comprehensive-divination-skill-pitfalls.md。
下列条目来自实际多日复占同一事件积累的教训,与第 1-7 条同等优先级:
date 算术出绝对日期再起卦。错一天月令可能跨,整个旺衰判断会错。common.py --snapshot 返回的 month_gz 是权威源,不要凭"calendar 是几月"判断。python common.py --snapshot --city 城市 冻结时间(第一步必须做)references/<method>/<method>.py 显式传参(不要 --auto)tst_offset_min 重新跑 hour_to_shichen,不能沿用原时辰。复占实战补充(2026-06-15):上面 4 条坑(复占换变量 / 日期先算 / 跨月令 / 完整流程)来自用户连续 4 天问"某公司一面是否通过"的实战总结。当用户反复问同一事时,把"卦气已散、该用行动替代"明确说出来,比继续起第 5 卦更负责。
用户输入 "帮我算个事"
↓
【第零层:时间锚定】立即冻结当前时间(datetime.now()),防止流程延迟导致边界时刻漂移
↓
【第一层:路由判断】加载 references/router/matching-matrix.md
├── 问题分析(复杂程度 / 决策重要性 / 时效性 / 领域)
├── 四维加权评分 → 推荐最优方法
└── 用户确认使用哪种方法
↓
【Step 5.5:真太阳时校准】询问用户当前所在城市 → 城市→经纬度 → 对冻结时间做真太阳时校正
├── 若用户跳过(不提供位置):默认北京时间(东经 120°)
├── 若用户在已知城市列表中:自动查表获得经纬度
└── 若用户提供具体经纬度:直接使用
↓
【第二层:按需加载】只加载选取方法所需的 references
├── 小六壬:references/xiao-liuren/method.md + references/xiao-liuren/liugong.md
├── 六爻:references/liuyao/method.md + references/liuyao/najia.md + references/liuyao/duangua.md
├── 梅花易数:references/meihua-yishu/method.md
├── 大六壬:references/da-liuren/method.md + references/da-liuren/shier-tianjiang.md + references/da-liuren/sanzhuan-faze.md
└── 所有方法共用:references/core/ 中的基础知识(按需读取单份文件)
↓
【第三层:执行占卜】
├── 确定性计算(干支查找、掌诀推算、摇卦模拟)
│ → 优先调用 scripts/ 中的 Python 脚本,传入已校正的时间参数
└── 解读性断语(五行生克、六亲应期)→ AI 基于 references 内容推理
↓
输出结果(含真太阳时校正标注)
当用户提出占卜相关请求且未指定具体方法时,触发路由模式。 若用户已明确指定方法(如"用六爻算"、"小六壬起一卦"),跳过路由直接进入对应方法。
Step 0 — 时间锚定(必须最先执行):
当用户触发占卜(无论是否指定方法),立即冻结当前时间。注意:不要调用 datetime.now() 后再执行其他操作——必须在流程入口第一时间锚定。
Python 端执行:
python scripts/common.py --snapshot [--city 城市名] [--lon 东经]
若用户尚未提供位置,先行冻结(不含 TST),待第 1.5 层补充位置后再重新计算。
返回的 JSON 结构包含:frozen_at(ISO 8601 时间戳)、bj_hour(北京时间)、ts_hour(真太阳时,若已提供位置)、shichen、shichen_idx 等全部字段。
Step 1 — 加载路由矩阵:读取 references/router/matching-matrix.md
Step 2 — 四维分析:从用户问题中提取:
Step 3 — 加权评分:按维度权重(决策35% + 复杂25% + 领域25% + 时效15%)计算各方法总分
Step 4 — 特殊规则:
Step 5 — 输出推荐:排名 + 评分理由,等待用户确认
Step 5.5 — 真太阳时校准(用户确认方法后、执行前):
在用户确认占卜方法后、开始执行前,询问位置:
请告知你当前所在的城市(如:成都),用于真太阳时校准。 若跳过,默认使用北京时间(东经 120°)。
处理逻辑:
scripts/common.py --snapshot --city <城市> 重新获取含 TST 的时间快照scripts/common.py --snapshot --lon <东经>校正完成后,展示给用户确认:
📍 成都(104.06°E)真太阳时修正: 北京时间 15:22 → 真太阳时 14:21(−61 分钟) 时辰:申时 → 未时(已跨边界)
Step 6 — 按需加载:加载选取方法所需的 references(同原第二层)
references/xiao-liuren/liugong.md 获取落宫断语scripts/xiao_liuren.py 明确传入 -m -d -t 参数(而非 --auto)scripts/liuyao_yaogua.py --jsonreferences/liuyao/najia.md 获取纳甲表references/core/liuqin.md 获取六亲定义references/liuyao/duangua.md 执行断卦规则references/core/bagua.md 获取八卦对照表scripts/meihua_qigua.py 明确传入参数references/da-liuren/sanzhuan-faze.md)references/da-liuren/shier-tianjiang.md)references/core/ 中的文件按实际需要加载,不一次性全部读取:
core/tiangan-dizhi.mdcore/yinyang-wuxing.mdcore/bagua.mdcore/liuqin.md所有占卜结果应包含以下元素:
时间标注:显示冻结时间、地点、真太阳时校正信息
⏱ 起卦时间:2026-05-29 15:22(北京时间)
📍 成都(104.06°E)真太阳时:14:21(−61 分钟)
🕐 时辰:未时
方法说明:标注使用的占卜方法及依据
免责声明(末尾必加):
占卜结果仅供参考,请结合实际情况理性判断。
scripts/ 目录提供可独立调用的 Python 脚本(依赖 zhdate 库,需在 venv 中运行)。
时间锚定(最先调用):
# 冻结时间 + 成都真太阳时
python scripts/common.py --snapshot --city 成都
# 仅冻结时间,不校准时区
python scripts/common.py --snapshot
占卜脚本:
| 脚本 | 功能 | 推荐调用方式(已校正) | Python 直接调用(agent 复用) |
|---|---|---|---|
common.py | 干支/五行/农历/月将 + 真太阳时校正 + 城市坐标查询 | --snapshot --city 成都 | common.get_current_lunar_info(dt=frozen, longitude=104.06) |
xiao_liuren.py | 小六壬掌诀推算 | -m {lunar_month} -d {lunar_day} -t {corrected_hour} | xiao_liuren.by_month_day_hour(month, day, hour_idx) |
liuyao_yaogua.py | 六爻摇卦 + 纳甲装卦 | --json --day-tg {snapshot.day_tg} --day-dz {snapshot.day_dz} | liuyao_yaogua.<主函数>(见 pitfalls.md) |
meihua_qigua.py | 梅花易数起卦 | -d {solar_date} -t {corrected_hour} | meihua_qigua.by_time(...) 或 by_numbers(...) |
da_liuren.py | 大六壬天地盘 + 四课三传 | -d {solar_date} -t {corrected_hour} | da_liuren.build_tiandi_pan(...)、build_sike(...)、fa_sanzhuan(...) |
重要:占卜脚本的
--auto模式始终使用datetime.now(),不会取已冻结的快照。 在 SKILL 工作流中,应从 Step 0 的快照中提取已校正的参数,显式传递给脚本。
所有脚本的农历转换基于 zhdate 库;月将按节气判定;日干支自动推算。安装依赖:
pip install -r requirements.txt
唯一外部依赖为 zhdate(PyPI 包),其余均为 Python 标准库,无系统工具依赖。可 zip 打包后在其他设备直接导入使用。
references/comprehensive-divination-skill-pitfalls.md — 安装踩坑、venv 引导、每个脚本的真实公开 API 入口与签名、断卦常见误区、与 references/router/matching-matrix.md 配合使用。新增术种(如奇门遁甲)时:
references/ 下新增子目录(如 qimen-dunjia/)scripts/ 下新增计算脚本references/router/matching-matrix.md 的评分矩阵