← Back to Skills
Browser

mingli

hiehoo By hiehoo 👁 10 views ▲ 0 votes

Mingli (命理) — Multi-system daily horoscope: Western astrology

GitHub
---
name: mingli
description: "Mingli (命理) — Multi-system daily horoscope: Western astrology (natal chart + transits), Ba-Zi / Four Pillars (Bát Tự), numerology, I Ching (Kinh Dịch). Kerykeion + astronomyapi.com. Telegram delivery."
version: 2.0.0
---

# Mingli 命理

Multi-system divination skill: Western astrology (Placidus houses, precise aspects), Ba-Zi / Four Pillars (Ngu Hanh), numerology (LifePath + personal cycles), and I Ching (hexagram + SPARK). Delivered daily via Telegram cron or on-demand.

## Modes

| Mode | Description | Trigger |
|------|-------------|---------|
| **Setup** | Register birth data, compute all charts | "set up my horoscope" |
| **Daily** | Automated 4-system horoscope via cron | Cron schedule |
| **On-demand** | Instant horoscope | "my horoscope", "horoscope now" |
| **I Ching** | Hexagram reading (random or manual) | "cast I Ching", "throw hexagram" |
| **Manage** | Pause/resume/change time | "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. Ask for: **birth date** (YYYY-MM-DD), **birth time** (HH:MM), **birth city** (lat/lon + timezone)
2. Ask for: **Telegram chat ID**, **preferred delivery time** + **timezone**
3. Run all calculation scripts: natal chart, Ba-Zi, numerology
4. Write results to `~/clawd/memory/horoscope-users.md` (include lat/lon, LifePath number)
5. Create daily cron job
6. Confirm: Western sign + ASC + Ba-Zi Day Master + LifePath + delivery schedule

## Daily Mode

Cron triggers 4 scripts → all JSON fed to LLM → compose multi-system horoscope → Telegram.

See `references/horoscope-prompt-template.md` for full agentTurn message.

## On-Demand Mode

Trigger: "my horoscope", "horoscope now", "what's my horoscope today"

Same flow, inline (not isolated session). Includes daily I Ching hexagram.

## I Ching Mode

Trigger: "cast I Ching", "throw hexagram", "que Kinh Dich"

- **Random cast:** 3-coin method, cryptographic randomness
- **Manual input:** User provides upper/lower trigrams + moving lines
- Output: primary hexagram, moving lines, transformed hexagram, SPARK summary

## Management Commands

| Command | Action |
|---------|--------|
| "pause horoscope" | Disable cron job |
| "resume horoscope" | Enable cron job |
| "change horoscope time to 7am" | Update cron schedule |
| "remove horoscope" | Delete cron job + memory entry |

## Cron Delivery

One cron job per user: `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

File: `state/users.json` — maps usernames to cron job IDs.

## Error Handling

- **kerykeion fails:** Fallback to `fetch-planetary-positions.py` (API-based, no houses)
- **API down:** LLM generates horoscope from zodiac knowledge only
- **Memory missing:** Prompt user to run setup first
- **I Ching data missing:** Generate hexagram from embedded trigram math only

## References

- `references/astronomyapi-reference.md` - API auth + endpoints
- `references/zodiac-reference.md` - Western + Chinese zodiac tables, stems, branches
- `references/horoscope-prompt-template.md` - LLM prompt for daily generation
- `references/i-ching-64-hexagrams.json` - 64 hexagrams with Chinese/Vietnamese names

## Dependencies

- **kerykeion** (pip) — natal chart, houses, aspects. Install: `pip install kerykeion`
- **astronomyapi.com** — env: `ASTRONOMY_APP_ID`, `ASTRONOMY_APP_SECRET`
- All other scripts: Python stdlib only
browser

Comments

Sign in to leave a comment

Loading comments...