slack-to-teams
microsoft/skills
Migre bots do Slack para o Microsoft Teams, construa bots de plataforma dupla e converta entre Block Kit e Adaptive Cards usando um sistema especialista roteado com mais de 100 arquivos de microespecialistas.
...Expandir tudoSistema Especialista de Slack para Teams
Um sistema especialista roteado com mais de 100 arquivos de microespecialistas para migrar bots do Slack para o Teams e construir bots multiplataforma.
Habilidade pai: Para configuração do ATK CLI e roteamento, consulte ../SKILL.md. Para testes locais, consulte ../test-playground/test-playground.md ou ../test-teams/test-teams.md. Para implantação em nuvem, consulte ../provision-deploy/provision-deploy.md. Para solução de problemas, consulte ../troubleshoot/troubleshoot.md.
Quando Usar
- Criando um novo bot do Slack, bot do Teams ou bot multiplataforma
- Adicionando suporte ao Teams a um bot do Slack existente (ou vice-versa)
- Migrando um bot entre plataformas
- Implantando um bot no Azure ou AWS
- Configurando provedores de modelos de IA para um bot
- Convertendo a interface do usuário entre Block Kit e Adaptive Cards
- Conectando identidade, eventos, arquivos ou transporte entre plataformas
- Tornando um projeto de bot do Teams compatível com o Microsoft Agents Toolkit (m365agents.yml, env/, placeholders do appPackage)
Procedimento
Etapa 1: Determinar o tipo de projeto
Avalie se o desenvolvedor possui uma base de código existente ou está começando do zero.
- Novo projeto → vá para o Fluxo de Novo Projeto
- Projeto existente → vá para o Fluxo de Projeto Existente
Fluxo de Novo Projeto
1a: Seleção de plataforma
Pergunte ao desenvolvedor qual(is) plataforma(s) deve(m) ser suportada(s):
- Slack + Teams (multiplataforma)
- Apenas Slack
- Apenas Teams
1b: Carregar o sistema especialista
- Leia experts/index.md — o roteador raiz.
- Execute a entrevista pré-tarefa definida nesse arquivo.
- Roteie com base na escolha da plataforma:
- Slack + Teams → Leia experts/bridge/index.md. Carregue o consultor multiplataforma.
- Apenas Slack → Leia experts/slack/index.md.
- Apenas Teams → Leia experts/teams/index.md.
1c: Configuração da arquitetura
- Leia cross-platform-architecture (mesmo para plataformas únicas — estabelece padrões para adicionar uma segunda plataforma posteriormente).
- Deixe o roteador de domínio e o consultor assumirem o controle.
- Escreva um
PLAN.mdna raiz do projeto de destino com a plataforma, recursos e especialistas carregados.
1d: Implementação
Siga a saída do consultor ou do roteador de domínio. Implemente recurso por recurso:
- Escolha o próximo recurso da lista priorizada.
- Carregue o(s) especialista(s) especificado(s) para esse recurso.
- Implemente usando os padrões e regras do especialista.
- Verifique contra a seção de armadilhas do especialista.
Fluxo de Projeto Existente
2a: Analisar o projeto
Execute essas quatro subanálises em paralelo:
Detectar linguagem — Procure por 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).
Detectar plataforma atual — Analise as dependências em busca de indicadores de SDK:
- Slack:
@slack/bolt,@slack/web-api,slack_bolt,app.message,app.command,ack() - Teams:
@microsoft/teams-ai,botbuilder,TeamsActivityHandler,app.turn, Adaptive Cards
Detectar recursos — Procure por comandos slash, Block Kit/Adaptive Cards, manipuladores de ação, OAuth, upload/download de arquivos, agendamento, encadeamento, chamadas de IA/LLM, mensagens proativas.
Detectar arquitetura — Procure por framework web (Express, Fastify, etc.), destino de hospedagem (Azure, AWS, Docker), provedor de nuvem, padrão de arquitetura (bot único, bot duplo, monolito).
2b: Porta de linguagem
Classifique a linguagem detectada em níveis de SDK:
| Nível | Linguagens | Orientação |
|---|---|---|
| **1: SDK Completo** | TypeScript / JavaScript | Sistema especialista completo disponível |
| **2: Adaptar** | Python | Ambos os SDKs existem — adapte os padrões TS. Carregue bolt-python, teams-python, python-cross-platform |
| **3: SDK Dividido** | Java, C# | Uma plataforma tem SDK, a outra precisa de REST. Carregue bolt-java ou teams-dotnet + rest-only |
| **4: Sem SDK** | Go, Ruby, Rust | Apenas REST para ambos. Carregue rest-only |
2c: Análise de lacuna de cobertura de especialistas
- Leia experts/analyzer.md.
- Execute o fluxo de trabalho do analisador: analise manifestos, dependências, arquivos de origem.
- Compare a tecnologia detectada com os especialistas existentes.
- Apresente a análise de lacuna — tecnologias cobertas versus não cobertas.
2d: Criar especialistas ausentes (se necessário)
- Leia experts/builder.md.
- Para cada lacuna: analise o uso do projeto → leia a fonte do pacote → rascunhe o especialista → valide → conecte ao roteamento.
- Use experts/_expert-ts.md como modelo.
2e: Carregar o sistema especialista
- Leia experts/index.md — o roteador raiz.
- Execute a entrevista pré-tarefa, preenchendo com os resultados da análise de 2a.
- Roteie com base na plataforma detectada e na intenção da tarefa:
- Tem Slack, quer Teams → domínio Bridge
- Tem Teams, quer Slack → domínio Bridge
- Tem ambos → Roteie por tarefa (refinamento de ponte, implantação, modelos, etc.)
- Não tem nenhum → Pergunte qual(is) plataforma(s) direcionar
- Carregue o consultor multiplataforma se estiver fazendo ponte. Alimente os resultados da análise na Fase 1.
2f: Arquitetura e implementação
- Leia cross-platform-architecture.
- Escreva um
PLAN.mdcom resultados da análise, decisões de roteamento e ordem de migração de recursos. - Implemente recurso por recurso usando a lista priorizada do consultor.
Compatibilidade com o Toolkit de Agentes
Para estrutura de projeto compatível com ATK (m365agents.yml, arquivos env/, appPackage), consulte a habilidade pai:
- Habilidade Pai SKILL.md — Configuração do ATK CLI, roteamento de sub-habilidades, cadeias de fluxo de trabalho
- manifest-and-yaml.md — Arquivos do projeto, configuração YAML, variáveis de ambiente, fluxo .localConfigs
- commands.md — Empacotar, validar, compartilhar, colaborar, gerenciamento de ambiente
- templates.md — Todos os modelos com suporte de linguagem
Para o esquema e empacotamento do manifesto do Teams, consulte runtime.manifest-ts.
Recuperação de Erros
Se o sistema especialista não conseguir cobrir um tópico:
- Leia experts/fallback.md.
- Fase 1: Reanalise todos os roteadores de domínio em busca de especialistas perdidos.
- Fase 2: Pesquise na web para preencher lacunas de conhecimento restantes.
- Considere criar um novo especialista usando experts/builder.md.
Domínios de Especialistas
| Domínio | Índice | Descrição |
|---|---|---|
| Slack | experts/slack/index.md | Framework Bolt, eventos, OAuth, comandos, UI, CLI |
| Teams | experts/teams/index.md | Teams AI SDK, Adaptive Cards, Graph, MCP, A2A, implantação |
| Ponte | experts/bridge/index.md | 27 especialistas de conversão multiplataforma (o principal diferencial) |
| Implantação | experts/deploy/index.md | Tutoriais de implantação no Azure e AWS |
| Modelos | experts/models/index.md | Provedores de modelos de IA (OpenAI, Anthropic, Bedrock, etc.) |
| Conversão | experts/convert/index.md | Conversão de linguagem para TypeScript |
| Segurança | experts/security/index.md | Validação de entrada, gerenciamento de segredos |
Documentos de Comparação de Plataformas
Guias de referência para comparação lado a lado de plataformas:
- Componentes de UI — Block Kit vs Adaptive Cards
- Mensagens e Comandos
- Identidade e Autenticação
- Respostas Interativas
- Arquivos e Links
- Middleware e Manipuladores
- Infraestrutura
- Recursos Avançados
- Lacunas de Recursos
- Cenários de Fluxo de Trabalho — Padrões de fluxo de trabalho nativos de mensagens (gatilhos, estado, lógica, IA, visibilidade) para bots do Teams
---
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
Todos os arquivos
1 arquivosInstalar slack-to-teams
Baixe e extraia os arquivos de habilidade para o seu diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
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
Copiar





Lar
