Tarotscript Layer 1 · Treatise fol. ii
Plate I codependency, martyrdom, insecurity, emotional manipulation

The language that shows its work.

TarotScript is a symbolic programming language where programs are rituals, data structures are decks, and control flow is a cast. The shapes it composes — spreads — are the same shapes the language uses to describe itself. This page is cast from spreads/layer-ii.tarot; the plates you are reading now were shaped by the same runtime that will answer your live cast below.

The teaching and the doing are the same act.

primitives
ritual · spread · deck
runtime
hosted, auditable
receipts
one per cast · clickable
Plate II creative, intuitive, sensitive, message of emotion, curiosity
editor.tarot source
each cast mints its own receipt
runtimeawaiting cast

Click cast to run the script through the hosted runtime.

Output and a fresh receipt will appear here.

Plate III contentment, satisfaction, gratitude, wishes fulfilled, pleasure
i.

Ritual — the program.

A named sequence of statements that operates on a spread. Like a function with declared positions instead of parameters: ritual triad { using Triad; shuffle; draw … }. Rituals can call other rituals (cascade), receive values from prior casts (receive), and emit facts (emit).

ii.

Spread — the shape.

A spread declares positions and a flow between them. Positions are name-shaped slots that cards fill when drawn: positions: past, present, future. The flow is a directed graph the runtime walks when synthesising — it gives the reading its narrative arc.

iii.

Deck — the alphabet.

A deck is an ordered set of cards, each carrying keywords, an element, and optional trait correspondences. Decks compose: one deck's card can map to another's via correspondence tables. The runtime uses the same deck mechanism for tarot, game cards, agent manifests, and memory.

Plate IV rebellion, subversiveness, challenging convention, personal belief
i.

shuffle

shuffle

Randomise the deck under the current seed.

ii.

draw

draw <position> [from <deck> where …]

Deal the top card into a named position. Optional filter clause narrows the candidate set.

iii.

cross

cross <position> { … }

Scope a block to a position. Used inside a ritual to dig into one card at a time.

iv.

speak

speak "template {slot}"

Emit a line of output. Slots are interpolated with position fields: {pos.name}.

v.

whisper

whisper "…"

Quiet output — for auditor logs or reasoning trails, not the public reading.

vi.

emit

emit "key" = value

Record a named fact on the cast. Facts surface in the receipt and on downstream calls.

vii.

let

let name = expr

Bind a value to a local identifier for later use within the ritual.

viii.

attempt / tower

attempt { … } tower { … }

Structured exception flow. If the attempt block throws, the tower block runs — errors become drawn cards.

ix.

cascade

cascade <ritual>

Invoke another ritual, threading the current cast's state and receipt chain through.

x.

receive

receive <key> from <source>

Pull a value emitted by an upstream cast or external fact into this ritual's scope.

xi.

inscribe

inscribe { … }

Mint a memory card — persist a cast's output to the memory deck for future retrieval.

xii.

consume

consume <card>

Remove a card from the deck. For state-as-deck scenarios where depletion matters.

Descend

  1. I. The Portal symbolic computation with receipts — the anti-hallucination layer
  2. III. The Agents classification, scaffolding, decisions, simulation — one abstraction, four vocabularies
  3. V. For Builders MCP integration, the deck authoring SDK, API — a quickstart for operators