mcpField
L
let-fate-decide

let-fate-decide

github.com/trailofbitsAgent 工作流7.9k4.8k 次安装今天更新
代码仓库

关于 let-fate-decide

以塔罗牌辅助处理模糊请求、委托选择和决策平局的技能。它抽取十二宫牌阵并将解读转化为实际下一步;安全与正确性判断仍须依赖常规证据。

主要功能

  1. 01十二宫黄道牌阵
  2. 02密码学安全随机抽牌
  3. 03牌宫与牌义解读指南
  4. 04技术场景视角
  5. 05兼容旧版抽牌模式

适用场景

  1. 01在多个可行方案中选择
  2. 02为模糊任务寻找切入点
  3. 03打破分析僵局
  4. 04为技术审查生成假设

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/trailofbits/skills --skill let-fate-decide

安装后在 Claude Code 中输入/let-fate-decide确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
assets/
trail-of-bits-mark.svg
cards/cups/
ace-of-cups.md
eight-of-cups.md
five-of-cups.md
four-of-cups.md
king-of-cups.md
knight-of-cups.md
nine-of-cups.md
page-of-cups.md
queen-of-cups.md
seven-of-cups.md
six-of-cups.md
ten-of-cups.md
three-of-cups.md
two-of-cups.md
cards/major/
00-the-fool.md
01-the-magician.md
02-the-high-priestess.md
03-the-empress.md
04-the-emperor.md
05-the-hierophant.md
06-the-lovers.md
07-the-chariot.md
08-strength.md
09-the-hermit.md
10-wheel-of-fortune.md
11-justice.md
12-the-hanged-man.md
13-death.md

详细介绍

让命运决定

当前路途不明时,就让牌来说话。

快速入门

请从此 SKILL.md 的安装位置解析抽牌脚本,而不是从 shell 的工作目录解析。在下方命令中,将 <resolved-script-path> 替换为该脚本的绝对路径,并保留引号。相对链接和 JSON file 路径均相对于此 SKILL.md 所在目录解析。

  1. 运行抽牌脚本:

    uv run --no-config "<resolved-script-path>"
    
  2. 脚本会为默认的黄道十二宫牌阵输出 JSON: 12 个宫位,每个宫位包含 1 张大阿卡纳牌和 2 张小阿卡纳牌。每个宫位和每张牌都包含相对于此 SKILL.md 所在目录的 file 路径。

  3. 阅读每个宫位文件以及每张牌的含义文件,以了解抽牌结果。若想更快读取,可使用 --content,直接在 JSON 中包含宫位和牌面文本:

    uv run --no-config "<resolved-script-path>" --content
    
  4. 使用解读指南解读牌阵

  5. 如果任务属于专门的技术工作流,请使用技术背景视角,将解读转化为审计、验证、领域、故障类别或利益相关方视角

  6. 将解读应用到当前任务

适用场景

  • 模糊的提示词:用户的请求含糊,存在多种合理的处理方式
  • 明确的调用:“我今天运气不错”“让命运决定”“由庄家决定”“给我个惊喜”“随便你怎么想”“YOLO”
  • 随意委托:“随便”“你决定”“由你做主”“不知道”“随便做点什么”“随机应变”“我相信你”“无所谓”“想怎么做就怎么做”“我不在乎”“什么方法都行”“你来选”
  • 游戏王热情:“卡牌之心”“我相信卡牌之心”“你触发了我的陷阱卡”“决斗时间到了”
  • 耸肩式简短表达:提示词非常简短,完全将决定权交给你,且没有表达偏好
  • 要求重新抽牌:当系统实际上没有变化时,用户说“再试一次”或“再抽一次”(这表示抽新牌,而不是重复采用相同的方法)
  • 打破平局:当你准备在 2 种或更多可行方案中随意选择时,改为抽牌,而不是默默做出选择

不适用场景

  • 用户已给出清晰、具体的指示
  • 任务只有一种显而易见的正确方法
  • 作为安全关键工作(安全性、数据完整性、生产部署、发布批准、事件响应)的决策依据
  • 用户明确要求你不要使用塔罗牌
  • 用户的语气追求精确而非随意——应改为提出澄清问题,收集实际需求

安全与正确性用途

此技能可在安全、审计或正确性流程中用作创造性视角,以助于探索:选择下一步检查的角度、打破分析僵局、生成假设或发现盲点。

但它本身绝不足以作为依据。在安全和正确性场景中,解读之后必须进行常规工程验证:审查源代码、运行测试、给出证明、检查跟踪记录、复现步骤、分析可利用性,或采用其他适合该领域的验证方式。不要把有利的牌视为可以发布、压下发现、跳过验证或推翻具体风险的许可。

工作原理

抽牌

该脚本使用 secrets 生成密码学安全的随机数:

  1. 构建独立的大阿卡纳(22 张牌)和小阿卡纳(56 张牌)牌组
  2. 通过 secrets.randbelow() 执行 Fisher-Yates 洗牌(无取模偏差)
  3. 发出默认的黄道十二宫牌阵
  4. 每宫先抽 1 张大阿卡纳牌,再抽 2 张小阿卡纳牌
  5. 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 文件中:

解读

抽牌后,读取每个宫位文件和每张牌文件,然后综合解读。完整的解读流程请参阅解读指南。 如需跨领域转换,请参阅技术背景视角。

关键规则:

  • 逆位牌会颠覆或使正位含义变得复杂
  • 大阿卡纳牌的分量高于小阿卡纳牌
  • 牌阵通过全部 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 条精炼要点,分别涵盖主导主题、主要风险或盲点,以及建议的下一步行动。

错误处理

如果抽牌脚本失败:

  • 脚本崩溃并输出回溯信息:向用户报告错误并跳过解读。不要编造牌面或模拟抽牌——关键在于真实熵。
  • 找不到牌文件:注明缺失的文件,仅根据牌名和花色解读该牌,然后继续解读。
  • 绝不伪造熵:如果脚本无法运行,不要用自己的“随机性”模拟抽牌。告知用户抽牌失败。

应当驳斥的自我辩解

自我辩解错误之处
“牌这么说了,所以我必须照做”牌只能提供方向,不能凌驾于安全性或正确性之上
“这次解读证明我原本的偏好是对的”如果解读与直觉相悖,就应坦诚承认
“逆位牌意味着什么都不做”逆位意味着换个角度,而非不采取行动
“大阿卡纳可以凌驾于用户要求之上”用户要求始终优先于牌面解读
“我会一直抽牌,直到抽到想要的结果”每个决策点只抽一次牌;接受解读结果
“解读说风险没问题”牌可以提示检查方向;只有证据才能排除安全或正确性方面的顾虑

评论

支持 Markdown