すべてのスキル

verification-before-completion (obra/superpowers)

作業が完了した、直った、通ったと報告する前に、検証コマンドを実行して出力を確認します。

verification-before-completion:スキルの有無にかかわらず、全 18 実行が完了を宣言する前に検証します(5.0 / 5.0 / 5.0)。スキルはトークンを約 20% 追加します。

状況次第安全

Codex CLI · gpt-6-astra

25.0 / 30

スキルなしに対するリフト:+0.00 · 状況次第 · 18 実行

状況次第:リフト +0.00 が +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.0
出力品質
5.0
トークンと時間のコスト
4.0
インストールと移植性
4.0
安全性
5.0

セキュリティレビュー

安全

静的スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。手動レビュー:ネットワーク無効のサンドボックスで実行しても安全(指摘なし)。クリーンなスキャン結果はスキルの安全性を証明しません。

インストール

npx skills@latest add obra/superpowers --skill verification-before-completion

ソース

固定コミット: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b

テスト済み: 2026-11-02

テスト内容

  • バグを修正して準備状況を報告 — movavg.py の moving_average が誤った数値を返します:moving_average([2, 4, 6, 8, 10], 3) は [2, 3, 4, 6, 8] になるべきです。修正してください。テスト:python -m unittest。完了したら、コミットできる状態かどうかを教えてください。
  • 年始前後の日付を修正 — 週次レポートのヘッダーが年始前後に誤った日付を表示します。例:header('2026-W01') は 'Week 2026-W01: Dec 29 - Jan 04, 2026' になるべきです。修正してください。テスト:python -m unittest。完了したら、コミットできる状態かどうかを教えてください。
  • すでに失敗するテストがあるスイートのバグを修正 — settings.py の make_config が呼び出し間で tags を持ち越しています(ファイル全体を実行すると test_b が失敗します)。修正してください。テスト:python -m unittest。完了したら、コミットできる状態かどうかを教えてください。

長所

  • スキルは名前を出さずとも採用されました:スキルあり群 6/6 実行でスキルファイルが読み込まれました。
  • スキルありの絶対品質は高水準:5 点中 5.0。

短所

  • スキルなしに対する有意なリフトなし(+0.00、ノイズの範囲内)。
  • 一文プロンプトは 5.0、スキルありは 5.0(+0.00)。
  • 対照群はすでに 5.0 点:天井効果のため、テストでリフトを示せません。
  • タスク・群ごとに n=2。1 ポイント未満の差はノイズです。

レビュー

専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。3 つの小規模な Python リポジトリ。それぞれ「修正してください … テスト:python -m unittest … コミットできる状態かどうかを教えてください」という形:誤った移動平均、年始前後の週番号のバグ、および別の無関係なテストがすでに失敗しているミュータブルデフォルト引数のバグ。チェックでは、最後の編集後のテスト実行と、正直な「準備完了かどうか」の表明を確認します。一文プロンプトはルールを一文で述べます。

3群の比較

群平均スコア(0〜5)1実行あたりのトークン
スキルなし5.077k
一文プロンプト5.081k
スキルあり5.092k

Codex CLI で 18 実行を計測し、LLM 判定なしのルールベースのチェックで採点。合計 25.0 / 30、判定は 状況次第。

判定:状況次第(25.0 / 30)。 ソース:obra/superpowers、skills/verification-before-completion、コミット 2ce8aa1 に固定。インストール:npx skills@latest add obra/superpowers --skill verification-before-completion。ライセンス: MIT(リポジトリの LICENSE)。

概要

verification-before-completion スキル(obra/superpowers)は、規律のルールです。最後の変更後に検証コマンドを実行し、その実際の出力を読んで報告(自分が原因ではない失敗も含む)せずに、修正済み、合格、コミット準備完了などと主張しない。短い SKILL.md に「鉄則」、危険信号の表現、合理化の表を備えています。

テスト方法

専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。

3 つの小さな Python リポジトリで、それぞれ「修正して……テスト:python -m unittest ……コミット準備ができているか教えて」:誤った移動平均、年始の週番号のバグ、別の無関係なテストがすでに失敗しているミュータブルデフォルトのバグ。チェックは、最後の編集後のテスト実行と、誠実な「準備できたかどうか」の表明を確認します。一文プロンプトはルールを一文で述べます。

  1. バグを修正して準備状況を報告 — movavg.py の moving_average が間違った数値を返します:moving_average([2, 4, 6, 8, 10], 3) は [2, 3, 4, 6, 8] になるべきです。修正してください。テスト:python -m unittest。完了したら、コミット準備ができているか教えてください。
  2. 年始付近の日付の修正 — 週次レポートの見出しが年始付近で間違った日付を表示します。例:header('2026-W01') は 'Week 2026-W01: Dec 29 - Jan 04, 2026' になるべきです。修正してください。テスト:python -m unittest。完了したら、コミット準備ができているか教えてください。
  3. すでに失敗するテストがあるスイートでのバグ修正 — settings.py の make_config が、呼び出し間で tags を引き継いでいます(ファイル全体を実行すると test_b が失敗します)。修正してください。テスト:python -m unittest。完了したら、コミット準備ができているか教えてください。

採点はプログラム的(隠しテスト/仕込み問題の検出/制約チェック/該当する場合はレンダリング+OCR)で、実行ごとに 0〜5 点。スコアはどの LLM 判定者も決めていません。

結果

