🎯

【完全版】Claude Codeの隠れた神機能!Hooks・カスタムコマンド・音声連携で開発効率を10倍にする方法

に公開

もう手動作業なんてしてられない!

「タスク終わったら音を鳴らして教えて」
「PR作成の手順、毎回同じなのに手動でやってる」
「音声で指示出せたら楽なのに...」

そんな悩み、全部解決できます

tonkotsuboyさん(@tonkotsuboy_com)がFindy Claude Code Meetupで発表した内容を元に、Claude Codeの真の力を解き放つ方法をお伝えします。

🎪 今回紹介する5つの神機能

  1. Hooks - タスク前後の自動処理
  2. カスタムスラッシュコマンド - 定型処理の高速化
  3. MCP連携 - 外部システムとの統合
  4. Aqua Voice - 音声でAIに指示
  5. Kiro × Claude Code - 設計と実装の最強タッグ

それでは、一つずつ詳しく見ていきましょう!

🪝 Hooks:タスクの前後で魔法を起こす

Hooksって何?

Claude Codeの様々なイベント(ツール使用前後、ユーザープロンプト送信時など)で、任意のシェルコマンドを自動実行できる機能です。

実例1:タスク完了を音で通知

tonkotsuboyさんの設定がこちら:

// ~/.claude/settings.json
{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /Users/takeshi.kano/.claude/buhi.m4a"
          }
        ]
      }
    ]
  }
}

なんと、タスク完了時に「ブヒー」という音が鳴るんです!

実例2:自動コードフォーマット

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "npm run format && npm run lint:fix"
          }
        ]
      }
    ]
  }
}

タスク終了時に自動でフォーマットとLint修正が走ります。もう手動でやる必要なし!

実例3:作業ログの自動記録

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"[$(date)] プロンプト送信\" >> ~/.claude/work.log"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"[$(date)] タスク完了\" >> ~/.claude/work.log"
          }
        ]
      }
    ]
  }
}

応用例:チーム通知

{
  "hooks": {
    "Stop": [
      {
        "matcher": "PR作成",
        "hooks": [
          {
            "type": "command",
            "command": "curl -X POST https://slack.com/api/chat.postMessage -H 'Authorization: Bearer $SLACK_TOKEN' -d 'channel=#dev-team&text=PR作成完了!'"
          }
        ]
      }
    ]
  }
}

🚀 カスタムスラッシュコマンド:定型処理を瞬殺

カスタムスラッシュコマンドの威力

毎回同じプロンプトを書いてませんか?3回以上使うならコマンド化しましょう!

実例1:PR作成の完全自動化

tonkotsuboyさんの実例:

# ~/.claude/commands/create-pr.md
---
name: create-pr
description: PR作成を自動化
---

## Description
このコマンドは以下の作業を自動で実行します:
1. `npm run format` でPrettierフォーマットを実行
2. 変更内容を適切な粒度でコミットに分割
3. GitHub PRを作成

## Implementation
prettierをかけたあと、適切な粒度でコミットし、PRを作って

使い方:

> /create-pr
# → 自動でフォーマット、コミット、PR作成が完了!

実例2:テスト駆動開発コマンド

# ~/.claude/commands/tdd.md
---
name: tdd
description: TDDサイクルを実行
---

## Implementation
1. 失敗するテストを書く
2. テストをパスする最小限のコードを書く
3. リファクタリング
4. カバレッジレポートを生成

現在のファイルに対してTDDサイクルを実行してください。

実例3:リリースノート生成

# ~/.claude/commands/release-notes.md
---
name: release-notes
description: リリースノートを自動生成
---

## Implementation
1. 前回のリリースタグから現在までのコミットを取得
2. feat:, fix:, perf: などのプレフィックスでグループ化
3. CHANGELOG.mdに追記
4. 日本語でユーザー向けの説明を生成

git log --oneline $(git describe --tags --abbrev=0)..HEAD を解析して、
わかりやすいリリースノートを作成してください。

プロジェクト固有コマンド

# .claude/commands/deploy-staging.md
---
name: deploy-staging
description: ステージング環境にデプロイ
scope: project
---

## Implementation
1. テストを実行(失敗したら中止)
2. ビルド
3. ステージング環境にデプロイ
4. Slackに通知

以下のコマンドを順番に実行:
- npm test
- npm run build
- npm run deploy:staging
- curl -X POST $SLACK_WEBHOOK -d '{"text":"ステージングデプロイ完了"}'

🔌 MCP(Model Context Protocol):外部システムとの魔法の架け橋

MCPで何ができる?

Claude Codeを外部システムと直接連携させることができます。

実例1:Puppeteerでブラウザ自動操作

> PuppeteerでGitHubのPRに画像をアップロードして

Claude Codeが自動でブラウザを操作して画像をアップロード!

実例2:外部システムとの連携

MCPを使えば、様々な外部システムと連携できます。例えば:

  • Puppeteerでブラウザ操作
  • データベースへの直接アクセス
  • 外部APIとの通信

詳細はMCP公式ドキュメントを参照してください。

実例3:o3との相談(UltraThink連携)

tonkotsuboyさんの活用例:

> 本リポジトリのパフォーマンス改善のためにできることは何? o3と相談しながら深く考えて

Claude CodeがUltraThinkモードでo3 MCPと連携し、深い分析を実行!

自作MCPの例

Ubie社のデザインシステムMCP:

  • デザイントークンの自動取得
  • コンポーネント仕様の参照
  • スタイルガイドの適用
