メインコンテンツへスキップ
Think You Lab
ブログログイン無料で始める
トップ/ブログ/how-to
Claude Code実例SlackPython自動化

Claude Code 実例: Slack 通知を AI に実装させた話 — プロンプト・コード・コストを公開

Claude Code で Slack 自動通知を実装した実例を公開。プロンプトの書き方・生成コード・API コストの目安・所要時間まで。「AI にどう指示するか」を具体的に解説します。

2026-04-15·約10分

LINE 公式アカウント

n8n自動化テンプレを無料配布中。LINEで受け取る

目次
  • 何を作ったか — スクリプトが失敗したら Slack に飛ばす仕組み
  • 完成イメージ
  • 事前準備 — Slack Incoming Webhook URL の取得
  • Slack App の作成(最小手順)
  • 環境変数への設定
  • Claude Code への指示(プロンプト全文)
  • 最初に渡したプロンプト
  • Claude Code が返したこと
  • 生成されたコード
  • 生成されたコードの解説
  • Slack に送るメッセージの構造
  • エラーハンドリングの実装
  • `requirements.txt` の更新
  • 所要時間とコストの目安
  • 作業時間の目安
  • API コストの目安
  • Claude Code に指示するときのコツ(この実装で学んだこと)
  • 前提情報を先に渡すと精度が上がる
  • 制約を明示すると意図しない変更を防げる
  • 「説明してから実行して」でダブルチェック
  • 自分のプロジェクトへの応用
  • まとめ

目次

  • 何を作ったか — スクリプトが失敗したら Slack に飛ばす仕組み
  • 完成イメージ
  • 事前準備 — Slack Incoming Webhook URL の取得
  • Slack App の作成(最小手順)
  • 環境変数への設定
  • Claude Code への指示(プロンプト全文)
  • 最初に渡したプロンプト
  • Claude Code が返したこと
  • 生成されたコード
  • 生成されたコードの解説
  • Slack に送るメッセージの構造
  • エラーハンドリングの実装
  • `requirements.txt` の更新
  • 所要時間とコストの目安
  • 作業時間の目安
  • API コストの目安
  • Claude Code に指示するときのコツ(この実装で学んだこと)
  • 前提情報を先に渡すと精度が上がる
  • 制約を明示すると意図しない変更を防げる
  • 「説明してから実行して」でダブルチェック
  • 自分のプロジェクトへの応用
  • まとめ

「Claude Code でどう指示すれば、どのくらいのものが作れるのか」

そう気になっている方に向けて、自分が実際に行った実装をそのまま公開します。作ったのはスクリプトが失敗したときに Slack へ自動通知する仕組みです。Claude Code への指示文(プロンプト)・生成されたコード・かかった時間の目安を、省略なしでお見せします。

この記事で分かること:

  • Claude Code にどんな指示を出したか(プロンプト全文)
  • 実際に生成されたコード
  • 「前提情報を先に渡す」指示パターンの重要性
  • 自分のプロジェクトへの応用コツ

著者の立場: THINK YOU LAB の agent-ops-monitor.py(運用監視スクリプト)に Slack 通知機能を Claude Code で追加しました。この記事はその実装記録です。

基本的なファイル操作がまだの方はこちら → Claude Code でファイルを読み書きさせる基本操作


何を作ったか — スクリプトが失敗したら Slack に飛ばす仕組み

完成イメージ

agent-ops-monitor.py が実行される
  ↓ 処理が正常に完了 → 何も起きない
  ↓ 例外が発生した場合
  ↓ notify_slack() が呼ばれる
  ↓ 環境変数 SLACK_WEBHOOK_URL に POST
  ↓ Slack の #ops-alert チャンネルに通知が届く

Slack にはこんなメッセージが届きます:

⚠️ エラー通知
スクリプト: agent-ops-monitor.py
エラー: [実際のエラーメッセージ]
時刻: 2026-04-15T10:30:00+00:00

事前準備 — Slack Incoming Webhook URL の取得

Claude Code に実装を任せる前に、Slack 側の設定が必要です。

Slack App の作成(最小手順)

  1. Slack API サイト にアクセス
  2. 「Create New App」→「From scratch」を選択
  3. App 名を入力し、対象のワークスペースを選択
  4. 「Incoming Webhooks」を有効化
  5. 「Add New Webhook to Workspace」→ 通知を送るチャンネルを選択
  6. 生成された Webhook URL をコピー

環境変数への設定

Webhook URL は絶対にコードに直書きしません。

