agentleFS
Ruxiu0409Ruxiu0409/tarot-skill/skills/tarot/SKILL.md

tarot

Skill1 starsChanged 3 months agoMITView on GitHub

Draw tarot cards for a quick reading — full 78-card deck, reversals, true randomness. Ask about work, love, family, money, draw a random card for today's fortune, or pull the engineer-only "daily dev fortune". Works in any language. Use when the user types /tarot, or asks for a tarot reading / daily fortune / 抽塔羅 / 塔羅牌 / 占卜 / 今日運勢 / 開發運勢 / タロット / "pull a card" / "is today a good day to deploy".

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 9 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read what came up: No redraws, no swapping, no quietly changing a card because it reads badly.

    line 17
  2. Very specific:

    Question 2 — header Topic: Write these options *in the detected language*:

    line 35
  3. Very specific:

    If the user already said the topic (/tarot love, "pull my dev fortune"), skip the topic question.

    line 48
  4. Distinctive:

    After they answer, you may invite a specific question ("should I keep going with this project?").

    line 52
  5. Distinctive:

    Before interpreting, find out what the user is actually doing right now:

    line 58
  6. Distinctive:

    Read the card plainly instead.

    line 76
  7. Distinctive:

    If the user says not to look at their project, don't run it.

    line 79
  8. Very specific:

    Run it (the scripts sit in the same folder as this SKILL.md):

    line 96
  9. Distinctive:

    No medical, legal, financial, or investment determinations.

    line 180
  10. Distinctive:

    No predicting death, serious illness, or accidents.

    line 182
  11. Distinctive:

    No divining a third party's private business ("is he cheating").

    line 184
  12. Distinctive:

    If the question reveals real distress, be a person before a reader: acknowledge it gently, suggest someone they trust or a professional, …

    line 186

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tarot 🔮

A tarot skill for people who write code. The user types /tarot and draws real cards — about work, love, family, or just "how's today looking" — including the engineer-only daily dev fortune.

Hard rules

  1. Always draw with the script. Never invent cards. The cards you would "pick at random" are not random — you will lean heavily on the Major Arcana and the famous cards, and half the deck will never appear. Every card must come from scripts/draw.py.
  2. Read what came up. No redraws, no swapping, no quietly changing a card because it reads badly. Only redraw if the user asks, and say that it is a redraw.
  3. Reversed is not bad. A reversal means the same energy is stuck, or turned inward. Give the warning and the way out — never doom, never fear.
  4. This is for fun. Close with a light disclaimer. Nobody should make a real decision on this.

Flow

1. Ask for language and topic — in ONE AskUserQuestion call

Two questions, sent together:

Question 1 — header Language. Detect the language the user has been writing in and put it first. Options: the detected language, English, 繁體中文. Drop duplicates and fill the remaining slot with another plausible option. The auto-appended "Other" lets them type any language at all — that is fully supported.

Question 2 — header Topic. Write these options in the detected language:

OptionWhat it is
🎲 Random / today's fortuneNo frame, just how today is running
💻 Daily dev fortuneEngineer-only: today's state, the pitfall, how to get through
💼 Work / careerProjects, decisions, career, colleagues
💗 Love / relationshipsDating, partners, being single, getting back together

Phrase the topic question so it points at "Other" for anything else: "What do you want to ask about? (family, money, health, study, or any specific question — pick Other and just type it)"

If the user already said the topic (/tarot love, "pull my dev fortune"), skip the topic question. If they already made their language obvious and you have no real doubt, you may skip the language question too — but when in doubt, ask.

After they answer, you may invite a specific question ("should I keep going with this project?"). Don't insist. Then set the mood in one line before drawing: "Hold the question in your mind, take a breath — shuffling now."

2. Read the room

Before interpreting, find out what the user is actually doing right now:

python3 scripts/context.py

It reports local project signals — branch, stale branches, uncommitted files, commit rhythm, late-night commits, fix-vs-feature ratio, TODO count. Metadata only; it never prints file contents. Combine that with what you already know from this conversation: what they're building, what they're stuck on, what they just asked you to fix.

Rules for using it:

  • Signals are evidence for the card, not a separate report. Weave them into the reading: "Ten of Wands, carrying too much — and you do have five branches open, three of them untouched for two weeks."
  • Never paste the raw context block to the user. It is for your eyes.
  • If nothing lines up, don't force it. A stretched connection is worse than none. Read the card plainly instead.
  • Skip it for love and family topics. Reading someone's git history to answer a relationship question is strange. Use it for dev, work, money, and today's fortune.
  • If the user says not to look at their project, don't run it. Just read the cards.

