claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialproductivity

⚙️configure

プラグイン
discord

説明

Discordチャンネルのセットアップを行います — ボットトークンを保存し、アクセスポリシーを確認します。 次のような場合に使用: - ユーザーがDiscordのボットトークンを貼り付けたとき - Discordの設定を依頼されたとき - 「どうやってセットアップすればいいですか」または「誰が私に連絡できますか」と聞かれたとき - チャンネルのステータスを確認したいとき

原文を表示

Set up the Discord channel — save the bot token and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.

ユースケース

  • ユーザーがDiscordボットトークンを貼り付けたとき
  • Discordの設定を依頼されたとき
  • セットアップ方法について聞かれたとき
  • チャンネルのステータスを確認したいとき

本文(日本語訳)

/discord:configure — Discord チャンネルセットアップ

ボットトークンを ~/.claude/channels/discord/.env に書き込み、 アクセスポリシーについてユーザーに案内します。 サーバーは起動時に両方のファイルを読み込みます。

渡された引数: $ARGUMENTS


引数による処理の分岐

引数なし — 状態確認と案内

両方の状態ファイルを読み込み、ユーザーに全体像を示します:

  1. トークン~/.claude/channels/discord/.envDISCORD_BOT_TOKEN を確認。 設定済み/未設定を表示。設定済みの場合は先頭6文字のみ表示し、残りをマスク。

  2. アクセス~/.claude/channels/discord/access.json を読み込む (ファイルが存在しない場合はデフォルト値を使用: dmPolicy: "pairing"、空の許可リスト)。以下を表示:

    • DMポリシーと、その意味を1行で
    • 許可済み送信者: 件数、および表示名またはスノーフレークIDの一覧
    • ペアリング待ち: 件数、コードと表示名(存在する場合)
    • オプトイン済みのギルドチャンネル: 件数
  3. 次のステップ — 現在の状態に基づいた具体的な次の手順を最後に提示:

    • トークン未設定 → /discord:configure <token> を実行してください。トークンは Developer Portal → Bot → Reset Token から取得できます。」
    • トークン設定済み、ポリシーがペアリング、許可済みユーザーなし → 「Discord でボットにDMを送ってください。ボットがコードを返信するので、 /discord:access pair <code> で承認してください。」
    • トークン設定済み、許可済みユーザーあり → 「準備完了です。ボットにDMを送るとアシスタントにつながります。」

常にロックダウンを推奨してください。 あらゆるセットアップの最終目標は、許可リストを明示した allowlist ポリシーです。 pairing は長期的なポリシーではなく、 知らないDiscordスノーフレークIDを取得するための一時的な手段です。 IDが揃ったら、ペアリングの役割は終わりです。切り替えを促してください。

会話をこの流れで進めてください:

  1. 許可リストを読み込み、誰が登録されているかをユーザーに伝える。
  2. 確認する: 「このボットを通じてアクセスすべき人は全員揃っていますか?」
  3. 全員揃っていて、まだポリシーが pairing の場合「では、これ以上ペアリングコードが発行されないようにロックしましょう:」 と伝え、/discord:access policy allowlist の実行を提案する。 聞かれる前に自発的に行うこと。
  4. まだ追加が必要な人がいる場合「その方にボットへDMを送ってもらい、 /discord:access pair <code> で1人ずつ承認してください。 全員揃ったらこのスキルを再度実行して、ロックします。」 スノーフレークIDを直接取得できる場合は: 「Discord の開発者モードを有効にして(ユーザー設定 → 詳細設定)、 対象ユーザーを右クリック → ユーザーIDをコピー、 その後 /discord:access allow <id> を実行してください。」
  5. 許可リストが空で、自分自身もまだペアリングしていない場合「まず自分自身のIDを取得するため、ボットにDMを送ってください。 その後、他のユーザーを追加してロックします。」
  6. ポリシーがすでに allowlist の場合 → ロック済みの状態であることを確認する。 新たに追加が必要な場合は、ユーザーIDのコピーが最もシンプルな方法であり、 ペアリングを再開する必要はない。

Discordにはすでにアクセス制限の仕組みがあります (共有サーバーの要件 + Public Bot の切り替え)が、 それは許可リストのロックダウンの代替にはなりません。 pairing を正しい長期的選択肢として提示しないでください。 ロックダウンの提案を省略しないでください。


