关于 let-fate-decide
以塔罗牌辅助处理模糊请求、委托选择和决策平局的技能。它抽取十二宫牌阵并将解读转化为实际下一步;安全与正确性判断仍须依赖常规证据。
主要功能
- 01十二宫黄道牌阵
- 02密码学安全随机抽牌
- 03牌宫与牌义解读指南
- 04技术场景视角
- 05兼容旧版抽牌模式
适用场景
- 01在多个可行方案中选择
- 02为模糊任务寻找切入点
- 03打破分析僵局
- 04为技术审查生成假设
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ trailofbits/ skills --skill let-fate-decide安装后在 Claude Code 中输入/let-fate-decide确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/trail-of-bits-mark.svgcards/cups/ace-of-cups.mdeight-of-cups.mdfive-of-cups.mdfour-of-cups.mdking-of-cups.mdknight-of-cups.mdnine-of-cups.mdpage-of-cups.mdqueen-of-cups.mdseven-of-cups.mdsix-of-cups.mdten-of-cups.mdthree-of-cups.mdtwo-of-cups.mdcards/major/00-the-fool.md01-the-magician.md02-the-high-priestess.md03-the-empress.md04-the-emperor.md05-the-hierophant.md06-the-lovers.md07-the-chariot.md08-strength.md09-the-hermit.md10-wheel-of-fortune.md11-justice.md12-the-hanged-man.md13-death.md详细介绍
让命运决定
当前路途不明时,就让牌来说话。
快速入门
请从此 SKILL.md 的安装位置解析抽牌脚本,而不是从 shell 的工作目录解析。在下方命令中,将 <resolved-script-path> 替换为该脚本的绝对路径,并保留引号。相对链接和 JSON file 路径均相对于此 SKILL.md 所在目录解析。
-
运行抽牌脚本:
uv run --no-config "<resolved-script-path>" -
脚本会为默认的黄道十二宫牌阵输出 JSON: 12 个宫位,每个宫位包含 1 张大阿卡纳牌和 2 张小阿卡纳牌。每个宫位和每张牌都包含相对于此
SKILL.md所在目录的file路径。 -
阅读每个宫位文件以及每张牌的含义文件,以了解抽牌结果。若想更快读取,可使用
--content,直接在 JSON 中包含宫位和牌面文本:uv run --no-config "<resolved-script-path>" --content -
使用解读指南解读牌阵
-
如果任务属于专门的技术工作流,请使用技术背景视角,将解读转化为审计、验证、领域、故障类别或利益相关方视角
-
将解读应用到当前任务
适用场景
- 模糊的提示词:用户的请求含糊,存在多种合理的处理方式
- 明确的调用:“我今天运气不错”“让命运决定”“由庄家决定”“给我个惊喜”“随便你怎么想”“YOLO”
- 随意委托:“随便”“你决定”“由你做主”“不知道”“随便做点什么”“随机应变”“我相信你”“无所谓”“想怎么做就怎么做”“我不在乎”“什么方法都行”“你来选”
- 游戏王热情:“卡牌之心”“我相信卡牌之心”“你触发了我的陷阱卡”“决斗时间到了”
- 耸肩式简短表达:提示词非常简短,完全将决定权交给你,且没有表达偏好
- 要求重新抽牌:当系统实际上没有变化时,用户说“再试一次”或“再抽一次”(这表示抽新牌,而不是重复采用相同的方法)
- 打破平局:当你准备在 2 种或更多可行方案中随意选择时,改为抽牌,而不是默默做出选择
不适用场景
- 用户已给出清晰、具体的指示
- 任务只有一种显而易见的正确方法
- 作为安全关键工作(安全性、数据完整性、生产部署、发布批准、事件响应)的决策依据
- 用户明确要求你不要使用塔罗牌
- 用户的语气追求精确而非随意——应改为提出澄清问题,收集实际需求
安全与正确性用途
此技能可在安全、审计或正确性流程中用作创造性视角,以助于探索:选择下一步检查的角度、打破分析僵局、生成假设或发现盲点。
但它本身绝不足以作为依据。在安全和正确性场景中,解读之后必须进行常规工程验证:审查源代码、运行测试、给出证明、检查跟踪记录、复现步骤、分析可利用性,或采用其他适合该领域的验证方式。不要把有利的牌视为可以发布、压下发现、跳过验证或推翻具体风险的许可。
工作原理
抽牌
该脚本使用 secrets 生成密码学安全的随机数:
- 构建独立的大阿卡纳(22 张牌)和小阿卡纳(56 张牌)牌组
- 通过
secrets.randbelow()执行 Fisher-Yates 洗牌(无取模偏差) - 发出默认的黄道十二宫牌阵
- 每宫先抽 1 张大阿卡纳牌,再抽 2 张小阿卡纳牌
- 36 张牌中的每一张都有独立的 50% 概率为逆位
默认牌阵记录的保守无序牌熵预算超过 100 位:大阿卡纳选牌约贡献 log2(C(22,12)) 位,小阿卡纳选牌约贡献 log2(C(56,24)) 位(假设 secrets.randbelow() 在密码学上安全),此外还有 36 位逆位熵。具体数值会计算并在 JSON 输出的 entropy_bits 字段中报告。牌分配到各宫的实际有序结果包含更多熵。
牌阵
默认牌阵为黄道十二宫:
| 宫位 | 代表含义 | 回答的问题 |
|---|---|---|
| 1 | 自我 | 这项工作应该如何开始? |
| 2 | 资源 | 哪些价值、资产或限制因素很重要? |
| 3 | 沟通 | 有什么需要澄清或关联? |
| 4 | 根基 | 什么背景或依赖关系支撑着这项任务? |
| 5 | 创造力 | 应在哪里通过实验或趣味性为工作增色? |
| 6 | 实践 | 哪项质量、维护或执行方面的问题很重要? |
| 7 | 合作 | 这需要与谁或什么集成? |
| 8 | 转化 | 存在哪些风险、共享状态或深层变化? |
| 9 | 探索 | 哪项原则或更广泛的策略指引前进方向? |
| 10 | 使命 | 这项工作服务于什么交付成果或长期目标? |
| 11 | 社群 | 涉及什么系统、网络或共同愿景? |
| 12 | 隐秘 | 有什么盲点、终结或无意识因素值得关注? |
每一宫中,大阿卡纳牌设定原型主题,两张小阿卡纳牌则提供实际细节。
为兼容旧工作流,draw_cards.py --legacy 会返回之前的 4 张牌组合,而 draw_cards.py --legacy <count> 会返回自定义的 1 至 78 张牌组合。不带 --legacy 的位置参数数量会被拒绝,因为新的默认牌阵形状固定。
参考文件
每一宫的含义都保存在 houses/ 下各自的 Markdown 文件中。宫位文件介绍各宫在不同技术场景中的应用,包括构建新项目、发现漏洞、验证正确性,以及常见的审计、验证、领域、失效类别和利益相关方工作流。
每张牌的含义都保存在 cards/ 下各自的 Markdown 文件中:
- cards/major/ - 22 张大阿卡纳(原型力量)
- cards/wands/ - 14 张权杖(创造力、行动、意志)
- cards/cups/ - 14 张圣杯(情感、直觉、人际关系)
- cards/swords/ - 14 张宝剑(智识、冲突、真相)
- cards/pentacles/ - 14 张星币(物质、实践、技艺)
解读
抽牌后,读取每个宫位文件和每张牌文件,然后综合解读。完整的解读流程请参阅解读指南。 如需跨领域转换,请参阅技术背景视角。
关键规则:
- 逆位牌会颠覆或使正位含义变得复杂
- 大阿卡纳牌的分量高于小阿卡纳牌
- 牌阵通过全部 12 个宫位讲述一个故事;不要孤立地解读单张牌
- 将抽象含义映射到具体的技术决策
- 在安全、审计和正确性工作中,利用解读选择调查路径,然后在接受或排除任何风险前要求提供证据
- 绝不要只输出解读文本。 将解读与下一次工具调用(用于执行所选方案的操作)一同提供。优先使用
--content,这样抽牌输出中会包含全部 36 张牌的含义和全部 12 个宫位的含义。
会话示例(宫位级片段)
一次真实解读会综合全部 12 个宫位;以下片段仅展示一个宫位提供的信息,以说明格式。实际使用时不要只解读一个宫位。
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.
对于预示类问题,命名为 draw 的 Agent 会返回更简洁的形式:3 条精炼要点,分别涵盖主导主题、主要风险或盲点,以及建议的下一步行动。
错误处理
如果抽牌脚本失败:
- 脚本崩溃并输出回溯信息:向用户报告错误并跳过解读。不要编造牌面或模拟抽牌——关键在于真实熵。
- 找不到牌文件:注明缺失的文件,仅根据牌名和花色解读该牌,然后继续解读。
- 绝不伪造熵:如果脚本无法运行,不要用自己的“随机性”模拟抽牌。告知用户抽牌失败。
应当驳斥的自我辩解
| 自我辩解 | 错误之处 |
|---|---|
| “牌这么说了,所以我必须照做” | 牌只能提供方向,不能凌驾于安全性或正确性之上 |
| “这次解读证明我原本的偏好是对的” | 如果解读与直觉相悖,就应坦诚承认 |
| “逆位牌意味着什么都不做” | 逆位意味着换个角度,而非不采取行动 |
| “大阿卡纳可以凌驾于用户要求之上” | 用户要求始终优先于牌面解读 |
| “我会一直抽牌,直到抽到想要的结果” | 每个决策点只抽一次牌;接受解读结果 |
| “解读说风险没问题” | 牌可以提示检查方向;只有证据才能排除安全或正确性方面的顾虑 |