옵션
집 Skill DevOps 및 CI/CD teams-app-developer

teams-app-developer

microsoft/skills microsoft/skills

ATK CLI를 사용하여 Teams 및 Copilot용 Microsoft 365 앱과 에이전트를 빌드, 테스트, 배포하며, 프로젝트 생성, 로컬 테스트, 클라우드 배포, 문제 해결, Slack에서 Teams로의 마이그레이션을 위한 하위 스킬을 포함합니다.

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

Microsoft 365 에이전트 툴킷 스킬

ATK CLI를 사용하여 Microsoft 365 에이전트 및 Teams 앱을 구축하세요.

AI 행동 지침

  1. 테스트 전략: 먼저 에이전트 플레이그라운드를 권장합니다(더 빠르고, M365 필요 없음). 사용자가 명시적으로 요청하는 경우에만 Teams 워크플로우를 사용하세요.

  2. 환경 변수: 절대 비밀 정보를 하드코딩하거나 가상의 자리 표시자 값을 생성하지 마세요. 항상 사용자에게 실제 값을 요청하세요.

  3. 오류 처리: 오류 메시지를 주의 깊게 읽으세요. env/.env.local, .localConfigs, atk auth list를 확인하세요. 일반적인 함정:

    • AADSTS7000229 → YAML에서 aadApp/creategenerateServicePrincipal: true 누락 — 추가하고 다시 프로비저닝
    • .localConfigsTENANT_ID 누락 → SDK가 잘못된 토큰 권한을 사용 → Bot Connector에서 401 오류
    • 인증 수정 후 401이 지속됨 → devtunnel URL이 차단되었을 수 있음 — 새 터널 생성
    • 전체 진단 단계는 troubleshoot/troubleshoot.md를 참조하세요
  4. 장시간 실행 명령 — 완료 대기:

    • atk new, atk provision, atk deploy는 수분이 걸릴 수 있음
    • 다음 단계를 실행하기 전에 항상 완료를 기다리세요(타임아웃 120000ms 이상)
  5. 로컬 서비스 시작 — 터미널이 멈춤(예상됨):

    • npm run dev, npm start, python app.py, devtunnel host 등은 멈춤 — 프로세스가 무한정 실행됨
    • 항상 백그라운드 프로세스로 실행(isBackground=true) — 이러한 명령에 대해 isBackground=false를 절대 사용하지 마세요
    • "종료"될 때까지 기다리지 마세요 — "포트에서 수신 대기 중" 또는 터널 URL 출력을 확인하여 시작 여부를 검증하세요
    • 오류가 발생하면 로그를 읽고, 진단하고, 수정한 후 다시 시작하세요
    • 새 터미널을 사용하여 에이전트 플레이그라운드 실행 또는 Teams 사이드로드 URL 열기
  6. 앱 로그 모니터링: 런타임 오류에 대해 백그라운드 터미널 출력을 주기적으로 확인하세요. 앱이 충돌하면 오류를 읽고, 근본 원인을 수정한 후 다시 시작하세요.

  7. 텔레메트리 태그 지정: 모든 atk CLI 명령을 실행하기 전에 세션 환경 변수를 설정하여 모든 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 -h` 사용

하위 스킬

하위 스킬사용 시기참조
**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를 참조하세요.

GitHub에서 보기
---
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

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

관련 스킬

base44-cli
업데이트 된 시간 2026년 6월 29일
klingai-upgrade-migration
업데이트 된 시간 2026년 7월 3일
Railway CLI Management
업데이트 된 시간 2026년 7월 2일
Verification &amp; Quality Assurance
업데이트 된 시간 2026년 6월 29일
OR