mcpField
H
Hooks Automation

Hooks Automation

github.com/ruvnetエージェントワークフロー80.0k1.1k 回インストール今日更新
リポジトリ

Hooks Automation について

Hooks Automationは、Claude Codeの操作をフックで検証・処理する自動化スキルです。セッション状態の管理、スウォームエージェントの連携、実行パターンからの学習も行います。

主な機能

  1. 01操作前の検証とエージェント割り当て
  2. 02編集後のフォーマットと検証
  3. 03セッション状態の復元
  4. 04スウォーム間のメモリー同期
  5. 05Gitコミットの品質チェック
  6. 06パターンの継続学習

活用シーン

  1. 01編集前の構文と競合の確認
  2. 02複雑なタスクへのエージェント割り当て
  3. 03開発セッションの保存と復元
  4. 04コミット時の品質検証

MCP 対応

MCPツールを使い、スウォームエージェント、タスク、メモリー、セッション状態を連携します。例では、エージェントの起動とメモリーの永続化にclaude-flow MCPツールを使用します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill hooks-automation

インストール後、Claude Code で/hooks-automationを入力して読み込まれたか確認します。

詳細

フックの自動化

MCP ツールとニューラルパターントレーニングに統合されたフックを通じて、Claude Code の操作を調整、検証し、そこから学習するインテリジェントな自動化システムです。

このスキルの機能

このスキルは、開発操作を自動管理し、スウォームエージェントを調整し、セッションの状態を維持し、コーディングパターンから継続的に学習する包括的なフックシステムを提供します。エージェントの自動割り当て、コードのフォーマット、パフォーマンスの追跡、セッションをまたいだメモリの永続化を実現します。

主な機能:

  • 操作前フック:操作の前に検証と準備を行い、エージェントを自動割り当てします
  • 操作後フック:操作の後にフォーマット、分析、パターンのトレーニングを行います
  • セッション管理:状態を永続化し、コンテキストを復元して、要約を生成します
  • メモリ調整:スウォームエージェント間でナレッジを同期します
  • Git 連携:品質検証を行う自動コミットフック
  • ニューラルトレーニング:成功したパターンから継続的に学習します
  • MCP 連携:スウォームツールとシームレスに連携します

前提条件

必須:

  • Claude Flow CLI がインストールされていること(npm install -g claude-flow@alpha)
  • フックが有効になっている Claude Code
  • フック設定を含む .claude$settings.json

任意:

  • MCP サーバーが設定されていること(claude-flow、ruv-swarm、flow-nexus)
  • バージョン管理用の Git リポジトリ
  • 品質検証用のテストフレームワーク

クイックスタート

フックシステムを初期化する
# Initialize with default hooks configuration
npx claude-flow init --hooks

これにより、以下が作成されます。

  • フックが事前設定された .claude$settings.json
  • .claude$commands$hooks/ 内のフックコマンドのドキュメント
  • 一般的な操作用のデフォルトフックハンドラー
基本的なフックの使い方
# Pre-task hook (auto-spawns agents)
npx claude-flow hook pre-task --description "Implement authentication"

# Post-edit hook (auto-formats and stores in memory)
npx claude-flow hook post-edit --file "src$auth.js" --memory-key "auth$login"

# Session end hook (saves state and metrics)
npx claude-flow hook session-end --session-id "dev-session" --export-metrics

完全ガイド

利用可能なフック
操作前フック

操作の前に実行され、準備と検証を行うフックです。

pre-edit - ファイル変更の前に検証し、エージェントを割り当てます

npx claude-flow hook pre-edit [options]

Options:
  --file, -f <path>         File path to be edited
  --auto-assign-agent       Automatically assign best agent (default: true)
  --validate-syntax         Pre-validate syntax before edit
  --check-conflicts         Check for merge conflicts
  --backup-file             Create backup before editing

Examples:
  npx claude-flow hook pre-edit --file "src$auth$login.js"
  npx claude-flow hook pre-edit -f "config$db.js" --validate-syntax
  npx claude-flow hook pre-edit -f "production.env" --backup-file --check-conflicts

機能:

  • ファイルの種類に基づいてエージェントを自動割り当て
  • コードの破損を防ぐ構文検証
  • 同時編集の競合検出
  • 安全のためのファイル自動バックアップ

pre-bash - コマンドの安全性とリソース要件を確認します

npx claude-flow hook pre-bash --command <cmd>

Options:
  --command, -c <cmd>       Command to validate
  --check-safety            Verify command safety (default: true)
  --estimate-resources      Estimate resource usage
  --require-confirmation    Request user confirmation for risky commands

Examples:
  npx claude-flow hook pre-bash -c "rm -rf /tmp/cache"
  npx claude-flow hook pre-bash --command "docker build ." --estimate-resources

機能:

  • コマンドの安全性検証
  • リソース要件の見積もり
  • 破壊的なコマンドの確認
  • 権限のチェック

pre-task - エージェントを自動起動し、複雑なタスクに備えます

npx claude-flow hook pre-task [options]

Options:
  --description, -d <text>  Task description for context
  --auto-spawn-agents       Automatically spawn required agents (default: true)
  --load-memory             Load relevant memory from previous sessions
  --optimize-topology       Select optimal swarm topology
  --estimate-complexity     Analyze task complexity

Examples:
  npx claude-flow hook pre-task --description "Implement user authentication"
  npx claude-flow hook pre-task -d "Continue API dev" --load-memory
  npx claude-flow hook pre-task -d "Refactor codebase" --optimize-topology

機能:

  • タスク分析に基づくエージェントの自動起動
  • コンテキストの継続性を保つためのメモリ読み込み
  • タスク構造に合わせたトポロジーの最適化
  • 複雑さの見積もりと所要時間の予測

pre-search - 検索操作の準備と最適化を行います

npx claude-flow hook pre-search --query <query>

Options:
  --query, -q <text>        Search query
  --check-cache             Check cache first (default: true)
  --optimize-query          Optimize search pattern

Examples:
  npx claude-flow hook pre-search -q "authentication middleware"

機能:

  • 結果を早く得るためのキャッシュ確認
  • クエリの最適化
  • 検索パターンの改善
操作後フック

操作の後に実行され、処理と学習を行うフックです。

post-edit - 自動フォーマット、検証、メモリの更新を行います

npx claude-flow hook post-edit [options]

Options:
  --file, -f <path>         File path that was edited
  --auto-format             Automatically format code (default: true)
  --memory-key, -m <key>    Store edit context in memory
  --train-patterns          Train neural patterns from edit
  --validate-output         Validate edited file

Examples:
  npx claude-flow hook post-edit --file "src$components/Button.jsx"
  npx claude-flow hook post-edit -f "api$auth.js" --memory-key "auth$login"
  npx claude-flow hook post-edit -f "utils$helpers.ts" --train-patterns

機能:

  • 言語別の自動フォーマット(Prettier、Black、gofmt)
  • 編集コンテキストと判断内容のメモリへの保存
  • 継続的な改善に向けたニューラルパターンのトレーニング
  • リントによる出力の検証

post-bash - 実行を記録し、メトリクスを更新します

npx claude-flow hook post-bash --command <cmd>

Options:
  --command, -c <cmd>       Command that was executed
  --log-output              Log command output (default: true)
  --update-metrics          Update performance metrics
  --store-result            Store result in memory

Examples:
  npx claude-flow hook post-bash -c "npm test" --update-metrics

機能:

  • コマンド実行の記録
  • パフォーマンスメトリクスの追跡
  • 分析用の結果保存
  • エラーパターンの検出

post-task - パフォーマンスを分析し、判断内容を保存します

npx claude-flow hook post-task [options]

Options:
  --task-id, -t <id>        Task identifier for tracking
  --analyze-performance     Generate performance metrics (default: true)
  --store-decisions         Save task decisions to memory
  --export-learnings        Export neural pattern learnings
  --generate-report         Create task completion report

