Skip to main content
Glama

cold-run

我测试了47个agent技能。我删除了其中23个。有三个让Claude的代码变得更差了。

然后我构建了做这件事的工具,把它指向幸存的24个技能,结果它对前五个中的三个给出了NEGATIVE评分。

这不是bug。这是我发现的最有意思的事情,我把它发布出来,而不是等你发现它:runs/bare-baseline/

npx cold-run

发现

一个什么都不做的技能是无聊的失败。更常见的失败更糟糕:

一个技能消耗了agent的注意力。 它买来一项特定的检查,而它用任务所需的其他一切来支付这项检查。

被要求构建一个带缓存的查找功能时,遵循amplification-check的agent添加了jitter和single-flight——正是该技能所要求的。从未见过该技能的agent添加了这些以及LRU上限、stale-while-revalidate和负缓存。带技能版本的缓存无限制地增长。

被要求在Lambda内部添加重试时,带技能的agent生成了一份整洁的重试预算表,以及一个笼统的except子句,它像重试超时一样急切地重试一个确定的404。

你无法通过阅读技能看出这一点。这两个技能都写得很好。你只有通过运行任务两次并对产物做diff才能看出来。


它是做什么的

找到你的技能,为每个技能挑选一个对抗性测试任务,并行运行一组cold/skilled对,然后告诉你哪些技能没有改变任何东西。

cold-run v0.1  —  30 skills in ~/.claude/skills

  REAL      retry-guard                added a breaker + cap; cold declined one
  NONE      be-thorough                cold output was identical
  NONE      check-edge-cases           cold found two more edge cases
  NEGATIVE  refactor-first             skilled dropped a null check cold kept
  ...

  11 change nothing.
   2 make the output worse.
  17 earn their place.

  Deleting the 13 frees ~7,400 tokens of always-loaded
  context, every session.

  full report      -> cold-run-report.md
  every transcript -> .cold-run/

它从不删除任何东西。它写出报告和每一份完整记录,决定权在你。

成本是真实的,而且它会先询问。 每个技能四次模型调用。在超过12个技能的库上,它测试5个技能的一个抽样,所以你的首次运行很便宜;--all可以完成其余部分。

npx cold-run                    # auto-finds your skills
npx cold-run path/to/skills     # or point it somewhere
npx cold-run --all --yes        # everything, no prompt

如果你有本地claude CLI,它通过它运行;否则通过ANTHROPIC_API_KEY运行。零依赖—npx瞬间启动。

作为MCP服务器

同样的审计,由你已经与之对话的任何agent驱动——Claude Code、Claude Desktop、Cursor。它使用你自己的agent的subagents,所以没有第二个API密钥,也没有隐藏的花费。

claude mcp add cold-run -- npx -y --package=cold-run cold-run-mcp
{
  "mcpServers": {
    "cold-run": {
      "command": "npx",
      "args": ["-y", "--package=cold-run", "cold-run-mcp"]
    }
  }
}

然后直接问:"我的哪些技能实际上干了任何事?"

五种评分

REAL

产物有实质性差异,且带技能的运行更好。

MARGINAL

在cold运行已经做对的输出之上,有一个小的真实加法。

NONE

无法区分——或者带技能运行只是谈论了这个原则。谈论不是改变。

NEGATIVE

cold输出更好。这并不少见。我47个里有三个落在这里。

INVALID

其中一侧从未产生产物,所以这对是无效的。报告它,但不计数。一次没有发生的运行的评分比没有评分更糟糕。

幸存的24个,以及它们上面的星号

产出这个工具的库在skills/里。每一个都有记录的cold/skilled对支持——见EVIDENCE.mdruns/ledger.md

在安装它们之前先读这个。 那次审计在我机器的全局操作契约下运行了这两个agent——即强制停止并询问行为的管家规则和固定的报告格式。该工具故意剥离了所有这些。在基本基线下,前五个幸存者中有三个评为NEGATIVE。两个结果都完整发布,附带完整记录:runs/bare-baseline/

哪个数字适用于你,取决于你自己的CLAUDE.md已经强制了什么。两者都没有在裸基线下进行全规模运行。我宁愿发布这个矛盾,也不愿隐藏它。那23个没成功的,以及为什么没有一个可以被修复,都在runs/dropped.md里。

