microsoft/slack-to-teams
Sub-skill of microsoft-365-agents-toolkit. Routed expert system with 100+ micro-expert files for migrating Slack bots to Teams, cross-platform bridging, and dual-platform bot development. USE FOR: migrating Slack bot to Teams, adding Teams support to Slack bot, building dual-platform bots, converting Block Kit to Adaptive Cards, identity/OAuth bridging, deploying bots to Azure or AWS, configuring AI model providers. DO NOT USE FOR: general web development, non-bot projects, standalone Teams development without Slack (use parent skill instead).
This is a copy. The original lives at microsoft/work-iq-slack-to-teams.
npx skills add https://github.com/microsoft/skills --skill slack-to-teams
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.
Assess whether the developer has an existing codebase or is starting fresh.
Ask the developer which platform(s) to support:
PLAN.md in the target project root with platform, features, experts loaded.Follow the advisor's or domain router's output. Implement feature by feature:
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/bolt, @slack/web-api, slack_bolt, app.message, app.command, ack()@microsoft/teams-ai, botbuilder, TeamsActivityHandler, app.turn, Adaptive CardsDetect 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).
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 |
PLAN.md with analysis results, routing decisions, and feature migration order.For ATK-compatible project structure (m365agents.yml, env/ files, appPackage), see the parent skill:
For Teams manifest schema and packaging, see runtime.manifest-ts.
If the expert system fails to cover a topic:
| 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 |
Reference guides for side-by-side platform comparison:
Take microsoft/slack-to-teams from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.