Skip to content

feat(claude): herdr の SessionStart フックを chezmoi 管理下に置く - #79

Merged
tunepolo merged 1 commit into
mainfrom
feat/claude-herdr-hook
Aug 20, 2026
Merged

feat(claude): herdr の SessionStart フックを chezmoi 管理下に置く#79
tunepolo merged 1 commit into
mainfrom
feat/claude-herdr-hook

Conversation

@tunepolo

@tunepolo tunepolo commented Aug 20, 2026

Copy link
Copy Markdown
Owner

概要

dot_claude/settings.json が SessionStart フックとして参照している ~/.claude/hooks/herdr-agent-state.sh が chezmoi 管理外だった。新しいマシンで chezmoi apply してもこのファイルだけ配置されないため、フックが参照先を失う。

#78dot_claude/hooks/ が管理下に入ったので、同じディレクトリに揃える。

変更点

dot_claude/hooks/executable_herdr-agent-state.sh を追加(chezmoi add で取り込み)。スクリプト自体には手を入れていない。

承知の上のトレードオフ

このファイルは herdr が生成し、ヘッダにも「reinstalling or updating the integration overwrites this file」と書かれている。chezmoi に入れると二重管理になる。

  • 現状は HERDR_INTEGRATION_VERSION=7 を固定することになる
  • herdr 側の統合を更新したあとは chezmoi re-add で取り込み直す必要がある(忘れると chezmoi apply が v7 に巻き戻す)

それでも入れる判断にした理由は、新しいマシンでフックが黙って壊れるほうが気づきにくいため。ファイルを置かずに settings.json 側を「存在すれば実行する」形にする案もあるが、settings.json#78 で触っているので分けている。別の形が良ければ差し替える。

検証

  • shellcheck ~/.claude/hooks/herdr-agent-state.sh → 終了コード 0。refactor(claude): 権限設定の棚卸しとBash実行ガードのフック切り出し #78shellcheck.sh の対象に dot_claude/hooks/*.sh を加えているので、両方マージ後も lint は通る
  • 秘密や環境固有の値が含まれていないことを確認済み(Unix ソケットのパスやペイン ID はすべて環境変数から受け取る形で、値はハードコードされていない)

#78 との関係

#78 はマージ済み。このブランチは origin/main に追従させたので、shellcheck.shdot_claude/hooks/*.sh 対象にこのファイルも含まれた状態で CI が通っている。

🤖 Generated with Claude Code

settings.json が SessionStart で参照している
~/.claude/hooks/herdr-agent-state.sh が管理外だったため、新しいマシンで
chezmoi apply してもこのファイルだけ配置されず、フックが参照先を失う。

herdr が生成するファイルなので二重管理になる点は承知の上で追加する。
現状は HERDR_INTEGRATION_VERSION=7 を固定することになるため、herdr 側の
統合を更新したあとは chezmoi re-add で取り込み直す必要がある。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@tunepolo
tunepolo force-pushed the feat/claude-herdr-hook branch from 15a0adb to 3d89131 Compare August 20, 2026 06:05
@tunepolo
tunepolo merged commit 28c1e0b into main Aug 20, 2026
7 checks passed
@tunepolo
tunepolo deleted the feat/claude-herdr-hook branch August 20, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant