옵션
집집 Skill API 개발 slack-to-teams

slack-to-teams

microsoft/skills microsoft/skills

Slack 봇을 Microsoft Teams로 마이그레이션하고, 양쪽 플랫폼에서 작동하는 봇을 구축하며, 100개 이상의 마이크로 전문가 파일을 갖춘 라우팅 전문가 시스템을 사용하여 Block Kit와 Adaptive Cards 간에 변환합니다.

...모든 것을 확장하십시오
35
업데이트 된 시간 2026년 9월 19일

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과 Adaptive Cards 간 UI 변환
  • 플랫폼 간 신원, 이벤트, 파일 또는 전송 브리징
  • Microsoft Agents Toolkit(m365agents.yml, env/, appPackage 자리 표시자)과 호환되는 Teams 봇 프로젝트 만들기

절차

1단계: 프로젝트 유형 결정

개발자가 기존 코드베이스를 가지고 있는지 아니면 새로 시작하는지 평가합니다.

  • 새 프로젝트 → 새 프로젝트 흐름으로 이동
  • 기존 프로젝트 → 기존 프로젝트 흐름으로 이동

새 프로젝트 흐름

1a: 플랫폼 선택

개발자에게 지원할 플랫폼(s)을 묻습니다:

  • Slack + Teams (듀얼 플랫폼)
  • Slack 전용
  • Teams 전용

1b: 전문가 시스템 로드

  1. experts/index.md — 루트 라우터 읽기.
  2. 해당 파일에 정의된 사전 작업 인터뷰 실행.
  3. 플랫폼 선택에 따라 라우팅:
    • Slack + Teams → experts/bridge/index.md 읽기. 크로스 플랫폼 어드바이저 로드.
    • Slack 전용 → experts/slack/index.md 읽기.
    • Teams 전용 → experts/teams/index.md 읽기.

1c: 아키텍처 설정

  1. cross-platform-architecture 읽기 (단일 플랫폼인 경우에도 — 나중에 두 번째 플랫폼을 추가하기 위한 패턴 확립).
  2. 도메인 라우터와 어드바이저가 작업을 이어받도록 합니다.
  3. 플랫폼, 기능, 로드된 전문가를 포함하는 PLAN.md를 대상 프로젝트 루트에 작성합니다.

1d: 구현

어드바이저 또는 도메인 라우터의 출력을 따릅니다. 기능별로 구현:

  1. 우선순위 목록에서 다음 기능을 선택합니다.
  2. 해당 기능에 대해 지정된 전문가(s)를 로드합니다.
  3. 전문가의 패턴과 규칙을 사용하여 구현합니다.
  4. 전문가의 함정 섹션에 대해 검증합니다.

기존 프로젝트 흐름

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, Adaptive Cards

기능 감지 — 슬래시 명령, Block Kit/Adaptive Cards, 작업 처리기, OAuth, 파일 업로드/다운로드, 예약, 스레딩, AI/LLM 호출, 프로액티브 메시지에 대해 스캔합니다.

아키텍처 감지 — 웹 프레임워크(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: 전문가 커버리지 격차 분석

  1. experts/analyzer.md 읽기.
  2. 분석기 워크플로우 실행: 매니페스트, 의존성, 소스 파일 스캔.
  3. 감지된 기술을 기존 전문가와 교차 참조합니다.
  4. 격차 분석 제시 — 커버된 기술 vs 커버되지 않은 기술.

2d: 누락된 전문가 빌드 (필요한 경우)

  1. experts/builder.md 읽기.
  2. 각 격차에 대해: 프로젝트 사용 분석 → 패키지 소스 읽기 → 전문가 초안 작성 → 검증 → 라우팅에 연결.
  3. experts/_expert-ts.md를 템플릿으로 사용합니다.

2e: 전문가 시스템 로드

  1. experts/index.md — 루트 라우터 읽기.
  2. 사전 작업 인터뷰 실행, 2a의 분석 결과로 사전 채우기.
  3. 감지된 플랫폼과 작업 의도에 따라 라우팅:
    • Slack 있음, Teams 원함 → Bridge 도메인
    • Teams 있음, Slack 원함 → Bridge 도메인
    • 둘 다 있음 → 작업에 따라 라우팅 (브리징 정교화, 배포, 모델 등)
    • 둘 다 없음 → 대상 플랫폼(s) 묻기
  4. 브리징하는 경우 cross-platform-advisor 로드. 분석 결과를 1단계에 피드합니다.

2f: 아키텍처 및 구현

  1. cross-platform-architecture 읽기.
  2. 분석 결과, 라우팅 결정 및 기능 마이그레이션 순위를 포함하는 PLAN.md 작성.
  3. 어드바이저의 우선순위 목록을 사용하여 기능별로 구현합니다.

에이전트 툴킷 호환성

ATK 호환 프로젝트 구조(m365agents.yml, env/ 파일, appPackage)에 대해서는 부모 스킬을 참조하십시오:

  • 부모 SKILL.md — ATK CLI 설정, 하위 스킬 라우팅, 워크플로우 체인
  • manifest-and-yaml.md — 프로젝트 파일, YAML 구성, 환경 변수, .localConfigs 흐름
  • commands.md — 패키지, 유효성 검사, 공유, 협업, 환경 관리
  • templates.md — 언어 지원이 있는 모든 템플릿

Teams 매니페스트 스키마 및 패키징에 대해서는 runtime.manifest-ts를 참조하십시오.

오류 복구

전문가 시스템이 주제를 커버하지 못하는 경우:

  1. experts/fallback.md 읽기.
  2. 1단계: 누락된 전문가에 대해 모든 도메인 라우터 다시 스캔.
  3. 2단계: 나머지 지식 격차에 대해 웹 검색.
  4. experts/builder.md를 사용하여 새 전문가 생성 고려.

전문가 도메인

도메인색인설명
Slackexperts/slack/index.mdBolt 프레임워크, 이벤트, OAuth, 명령, UI, CLI
Teamsexperts/teams/index.mdTeams AI SDK, Adaptive Cards, Graph, MCP, A2A, 배포
Bridgeexperts/bridge/index.md27개 크로스 플랫폼 변환 전문가 (핵심 차별화 요소)
Deployexperts/deploy/index.mdAzure 및 AWS 배포 안내서
Modelsexperts/models/index.mdAI 모델 공급자 (OpenAI, Anthropic, Bedrock 등)
Convertexperts/convert/index.mdTypeScript로의 언어 변환
Securityexperts/security/index.md입력 유효성 검사, 비밀 관리

플랫폼 비교 문서

측면 간 플랫폼 비교를 위한 참조 가이드:

  • UI 구성 요소 — Block Kit vs Adaptive Cards
  • 메시징 및 명령
  • 신원 및 인증
  • 상호작용 응답
  • 파일 및 링크
  • 미들웨어 및 처리기
  • 인프라
  • 고급 기능
  • 기능 격차
  • 워크플로우 시나리오 — Teams 봇을 위한 메시지 네이티브 워크플로우 패턴 (트리거, 상태, 논리, AI, 가시성)
GitHub에서 보기
---
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

복사 복사
빠른 설정: 스킬 폴더를 .claude/skills/에 복사하세요. Claude가 자동으로 감지하고 사용합니다.
저장소 microsoft/skills

관련 스킬

agentwallet
업데이트 된 시간 2026년 7월 7일
brightdata-cli
업데이트 된 시간 2026년 6월 29일
humanize
업데이트 된 시간 2026년 7월 7일
korean-stock-search
업데이트 된 시간 2026년 7월 8일
OR