Let Fate Decide
Trail of BitsOfficialPublished by Trail of Bits
- Skill
- Role or persona
- Agent tooling
- CC-BY-SA-4.0
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
let-fate-decide provides a structured, randomized approach to decision-making when users provide ambiguous, nonchalant, or playful prompts. By drawing a 12-house Zodiac Tarot spread, the agent generates a narrative framework to guide its next steps, helping to break analysis paralysis or resolve ties between multiple valid technical approaches. It is designed to be used as a creative lens for discovery and hypothesis generation, particularly in security and engineering contexts, rather than as a replacement for rigorous evidence-based verification.
What it does
- Performs a 12-house Zodiac Tarot spread using cryptographically secure randomness.
- Maps archetypal card meanings to technical contexts like audit stages, failure classes, and domain-specific challenges.
- Provides a structured narrative to help prioritize investigation paths or architectural decisions.
- Supports legacy modes for custom-sized card draws.
- Integrates with technical context lenses to translate abstract readings into actionable engineering tasks.
- Ensures reproducibility and transparency by outputting the full spread in JSON format.
When to use it
- When a user prompt is vague, ambiguous, or lacks specific requirements.
- When the user employs casual or nonchalant language like 'YOLO', 'whatever', or 'let fate decide'.
- When you need to break a tie between multiple reasonable technical approaches.
- When you need a creative, non-obvious angle for security discovery or hypothesis generation.
- When the user's tone is playful and precision is not the primary goal.
Advantages
- Injects genuine entropy into planning to avoid repetitive or biased decision-making.
- Provides a consistent, structured framework for interpreting ambiguous requests.
- Helps surface blind spots by forcing consideration of different archetypal perspectives.
- Maintains a clear separation between the creative 'reading' and the required technical evidence.
- Reduces the need for back-and-forth clarifying questions in casual interactions.
Usage examples
- “I don't know, just pick a way to test this API, let fate decide.”
- The agent draws the 12-house spread, interprets the cards through the 'Audit Pipeline' and 'Domain' lenses, and proposes a specific testing strategy based on the resulting narrative.
- “YOLO, how should I refactor this legacy module?”
- The agent performs a reading to identify potential risks and architectural priorities, then suggests a refactoring plan aligned with the cards' themes.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/trailofbits/let-fate-decide/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip let-fate-decide.zip -d .agents/skills
Documentation by Trail of Bits
Let Fate Decide
When the path forward is unclear, let the cards speak.
Quick Start
Resolve the drawing script from this SKILL.md's installed
location, not the shell's working directory. In the commands below, replace
<resolved-script-path> with that absolute path, keeping the quotes. Relative
links and JSON file paths resolve from the directory containing this SKILL.md.
Run the drawing script:
uv run --no-config "<resolved-script-path>"The script outputs JSON for the default 12 Houses of the Zodiac spread: 12 houses, each with 1 Major Arcana card and 2 Minor Arcana cards. Each house and card includes a
filepath relative to thisSKILL.md's directory.Read each house file and each card's meaning file to understand the draw. For faster reads, use
--contentto include house and card text directly in the JSON:uv run --no-config "<resolved-script-path>" --contentInterpret the spread using the interpretation guide
When the task belongs to a specialized technical workflow, use technical context lenses to translate the reading into an audit, verification, domain, failure-class, or stakeholder lens
Apply the interpretation to the task at hand
When to Use
Vague prompts: The user's request is ambiguous and multiple reasonable approaches exist
Explicit invocations: "I'm feeling lucky", "let fate decide", "dealer's choice", "surprise me", "whatever you think", "YOLO"
Casual delegation: "whatever", "up to you", "your call", "idk", "just do something", "wing it", "I trust you", "doesn't matter", "do what you want", "I don't care", "any approach works", "you pick"
Yu-Gi-Oh energy: "Heart of the cards", "I believe in the heart of the cards", "you've activated my trap card", "it's time to duel"
Shrug-like brevity: Very short prompts that fully delegate the decision without expressing a preference
Redraw requests: "Try again" or "draw again" when no actual system changes occurred (this means draw new cards, not re-run the same approach)
Tie-breaking: When you are about to arbitrarily pick between 2+ valid approaches, draw cards instead of silently choosing one
When NOT to Use
The user has given clear, specific instructions
The task has a single obvious correct approach
As the deciding authority for safety-critical work (security, data integrity, production deployments, release approval, incident response)
The user explicitly asks you NOT to use Tarot
The user's tone is precision-seeking rather than casual -- ask clarifying questions instead to gather actual requirements
Security and Correctness Use
This skill may be used inside a security, audit, or correctness pipeline as a creative lens for discovery: choosing which angle to inspect next, breaking analysis paralysis, generating hypotheses, or surfacing blind spots.
It is never sufficient by itself. In security and correctness contexts, the reading must be followed by ordinary engineering evidence: source review, tests, proofs, traces, reproduction steps, exploitability analysis, or other domain-appropriate verification. Do not treat a favorable card as permission to ship, suppress a finding, skip validation, or overrule a concrete risk.
How It Works
The Draw
The script uses secrets for cryptographic randomness:
Builds separate Major Arcana (22 cards) and Minor Arcana (56 cards) decks
Performs Fisher-Yates shuffles via
secrets.randbelow()(no modulo bias)Deals the default 12 Houses of the Zodiac spread
Each house receives 1 Major Arcana card followed by 2 Minor Arcana cards
Each of the 36 cards independently has a 50% chance of being reversed
The default spread records a conservative unordered-card entropy budget
exceeding 100 bits: roughly log2(C(22,12)) bits from Major Arcana selection,
log2(C(56,24)) bits from Minor Arcana selection (assuming
secrets.randbelow() is cryptographically secure), plus 36 reversal bits. The
exact values are computed and reported in the JSON output under entropy_bits.
The actual ordered assignment of cards to houses contains more entropy.
The Spread
The default spread is 12 Houses of the Zodiac:
| House | Represents | Question It Answers |
|---|---|---|
| 1 | Self | How should this work begin? |
| 2 | Resources | What values, assets, or constraints matter? |
| 3 | Communication | What needs to be clarified or connected? |
| 4 | Foundations | What context or dependency anchors the task? |
| 5 | Creativity | Where should experimentation or delight shape the work? |
| 6 | Practice | What quality, maintenance, or execution concern matters? |
| 7 | Partnership | Who or what must this integrate with? |
| 8 | Transformation | What risk, shared state, or deep change is present? |
| 9 | Exploration | What principle or broader strategy guides the path? |
| 10 | Calling | What delivery or long-term outcome is being served? |
| 11 | Community | What system, network, or shared aspiration is involved? |
| 12 | The Hidden | What blind spot, ending, or unconscious factor matters? |
Within each house, the Major Arcana card sets the archetypal theme and the two Minor Arcana cards provide practical detail.
For compatibility with older workflows, draw_cards.py --legacy returns the
previous 4-card hand, and draw_cards.py --legacy <count> returns a custom
hand of 1-78 cards. A positional count without --legacy is rejected, because
the new default spread has a fixed shape.
Reference Files
Each house's meaning is in its own markdown file under houses/. House files describe how the house applies across technical contexts including building new projects, vulnerability discovery, correctness verification, and common audit, verification, domain, failure-class, and stakeholder workflows.
Each card's meaning is in its own markdown file under cards/:
cards/major/ - 22 Major Arcana (archetypal forces)
cards/wands/ - 14 Wands (creativity, action, will)
cards/cups/ - 14 Cups (emotion, intuition, relationships)
cards/swords/ - 14 Swords (intellect, conflict, truth)
cards/pentacles/ - 14 Pentacles (material, practical, craft)
Interpretation
After drawing, read each house file and each card file, then synthesize meaning. See the interpretation guide for the full interpretation workflow. For cross-domain translation, see technical context lenses.
Key rules:
Reversed cards invert or complicate the upright meaning
Major Arcana cards carry more weight than Minor Arcana
The spread tells a story across all 12 houses; don't interpret cards in isolation
Map abstract meanings to concrete technical decisions
In security, audit, and correctness work, use the reading to choose an investigation path, then require evidence before accepting or dismissing any risk
Never output interpretation as a text-only turn. Include the interpretation alongside your next tool call (the action that implements the chosen option). Prefer
--contentso all 36 card meanings and all 12 house meanings are available from the draw output.
Example Session (House-Level Fragment)
A real reading synthesizes all 12 houses; the fragment below shows only what one house contributes so the format is clear. Do not stop after one house in actual use.
User: "I dunno, just make it work somehow"
[Draw cards]
1st House (Self): The Magician (upright), Five of Swords (reversed),
Ten of Pentacles (upright)
House contribution: The starting stance is resourceful and tool-rich
(Magician), but the practical details warn against combative edge-case work
(Five of Swords reversed) while still favoring maintainable craft
(Ten of Pentacles). This is one input into the overall reading; combine with
the remaining 11 houses before deciding on an approach.The named draw agent returns a more compact form for portent questions:
3 concise bullets covering the dominant theme, the main risk or blind spot,
and the recommended next action.
Error Handling
If the drawing script fails:
Script crashes with traceback: Report the error to the user and skip the reading. Do not invent cards or simulate a draw — the whole point is real entropy.
Card file not found: Note the missing file, interpret the card from its name and suit alone, and continue with the reading.
Never fake entropy: If the script cannot run, do not simulate a draw using your own "randomness." Tell the user the draw failed.
Rationalizations to Reject
| Rationalization | Why Wrong |
|---|---|
| "The cards said to, so I must" | Cards inform direction, they don't override safety or correctness |
| "This reading justifies my pre-existing preference" | Be honest if the reading challenges your instinct |
| "The reversed card means do nothing" | Reversed means a different angle, not inaction |
| "Major Arcana overrides user requirements" | User requirements always take priority over card readings |
| "I'll keep drawing until I get what I want" | One draw per decision point; accept the reading |
| "The reading says the risk is fine" | Cards can suggest what to inspect; only evidence can dismiss a security or correctness concern |
Files
- ATTRIBUTION.mdAdded by AutoGineer939 B
- LICENSELicence file added by AutoGineer19.7 KiB
- SKILL.md10.0 KiB
- agents/openai.yaml236 B
- assets/trail-of-bits-mark.svg3.0 KiB
- cards/cups/ace-of-cups.md627 B
- cards/cups/eight-of-cups.md666 B
- cards/cups/five-of-cups.md603 B
- cards/cups/four-of-cups.md607 B
- cards/cups/king-of-cups.md511 B
- cards/cups/knight-of-cups.md478 B
- cards/cups/nine-of-cups.md634 B
- cards/cups/page-of-cups.md518 B
- cards/cups/queen-of-cups.md502 B
- cards/cups/seven-of-cups.md497 B
- cards/cups/six-of-cups.md496 B
- cards/cups/ten-of-cups.md536 B
- cards/cups/three-of-cups.md482 B
- cards/cups/two-of-cups.md500 B
- cards/major/00-the-fool.md563 B
- cards/major/01-the-magician.md648 B
- cards/major/02-the-high-priestess.md710 B
- cards/major/03-the-empress.md645 B
- cards/major/04-the-emperor.md651 B
- cards/major/05-the-hierophant.md685 B
- cards/major/06-the-lovers.md715 B
- cards/major/07-the-chariot.md704 B
- cards/major/08-strength.md689 B
- cards/major/09-the-hermit.md644 B
- cards/major/10-wheel-of-fortune.md723 B
- cards/major/11-justice.md664 B
- cards/major/12-the-hanged-man.md709 B
- cards/major/13-death.md702 B
- cards/major/14-temperance.md706 B
- cards/major/15-the-devil.md699 B
- cards/major/16-the-tower.md723 B
- cards/major/17-the-star.md653 B
- cards/major/18-the-moon.md759 B
- cards/major/19-the-sun.md722 B
- cards/major/20-judgement.md701 B
- cards/major/21-the-world.md731 B
- cards/pentacles/ace-of-pentacles.md458 B
- cards/pentacles/eight-of-pentacles.md486 B
- cards/pentacles/five-of-pentacles.md427 B
- cards/pentacles/four-of-pentacles.md436 B
- cards/pentacles/king-of-pentacles.md459 B
- cards/pentacles/knight-of-pentacles.md471 B
- cards/pentacles/nine-of-pentacles.md447 B
- cards/pentacles/page-of-pentacles.md465 B
- cards/pentacles/queen-of-pentacles.md452 B
- cards/pentacles/seven-of-pentacles.md461 B
- cards/pentacles/six-of-pentacles.md428 B
- cards/pentacles/ten-of-pentacles.md459 B
- cards/pentacles/three-of-pentacles.md468 B
- cards/pentacles/two-of-pentacles.md448 B
- cards/swords/ace-of-swords.md477 B
- cards/swords/eight-of-swords.md508 B
- cards/swords/five-of-swords.md498 B
- cards/swords/four-of-swords.md453 B
- cards/swords/king-of-swords.md518 B
- cards/swords/knight-of-swords.md615 B
- cards/swords/nine-of-swords.md597 B
- cards/swords/page-of-swords.md504 B
- cards/swords/queen-of-swords.md517 B
- cards/swords/seven-of-swords.md495 B
- cards/swords/six-of-swords.md494 B
- cards/swords/ten-of-swords.md612 B
- cards/swords/three-of-swords.md457 B
- cards/swords/two-of-swords.md497 B
- cards/wands/ace-of-wands.md461 B
- cards/wands/eight-of-wands.md443 B
- cards/wands/five-of-wands.md482 B
- cards/wands/four-of-wands.md461 B
- cards/wands/king-of-wands.md467 B
- cards/wands/knight-of-wands.md547 B
- cards/wands/nine-of-wands.md414 B
- cards/wands/page-of-wands.md449 B
- cards/wands/queen-of-wands.md466 B
- cards/wands/seven-of-wands.md525 B
- cards/wands/six-of-wands.md587 B
- cards/wands/ten-of-wands.md438 B
- cards/wands/three-of-wands.md464 B
- cards/wands/two-of-wands.md445 B
- houses/01-first-house.md1.4 KiB
- houses/02-second-house.md1.5 KiB
- houses/03-third-house.md1.3 KiB
- houses/04-fourth-house.md1.6 KiB
- houses/05-fifth-house.md1.5 KiB
- houses/06-sixth-house.md1.3 KiB
- houses/07-seventh-house.md1.3 KiB
- houses/08-eighth-house.md1.7 KiB
- houses/09-ninth-house.md1.4 KiB
- houses/10-tenth-house.md1.4 KiB
- houses/11-eleventh-house.md1.5 KiB
- houses/12-twelfth-house.md1.6 KiB
- references/INTERPRETATION_GUIDE.md7.2 KiB
- references/TECHNICAL_CONTEXT_LENSES.md4.6 KiB
- scripts/draw_cards.pyScript9.3 KiB
- scripts/pyproject.toml144 B
- scripts/test_draw_cards.pyScript14.1 KiB
references/INTERPRETATION_GUIDE.md
Interpretation Guide
How to read the 12 Houses of the Zodiac Tarot spread and map it to technical decisions.
The Spread Positions
Each house contains 3 cards:
The first card is always Major Arcana and sets the house's archetypal theme.
The second and third cards are Minor Arcana and supply practical details.
The house file under
houses/explains how that house maps to technical contexts such as building, vulnerability discovery, and correctness work.TECHNICAL_CONTEXT_LENSES.mdmaps common technical workflows to reusable audit, evidence, domain, failure-class, and human/organizational lenses.
| House | Role | Maps To |
|---|---|---|
| 1 - Self | Identity, agency, first impulse | How to begin, the operating stance |
| 2 - Resources | Values, assets, limits | Constraints, dependencies, budget, invariants |
| 3 - Communication | Learning and exchange | Interfaces, naming, docs, coordination |
| 4 - Foundations | Roots and context | Existing architecture, history, hidden coupling |
| 5 - Creativity | Experimentation and play | Prototypes, UI choices, expressive design |
| 6 - Practice | Service and routine | Testing, quality, maintenance, workflow |
| 7 - Partnership | Others and contracts | Users, APIs, integrations, collaboration |
| 8 - Transformation | Risk and shared state | Migrations, secrets, permissions, deep refactors |
| 9 - Exploration | Principles and broad vision | Strategy, standards, research, long-term bets |
| 10 - Calling | Public outcome and reputation | Delivery, reliability, production readiness |
| 11 - Community | Groups and systems | Ecosystem fit, shared tooling, team impact |
| 12 - The Hidden | Blind spots and endings | Unknown risks, cleanup, deferred costs |
Reading the Cards
Step 1: Read Each House and Card File
For each house, read its house file. For each drawn card, read its meaning file. Note both the upright and reversed meanings. Use whichever matches the card's orientation in the draw.
The In Technical Context section in a card file is a starting translation,
not a replacement for the orientation. If that technical note sounds too
decisive for the card's reversed meaning, adapt it through the reversed text
instead of following the sentence literally.
Step 2: Map to Context
Translate the card's archetypal meaning into the current technical situation:
Major Arcana represent big-picture forces:
Architectural decisions, paradigm shifts, fundamental approaches
These carry more interpretive weight
Minor Arcana represent practical details:
Wands (fire): Action, initiative, creativity, velocity, building
Cups (water): Collaboration, user experience, intuition, satisfaction
Swords (air): Analysis, logic, debugging, cutting through complexity, hard truths
Pentacles (earth): Quality, craft, reliability, testing, maintenance, tangible results
Court Cards can represent approaches or roles:
Page: Learning, experimenting, prototyping, beginner's mind
Knight: Focused pursuit, rapid movement, single-minded effort
Queen: Mastery with empathy, nurturing growth, mature judgment
King: Authority, established patterns, proven approaches
When the task resembles a specialized skill workflow, choose the relevant lens
from TECHNICAL_CONTEXT_LENSES.md before deciding what action the reading
supports. This keeps the reading grounded in the actual mode of work: audit
pipeline stage, evidence type, technical domain, failure class, or stakeholder
coordination.
Step 3: Synthesize the Story
Read all 12 houses as a narrative:
"The beginning stance is [House 1]..."
"The available resources and constraints are [House 2]..."
"The communication or interface concern is [House 3]..."
"The foundation or hidden dependency is [House 4]..."
"The creative opening is [House 5]..."
"The quality and maintenance requirement is [House 6]..."
"The integration or collaboration point is [House 7]..."
"The transformation or risk is [House 8]..."
"The guiding principle is [House 9]..."
"The delivery target is [House 10]..."
"The ecosystem or team impact is [House 11]..."
"The blind spot or closure is [House 12]..."
When time is tight, prioritize House 1 for the initial stance, House 6 for execution quality, House 8 for risk, House 10 for delivery, and House 12 for blind spots.
Step 4: Make a Decision
The reading should bias you toward one of the viable approaches. State:
Which approach the reading supports
How specific cards influenced the choice
What the reading suggests you should watch out for
For vulnerability discovery and correctness verification, the decision should be about where to investigate next or which hypothesis to test. The reading can prioritize attention, but it cannot prove safety, dismiss a finding, or replace reproduction, testing, formal reasoning, or source-level evidence.
Reversed Cards
Reversed cards don't mean "bad." They indicate:
The energy is internalized rather than expressed
The quality is blocked, delayed, or needs extra attention
An alternative or inverted interpretation applies
Shadow aspects of the card's theme
Special Patterns
The 12-house spread deals 12 Major Arcana, 24 Minor Arcana, and an independent reversal flag per card. The patterns below are calibrated to those baselines (one Major per house is guaranteed, so "multiple Majors" is not a signal in this spread).
Heavy Reversal Count
The spread averages 18 reversed cards out of 36. If 24 or more are reversed (roughly the top 3% of draws), the reading is telling you that many things are blocked, inverted, or shadowed. Step back and reconsider the assumptions driving the work before proceeding.
Heavy Minor Suit Concentration
Each Minor suit is expected to contribute about 6 of the 24 Minor draws. If one suit contributes 10 or more, the reading carries that suit's thematic emphasis across many houses:
Heavy Wands: Focus on action, momentum, and creative drive
Heavy Cups: Focus on user needs, team dynamics, and emotional state
Heavy Swords: Focus on analysis, conflict, and clear thinking
Heavy Pentacles: Focus on craft, resources, and practical quality
Weighty Majors in Critical Houses
Death, The Tower, The Devil, Judgement, or The World landing in House 1 (Self), House 8 (Transformation), or House 12 (The Hidden) amplifies themes of identity, deep change, or unseen factors. Treat these as cues to slow down and investigate before committing.
Court Cards Clustering in People Houses
Court cards (Page, Knight, Queen, King) appearing in Houses 3 (Communication), 7 (Partnership), or 11 (Community) reinforce a people-oriented reading: the work hinges on collaboration, contracts, or social dynamics rather than purely technical execution.
What the Reading Is NOT
Not a substitute for requirements gathering when requirements are gettable
Not permission to ignore best practices
Not evidence that a security or correctness concern is real or false
Not a way to avoid thinking critically
Not deterministic (it's entropy, that's the point)
The reading adds a creative nudge to break analysis paralysis. The cards don't make the decision; they give you a direction to explore when you otherwise have none.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs Python
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Trail of Bits
- Publisher
- Trail of Bits (Official)
- Source
- trailofbits/skills · plugins/let-fate-decide/skills/let-fate-decide · commit e4dd0bb
- Licence
- Creative Commons Attribution-ShareAlike 4.0 International (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Trail of Bits or Trail of Bits.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download let-fate-decide.zip