slack-to-teams
microsoft/skills
將 Slack 機器人遷移到 Microsoft Teams,構建跨平臺機器人,並使用包含 100 多個微專家檔案的路由專家系統在 Block Kit 和自適應卡片之間進行轉換。
...展開全部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 和自適應卡片之間轉換 UI
- 橋接平臺間的身份、事件、檔案或傳輸
- 使 Teams 機器人專案與 Microsoft Agents Toolkit (m365agents.yml, env/, appPackage 佔位符) 相容
程式
第 1 步:確定專案型別
評估開發人員是擁有現有程式碼庫還是從頭開始。
- 新專案 → 進入新專案流程
- 現有專案 → 進入現有專案流程
新專案流程
1a:平臺選擇
詢問開發人員支援哪些平臺:
- Slack + Teams(雙平臺)
- 僅 Slack
- 僅 Teams
1b:載入專家系統
- 閱讀 experts/index.md — 根路由器。
- 執行該檔案中定義的預任務訪談。
- 根據平臺選擇進行路由:
- Slack + Teams → 閱讀 experts/bridge/index.md。載入跨平臺顧問。
- 僅 Slack → 閱讀 experts/slack/index.md。
- 僅 Teams → 閱讀 experts/teams/index.md。
1c:架構設定
- 閱讀 cross-platform-architecture(即使是單平臺——也為稍後新增第二個平臺建立模式)。
- 讓領域路由器和顧問接管。
- 在目標專案根目錄中編寫
PLAN.md,包含平臺、功能、載入的專家。
1d:實施
遵循顧問或領域路由器的輸出。按功能實施:
- 從優先順序列表中選取下一個功能。
- 載入該功能指定的專家。
- 使用專家的模式和規則進行實施。
- 根據專家的陷阱部分進行驗證。
現有專案流程
2a:分析專案
並行執行以下四個子分析:
檢測語言 — 掃描 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、自適應卡片
檢測功能 — 掃描斜槓命令、Block Kit/自適應卡片、操作處理程式、OAuth、檔案上傳/下載、排程、執行緒、AI/LLM 呼叫、主動訊息。
檢測架構 — 掃描 Web 框架(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:專家覆蓋範圍差距分析
- 閱讀 experts/analyzer.md。
- 執行分析器工作流:掃描清單、依賴項、原始檔。
- 將檢測到的技術與現有專家進行交叉引用。
- 展示差距分析 — 已覆蓋與未覆蓋的技術。
2d:構建缺失的專家(如果需要)
- 閱讀 experts/builder.md。
- 對於每個差距:分析專案使用情況 → 讀取包源 → 起草專家 → 驗證 → 整合到路由中。
- 使用 experts/_expert-ts.md 作為模板。
2e:載入專家系統
- 閱讀 experts/index.md — 根路由器。
- 執行預任務訪談,使用 2a 中的分析結果進行預填充。
- 根據檢測到的平臺和任務意圖進行路由:
- 有 Slack,想要 Teams → 橋接領域
- 有 Teams,想要 Slack → 橋接領域
- 兩者都有 → 按任務路由(橋接最佳化、部署、模型等)
- 兩者都沒有 → 詢問要針對哪些平臺
- 如果進行橋接,載入 cross-platform-advisor。將分析結果輸入到第 1 階段。
2f:架構和實施
- 閱讀 cross-platform-architecture。
- 編寫包含分析結果、路由決策和功能遷移順序的
PLAN.md。 - 使用顧問的優先順序列表按功能實施。
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。
錯誤恢復
如果專家系統未能涵蓋某個主題:
- 閱讀 experts/fallback.md。
- 第 1 階段:重新掃描所有領域路由器以查詢遺漏的專家。
- 第 2 階段:透過 Web 搜尋查詢剩餘的知識差距。
- 考慮使用 experts/builder.md 建立新專家。
專家領域
| 領域 | 索引 | 描述 |
|---|---|---|
| Slack | experts/slack/index.md | Bolt 框架、事件、OAuth、命令、UI、CLI |
| Teams | experts/teams/index.md | Teams AI SDK、自適應卡片、Graph、MCP、A2A、部署 |
| 橋接 | experts/bridge/index.md | 27 個跨平臺轉換專家(核心差異點) |
| 部署 | experts/deploy/index.md | Azure 和 AWS 部署演練 |
| 模型 | experts/models/index.md | AI 模型提供商(OpenAI、Anthropic、Bedrock 等) |
| 轉換 | experts/convert/index.md | 轉換為 TypeScript 的語言轉換 |
| 安全 | experts/security/index.md | 輸入驗證、金鑰管理 |
平臺比較文件
用於並排平臺比較的參考指南:
- UI 元件 — Block Kit 與自適應卡片
- 訊息傳遞與命令
- 身份與認證
- 互動式響應
- 檔案與連結
- 中介軟體與處理程式
- 基礎設施
- 高階功能
- 功能差距
- 工作流場景 — Teams 機器人的訊息原生工作流模式(觸發器、狀態、邏輯、AI、可見性)
---
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
複製





首頁
