Repository navigation
feat(data): tarot meanings + bazi timezone/true-solar-time - #31
Merged
Merged
Conversation
… layer part 1) - tarot: every drawn card now carries audited meanings (upright keywords, shadow/question for majors, composed suit+rank themes for minors, reading_cue honoring reversal); data inlined in tarot.py to preserve the single-file standalone design; schema + packaged copy updated - bazi: optional --timezone (IANA) and --longitude (true solar time correction, 4 min/degree off the standard meridian; correction reported in output for auditability); MCP bazi_cast exposes both; schema updated - tests: meanings contract test, timezone/DST-aware tests, true-solar correction test (Urumqi case), bazi added to standalone sync test - 95 tests + 35 subtests pass
…cation The flagged print(json.dumps(result)) is the product output itself: the user explicitly requests their own chart on their own terminal. No logging infrastructure exists; nothing is persisted or transmitted.
sapuyou45-bit
added a commit
that referenced
this pull request
Aug 12, 2026
Part 2 of the data layer (part 1 = #31: tarot meanings + bazi timezone). Completes 'the model interprets data, not memory'. ## What - **Classical Zhou Yi texts** (卦辭/爻辭, public domain via Chinese Wikisource) embedded for all 64 hexagrams, keyed by binary string - `primary_hexagram.texts` / `resulting_hexagram.texts`: judgment + line labels + line texts + source - `changing_line_texts`: the moving lines actually read, with 初九/九二… labels - Schema updated (`$defs.hexagram.texts` + top-level `changing_line_texts`), packaged copy synced ## Provenance decision Wilhelm-Bayes (the popular English translation) is still under copyright — deliberately avoided. Classical Chinese text is public domain; open-iching's JSON was evaluated and rejected after spotting transcription errors (见龙~~再~~在田); Wikisource parsed per-hexagram instead, with format-variant handling (名 glued to text, comma separators) and two hand-verified patches (習坎/恆). ## Tests 96 tests + 35 subtests pass, incl. anchored 困之節 contract test. Co-authored-by: sophiew <246639359+sapuyou45-bit@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
V8.1 data layer, part 1 (of 2). Part 2 will add I Ching judgment/line texts.
Tarot: audited meanings in output
Every drawn card now carries a
meaningsobject so the model interprets data, not memory:keywords_upright+shadow(reversed cue) +question— structured fromskills/tarot/references/cards.mdreading_cuehonors reversal orientationtarot.pyto preserve the single-file standalone fallback designschemas/tarot-draw.schema.json+ packaged copy updatedBazi: timezone + true solar time
--timezone(IANA name, stdlibzoneinfo, no new deps)--longitudeenables true-solar-time correction (4 min per degree off the standard meridian); the correction is reported in the output — auditable by designbazi_castexposes both parametersschemas/bazi-cast.schema.json+ packaged copy updatedTests
95 tests + 35 subtests pass, including new contract tests for meanings, DST-aware timezone handling (China 1986–1991 DST covered), and the Urumqi true-solar correction case.