Slack To Teams
MicrosoftOfficialPublished by Microsoft
- Skill
- Workflow
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Slack to Teams skill provides a structured, routed expert system designed to assist developers in managing bot projects across Slack and Microsoft Teams. It utilizes over 100 micro-expert files to guide users through new project creation or the migration of existing bots. The system includes specialized domains for platform-specific SDKs, cross-platform bridging, deployment, and AI model configuration, ensuring compatibility with the Microsoft Agents Toolkit.
What it does
- Guides developers through migrating Slack bots to Microsoft Teams.
- Supports the development of dual-platform bots that run on both Slack and Teams.
- Provides architectural patterns for bridging identity, events, and transport between platforms.
- Facilitates the conversion of UI components from Slack Block Kit to Adaptive Cards.
- Automates project analysis to identify language, platform, and feature gaps.
- Offers deployment guidance for hosting bots on Azure or AWS.
When to use it
- When you need to add Microsoft Teams support to an existing Slack bot.
- When starting a new project that requires cross-platform bot functionality.
- When you need to convert UI elements between Slack and Teams standards.
- When configuring AI model providers for a bot project.
- When you need to bridge authentication or event handling between different messaging platforms.
Advantages
- Provides a modular, expert-driven approach to complex cross-platform migrations.
- Includes a robust gap analysis workflow to identify missing technical requirements.
- Offers clear architectural guidance for maintaining dual-platform compatibility.
- Supports a wide range of programming languages through tiered SDK guidance.
- Integrates seamlessly with the Microsoft Agents Toolkit for standardized project structures.
Usage examples
- “I have an existing Slack bot built with Bolt. How can I add support for Microsoft Teams?”
- The agent will initiate the Existing Project Flow, analyze your current dependencies, and provide a step-by-step plan to bridge your Slack bot to Teams using the cross-platform advisor.
- “Help me design a new bot that works on both Slack and Teams.”
- The agent will trigger the New Project Flow, guide you through platform selection, and load the cross-platform architecture experts to ensure your bot is built with dual-platform compatibility from the start.
- “How do I convert my Slack Block Kit UI to Teams Adaptive Cards?”
- The agent will route you to the conversion domain, providing specific patterns and rules for mapping Block Kit components to their Adaptive Card equivalents.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/microsoft/slack-to-teams/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip slack-to-teams.zip -d .agents/skills
Documentation by Microsoft
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. For local testing, see ../test-playground/test-playground.md or ../test-teams/test-teams.md. For cloud deploy, see ../provision-deploy/provision-deploy.md. For troubleshooting, see ../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
Existing project → go to 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
Read experts/index.md — the root router.
Execute the pre-task interview defined in that file.
Route based on platform choice:
Slack + Teams → Read experts/bridge/index.md. Load cross-platform-advisor.
Slack only → Read experts/slack/index.md.
Teams only → Read experts/teams/index.md.
1c: Architecture setup
Read cross-platform-architecture (even for single-platform — establishes patterns for adding a second platform later).
Let the domain router and advisor take over.
Write a
PLAN.mdin the target project root with platform, features, experts loaded.
1d: Implementation
Follow the advisor's or domain router's output. Implement feature by feature:
Pick the next feature from the prioritized list.
Load the expert(s) specified for that feature.
Implement using the expert's patterns and rules.
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, teams-python, python-cross-platform |
| 3: Split SDK | Java, C# | One platform has SDK, other needs REST. Load bolt-java or teams-dotnet + rest-only |
| 4: No SDK | Go, Ruby, Rust | REST-only for both. Load rest-only |
2c: Expert coverage gap analysis
Read experts/analyzer.md.
Execute the analyzer workflow: scan manifests, dependencies, source files.
Cross-reference detected tech against existing experts.
Present gap analysis — covered vs uncovered technologies.
2d: Build missing experts (if needed)
Read experts/builder.md.
For each gap: analyze project usage → read package source → draft expert → validate → wire into routing.
Use experts/_expert-ts.md as the template.
2e: Load the expert system
Read experts/index.md — the root router.
Execute the pre-task interview, pre-filling with analysis results from 2a.
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
Load cross-platform-advisor if bridging. Feed analysis results into Phase 1.
2f: Architecture and implementation
Read cross-platform-architecture.
Write a
PLAN.mdwith analysis results, routing decisions, and feature migration order.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 — ATK CLI setup, sub-skill routing, workflow chains
manifest-and-yaml.md — Project files, YAML config, env vars, .localConfigs flow
commands.md — Package, validate, share, collaborate, environment management
templates.md — All templates with language support
For Teams manifest schema and packaging, see runtime.manifest-ts.
Error Recovery
If the expert system fails to cover a topic:
Read experts/fallback.md.
Phase 1: Re-scan all domain routers for missed experts.
Phase 2: Web-search for remaining knowledge gaps.
Consider creating a new expert using experts/builder.md.
Expert Domains
| Domain | Index | Description |
|---|---|---|
| Slack | experts/slack/index.md | Bolt framework, events, OAuth, commands, UI, CLI |
| Teams | experts/teams/index.md | Teams AI SDK, Adaptive Cards, Graph, MCP, A2A, deploy |
| Bridge | experts/bridge/index.md | 27 cross-platform conversion experts (the core differentiator) |
| Deploy | experts/deploy/index.md | Azure & AWS deployment walkthroughs |
| Models | experts/models/index.md | AI model providers (OpenAI, Anthropic, Bedrock, etc.) |
| Convert | experts/convert/index.md | Language conversion to TypeScript |
| Security | experts/security/index.md | Input validation, secrets management |
Platform Comparison Docs
Reference guides for side-by-side platform comparison:
UI Components — Block Kit vs Adaptive Cards
Messaging & Commands
Identity & Auth
Interactive Responses
Files & Links
Middleware & Handlers
Infrastructure
Advanced Features
Feature Gaps
Workflow Scenarios — Message-native workflow patterns (triggers, state, logic, AI, visibility) for Teams bots
Files
- ATTRIBUTION.mdAdded by AutoGineer916 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md8.9 KiB
SKILL.md
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. For local testing, see ../test-playground/test-playground.md or ../test-teams/test-teams.md. For cloud deploy, see ../provision-deploy/provision-deploy.md. For troubleshooting, see ../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
Existing project → go to 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
Read experts/index.md — the root router.
Execute the pre-task interview defined in that file.
Route based on platform choice:
Slack + Teams → Read experts/bridge/index.md. Load cross-platform-advisor.
Slack only → Read experts/slack/index.md.
Teams only → Read experts/teams/index.md.
1c: Architecture setup
Read cross-platform-architecture (even for single-platform — establishes patterns for adding a second platform later).
Let the domain router and advisor take over.
Write a
PLAN.mdin the target project root with platform, features, experts loaded.
1d: Implementation
Follow the advisor's or domain router's output. Implement feature by feature:
Pick the next feature from the prioritized list.
Load the expert(s) specified for that feature.
Implement using the expert's patterns and rules.
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, teams-python, python-cross-platform |
| 3: Split SDK | Java, C# | One platform has SDK, other needs REST. Load bolt-java or teams-dotnet + rest-only |
| 4: No SDK | Go, Ruby, Rust | REST-only for both. Load rest-only |
2c: Expert coverage gap analysis
Read experts/analyzer.md.
Execute the analyzer workflow: scan manifests, dependencies, source files.
Cross-reference detected tech against existing experts.
Present gap analysis — covered vs uncovered technologies.
2d: Build missing experts (if needed)
Read experts/builder.md.
For each gap: analyze project usage → read package source → draft expert → validate → wire into routing.
Use experts/_expert-ts.md as the template.
2e: Load the expert system
Read experts/index.md — the root router.
Execute the pre-task interview, pre-filling with analysis results from 2a.
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
Load cross-platform-advisor if bridging. Feed analysis results into Phase 1.
2f: Architecture and implementation
Read cross-platform-architecture.
Write a
PLAN.mdwith analysis results, routing decisions, and feature migration order.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 — ATK CLI setup, sub-skill routing, workflow chains
manifest-and-yaml.md — Project files, YAML config, env vars, .localConfigs flow
commands.md — Package, validate, share, collaborate, environment management
templates.md — All templates with language support
For Teams manifest schema and packaging, see runtime.manifest-ts.
Error Recovery
If the expert system fails to cover a topic:
Read experts/fallback.md.
Phase 1: Re-scan all domain routers for missed experts.
Phase 2: Web-search for remaining knowledge gaps.
Consider creating a new expert using experts/builder.md.
Expert Domains
| Domain | Index | Description |
|---|---|---|
| Slack | experts/slack/index.md | Bolt framework, events, OAuth, commands, UI, CLI |
| Teams | experts/teams/index.md | Teams AI SDK, Adaptive Cards, Graph, MCP, A2A, deploy |
| Bridge | experts/bridge/index.md | 27 cross-platform conversion experts (the core differentiator) |
| Deploy | experts/deploy/index.md | Azure & AWS deployment walkthroughs |
| Models | experts/models/index.md | AI model providers (OpenAI, Anthropic, Bedrock, etc.) |
| Convert | experts/convert/index.md | Language conversion to TypeScript |
| Security | experts/security/index.md | Input validation, secrets management |
Platform Comparison Docs
Reference guides for side-by-side platform comparison:
UI Components — Block Kit vs Adaptive Cards
Messaging & Commands
Identity & Auth
Interactive Responses
Files & Links
Middleware & Handlers
Infrastructure
Advanced Features
Feature Gaps
Workflow Scenarios — Message-native workflow patterns (triggers, state, logic, AI, visibility) for Teams bots
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/skills · .github/plugins/microsoft-365-agents-toolkit/skills/teams-app-developer/slack-to-teams · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download slack-to-teams.zip