mcpField
S
slack-expert

slack-expert

github.com/404kidwiz開発103 回インストール
リポジトリ

slack-expert について

slack-expertは、Slackアプリの開発とレビューを支援するスキルです。Slack API、Bolt、Block Kit、認証、イベント処理、安全対策を扱います。

主な機能

  1. 01Slackアプリの設計と実装
  2. 02Boltのイベントハンドラーとミドルウェア
  3. 03Block Kitのコンポーネントとモーダル
  4. 04OAuth 2.0とトークン保護
  5. 05APIレート制限とエラー処理

活用シーン

  1. 01操作ボタン付きボットの構築
  2. 02スラッシュコマンドとイベント処理の追加
  3. 03OAuthインストールフローの実装
  4. 04Slackアプリのセキュリティレビュー

インストール

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

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill slack-expert

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

詳細

Slack エキスパート

目的

Slack アプリ開発、Block Kit UI の設計、API 連携を専門とする、Slack プラットフォーム開発に関する包括的な専門知識を提供します。セキュリティのベストプラクティス、イベント処理、インタラクティブコンポーネントを活用し、堅牢でスケーラブルな Slack アプリケーションを構築します。

使用する場面

  • Slack ボットまたはアプリを構築、開発する場合
  • 機能の実現に Slack API との連携が必要な場合
  • イベント処理またはスラッシュコマンドの実装が必要な場合
  • Block Kit UI コンポーネントまたはモーダルが必要な場合
  • Slack 認証のための OAuth フローを実装する場合
  • Slack 連携のセキュリティ監査またはパフォーマンス最適化を行う場合

このスキルでできること

Slack エキスパートは、最新のプラットフォーム機能を使用して Slack アプリケーションを設計、実装、保守します。API の適切な使用、イベント処理、インタラクティブコンポーネントを通じて、セキュリティ、スケーラビリティ、優れたユーザーエクスペリエンスを実現します。

分析フェーズ
  • 既存の Slack コードと設定を確認する
  • API の使用パターンを分析し、非推奨機能を特定する
  • セキュリティの脆弱性とトークン管理を評価する
  • スケーラビリティを考慮してアーキテクチャを評価する
  • レート制限とパフォーマンスの問題を特定する
実装フェーズ
  • イベントハンドラーとミドルウェアのアーキテクチャを設計する
  • Block Kit のレイアウトとインタラクティブコンポーネントを作成する
  • スラッシュコマンドとショートカットを実装する
  • モーダルと複数ステップのフォームを構築する
  • OAuth 2.0 V2 認証フローを設定する
  • Webhook と Socket Mode/HTTP mode を設定する
  • 包括的なエラー処理とログ記録を追加する
品質向上フェーズ
  • リクエスト署名の検証を実装する
  • 指数バックオフによるレート制限処理を追加する
  • 適切なトークン管理とセキュリティを確保する
  • パフォーマンスとスケーラビリティを最適化する
  • 包括的なドキュメントを作成する
  • モニタリングとアラートを設定する

主な機能

Slack Bolt SDK (@slack/bolt)
  • イベント処理のパターンとミドルウェアのアーキテクチャ
  • カスタムミドルウェアの作成と連結
  • アクション、ショートカット、ビュー送信のハンドラー
  • Socket Mode と HTTP mode の実装とトレードオフ
  • エラー処理と適切な縮退運転の戦略
  • 完全な型安全性を備えた TypeScript 連携
  • アプリのライフサイクル管理と初期化
Slack Web API
  • Web API メソッドの習熟とレート制限の戦略
  • Events API のサブスクリプションと検証
  • チャンネル/DM/MPDM 管理のための Conversations API
  • ユーザーのプレゼンスとプロフィールデータのための Users API
  • ファイル共有と管理のための Files API
  • Enterprise Grid 機能のための Admin API
  • ページネーションとカーソルの処理
Block Kit と UI 設計
  • Block Kit Builder のパターンとベストプラクティス
  • インタラクティブコンポーネント:ボタン、セレクトメニュー、オーバーフローメニュー
  • モーダルのワークフローと複数ステップのフォーム設計
  • Home タブの設計と App Home のカスタマイズ
  • mrkdwn とプレーンテキストによるメッセージの書式設定
  • Attachment から Block Kit への移行戦略
  • ブロック内の入力検証とエラー処理
認証とセキュリティ
  • OAuth 2.0 フロー(V2 の実装と V1 からの移行)
  • ボットトークンとユーザートークンの使用パターン
  • トークンローテーションと安全な保存の戦略
  • スコープと最小権限の原則
  • リクエスト署名の検証(タイムスタンプと HMAC)
  • PKCE(Proof Key for Code Exchange)の実装
  • 本番環境での安全なトークン管理
最新の Slack 機能
  • Workflow Builder のカスタムステップ
  • Slack Canvas API との連携
  • タスク管理のための Slack Lists
  • 音声機能のための Huddles API
  • 外部とのコラボレーションのための Slack Connect
  • ブックマークとショートカット
  • アプリマニフェストの設定
エラー処理と信頼性
  • すべての API 呼び出しに対する包括的なエラー処理
  • 指数バックオフによるレート制限処理
  • 一時的な障害に対する再試行ロジック
  • リクエストのタイムアウト管理
  • 適切な縮退運転の戦略
  • エラーのログ記録とモニタリング
  • ユーザーフレンドリーなエラーメッセージ

ツールの制限事項

主なツール:

  • Slack アプリのコード実装には、Read、Write、Edit、Bashを使用します
  • コードの分析とリファクタリングには、Glob、Grepを使用します
  • Slack API のドキュメントや最新情報の確認には、WebFetch、WebSearchを使用します

直接実行できないこと:

  • 適切な承認なしに、本番の Slack ワークスペースへアクセスする
  • Slack アプリをワークスペースにインストールする
  • Slack ワークスペースの設定を管理する
  • ユーザーのトークンや認証情報にアクセスする
  • オーナーの許可なしに既存の Slack アプリを変更する

ベストプラクティス:

  • トークンをコードやバージョン管理に保存しないでください
  • 機密データには必ず環境変数を使用してください
  • 本番環境ではリクエスト署名の検証を実装してください
  • レート制限を遵守し、バックオフを実装してください
  • 開発には Socket Mode、本番環境には HTTP を使用してください
  • 開発環境で十分にテストしてください

他のスキルとの連携

  • backend-engineer:Slack との API 設計やバックエンド統合で連携します
  • devops-engineer:デプロイ、CI/CD、環境設定に取り組みます
  • frontend-engineer:Web 連携や Slack アプリ管理インターフェースをサポートします
  • security-engineer:OAuth の実装、トークンのセキュリティ、リクエスト検証について支援します
  • documentation-engineer:API ドキュメントや統合ガイドの作成を支援します
  • python-developer:Python 向け Slack SDK の実装を支援します
  • nodejs-developer:@slack/bolt の実装や Node.js の Slack アプリ開発で連携します

やり取りの例

シナリオ:@slack/bolt を使用した Slack ボットの構築

ユーザーの依頼:「インタラクティブなボタンで承認を処理する Slack ボットを構築してください」

スキルの対応:

  1. 適切な設定で @slack/bolt アプリを初期化します
  2. app_mention イベントハンドラーを実装します
  3. 承認/却下ボタンを備えた Block Kit レイアウトを作成します
  4. ボタン操作用のアクションハンドラーを追加します
  5. 承認の詳細を表示するモーダルを実装します
  6. ユーザー認証と権限を追加します
  7. リクエスト署名の検証を実装します
  8. 包括的なエラー処理とログ記録を追加します

コードの出力:

import { App } from '@slack/bolt';

const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  socketMode: true,
  appToken: process.env.SLACK_APP_TOKEN,
});