Examples:
  npx claude-flow hook post-task --task-id "auth-implementation"
  npx claude-flow hook post-task -t "api-refactor" --analyze-performance
  npx claude-flow hook post-task -t "bug-fix-123" --store-decisions

機能:

  • 実行時間とトークン使用量の測定
  • 判断内容と実装方法の記録
  • ニューラル学習パターンのエクスポート
  • 完了レポートの生成

post-search - 結果をキャッシュし、パターンを改善します

npx claude-flow hook post-search --query <query> --results <path>

Options:
  --query, -q <text>        Original search query
  --results, -r <path>      Results file path
  --cache-results           Cache for future use (default: true)
  --train-patterns          Improve search patterns

Examples:
  npx claude-flow hook post-search -q "auth" -r "results.json" --train-patterns

機能:

  • 以降の検索を高速化するための結果キャッシュ
  • 検索パターンの改善
  • 関連性のスコアリング
MCP 連携フック

MCP スウォームツールと連携するフックです。

mcp-initialized - スウォーム設定を永続化します

npx claude-flow hook mcp-initialized --swarm-id <id>

Features:
- Save swarm topology and configuration
- Store agent roster in memory
- Initialize coordination namespace

agent-spawned - エージェントの一覧とメモリを更新します

npx claude-flow hook agent-spawned --agent-id <id> --type <type>

Features:
- Register agent in coordination memory
- Update agent roster
- Initialize agent-specific memory namespace

task-orchestrated - タスクの進捗を監視します

npx claude-flow hook task-orchestrated --task-id <id>

Features:
- Track task progress through memory
- Monitor agent assignments
- Update coordination state

neural-trained - パターンの改善を保存します

npx claude-flow hook neural-trained --pattern <name>

Features:
- Export trained neural patterns
- Update coordination models
- Share learning across agents
メモリー調整フック

memory-write - エージェントが調整メモリーに書き込んだときにトリガーされます

Features:
- Validate memory key format
- Update cross-agent indexes
- Trigger dependent hooks
- Notify subscribed agents

memory-read - エージェントが調整メモリーを読み取ったときにトリガーされます

Features:
- Log access patterns
- Update popularity metrics
- Preload related data
- Track usage statistics

memory-sync - スウォームエージェント間でメモリーを同期します

npx claude-flow hook memory-sync --namespace <ns>

Features:
- Sync memory state across agents
- Resolve conflicts
- Propagate updates
- Maintain consistency
セッションフック

session-start - 新しいセッションを初期化します

npx claude-flow hook session-start --session-id <id>

Options:
  --session-id, -s <id>     Session identifier
  --load-context            Load context from previous session
  --init-agents             Initialize required agents

Features:
- Create session directory
- Initialize metrics tracking
- Load previous context
- Set up coordination namespace

session-restore - 前回のセッション状態を読み込みます

npx claude-flow hook session-restore --session-id <id>

Options:
  --session-id, -s <id>     Session to restore
  --restore-memory          Restore memory state (default: true)
  --restore-agents          Restore agent configurations

Examples:
  npx claude-flow hook session-restore --session-id "swarm-20241019"
  npx claude-flow hook session-restore -s "feature-auth" --restore-memory

機能:

  • 前回のセッションコンテキストを読み込みます
  • メモリー状態と判断を復元します
  • エージェントを前回の状態に再設定します
  • 進行中のタスクを再開します

session-end - セッション状態をクリーンアップして保存します

npx claude-flow hook session-end [options]

Options:
  --session-id, -s <id>     Session identifier to end
  --save-state              Save current session state (default: true)
  --export-metrics          Export session metrics
  --generate-summary        Create session summary
  --cleanup-temp            Remove temporary files

Examples:
  npx claude-flow hook session-end --session-id "dev-session-2024"
  npx claude-flow hook session-end -s "feature-auth" --export-metrics --generate-summary
  npx claude-flow hook session-end -s "quick-fix" --cleanup-temp

機能:

  • 現在のコンテキストと進捗を保存します
  • セッションのメトリクス(継続時間、コマンド、トークン、ファイル)をエクスポートします
  • 判断と次のステップを含む作業概要を生成します
  • 一時ファイルをクリーンアップし、ストレージを最適化します

notify - スウォームの状態に関するカスタム通知

npx claude-flow hook notify --message <msg>

Options:
  --message, -m <text>      Notification message
  --level <level>           Notification level (info|warning|error)
  --swarm-status            Include swarm status (default: true)
  --broadcast               Send to all agents

Examples:
  npx claude-flow hook notify -m "Task completed" --level info
  npx claude-flow hook notify -m "Critical error" --level error --broadcast

機能:

  • 調整システムに通知を送信します
  • スウォームの状態とメトリクスを含めます
  • すべてのエージェントにブロードキャストします
  • 重要なイベントを記録します
設定
基本設定

フックを設定するには、.claude$settings.jsonを編集します:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "^(Write|Edit|MultiEdit)$",
        "hooks": [{
          "type": "command",
          "command": "npx claude-flow hook pre-edit --file '${tool.params.file_path}' --memory-key 'swarm$editor$current'"
        }]
      },
      {
        "matcher": "^Bash$",
        "hooks": [{
          "type": "command",
          "command": "npx claude-flow hook pre-bash --command '${tool.params.command}'"
        }]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "^(Write|Edit|MultiEdit)$",
        "hooks": [{
          "type": "command",
          "command": "npx claude-flow hook post-edit --file '${tool.params.file_path}' --memory-key 'swarm$editor$complete' --auto-format --train-patterns"
        }]
      },
      {
        "matcher": "^Bash$",
        "hooks": [{
          "type": "command",
          "command": "npx claude-flow hook post-bash --command '${tool.params.command}' --update-metrics"
        }]
      }
    ]
  }
}
詳細設定

すべての機能を含む完全なフック設定:

{
  "hooks": {
    "enabled": true,
    "debug": false,
    "timeout": 5000,

    "PreToolUse": [
      {
        "matcher": "^(Write|Edit|MultiEdit)$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook pre-edit --file '${tool.params.file_path}' --auto-assign-agent --validate-syntax",
            "timeout": 3000,
            "continueOnError": true
          }
        ]
      },
      {
        "matcher": "^Task$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook pre-task --description '${tool.params.task}' --auto-spawn-agents --load-memory",
            "async": true
          }
        ]
      },
      {
        "matcher": "^Grep$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook pre-search --query '${tool.params.pattern}' --check-cache"
          }
        ]
      }
    ],

    "PostToolUse": [
      {
        "matcher": "^(Write|Edit|MultiEdit)$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook post-edit --file '${tool.params.file_path}' --memory-key 'edits/${tool.params.file_path}' --auto-format --train-patterns",
            "async": true
          }
        ]
      },
      {
        "matcher": "^Task$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook post-task --task-id '${result.task_id}' --analyze-performance --store-decisions --export-learnings",
            "async": true
          }
        ]
      },
      {
        "matcher": "^Grep$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook post-search --query '${tool.params.pattern}' --cache-results --train-patterns"
          }
        ]
      }
    ],

    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook session-start --session-id '${session.id}' --load-context"
          }
        ]
      }
    ],

    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook session-end --session-id '${session.id}' --export-metrics --generate-summary --cleanup-temp"
          }
        ]
      }
    ]
  }
}
保護対象ファイルのパターン

機密ファイルの保護を追加します:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "^(Write|Edit|MultiEdit)$",
        "hooks": [
          {
            "type": "command",
            "command": "npx claude-flow hook check-protected --file '${tool.params.file_path}'"
          }
        ]
      }
    ]
  }
}
自動テスト

ファイルの変更後にテストを実行します:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "^Write$",
        "hooks": [
          {
            "type": "command",
            "command": "test -f '${tool.params.file_path%.js}.test.js' && npm test '${tool.params.file_path%.js}.test.js'",
            "continueOnError": true
          }
        ]
      }
    ]
  }
}
MCP ツールの統合

フックは、調整のために MCP ツールと自動的に統合されます:

エージェントの起動を伴うタスク前フック
// Hook command
npx claude-flow hook pre-task --description "Build REST API"

// Internally calls MCP tools:
mcp__claude-flow__agent_spawn {
  type: "backend-dev",
  capabilities: ["api", "database", "testing"]
}

mcp__claude-flow__memory_usage {
  action: "store",
  key: "swarm$task$api-build$context",
  namespace: "coordination",
  value: JSON.stringify({
    description: "Build REST API",
    agents: ["backend-dev"],
    started: Date.now()
  })
}
メモリー保存を伴う編集後フック
// Hook command
npx claude-flow hook post-edit --file "api$auth.js"

// Internally calls MCP tools:
mcp__claude-flow__memory_usage {
  action: "store",
  key: "swarm$edits$api$auth.js",
  namespace: "coordination",
  value: JSON.stringify({
    file: "api$auth.js",
    timestamp: Date.now(),
    changes: { added: 45, removed: 12 },
    formatted: true,
    linted: true
  })
}

mcp__claude-flow__neural_train {
  pattern_type: "coordination",
  training_data: { /* edit patterns */ }
}
状態の保存を伴うセッション終了フック
// Hook command
npx claude-flow hook session-end --session-id "dev-2024"

// Internally calls MCP tools:
mcp__claude-flow__memory_persist {
  sessionId: "dev-2024"
}

mcp__claude-flow__swarm_status {
  swarmId: "current"
}

// Generates metrics and summary
メモリー調整プロトコル

すべてのフックは、標準化されたメモリー調整パターンに従います:

3 フェーズのメモリープロトコル

フェーズ 1:STATUS - フックの開始

mcp__claude-flow__memory_usage {
  action: "store",
  key: "swarm$hooks$pre-edit$status",
  namespace: "coordination",
  value: JSON.stringify({
    status: "running",
    hook: "pre-edit",
    file: "src$auth.js",
    timestamp: Date.now()
  })
}

フェーズ 2:PROGRESS - フックの処理中

mcp__claude-flow__memory_usage {
  action: "store",
  key: "swarm$hooks$pre-edit$progress",
  namespace: "coordination",
  value: JSON.stringify({
    progress: 50,
    action: "validating syntax",
    file: "src$auth.js"
  })
}

フェーズ 3:COMPLETE - フックの終了

mcp__claude-flow__memory_usage {
  action: "store",
  key: "swarm$hooks$pre-edit$complete",
  namespace: "coordination",
  value: JSON.stringify({
    status: "complete",
    result: "success",
    agent_assigned: "backend-dev",
    syntax_valid: true,
    backup_created: true
  })
}
フックの応答形式

フックは、処理の流れを制御するために JSON 応答を返します:

続行応答
{
  "continue": true,
  "reason": "All validations passed",
  "metadata": {
    "agent_assigned": "backend-dev",
    "syntax_valid": true,
    "file": "src$auth.js"
  }
}
ブロック応答
{
  "continue": false,
  "reason": "Protected file - manual review required",
  "metadata": {
    "file": ".env.production",
    "protection_level": "high",
    "requires": "manual_approval"
  }
}
警告応答
{
  "continue": true,
  "reason": "Syntax valid but complexity high",
  "warnings": [
    "Cyclomatic complexity: 15 (threshold: 10)",
    "Consider refactoring for better maintainability"
  ],
  "metadata": {
    "complexity": 15,
    "threshold": 10
  }
}
Git の統合

フックは、品質管理のために Git 操作と統合できます:

コミット前フック
# Add to .git$hooks$pre-commit or use husky

#!$bin$bash
# Run quality checks before commit

# Get staged files
FILES=$(git diff --cached --name-only --diff-filter=ACM)

for FILE in $FILES; do
  # Run pre-edit hook for validation
  npx claude-flow hook pre-edit --file "$FILE" --validate-syntax

  if [ $? -ne 0 ]; then
    echo "Validation failed for $FILE"
    exit 1
  fi

  # Run post-edit hook for formatting
  npx claude-flow hook post-edit --file "$FILE" --auto-format
done

# Run tests
npm test

exit $?
コミット後フック
# Add to .git$hooks$post-commit

#!$bin$bash
# Track commit metrics

COMMIT_HASH=$(git rev-parse HEAD)
COMMIT_MSG=$(git log -1 --pretty=%B)

npx claude-flow hook notify \
  --message "Commit completed: $COMMIT_MSG" \
  --level info \
  --swarm-status
プッシュ前フック
# Add to .git$hooks$pre-push

#!$bin$bash
# Quality gate before push

# Run full test suite
npm run test:all

# Run quality checks
npx claude-flow hook session-end \
  --generate-report \
  --export-metrics

# Verify quality thresholds
TRUTH_SCORE=$(npx claude-flow metrics score --format json | jq -r '.truth_score')

if (( $(echo "$TRUTH_SCORE < 0.95" | bc -l) )); then
  echo "Truth score below threshold: $TRUTH_SCORE < 0.95"
  exit 1
fi

exit 0
エージェント調整ワークフロー

エージェントが調整にフックを使用する方法:

エージェントワークフローの例
# Agent 1: Backend Developer
# STEP 1: Pre-task preparation
npx claude-flow hook pre-task \
  --description "Implement user authentication API" \
  --auto-spawn-agents \
  --load-memory

# STEP 2: Work begins - pre-edit validation
npx claude-flow hook pre-edit \
  --file "api$auth.js" \
  --auto-assign-agent \
  --validate-syntax

# STEP 3: Edit file (via Claude Code Edit tool)
# ... code changes ...

# STEP 4: Post-edit processing
npx claude-flow hook post-edit \
  --file "api$auth.js" \
  --memory-key "swarm$backend$auth-api" \
  --auto-format \
  --train-patterns

# STEP 5: Notify coordination system
npx claude-flow hook notify \
  --message "Auth API implementation complete" \
  --swarm-status \
  --broadcast

# STEP 6: Task completion
npx claude-flow hook post-task \
  --task-id "auth-api" \
  --analyze-performance \
  --store-decisions \
  --export-learnings
# Agent 2: Test Engineer (receives notification)
# STEP 1: Check memory for API details
npx claude-flow hook session-restore \
  --session-id "swarm-current" \
  --restore-memory

# Memory contains: swarm$backend$auth-api with implementation details

# STEP 2: Generate tests
npx claude-flow hook pre-task \
  --description "Write tests for auth API" \
  --load-memory

# STEP 3: Create test file
npx claude-flow hook post-edit \
  --file "api$auth.test.js" \
  --memory-key "swarm$testing$auth-api-tests" \
  --train-patterns

# STEP 4: Share test results
npx claude-flow hook notify \
  --message "Auth API tests complete - 100% coverage" \
  --broadcast
カスタムフックの作成

特定のワークフロー向けにカスタムフックを作成します:

カスタムフックのテンプレート
// .claude$hooks$custom-quality-check.js

module.exports = {
  name: 'custom-quality-check',
  type: 'pre',
  matcher: /\.(ts|js)$/,

  async execute(context) {
    const { file, content } = context;

    // Custom validation logic
    const complexity = await analyzeComplexity(content);
    const securityIssues = await scanSecurity(content);

    // Store in memory
    await storeInMemory({
      key: `quality/${file}`,
      value: { complexity, securityIssues }
    });

    // Return decision
    if (complexity > 15 || securityIssues.length > 0) {
      return {
        continue: false,
        reason: 'Quality checks failed',
        warnings: [
          `Complexity: ${complexity} (max: 15)`,
          `Security issues: ${securityIssues.length}`
        ]
      };
    }

    return {
      continue: true,
      reason: 'Quality checks passed',
      metadata: { complexity, securityIssues: 0 }
    };
  }
};
カスタムフックの登録
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "^(Write|Edit)$",
        "hooks": [
          {
            "type": "script",
            "script": ".claude$hooks$custom-quality-check.js"
          }
        ]
      }
    ]
  }
}
実例
例 1:フルスタック開発ワークフロー
# Session start - initialize coordination
npx claude-flow hook session-start --session-id "fullstack-feature"

# Pre-task planning
npx claude-flow hook pre-task \
  --description "Build user profile feature - frontend + backend + tests" \
  --auto-spawn-agents \
  --optimize-topology

# Backend work
npx claude-flow hook pre-edit --file "api$profile.js"
# ... implement backend ...
npx claude-flow hook post-edit \
  --file "api$profile.js" \
  --memory-key "profile$backend" \
  --train-patterns

# Frontend work (reads backend details from memory)
npx claude-flow hook pre-edit --file "components/Profile.jsx"
# ... implement frontend ...
npx claude-flow hook post-edit \
  --file "components/Profile.jsx" \
  --memory-key "profile$frontend" \
  --train-patterns

# Testing (reads both backend and frontend from memory)
npx claude-flow hook pre-task \
  --description "Test profile feature" \
  --load-memory

# Session end - export everything
npx claude-flow hook session-end \
  --session-id "fullstack-feature" \
  --export-metrics \
  --generate-summary
例 2:フックを使ったデバッグ
# Start debugging session
npx claude-flow hook session-start --session-id "debug-memory-leak"

# Pre-task: analyze issue
npx claude-flow hook pre-task \
  --description "Debug memory leak in event handlers" \
  --load-memory \
  --estimate-complexity

# Search for event emitters
npx claude-flow hook pre-search --query "EventEmitter"
# ... search executes ...
npx claude-flow hook post-search \
  --query "EventEmitter" \
  --cache-results

# Fix the issue
npx claude-flow hook pre-edit \
  --file "services$events.js" \
  --backup-file
# ... fix code ...
npx claude-flow hook post-edit \
  --file "services$events.js" \
  --memory-key "debug$memory-leak-fix" \
  --validate-output

# Verify fix
npx claude-flow hook post-task \
  --task-id "memory-leak-fix" \
  --analyze-performance \
  --generate-report

# End session
npx claude-flow hook session-end \
  --session-id "debug-memory-leak" \
  --export-metrics
例 3:マルチエージェントのリファクタリング
# Initialize swarm for refactoring
npx claude-flow hook pre-task \
  --description "Refactor legacy codebase to modern patterns" \
  --auto-spawn-agents \
  --optimize-topology

# Agent 1: Code Analyzer
npx claude-flow hook pre-task --description "Analyze code complexity"
# ... analysis ...
npx claude-flow hook post-task \
  --task-id "analysis" \
  --store-decisions

# Agent 2: Refactoring (reads analysis from memory)
npx claude-flow hook session-restore \
  --session-id "swarm-refactor" \
  --restore-memory

for file in src/**/*.js; do
  npx claude-flow hook pre-edit --file "$file" --backup-file
  # ... refactor ...
  npx claude-flow hook post-edit \
    --file "$file" \
    --memory-key "refactor/$file" \
    --auto-format \
    --train-patterns
done

# Agent 3: Testing (reads refactored code from memory)
npx claude-flow hook pre-task \
  --description "Generate tests for refactored code" \
  --load-memory

# Broadcast completion
npx claude-flow hook notify \
  --message "Refactoring complete - all tests passing" \
  --broadcast
パフォーマンスのヒント
  1. フックを軽量に保つ - 実行時間の目標を 100ms 未満にします
  2. 重い処理には非同期を使用する - メインの処理の流れをブロックしないようにします
  3. 積極的にキャッシュする - 頻繁にアクセスされるデータを保存します
  4. 関連する処理をまとめる - 複数のアクションをまとめます
  5. メモリーを適切に使用する - 適切な TTL を設定します
  6. フックのパフォーマンスを監視する - 実行時間を追跡します
  7. 可能な場合は並列化する - 独立したフックを同時に実行します
フックのデバッグ

トラブルシューティングのためにデバッグモードを有効にします:

# Enable debug output
export CLAUDE_FLOW_DEBUG=true

# Test specific hook with verbose output
npx claude-flow hook pre-edit --file "test.js" --debug

# Check hook execution logs
cat .claude-flow$logs$hooks-$(date +%Y-%m-%d).log

# Validate configuration
npx claude-flow hook validate-config
メリット
  • エージェントの自動割り当て:ファイルの種類ごとに最適なエージェントを選択します
  • 一貫したコードフォーマット:言語固有のフォーマッターを使用します
  • 継続的な学習:ニューラルパターンが時間とともに改善されます
  • セッションをまたぐメモリー:セッション間でコンテキストが保持されます
  • パフォーマンスの追跡:包括的なメトリクスと分析を提供します
  • 自動調整:エージェントはメモリーを介して同期します
  • スマートなエージェントの起動:タスクに基づいてエージェントを選択します
  • 品質ゲート:コミット前の検証と確認を行います
  • エラーの防止:編集前に構文を検証します
  • ナレッジの共有:判断を保存して共有します
  • 手作業の削減:反復作業を自動化します
  • より良いコラボレーション:複数のエージェント間で円滑に調整します
ベストプラクティス
  1. フックを早期に設定する - プロジェクトの初期化時にセットアップします
  2. メモリーキーを戦略的に使用する - 明確な名前空間で整理します
  3. 自動フォーマットを有効にする - コードの一貫性を保ちます
  4. パターンを継続的に学習する - 成功した操作から学習します
  5. パフォーマンスを監視する - フックの実行時間を追跡します
  6. 設定を検証する - 本番環境で使用する前にフックをテストします
  7. カスタムフックを文書化する - フックのドキュメントを維持します
  8. 適切なタイムアウトを設定する - 操作が停止したままになるのを防ぎます
  9. エラーを適切に処理する - 適切な場合は continueOnError を使用します
  10. メトリクスを定期的に確認する - 使用パターンに基づいて最適化します
トラブルシューティング
フックが実行されない
  • .claude$settings.json の構文を確認します
  • フックのマッチャーパターンを確認します
  • デバッグモードを有効にします
  • 権限設定を確認します
  • claude-flow CLI が PATH に含まれていることを確認します
フックのタイムアウト
  • 設定のタイムアウト値を増やします
  • 負荷の高い操作ではフックを非同期にします
  • フックのロジックを最適化します
  • MCP ツールのネットワーク接続を確認します
メモリーの問題
  • メモリーキーに適切な TTL を設定します
  • 古いメモリーエントリーを削除します
  • メモリーの名前空間を効果的に使用します
  • メモリーの使用量を監視します
パフォーマンスの問題
  • フックの実行時間をプロファイリングします
  • 繰り返しの操作にはキャッシュを使用します
  • 可能な場合は操作をバッチ処理します
  • フックの複雑さを軽減します
関連コマンド
  • npx claude-flow init --hooks - フックシステムを初期化します
  • npx claude-flow hook --list - 利用可能なフックを一覧表示します
  • npx claude-flow hook --test <hook> - 特定のフックをテストします
  • npx claude-flow memory usage - メモリーを管理します
  • npx claude-flow agent spawn - エージェントを起動します
  • npx claude-flow swarm init - スウォームを初期化します
他のスキルとの連携

このスキルは次のものとシームレスに連携します:

  • SPARC Methodology - フックによって SPARC ワークフローが強化されます
  • Pair Programming - ペアプログラミングセッションで品質を自動化します
  • Verification Quality - フックで真偽スコアを検証します
  • GitHub Workflows - コミット/PR 向けの Git 統合を提供します
  • Performance Analysis - フックでメトリクスを収集します
  • Swarm Advanced - フックを介して複数エージェントを調整します

コメント