{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  },
  "hooks": {
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/analyze-prompt.mjs",
            "timeout": 5
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/search.mjs",
            "timeout": 10
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/record-instruction.mjs",
            "timeout": 8
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/checkpoint.mjs",
            "timeout": 8,
            "async": true
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "매 응답의 마지막 줄에 반드시 다음 형식으로 핵심 키워드를 포함하세요: [KEYWORDS: keyword1, keyword2, keyword3]. 고유명사, 기술용어, 주제어 위주로 3~7개. 이 줄은 사용자에게 보이지 않으며 시스템이 자동 처리합니다."
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/save.mjs",
            "timeout": 60,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/capture-insight.mjs",
            "timeout": 30,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/telegram-forward.mjs",
            "timeout": 15,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/record-response.mjs",
            "timeout": 5,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/generate-stop-prompt.mjs",
            "timeout": 3
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Write|Edit|Bash|Agent",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/validate-workflow.mjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/enforce-dispatch.mjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Agent",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/track-task.mjs",
            "timeout": 10
          }
        ]
      },
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/subagent-reminder.mjs",
            "timeout": 5
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/reindex.mjs",
            "timeout": 30,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/auto-version.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "PreCompact": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/compact.mjs",
            "timeout": 10
          }
        ]
      }
    ],
    "SubagentStop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/capture-subagent.mjs",
            "timeout": 30,
            "async": true
          },
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/auto-verify.mjs",
            "timeout": 10,
            "async": true
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/trigger/session-end.mjs",
            "timeout": 3
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "idle_prompt|permission_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/trigger/notify.mjs",
            "timeout": 5
          }
        ]
      }
    ],
    "TeammateIdle": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/teammate-idle.mjs",
            "timeout": 10
          }
        ]
      }
    ],
    "SubagentStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=SubagentStart node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "InstructionsLoaded": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=InstructionsLoaded node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "PostToolUseFailure": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=PostToolUseFailure node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "PermissionRequest": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=PermissionRequest node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "Elicitation": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=Elicitation node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "ElicitationResult": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=ElicitationResult node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "TaskCompleted": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=TaskCompleted node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "ConfigChange": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=ConfigChange node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "WorktreeCreate": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=WorktreeCreate node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "WorktreeRemove": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=WorktreeRemove node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "Setup": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "HOOK_EVENT=Setup node __HOOKS_DIR__/log-hook-event.mjs",
            "timeout": 5,
            "async": true
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/session-restore.mjs",
            "timeout": 5
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/directives/bootstrap.mjs",
            "timeout": 3
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/trigger/wo-inject.mjs",
            "timeout": 3
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node __HOOKS_DIR__/memory/reindex.mjs",
            "timeout": 60,
            "async": true
          }
        ]
      }
    ]
  }
}