# .env ファイル
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxxx/yyyy/zzzz
# .gitignore に追加
.env

Claude Code への指示にも「.env の SLACK_WEBHOOK_URL を使うこと」と明示します。これを書かないと、Claude Code が URL をハードコードする実装を提案する場合があります。


Claude Code への指示(プロンプト全文)

ここが本記事のメインです。実際に使った指示文の形を公開します。

最初に渡したプロンプト

> @scripts/agent-ops-monitor.py を読んで。
> このスクリプトが例外(Exception)をキャッチしたとき、
> 環境変数 SLACK_WEBHOOK_URL に設定した URL に HTTP POST で通知を送る関数を追加して。
> 関数名は notify_slack とする。
> 通知メッセージには以下を含めること:
>   - スクリプト名: agent-ops-monitor.py
>   - エラーメッセージ: str(e)
>   - タイムスタンプ: ISO 8601 形式
> 既存の except ブロックでこの関数を呼び出すように変更すること。
> requests ライブラリを使う。すでに requirements.txt にあるか確認してから追加すること。
> 変更内容を説明してから実行して。

ポイント: 最初に @ファイル名 でファイルを指定し、「読んで」と明示しています。ファイルを読まずに実装させると既存コードのスタイルや変数名を無視した実装になりやすいです。

Claude Code が返したこと

  1. agent-ops-monitor.py を読んで既存の except ブロックの一覧を表示
  2. 追加する notify_slack() 関数の説明
  3. 「実行してよいか確認」を求めてきた(指示に「説明してから実行して」を入れたため)

説明を確認して「実行して」と返すと、以下のコードが追加されました。

生成されたコード

import os
import requests
from datetime import datetime, timezone
 
 
def notify_slack(script_name: str, error_message: str) -> None:
    """スクリプトエラーを Slack に通知する"""
    webhook_url = os.environ.get("SLACK_WEBHOOK_URL")
    if not webhook_url:
        print("[WARNING] SLACK_WEBHOOK_URL が設定されていません")
        return
 
    timestamp = datetime.now(timezone.utc).isoformat()
    payload = {
        "text": (
            f":warning: *エラー通知*\n"
            f"*スクリプト*: {script_name}\n"
            f"*エラー*: {error_message}\n"
            f"*時刻*: {timestamp}"
        )
    }
 
    try:
        response = requests.post(webhook_url, json=payload, timeout=10)
        response.raise_for_status()
    except requests.RequestException as e:
        print(f"[ERROR] Slack 通知の送信に失敗しました: {e}")

既存の except ブロックへの追加:

# 変更前
try:
    run_monitor()
except Exception as e:
    print(f"エラー: {e}")
 
# 変更後
try:
    run_monitor()
except Exception as e:
    print(f"エラー: {e}")
    notify_slack("agent-ops-monitor.py", str(e))

生成されたコードの解説

Slack に送るメッセージの構造

Slack の Incoming Webhook は {"text": "メッセージ"} という JSON を受け取ります。:warning: は Slack の絵文字記法、*スクリプト*: は太字マークダウンです。Slack API の仕様に合わせた書き方を Claude Code が自動的に選択しました。

エラーハンドリングの実装

notify_slack 関数自体がエラーになっても元のスクリプトが止まらないようにしています。通知が届かないことより、通知処理でスクリプトが止まる方が問題だからです。

if not webhook_url のチェックも重要です。Webhook URL が設定されていない環境(CI など)でも安全に動作します。

requirements.txt の更新

Claude Code は requirements.txt の存在を確認した上で requests を追加しました。「確認してから追加すること」という指示が効いています。


所要時間とコストの目安

作業時間の目安

| フェーズ | 所要時間(目安) | |---|---| | Slack App 設定・Webhook URL 取得 | 5〜10分 | | Claude Code への指示(1回目) | 2〜3分 | | コード確認・承認 | 2〜3分 | | テスト・動作確認 | 5〜10分 | | 合計 | 約15〜25分 |

API コストの目安

今回のような「既存ファイル1本を読んで関数を1つ追加する」タスクの場合:

  • 入力トークン: 2,000〜5,000程度(ファイルサイズによる)
  • 出力トークン: 500〜1,500程度
  • 費用目安: $0.02〜$0.10程度(Claude Sonnet 4.6 使用時)

Claude Code の料金の全体感については「Claude Code と Cursor の違い」の料金比較セクションを参照してください。


Claude Code に指示するときのコツ(この実装で学んだこと)

前提情報を先に渡すと精度が上がる

