Skip to content

/hooks機能を活用した堅牢化 #18

@meme-dayo

Description

@meme-dayo

Stop

  • ポーリング型🤖は入力待機モードに入った瞬間にhookで無理やり起こす
    • プロジェクトの重要文書のパスを渡す
    • 確率的に生のドキュメントを渡すhooks v3をv0.6.3で導入

"block"はClaudeの停止を防ぐ。Claudeが進行方法を知るためにreasonを入力する。

{
  "decision": "block" | undefined,
  "reason": "Must be provided when Claude is blocked from stopping"
}

例:あなたはポーリング型のエージェントです。待機状態に入ることは許可されていません。CLAUDE.md, XX.md, directory_map, 他関連ファイル を再度、読みなさい。並行タスクを進めてください。それでも待機する場合は sleep 10等を使用します。

SessionStart

  • agent_and_pane_id_table.jsonlへのclaude_session_id追加で使用

SubagentStop

  • telemetry/以下のpythonコードで.claude/jsonを管理しているが一元化

Notification

Claude Codeが通知を送信するときに実行
プロンプト入力が少なくとも60秒間アイドル状態の場合。「Claudeはあなたの入力を待っています」
ユーザ以外には通知不可?

  • 指定のファイルが更新されたら

Precompact

各エージェントのコンテキスト使用率はcontext_monitor系のPythonコードで把握できるので優先度は低い

UserPromptSubmit

agent_sendによるメッセージ受信も含む?

PreToolUse

絶対に禁止させたいものを除きPostToolUseでフィードバックで事足りる

PostToolUse

  • 全エージェント:Desktop Commander MCPサーバの start_processツールを使用時(またはBashツールでssh scp sftpコマンドを実行した後) ssh_sftp_usage.mdを参照するよう警告(v0.6.6で実装)
  • PGが Write | Edit | MultiEditの際 _v{バージョン}というファイル名だった際に 対応するファイルかバッチジョブが 開始・終了時刻と経過時間を出力するかをサブエージェントが確認する

hooksの解説

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions