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 でそのようなパターンを防ぐルールのセットです。
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
- コメントを読み込んでいます。