記事一覧

AI コーディングのための3つのルール、AI Slop を防ぐ

AI Slop:遠回りをする、偽の完了を報告する、わかりにくく説明する。もうやめましょう。AIでコーディングするときに必ず使うべき3つのルール。

目次

    最近はコーディングのほとんどを Claude Code や Codex などで進める人が多いですよね?探して、直して、テストして、コミットして、デプロイする。便利ですが、いちばん大きな問題はやはり AI Slop ではないでしょうか?とりあえず動くけれど、どう動いているのかわからず、不要なコードがどんどん積み重なる現象。あるいは、簡単なことを難しく遠回りして解決する問題などです。

    また、完了したと報告しても、実際には完了していない場合も少なくないですよね。結局、自分で確認し、読み直し、直し続けなければならない問題が生じがちです。では、こうした現象を減らすにはどうすればいいのでしょうか?

    AI コーディングのために必ずやるべき3つのルール

    簡単に説明しましょう。エージェントに「リリースは出した?」と聞いたとしましょう。すると、エージェントはこう答えるはずです。

    「はい、リリース手順についてご説明します。まずタグを作成し、リモートリポジトリにプッシュしました。すると GitHub Actions の Release ワークフローが実行されます。これは Windows のジョブと Android のジョブに分かれていて、Android のジョブは署名キーを復元したあと APK をビルドし、署名を検査します。確認したところ、ワークフローは成功で終了し、リリースページにファイルがアップロードされているようです。ほかにご質問があればお知らせください!」

    間違ったことは言っていませんよね。しかし、簡単な話でも説明が過剰になりがちです。こうなると、途中から内容をあまり読まなくなってしまいます。

    Attention-span

    Attention-span は、まさにこのためのルールです。結論を最初の文に書かせ、必要な分だけ書かせ、過剰に説明させない。かといって、警告などを減らすこともしません。このうえで「もっと詳しく説明して」と言えば、元のように詳しく説明してくれます。

    ルールを入れてから、同じ質問に対して返ってきた答えです。

    今あらためて確認しましたが、v1.6.0 が最新リリースで、正式公開の状態です。

    最初の行で終わっています。いちばん良かったのは「短く」より「警告は削らない」という部分です。短くだけ書けと言うと、エージェントは本当に重要なことまで抜かしてしまいますが、このルールを使うとその問題が解消されるのです。

    インストール

    alexgreensh/attention-span: Make your agents talk human. ADHD-friendly output s…

    「終わった」を信用できない

    これがいちばん大きかったです。

    エージェントが「直しました、テストも通るはずです」と言うと、そのまま信じて次の作業に進むことが多いですよね。ところが後で見ると、テストを実行していなかったり、一部だけ実行していたり、以前の実行結果を今の結果のように話していたケースが少なくありませんでした。サブエージェントに作業を分担させたときは、さらにひどかったです。サブエージェントが「成功」と言えば、そのまま伝えてしまうからです。

    verification-before-completion がこれを防ぎます。今まさに確認した証拠がなければ、完了とは言わない。

    「完了」と言う前に、その証明を再実行し、出力、終了コード、失敗回数をすべて確認してから言うように仕向けます。「たぶん」や「はずです」は証拠として認めません。サブエージェントの報告も信用せず、自分で再実行します。コミットやプッシュ、リリースの前も同じです。確認できなかったことは、確認できなかったとはっきり言わせるわけです。

    ルールを入れたあと、報告はこのように変わりました。

    テスト117件が通過(今実行、失敗0)、ビルドした実行ファイルで実際の送信テストが通過、GitHub ビルドの3ジョブすべて成功。ただしエクスプローラーのメニューは、インストール版ではまだ実際に押して確かめられていません。

    superpowers スキルに入っている md ファイルです。これをそのまま使ってください、これだけで大丈夫です。

    superpowers/skills/verification-before-completion/SKILL.md at main · obra/super…

    なんとなく雑でみっともないコード

    slop とは、雑に作ったことが見え見えの成果物のことを言います。AI が書いたコードを見ていると、動きはするけれど、どこか引っかかるパターンが繰り返し出てきます。anti-slop は、TypeScript・JavaScript でそのようなパターンを防ぐルールのセットです。

    test.ts
    const names = users.filter((u) => u.active).map((u) => u.name);
    
    // 이렇게 쓰게 합니다
    const names: string[] = [];
    
    for (const u of users) {
      if (u.active) names.push(u.name);
    }

    dmmulroy/anti-slop: Opinionated Oxlint rules for rejecting low-evidence TypeScr…

    インストール方法

    Claude Code では、~/.claude/CLAUDE.mdに verification-before-completion と anti-slop を書き、attention-span は出力スタイルとして有効にしました。Codex では、~/.codex/AGENTS.md ひとつにまとめて3つすべてを入れました。2つのツールに同じものを入れておくと、どちらを使っても似たように動いてくれます。

    使ってみた感想

    これをしたからといって、AI がもっと賢くなって素晴らしい成果物を作るわけではありません。ただ、自分が確認すべき部分が減るということです。とはいえ、これも100%正確というわけではないので、必ずコードレビューはしてみてください。

    コメント 2

    1. コメントを読み込んでいます。