AIはデッドコードを書く?Goチームのdeadcodeツールが1コマンドでそれを見つける
AIコーディングエージェントはコードを生成するのは得意ですが、デッドコード(未使用の関数、到達不能なブランチ、孤立したヘルパー)を残すのも得意です。これらはコードベースを肥大化させ、将来の読者を混乱させます。Goチームのdeadcodeツールは、1つのコマンドでそれを見つけます。
deadcodeとは?
deadcodeは、公式のGoツール(golang.org/x/toolsの一部)で、プログラム全体の到達不能性解析を行います。プログラムのどのエントリポイントからも呼び出されない関数やメソッドを報告します。これは単なるリンターではなく、実際の制御フローとポインタ解析を行って到達可能性を判定します。
AIが書いたデッドコードを見つける方法
モジュールのルートで次を実行します:
go run golang.org/x/tools/cmd/deadcode@latest ./...これにより、モジュール全体がスキャンされ、到達不能な関数のリストが出力されます。例:
deadcode: unreachable: main/helpers.go:23:7:func helperNeverCalled()特定のパッケージやフラグを渡すこともできます:
-test: 解析にテストファイルを含めます-filter: 正規表現にマッチする関数のみを報告します(例:-filter '_dead')-json: CIツールとの統合のためにJSON形式で出力します
AIエージェントがデッドコードを残す理由
LLMエージェントは確率的にコードを生成するため、呼び出されないユーティリティ関数を書いたり、リファクタリング時に古いコードのコピーを残したりすることがよくあります。コードはコンパイルされ、テストも通るため、見逃しがちです。deadcodeはそれを確実に検出します。
デッドコードを安全に削除する
deadcodeを実行した後、各到達不能な関数を手動で確認してください。リフレクションで使用されている、go:linknameから呼び出されている、公開APIの一部であるなどの理由で到達不能な場合があります。ツールにはリフレクションを考慮するための-reflectフラグがあります。しかし、ほとんどの場合、main(またはテスト)から呼び出されていなければ安全に削除できます。
その後、go test ./...を実行して、何も壊れていないことを確認します。デッドコードの除去は、コードベースの衛生管理において最も簡単な改善点の1つであり、エージェントの出力を次の反復でよりクリーンにします。
📖 完全なソースを読む: HN AI Agents
👀 See Also

コードフラッシュ分析:2つのPRで118件のパフォーマンスバグを発見(Claude Codeで記述)
Codeflashは、Claude Codeで構築された2つの主要機能のパフォーマンスを測定し、118の関数が最大446倍も非効率に動作していることを発見しました。分析により、非効率なアルゴリズム、冗長な計算、キャッシュの欠如、最適でないデータ構造といったパターンが明らかになりました。

OpenClawのatoshipスキルは、AIアシスタントを配送マネージャーに変えます。
OpenClawのatoshipスキルにより、ユーザーは配送ニーズを平易な英語で説明でき、その後、運送会社の選択、料金比較、ラベル購入、追跡を処理します。例として、「この1ポンドの箱をニューヨークへ、最も安いオプションで送ってください」といったコマンドがあります。

TeamOut AIエージェントによる会社のリトリート計画
TeamOutは、会話を通じて企業イベントを計画するAIエージェントをリリースしました。会場の選定、ベンダー調整、航空券費用の見積もり、旅程作成、プロジェクト管理などを一括して処理します。このシステムは、複数のLLMと専門ツールを活用し、ステートフルな調整問題として計画管理を行います。

RUNEプロトコル:AIセッションメモリをプラットフォーム間で保存
RUNE(Relational User Notation for Entities)は、AIとの関係性全体を1つの暗号化された.runeファイルに保存できるオープンソースプロトコルです。これにより、AIアシスタントがセッション間でユーザーを忘れてしまう「コールドスタート問題」を解決します。Claude Opus 4.6で作成され、ClaudeとGPTプラットフォームの両方で動作します。