plugins/microsoft-365-agents-toolkit/skills/teams-app-developer/slack-to-teams/SKILL.md
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).
npx skillsauth add microsoft/work-iq slack-to-teamsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:
business
Generates a Microsoft Planner status report for one plan, using task status, owners, dates, priorities, buckets, risks, wins, progress, upcoming commitments, and milestones.
tools
Adds Microsoft Entra SSO (single sign-on, no OBO) to a Microsoft 365 Copilot declarative agent whose tools are served by an MCP server — for BOTH widget standards: (1) the MCP Apps standard (from create-mcp-app / the MCP Apps SDK): a plugin manifest such as readiness_plugin.json (or another *_plugin.json with a runtimes[] block) and an EXPRESS-based MCP server; and (2) the OpenAI Apps (OAI Apps) layout from the ui-widget-developer skill: appPackage/mcpPlugin.json and a raw-http MCP server. When the layout is ambiguous, DEFAULT to the MCP Apps standard (most projects use it). The skill auto-detects the layout, reuses the existing named devtunnel + env/.env.local (never creates a second tunnel), registers the Entra app + ATK OAuth (MicrosoftEntra), patches the plugin manifest's runtimes[] auth to OAuthPluginVault, injects a minimal JWKS bearer-token guard into the existing server (an EXPRESS middleware for MCP Apps, or a raw-http guard WITHOUT rewriting to Express for OAI Apps), validates, sideloads, and prints an app-registration summary. SSO only — no OBO. Triggered by: "add sso to my mcp server", "wire entra sso for my copilot agent", "setup sso for mcp apps", "add sso after create-mcp-app", "add sso after ui-widget-developer", "add entra auth to my express mcp server", "configure only sso no obo"
tools
Build MCP servers for Copilot Chat using the OpenAI Apps SDK or MCP Apps SDK widget rendering support (any language). Use this skill when: - Creating MCP servers that integrate with M365 Copilot declarative agents - Building rich interactive widgets (React + Fluent UI) that render in Copilot Chat - Implementing tools that return structuredContent for widget rendering - Adapting an existing MCP server to support Copilot widget rendering - Setting up devtunnels for localhost MCP server exposure - Configuring mcpPlugin.json manifests with RemoteMCPServer runtime Do NOT use this skill for general agent development (scaffolding, manifests, deployment) — use declarative-agent-developer instead. This skill is ONLY for MCP server + widget development. Triggers: "MCP server for Copilot", "OpenAI Apps SDK", "Copilot widget", "structuredContent", "MCP plugin", "devtunnels MCP", "OAI app", "widget rendering", "UI widget"
tools
Browse and discover SharePoint sites, lists, document libraries, and file contents — navigate your SharePoint world without leaving the CLI.