オプション
家家 Skill API開発 slack-to-teams

slack-to-teams

microsoft/skills microsoft/skills

Slack ボットを Microsoft Teams に移行し、両プラットフォーム対応のボットを構築し、ルーティングされたエキスパートシステム(100 以上のマイクロエキスパートファイルを使用)を用いて Block Kit と Adaptive Cards の間で変換する。

...すべて拡張します
35
更新された時間 2026年9月19日

SlackからTeamsへの移行エキスパートシステム

100以上のマイクロエキスパートファイルを持つルーティング済みエキスパートシステム。SlackボットをTeamsに移行し、クロスプラットフォームボットを構築するためのものです。

親スキルの参照: ATK CLIのセットアップとルーティングについては ../SKILL.md を参照してください。ローカルテストについては ../test-playground/test-playground.md または ../test-teams/test-teams.md を参照してください。クラウドデプロイについては ../provision-deploy/provision-deploy.md を参照してください。トラブルシューティングについては ../troubleshoot/troubleshoot.md を参照してください。

使用場面

  • 新しいSlackボット、Teamsボット、またはデュアルプラットフォームボットの構築
  • 既存のSlackボットへのTeamsサポートの追加(その逆も可)
  • ボットのプラットフォーム間移行
  • ボットのAzureまたはAWSへのデプロイ
  • ボット用のAIモデルプロバイダーの設定
  • Block KitとAdaptive Cards間のUI変換
  • プラットフォーム間のアイデンティティ、イベント、ファイル、またはトランスポートのブリッジ
  • Microsoft Agents Toolkit (m365agents.yml, env/, appPackageプレースホルダー) と互換性のあるTeamsボットプロジェクトの作成

手順

ステップ1: プロジェクトタイプの特定

開発者が既存のコードベースを持っているか、ゼロから開始するかを評価します。

  • 新規プロジェクト → 新規プロジェクトフローへ
  • 既存プロジェクト → 既存プロジェクトフローへ

新規プロジェクトフロー

1a: プラットフォームの選択

開発者にサポートするプラットフォームを尋ねます:

  • Slack + Teams(デュアルプラットフォーム)
  • Slackのみ
  • Teamsのみ

1b: エキスパートシステムの読み込み

  1. experts/index.md(ルートルーティング)を読み取ります。
  2. そのファイルで定義された事前タスクインタビューを実行します。
  3. プラットフォームの選択に基づいてルーティングします:
    • Slack + Teams → experts/bridge/index.md を読み取ります。クロスプラットフォームアドバイザーを読み込みます。
    • Slackのみ → experts/slack/index.md を読み取ります。
    • Teamsのみ → experts/teams/index.md を読み取ります。

1c: アーキテクチャのセットアップ

  1. cross-platform-architecture(単一プラットフォームの場合でも読み取ります。後で2番目のプラットフォームを追加するためのパターンを確立するため)を読み取ります。
  2. ドメインルーティングとアドバイザーに処理を委譲します。
  3. ターゲットプロジェクトのルートに PLAN.md を作成し、プラットフォーム、機能、読み込まれたエキスパートを記載します。

1d: 実装

アドバイザーまたはドメインルーティングの出力に従い、機能ごとに実装します:

  1. 優先度リストから次の機能を選択します。
  2. その機能のために指定されたエキスパートを読み込みます。
  3. エキスパートのパターンとルールを使用して実装します。
  4. エキスパートの「注意点」セクションに対して検証します。

既存プロジェクトフロー

2a: プロジェクトの分析

以下の4つのサブ分析を並行して実行します:

