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

AnthropicとOpenAIによる高速LLM推論の比較概要
AnthropicとOpenAIは、LLM推論を高速化するための異なる「高速モード」機能をリリースしました。OpenAIはCerebrasチップを活用してさらなる高速化を実現しています

Git Worktreesを使って複数のClaude Codeセッションを並行実行する
git worktreeを使って、スタッシュやコンテキストスイッチなしで複数のClaude Codeセッションを別ブランチで並行実行する方法を開発者が共有。差分をレビューしてマージし、次へ進む。

OpenClaw Codex-GPT5.4 タスク検証ループの問題
開発者がOpenClawを通じてCodex-GPT5.4を使用した自律的なプロジェクト作業中、タスク検証ループに陥り、タスクを特定して確認するだけで実行しない状態が繰り返される問題を報告しています。この問題に対処するため、TASKS.md、ハートビートルール、ペルソナファイルなどのワークスペース制御を実装しました。

RepoLens: インタラクティブなローカルコードベースパッカーとトークン最適化ツール(TUI/CLI) Go版
RepoLensは、ゼロ依存のGoツールで、TUIファイルエクスプローラ、ライブトークンカウンター、コメント除去、シークレットスキャナー、トークンベースのファイル分割を備え、リポジトリをLLMコンテキストにパッケージ化します。