あなたのコードをAになるまで怒鳴るCLIを作った

Dev.to / 2026/4/29

📰 ニュースDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • 新しいCLIツール `npx fix-hairball` が登場し、コードベースをレビューし続けて「A」という品質評価に到達するまで改善します。
  • ツールはAIによる品質チェックのループで動作し、複数のAIレビューアから問題点を集めて要点を統合し、修正を並列化して適用したのち、テスト/チェックを再実行して再評価します。
  • 背景には、AIがコードを書くことは得意でも、削除やリファクタリングが必ずしも上手くないため、冗長なヘルパーや不必要な互換シム、肥大化したテスト、使われない抽象化が増えてしまうという問題意識があります。
  • 著者は「50行で綺麗にできるなら200行にすべきでない」「昨日の抽象化が寂しくなっただけなら廃止すべき」「今朝作られた“レガシー互換”は皆が見直すべき」といったクリーンアップの思想を強調しています。
  • このCLIは“エンジニアを良くする”ものではない一方で、クリーンアップループを意図的に回すことでリポジトリの見た目や品質を改善できる可能性があると述べています。

AIのコーディングは最高です。…ただ、リポジトリが火事の騒ぎの最中に組み立てられたみたいになってきたら、話は別です。

そこで、これを作りました:

npx fix-hairball

これはあなたのコードベースをレビューし、採点し、最悪の部分を直し、もう一度レビューして、Aになるまで止まりません。

要するに:

D -> C -> B -> A

ただし、ターミナルの出力は増えて、気持ちは減ります。

Why?

AIエージェントはコードを書くのが大好きだからです。

でも、コードを消すのは必ずしも好きではありません。

彼らは喜んでこういうものを作ります:

  • ヘルパーのためのヘルパー
  • 11分前に書かれたコード向けの互換性用のシム
  • 700行のテストファイル
  • 1回しか使わないのに「共通」扱いにされた抽象化が3つ
  • 住宅ローンがありそうな名前の関数

fix-hairball は、意図的にクリーンアップのループを回すために存在します。

What It Does

中身は、次を実行します:

npx commands-com quality --until A

複数のAIレビュワーに「何が間違っているか」を聞き、役に立つ不満を統合し、修正を並列タスクに分割して適用し、チェックを実行したら、また同じことを繰り返します。

かなり華やかです。

大半は「消す」作業です。

The Philosophy

コードが50行でキレイにできるなら、200行であるべきではありません。

抽象化が存在する理由が「昨日の抽象化が寂しくなったから」だけなら、それは消すべきです。

今朝作られた何かに対して、リポジトリに「レガシー互換」があるなら、みんな散歩が必要です。

Try It

npx fix-hairball

あなたをより良いエンジニアにはしてくれません。

でも、あなたのリポジトリが「誰かがきちんと関わっていた」ように見えるようにはしてくれるかもしれません。