今回の指示では最初に「@scripts/agent-ops-monitor.py を読んで」と伝えました。ファイルを読まずに実装させると、既存のコードスタイルや変数名を無視したコードが生成されやすいです。

良い例(前提ファイルを先に渡す):

> @scripts/agent-ops-monitor.py を読んで。
> このファイルに notify_slack 関数を追加して。

良くない例(前提なしで実装させる):

> Python で Slack に通知を送る関数を書いて

後者の場合、THINK YOU LAB のコードスタイルと合わない実装が返ってくる可能性があります。前者は Claude Code がファイルを読んで既存コードのスタイルに合わせた実装をしてくれます。

制約を明示すると意図しない変更を防げる

「.env の環境変数を使うこと」「requests.txt を確認してから追加すること」のように制約を明示することで、Claude Code が余計な変更をするのを防げます。

「説明してから実行して」でダブルチェック

変更内容を先に説明させる指示(「説明してから実行して」)を入れると、想定外の変更を事前に確認できます。特に本番コードを変更するときは有効です。


自分のプロジェクトへの応用

今回のパターン(既存ファイルを読んで → 関数を追加 → 既存コードに組み込む)は他の実装にも応用できます。

応用例:

  • スクリプトのログを Slack に転送する
  • API のレスポンスを定期的に Slack に投稿する
  • GitHub Actions の失敗通知を Slack に送る

いずれも今回と同じプロンプトパターン(「@ファイル名を読んで → 追加する機能の仕様 → 制約 → 確認してから実行」)で対応できます。


まとめ

今回の実装で使ったプロンプトパターン:

> @[対象ファイル] を読んで。
> [追加する機能の仕様(具体的に)]
> [制約(環境変数を使う、他のファイルは触らないなど)]
> 変更内容を説明してから実行して。

このパターンを使うと:

  1. Claude Code が既存コードのスタイルに合わせた実装をしてくれる
  2. 意図しない変更(環境変数の直書きなど)を防げる
  3. 変更前に確認できるため安全

次のステップ:

  • Claude Code でエラーを自動修正させる方法
  • Claude Code とは何か — 完全ガイド

「指示が雑だと何度もやり直しになる」というのを実感してきたら、プロンプトテンプレが効いてきます。実務で使っている Claude Code 操作プロンプト集を LINE で無料配布中です。

→ Claude Code 操作プロンプトテンプレ集を受け取る(LINE登録・無料)

note

Autoclaw Starter

Claude Code × n8n × autoclaw の三位一体スタック実装スターター

noteで読む¥4,980

LINE 公式アカウント

俺が実際に使っているプロンプト集を LINE で配布中

R

Rikuto (LAB)

非エンジニアが Claude Code × n8n × Supabase で副業システムを作り続ける実験記。 失敗も含めたリアルな一次情報を発信しています。

THINK YOU LAB 運営

関連記事

  • 55本のWFが1人で回り続ける構造とは何か — Agentic Flow Kit の全貌

    2026-04-18

  • プログラミングできない俺が Claude Code を使い続けられる理由

    2026-04-16

  • n8n Webhook の使い方|URL 発行から Slack 通知まで実例付きで解説

    2026-04-15

← ブログ一覧へ
X でシェアLINE でシェア
← 前の記事Claude Code と Cursor の違い — どちらを選ぶべきか用途別に解説
次の記事 →Claude Code の料金体系と API コスト管理 — 実際の費用感と節約のコツ

目次

  • 何を作ったか — スクリプトが失敗したら Slack に飛ばす仕組み
  • 完成イメージ
  • 事前準備 — Slack Incoming Webhook URL の取得
  • Slack App の作成(最小手順)
  • 環境変数への設定
  • Claude Code への指示(プロンプト全文)
  • 最初に渡したプロンプト
  • Claude Code が返したこと
  • 生成されたコード
  • 生成されたコードの解説
  • Slack に送るメッセージの構造
  • エラーハンドリングの実装
  • `requirements.txt` の更新
  • 所要時間とコストの目安
  • 作業時間の目安
  • API コストの目安
  • Claude Code に指示するときのコツ(この実装で学んだこと)
  • 前提情報を先に渡すと精度が上がる
  • 制約を明示すると意図しない変更を防げる
  • 「説明してから実行して」でダブルチェック
  • 自分のプロジェクトへの応用
  • まとめ
Think You Lab
このブログについて料金プランプライバシーポリシーお問い合わせ特定商取引法ログイン

© 2026 Think You Lab