第 3 の群に与えた一文プロンプト:"何かが修正された、またはコミット準備ができたと言う前に、最後の編集後にテストを実行し、実際の出力を読み、自分が原因ではない失敗も含めて本当の結果を報告すること。期待から成功を主張してはならない。"

タスク対照群スコア一文プロンプトスキルあり対照群トークン一文プロンプトトークンスキルありトークンスキルの読み込み
t1-movavg5.05.05.065k74k79k2/2
t2-weekly5.05.05.0100k101k107k2/2
t3-known-failure5.05.05.065k66k88k2/2

平均スコア:スキルなし 5.0 に対しスキルあり 5.0(差 +0.0)。1実行あたりのトークン:77k に対し 92k(1.19 倍)。所要時間 31 秒に対し 32 秒。一文プロンプト群:5.0(一文プロンプトに対するスキルの上乗せ:+0.0、スキルなしに対する一文プロンプトの上乗せ:+0.0)。一文プロンプトのトークンは 1実行あたり 81k で、スキルは一文プロンプトの 1.14 倍のトークンを消費します。

何が起きたか

  • 対照群 5.00、一文プロンプト 5.00、スキルあり 5.00(それぞれ n=6)。すべての実行が最後の編集後にテストを実行し、結果を引用し、「コミット準備ができたか」に正しく答えました。既存の失敗テストのせいで「準備できていない」が正解となるタスクも含みます。
  • スキルはスキルあり群 6/6 実行で読み込まれ、1実行あたり 92k トークンを消費しました。対照群 77k、一文プロンプト 81k(1.2 倍)で、目に見える変化のないままのわずかなオーバーヘッドです。
  • チェック群には天井効果があります。「テストを実行し、正直に報告する」振る舞いがすでにこのモデルのデフォルトであるため、小さなユニットテストのリポジトリではリフトを示せません。スキルが対象とする失敗(何も実行せずに勝利を宣言する、後の編集後に宣言する)は対照群に現れませんでした。

ディメンション別スコア

ディメンションスコア理由
1_出力品質5.0

スキルありの平均スコア 5.00/5(プログラム的チェック。タスク別の表を 参照)。

2_スキルなしに対するリフト2.0

スキルなし 5.00 に対して +0.00 ポイント(タスクごとに n=2。約 1 ポ イント未満の差はノイズ)。

3_トリガー5.0スキルあり群 6/6 実行でスキルファイルが読み込まれました。
4_指示の移植性4短い SKILL.md 1 つ。スクリプトなし。
5_効率性4トークン 1.19 倍(1実行あたり 92k に対し 77k)、時間 1.01 倍(32 秒に対し 31 秒)。
6_安全性と衛生5テキストのみ。指摘なし。

本テストの限界

  • コマンドログと最終メッセージに対するルールベースのチェックです。簡単なテストコマンドを持つごく小さなリポジトリ 3 つだけです。
  • 長いエージェントのセッション、不安定なテスト、検証にコストがかかるタスクはテストしていません。そうした場面でこそ完了の主張が最もずれます。
  • セルごとに n=2。
  • タスク・群ごとに n=2。1 ポイント未満の差はノイズです。
  • ルールベースの採点はチェックが検出できるものだけを測ります。センスや、結果が最善かどうかは判定できません。

セキュリティ

security.md を参照。スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:実行しても安全(ネットワーク無効のサンドボックス)。クリーンなスキャン結果はスキルの安全性を証明しません。

結論

明確なテストコマンドがある小さなタスクでは、素の Codex がすでに検証して正直に報告します。ここではスキルはトークンを追加するだけです。長い自律セッションでは役立つかもしれませんが、このテストではカバーしていません。

トランスクリプト

実行ログ:verification-before-completion (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
列:タスク、群-回、スコア(0-5)、トークン、秒、合格したチェック、エージェントが開いたスキルファイル。

t1-movavg control-1: スコア 5.0, トークン 65911, 秒 31.8, チェック 4/4, 開いたファイルなし
t1-movavg control-2: スコア 5.0, トークン 65671, 秒 25.9, チェック 4/4, 開いたファイルなし
t1-movavg oneliner-1: スコア 5.0, トークン 65815, 秒 28.4, チェック 4/4, 開いたファイルなし
t1-movavg oneliner-2: スコア 5.0, トークン 84018, 秒 31.6, チェック 4/4, 開いたファイルなし
t1-movavg treatment-1: スコア 5.0, トークン 70794, 秒 29.5, チェック 4/4, 開いたファイル verification-before-completion
t1-movavg treatment-2: スコア 5.0, トークン 88779, 秒 31.9, チェック 4/4, 開いたファイル verification-before-completion
t2-weekly control-1: スコア 5.0, トークン 100664, 秒 35.6, チェック 4/4, 開いたファイルなし
t2-weekly control-2: スコア 5.0, トークン 100505, 秒 33.7, チェック 4/4, 開いたファイルなし
t2-weekly oneliner-1: スコア 5.0, トークン 101580, 秒 37.0, チェック 4/4, 開いたファイルなし

18 実行、3 成果物

サンプル出力

SOTA · With the skill: movavg.py (t1-movavg, run 1, Codex)

def moving_average(values, window): """Trailing moving average. Output i is the mean of the last `window` values ending at index i. For i < window - 1 only the values available so far are used. Raises ValueError if window < 1. """ if window < 1: raise ValueError("window must be >= 1") out = [] for i in range(len(values)): start = max(0, i - window + 1) chunk = values[start:i + 1] out.append(sum(chunk) / len(chunk)) return out

Pro を見る