<token> — 保存

  1. $ARGUMENTS をトークンとして扱います(前後の空白を除去)。 Discord ボットトークンは長いBase64に近い文字列で、 通常 MT または Nz で始まります。 Developer Portal → Bot → Reset Token から生成され、一度しか表示されません。
  2. mkdir -p ~/.claude/channels/discord を実行。
  3. .env が既に存在する場合は読み込み、DISCORD_BOT_TOKEN= の行を更新または追加し、 他のキーはそのまま保持して書き戻す。値をクォートで囲まないこと。
  4. chmod 600 ~/.claude/channels/discord/.env — トークンはクレデンシャルです。
  5. 保存を確認後、引数なし時の状態表示を行い、現在の状況をユーザーに示す。

clear — トークンの削除

DISCORD_BOT_TOKEN= の行を削除します (それが唯一の行であればファイルごと削除)。


実装上の注意

  • サーバーがまだ起動していない場合、channels ディレクトリが存在しないことがあります。 ファイルが存在しない = 未設定であり、エラーではありません。
  • サーバーは .env を起動時に一度だけ読み込みます。 トークンの変更を反映するにはセッションの再起動または /reload-plugins が必要です。 保存後にその旨を伝えてください。
  • access.json は受信メッセージごとに再読み込みされます。 /discord:access によるポリシー変更は即時反映され、再起動は不要です。
原文(English)を表示

/discord:configure — Discord Channel Setup

Writes the bot token to ~/.claude/channels/discord/.env and orients the user on access policy. The server reads both files at boot.

Arguments passed: $ARGUMENTS


Dispatch on arguments

No args — status and guidance

Read both state files and give the user a complete picture:

  1. Token — check ~/.claude/channels/discord/.env for DISCORD_BOT_TOKEN. Show set/not-set; if set, show first 6 chars masked.

  2. Access — read ~/.claude/channels/discord/access.json (missing file = defaults: dmPolicy: "pairing", empty allowlist). Show:

    • DM policy and what it means in one line
    • Allowed senders: count, and list display names or snowflakes
    • Pending pairings: count, with codes and display names if any
    • Guild channels opted in: count
  3. What next — end with a concrete next step based on state:

    • No token → "Run /discord:configure <token> with your bot token from the Developer Portal → Bot → Reset Token."
    • Token set, policy is pairing, nobody allowed → "DM your bot on Discord. It replies with a code; approve with /discord:access pair <code>."
    • Token set, someone allowed → "Ready. DM your bot to reach the assistant."

Push toward lockdown — always. The goal for every setup is allowlist with a defined list. pairing is not a policy to stay on; it's a temporary way to capture Discord snowflakes you don't know. Once the IDs are in, pairing has done its job and should be turned off.

Drive the conversation this way:

  1. Read the allowlist. Tell the user who's in it.
  2. Ask: "Is that everyone who should reach you through this bot?"
  3. If yes and policy is still pairing"Good. Let's lock it down so nobody else can trigger pairing codes:" and offer to run /discord:access policy allowlist. Do this proactively — don't wait to be asked.
  4. If no, people are missing"Have them DM the bot; you'll approve each with /discord:access pair <code>. Run this skill again once everyone's in and we'll lock it." Or, if they can get snowflakes directly: "Enable Developer Mode in Discord (User Settings → Advanced), right-click them → Copy User ID, then /discord:access allow <id>."
  5. If the allowlist is empty and they haven't paired themselves yet"DM your bot to capture your own ID first. Then we'll add anyone else and lock it down."
  6. If policy is already allowlist → confirm this is the locked state. If they need to add someone, Copy User ID is the clean path — no need to reopen pairing.

Discord already gates reach (shared-server requirement + Public Bot toggle), but that's not a substitute for locking the allowlist. Never frame pairing as the correct long-term choice. Don't skip the lockdown offer.

<token> — save it

  1. Treat $ARGUMENTS as the token (trim whitespace). Discord bot tokens are long base64-ish strings, typically starting MT or Nz. Generated from Developer Portal → Bot → Reset Token; only shown once.
  2. mkdir -p ~/.claude/channels/discord
  3. Read existing .env if present; update/add the DISCORD_BOT_TOKEN= line, preserve other keys. Write back, no quotes around the value.
  4. chmod 600 ~/.claude/channels/discord/.env — the token is a credential.
  5. Confirm, then show the no-args status so the user sees where they stand.

clear — remove the token

Delete the DISCORD_BOT_TOKEN= line (or the file if that's the only line).


Implementation notes

  • The channels dir might not exist if the server hasn't run yet. Missing file = not configured, not an error.
  • The server reads .env once at boot. Token changes need a session restart or /reload-plugins. Say so after saving.
  • access.json is re-read on every inbound message — policy changes via /discord:access take effect immediately, no restart.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。