介绍
# Mingli 命理
多系统占卜技能:西方占星术(普拉西德宫位制,精准相位)、八字/四柱(五行)、数字命理学(生命路径+个人周期)以及易经(卦象+SPARK)。通过 Telegram cron 定时或按需每日推送。
## 模式 (Modes)
| 模式 | 描述 | 触发方式 | |------|-------------|---------| | **Setup (设置)** | 注册出生数据,计算所有星盘 | "set up my horoscope" | | **Daily (每日)** | 通过 cron 自动推送 4 系统星盘 | Cron 计划 | | **On-demand (按需)** | 即时星盘 | "my horoscope", "horoscope now" | | **I Ching (易经)** | 卦象解读(随机或手动) | "cast I Ching", "throw hexagram" | | **Manage (管理)** | 暂停/恢复/更改时间 | "pause horoscope", "change horoscope time" |
## 脚本 (Scripts)
```bash # Western natal chart (kerykeion — houses, aspects, nodes) .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/calculate-western-natal-chart-using-kerykeion.py \ --date 2000-03-25 --time 12:00 --tz "Asia/Saigon" --lat 21.0245 --lon 105.84117 --name "User"
# Ba-Zi Four Pillars + Western zodiac .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/calculate-bazi.py \ --date 1990-05-15 --time 14:30 --tz "Asia/Saigon"
# Planetary positions (astronomyapi.com fallback for transit data) .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/fetch-planetary-positions.py \ --lat 10.8231 --lon 106.6297
# Numerology — LifePath, Birthday, Attitude, Challenges, Pinnacles, Personal cycles .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/calculate-numerology.py \ --date 2000-03-25
# I Ching hexagram casting .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/cast-i-ching-hexagram.py --mode random .claude/skills/.venv/bin/python3 .claude/skills/mingli/scripts/cast-i-ching-hexagram.py \ --mode manual --upper Kan --lower Kun --moving 2,1 ```
## 设置模式 (Setup Mode)
1. 询问:**出生日期** (YYYY-MM-DD),**出生时间** (HH:MM),**出生城市** (经纬度 + 时区) 2. 询问:**Telegram 聊天 ID**,**偏好的推送时间** + **时区** 3. 运行所有计算脚本:本命盘,八字,数字命理 4. 将结果写入 `~/clawd/memory/horoscope-users.md`(包含经纬度、生命路径数字) 5. 创建每日 cron 任务 6. 确认:西方星座 + 上升 (ASC) + 八字日主 (Day Master) + 生命路径 + 推送计划
## 每日模式 (Daily Mode)
Cron 触发 4 个脚本 → 所有 JSON 输入 LLM → 生成多系统星盘 → Telegram。
完整的 agentTurn 消息请参阅 `references/horoscope-prompt-template.md`。
## 按需模式 (On-Demand Mode)
触发词:"my horoscope", "horoscope now", "what's my horoscope today"
流程相同,内联处理(非隔离会话)。包含每日易经卦象。
## 易经模式 (I Ching Mode)
触发词:"cast I Ching", "throw hexagram", "que Kinh Dich"
- **Random cast (随机起卦):** 3 硬币法,密码学随机性 - **Manual input (手动输入):** 用户提供上/下卦 + 动爻 - 输出:主卦,动爻,变卦,SPARK 总结
## 管理命令 (Management Commands)
| 命令 | 动作 | |---------|--------| | "pause horoscope" | 禁用 cron 任务 | | "resume horoscope" | 启用 cron 任务 | | "change horoscope time to 7am" | 更新 cron 计划 | | "remove horoscope" | 删除 cron 任务 + 记忆条目 |
## Cron 推送 (Cron Delivery)
每个用户一个 cron 任务:`horoscope-daily-{username}`
```json { "name": "horoscope-daily-{username}", "enabled": true, "schedule": { "kind": "cron", "expr": "0 {hour} * * *", "tz": "{timezone}" }, "sessionTarget": "isolated", "payload": { "kind": "agentTurn", "message": "[prompt from references/horoscope-prompt-template.md]", "model": "claude-sonnet-4-20250514", "timeoutSeconds": 180, "deliver": true, "channel": "telegram", "to": "{telegram_chat_id}" }, "isolation": { "postToMainPrefix": "Horoscope delivered", "postToMainMode": "summary" } } ```
## 状态追踪 (State Tracking)
文件:`state/users.json` —— 将用户名映射到 cron 任务 ID。
## 错误处理 (Error Handling)
- **kerykeion 失败:** 降级使用 `fetch-planetary-positions.py`(基于 API,无宫位) - **API 故障:** LLM 仅根据星座知识生成星盘 - **记忆缺失:** 提示用户先运行设置 - **易经数据缺失:** 仅使用内置的三爻数学生成卦象
## 参考资料 (References)
- `references/astronomyapi-reference.md` - API 认证 + 端点 - `references/zodiac-reference.md` - 西方 + 中国生肖表,天干,地支 - `references/horoscope-prompt-template.md` - 每日生成的 LLM 提示词 - `references/i-ching-64-hexagrams.json` - 64 卦,含中文/越南文名称
## 依赖项 (Dependencies)
- **kerykeion** (pip) — 本命盘,宫位,相位。安装:`pip install kerykeion` - **astronomyapi.com** — 环境变量:`ASTRONOMY_APP_ID`, `ASTRONOMY_APP_SECRET` - 所有其他脚本:仅使用 Python 标准库