世界を動かす技術を、日本語で。

SlopCodeBenchにおけるOpus 5のベンチマークテスト

2026年7月28日原文(github.com)

概要

  • SlopCodeBench は、コードベースの品質維持能力を測る新しい長期的ベンチマーク
  • Opus 5 は部分ベンチで24%のstrict pass率を記録、他モデルよりわずかに優秀
  • コードの複雑性・冗長性・重複 など多角的な品質指標でモデルを評価
  • すべてのモデルが課題進行で コード品質の劣化 を示す結果
  • Strict pass率 の向上が「保守性の高いコードベース構築能力」の指標となる可能性

SlopCodeBenchによる長期的コードベース評価

  • SlopCodeBench は、@GOrlanski率いるUW Madisonの研究室が開発した 長期的なコーディングベンチマーク
  • 各課題は複数の チェックポイント で構成され、モデルは要件が段階的に開示される中でコードベースを進化させる必要
  • GPT-5.4Opus 4.6 など先端モデルでもstrict pass率は11%・17%と非常に低い
  • Opus 5、Sonnet 5、Opus 4.8を用い、3課題・17チェックポイントで実験
    • circuit_eval(易)8チェックポイント
    • database_migration(中)5チェックポイント
    • dynamic_config_service_api(難)4チェックポイント
  • strict pass基準: 全ての新旧テストを完全合格 した場合のみカウント

実験結果と考察

  • Opus 5 が24%(4/17)のstrict passで他モデルより優秀だが、全課題で最終チェックポイントまで無欠陥到達したモデルはゼロ
  • Opus 4.8Sonnet 5 は各1回(6%)のstrict passにとどまる
  • Opus 5は最初の3チェックポイントで連続合格、その後は毎回何らかの欠陥発生
  • コスト面では、Sonnet 5が初期は高価だが課題進行で最も低コストに
  • strict pass率の向上は「長期的なコードベース保守能力」の重要な信号

コード品質指標の詳細

  • SlopCodeBench は41種の品質指標を各チェックポイントで自動計測
    • サイズ:ソース行数、関数数、クラス数、追加・削除行数
    • 複雑性:サイクロマティック複雑度、ネスト深度、平均関数長
    • 重複:クローン行数、重複率
    • 分解度:単一利用関数、ラッパー関数、未使用変数
    • 規則違反:lintエラー、AST-grepヒット数
    • 依存グラフ:伝播コスト、循環依存度、エントロピー
  • ほぼ全てのモデルで コード品質指標が悪化 する傾向
  • Opus 5は他モデルより冗長性・複雑性の増加が抑えられたが、関数数は5倍に増加
  • すべてのモデルで 冗長なコード行 がチェックポイント進行とともに増加(例:ck1で65%→ck8で80%)

モデル間の特徴比較

  • Opus 5 :関数数が他モデルの5倍、ただし単一利用関数の割合は低め
  • Opus 4.8 :単一利用関数率約50%、複雑性増加が顕著(最大サイクロマティック複雑度93)
  • Sonnet 5 :単一利用関数率71.5%、課題進行で関数サイズが増大
  • 重複率 :Opus 4.8は課題進行で4.6%→16.8%に急増、Opus 5はほぼ横ばい

コードベース保守性の評価と今後

  • strict pass率の向上は「 長期的な保守性」の有力指標
  • 既存のコード品質指標だけでは保守性の全体像を捉えきれない
  • SlopCodeBenchのような 段階的仕様開示型ベンチマーク が、今後のモデル評価の新基準となる可能性
  • 現状のAIモデルは「lights-off」(完全自動)運用にはまだ信頼できない水準
  • 今後は Fable5.6 Sol など新世代モデルの検証も予定

まとめ

  • SlopCodeBench は、モデルが実際のソフトウェア開発現場でどこまで「保守性のあるコードベース」を維持できるかを測るための、現時点で希少かつ有望なベンチマーク
  • strict pass率や複数の品質指標を組み合わせて、モデルの限界と進化を定量的に把握可能
  • Frontierモデルの進化によるstrict pass率の変化が、実運用での信頼性向上の鍵となる

Hackerたちの意見

しばらくチャットに参加してなかったけど、これをまとめてくれて嬉しいよ。オーパス5はあんまり進化してない気がする。驚きがあったのはオーパス4と4.6、そしてトランプ政権前のフェイブルだけだったな。

そうだね、これはただのスタートだよ。新しいモデルのために試せる一番早くて安い方法だった。ソルやフェイブルも絡めて、もっといろんな言語を探ったり、問題セットをベンチマークに合わせて整理したりしたいと思ってる。個人的にはオーパス4.5は4.1よりもバカになった気がするな。4.5が2.5倍速くて2.5倍安いってのは、モデルが小さいってことを示してるかも。

