receiving-code-review (obra/superpowers)
コードレビューの指摘を鵜呑みにせず、技術的に正しいか確かめてから反映します。
receiving-code-review:エージェントが誤ったレビューコメントを盲目的に適用するのを防ぎます(対照群 3.4、スキル 3.7、一文プロンプト 4.2)。ただし料金タスクでは、正しい項目を実装する前に立ち止まって質問しました。トークンはほぼ同じです。
Codex CLI · gpt-6-astra
23.9 / 30
スキルなしに対するリフト:+0.29 · 状況次第 · 18 実行
状況次第:リフト +0.29 が +1.0 未満。推奨には合計 22/30、出力品質 3.5、リフト +1.0 が必要です。
SOTA
合格Codex でテスト済み。
カバー対象 Codex, Claude Code
Codex CLI 0.166(SOTA ティア):採点対象 18 実行。当ティアのルールでは、ここでの合格は Claude Code もカバーします。第2ティアについては何も述べません。
スコア
各ディメンションは 0〜5 点で、6 つの合計が 30 点満点の合計スコアになります。すべてのディメンションで 5 が最良です。コスト 5 は低コストで高速、インストール 5 は簡単であることを意味します。
- トリガーの信頼性
- 5.0
- スキルなしに対するリフト
- 2.3
- 出力品質
- 3.7
- トークンと時間のコスト
- 5.0
- インストールと移植性
- 4.0
- 安全性
- 4.0
セキュリティレビュー
安全静的スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。手動レビュー:ネットワーク無効のサンドボックスで実行しても安全(指摘なし)。クリーンなスキャン結果はスキルの安全性を証明しません。
インストール
npx skills@latest add obra/superpowers --skill receiving-code-review
固定コミット: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b
テスト済み: 2026-11-02
テスト内容
- 誤ったデッドコード指摘のあるレビュー — pricing.py について REVIEW.md のレビューフィードバックに対処してください。テスト: python -m unittest。
- numpy と丸めに関する誤った提案のあるレビュー — report.py について REVIEW.md のレビューフィードバックに対処してください。テスト: python -m unittest。
- リネームと時期尚早なロックのあるレビュー — inventory.py について REVIEW.md のレビューフィードバックに対処してください。テスト: python -m unittest。
長所
- スキルは名前を出さずとも採用されました:スキルあり群 6/6 実行でスキルファイルが読み込まれました。
- トークンのオーバーヘッドなし:スキルなしの 1.02 倍。
短所
- スキルなしに対する有意なリフトなし(+0.29、ノイズの範囲内)。
- 一文プロンプトは 4.21、スキルありは 3.66(-0.55)。
- テスト上の注意:料金タスクではスキルの設計上の挙動が減点されます。スキルは実装前に立ち止まって質問しますが、チェックは有効な項目を一括で実装することにのみ加点します。質問されることを好むレビュアーならこのスキルをより高く評価するでしょう。そのため一文プロンプトはスキルを 0.55 上回りました。
- タスク・群ごとに n=2。1 ポイント未満の差はノイズです。
レビュー
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。3つの小さな Python モジュール(pricing、report、inventory)。それぞれに、正しい項目と誤った・不明瞭な項目が混在するコメントを記した REVIEW.md があります(例: まだ使われている関数の削除、Redis キャッシュ、「もっと堅牢にする」、利用できない環境での numpy、呼び出し元を壊すリネーム)。プロンプトは「REVIEW.md のレビューフィードバックに対処する」という指示とテストコマンドのみです。一文プロンプトは「実行前に評価する」原則を述べます。
3群の比較
| 群 | 平均スコア(0〜5) | 1実行あたりのトークン |
|---|---|---|
| スキルなし | 3.38 | 84k |
| 一文プロンプト | 4.21 | 90k |
| スキルあり | 3.66 | 86k |
Codex CLI で 18 実行を計測し、LLM 判定なしのルールベースのチェックで採点。合計 23.9 / 30、判定は 状況次第。
開示事項 pricing タスクは、スキルの設計上の挙動(実装前に立ち止まって質問する)に対して減点します。一方でチェックは、有効な項目を一括で実装することのみを加点します。質問されることを好むレビュアーなら、このスキルをより高く評価するでしょう。一文プロンプトがこのスキルを 0.55 上回ったのはそのためです。
判定:状況次第(23.9 / 30)。 ソース:obra/superpowers、skills/receiving-code-review、コミット 2ce8aa1 に固定。インストール:npx skills@latest add obra/superpowers --skill receiving-code-review。ライセンス: MIT(リポジトリの LICENSE)。
概要
receiving-code-review スキル(obra/superpowers)は、コードレビューのフィードバックへの対応方法を定めます:各コメントをコードと照合して検証する、正しいものだけを実装する、誤りや不要な項目には具体的な理由を挙げて反論する、不明な点は質問する、そしておざなりの同意をしない。何かが不明な場合は 'STOP - do not implement anything yet' と述べます。
テスト方法
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。
3 つの小さな Python モジュール(pricing、report、inventory)それぞれに、正しい項目と誤り・不明瞭な項目が混在するコメントの REVIEW.md を用意しました(例:まだ使われている関数の削除、Redis キャッシュ、'make this more robust'、利用できない環境での numpy、呼び出し側を壊すリネーム)。プロンプトは「REVIEW.md のレビューフィードバックに対応する」とテストコマンドのみです。一文プロンプトは、行動前に評価する原則を述べます。
- 誤ったデッドコード指摘を含むレビュー — pricing.py について、REVIEW.md のレビューフィードバックに対応してください。テスト:
python -m unittest。 - 誤った numpy と丸めの提案を含むレビュー — report.py について、REVIEW.md のレビューフィードバックに対応してください。テスト:
python -m unittest。 - リネームと時期尚早なロックを含むレビュー — inventory.py について、REVIEW.md のレビューフィードバックに対応してください。テスト:
python -m unittest。
採点はプログラム的(隠しテスト/仕込み問題の検出/制約チェック/該当する場合はレンダリング+OCR)で、実行ごとに 0〜5 点。スコアはどの LLM 判定者も決めていません。
結果
第 3 の群に与えた一文プロンプト:"各レビューコメントを行動前に技術的に評価してください:コードと照合し、正しいものだけを実装し、誤りや不要なものには具体的な理由を挙げて反論し、不明な点は質問し、'you're absolutely right' のようなおざなりの同意から始めないこと。"
| タスク | 対照群スコア | 一文プロンプト | スキルあり | 対照群トークン | 一文プロンプトトークン | スキルありトークン | スキルの読み込み |
|---|---|---|---|---|---|---|---|
| t1-pricing | 4.5 | 4.5 | 2.86 | 84k | 101k | 62k | 2/2 |
| t2-report | 3.88 | 4.62 | 4.62 | 83k | 84k | 91k | 2/2 |
| t3-inventory | 1.75 | 3.5 | 3.5 | 84k | 83k | 102k | 2/2 |
平均スコア:スキルなし 3.38 に対しスキルあり 3.66(差 +0.29)。1実行あたりのトークン:84k に対し 86k(1.02 倍)。所要時間 41 秒に対し 34 秒。一文プロンプト群:4.21(一文プロンプトに対するスキルの上乗せ:-0.55、スキルなしに対する一文プロンプトの上乗せ:+0.83)。一文プロンプトのトークンは 1実行あたり 90k で、スキルは一文プロンプトの 0.95 倍のトークンを消費します。
何が起きたか
- 対照群 3.38、スキルあり 3.66、一文プロンプト 4.21(それぞれ n=6)。スコアは、有効な項目の隠しテスト、誤った項目が適用されたか、最終メッセージが技術的な理由で反論しているかを組み合わせたものです。
- 在庫タスク:対照群は 2/2 実行で誤ったリネームを適用し(それぞれ壊れたパターンが 11 件一致)、6 つの隠しテスト中 0 件しか合格しませんでした。スキルありと一文プロンプトは両方の実行で 3.5 を取り、リネームを適用しませんでした。これが最も明確な利点です。
- 価格タスク:対照群 4.0 と 5.0、一文プロンプト 4.5、スキルありは両方の実行で 2.86。スキルありの最終メッセージは、レガシー関数がまだ invoice.py で使われており Redis は不要だと正しく述べています。しかし、ある項目('make this more robust')が不明瞭だったため、スキルの 'STOP - do not implement anything yet' に従ってファイルを変更せず、質問を返しました。その結果、有効な項目の隠しテストは 7 件中 4 件しか合格しませんでした。
- レポートタスク:スキルあり 4.25 と 5.0、一文プロンプト 4.25 と 5.0、対照群 3.5 と 4.25。誤った項目への理由付きの反論は、どの群にとっても弱点でした(numpy はほとんどの実行で見落とされました)。
- どの群もおざなりの同意で始めませんでした。トークンはほぼ同じです(1実行あたりスキルあり 86k、一文プロンプト 90k、対照群 84k)。スキルはスキルあり群 6/6 実行で読み込まれました。
ディメンション別スコア
| ディメンション | スコア | 理由 |
|---|---|---|
| 1_出力品質 | 3.66 | スキルありの平均スコア 3.66/5(プログラム的チェック。タスク別の表を 参照)。 |
| 2_スキルなしに対するリフト | 2.29 | スキルなし 3.38 に対して +0.29 ポイント(タスクごとに n=2。約 1 ポ イント未満の差はノイズ)。 |
| 3_トリガー | 5.0 | スキルあり群 6/6 実行でスキルファイルが読み込まれました。 |
| 4_指示の移植性 | 4 | superpowers 形式の SKILL.md。 |
| 5_効率性 | 5 | トークン 1.02 倍(1実行あたり 86k に対し 84k)、時間 0.84 倍(34 秒に対し 41 秒)。 |
| 6_安全性と衛生 | 4 | テキストのみ。security.md を参照。 |
本テストの限界
- 価格タスクのスコアは、スキルの意図的な「停止して質問する」振る舞いを減点します。人間はその振る舞いを好むかもしれません。チェックは単に、有効な項目が 1 回のパスで実装されるかを見ています。
- 最終メッセージの再現チェックと、有効な項目の隠しユニットテストです。変更のコード品質は判定していません。
- 各フィクスチャの反論用正規表現は、他の妥当な言い回しを見落とす可能性があります。
- セルごとに n=2。小さなモジュールです。
- タスク・群ごとに n=2。1 ポイント未満の差はノイズです。
- ルールベースの採点はチェックが検出できるものだけを測ります。センスや、結果が最善かどうかは判定できません。
セキュリティ
security.md を参照。スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:実行しても安全(ネットワーク無効のサンドボックス)。クリーンなスキャン結果はスキルの安全性を証明しません。
結論
スキルは誤ったコメントの適用を防ぎます(在庫)が、価格のケースではエージェントを停止させます。そのため、無ガイドに対する正味の利得は小さく、同じ原則を述べた一文の方がここでは高得点でした。推測せず質問させたいなら価値があります。1 回のパスで済ませたいなら価値はありません。
トランスクリプト
実行ログ:receiving-code-review (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 列:タスク、群-回、スコア(0-5)、トークン、秒、合格したチェック、エージェントが開いたスキルファイル。 t1-pricing control-1: スコア 4.0, トークン 85197, 秒 42.6, チェック 3/4, 開いたファイルなし t1-pricing control-2: スコア 5.0, トークン 83652, 秒 43.0, チェック 4/4, 開いたファイルなし t1-pricing oneliner-1: スコア 4.5, トークン 101150, 秒 36.6, チェック 4/4, 開いたファイルなし t1-pricing oneliner-2: スコア 4.5, トークン 102032, 秒 46.3, チェック 4/4, 開いたファイルなし t1-pricing treatment-1: スコア 2.86, トークン 53744, 秒 22.9, チェック 2/4, 開いたファイル receiving-code-review t1-pricing treatment-2: スコア 2.86, トークン 71964, 秒 26.2, チェック 2/4, 開いたファイル receiving-code-review t2-report control-1: スコア 3.5, トークン 83153, 秒 37.1, チェック 3/4, 開いたファイルなし t2-report control-2: スコア 4.25, トークン 83546, 秒 35.9, チェック 3/4, 開いたファイルなし t2-report oneliner-1: スコア 5.0, トークン 83745, 秒 34.1, チェック 4/4, 開いたファイルなし
18 実行、3 成果物
サンプル出力
SOTA · With the skill: final message (t1-pricing, run 1, Codex)
Items 1–2 are clear: normalize coupon case and reject negative quantities. Item 3 is incorrect: `invoice.py` calls `legacy_fee`; deleting it would break invoicing. I recommend retaining it and deferring Redis until there’s evidence caching helps. What behavior does “make this more robust” mean, and is Redis a firm requirement? No files changed. Baseline `python -m unittest`: 2 tests passed. The [receiving-code-review skill](.agents/skills/receiving-code-review/SKILL.md) requires: “STOP - do not implement anything yet” when feedback is unclear, so clarification is needed before editing.