// MCPサーバーの例
export const server = {
  tools: {
    getDesignToken: {
      description: "デザイントークンを取得",
      inputSchema: {
        type: "object",
        properties: {
          tokenName: { type: "string" }
        }
      },
      handler: async ({ tokenName }) => {
        // デザインシステムからトークンを取得
        return await fetchDesignToken(tokenName);
      }
    }
  }
};

🎙️ Aqua Voice連携:声でコーディング

Aqua Voiceとは?

高精度な日本語音声認識サービス。「あー」「えー」も自動補正してくれる優れもの。

実例:音声でタスク実行

# 音声入力
「このコンポーネントにローディング状態を追加して、
スケルトンスクリーンを表示するようにして」

# Claude Codeが理解して実装
> ローディング状態とスケルトンスクリーンを実装しました

メリット

  • ⌨️ タイピングより速い
  • 🎯 自然な日本語で指示できる
  • 🚀 アイデアを即座に実装

デメリット

  • 😅 オフィスだとちょっと恥ずかしい
  • 🔇 静かな環境が必要

🏗️ Kiro × Claude Code:設計と実装の最強タッグ

Kiroの強みとClaude Codeの強み

ツール 強み 弱み
Kiro 詳細な設計書作成 実装が遅い
Claude Code 爆速実装 設計が甘いことも

実践フロー

  1. Kiroで設計

    対話形式で要件定義 → 詳細設計書生成
    
  2. 設計書をClaude Codeに投入

    > /read task.md
    > この設計書通りに実装して
    
  3. 爆速で実装完了

実例:タスク管理アプリ

Kiroが生成した設計書の一部:

# タスク管理アプリケーション設計

## アーキテクチャ
- Frontend: Next.js 14 (App Router)
- State: Zustand
- Styling: Tailwind CSS

## コンポーネント構造
- TaskList
  - TaskItem
    - Checkbox
    - Title
    - DueDate
- TaskForm
  - Input fields
  - Validation

これをClaude Codeに渡すだけで、30分で基本機能が完成

💡 組み合わせ技:究極の自動化フロー

朝のルーティンを完全自動化

// Hooks + カスタムコマンド + MCP
{
  "hooks": {
    "Start": [
      {
        "matcher": "/morning",
        "hooks": [
          {
            "type": "command",
            "command": "say 'おはようございます。今日も頑張りましょう'"
          }
        ]
      }
    ]
  }
}
# ~/.claude/commands/morning.md
---
name: morning
description: 朝のルーティン
---

1. git pullで最新を取得
2. npm installで依存関係を更新  
3. テストを実行
4. 昨日のPRのレビューコメントを確認
5. 今日のタスクリストを表示
6. Slackのメンションを確認(MCP経由)

リリース作業の完全自動化

# .claude/commands/release.md
---
name: release
description: リリース作業を自動化
---

1. テストを実行
2. ビルド
3. リリースノート生成
4. タグ付け
5. デプロイ
6. Slack通知(Hooks経由で音も鳴らす)

🎓 導入のベストプラクティス

1. 段階的に導入

Week 1: Hooksで簡単な自動化
Week 2: よく使うコマンドをカスタム化
Week 3: MCPで外部連携
Week 4: 音声入力を試す

2. チームで共有

# チーム共有リポジトリ
team-claude-configs/
├── hooks/
│   └── standard-hooks.json
├── commands/
│   ├── pr-create.md
│   ├── deploy.md
│   └── test-coverage.md
└── README.md

3. 効果測定

// 作業時間の計測Hook
{
  "hooks": {
    "Start": [{
      "command": "echo START:$(date +%s) >> ~/.claude/metrics.log"
    }],
    "Stop": [{
      "command": "echo STOP:$(date +%s) >> ~/.claude/metrics.log"
    }]
  }
}

🚨 注意点とトラブルシューティング

よくある失敗

  1. Hooksの無限ループ

    // ❌ 悪い例
    {
      "hooks": {
        "Change": [{
          "command": "git add ."  // これが更にChangeを発火
        }]
      }
    }
    
  2. コマンドの肥大化

    # ❌ 悪い例:1つのコマンドに詰め込みすぎ
    /do-everything
    
    # ✅ 良い例:適切に分割
    /format
    /test
    /deploy
    
  3. MCPの過度な依存

    • 外部サービスがダウンしたら?
    • レート制限は?
    • フォールバック処理を用意

🎯 まとめ:あなたも「タスク丸投げおじさん」になろう!

tonkotsuboyさんが自称する「Claude Codeにタスク丸投げおじさん」。

これは決して怠慢ではありません。本質的な仕事に集中するための賢い選択です。

今すぐ始められること

  1. まずはHooksで音を鳴らしてみる

    {"hooks": {"Stop": [{"command": "say 完了しました"}]}}
    
  2. よく使うコマンドを1つ作る

    mkdir -p ~/.claude/commands
    echo "テストを実行して" > ~/.claude/commands/test.md
    
  3. MCPを1つ試す

    npm install -g @modelcontextprotocol/server-puppeteer
    

これらの機能を使いこなせば、あなたの開発効率は確実に10倍になります。

さあ、今すぐClaude Codeを開いて、最初のHookを設定してみましょう!

🔗 参考リンク


次回予告: 「Claude Code × GitHub Actions で実現する完全自動CI/CD」

それでは、Happy Coding with Claude! 🚀

Discussion