Назад към всички

mingli

// 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.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namemingli
descriptionMingli (命理) — 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.
version2.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

ModeDescriptionTrigger
SetupRegister birth data, compute all charts"set up my horoscope"
DailyAutomated 4-system horoscope via cronCron schedule
On-demandInstant horoscope"my horoscope", "horoscope now"
I ChingHexagram reading (random or manual)"cast I Ching", "throw hexagram"
ManagePause/resume/change time"pause horoscope", "change horoscope time"

Scripts

# 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

CommandAction
"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}

{
  "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