A local astrology skill for I Ching divination and natal chart calculation. Provides deterministic casting number generation and offline astrological chart computation.
YiFortune exposes 3 tools with partial schemas and inconsistent documentation. cast_yijing_numbers and divine_yijing_numbers are near-duplicates (both convert text to 3 integers via SHA-256, differing only by platform). Descriptions are present but lack actionable detail on when/why to use each. calculate_natal_chart has a well-documented schema with explicit ISO-8601 and timezone constraints, but the other two tools lack depth. No error handling guidance, no output schemas documented, and tool composition violates single-responsibility (two platform-specific casting tools should be one). Parameter descriptions exist but are minimal (10-40 chars). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Computes a complete astrological natal chart from birth data. Runs entirely offline using kerykeion library. Returns the Big Three (sun, moon, ascendant), all planets in signs and houses, twelve house cusps, and major aspects.
Turns the user's free-form reply into three integers in [0, 99] for I Ching divination. Derives numbers deterministically from user text and current minute via SHA-256 hashing. Available on Windows (cast.ps1) and Unix-like systems (cast.sh).
Generates I Ching casting numbers on Windows using PowerShell. Converts user's free-form text into three deterministic integers in [0, 99] via SHA-256 hashing of text plus current minute.
Duplicate tools with platform-specific names (cast_yijing_numbers vs divine_yijing_numbers) violate single-responsibility. Both convert user text to 3 integers via identical SHA-256 algorithm. Should be one tool with platform abstraction inside.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract results. cast_yijing_numbers/divine_yijing_numbers return '3 space-separated integers' (inferred from code comments, not schema). calculate_natal_chart returns JSON but structure not formally specified.
Parameter descriptions are minimal (10-40 chars). 'The user's free-form reply to be converted into casting numbers' is adequate, but lacks context on when/why to call the tool or what happens with the output. No guidance on error cases (empty input, invalid datetime, out-of-bounds coordinates).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All three tools are read-only and idempotent, but LLMs cannot infer this. Annotations enable safer agent planning and retry logic.
calculate_natal_chart parameter 'tz_str' description mentions validation ('MUST be consistent with birthDatetime offset') but no error handling guidance. If validation fails, what error is returned? How should the LLM recover?