Agent Skills by ALSEL
OpenAIソフトウェア開発⭐ リポ 4品質スコア 76/100

chat-sdk

Chat SDK(`chat` npmパッケージ)を使用して、複数プラットフォーム対応のチャットボットを構築できます。開発者が(1)Slack、Teams、Google Chat、Discord、GitHub、Linearのボットを構築したい、(2)Chat SDKを使ってメンション、メッセージ、リアクション、スラッシュコマンド、カード、モーダル、ストリーミングを処理したい、(3)チャットプラットフォーム用のWebhookハンドラーをセットアップしたい、(4)インタラクティブカードやAIレスポンスのストリーミングをチャットプラットフォームに送信したい、(5)新しいチャットプラットフォーム用のカスタムアダプターを構築したい場合に活用します。「chat sdk」「chat bot」「slack bot」「teams bot」「discord bot」「@chat-adapter」「custom adapter」「build adapter」、複数のチャットプラットフォームで動作するボット構築に関連するキーワードで検出されます。

description の原文を見る

Build multi-platform chat bots with Chat SDK (`chat` npm package). Use when developers want to (1) Build a Slack, Teams, Google Chat, Discord, GitHub, or Linear bot, (2) Use the Chat SDK to handle mentions, messages, reactions, slash commands, cards, modals, or streaming, (3) Set up webhook handlers for chat platforms, (4) Send interactive cards or stream AI responses to chat platforms, (5) Build a custom adapter for a new chat platform. Triggers on "chat sdk", "chat bot", "slack bot", "teams bot", "discord bot", "@chat-adapter", "custom adapter", "build adapter", building bots that work across multiple chat platforms.

SKILL.md 本文

Chat SDK

Slack、Teams、Google Chat、Discord、GitHub、Linear 全体でチャットボットを構築するための統一 TypeScript SDK です。ボットロジックを一度書いて、すべてにデプロイできます。

重要: バンドルされたドキュメントを必ず読んでください

chat パッケージには node_modules/chat/docs/ と TypeScript ソースタイプに完全なドキュメントが付属しています。コードを書く前に必ずこれらを読んでください:

node_modules/chat/docs/           # 完全なドキュメント (MDX ファイル)
node_modules/chat/dist/           # ビルド済みタイプ (.d.ts ファイル)

タスクに応じて読むべき重要なドキュメント:

  • docs/getting-started.mdx — セットアップガイド
  • docs/usage.mdx — イベントハンドラー、スレッド、メッセージ、チャネル
  • docs/streaming.mdx — AI SDK を使用した AI ストリーミング
  • docs/cards.mdx — JSX インタラクティブカード
  • docs/actions.mdx — ボタン/ドロップダウンハンドラー
  • docs/modals.mdx — フォームダイアログ (Slack のみ)
  • docs/adapters.mdx — プラットフォーム固有のアダプターセットアップ
  • docs/state.mdx — ステートアダプター設定 (Redis、ioredis、PostgreSQL、メモリ)

また、node_modules/chat/dist/ の TypeScript タイプを読んで、完全な API サーフェスを理解してください。

クイックスタート

import { Chat } from "chat";
import { createSlackAdapter } from "@chat-adapter/slack";
import { createRedisState } from "@chat-adapter/state-redis";

const bot = new Chat({
  userName: "mybot",
  adapters: {
    slack: createSlackAdapter({
      botToken: process.env.SLACK_BOT_TOKEN!,
      signingSecret: process.env.SLACK_SIGNING_SECRET!,
    }),
  },
  state: createRedisState({ url: process.env.REDIS_URL! }),
});

bot.onNewMention(async (thread) => {
  await thread.subscribe();
  await thread.post("Hello! I'm listening to this thread.");
});

bot.onSubscribedMessage(async (thread, message) => {
  await thread.post(`You said: ${message.text}`);
});

