Overview
Guides for AI readings, configuration and schools, cross-language predicates, multilingual output, error handling and extension.
For: everyone. Each card says who it is for
Everything you actually run into once it is installed lives in this chapter.
Using it without writing code
What it can do, where it fits, and what to hand your engineers
Semantic text (to_text)
Projecting a chart or horoscope into natural-language text: format conventions and length
Letting an AI read the chart
Charting to the library, reading to the model: tool calls and a few traps already hit
Knowledge packs
Keeping reading texts and school attributes out of the core: the default pack, overlays and merge rules
Reverse lookup
Recovering candidate birth dates from BaZi pillars or chart features: multiple solutions, readings and truncation
Config in depth
What each of the six switches and two custom tables changes, and when you would notice
The language-independent key contract
Why predicates must not match star names, and how the key fields work
Multilingual output
Six chart languages, which fields get translated, converting between keys and names
Error handling
Four error categories and how each of the three programming languages reports them
Extending the astrolabe
Hanging your own analysis rules off a chart, with each language's extension point
The API behind the nine charting steps
Come here when you only want the result of one intermediate step
Documentation endpoints for AI
llms.txt, single-page Markdown, Accept-header negotiation
The three easiest traps to fall into
- Predicating on star names. Switch the chart language and every branch silently fails. Use the language-independent keys.
- Forgetting the late Zi hour. Born between 23:00 and 24:00 means hour index
12, not0, and the two produce different charts. See Config. - Treating a palace slot as a position in the name order. Slot 0 of the twelve-palace array is the Yin palace, not the Soul palace. See The twelve palaces.