発端:/insights が動かない
Claude Code を v2.1.33 にアップデートした直後、/insights を実行したらクラッシュしました。
❯ /insights
⎿ TypeError: undefined is not an object (evaluating 'Object.keys(b)')
/insights は Claude Code のセッション履歴を分析して、使い方の改善提案を出してくれる組み込みコマンドです。自分の使い方のクセを振り返るのに便利で、定期的に使っていました。
エラーの原因がわからなかったので、Claude Code 自身に「このエラーを解消して」と頼みました。自分がやったのは本当にこれだけです。
Claude Code が勝手に調査を進めてくれた
試行1:セッションファイルの修復
最初に Claude Code はセッションファイルの破損を疑いました。空の .jsonl ファイルや不正な JSON 行を見つけて修復してくれましたが、直りません。
試行2:facet キャッシュの調査
次に ~/.claude/usage-data/facets/ のキャッシュファイル(過去のセッション分析結果の保存先)を調べ始めました。API エラーレスポンスをそのまま保存したファイルが見つかりました。
削除しても /insights を実行するたびに再生成されます。何度消しても壊れたファイルが増えていく。ここで Claude Code が「根本的にはこれ Claude Code 側のバグです」と言い始めました。
試行3:自分自身のバイナリをデコンパイル
ここで驚いたのですが、Claude Code が自分自身のバイナリをデコンパイルし始めました。自分で自分のコードを読んで、クラッシュ箇所を特定したわけです。正直、ここまでやってくれるとは思っていませんでした。
let w = G.get(F); // facet Map からセッションの facet を取得
if (!w) return !1; // facet がなければスキップ
let b = w.goal_categories;
u = Object.keys(b)... // ← b が undefined でクラッシュ
Claude Code の説明によると、こういうことでした。
if (!w)のガードは facet オブジェクト自体が falsy かどうかしか見ていない- API エラーレスポンス
{"type":"error","error":{...}}は truthy なのでガードを通過する - しかし
goal_categoriesフィールドがないのでObject.keys(undefined)で落ちる - facet 保存関数が、API エラーレスポンスをバリデーションせずにキャッシュへ保存していたのが根本原因
さらにワークアラウンドの Python スクリプトと、修正案(if (!w?.goal_categories) return !1 で十分)まで出してくれました。
自分は横で見ていただけです。
GitHub Issue に投稿
せっかくここまで調査結果が揃ったので、バグ報告することにしました。
gh issue list で検索したら、すでに同じエラーの Issue が立っていました。
#23138 – TypeError in insights command
12 件以上コメントがついていて、他のユーザーも同じ問題にハマっていました。ただ、根本原因の特定までは至っていません。
既存の Issue にコメントする形で、Claude Code がまとめてくれた調査結果を投稿しました。
投稿した内容はこちらです。
- クラッシュ箇所のデコンパイル結果
- バグのメカニズム(エラーレスポンスがキャッシュされる流れ)
- 再現手順
- Python スクリプトによる回避策
- 修正案
他のユーザーが検証してくれた
投稿した翌日、別のユーザーが回避策を検証してくれました。
I can confirm that the workaround suggested by @atani works perfectly.
このコメントを見たとき、素直に嬉しかったです。自分が手を動かしたわけではないけれど、投稿してよかったと思いました。
Anthropic が修正してくれた
2026 年 2 月 13 日、Anthropic のエンジニアからコメントがつきました。
This is late but we fixed this in a recent release. Let me know if this isn’t fixed and thanks for the report!
Issue はクローズされ、最新版では /insights が正常に動作するようになりました。対応してくださった Anthropic のエンジニアの方に感謝です。
振り返り
今回やったことを整理すると、自分がやったのは 2 つだけです。
- Claude Code に「このエラーを解消して」と頼んだ
- Claude Code がまとめた調査結果を GitHub Issue に投稿した
根本原因の特定もワークアラウンドの作成も、すべて Claude Code がやってくれました。
OSS への貢献というとコードを書くイメージがありますが、バグの調査結果を共有するだけでも誰かの役に立ちます。そしてその調査自体、AI へ任せられる時代になっています。
「バグに遭遇したけど自分では原因がわからない」という場面でも、AI に投げてみると根本原因まで辿り着けることがあります。その結果を Issue に投稿するだけで、同じ問題に困っている人の助けになります。
検証してくれたユーザーの方、修正してくれた Anthropic の方のおかげでバグが直りました。

