AIDive

Superpowers対Matt Pocock:同じ機能を2回作り、1つだけ残す

AIDive · 公開

コーディングエージェント

イントロ:1つのrepo、2つのpack、残るのは1つ

SuperpowersとMatt Pocockのskillsは、Claude Codeを使う開発者の多くが比べて迷う2つのskill packです。この動画では、同じ機能を同じrepoで作らせ、請求額をstageごとに読んで両者を計測します。Superpowers(v6.4.2)は15個のskillと、それらを強制するSessionStart hookを同梱しています。Pocockのpack(v1.3.1)は27個のskillを同梱し、hookはなく、スラッシュコマンドとして自分で打つ7 stepのMain Flowを持ちます。公開されている計測比較は1件だけで、Superpowersのほうがはるかに安いと言っています。一方、乗り換えた人たちのブログはどれも、Pocockのほうがtokenを無駄にしないと書いています。今回の実行では、どちらも同時に正しいと分かりました。hookに任せたSuperpowersのコストはMain Flowの4分の1で、フルループで回したSuperpowersはMain Flowのほぼ2倍。それでも隠しテストは毎回5つ中5つ通りました。動画が答えるのは、どちらのpackを残すか、そして請求額を決める単一のstageはどこか、という問いです。

正反対の2つの賭け:skillを強制するhook対hookなし

Superpowersは15個のskillと1つのhookを持つpluginです。セッションが始まるたびに、hookがusing-superpowers skill(492語)の全文をcontextに注入します。このskillはモデルにこう告げます。「If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.」売りにしているループは4つのskillを通ります。brainstorming、writing-plans、executing-plans、そして最後のレビューです。インストールすれば、hookがリクエストを自動でこのループへ振り分けるはずです。

Matt Pocockのpackは逆の賭けです。同梱skillは27個、hookは一切なし。何も注入されず、すべてのstepは自分で打つスラッシュコマンドです。Main Flowの並びはgrill-with-docs、to-spec、to-tickets、implement、code-review、pr、retroです。grill-with-docsは35語しかなく、他の2つのskillを呼ぶだけです。implementは103語で、disable-model-invocation: trueフラグを持つため、モデルが自分でロードすることはできません。自分のループについてのMatt本人の言葉が、v1.3のchangelogにあります。「The agent loop is worse than a deterministic loop. But it is a good way to start with AFK work before your software factory is dialled in.」

2つのpackは、Claude Code pluginとしても、ファイルのコピーとしてもインストールできます。Pocockのreadmeははっきり書いています。agentごとにどちらか1つを選ぶこと。両方入れると、すべてのskillが二重になります。比較が決着しなかったのは、唯一の計測比較がPocockのpackを、8つの実装workerのうち5つにimplement skillが一度も渡らない状態で走らせていたからです。乗り換えた人たちの投稿には意見があるだけで、数字がありません。

ベンチ:ledgerly、1つのリクエスト、5つの隠しテスト、素のベースライン

repoはledgerlyです。素のNodeとTypeScriptで書いた、架空の請求書APIで、domain層、スキーママイグレーション付きのJSONファイルstore、HTTP層、そして通っているテストが34個あります。機能リクエストは3行で、開発者が実際に打つ書き方にしています。部分支払いを追加すること、支払済み額と残高を返すこと、古い/payエンドポイントを動かし続けること、storeに本番データがあることを忘れないこと。これを読んだシニアは、リクエストに書かれていない5つを期待します。金額計算、バリデーション、本番ファイルのマイグレーション、正しいエラーコード、そしてテストです。この5つを、workerには見えない隠し受け入れテストにしました。参照パッチは5つすべてに通り、手を加えていないrepoは1つも通りません。