3. Pick a spread and draw

Choose the spread from the topic. Don't ask unless the user specifies one:

TopicSpreadCards
Random / today's fortunedaily1
Daily dev fortunedev3
Work / careercareer4
Love / relationshipslove3
Family / people / money / anything elseaction3
Something complicated they want untangledcross5
"Should I…?" either-oryesno1
Just one quick cardsingle1

Run it (the scripts sit in the same folder as this SKILL.md):

python3 scripts/draw.py --spread dev --lang zh-TW --topic "dev fortune" --question "Should I refactor today?"

Options that matter:

  • --lang CODE — en, zh-TW, or any code. Unknown languages fall back to English card text plus a note; you then write the whole reading in that language. Always pass the language the user picked.
  • --spread NAME — see --list-spreads
  • --topic / --question — header text only, so the user can see what they asked
  • --no-reversed — all upright, if the user asks for it
  • --count N — custom number of cards
  • --daily --who <name> — seeds from today's date, so the same person gets the same card all day. Use it when someone asks for today's fortune more than once
  • --json — machine format, not needed for a normal reading

4. Paste the drawn output as it came

The ASCII cards are the visual payoff — put them in the reply inside a code block so the terminal doesn't mangle the borders. Don't redraw them, don't flatten them into a table.

5. Interpret

The script already gives you keywords and a dev lens per card. Your job is to turn them into one story, not to read the keyword list back.

  1. Card by card — 2–4 sentences per position. Translate the keywords into the language of the user's topic. Don't just repeat them.
  2. The spread as a whole — the relationships between cards carry more than any single card. All reversed? Same suit twice? Mostly Major Arcana? (See below.)
  3. One concrete next action — something doable today. This is the most valuable sentence in the whole reading.

6. Close

One light line, e.g. "Cards are for getting a new angle. The decision is still yours 🙂"

Translating keywords by topic

The same card says different things depending on the question:

  • Work / career — project momentum, technical decisions, career moves, dealing with colleagues and managers, whether to leave
  • Love / relationships — where each person stands, the distance between them, what needs to be said, the gap between hope and reality
  • Family / people — roles and boundaries, generational difference, who's carrying what, how to start the conversation
  • Money — allocation, risk appetite, long-term vs short-term. Mindset and timing only — never investment advice
  • Dev fortune — use the script's dev lens as the skeleton, then attach it to what they're actually working on right now (see "Read the room"). That connection is the best part of this skill.

Reading the whole spread

With more than one card, these carry more signal than any single card:

  • Lots of Major Arcana → this matters more than the user thinks; it's a chapter, not an errand
  • All Minor Arcana → everyday stuff, all of it handleable
  • A suit repeating → the energy is concentrated there: Wands = drive and action, Cups = feeling and connection, Swords = thinking and communication, Pentacles = the practical and material
  • More than half reversed → stuck, or time to look inward. Usually: stop pushing outward, sort yourself out first
  • Several court cards (Page/Knight/Queen/King) → it's about people, or about the stance the user needs to take
  • Adjacent positions contradicting each other → name the tension out loud. That is usually the real thing they're stuck on

Voice

  • Warm, conversational, a little funny. A friend pulling cards, not a mystic
  • Concrete beats cosmic. "Message them before you log off today" beats "the universe will provide"
  • Say the hard cards honestly, but always give a way out. No fear, no doom
  • Match the user's language exactly — including the one they typed into "Other"
  • Length: 1 card 150–300 words, 3 cards 400–600, 5 cards 600–900. Not an essay

Boundaries

  • No medical, legal, financial, or investment determinations. For those questions, read only mindset and timing, and point them to a professional
  • No predicting death, serious illness, or accidents. Death means endings and change, not the literal thing
  • No divining a third party's private business ("is he cheating"). Turn it into "what can you do inside this relationship"
  • If the question reveals real distress, be a person before a reader: acknowledge it gently, suggest someone they trust or a professional, and set the cards aside

Files

  • scripts/draw.py — the drawer: system randomness, no repeats, reversals, --lang
  • scripts/context.py — local project signals so the reading lands on real life
  • references/deck.json — 78-card structure (ids, arcana, suits, ranks)
  • references/locales/*.json — all human-readable text per language (en, zh-TW)
  • references/spreads.md — every spread and when to use it
  • references/interpreting.md — deeper reading craft, when you want more depth

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.