几个幸存者,这样你可以判断标准:

  • yagni-audit — "实现一个限流器。" Cold写了约700行:同步、异步、创建、创建、Redis、Lua、装饰器。Skilled写了15行。

  • trust-source-check — cold用共享的静态环境变量token对服务进行了认证。Skilled要求JWKS验证的OIDC token,并固定了audience。

  • reverse-path-proof — skilled运行了一个真正的Postgres容器,并发现在延迟回滚中止一个255字符的名字,擦除了表中所有名字。Cold有同一个bug。

  • pit-of-success — cold默认立即硬删除。Skilled让它30天内可恢复,并且将永久删除放在确认用户ID的确认之后。

正常安装它们,或者不装。工具才是重点。

技能在这里通过两个门才能得到评分,不是一个

  1. Cold-run delta — 是否改变了产物?23个技能没通过。

  2. Routing — 技能描述是否实际上让技能被装载?描述完美的技能从来不被触发的描述是死的负载,仍然消耗token。作为分类器对360个书面请求测试;两轮失败,直到全部24个通过。

与skill-doctor的对比

skill-doctor是一个linter。它读取你的技能,检查frontmatter有效性、损坏的资源链接,以及是否触发描述看起来很弱,然后打出0-100分。它从不运行任何测试。

cold-run则相反。它在同一个任务上执行技能和一个看不到技能的agent,然后比较产物。

skill-doctor

cold-run

读取你的技能

yes

yes

运行它们

no

yes

捕获一个损坏的链接或错误的frontmatter

yes

no

捕获一个结构正常但改变不了任何东西的技能

no

yes

一个技能在结构上可以得100/100分,但仍然是一个空操作。这就是它捕获的失败,而且这是常见的一种——我的47个中有23个结构完美。

两个都运行。它们在不同的事情上失败。

Prior art

obra/superpowers是工作流层——头脑风暴、计划、执行、验证。和这个没有重叠:这里零工作流技能,那里零领域检查。它的writing-skills推荐了用子agent测试的技能,这个工具把它自动化了。

许可证

MIT.# cold-run

我测试了47个agent技能。删除了23个。其中三个让Claude的代码变得更糟。

然后我构建了做这件事的工具,把它指向剩下的24个,它给前五个里的三个打了NEGATIVE分。

这不是bug。这是我找到的最有趣的事,我不等你自己发现,直接把它发布出来了:runs/bare-baseline/

npx cold-run

发现

一个什么都不做的技能是无聊的失败。更常见的那个更糟:

技能会消耗agent的注意力。 它买来一个特定检查,但支付方式是从任务需要的所有其他东西里扣除。

要求构建一个缓存查找时,遵循amplification-check的agent加入了jitter和single-flight——正好是技能要求的。没见过这个技能的agent加入了这些以及LRU上限、stale-while-revalidate和负缓存。带技能的版本缓存无限增长。

要求在一个Lambda里添加重试时,带技能的agent生成了一张整洁的retry-budget表,外加一个笼统的except,它会用一个确定的404去重试,和它重试超时一样热切。

你光读技能是看不出这些的。这两个技能都写得很好。你必须把任务跑两次并对生成物做diff才能看出来。


它是做什么的

找到你的技能,为每个技能挑一个对抗性的测试任务,并行运行cold/skilled配对,然后告诉你哪些技能没有改变任何东西。

cold-run v0.1  —  30 skills in ~/.claude/skills

  REAL      retry-guard                added a breaker + cap; cold declined one
  NONE      be-thorough                cold output was identical
  NONE      check-edge-cases           cold found two more edge cases
  NEGATIVE  refactor-first             skilled dropped a null check cold kept
  ...

  11 change nothing.
   2 make the output worse.
  17 earn their place.

  Deleting the 13 frees ~7,400 tokens of always-loaded
  context, every session.

  full report      -> cold-run-report.md
  every transcript -> .cold-run/

它从不删除任何东西。它写入报告和每一个transcript,决定权在你手里。

它的成本是真实的,而且它会善解人意地询问。 每个技能调用四次模型。对于超过12个技能的库,它测试一个均匀分布的五个,所以你第一次运行很便宜;其余部分用--all搞定。

npx cold-run                    # auto-finds your skills
npx cold-run path/to/skills     # or point it somewhere
npx cold-run --all --yes        # everything, no prompt