すべての実行は、repoの新しいコピー、headlessのSonnet 5.5 worker、同じツールallow list、そして台本通りのプロダクトオーナーで構成されます。プロダクトオーナーは、ツールを持たない2つ目のheadlessモデルで、5つの要件を平易な言葉で書いたものだけを読み、簡潔に答え、何も聞かれなければ「go on」と返します。全tokenと全skill呼び出しは、turnごとに記録します。前もって断っておく制約が2つあります。headlessなので、実行中に誰も舵取りしません。そしてSuperpowersのhookが発火するのは1turn目だけです。

packなしの素のClaude Codeが、すべての棒グラフの基準となるベースラインです。

Config(機能1) 隠しテスト 1回あたりのコスト 実時間 変更行数
bare、3回 5/5、5/5、5/5 平均$0.34($0.47、$0.27、$0.29) 84.5 s 142

Superpowers:hookだけで何が動くか、フルループのコスト

hookに任せると、Superpowersはこう動きます。リクエストを貼り付けると、hookが発火し、モデルはbrainstormingを開いて1つか2つ質問し、コードを書き始めます。writing-plansは3回の実行で0回、executing-plansは一度も走りませんでした。結果は5つ中5つで、コストは約50セント、時間は約2分です。同じスコアに対して、素の1.5倍。そのうちbrainstormingだけで約22セントを占めます。1turnだけの6回のプローブから、このルーティングは配線の不具合ではなくランダムだと分かりました。実際のpluginの配線ではbrainstormingが3回に1回、ベンチの配線では3回に2回発火しました。

brainstorming、writing-plans、executing-plansをNativeモード(6.4.1以降のデフォルト)でスラッシュコマンドとして手で打って回すと、毎回ループ全体が走りました。やはり5つ中5つで、1回あたり約$3.74、10分です。素の11倍、hookに任せた実行の7.5倍で、隠しテストのスコアは同じです。

Superpowersのstage(機能1の平均) コスト
brainstorming $0.166
writing-plans $0.266
executing-plans $3.307
うちTDDビルドそのもの $0.974
うちブランチ全体のレビュアーsubagent $2.192

ループの請求額を説明するのはレビュアーというstageです。executing-plans skillはこれを、本人の言葉で「on the most capable available model」に割り当てて送り出します。そして毎回の実行で、そのモデルは最上位のものでした。skillはこれを、実行全体で買える唯一の新しいcontextと呼び、飛ばさないよう言っています。この機能では、レビュアーはテストがすでに証明していたこと以外、何も見つけませんでした。2つ目の機能でも、同じレビュアーが$3.21の実行のうち$1.602を使いました。つまり一度きりの出来事ではなく、skillの書き方そのものから来ています。

Main Flowをstageごとに:安い計画、高いビルド

Pocockのpackは、唯一可能なやり方で回します。grill-with-docsは質問を1つずつ投げ、1回の実行でおよそ7問。Superpowersのbrainstormingは1〜2問です。to-specがspecを書き、to-ticketsがそれをticketに切り分け、implementは全ticketを1turnで作り、tddとcode-reviewを自分で呼びます。prがpull requestの文面を書きます。どの実行も、同じ4つのskillを同じ順で呼びました(grilling、domain-modeling、tdd、code-review)。このpackはルートが決定論的です。driverのturn数の上限はベンチ側の12で、3回中2回はprの前に上限へ達しました。完走した1回はPR本文で終わりました。これは他のどのpackも残さなかったものです。

Main Flowのstage(機能1の平均) コスト
grill-with-docs $0.204
to-spec $0.118
to-tickets $0.143
implement $1.125
code-review $0.439
pr $0.041

計画の前半は50セント未満($0.465)で、implementとcode-reviewが請求額の4分の3を占めます。合計は1回あたり約$2.04、7分で、毎回5つ中5つ。hookに任せたSuperpowersの実行の4倍で、フルループで回したSuperpowersより45パーセント安くなります。diffは大きく、素の142行に対して約372行。追加されたテストは素の5個に対して約28個です。token総量もドルと一致していて、1回あたり約450万tokenに対して素は約50万、その大半は長いcontextのキャッシュ読み出しです。Main Flowが残すのはspec、ticket、PR本文で、チームなら、かかった40セントより高く評価するかもしれません。なお12turnの上限はベンチの都合で、人間ならそのまま続けます。