最新のGPT 5.6やGLM 5.1/Kimi K3をコストのせいでベンチマークしなかったの?もしどうやって実行したか教えてくれたら、私が試してみるよ。

いや、今週中にそれを立ち上げる予定だよ。最初に使ったプロンプトをいくつか紹介するね。(リサーチオーケストレーターとしてオーパス5を使った)、(いろんなツールやアシスタントのメッセージが混ざってたけど、これで始められるはずだよ。)> このスロックダウンベンチのためにこの記事を取得して、オーパス5で問題のサブセットの評価を手伝って。 https://arxiv.org/html/2603.24755v1 > すべてのコンテキストを取得して、言及されたリポジトリを集めて、計画を提案して。 > アンスロピックのAPIキーがあるよ.... > オーパス4.8とオーパス5、フェイブルで3つのチャレンジをやろう。君のミニマルセットが好きだ。やってみよう。何が必要? > 実は考えを変えた。君が選んだ簡単なやつ2つをやって、その後チェックポイントが多いのを選んでほしい。難しすぎないやつで、チェックポイントが多いのがいいな。 > 実は簡単なやつ1つ、中くらいのやつ1つ、難しいやつ1つをやろう。難しい問題があったら見てみたい。 > やろうぜ - オーパス4.8とソネット5、オーパス5をやろう。ZDRがフェイブルをブロックするから。

いいね!実は最近この論文とベンチマークに出会ったんだ。生産コードを書く上で重要な非機能的かつ長期的な要件に目を向け始めた初めてのものだと思う。モデルがほとんどの瞬間的な問題を解決できるようになった今、特に関連があるね。いくつかの関連するけど繋がりのない考えを挙げると: - 決定論的なスコアはすごくいい - 「メンテナブル」ってのは多分、これらの信号で表される高次元の空間のことだろうね。この空間がどこにあるかを見つけるには人間のラベリングが必要かも - 最近考えている別の信号はシステムの状態空間で、最近フォーマルメソッドがよく取り上げられているのを見かける。

「メンテナブル」ってのは多分、これらの信号で表される高次元の空間のことだろうね。この空間がどこにあるかを見つけるには人間のラベリングが必要かも。これはすごく簡潔に言い表してるね - 単一の指標が本当に役に立たない多次元空間。システムの状態空間も面白いね。データベースやサードパーティの依存関係がある生産ソフトウェアでは測定が難しいかもしれないけど、システムの一部を制約された状態機械に分けられれば、クリーンなインターフェースの背後にあるモジュールの価値指標になるかもしれない。Kubernetesの制御ループモデルはそのいい例だと思う。よく定義された状態機械を持つ制御ループを所有するいくつかのスコープコンポーネントがあって、ほとんどのネットワークパーティションやダウンタイムに対しても動作・回復できる - CRDTの約束だけど、より実用的なアプローチだね。

考えていた別のシグナルがあって、最近よく話題に上がるのがシステムの状態空間だね。システムの状態空間と、それをモデルにアクセス可能/可視化する方法。モデルは、システムの状態を自分に合った形で「見る」ことができれば、魔法のように機能することが多いんだ。だから、環境にCLIが追加されると、すごく大きな解放感があるように感じる。CLIは通常、複雑な状態を扱いやすくしてくれるし、構造的に操作できるようにしてくれるからね。

オーパス5がオーパス4.8よりもいい改善だっていうのは、私の経験とも合ってるけど、フェイブルのように革命的ではなかったな。今はオーパス4.8のxhighをオーパス5のmediumに置き換えて、トークンも少なくて早くなった。書き方にイライラする人もいるのは理解できるけど、仕事を進める上では全然気にならない。すごく楽しんで使ってるよ。

MediumとHigh、どっちがいいの?なんで?見たチャートの中では、medからhighへのパフォーマンスのジャンプはかなり大きいけど、highからxhighへのはあんまり目立たないよね。

Fableは弱体化しちゃった気がする。最初に出たときは本当に革新的だったけど、今のは以前のものとは全然違うよね。

これはどの程度、ハーネスやシステムプロンプトの問題なんだろう?モデルは、既存のものにできるだけ影響を与えずに新しい機能を実装すべきなんじゃないかな?タスク完了後にコードをチェックして、適切な簡略化や抽象化、クリーンアップを行うシンプルなシステムプロンプトがあればいいのに。コードの「物語のような」読みやすさを保つ指示も必要だよね。

これが選択肢だってのは同意するよ。次に試してみたいのは、リアルな「工場型」のハーネスで、各コーディングエピソードの後にリンターや他のモデルからフィードバックをもらって、アーキテクチャを洗練させるやつ。特に読みやすさに関しては、プロンプトを使ってモデルにやらせるのが難しいと感じてる。もし長い間opusやfableとプローズライティングについて話してたら、同じように感じたかもしれないね。

Hacker Newsで議論の続きを見る