言語の検出 — package.json+tsconfig.json(TypeScript)、pom.xml/build.gradle(Java)、*.csproj/*.sln(C#)、go.mod(Go)、requirements.txt/pyproject.toml(Python)、Gemfile(Ruby)、Cargo.toml(Rust)を検索します。

現在のプラットフォームの検出 — SDKの指標となる依存関係を検索します:

  • Slack: @slack/bolt, @slack/web-api, slack_bolt, app.message, app.command, ack()
  • Teams: @microsoft/teams-ai, botbuilder, TeamsActivityHandler, app.turn, Adaptive Cards

機能の検出 — スラッシュコマンド、Block Kit/Adaptive Cards、アクションハンドラー、OAuth、ファイルのアップロード/ダウンロード、スケジューリング、スレッド処理、AI/LLM呼び出し、プロアクティブメッセージを検索します。

アーキテクチャの検出 — ウェブフレームワーク(Express、Fastifyなど)、ホスティングターゲット(Azure、AWS、Docker)、クラウドプロバイダー、アーキテクチャパターン(単一ボット、デュアルボット、モノリシック)を検索します。

2b: 言語ゲート

検出された言語をSDKティアに分類します:

ティア言語ガイダンス
**1: 完全SDK**TypeScript / JavaScript完全なエキスパートシステムが利用可能
**2: 適応**Python両方のSDKが存在 — TSのパターンを適応。bolt-python、teams-python、python-cross-platformを読み込み
**3: 分割SDK**Java、C#一方のプラットフォームにはSDKがあるが、他方はRESTが必要。bolt-java または teams-dotnet + rest-onlyを読み込み
**4: SDKなし**Go、Ruby、Rust両方ともRESTのみ。rest-onlyを読み込み

2c: エキスパートのカバレッジギャップ分析

  1. experts/analyzer.md を読み取ります。
  2. アナライザーワークフローを実行します:マニフェスト、依存関係、ソースファイルをスキャンします。
  3. 検出された技術を既存のエキスパートと照合します。
  4. ギャップ分析を表示します — カバーされた技術とカバーされていない技術。

2d: 不足しているエキスパートの構築(必要な場合)

  1. experts/builder.md を読み取ります。
  2. 各ギャップに対して:プロジェクトの使用状況を分析 → パッケージのソースを読み取る → エキスパートをドラフト → 検証 → ルーティングに接続します。
  3. experts/_expert-ts.md をテンプレートとして使用します。

2e: エキスパートシステムの読み込み

  1. experts/index.md(ルートルーティング)を読み取ります。
  2. 事前タスクインタビューを実行し、2aからの分析結果で事前に入力します。
  3. 検出されたプラットフォームとタスクの意図に基づいてルーティングします:
    • Slackがあり、Teamsを望む → ブリッジドメイン
    • Teamsがあり、Slackを望む → ブリッジドメイン
    • 両方がある → タスクによってルーティング(ブリッジの精緻化、デプロイ、モデルなど)
    • どちらもなし → 対象とするプラットフォームを尋ねます
  4. ブリッジする場合は cross-platform-advisor を読み込みます。分析結果をフェーズ1にフィードします。

2f: アーキテクチャと実装

  1. cross-platform-architecture を読み取ります。
  2. 分析結果、ルーティングの決定、機能の移行順序を含む PLAN.md を作成します。
  3. アドバイザーの優先度リストを使用して、機能ごとに実装します。

Agents Toolkit 互換性

ATK互換のプロジェクト構造(m365agents.yml、env/ ファイル、appPackage)については、親スキルを参照してください:

  • 親 SKILL.md — ATK CLIのセットアップ、サブスキルのルーティング、ワークフローチェーン
  • manifest-and-yaml.md — プロジェクトファイル、YAML設定、環境変数、.localConfigsフロー
  • commands.md — パッケージ、検証、共有、コラボレーション、環境管理
  • templates.md — 言語サポート付きのすべてのテンプレート

Teamsのマニフェストスキーマとパッケージングについては、runtime.manifest-ts を参照してください。

エラーリカバリ

エキスパートシステムがトピックをカバーできない場合:

  1. experts/fallback.md を読み取ります。
  2. フェーズ1:見逃されたエキスパートのためにすべてのドメインルーティングを再スキャンします。
  3. フェーズ2:残りの知識ギャップについてウェブ検索を行います。
  4. experts/builder.md を使用して新しいエキスパートの作成を検討します。

エキスパートドメイン

ドメインインデックス説明
Slackexperts/slack/index.mdBoltフレームワーク、イベント、OAuth、コマンド、UI、CLI
Teamsexperts/teams/index.mdTeams AI SDK、Adaptive Cards、Graph、MCP、A2A、デプロイ
ブリッジexperts/bridge/index.md27のクロスプラットフォーム変換エキスパート(中核的な差別化要因)
デプロイexperts/deploy/index.mdAzureおよびAWSのデプロイウォークスルー
モデルexperts/models/index.mdAIモデルプロバイダー(OpenAI、Anthropic、Bedrockなど)
変換experts/convert/index.mdTypeScriptへの言語変換
セキュリティexperts/security/index.md入力検証、シークレット管理

プラットフォーム比較ドキュメント

並列のプラットフォーム比較用のリファレンスガイド:

  • UIコンポーネント — Block Kit対Adaptive Cards
  • メッセージングとコマンド
  • アイデンティティと認証
  • インタラクティブレスポンス
  • ファイルとリンク
  • ミドルウェアとハンドラー
  • インフラストラクチャ
  • 高度な機能
  • 機能のギャップ
  • ワークフローシナリオ — Teamsボットのメッセージネイティブなワークフローパターン(トリガー、状態、ロジック、AI、可視性)
GitHubで見る
---
name: slack-to-teams
description: Migrate Slack bots to Microsoft Teams, build dual-platform bots, and convert between Block Kit and Adaptive Cards using a routed expert system with 100+ micro-expert files.
---

# Slack to Teams Expert System

A routed expert system with 100+ micro-expert files for migrating Slack bots to Teams and building cross-platform bots.

> **Parent skill:** For ATK CLI setup and routing, see [../SKILL.md](../SKILL.md). For local testing, see [../test-playground/test-playground.md](../test-playground/test-playground.md) or [../test-teams/test-teams.md](../test-teams/test-teams.md). For cloud deploy, see [../provision-deploy/provision-deploy.md](../provision-deploy/provision-deploy.md). For troubleshooting, see [../troubleshoot/troubleshoot.md](../troubleshoot/troubleshoot.md).

## When to Use

- Building a new Slack bot, Teams bot, or dual-platform bot
- Adding Teams support to an existing Slack bot (or vice versa)
- Migrating a bot between platforms
- Deploying a bot to Azure or AWS
- Configuring AI model providers for a bot
- Converting UI between Block Kit and Adaptive Cards
- Bridging identity, events, files, or transport between platforms
- Making a Teams bot project compatible with Microsoft Agents Toolkit (m365agents.yml, env/, appPackage placeholders)

## Procedure

### Step 1: Determine project type

Assess whether the developer has an existing codebase or is starting fresh.

- **New project** → go to [New Project Flow](#new-project-flow)
- **Existing project** → go to [Existing Project Flow](#existing-project-flow)

---

### New Project Flow

#### 1a: Platform selection

Ask the developer which platform(s) to support:
- Slack + Teams (dual-platform)
- Slack only
- Teams only

#### 1b: Load the expert system

1. Read [experts/index.md](../experts/index.md) — the root router.
2. Execute the **pre-task interview** defined in that file.
3. Route based on platform choice:
   - **Slack + Teams** → Read [experts/bridge/index.md](../experts/bridge/index.md). Load [cross-platform-advisor](../experts/bridge/cross-platform-advisor-ts.md).
   - **Slack only** → Read [experts/slack/index.md](../experts/slack/index.md).
   - **Teams only** → Read [experts/teams/index.md](../experts/teams/index.md).

#### 1c: Architecture setup

1. Read [cross-platform-architecture](../experts/bridge/cross-platform-architecture-ts.md) (even for single-platform — establishes patterns for adding a second platform later).
2. Let the domain router and advisor take over.
3. Write a `PLAN.md` in the target project root with platform, features, experts loaded.

#### 1d: Implementation

Follow the advisor's or domain router's output. Implement feature by feature:
1. Pick the next feature from the prioritized list.
2. Load the expert(s) specified for that feature.
3. Implement using the expert's patterns and rules.
4. Verify against the expert's pitfalls section.

---

### Existing Project Flow

#### 2a: Analyze the project

Run these four sub-analyses **in parallel**:

**Detect language** — Scan for `package.json`+`tsconfig.json` (TypeScript), `pom.xml`/`build.gradle` (Java), `*.csproj`/`*.sln` (C#), `go.mod` (Go), `requirements.txt`/`pyproject.toml` (Python), `Gemfile` (Ruby), `Cargo.toml` (Rust).

**Detect current platform** — Scan dependencies for SDK indicators:
- Slack: `@slack/bolt`, `@slack/web-api`, `slack_bolt`, `app.message`, `app.command`, `ack()`
- Teams: `@microsoft/teams-ai`, `botbuilder`, `TeamsActivityHandler`, `app.turn`, Adaptive Cards

**Detect features** — Scan for slash commands, Block Kit/Adaptive Cards, action handlers, OAuth, file upload/download, scheduling, threading, AI/LLM calls, proactive messages.

**Detect architecture** — Scan for web framework (Express, Fastify, etc.), hosting target (Azure, AWS, Docker), cloud provider, architecture pattern (single bot, dual-bot, monolith).

#### 2b: Language gate

Classify the detected language into SDK tiers:

| Tier | Languages | Guidance |
|---|---|---|
| **1: Full SDK** | TypeScript / JavaScript | Full expert system available |
| **2: Adapt** | Python | Both SDKs exist — adapt TS patterns. Load [bolt-python](../experts/slack/bolt-python.md), [teams-python](../experts/teams/teams-python.md), [python-cross-platform](../experts/bridge/python-cross-platform.md) |
| **3: Split SDK** | Java, C# | One platform has SDK, other needs REST. Load [bolt-java](../experts/slack/bolt-java.md) or [teams-dotnet](../experts/teams/teams-dotnet.md) + [rest-only](../experts/bridge/rest-only-integration-ts.md) |
| **4: No SDK** | Go, Ruby, Rust | REST-only for both. Load [rest-only](../experts/bridge/rest-only-integration-ts.md) |

#### 2c: Expert coverage gap analysis

1. Read [experts/analyzer.md](../experts/analyzer.md).
2. Execute the analyzer workflow: scan manifests, dependencies, source files.
3. Cross-reference detected tech against existing experts.
4. Present gap analysis — covered vs uncovered technologies.

#### 2d: Build missing experts (if needed)

1. Read [experts/builder.md](../experts/builder.md).
2. For each gap: analyze project usage → read package source → draft expert → validate → wire into routing.
3. Use [experts/_expert-ts.md](../experts/_expert-ts.md) as the template.

#### 2e: Load the expert system

1. Read [experts/index.md](../experts/index.md) — the root router.
2. Execute the pre-task interview, pre-filling with analysis results from 2a.
3. Route based on detected platform and task intent:
   - Has Slack, wants Teams → **Bridge** domain
   - Has Teams, wants Slack → **Bridge** domain
   - Has both → Route by task (bridge refinement, deploy, models, etc.)
   - Has neither → Ask which platform(s) to target
4. Load [cross-platform-advisor](../experts/bridge/cross-platform-advisor-ts.md) if bridging. Feed analysis results into Phase 1.

#### 2f: Architecture and implementation

1. Read [cross-platform-architecture](../experts/bridge/cross-platform-architecture-ts.md).
2. Write a `PLAN.md` with analysis results, routing decisions, and feature migration order.
3. Implement feature by feature using the advisor's prioritized list.

## Agents Toolkit Compatibility

For ATK-compatible project structure (m365agents.yml, env/ files, appPackage), see the parent skill:
- **[Parent SKILL.md](../SKILL.md)** — ATK CLI setup, sub-skill routing, workflow chains
- **[manifest-and-yaml.md](../toolkit/manifest-and-yaml.md)** — Project files, YAML config, env vars, .localConfigs flow
- **[commands.md](../toolkit/commands.md)** — Package, validate, share, collaborate, environment management
- **[templates.md](../toolkit/templates.md)** — All templates with language support

For Teams manifest schema and packaging, see [runtime.manifest-ts](../experts/teams/runtime.manifest-ts.md).

## Error Recovery

If the expert system fails to cover a topic:
1. Read [experts/fallback.md](../experts/fallback.md).
2. Phase 1: Re-scan all domain routers for missed experts.
3. Phase 2: Web-search for remaining knowledge gaps.
4. Consider creating a new expert using [experts/builder.md](../experts/builder.md).

## Expert Domains

| Domain | Index | Description |
|---|---|---|
| Slack | [experts/slack/index.md](../experts/slack/index.md) | Bolt framework, events, OAuth, commands, UI, CLI |
| Teams | [experts/teams/index.md](../experts/teams/index.md) | Teams AI SDK, Adaptive Cards, Graph, MCP, A2A, deploy |
| Bridge | [experts/bridge/index.md](../experts/bridge/index.md) | 27 cross-platform conversion experts (the core differentiator) |
| Deploy | [experts/deploy/index.md](../experts/deploy/index.md) | Azure & AWS deployment walkthroughs |
| Models | [experts/models/index.md](../experts/models/index.md) | AI model providers (OpenAI, Anthropic, Bedrock, etc.) |
| Convert | [experts/convert/index.md](../experts/convert/index.md) | Language conversion to TypeScript |
| Security | [experts/security/index.md](../experts/security/index.md) | Input validation, secrets management |

## Platform Comparison Docs

Reference guides for side-by-side platform comparison:

- [UI Components](../docs/ui-components.md) — Block Kit vs Adaptive Cards
- [Messaging & Commands](../docs/messaging-and-commands.md)
- [Identity & Auth](../docs/identity-and-auth.md)
- [Interactive Responses](../docs/interactive-responses.md)
- [Files & Links](../docs/files-and-links.md)
- [Middleware & Handlers](../docs/middleware-and-handlers.md)
- [Infrastructure](../docs/infrastructure.md)
- [Advanced Features](../docs/advanced-features.md)
- [Feature Gaps](../docs/feature-gaps.md)
- [Workflow Scenarios](../docs/workflows.md) — Message-native workflow patterns (triggers, state, logic, AI, visibility) for Teams bots

すべてのファイル

1件のファイル

slack-to-teamsをインストール

スキルファイルをダウンロードして、.claude/skills/ ディレクトリに展開してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/microsoft/skills/tree/main/.github/plugins/microsoft-365-agents-toolkit/skills/teams-app-developer/slack-to-teams # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills/ にコピーしてください。Claude はそのスキルを自動的に検出し、使用します。
リポジトリ microsoft/skills

関連スキル

agentwallet
更新された時間 2026年7月7日
brightdata-cli
更新された時間 2026年6月29日
humanize
更新された時間 2026年7月7日
korean-stock-search
更新された時間 2026年7月8日
OR