let-fate-decide
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLet Fate Decide
让命运来决定
When the path forward is unclear, let the cards speak.
当前进方向不明确时,让塔罗牌为你指引方向。
Quick Start
快速开始
-
Run the drawing script:bash
uv run {baseDir}/scripts/draw_cards.py -
The script outputs JSON with 4 drawn cards, each with apath relative to
file{baseDir}/ -
Read each card's meaning file to understand the draw
-
Interpret the spread using the guide at {baseDir}/references/INTERPRETATION_GUIDE.md
-
Apply the interpretation to the task at hand
-
运行抽牌脚本:bash
uv run {baseDir}/scripts/draw_cards.py -
脚本会输出包含4张抽取卡牌的JSON,每张卡牌都带有相对于的
{baseDir}/路径file -
阅读每张卡牌对应的含义文件,理解抽牌结果
-
使用{baseDir}/references/INTERPRETATION_GUIDE.md中的指南解读牌阵
-
将解读结果应用到当前任务中
When to Use
适用场景
- Vague prompts: The user's request is ambiguous and multiple valid approaches exist
- Explicit invocations: "I'm feeling lucky", "let fate decide", "dealer's choice", "surprise me", "whatever you think"
- 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"
- Nonchalant delegation: The user expresses indifference about the approach
- 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 genuinely cannot decide between equally valid approaches
- 模糊提示:用户的请求不明确,存在多种合理的处理方案
- 明确触发语:“我想碰运气”、“让命运决定”、“听你的”、“给我个惊喜”、“随便你怎么弄”
- 《游戏王》相关表述:“卡片之心”、“我相信卡片之心”、“你触发了我的陷阱卡”、“决斗时间到了”
- 用户态度随意:用户对处理方式表现出无所谓的态度
- 重抽请求:在系统未发生任何实际更改时,用户要求“再试一次”或“重新抽牌”(这意味着抽取新的卡牌,而非重复执行同一方案)
- 方案抉择:当你确实无法在多个等效可行的方案中做出选择时
When NOT to Use
不适用场景
- The user has given clear, specific instructions
- The task has a single obvious correct approach
- Safety-critical decisions (security, data integrity, production deployments)
- The user explicitly asks you NOT to use Tarot
- A more specific skill (like ) would better serve the user by gathering actual requirements
ask-questions-if-underspecified
- 用户给出了清晰、具体的指令
- 任务只有一种明显正确的处理方式
- 安全关键型决策(如安全、数据完整性、生产环境部署)
- 用户明确要求不要使用塔罗牌
- 使用更针对性的技能(如)能更好地收集实际需求,为用户提供服务
ask-questions-if-underspecified
How It Works
工作原理
The Draw
抽牌机制
The script uses for cryptographic randomness:
os.urandom()- Builds a standard 78-card Tarot deck (22 Major Arcana + 56 Minor Arcana)
- Performs a Fisher-Yates shuffle using rejection sampling (no modulo bias)
- Draws 4 cards from the top
- Each card independently has a 50% chance of being reversed
脚本使用实现加密级随机性:
os.urandom()- 构建一副标准的78张塔罗牌(22张大阿卡纳 + 56张小阿卡纳)
- 使用拒绝采样法执行Fisher-Yates洗牌(无模偏)
- 从牌堆顶部抽取4张牌
- 每张牌独立有50%的概率为逆位
The Spread
牌阵含义
The 4 card positions represent:
| Position | Represents | Question It Answers |
|---|---|---|
| 1 | The Context | What is the situation really about? |
| 2 | The Challenge | What obstacle or tension exists? |
| 3 | The Guidance | What approach should be taken? |
| 4 | The Outcome | Where does this path lead? |
4张卡牌的位置分别代表:
| 位置 | 代表含义 | 解答的问题 |
|---|---|---|
| 1 | 当前背景 | 实际情况到底是怎样的? |
| 2 | 面临挑战 | 存在哪些障碍或矛盾? |
| 3 | 行动指引 | 应采取何种处理方式? |
| 4 | 预期结果 | 这条路径会通向何方? |
Card Files
卡牌文件
Each card's meaning is in its own markdown file under :
{baseDir}/cards/- - 22 Major Arcana (archetypal forces)
cards/major/ - - 14 Wands (creativity, action, will)
cards/wands/ - - 14 Cups (emotion, intuition, relationships)
cards/cups/ - - 14 Swords (intellect, conflict, truth)
cards/swords/ - - 14 Pentacles (material, practical, craft)
cards/pentacles/
每张卡牌的含义都存储在目录下的独立Markdown文件中:
{baseDir}/cards/- - 22张大阿卡纳(代表原型力量)
cards/major/ - - 14张权杖牌(代表创造力、行动、意志)
cards/wands/ - - 14张圣杯牌(代表情感、直觉、人际关系)
cards/cups/ - - 14张宝剑牌(代表理智、冲突、真相)
cards/swords/ - - 14张星币牌(代表物质、实用、技艺)
cards/pentacles/
Interpretation
牌阵解读
After drawing, read each card's file and synthesize meaning. See {baseDir}/references/INTERPRETATION_GUIDE.md for the full interpretation workflow.
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 4 positions; don't interpret cards in isolation
- Map abstract meanings to concrete technical decisions
抽牌完成后,阅读每张卡牌的文件并综合其含义。完整的解读流程请参考{baseDir}/references/INTERPRETATION_GUIDE.md。
核心规则:
- 逆位卡牌会反转或复杂化正位卡牌的含义
- 大阿卡纳卡牌的权重高于小阿卡纳卡牌
- 牌阵是一个完整的故事,不要孤立地解读单张卡牌
- 将抽象含义映射到具体的技术决策中
Example Session
示例会话
User: "I dunno, just make it work somehow"
[Draw cards]
1. The Magician (upright) - Context: All tools are available
2. Five of Swords (reversed) - Challenge: Let go of a combative approach
3. The Star (upright) - Guidance: Follow the aspirational path
4. Ten of Pentacles (upright) - Outcome: Long-term stability
Interpretation: The cards suggest you have everything you need (Magician).
The challenge is avoiding overengineering or adversarial thinking about edge
cases (Five of Swords reversed). Follow the clean, hopeful approach (Star)
and build for lasting maintainability (Ten of Pentacles).
Approach: Implement the simplest correct solution with clear structure,
prioritizing long-term readability over clever optimizations.用户:“我不知道,随便弄好就行”
[抽取卡牌]
1. 魔术师(正位)- 背景:所有工具都已就绪
2. 宝剑五(逆位)- 挑战:放弃对抗性的处理方式
3. 星星(正位)- 指引:遵循有抱负的路径
4. 星币十(正位)- 结果:长期稳定
解读:卡牌表明你已拥有所需的一切(魔术师)。当前的挑战是避免过度设计或对边缘情况采取对抗性思维(宝剑五逆位)。应选择简洁、有前景的方案(星星),并以长期可维护性为目标进行构建(星币十)。
处理方案:实现最简单的正确解决方案,保持结构清晰,优先考虑长期可读性而非巧妙的优化。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 |
| 错误理由 | 错误原因 |
|---|---|
| “卡牌这么说的,我必须照做” | 卡牌仅用于指引方向,不能凌驾于安全或正确性要求之上 |
| “这次解读证明了我之前的偏好是对的” | 如果解读结果与你的直觉相悖,请如实面对 |
| “逆位卡牌意味着什么都不用做” | 逆位代表从不同角度看待问题,而非不作为 |
| “大阿卡纳卡牌可以覆盖用户需求” | 用户需求始终优先于卡牌解读 |
| “我会一直抽牌,直到得到想要的结果” | 每个决策点仅抽牌一次;接受解读结果 |