trilwu/gauntlet-loop-skills
GitHub: trilwu/gauntlet-loop-skills
一套 Claude 技能插件,通过独立的盲审 Critic 反复检验 Builder 产物直到达到客观标准,从而消除 AI 自我评估偏差并提升跨领域产出质量。
Stars: 0 | Forks: 0
# Gauntlet Loop 技能
这些 Claude 技能打包了 **Gauntlet Loop**:构建产物,将其交给盲审 critic,修改,重复,直到达到 agent 无法辩驳的标准。
它解决的问题既无聊又无处不在。构建工作的事物同时也是评判它的事物,而模型非常擅长解释为什么自己的作品是合理的。所以它会在“足够好”时停下,并告诉你已经完成了。
这个循环将这些工作分离开来。一个 **lead** 将目标分解成多个部分。**Builders** 在干净的 context 中工作。一个 **盲审 critic**(它永远看不到 builder 的推理过程)检查实际的产物(运行的测试、渲染的像素、真实的查询输出),并且只有当它超越了某些具体的标准时才会让其通过。
两个技能:
| 技能 | 它的作用 |
|---|---|
| **`gauntlet-loop`** | 循环本身,与具体领域无关,包含针对编程、写作、设计、数据分析、研究、prompt 评估和检测工程的特定领域指南 |
| **`security-vuln-gauntlet`** | 用于授权漏洞挖掘的相同循环,其标准是一个有效的非破坏性 PoC。之所以单独作为一个技能,是因为其触发器和安全规则有所不同 |
## 安装说明
作为 Claude Code 插件安装:
```
/plugin marketplace add trilwu/gauntlet-loop-skills
```
```
/plugin install gauntlet-loop@gauntlet-loop
```
或者你自己复制这些技能:
```
cp -r skills/* ~/.claude/skills/
```
两者都可行。插件方式可以保持更新,复制方式则是一条命令搞定。
在开始之前有一项要求值得检查:你需要一个能运行代码、渲染输出并**生成具有自己独立 context 的子 agent** 的 harness。Claude Code、Cowork、Codex 或任何同类的工具。在普通的聊天窗口中没有第二个 context,因此没有独立的 critic,你得到的只是伪装成独立评估的自我审查。
## 一分钟入门
安装完成后,给 agent 一个目标**以及一些可以用来衡量的具体事物**:
agent 会加载该技能,读取 `references/domains/coding.md`,分解工作,在干净的 context 中派遣 builders,并将每个产物交给一个实际运行测试的 critic。它会一直循环直到达到标准。你将获得最终产物、每一轮的日志,以及每次 PASS 背后的证据。
如果你希望整个过程为你设置好,请填写 [`examples/meta-prompt.md`](examples/meta-prompt.md) 中的空白部分,并将其粘贴到 agentic harness 中。
## 七条规则
从原始方法中浓缩而来。这些是核心支撑部分。
1. **使用真正的 agent,而不是聊天。** 该循环需要能够打开文件、运行代码、渲染和截图以及生成子 agent 的工具。
2. **给出目标,而不是实现方式。** 说明完成的事物必须达到什么效果,让 agent 自己选择路线。预先规定架构会将结果限制在你自己的想象力之内。
3. **设定一个可以被检查的标准。** “让它变得惊艳”不是一个标准。好的标准是具体的、可衡量的,并且与实际事物挂钩:测试套件、模型文本、你欣赏的产品的截图、eval 集、ATT&CK 技术或有效的 PoC。它不一定是可实现的。一个充满野心的标准会不断拉动工作向上,而不是任由其停滞不前。
4. **让 agent 分解工作。** 要求它将目标分解为可以独立构建和打分的最小单元。独立的部分可以作为并行循环运行。
5. **builder 绝不自我评分。** 评判者是不同的 agent,在干净的 context 中,对 builder 的推理过程不知情,查看的是实际产物而不是 builder 对它的总结。在领域允许的情况下,针对参考标准进行盲测 A/B 测试。
6. **运行时间要比感觉需要的时间更长。** 反馈失败,进一步分解困难部分,尝试不同的变体。当达到标准时,或者当连续两轮没有带来任何改进时,或者当预算耗尽时,停止运行。
7. **观察而不打断,然后进行平滑处理。** 让循环保留一个实时的 `workbench.md` 或 HTML 进度页面,你可以随时阅读。一旦它收敛,派发一个新的 agent 来检查整体汇总的结果,以修复那些被单独改进的部分之间的接缝。
各角色的 prompt 位于 [`prompt-templates.md`](skills/gauntlet-loop/references/prompt-templates.md)。选择标准:[`choosing-the-bar.md`](skills/gauntlet-loop/references/choosing-the-bar.md)。设计不妥协的 critic:[`critic-design.md`](skills/gauntlet-loop/references/critic-design.md)。预算、并行化和平滑处理阶段:[`running-the-loop.md`](skills/gauntlet-loop/references/running-the-loop.md)。
## 循环流程
```
┌──────────────────────────────────────────────┐
│ LEAD: set the bar, split the goal into │
│ independently buildable, gradeable units │
└───────────────┬──────────────────────────────┘
│ split
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ BUILDER │ │ BUILDER │ ... │ BUILDER │ (specialist, clean context)
│ artifact│ │ artifact│ │ artifact│
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────────┐
│ CRITIC (blind, fresh context each round) │
│ • inspects the REAL artifact: runs code & tests, │
│ renders, executes queries, builds the PoC │
│ • compares against the BAR (blind A/B if possible)│
│ • PASS only with objective evidence │
└───────────────┬───────────────────────────────────┘
│ PASS: unit clears the bar
│ FAIL: back to the builder with specifics
▼
┌────────────────────────────┐
│ repeat, many rounds, │
│ then a SMOOTHING pass over │
│ the assembled whole │
└────────────────────────────┘
```
## 在不同领域的表现形式
在任何地方都是相同的循环。改变的是标准和 critic 必须实际检查的内容。
| 领域 | 典型用例 | 标准 | critic 实际执行的操作 | 指南 |
|---|---|---|---|---|
| **软件** | 功能、库、算法、重构 | 参考实现、必须通过的测试、延迟和大小预算 | 真正运行测试和基准测试,然后使用恶意输入对其进行攻击 | [coding.md](skills/gauntlet-loop/references/domains/coding.md) |
| **写作** | 文章、文档、公告、营销文案 | 模型文本的清晰度与简洁度 | 针对该文本进行盲测 A/B,删词测试,事实核查 | [writing.md](skills/gauntlet-loop/references/domains/writing.md) |
| **设计与 UI** | 屏幕、落地页、组件 | 针对一流产品截图的盲测 A/B,以及符合 WCAG AA 标准 | 在多个断点处进行渲染和截图,测量对比度,遍历所有状态点击 | [design.md](skills/gauntlet-loop/references/domains/design.md) |
| **数据与分析** | 指标、模型、实验结果输出 | 正确、稳健、可复现 | 独立重新计算,运行敏感性分析,从原始数据重新运行 | [data-analysis.md](skills/gauntlet-loop/references/domains/data-analysis.md) |
| **研究** | 文献、市场、竞争情报、尽职调查 | 每个主张都有来源,每个来源都可验证,涵盖了反面证据 | 打开每个引文并自己去寻找反例 | [research.md](skills/gauntlet-loop/references/domains/research.md) |
| **Prompts 与 agents** | 系统 prompts、技能、LLM 功能 | 在固定的 eval 集上击败基线,无回归,在 token 预算范围内 | 面对面运行 eval 集,包括留出集划分 | [prompt-eval.md](skills/gauntlet-loop/references/domains/prompt-eval.md) |
| **检测(蓝队)** | SIEM 和 EDR 规则、调优 | 针对某项 ATT&CK 技术触发报警,并且在正常日志上产生零误报 | 针对攻击和正常数据集运行该规则,然后尝试绕过它 | [detection.md](skills/gauntlet-loop/references/domains/detection.md) |
| **安全(已授权)** | AppSec 审查、pentest、扫描结果分类 | 有效的非破坏性 PoC、CWE 映射、真实的先例 | 先分析可达性,然后是污点分析,最后是 PoC。没有 PoC,就没有发现 | [security-vuln-gauntlet](skills/security-vuln-gauntlet/SKILL.md) |
正在进行未列出的工作?请使用通用框架并参阅 [`choosing-the-bar.md`](skills/gauntlet-loop/references/choosing-the-bar.md)。该文件中的四个问题几乎可以为你提供适用于任何事物的可用标准。
## 它的优势与成本
它消除了自我评估偏差,这通常是 AI 产出停滞不前的原因。它将“让它变得更好”转化为有终点和有记录可查的事情。它能捕获单次处理容易遗漏的失败:边缘情况、静默回归、无法通过验证的引文、嘈杂的检测,以及在你尝试的三个例子上发生过拟合的 prompts。并且它能干净地实现并行化,因为独立的单元不需要互相等待。
它的代价也是真实存在的。
它很昂贵。五个单元进行四轮循环大约需要四十次 agent 调用,因此要有意地设定预算,而不是之后才发现超支。它的效果仅取决于你设定的标准,一个模糊的标准只会给你带来昂贵的一次性答案。它需要真实的参照物进行比较;当不存在可比较的事物时,构建一个可衡量的标准本身就成为了一个项目。它需要子 agent,因为没有独立的 context,你的盲审 critic 就不是盲的。并且它不能从流程中移除人为判断。盲测 A/B 和 eval 集可以减少偏见。它们不能抹除模型的品味。
对于小型的、低风险的、一次性的工作,请跳过它。比如快速解答、一次性脚本、单行修复。当质量至关重要,并且你能指着真实的事物说“超越它”时,再使用它。
## 仓库结构
```
gauntlet-loop/
├── README.md · LICENSE (MIT) · CREDITS.md · CONTRIBUTING.md
├── .claude-plugin/
│ ├── plugin.json # Claude Code plugin manifest
│ └── marketplace.json # lets the repo be added as a marketplace
├── skills/
│ ├── gauntlet-loop/ # CORE SKILL (domain agnostic)
│ │ ├── SKILL.md
│ │ └── references/
│ │ ├── methodology.md # the full method
│ │ ├── running-the-loop.md # budget, parallelism, workbench, smoothing
│ │ ├── prompt-templates.md # LEAD / BUILDER / CRITIC / SMOOTHER + meta-prompt
│ │ ├── choosing-the-bar.md
│ │ ├── critic-design.md
│ │ └── domains/
│ │ ├── coding.md · writing.md · design.md
│ │ ├── data-analysis.md · research.md
│ │ ├── prompt-eval.md · detection.md
│ └── security-vuln-gauntlet/ # SEPARATE: different triggers and safety rules
│ ├── SKILL.md
│ └── references/
│ ├── safety-and-scope.md # ROE template, PoC constraints
│ ├── false-positive-killing.md # reachability, taint, PoC
│ ├── checklists-by-domain.md # web / API / binary / cloud
│ └── example-web-run.md
└── examples/
├── meta-prompt.md # domain agnostic, ready to paste
├── example-coding-run.md # end-to-end coding run
└── example-security-run.md # end-to-end security run
```
## 在使用安全技能之前
`security-vuln-gauntlet` 仅适用于你拥有的资产,或者你拥有书面授权进行测试的资产。绝不用于其他情况。每个 PoC 都必须是非破坏性的:不破坏数据、不进行横向移动、不进行数据窃取、不进行拒绝服务攻击。
在运行任何内容之前,请阅读 [`safety-and-scope.md`](skills/security-vuln-gauntlet/references/safety-and-scope.md) 并填写 ROE(交战规则)模板。在大多数司法管辖区,未经授权的访问都是犯罪行为,运行该工具的人需对此承担责任。
## 归属说明
**Gauntlet Loop** 方法由 Matt Shumer 创立,出自 **“How to Run a Gauntlet Loop”** (*Something Big Is Happening*)。原文主要通过构建软件和游戏来演示该方法。
- 原文:https://somethingbig.ai/gauntlet-loop
- 作者的配套仓库:https://github.com/mshumer/Claude-of-Duty
本仓库是该方法向多领域技能集转化的一种独立的社区改编版本。它不是 Matt Shumer 的官方产品,也未得到他的认可。核心理念(分解、构建、盲审 critic、无可辩驳的标准)归属于他。本仓库是在注明出处的前提下对该方法的重述与应用,而非原文的复制。详情请参阅 [CREDITS.md](CREDITS.md)。
## 延伸阅读
- Matt Shumer, *How to Run a Gauntlet Loop*: https://somethingbig.ai/gauntlet-loop
- `mshumer/Claude-of-Duty`: https://github.com/mshumer/Claude-of-Duty
- OWASP Top 10 / ASVS / API Security Top 10: https://owasp.org
- MITRE ATT&CK: https://attack.mitre.org 和 CWE Top 25: https://cwe.mitre.org/top25/
- CIS Benchmarks: https://www.cisecurity.org/cis-benchmarks 和 Sigma: https://github.com/SigmaHQ/sigma
## 许可证
MIT。请参阅 [LICENSE](LICENSE)。
标签:AI工作流, AI智能体, Claude Code, LLM自动化评估, 代码生成, 渗透测试工具, 漏洞验证测试, 防御加固