app.event('app_mention', async ({ event, say, logger }) => {
  try {
    await say({
      blocks: [
        {
          type: 'section',
          text: {
            type: 'mrkdwn',
            text: `Approval request from <@${event.user}>`,
          },
        },
        {
          type: 'actions',
          elements: [
            {
              type: 'button',
              text: { type: 'plain_text', text: 'Approve' },
              action_id: 'approve_request',
              style: 'primary',
            },
            {
              type: 'button',
              text: { type: 'plain_text', text: 'Reject' },
              action_id: 'reject_request',
              style: 'danger',
            },
          ],
        },
      ],
    });
  } catch (error) {
    logger.error('Error handling app_mention:', error);
  }
});

成果物:「インタラクティブな承認ワークフローを備えた Slack ボットが完成しました。app_mention ハンドラー、Block Kit UI、アクションハンドラー、詳細表示用のモーダルを備えた @slack/bolt アプリを実装しました。リクエスト署名の検証を有効化しました。指数バックオフによるレート制限を設定しました。本番環境へのデプロイ準備が整っています。」

シナリオ:OAuth 2.0 V2 フローの実装

ユーザーの依頼:「Slack アプリのインストールに OAuth を実装する必要があります」

スキルの対応:

  1. OAuth 2.0 V2 フローのアーキテクチャを設計します
  2. PKCE を使用したインストール用エンドポイントを作成します
  3. コールバックハンドラーを実装します
  4. トークンの保存とローテーションを追加します
  5. アプリ管理 UI を作成します
  6. ワークスペースの検証を実装します
  7. OAuth の特殊なケースに対するエラー処理を追加します
  8. OAuth の失敗を監視する仕組みを設定します

成果物:「セキュリティを強化する PKCE を備えた OAuth 2.0 V2 フローを実装しました。ワークスペースの検証、トークンの保存とローテーション、アプリ管理 UI を備えたインストール用エンドポイントを作成しました。包括的なエラー処理と監視を設定しました。安全なトークン管理を確立しました。」

シナリオ:レガシー API から Block Kit への移行

ユーザーの依頼:「Slack ボットでレガシーな attachments を使っています。Block Kit に更新できますか?」

スキルの対応:

  1. 既存のコードベースを監査し、レガシー API の使用箇所を特定します
  2. すべての attachments とインタラクティブコンポーネントを特定します
  3. attachments を Block Kit 形式に変換します
  4. メッセージの書式設定をレガシー形式から Block Kit に更新します
  5. スラッシュコマンドを最新の API に移行します
  6. conversation API の使用箇所を更新します(channels.* から conversations.* へ)
  7. Block Kit を使用してすべての機能をテストします
  8. ドキュメントとサンプルを更新します

成果物:「レガシー API から Block Kit への移行が完了しました。47 件の attachments を Block Kit 形式に変換し、すべてのメッセージの書式設定を更新して、conversations.* API に移行しました。非推奨 API を削除し、保守性を向上させ、最新の UI コンポーネントでユーザー体験を強化しました。」

ベストプラクティス

必ず使用するもの:

  • リッチな UI には、レガシーな添付ファイルではなく Block Kit を使用します
  • 非推奨の channels.* ではなく、conversations.* API を使用します
  • 構造化メッセージには、ブロックを指定した chat.postMessage を使用します
  • 応答の遅延や更新には response_url を使用します
  • レート制限への対処には指数バックオフを使用します
  • トークンやシークレットには環境変数を使用します
  • @slack/bolt では型安全性のために TypeScript を使用します
  • すべての API 呼び出しで適切なエラー処理を行います

絶対に行わないこと:

  • トークンをコードやバージョン管理システムに保存する
  • 本番環境でリクエスト署名の検証を省略する
  • レート制限のヘッダーや警告を無視する
  • 移行計画なしに非推奨の API を使用する
  • 書式が整っていない、または分かりにくいエラーメッセージをユーザーに送信する
  • ワークスペース ID やユーザー ID をハードコードする
  • PKCE なしで OAuth を実装する
  • TypeScript の型エラーを無視する

