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

クロードはrsyncのバグを増やしたのか?

概要

  • 本レポートは AI(Claude)による支援 の影響を客観的に検証した分析結果
  • 指標・手法・データソース は筆者と統計学修士の妻が選定
  • データ収集・分析スクリプト はAIで作成、数値の整合性は自動化で担保
  • rsyncプロジェクトでのClaude利用 を巡る議論・炎上経緯を整理
  • バグ傾向分析の結果、AI導入後の品質低下は統計的に認められず

AI支援利用の説明とレポート作成経緯

  • 指標・手法・データソース は筆者と妻(Penn State大学統計学修士)が厳選
  • 妻の助言で 単純なバグ件数比較や線形回帰 はノイズが多く不適切と判断
  • リリースごとのバグ分布に基づき、AI導入後のリリースが過去分布と比べ異常かを検証
  • データ収集・集計・分析スクリプトやHTML生成 はGLM 5.1で作成
  • 数値・統計・グラフは Pythonスクリプトによる自動テンプレート化 で一貫性確保
  • プローズ(文章)は最終的に筆者自身が全面書き直し
  • GitHubリポジトリ でパイプライン全体を公開、再現性・透明性を確保

rsync炎上の経緯

  • 2026年5月、 rsyncへのClaudeコミット導入後にバグが増えた との疑惑がMastodonで拡散
  • 根拠のない批判や誹謗中傷 がGitHub issueやHacker Newsなどで急拡大
  • 技術的な議論や根拠提示はほぼなく、感情的な反応が大半
  • 一部で バグ件数推移の客観的分析 を求める声も出現
  • 本分析は 「AI導入で本当に品質が落ちたのか」 をデータで検証

分析サマリー

  • 36リリース分のバグデータ (v2.4.6~v3.4.3)を対象
  • Claudeコミット含むリリースは2件 :v3.4.2(9件、0.00 sev/10c)、v3.4.3(28件、3.29 sev/10c)
  • 両リリースは 四分位範囲(IQR)内外に分布するが、どちらも外れ値ではない
  • Permutation testのp値=46% :「任意の2リリースを選んで同等以上のバグ率になる確率」
  • Fisher's exact testのp値=74% :「Claudeリリースが有意にバグ多発とは言えない」
  • 歴史的平均バグ率はClaudeリリースの1.8倍 (2.95 vs 1.65 sev/10c)
  • v3.4.1 (Claude未使用、59バグ/9コミット)は外れ値だが基準分布内

バグ指標・集計方法

  • 指標は「重み付きバグ数/10コミット(sev/10c)」
    • 各バグは 0~100の重み(Severity) でスコア化
    • sev/10c =(Severity合計 ÷ コミット数)×10
  • コミットのリリース割当
    • デフォルトブランチの全コミットを 時系列で並べ、各タグ間でリリース範囲を定義
    • プレリリースは最終リリースに吸収
  • バグの収集元
    • GitHub issue、Bugzilla、メーリングリスト
    • GitHub・MLは直前リリースに割当/Bugzillaは「Version」フィールドで割当
  • Severityスコアリング
    • Qwen 3 35B(LLM) を信頼性エンジニアとしてプロンプト
    • スコア範囲:0(機能要望)~100(深刻バグ)
    • 温度0で一貫性確保、JSON出力のみ
    • スコア0(要望・スパム等)はデフォルトで除外

結論

  • AI(Claude)導入後のrsyncリリースでバグが有意に増えた事実は統計的に確認できない
  • 感情的な批判が先行しやすいが、実際の品質低下はデータでは裏付けられず
  • 分析手法・データ・再現性をすべて公開 し、客観的検証が可能な状態
  • 今後も議論にはデータと透明性が重要

Hackerたちの意見

でも、批評家の非難はストレートだよね。「クロードは状況を悪化させている。」って。ストレートな手法が一番公平な反応だと思う。だから批判がひどかったからって、悪い指標を使うのが正当化されるわけじゃないよね?

それが言いたいわけじゃないんだ。僕が言いたいのは、もし批判がリリースごとのバグ数やクロードによるコミット数みたいな広範な指標を指しているなら、まさにその点を見ていくのが正しいってこと。

AIと興味は専門知識じゃないよね。HNに来るのは、すごく細かい情報や、素晴らしいダジャレがあるからだよ。

じゃあ、どんなのがいいと思う?

この分析は単一の指標を使っている:10コミットごとのバグ数(バグ/10c)。コミットごとのバグ数を指標にすると、セキュリティの深刻度やユーザーへの影響が曖昧になっちゃう。この枠組みでは、誤ラベルのボタンとアプリ全体のクラッシュが同じ重みを持つことになる。

すべての怒りの投稿の中で、深刻度の分析はなかった。押し出されていた唯一のポイントは「LLMの使用がバグを増やす」ってこと。著者はそれが彼らの言っていることだと明言している(ストレートな非難 -> ストレートな反応)。

じゃあ、バグが増えたって証明してみてよ。なんで根拠のない主張がされて、急にプロジェクトのメンテナーがそれを疑いなく証明しなきゃいけないの?主張している人がそれを証明するべきだと思う。

個人的には「コミットごとのバグ数」ってもっとひどいと思う。だって、君が言ったことに加えて、安定してたプロジェクトのコミット活動が急増してるのを隠しちゃうからね。これがあれば、rsyncの現状を大したことじゃないように見せかけるのにぴったりの指標だよ。 [0] https://github.com/RsyncProject/rsync/graphs/commit-activity

これを解決したよ。新しいバージョンは、もうすぐGH Pagesで公開される予定で、各バグに重みを付けるためのかなり良い方法論を使ってると思う。0.0から1.0に正規化して、それを合計して、総重み付きバグとして扱って、その基に分析を行う感じ。分析自体は特に変わらなかったよ。

コミットの複雑さ、セキュリティの強度、バグの深刻度を考慮していない。1行のタイプミス修正とCVEパッチの区別もつかない。これはストレートな手法だ。でも批評家の非難もストレートだよね。「クロードは状況を悪化させている。」って。ストレートな手法が一番公平な反応だと思う。もし公平って言うのが、この分析と反応が十分だって意味なら、申し訳ないけど同意できない。ユーザーの視点から見てバグの性質が悪化しているかどうかを理解する必要があるよね。たとえ率が変わらなくても、結果としてソフトウェアの品質が低下していると感じるなら、特にプロジェクトのメンテナーだったらそれは悪化していると考えるよ。それを完全に無視するつもりはないけど、一般的には定量的な分析だけではこの種の質問に完全に答えるには不十分だと思う。

でも、それは公平だよ。ここまでのところ、誰もコードの分析をして「Xの深刻度のリグレッションがY件見つかった」と言ったのを見たことがない。みんなが言っているのは「LLMのせいでバグが増えた」ってことだけ。この分析は、自分で確認できるけど、「バグの数はLLMがあってもかなり平均的だよ」って言ってる。もしもっとニュアンスのある分析が欲しいなら、自分でやって結果を共有してもいいよ。

証拠なしに主張されることは、証拠なしに却下できる。これは、主張をするために使われたものよりも、より厳密な証拠だよ。俺にはそれで十分だ。もし誰かが元の主張をより良い証拠で裏付けるために実際に作業をしたいなら、素晴らしいことだと思う。ぜひ見てみたいね。それまでは、この問題について心配しないつもり。

Hacker Newsで議論の続きを見る