Let Fate Decide
by @kc0bfv
Draw Tarot cards using cryptographic randomness to inject entropy into planning when prompts are vague or underspecified. Interprets a 4-card spread to guide...
clawhub install let-fate-decideπ About This Skill
name: let-fate-decide description: "Draw Tarot cards using cryptographic randomness to inject entropy into planning when prompts are vague or underspecified. Interprets a 4-card spread to guide next steps. Use when the user is nonchalant, feeling lucky, says 'let fate decide', makes Yu-Gi-Oh references ('heart of the cards'), demonstrates indifference about approach ('whatever you think', 'surprise me', 'dealer's choice'), or says 'try again' / 'draw again' on a system with no changes. Also triggers on sufficiently ambiguous prompts where multiple approaches are equally valid."
Let Fate Decide
When the path forward is unclear, let the cards speak.
Based on the let-fate-decide plugin by theexpensiveexperience, licensed under CC BY-SA 4.0.
Quick Start
1. Run the drawing script:
python3 {baseDir}/scripts/draw_cards.py
2. The script outputs JSON with 4 drawn cards, each with a suit and card_id
3. Look up each card's meaning in the appropriate file under {baseDir}/cards/:
- cards/major.md β 22 Major Arcana
- cards/wands.md β 14 Wands
- cards/cups.md β 14 Cups
- cards/swords.md β 14 Swords
- cards/pentacles.md β 14 Pentacles
Each card is under a heading matching its name (e.g. "# The Fool", "# Ace of Cups").
4. Interpret the spread using {baseDir}/references/INTERPRETATION_GUIDE.md
5. Apply the interpretation to the task at hand
When to Use
When NOT to Use
How It Works
The Draw
The script uses os.urandom() for cryptographic randomness:
1. Builds a standard 78-card Tarot deck (22 Major Arcana + 56 Minor Arcana) 2. Performs a Fisher-Yates shuffle using rejection sampling (no modulo bias) 3. Draws 4 cards from the top 4. Each card independently has a 50% chance of being reversed
The Spread
The 4 card positions represent:
Interpretation
After drawing, look up each card in its suit file and synthesize meaning. See {baseDir}/references/INTERPRETATION_GUIDE.md for the full interpretation workflow.
Key rules:
Error Handling
Rationalizations to Reject
β‘ When to Use
π‘ Examples
1. Run the drawing script:
python3 {baseDir}/scripts/draw_cards.py
2. The script outputs JSON with 4 drawn cards, each with a suit and card_id
3. Look up each card's meaning in the appropriate file under {baseDir}/cards/:
- cards/major.md β 22 Major Arcana
- cards/wands.md β 14 Wands
- cards/cups.md β 14 Cups
- cards/swords.md β 14 Swords
- cards/pentacles.md β 14 Pentacles
Each card is under a heading matching its name (e.g. "# The Fool", "# Ace of Cups").
4. Interpret the spread using {baseDir}/references/INTERPRETATION_GUIDE.md
5. Apply the interpretation to the task at hand