Cursor Hooks デバッグガイド

📋 概要
このガイドでは、Cursor Hooksの自動更新スクリプトが動作しない場合のトラブルシューティング手順を説明します。

問題: 自動更新スクリプトが作動しない

確認手順

1hooks.json の設定を確認

C:\Users\<ユーザー名>\.cursor\hooks.json が存在し、正しく設定されているか確認してください。

正しい設定例:

{
  "version": 1,
  "hooks": {
    "beforeSubmitPrompt": [
      {
        "command": "node",
        "args": ["<プロジェクトルート>\\scripts\\log-prompt.js"]
      }
    ],
    "stop": [
      {
        "command": "node",
        "args": ["<プロジェクトルート>\\scripts\\update-rules-from-conversation.js"]
      }
    ]
  }
}
⚠️ 重要: versionhooks の構造が必要です。version は数値(通常は 1)、hooks はオブジェクトです。

注意点:

2テストスクリプトで動作確認

まず、簡単なテストスクリプトでHooksが動作するか確認します。

hooks.json を一時的に変更:

{
  "version": 1,
  "hooks": {
    "beforeSubmitPrompt": [
      {
        "command": "node",
        "args": ["<プロジェクトルート>\\scripts\\test-hooks.js", "beforeSubmitPrompt"]
      }
    ],
    "stop": [
      {
        "command": "node",
        "args": ["<プロジェクトルート>\\scripts\\test-hooks.js", "stop"]
      }
    ]
  }
}

確認方法:

  1. Cursorを再起動
  2. 新しい会話を開始
  3. いくつかのプロンプトを送信
  4. 会話を終了
  5. C:\Users\<ユーザー名>\.cursor\hooks-debug.log を確認

ログファイルに記録が残っていれば、Hooksは動作しています。

3スクリプトのパスを確認

絶対パスを使用している場合:

相対パスを使用する場合:

4Node.js のパスを確認

node コマンドが正しく認識されているか確認:

# PowerShell
where.exe node

パスが表示されない場合は、Node.jsが正しくインストールされていないか、PATH環境変数に追加されていません。

解決方法: node の代わりに絶対パスを使用:

{
  "beforeSubmitPrompt": {
    "command": "C:\\Program Files\\nodejs\\node.exe",
    "args": ["<プロジェクトルート>\\scripts\\log-prompt.js"]
  }
}

5スクリプトの実行権限を確認

スクリプトファイルが読み取り可能か確認:

# PowerShell
Test-Path "<プロジェクトルート>\scripts\log-prompt.js"
Get-Content "<プロジェクトルート>\scripts\log-prompt.js" -Head 5

6Cursor の開発者ツールでエラーを確認

  1. Cursorで Ctrl+Shift+I を押して開発者ツールを開く
  2. Console タブを確認
  3. エラーメッセージがないか確認

7手動でスクリプトを実行して確認

# PowerShell
cd C:\HRE_M3
node scripts\log-prompt.js

標準入力が必要な場合は:

# PowerShell
echo '{"conversation_id":"test","prompt":"test"}' | node scripts\log-prompt.js

エラーが表示される場合は、そのエラーを解決してください。

8環境変数の確認

スクリプト内で環境変数を使用している場合、Cursorから実行される際に環境変数が読み込まれているか確認:

{
  "beforeSubmitPrompt": {
    "command": "node",
    "args": ["<プロジェクトルート>\\scripts\\log-prompt.js"],
    "env": {
      "NODE_ENV": "production"
    }
  }
}

9ログファイルの確認

会話ログが記録されているか確認:

# PowerShell
Get-ChildItem "$env:USERPROFILE\.cursor\conversations\" | Select-Object -First 5

ログファイルが作成されていない場合、beforeSubmitPrompt フックが実行されていません。

10Cursor のバージョンを確認

古いバージョンのCursorではHooks機能がサポートされていない可能性があります。

確認方法:

よくある問題と解決方法

問題1: パスが正しくない

症状: エラーメッセージに「ファイルが見つかりません」と表示される

解決方法:

問題2: Node.js が見つからない

症状: エラーメッセージに「'node' は、内部コマンドまたは外部コマンド...」と表示される

解決方法:

問題3: スクリプトがエラーで終了している

症状: ログファイルにエラーが記録されている

解決方法:

問題4: Hooksが実行されない

症状: ログファイルが作成されない、何も起こらない

解決方法:

  1. hooks.json の構文が正しいか確認(JSON形式)
  2. Cursorを完全に再起動
  3. Cursorの設定でHooks機能が有効になっているか確認
  4. Cursorのバージョンを確認(最新版を使用)

デバッグ用スクリプト

scripts/test-hooks.js を使用して、Hooksが正しく動作しているか確認できます。

使用方法:

  1. hooks.json を一時的に test-hooks.js を呼び出すように変更
  2. Cursorを再起動
  3. 会話を開始・終了
  4. C:\Users\<ユーザー名>\.cursor\hooks-debug.log を確認

参考資料