bot-developer について
bot-developerは、Discord、Telegram、Slack向けの本番用ボットを開発する人向けのスキルです。イベント駆動設計、会話状態管理、レート制限、モデレーションを扱います。
主な機能
- 01イベント駆動型ボット設計
- 02複数ターンの状態管理
- 03分散型・適応型レート制限
- 04時間減衰付きポイント制モデレーション
- 05自動モデレーション規則とファジーマッチング
- 06監査ログとセキュリティ指針
活用シーン
- 01Discord、Telegram、Slackボットの開発
- 02モデレーションと自動モデレーションの構築
- 03複数ターンの会話フローの実装
- 04経済、XP、レベル機能の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill bot-developerインストール後、Claude Code で/bot-developerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.md.claude-plugin/plugin.jsonreferences/architecture-patterns.mdmoderation-system.mdplatform-templates.mdrate-limiting.md詳細
ボット開発者
適切なアーキテクチャ、状態管理、スケーラビリティを備えた、本番環境向けボットの構築に精通しています。
クイックスタート
User: "Build a Discord moderation bot with auto-mod"
Bot Developer:
1. Set up event-driven architecture (message broker + service layer)
2. Implement state machine for multi-turn mod flows
3. Add distributed rate limiting (Redis)
4. Create point-based moderation with decay
5. Configure auto-mod rules (spam, caps, links, words)
6. Deploy with proper logging and error handling
重要な原則:本番環境向けのボットに必要なのは、コマンドハンドラーだけではありません。レート制限、状態管理、段階的な縮退も必要です。
主な機能
1. プラットフォームに関する専門知識
| プラットフォーム | 接続方式 | 最適な用途 |
|---|---|---|
| Discord | Gateway(WebSocket) | ゲームコミュニティ、大規模サーバー |
| Telegram | Webhook(本番環境) | 国際的な利用、グループ/チャンネル |
| Slack | Socket Mode/Webhook | 職場、インテグレーション |
2. 本番環境向けアーキテクチャ
- メッセージブローカー(Redis Streams / RabbitMQ)を使用したイベント駆動型設計
- サービスレイヤーの分離(ユーザー、モデレーション、エコノミー、インテグレーション)
- PostgreSQL + Redis + S3 によるデータレイヤー
- Cog ベースのモジュール構造
3. 状態管理
- 複数ターンの会話に有限状態機械を使用
- タイムアウト処理(非アクティブ状態が続くと自動リセット)
- 競合状態の防止
- ターンをまたいだコンテキストの保持
4. レート制限
- Redis バックエンドを使用した分散型リミッター
- API ヘッダーに応じて動作する適応型リミッター
- ユーザーごと、ギルドごと、全体のバケット
- retry-after 情報を含む段階的な縮退
5. モデレーションシステム
- ポイント制の段階的な措置(しきい値は設定可能)
- 時間の経過に応じた自動減衰
- 自動モデレーションルール(スパム、大文字、リンク、禁止ワード)
- 回避行為を検出するためのあいまい検索(l33t 表記)
- コンプライアンス対応の監査ログ
エスカレーションのしきい値
| ポイント | 対応 |
|---|---|
| 0-2 | 対応なし |
| 3-5 | ミュート |
| 6-9 | キック |
| 10-14 | 一時的な BAN |
| 15+ | 永久 BAN |
自動モデレーションルール
| ルール | 検出方法 |
|---|---|
| スパム | スライディングウィンドウ内のメッセージ頻度 |
| 大文字 | 文字の比率(大文字が>70%) |
| リンク | URL の正規表現 + ドメイン許可リスト |
| ワード | 辞書 + レーベンシュタイン距離(しきい値 85%) |
| メンション | バリエーションを含めた @mention のカウント |
| 招待 | Discord 招待の正規表現 + URL の展開 |
使用する場面
次の場合に使用します:
- Discord/Telegram/Slack ボットの開発
- モデレーションおよび自動モデレーションシステム
- 複数ターンの会話フロー
- エコノミー/XP/レベルアップシステム
- 外部 API とのインテグレーション
次の場合は使用しないでください:
- チャットインターフェースのない Web API(backend-architect を使用)
- 一般的な自動化スクリプト(python-pro を使用)
- フロントエンドのチャットウィジェット(frontend-developer を使用)
- AI/ML モデルとの単独のインテグレーション(ai-engineer を使用)
アンチパターン
アンチパターン:本番環境でのポーリング
例:Telegram に bot.polling() やロングポーリングを使用する
問題点:リソースを浪費し、応答が遅く、スケールできません
代わりに:適切な検証を行う Webhook を使用します
アンチパターン:レート制限を設けない
例:スロットリングせずに API リクエストを送信する 問題点:ボットが BAN され、429 が発生し、UX が悪化します 代わりに:API ヘッダーを尊重する適応型レートリミッターを実装します
アンチパターン:インメモリ状態のみを使用する
例:会話状態を Python の dict に保存する 問題点:再起動時に失われ、複数インスタンスにスケールできません 代わりに:状態には Redis、永続化には PostgreSQL を使用します
アンチパターン:イベントハンドラーをブロックする
例:on_message 内で時間のかかる処理を行う
問題点:ほかのすべてのイベントがブロックされ、タイムアウトが発生します
代わりに:非同期タスクや、負荷の高い処理のためのメッセージキューを使用します
セキュリティチェックリスト
TOKEN SECURITY
├── Never commit tokens to git
├── Use environment variables or secret manager
├── Rotate tokens if exposed
└── Separate tokens for dev/staging/prod
PERMISSION CHECKS
├── Verify user permissions before action
├── Use platform's permission system
├── Check bot's permissions before attempting
└── Fail safely if permissions missing
INPUT VALIDATION
├── Sanitize all user input
├── Validate command arguments
├── Parameterized queries (no SQL injection)
└── Rate limit user-triggered actions
参考ファイル
references/architecture-patterns.md- イベント駆動型アーキテクチャ、状態機械references/rate-limiting.md- 分散型および適応型レート制限references/moderation-system.md- ポイント制モデレーション、自動モデレーションreferences/platform-templates.md- Discord.py、Telegram Webhook テンプレート、セキュリティ
重要な知見:本番環境のボットは、コマンドロジックの不備ではなく、レート制限や状態のバグが原因で失敗します。まずインフラを構築しましょう。
併用先:ai-engineer(LLM インテグレーション) | backend-architect(API 設計) | deployment-engineer(ホスティング)