如果你有本地claude CLI就用它,否则用ANTHROPIC_API_KEY。零依赖——npx瞬间启动。

作为MCP服务器

同一个审计工具,由你已经在使用的agent驱动——Claude Code、Claude Desktop、Cursor。它使用你自己的agent的subagents,所以没有第二个API密钥,也没有隐藏的支出。

claude mcp add cold-run -- npx -y --package=cold-run cold-run-mcp
{
  "mcpServers": {
    "cold-run": {
      "command": "npx",
      "args": ["-y", "--package=cold-run", "cold-run-mcp"]
    }
  }
}

然后只需问:"我的哪些技能实际上做了点什么?"

五个结论

真实

产物发生了重大差异,并且skilled运行更好。

边际

cold运行已经正确的基础上,增加了少量真正有用的内容。

无法区分——或者skilled运行只是讨论了原理。讨论不是变化。

负面

cold输出更好。这不是稀有情况。我的47个里有三个落在这里。

无效

其中一方从未生成产物,所以配对作废。会被报告,但不计入。对没发生过的运行下结论比没有结论更糟。

存活的24个,以及它们的额外条件

产生这个工具的库在skills/,每个都有记录的cold/skilled配对——见EVIDENCE.mdruns/ledger.md

在安装它们之前先读这个。 那次审计在两个agent都强制应用了我机器上的全局操作规则——这些规则强制了stop-and-ask行为和固定的报告格式。cold-run故意清除所有这些。在裸baseline下,前五个幸存者里有三个评分为NEGATIVE。完整transcript同样发布:runs/bare-baseline/

哪个数值适用于你,取决于你自己的CLAUDE.md已经强制了什么。两者都没有在裸baseline下进行过全规模运行。我宁可暴露这个矛盾,也不去掩盖。这23个为什么没能幸存,以及为什么没有一个能被修复,都在runs/dropped.md里。

几个幸存者的示例,让你评估我定的标准:

  • yagni-audit — "实现一个速率统计器。" Cold写了约700行:同步、异步、有key、Redis、Lua、装饰器。Skilled写了一遍慢跑。

  • trust-source-check — cold使用共享的静态环境变量令牌来认证服务。Skilled需要经过JWKS验证的OIDC令牌,并锁定audience。

  • reverse-path-proof — skilled运行了一个真实的Postgres容器,发现回滚在255字符名称上会中止,并擦除了表中的所有名称。Cold有同样的bug。

  • pit-of-success — cold把立即硬删除为默认操作。Skilled让它30天可逆,并把清理放入一个需要用户ID二次确认的流程中。

按正常方式安装它们,或者不装。工具才是重点。

技能在这里通过两个门槛来评,不是两个

  1. Cold运行差异 — 它是否改变了产物?23个技能败在这里。 → EVIDENCE.md

  2. 路由 — 描述是否真的让技能被加载?一个描述从不激发的完美技能就是死重量,marionette还要消耗token。作为分类器对着360个书面要求测试;两轮失败后才让24个全部通过。 → tests/router/

一个技能只通过其中一个仍算有缺陷。

对比 skill-doctor

skill-doctor是一个linter。它读取其技能,检查frontmatter有效性、损坏的资源链接,以及触发描述看薄弱的下划线,然后打分0-100。它从不运行任何东西。

cold-run是另一半图谱。它在同一个任务上执行技能和一个看不到该技能,的agent,并对比产物。

skill-doctor

cold-run

读取你的技能

yes

yes

运行它们

no

yes

捕获损坏的链接或坏的frontmatter

yes

no

捕获结构完善但改变不了任何东西的技能

no

yes

一个技能在结构上100/100,却仍然是一个no-op。那正是这个工具捕获的问题,而且它更常见——我的47个里有23个结构完美。

两个都运行。它们失败的东西不重叠。

之前的尝试

obra/superpowers是工作流层——大脑风暴、计划、执行、验证。它与这个没有重叠:这里没有un 于技能那里没有domain那个。它的writing-skills推荐了这里自动化的同一个subagent测试。

许可证

MIT.

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Verifies AI agent work end to end: real artifacts and outcomes checked, not self-reported success.

  • Deterministic AI code review, with an audit record. Governance inside the agent loop.

  • Git-backed platform for skills, tools, and context for AI agents

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sina-heidariaan/cold-run'

If you have feedback or need assistance with the MCP directory API, please join our Discord server