mcpField
F
file-watcher

file-watcher

github.com/rohitg00エージェントワークフロー2.9k149 回インストール4 週間前に更新
リポジトリ

file-watcher について

ファイルシステムの変更に反応するワークフローを構築する Claude Code スキルです。フックで監視パスを登録し、ファイル変更時に処理を実行します。

主な機能

  1. 01フック経由のファイル監視登録
  2. 02ファイル変更イベントへの対応
  3. 03CLAUDE_ENV_FILE による環境変数注入
  4. 04ファイル名マッチャーの設定

活用シーン

  1. 01.env の変更への対応
  2. 02package.json の依存関係更新の追跡
  3. 03tsconfig.json の変更への対応
  4. 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 を使用します

コメント