より難しい機能:クレジットノートと、唯一出たバグ

どこも5つ中5つでは何も読み取れません。そこで同じrepoに2つ目のリクエストを出しました。クレジットノートで、2行のリクエストに暗黙のルールが5つあります。請求書を過剰にクレジットしないこととレポートを正しく保つこと、本番ファイルをマイグレーションすること、欠番のない1本の連番、正しいエラーコード、そしてクレジットノートで支払済み請求書を無効にすること(古いテストは削除せず書き直す)。最初に選んだ難しめの候補は、素でも5つ中5つを取ったので外しました。まず検証をしました。参照パッチは5つすべてに通り、手を加えていないrepoは1つも通らず、素のsmoke runは5つ中4つ。今回はoracleに歯がありました。

Config(機能2) 隠しテスト 1回あたりのコスト 追加テスト数
bare、2回 4/5、5/5 平均$0.41 5
Superpowers駆動、2回 5/5、5/5 平均$3.21 33
Main Flow、2回 5/5、5/5 平均$2.07 31

唯一の取りこぼしはこうです。素の1回目の実行が、既存のissueルートと同じやり方で、リクエストを検証する前にクレジットノートの番号を取ってしまいました。そのため却下されたリクエストが番号を1つ燃やし、CN-0002のはずの場面でCN-0004が発行されました。監査人は欠番に印を付けます。2つのループはどちらも同じ方法で防ぎました。TDD stepが、コードが存在する前に連番のテストを書いたのです。素の2回目も正しく、コストは45セントでした。素の2回中1回の取りこぼしは、1つのデータ点であって、率ではありません。ここでループが買っているのはスコアではなく、後に残るテストです。

両方を重ねる場合と、マーケットプレイスの罠

この話題でもっとも声の大きいスレッドは、ルーターとして入れた2つのpackが、スラッシュ名、セッションhook、同じ意図を取り合うskillで衝突すると言っています。1つのプロジェクトに両方を入れてMain Flowで回すと、Superpowersのhookは自分の文面を注入し、Pocockの6つのコマンドが打たれ、Superpowersのskillは1つも呼ばれませんでした。結果は5つ中5つ、$2.33で、Main Flowの範囲内です。理由は2つ。Pocockのユーザー起動skillには、モデルが勝手にロードするのを止めるフラグが付いていること、そして2つのpackにはskill名の重複がないことです。ただし1回きりの実行です。別のセッションでは、hookがモデル起動のPocock skillを引き込む可能性は残ります。

本当の罠は、手に入るバージョンです。公式のClaude pluginマーケットプレイスは、Pocockのpackを1.2.3に固定していて、upstreamのv1.3.1から71コミット遅れています。この固定コピーにはimplement-spec、pr、retroがなく、2つのissueが10月5日から開いたままで、10月8日にMattはXでAnthropicにバージョンを上げるよう頼みました。「All my users are stuck on v1.2.」同じマーケットプレイスは、Superpowersもパッチ1つ分古い版に固定しています(6.4.1、最新はv6.4.2)。インストーラーなら本物のリリースが入ります。pluginだと、インストールしたその日に固定されているものが入ります。確認するのはバージョン表示であって、この動画ではありません。

stageマップと結論:Superpowersが残る

Superpowersを残します。hookに任せたSuperpowersは、計測した中で最も安い、導きのある道です。5つ中5つで約50セント、素の1.5倍。フルループは計測した中でもっとも高く、約$3.74です。Main Flowとの差のほぼすべては1つのstage、つまりexecuting-plansが最も高性能なモデルへ送る、ブランチ全体のレビュアーにあります。その1行を変えるか、より安いモデルを渡せば、ループは約$1.55に収まり、Main Flowの$2.04を下回ります。請求額を決めるstageは、計画ではなくレビューです。誰のgrillも、誰のbrainstormも、数字を動かしませんでした。hookに任せる道にも固有の落とし穴があります。ルーティングがランダムなのです(pluginの配線では3回に1回)。brainstormingが大事なら、自分で打ってください。

