概要
~/.claude/settings.json の編集が重複登録や誤削除、トレースバックを招きうる。
詳細
- matcher 差分で重複登録
hooks.py:88-165: 既存 SessionStart の matcher が正準文字列 (startup|clear|resume|compact) と違うと検知漏れで prime/server/distill を二重追加。
- 部分一致が脆弱
hooks.py:196-201 _is_loci: "loci" in cmd の部分一致。パスに "loci" を含むユーザーコマンドを誤マッチ/uninstall で誤削除。loci_bin prefix 一致に。
- 不正 settings.json 未処理
hooks.py:50-57,183-189: json.load が例外未処理で生トレースバック (exit 1, 非actionable)。
- .bak 単一世代
hooks.py:25-27 _write_settings: 毎回 .bak 上書き。2回目の不正実行で良い backup を潰す。
修正案
概要
~/.claude/settings.jsonの編集が重複登録や誤削除、トレースバックを招きうる。詳細
hooks.py:88-165: 既存 SessionStart の matcher が正準文字列 (startup|clear|resume|compact) と違うと検知漏れで prime/server/distill を二重追加。hooks.py:196-201_is_loci:"loci" in cmdの部分一致。パスに "loci" を含むユーザーコマンドを誤マッチ/uninstall で誤削除。loci_binprefix 一致に。hooks.py:50-57,183-189:json.loadが例外未処理で生トレースバック (exit 1, 非actionable)。hooks.py:25-27_write_settings: 毎回.bak上書き。2回目の不正実行で良い backup を潰す。修正案
loci_binprefix 一致で判定json.loadを捕捉し actionable なメッセージ + 書き込み拒否