geekfujiwara/codeappsdevelopmentstandard/copilot-studio
Claude Code and agent skill by geekfujiwara/codeappsdevelopmentstandard
- community
Checking that the SKILL.md file is still in the repository.
Copilot Studio Standard エージェントを承認付き private API で初回プロビジョニングし、設定・外部トリガー追加・ニュース配信エージェント等を構築する。生成オーケストレーション(Generative Orchestration)モード一択。
Install
npx vskill@latest install geekfujiwara/codeappsdevelopmentstandard/copilot-studioSKILL.md
Copilot Studio エージェント構築スキル
Copilot Studio エージェントを 生成オーケストレーション(Generative Orchestration)モード一択 で構築する。 外部トリガー・ニュース配信エージェント等の応用パターンまでカバーする統合スキル。
環境診断は明示依頼時・障害時だけ。通常は構築を開始し、環境・DLP の事前確認を挟まない。ポリシー関連の拒否が発生したら admin の権限確認付き復旧 に従う。現在の委任権限で可能な診断・承認済み最小修復・限定リトライを行い、権限不足なら管理者へ依頼する。
サブリファレンス(必要に応じて参照)
| リファレンス | 内容 | |
|---|---|---|
| admin スキル(環境・DLP チェック) | 明示依頼時・障害時だけの権限確認付き診断・修復 | |
| 構築リファレンス | 構築手順の詳細・Instructions テンプレート・スクリプトコード | |
| **外部公開 WebChat SDK(標準)** | 外部公開の標準パターン。BotFramework WebChat SDK で UI フルカスタマイズ・プログラム的メッセージ送信 | |
| **外部公開デザインテンプレート(標準 UI)** | 標準 UI デザイン:左パネル(カテゴリ別カード+プロンプトチップス)+ 右 WebChat パネル(グラデーション枠・AI タイピング Tips) | |
| **ライトモード・テンプレート集** | ライトモード 5 レイアウト(workspace / minimal / hero-cards / dashboard / sidebar)+ 全テンプレート標準の「新しい会話(初期化)」ボタン(React 再マウント対策 freshWebchatEl()) | |
| 外部公開 手動認証(SSO) | Entra ID サインイン必須+ユーザー権限で Dataverse アクセス(RLS/OBO)。2 アプリ登録・FIC(シークレットレス)・OAuth カードの silent トークン交換 | |
| 外部公開 iframe(レガシー・非推奨) | iframe で埋め込む簡易版。UI カスタマイズ不可のため標準では使わない。動作確認・PoC 用のみ | |
| 外部トリガー | メール受信・Teams メッセージ・スケジュール等のトリガー追加 | |
| Standard MCP tool | UI観測済みprivate APIによる承認付きMCP追加とread-back | |
| Standard model selection | GPT component YAMLのモデル値をETag・SHA-256・承認plan付きで変更 | |
| トリガーパターン | トリガーの設定パターン集 | |
| トラブルシューティング | トリガー関連を中心とした異常系・トラブルシューティング | |
| ニュース配信エージェント | RSS + Web検索 + Work IQ MCP によるニュース収集・配信エージェント構築 | |
| ニュース配信デプロイガイド | ニュース配信エージェントのデプロイ手順 | |
| ニュース配信メールテンプレート | ニュース配信メールの HTML テンプレート | |
| トランスクリプト分析 | 会話トランスクリプトの分析パターン(ボット識別・ユーザー識別) |
事前確認(会話の最初に 1 回だけ)
本スキルの利用が確定したら、standard の共通契約に加え、 1 回の AskUserQuestion で次をまとめて確認する。
| # | 質問 | 合格条件 | |
|---|---|---|---|
| 1 | v1 が必要な利用形態か | Code Apps 連携、WebChat、外部トリガー等の v1 採用理由が明確である | |
| 2 | 対象環境で作成・公開できるか | Copilot Studio の必要ライセンス / capacity と maker / publish 権限がある | |
| 3 | channel と audience は何か | Teams / M365 Copilot / Web、internal / external / anonymous、公開担当者が確定している | |
| 4 | 認証とデータアクセスは何か | Microsoft 認証 / manual auth / none、Dataverse RLS、接続所有者を承認済みである | |
| 5 | knowledge、MCP、trigger、外部文章を使うか | 接続権限、送信データ、prompt injection 対策、実害操作の確認方法が確定している | |
| 6 | エージェント設計とテスト範囲は承認済みか | Instructions、モデル、ツール、アイコン、テストユーザー、期待応答を記録している |
外部公開で AGENT_AUTH_MODE=none を使う場合は、匿名アクセスで公開してよいデータと操作を 明示承認する。ライセンス、認証方式、公開対象のいずれかが未確認なら公開しない。
外部公開 Web サイト開発フロー(必須)
外部公開は WebChat UI(BotFramework WebChat SDK)を標準とする。 iframe 埋め込みは UI カスタマイズができないためレガシー扱いとし、PoC・動作確認以外では使わない。
WebChat UI のデザインは既存のデザインテンプレートを再利用する (新規にゼロからデザインを起こさない):
- 標準(ダーク UI): webchat-sdk-design-template.md
- ライトモード / 複数レイアウト: webchat-sdk-light-templates.md
フロー:
- 前提: エージェントを「認証なし」で公開しておく
(set_agent_security.py を AGENT_AUTH_MODE=none で実行 → 公開)。 WebChat SDK は「認証なし」エージェントの DirectLine トークンで匿名接続する。
- 既存デザインテンプレートのレイアウト構成 + カテゴリ/プロンプト案をユーザーに提示
- ユーザー承認
website/index.htmlを既存テンプレートベースで実装(WebChat SDK 埋め込み)- カテゴリ・プロンプト・Tips・カラーを案件に合わせて調整
py scripts/deploy_website.pyで Azure Storage にデプロイ
⚠️ 「認証なし」の設定は 構築リファレンスの Step 7-8 の3 スクリプト分離フロー(構築 → セキュリティ → チャネル)に従うこと。認証モードを設定せず公開すると UI 既定の Microsoft 認証 になり、WebChat SDK が匿名接続できない。
前提: 設計フェーズ完了後に構築に入る(必須)
エージェントを構築する前に、エージェント設計をユーザーに提示し承認を得ていること。
設計提示時に含める内容:
| 項目 | 内容 | |
|---|---|---|
| エージェント名・説明 | 名前と役割の説明 | |
| Instructions | 指示テキストの全文案 | |
| 推奨プロンプト | 3〜5 個のタイトル+プロンプト文(GPT コンポーネントの conversationStarters) | |
| 会話の開始のメッセージ | エージェントに合った挨拶テキスト(ConversationStart トピックの SendActivity) | |
| 会話の開始のクイック返信 | 3〜5 個のクイック返信テキスト(ConversationStart トピックの quickReplies) | |
| ナレッジ | データソース(Dataverse テーブル / SharePoint / ファイル等) | |
| ツール | MCP Server の接続先・用途 | |
| チャネル公開設定 | 簡単な説明・詳細な説明・背景色・開発者名(デフォルト値を提案) |
アイコン画像提案(設計承認後・構築前)
アイコンの設計・生成・登録の詳細は `standard` スキルの [アイコン作成リファレンス](../standard/references/icon-creation.md) を参照。ここではエージェント固有の手順のみ記載する。
エージェント設計が承認されたら、Bot 作成前にアイコン画像を提案する。 standard スキルの アイコン作成リファレンス のアイコン画像提案フローに従い、3〜4 パターンを提案 → ユーザー選択 → PNG 3 サイズ生成(240, 192, 32)→ bots.iconbase64 + Teams マニフェストに API 登録。
大前提: 一つのソリューション内に開発
Dataverse テーブル・Code Apps・Power Automate フロー・Copilot Studio エージェントは すべて同一のソリューション内 に含める。
- API ヘッダーに
MSCRM.SolutionName: {SOLUTION_NAME}を付けることでソリューション内に作成
認証: Python スクリプトの認証はstandardスキルのauth_helper.pyを使用。from auth_helper import get_token, get_session, api_get, api_post, api_patchで利用する。
- Bot 作成時(Copilot Studio UI)は「エージェント設定」でソリューションを明示的に選択
- ソリューション外で作成したコンポーネントはリリース管理・環境間移行ができない
必須要件
ツールにする Power Automate フローは kind: VirtualAgent(★ 検証済み教訓 2026-10-09)
エージェントのツールとして追加する Power Automate フローは、 トリガー・応答ともに kind: "VirtualAgent" でなければならない。
「Copilot Studio トリガー(VirtualAgent)」を参照。
Bot 作成は観測済みcontractで承認付き自動化
GPT コンポーネント(componenttype=15)の扱い
- UI が作成したコンポーネントを特定して更新する
bots(id)?$select=configuration→configuration.gPTSettings.defaultSchemaNameで UI コンポーネントの schemaname を取得- API で新しい GPT コンポーネントを INSERT すると UI と API で別々のコンポーネントが存在し、UI は自分のコンポーネントしか読まない
- configuration を PATCH する際は既存値をディープマージする
configurationを丸ごと上書きするとgPTSettings.defaultSchemaNameやモデル設定が消える- 必ず GET → ディープマージ → PATCH
optInUseLatestModelsは明示的にFalseを設定 —Trueだと UI で選択した基盤モデル(Claude Sonnet 等)が GPT に強制変更されるaISettingsも丸ごと上書きせずディープマージで既存のモデル選択を保持
- 余分な GPT コンポーネントは削除する
componenttype eq 15で全取得 →defaultSchemaNameと一致するものを UI コンポーネントとして特定 → それ以外を削除
指示(Instructions)の YAML 形式 — PVA ダブル改行フォーマット
PVA パーサーは標準 YAML のシングル改行 (\n) を構造行として認識しない。 YAML の構造行(kind, displayName, conversationStarters 等)はダブル改行 (\n\n) で区切る必要がある。 ただし instructions: |- ブロック内のテキストはシングル改行で記述する。
ConversationStart トピックの YAML 形式
ConversationStart トピック(componenttype=9)も同じダブル改行フォーマット。
基盤モデル選択(aISettings)
PVA は GPT コンポーネントの data YAML 末尾に基盤モデル情報を格納する:
GPT コンポーネントの data を上書きすると、この aISettings セクションが消えて デフォルトモデル(GPT 4.1)に戻る。モデル変更はset_model.pyでplanを作り、承認したhashだけをapplyする。
説明(Description)の保存場所
構築手順
詳細な構築手順・スクリプトコードは 構築リファレンス を参照。
設計承認と同時に並行着手(VS Code サブエージェント): Phase 1 の設計承認後、Dataverse 構築を待たずに本トラック(Copilot Studio)を並行して開始できる。VS Code では Copilot Studio サブエージェントとして起動する。先行工程(テーブル不要) = Bot 作成 → 生成オーケストレーション有効化 → Instructions 設定(Step 0–4)はDataverse 構築と完全に並行で進められる。以下は Dataverse/Power Automate の完了を待つ同期点:- ★同期①(テーブル作成完了後) — Dataverse をソースにするナレッジ/MCP の追加(Step 9)。- ★同期②(フロー作成完了後) — Power Automate フローをツール化する連携。全体のトラック分割・オーケストレーションは standard §8「開発フロー全体図」 を参照。
高レベルの手順:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/copilot-studio/SKILL.md
Popularity
- Repository stars
- 60
- Repository forks
- 20
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 2 Sep 2026, 2 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/geekfujiwara/codeappsdevelopmentstandard/copilot-studio)