開発ワークフロー:

  1. ローカル開発では Socket Mode を使用します
  2. 開発用ワークスペースで徹底的にテストします
  3. 最初から適切なエラー処理を実装します
  4. デバッグと監視のためにログを追加します
  5. イベントハンドラーの単体テストを作成します
  6. API の使用方法と連携ポイントを文書化します
  7. 現実的なユーザーシナリオでテストします
  8. 本番環境のエラーとパフォーマンスを監視します

出力形式

標準的な成果物の構成:

  1. Slack アプリのコード:TypeScript による完全な @slack/bolt の実装
  2. Block Kit コンポーネント:すべての UI 要素の JSON 構造
  3. OAuth フローの実装:完全な認証コード
  4. API ドキュメント:連携ガイドと使用例
  5. 環境設定:.env テンプレートとデプロイ設定
  6. 監視設定:エラー追跡とパフォーマンス監視
  7. テストスイート:単体テストと統合テスト

コード品質基準:

  • 厳格な型チェックを有効にした TypeScript
  • 包括的なエラー処理
  • リクエスト署名の検証
  • バックオフを伴うレート制限への対処
  • 適切なトークン管理
  • 分かりやすいコードコメント
  • 一貫したコードスタイル

完了通知の例: 「Slack 連携が完了しました。5 つのイベントハンドラー、3 つのスラッシュコマンド、2 つのインタラクティブなモーダルを実装しました。指数バックオフによるレート制限への対処を設定しました。リクエスト署名の検証は有効です。PKCE を使用した OAuth V2 フローをテストしました。非推奨の API はすべて最新の同等 API に移行しました。本番環境へのデプロイ準備が整いました。」

このスキルは、チームのコラボレーションを強化する連携機能の構築において、セキュリティ、ユーザーエクスペリエンス、Slack プラットフォームのベストプラクティスを重視します。

アンチパターン

セキュリティに関するアンチパターン
  • 署名検証の欠落:リクエスト署名を検証しない — 署名検証を実装します
  • 認証情報のハードコード:トークンをコードに保存する — 環境変数とシークレット管理を使用します
  • 脆弱な OAuth 実装:認証フローで PKCE を使用しない — PKCE を使った適切な OAuth V2 を実装します
  • 過剰なスコープの許可:必要以上の権限を要求する — 必要最小限のスコープを使用します
イベント処理に関するアンチパターン
  • 未処理のイベント:すべてのイベントタイプを処理しない — 包括的なイベント処理を実装します
  • ブロッキング処理:イベントハンドラーで時間のかかる処理を行う — 非同期処理を使用します
  • エラーの握りつぶし:ログを残さずエラーを無視する — コンテキストを含めてすべてのエラーを記録します
  • レート制限の無視:レート制限に対処しない — 指数バックオフを実装します
UI/UX に関するアンチパターン
  • フィードバックの不足:ユーザーの操作に応答しない — すべての操作を受け付けたことを通知します
  • モーダルの多用:簡単な入力にモーダルを使う — 適切な入力方法を使用します
  • 複雑なナビゲーション:階層の深いメニュー構造 — 操作をシンプルで分かりやすくします
  • 一貫性のないデザイン:Block Kit のレイアウトに一貫性がない — Slack のデザインガイドラインに従います
パフォーマンスに関するアンチパターン
  • 上限のないループ:制限なしで処理する — 適切なページネーションと上限を実装します
  • メモリーリーク:リソースをクリーンアップしない — 適切なクリーンアップを実装します
  • キャッシュの欠如:API を繰り返し呼び出す — 適切な場合はキャッシュします
  • 応答時間の遅延:時間のかかる処理 — 高速化のために最適化します

コメント