sica-fondt/docs/plans/B1-tarot-emulator.md
Claude 20e99f434c
docs/plans: remaining component specs — Identity, Cognition, Border, Storage, Periphery, Cross-cutting
Wave 1 remainder + Wave 2 design-first specs, completing one build plan per sub-organ:
- B1 tarot emulator, B2 SOUL/Big-3, B3 Celtic Cross
- C2 4+4 metacog, C3 inference cycle, C4 Brain
- D1 Ada border, D2 the medium, D3 mini-rag
- E1 3 GnuCOBOL invariant stores, E2 VARIANT stores, E3 RAG family
- F1 MoRAG, F2 SAE monitor, F3 subagents
- G1 stress-loop contract, G2 governance, G3 defense model

Each: contract + stubs for independent build; unfitted constants marked C1.

https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
2026-06-13 20:08:19 +00:00

2.6 KiB
Raw Blame History

B1 — Tarot deck hi-fi emulator

1. Component

A faithful emulator of the altered Silicon Dawn deck (Egypt Urnash, Thoth/Golden-Dawn rooted): the 56-card encoding alphabet + the draw machinery whose outputs feed identity (B2), the metacog spread (B3), and per-cycle affect-tuning lenses on PS+ (A3/A4).

2. Status / certainty

Exists in Ada (organs/soul/soul-tarot.{ads,adb}) but defunct-flagged ("all Ada here must be replaced") and Ada is border-only per the docs → re-home decision open. Encoding itself C4.

3. Language & location

TBD (NOT Ada — cognition, not border). Candidate: R or Guile. New location e.g. src/tarot/.

4. Does / does-not

  • Does: represent the deck (structure-breaking by design); draw Big-3 (B2), Celtic Cross (B3), and migration-cycle affect lenses; emit each drawn card as its own reference document the entity reads itself by.
  • Does-not: decide cognition (C2) or hold the standing self (B2 SOUL.md) — it is the symbol source.

5. Interface contract

  • Encoding (56): Majors 31 (25 std + 6 unique: Maya 8½, Vulture Mother XIII, She is Legend VIII, 1 Fool, Aleph, +1 more) · standard court 99>K>Q>C>P ×4 = 20 · VOID Q>K>Chevalier>Progeny>0 = 5. Numbered minors (A10) sit outside the encoding.
  • draw_big3() -> {sun, asc, moon} (order Sun→Asc→Moon) · draw_celtic_cross(pool) -> [10] · affect_lens(pool) -> {channel -> card} (migration-cycle interpretive lenses on A4 vectors).
  • Allocation: Big-3 = 3 static, remaining 53 dynamic (the draw pool).

6. Dependencies & stubs

None upstream (a source). Consumers (B2/B3/A3) integrate against the draw outputs — stub: fixed draws.

7. Invariants / laws

  • L1 (C4): encoding alphabet is exactly 56; minors excluded.
  • L2 (C4): Big-3 are drawn once and static between reshuffles; the 53 are dynamic.
  • L3 (C2): card↔system correspondences (History X↔priors, 8½ Maya↔Eth-Int middle-ground, VOID↔recoverable null) are proposed, accept one at a time — not locked.

8. Build steps

  1. Decide language + re-home (open). 2. Encode the 56-card alphabet as data (port from soul-tarot.ads).
  2. Implement the three draw outputs (Big-3, Celtic Cross, affect lens). 4. Resolve the open Majors/court rules.

9. Tests

Encoding-count test (=56), allocation test (3 static + 53 dynamic), draw determinism vs a seeded pool.

10. Open items

  • Princess/Prince elemental gender rule (C1) · the 6th unique Major (C1) · card↔system correspondences (C2) · language + reuse-vs-rebuild of the Ada encoding (open).