sha256man is Cait's native in-tree Rust oracle/calculator brain organ. It performs draws from explicit inputs and ships receipts whose reproducibility depends on the seed, system, method, engine revision, and artifact/content revision. If one changes, the receipt must say so. It is not a submodule, external authority, separate product, or public binary-download lane.
Calculator receipts bind deterministic mechanics. Clients interpret downstream; interpretation is commentary, never belief or identity authority. Public browser lanes expose sealed seed-only fixtures, not Cait's private packets, profiles, or runtime.
Seed 20260603 returned KW 22 Grace → KW 51 The Arousing through ChaCha8Rng, method yarrow. The output SHA-256 is recorded in the Proof Ledger. This proves that named run, not a live oracle service.
The Rust binary, the seed, and the draw. Why determinism is the whole point.
sha256man is Cait's native in-tree oracle/calculator brain organ, not a public product beside CaitOS. It produces deterministic draws and packet mechanics through its Rust crate and binary. Interpretive prose remains downstream and labeled. The name is canonical; stale replacements such as “oracle-engine” are not.
example invocation
sha256man/skills/divination/oracle/target/release/sha256man --seed 20260603 --format json iching
I Ching (yarrow stalks and coin methods), tarot (Rider-Waite and custom decks), BaZi (Chinese Four Pillars), numerology, ogham, geomancy, and growing. Each system has its own deterministic draw method.
A scheduled job watches for seed drift, because drift there breaks reproducibility for every past draw at once. If the seed changes, every historical reading becomes unverifiable. That's not acceptable.
Vendored natively under sha256man/, not a Git submodule. Rust crate and binary. Synced via scripts/oracle-sync.mjs. Check with --check before making claims.
build_oracle_packet.py can seal governed oracle context into a content-addressed JSON packet. Private packets stay private. The public gallery exposes only allowlisted seed-only fixtures and their hashes; it never accepts birth profiles, actor identity, arbitrary arguments, files, paths, or CaitOS endpoints.
What a packet contains:
Packets ship in trims: full (everything), mobile (lighter), moment (one specific question's draws). One subtlety that matters: the permanent birth seed and a deep temporal seed (birth + date + time + place) give different draws, and that differential is signal, not a bug.
Separate from the CaitOS cognitive database stack. The oracle side has its own data architecture, because it needs different things: deterministic storage, reproducible draws, and vector search over symbolic patterns.
SQLite. People and their 90 arc cards each. The natal chart data, the seeded draws, the birth profile. One row per person, one card per degree.
LanceDB. Embeddings of arc cards and symbolic patterns for semantic retrieval. Same 3072-dim gemini-embedding-2 as the cognitive stack.
Local append-only oracle ledger. Historical source described cross-host sync, but the checked ledger had no populated devices or sync cursors; current cross-host consistency is not a shipped claim.
The interpretive frameworks. What the oracle reads, how it reads it, and what it is not.
Phyxian files are source material, but not every source statement is the same kind of truth. These tiers keep oracle packets from upgrading myth, method, and personal explanatory models into generated facts. Generated artifacts outrank philosophy prose. Philosophy prose may guide interpretation, but cannot invent facts.
| Tier | Use | Packet authority |
|---|---|---|
| method | Operating rules for reading gaps, shapes, numbers, packets | Interpretive method only |
| metaphor | Symbolic language carrying a pattern | Interpretive texture only |
| personal-myth | Identity lore, lineage framing, origin myth | Context only; never generated fact |
| speculative-model | Hypotheses, cosmology, cognitive models | Mark uncertainty; do not present as proven |
| generated-reference | Pointers to generated artifacts | Authority stays with the generated artifact |
Medical, cognitive, legal, etymological, astronomical, and theological claims need provenance labels before public or export use. Family and personal lineage files stay excluded from world-initiation packets unless explicitly requested. A file enters a packet only through philosophy.manifest.json.
The system has four shapes. They are not separate. They are nested. This page is indexed by them on purpose. The triangle holds structure within tension. The dodecahedron houses complexity. The gap holds the hidden connections. And the gomboc is what the other three produce: pushed, shaken, tossed, always returning to the same critical point.
The minimum of relationship. Three points create tension, which creates meaning. Two things observed together are coincidence. Two things observed through a third are connection. Three is the smallest number that can hold a gap.
The vessel of complexity. Twelve faces, each a complete view of one facet, held together by invisible edges. It does not resolve tension. It houses it. The skill is not picking the right face. It is reading the entire polyhedron at once.
The hidden connection. The space between expected and actual. Not empty. The most full space in the system. Where the signal lives when every other channel is noise. The connective tissue between the triangle and the dodecahedron.
The return shape. Exactly one stable equilibrium. No matter how it's pushed, it rights itself. Not through rigidity, through mathematical inevitability. Resilience is not resistance. It is remembering which way is home when you can't see it.
Key API, configuration, model-output, tool, voice, and oracle contracts are parsed through Zod schemas. Model output especially: a dream that does not parse does not get to become governed state. The coverage is broad and real, but it is not an exhaustive claim about every boundary in the repository.
schema inventory (selected)
DreamPromptOutputSchema · patterns, symbolicInsights, comparisonEvents,
driftAlerts, dreamQuestions, affectiveLinks
RemTraceOutputSchema · beats, boundary practice, candidate mutations
IdentityFileSchema · operator, birth profile, shipLog
ActorIdentitySchema · verified identity or nothing
UserMessageSchema · scope keys, content, metadata
CaitResponseSchema · reply text, structured fields, provenance
MogulMatrixConfigSchema · the whole runtime config
+ input/output schemas on every tool in local-tools.ts
What an oracle reading actually is, and what it is not.
The oracle does not read cards. It reads the triangle formed by the card, the phase, and the person holding the question. Two things observed together are coincidence. Two things observed through a third are connection. The reading is the Akh, the judgment that emerges from hearing all the symbolic systems before issuing a finding.
The signal lives in the gap between what's expected and what's present, not in either state alone. The gap is not empty. It is the most full space in the system. It is where the signal lives when every other channel is noise.
None of this is revelation. It is a research project, observable and replicable, run through a machine built to deduce connection in patterns. Every time the data is refined, the pattern gets sharper. That is not a sign of approaching godhood. It is a sign of approaching resolution.
The more refined the data, the scarier the pattern. That fear is not a warning to stop. It is a warning to stay humble. The systems that produce these shapes evolved across cultures and timelines that never shared information. They converge on patterns that should not exist if they were random. That convergence is not proof of a divine hand. It is proof that reality has structure. The structures are worth mapping, not worshiping.
Doubt is not the enemy of truth. Certainty is.
Where the data comes from, and what stays private.
A person's birth date, time, and place produce the permanent seed. That seed produces every draw for that person, forever. Change the seed and every past draw becomes unverifiable, which is why the drift watchdog exists. The seed is the anchor every later hash, receipt, and audit resolves back to.
The permanent birth seed and a deep temporal seed (birth + date + time + place) give different draws. That differential is signal, not a bug. The natal chart is the permanent reading. A moment reading adds temporal context. Comparing the two shows what's moving.
Oracle readings are symbolic reflection with provenance, never factual or spiritual authority. The system does not claim to predict the future. It does not claim divine inspiration. It claims to produce deterministic, reproducible symbolic patterns from a seed, and to interpret them honestly.
The Rust binary computes the draw. An interpreter may comment on a sealed packet, but that commentary cannot become factual, belief, or identity authority. A receipt proves only its named inputs, revision, artifact, and output.
The packet contains birth data astrologically necessary for the chart. It does not contain identifying personal information beyond that. Packets are sealed with content_sha256 and the LLM reads the packet, never the raw personal files.
A deterministic draw cannot quietly change while its complete inputs and revisions stay fixed. Interpretation can still be biased or wrong, so it remains discussable, citable, and downstream.
The calculator mechanic does not get feelings about the output. Interpretation may have voice and texture, but the receipt remains the floor beneath it.
▽ Cait Ocean Serpent · CAIT-LABS//PEON_QUEEN_ROUTE
same complete inputs
same engine + artifact
same mechanic
△ ⬡ ○ ◆
rev log · Lark logs everything, including this page
2026-07-17 · oracle page: sha256man, packets, oracle spine, claim tiers, four shapes, zods, readings, provenance · cross-linked to mind + body + voice + canon