file-watcher について
ファイルシステムの変更に反応するワークフローを構築する Claude Code スキルです。フックで監視パスを登録し、ファイル変更時に処理を実行します。
主な機能
- 01フック経由のファイル監視登録
- 02ファイル変更イベントへの対応
- 03CLAUDE_ENV_FILE による環境変数注入
- 04ファイル名マッチャーの設定
活用シーン
- 01.env の変更への対応
- 02package.json の依存関係更新の追跡
- 03tsconfig.json の変更への対応
- 04ビルド出力の監視
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rohitg00/ pro-workflow --skill file-watcherインストール後、Claude Code で/file-watcherを入力して読み込まれたか確認します。
詳細
ファイル監視
Claude Code の FileChanged および CwdChanged フックを使って、ファイルシステムの変更に応答するリアクティブなワークフローを作成します。
トリガー
以下の場合に使用します:
- 設定変更に応じた自動リロードを設定する
- 依存関係の更新を監視する
- ビルド出力を監視する
- リアクティブな開発ワークフローを作成する
ファイル監視の仕組み
Claude Code の SessionStart および CwdChanged フックは、ファイルウォッチャーを登録するための watchPaths の返却をサポートしています。現在の cwd-changed.js スクリプトは環境変数の注入に重点を置いています。監視対象を登録するには、フックスクリプトで次の JSON 構造を出力する必要があります:
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"watchPaths": [
"/absolute/path/to/.env",
"/absolute/path/to/package.json"
]
}
}
監視対象のファイルが変更されると、次の内容で FileChanged フックが実行されます:
{
"hook_event_name": "FileChanged",
"file_path": "/path/to/changed/file",
"event": "change"
}
環境変数の注入
CwdChanged および FileChanged フックは、CLAUDE_ENV_FILE に書き込むことで、後続の Bash コマンドに環境変数を注入できます:
echo "export PROJECT_TYPE=node" >> "$CLAUDE_ENV_FILE"
echo "export TEST_CMD='npm test'" >> "$CLAUDE_ENV_FILE"
一般的な監視パターン
変更時に .env を監視する
const envFile = path.join(projectRoot, '.env');
if (fs.existsSync(envFile)) {
output.hookSpecificOutput = {
hookEventName: 'SessionStart',
watchPaths: [envFile]
};
}
依存関係の変更時に package.json を監視する
依存関係が変更されたことを検知し、npm install の実行を促します。
設定変更時に tsconfig.json を監視する
設定が変更されたときに、TypeScript のチェックを再起動するよう促します。
セットアップ
hooks.json に追加します:
{
"FileChanged": [{
"matcher": ".env|package.json|tsconfig.json",
"hooks": [{
"type": "command",
"command": "node scripts/file-changed.js"
}]
}]
}
ルール
watchPathsには絶対パスを使用します(Claude Code で必須)- Matcher では、ファイル名をパイプ区切りで指定します
- ウォッチャーは安定性しきい値 500ms、ポーリング間隔 200ms を使用します
- ブロックを避けるため、ファイル変更ハンドラーは高速に処理します(5秒未満)
- 環境変数の注入には、直接
exportするのではなくCLAUDE_ENV_FILEを使用します
コメント
Markdown 対応