teams-app-developer
microsoft/skills
ATK CLI를 사용하여 Teams 및 Copilot용 Microsoft 365 앱과 에이전트를 빌드, 테스트, 배포하며, 프로젝트 생성, 로컬 테스트, 클라우드 배포, 문제 해결, Slack에서 Teams로의 마이그레이션을 위한 하위 스킬을 포함합니다.
...모든 것을 확장하십시오Microsoft 365 에이전트 툴킷 스킬
ATK CLI를 사용하여 Microsoft 365 에이전트 및 Teams 앱을 구축하세요.
AI 행동 지침
테스트 전략: 먼저 에이전트 플레이그라운드를 권장합니다(더 빠르고, M365 필요 없음). 사용자가 명시적으로 요청하는 경우에만 Teams 워크플로우를 사용하세요.
환경 변수: 절대 비밀 정보를 하드코딩하거나 가상의 자리 표시자 값을 생성하지 마세요. 항상 사용자에게 실제 값을 요청하세요.
오류 처리: 오류 메시지를 주의 깊게 읽으세요.
env/.env.local,.localConfigs,atk auth list를 확인하세요. 일반적인 함정:AADSTS7000229→ YAML에서aadApp/create에generateServicePrincipal: true누락 — 추가하고 다시 프로비저닝.localConfigs에TENANT_ID누락 → SDK가 잘못된 토큰 권한을 사용 → Bot Connector에서 401 오류- 인증 수정 후 401이 지속됨 → devtunnel URL이 차단되었을 수 있음 — 새 터널 생성
- 전체 진단 단계는 troubleshoot/troubleshoot.md를 참조하세요
장시간 실행 명령 — 완료 대기:
atk new,atk provision,atk deploy는 수분이 걸릴 수 있음- 다음 단계를 실행하기 전에 항상 완료를 기다리세요(타임아웃 120000ms 이상)
로컬 서비스 시작 — 터미널이 멈춤(예상됨):
npm run dev,npm start,python app.py,devtunnel host등은 멈춤 — 프로세스가 무한정 실행됨- 항상 백그라운드 프로세스로 실행(
isBackground=true) — 이러한 명령에 대해isBackground=false를 절대 사용하지 마세요 - "종료"될 때까지 기다리지 마세요 — "포트에서 수신 대기 중" 또는 터널 URL 출력을 확인하여 시작 여부를 검증하세요
- 오류가 발생하면 로그를 읽고, 진단하고, 수정한 후 다시 시작하세요
- 새 터미널을 사용하여 에이전트 플레이그라운드 실행 또는 Teams 사이드로드 URL 열기
앱 로그 모니터링: 런타임 오류에 대해 백그라운드 터미널 출력을 주기적으로 확인하세요. 앱이 충돌하면 오류를 읽고, 근본 원인을 수정한 후 다시 시작하세요.
텔레메트리 태그 지정: 모든
atkCLI 명령을 실행하기 전에 세션 환경 변수를 설정하여 모든 CLI 호출이 스킬에서 시작되었음을 태그하도록 하세요:export ATK_CLI_SKILL=true세션 시작 시 한 번만 실행하세요. 동일한 터미널에서 이후의 모든
atk명령은 이를 상속받습니다.
ATK CLI 설정
atk --version # 1.1.5-beta 초과여야 함
ATK가 발견되지 않거나 버전이 너무 오래된 경우:
npm i -g @microsoft/m365agentstoolkit-cli@beta
CLI 전역 옵션
| 옵션 | 의미 | 권장 사항 |
|---|---|---|
| `-i` | 대화형 모드 | 자동화에서 항상 `-i false`를 사용하여 멈춤 방지 |
| `-f` | 프로젝트 폴더 | 현재 디렉토리를 기본값으로 하며, 사용자 지정 폴더를 지정할 때 사용됩니다. 새 프로젝트를 생성할 때 이 옵션은 프로젝트 폴더가 생성될 상위 폴더입니다. |
| `-h` | 명령 도움말 | 빠른 구문 확인을 위해 `atk |
하위 스킬
| 하위 스킬 | 사용 시기 | 참조 |
|---|---|---|
| **create-project** | 템플릿에서 새 프로젝트 생성, 템플릿 선택, `atk new` | create-project/create-project.md |
| **test-playground** | 에이전트 플레이그라운드에서 로컬 테스트, `agentsplayground`, 빠른 테스트 | test-playground/test-playground.md |
| **test-teams** | Teams에서 실행, devtunnel, 사이드로드, Teams 테스트, Copilot에서 테스트 | test-teams/test-teams.md |
| **provision-deploy** | Azure 리소스 프로비저닝, 클라우드에 배포, `atk provision`, `atk deploy` | provision-deploy/provision-deploy.md |
| **troubleshoot** | 오류 수정, 401, 포트 충돌, YAML 오류, 오래된 봇 | troubleshoot/troubleshoot.md |
| **slack-to-teams** | Slack 봇을 Teams로 마이그레이션, 크로스 플랫폼 브리징, Block Kit에서 Adaptive Cards로 | slack-to-teams/SKILL.md |
필수: 어떤 워크플로우를 실행하기 전에 해당 하위 스킬 문서를 읽으세요.
공통 참조
- manifest-and-yaml.md — 프로젝트 파일, YAML 구성, 환경 변수, .localConfigs 흐름
- commands.md — ATK CLI 명령: package, validate, share, collaborate
- templates.md — 언어 지원이 포함된 전체 템플릿 카탈로그
- experts/ — 100개 이상의 마이크로서스 파일: Teams SDK, Slack SDK, 크로스 플랫폼 브리징, 배포, AI 모델, 보안, 언어 변환
- docs/ — 플랫폼 비교 가이드: UI, 메시징, 신원, 인프라, 기능 격차
워크플로우 체인
사용자 의도를 가장 작은 유효한 워크플로우에 매핑하세요.
| 사용자 의도 | 워크플로우(순서대로 읽기) |
|---|---|
| 처음부터 새 앱 구축 | create-project → test-playground |
| 기존 프로젝트 로컬 테스트 | test-playground(권장) 또는 test-teams |
| Azure에 배포 | provision-deploy |
| 손상된 봇 수정 | troubleshoot → 재테스트 |
| Slack 봇을 Teams로 마이그레이션 | slack-to-teams |
필수: 어떤 slack-to-teams 워크플로우를 실행하기 전에 먼저 slack-to-teams/SKILL.md를 읽으세요. 이 하위 스킬에는 크로스 플랫폼 봇 개발을 위한 100개 이상의 마이크로서스 파일이 포함된 라우팅 전문가 시스템이 포함되어 있습니다.
ATK 프로젝트 컨텍스트 해결
값이 누락된 경우에만 구성 값을 해결하세요. 세션에서 이미 알려진 값이 있으면 이를 재사용하세요.
단계 1: ATK 프로젝트 감지
현재 폴더에 m365agentstoolkit*.yml이 존재하면 이를 ATK 프로젝트로 간주하고 구성을 구문 분석합니다.
단계 2: 공통 구성 해결
m365agentstoolkit*.yml에서 참조되는 변수를 해결합니다. 일반적인 변수: AZURE_OPENAI_API_KEY AZURE_OPENAI_ENDPOINT AZURE_OPENAI_DEPLOYMENT_NAME
단계 3: 누락된 값 수집
필요한 값이 누락된 경우, 누락된 값만 사용자에게 요청하세요.
전체 구성 파일 세부 정보는 manifest-and-yaml.md를 참조하세요.
---
name: teams-app-developer
description: Builds, tests, and deploys Microsoft 365 apps and agents for Teams and Copilot using the ATK CLI, with sub-skills for project creation, local testing, cloud deployment, troubleshooting, and Slack-to-Teams migration.
---
# Microsoft 365 Agents Toolkit Skill
Build Microsoft 365 agents and Teams apps using the ATK CLI.
## AI Behavior Guidelines
1. **Testing Strategy:** Recommend Agents Playground first (faster, no M365 needed). Use Teams workflow only if user explicitly requests it.
2. **Environment Variables:** NEVER hardcode secrets or make up placeholder values. Always ask users for real values.
3. **Error Handling:** Read error messages carefully. Check `env/.env.local`, `.localConfigs`, and `atk auth list`. Common pitfalls:
- **`AADSTS7000229`** → `aadApp/create` missing `generateServicePrincipal: true` in YAML — add it and re-provision
- **Missing `TENANT_ID`** in `.localConfigs` → SDK uses wrong token authority → 401 from Bot Connector
- **401 persists after auth fix** → devtunnel URL may be blacklisted — create a fresh tunnel
- See [troubleshoot/troubleshoot.md](troubleshoot/troubleshoot.md) for full diagnostic steps
4. **Long-Running Commands — WAIT for completion:**
- `atk new`, `atk provision`, `atk deploy` can take several minutes
- Always wait for completion before running the next step (timeout 120000ms+)
5. **Local Service Startup — Hangs terminal (expected):**
- `npm run dev`, `npm start`, `python app.py`, `devtunnel host`, etc. will hang — the process keeps running indefinitely
- ALWAYS run as a background process (`isBackground=true`) — NEVER use `isBackground=false` for these commands
- Do NOT wait for it to "finish" — verify startup by checking output for "listening on port" or tunnel URL
- If errors appear, read logs, diagnose, fix, restart
- Use a **NEW terminal** to launch Agents Playground or open Teams sideloading URL
6. **Monitor App Logs:** Periodically check background terminal output for runtime errors. If the app crashes, read the error, fix the root cause, and restart.
7. **Telemetry Tagging:** Before running any `atk` CLI commands, set the session environment variable so all CLI invocations are tagged as skill-initiated:
```bash
export ATK_CLI_SKILL=true
```
Run this once at the start of the session. All subsequent `atk` commands in the same terminal will inherit it.
## ATK CLI Setup
```bash
atk --version # Must be > 1.1.5-beta
```
If ATK is not found or version is too old:
```bash
npm i -g @microsoft/m365agentstoolkit-cli@beta
```
## CLI Global Options
| Option | Meaning | Recommendation |
| ------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-i` | Interactive mode | Always use `-i false` in automation to avoid hanging |
| `-f` | Project folder | Default to be current directory, used when specifying a custom folder. When scaffolding a new project, this is the parent folder where the project folder will be created under. |
| `-h` | Command help | Use `atk <command> -h` for quick syntax checks |
## Sub-Skills
| Sub-Skill | When to Use | Reference |
| -------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| **create-project** | Scaffold new project from template, choose template, `atk new` | [create-project/create-project.md](create-project/create-project.md) |
| **test-playground** | Test locally with Agents Playground, `agentsplayground`, quick testing | [test-playground/test-playground.md](test-playground/test-playground.md) |
| **test-teams** | Run on Teams, devtunnel, sideload, Teams testing, test in Copilot | [test-teams/test-teams.md](test-teams/test-teams.md) |
| **provision-deploy** | Provision Azure resources, deploy to cloud, `atk provision`, `atk deploy` | [provision-deploy/provision-deploy.md](provision-deploy/provision-deploy.md) |
| **troubleshoot** | Fix errors, 401, port conflicts, YAML errors, stale bots | [troubleshoot/troubleshoot.md](troubleshoot/troubleshoot.md) |
| **slack-to-teams** | Migrate Slack bot to Teams, cross-platform bridging, Block Kit to Adaptive Cards | [slack-to-teams/SKILL.md](slack-to-teams/SKILL.md) |
> **MANDATORY:** Before executing any workflow, read the corresponding sub-skill document.
## Shared References
- [manifest-and-yaml.md](toolkit/manifest-and-yaml.md) — Project files, YAML config, env vars, .localConfigs flow
- [commands.md](toolkit/commands.md) — ATK CLI commands: package, validate, share, collaborate
- [templates.md](toolkit/templates.md) — Complete template catalog with language support
- [experts/](experts/index.md) — 100+ micro-expert files: Teams SDK, Slack SDK, cross-platform bridging, deploy, AI models, security, language conversion
- [docs/](docs/README.md) — Platform comparison guides: UI, messaging, identity, infrastructure, feature gaps
## Workflow Chains
Match user intent to the smallest valid workflow.
| User Intent | Workflow (read in order) |
| ----------------------------- | ------------------------------------------- |
| Build new app from scratch | create-project → test-playground |
| Test existing project locally | test-playground (recommended) or test-teams |
| Deploy to Azure | provision-deploy |
| Fix broken bot | troubleshoot → re-test |
| Migrate Slack bot to Teams | slack-to-teams |
> **MANDATORY:** Before executing any slack-to-teams workflow, read [slack-to-teams/SKILL.md](slack-to-teams/SKILL.md) first. The sub-skill contains a routed expert system with 100+ micro-expert files for cross-platform bot development.
## ATK Project Context Resolution
Resolve config values only when missing. If a value is already known in the session, reuse it.
### Step 1: Detect ATK Project
If `m365agentstoolkit*.yml` exists in the current folder, treat it as an ATK project and parse configuration.
### Step 2: Resolve Common Configuration
Resolve variables referenced in `m365agentstoolkit*.yml`. Common variables:
AZURE_OPENAI_API_KEY
AZURE_OPENAI_ENDPOINT
AZURE_OPENAI_DEPLOYMENT_NAME
### Step 3: Collect Missing Values
If required values are missing, ask the user for only the missing ones.
Refer to [manifest-and-yaml.md](toolkit/manifest-and-yaml.md) for full config-file details.
모든 파일
147개 파일teams-app-developer 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉토리에 추출하세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/microsoft/skills/tree/main/.github/plugins/microsoft-365-agents-toolkit/skills/teams-app-developer # Copy SKILL.md to your .claude/skills/ directory
복사





집