Main Flowは、より多くの成果物とともに同じスコアを出しますが、hookに任せた道の4倍の請求額になります。計画の前半、grill-with-docsからto-ticketsまでは50セント未満で、借りる価値がある唯一の部分です。Pocockのpackは固定されたpluginではなくインストーラーで入れ、依頼があいまいなときにgrill-with-docsを打ってください。重ねても、この実行ではコストはかかりませんでした。

stageマップ 判断
Superpowersのhookルーティング(brainstorming、TDD) 残す
Pocockのgrill-with-docs、to-spec、to-tickets($0.465) 借りる
executing-plansのレビュアーのモデル指定の行 変える

制約を率直に言います。Sonnet 5.5のheadless、機能2つ、19回の実行、台本通りのプロダクトオーナー、19回中バグ1件で、それを出したのは素のClaude Codeでした。もっと大きな機能やチームなら、specとticketをより高く評価するかもしれません。無料リソースはベンチそのものです。架空のrepo、隠しテスト、driver、stageごとの台帳スクリプトが入っているので、移行で1日を失う前に、自分の機能で両方のpackを動かせます。

無料リソース

出典

よくある質問

Claude CodeでSuperpowersからMatt Pocockのskillsに乗り換えるべきですか?
このベンチでは、いいえ。hookに任せたSuperpowersは、1機能あたり約$0.50で隠しテスト5つ中5つを通しました。同じスコアのPocockのMain Flowは$2.04です。Pocockのpackから借りる価値があるのは、50セント未満の計画の前半、grill-with-docsからto-ticketsまでだけです。
なぜSuperpowersのループは、Main Flowよりずっと高くつくのですか?
1つのstageのせいです。executing-plansが、最も高性能なモデルにブランチ全体のレビュアーsubagentを送り、$3.74の実行のうち$2.192を使いました。TDDビルドそのものは約$0.97でした。その行のモデルを変えれば、ループは約$1.55に収まります。
リクエストを貼り付けるだけだと、Superpowersのhookは実際に何を動かしますか?
brainstormingを動かし、そのあとは直接コードを書きます。hookルーティングの3回の実行で、writing-plansは0回、executing-plansは一度も走りませんでした。1turnだけの6回のプローブから、ルーティングはランダムだと分かりました。pluginの配線では、brainstormingが3回に1回発火しました。
SuperpowersとMatt Pocockのskillsは一緒にインストールできますか?
試した1回の実行では、できました。1つのプロジェクトに両方を入れ、Superpowersのhookは文面を注入し、6つのMain Flowコマンドを打ち、Superpowersのskillは1つも呼ばれず、$2.33で5つ中5つでした。Pocockのユーザー起動skillには`disable-model-invocation: true`が付いていて、2つのpackにはskill名の重複がありません。
Claude CodeのpluginマーケットプレイスからはMatt Pocockのskillsのどのバージョンが入りますか?
2026年10月9日時点で、公式マーケットプレイスは1.2.3に固定していて、upstreamのv1.3.1から71コミット遅れ、implement-spec、pr、retroがありません。インストーラーの経路、`npx skills@latest add mattpocock/skills`なら、本物のリリースが入ります。
この比較はどのように計測しましたか?
架空のTypeScript請求書repo、ledgerlyで、headlessのSonnet 5.5を19回走らせました。機能ごとにworkerには見えない隠し受け入れテストが5つあり、質問に答える台本通りのプロダクトオーナーがいて、すべてのtoken、ドル、skill呼び出しをturnごとに記録し、stageごとに合計しました。

関連動画