コアコンセプト

  • Chat — メインエントリーポイント。アダプターを調整し、イベントをルーティングします
  • Adapters — プラットフォーム固有 (Slack、Teams、GChat、Discord、GitHub、Linear)
  • State — プラガブルな永続化 (本番環境では Redis または PostgreSQL、開発環境ではメモリ)
  • Threadpost()schedule()subscribe()startTyping() を備えた会話スレッド
  • Messagetextformatted (mdast AST)、raw を含む正規化フォーマット
  • Channel — スレッドのコンテナ。リストと投稿をサポート

イベントハンドラー

ハンドラートリガー
onNewMentionボットが未購読スレッドで @メンションされた
onSubscribedMessage購読スレッド内のメッセージ
onNewMessage(regex)未購読スレッド内のパターンにマッチするメッセージ
onSlashCommand("/cmd")スラッシュコマンド呼び出し
onReaction(emojis)絵文字リアクションの追加/削除
onAction(actionId)ボタンクリックとドロップダウン選択
onAssistantThreadStartedSlack Assistants API スレッド開始
onAppHomeOpenedSlack App Home タブ開始

ストリーミング

任意の AsyncIterable<string>thread.post() に渡します。AI SDK の textStream で動作します:

import { ToolLoopAgent } from "ai";
const agent = new ToolLoopAgent({ model: "anthropic/claude-4.5-sonnet" });

bot.onNewMention(async (thread, message) => {
  const result = await agent.stream({ prompt: message.text });
  await thread.post(result.textStream);
});

カード (JSX)

tsconfig で jsxImportSource: "chat" を設定してください。コンポーネント: CardCardTextButtonActionsFieldsFieldSelectSelectOptionImageDividerLinkButtonSectionRadioSelect

await thread.post(
  <Card title="Order #1234">
    <CardText>Your order has been received!</CardText>
    <Actions>
      <Button id="approve" style="primary">Approve</Button>
      <Button id="reject" style="danger">Reject</Button>
    </Actions>
  </Card>
);

パッケージ

パッケージ用途
chatコア SDK
@chat-adapter/slackSlack
@chat-adapter/teamsMicrosoft Teams
@chat-adapter/gchatGoogle Chat
@chat-adapter/discordDiscord
@chat-adapter/githubGitHub Issues
@chat-adapter/linearLinear Issues
@chat-adapter/state-redisRedis ステート (本番環境)
@chat-adapter/state-ioredisioredis ステート (代替)
@chat-adapter/state-pgPostgreSQL ステート (本番環境)
@chat-adapter/state-memoryインメモリステート (開発環境)

Changesets (リリースフロー)

このモノレポでは Changesets を使用してバージョン管理とチェンジログを行います。パッケージの動作を変更する PR にはすべて changeset を含める必要があります。

pnpm changeset
# → 影響を受けるパッケージを選択 (例: @chat-adapter/slack, chat)
# → バージョンタイプを選択: patch (修正)、minor (機能)、major (破壊的変更)
# → CHANGELOG の簡潔なサマリーを記述

これにより .changeset/ にファイルが作成されます — PR でコミットしてください。main にマージされると、Changesets GitHub Action が "Version Packages" PR を開きます。その PR をマージすると npm に公開されます。

カスタムアダプターの構築

コミュニティまたはベンダーアダプターを作成するには、chat から Adapter インターフェースを実装し、以下を読んでください:

  • docs/contributing/building.mdx — 完全なステップバイステップガイド (Matrix アダプターを例として使用)
  • docs/contributing/testing.mdx — アダプターのテスト
  • docs/contributing/publishing.mdx — npm 命名規則と公開

アダプターは handleWebhookparseMessagepostMessageeditMessagedeleteMessage、スレッド ID のエンコード/デコード、および FormatConverter (chat から BaseFormatConverter を拡張) を実装する必要があります。エラークラスとメッセージユーティリティには @chat-adapter/shared を使用してください。

Webhook セットアップ

各アダプターは bot.webhooks.{platform} 経由で webhook ハンドラーを公開します。これらを HTTP フレームワークのルート (Next.js API ルート、Hono、Express など) に接続してください。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
Niapya
リポジトリ
Niapya/clawless
ライセンス
MIT
最終更新
2026/4/11

Source: https://github.com/Niapya/clawless / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: Niapya · Niapya/clawless · ライセンス: MIT