GC

geekfujiwara/codeappsdevelopmentstandard

Developer tools
67 stars Quality 40 Trend 40

Power Platform & Azure で業務システムを開発する際に利用できるAIファースト開発標準。クイックスタートを見て利用してください。

Overview

Power Apps Code Apps, モデル駆動型アプリ, Generative page, Dataverse, Power Automate, Power Pages, Copilot Studio, Azure サービス、Cowork プラグインを で開発するための、実践的な AI ファースト開発標準リポジトリです。 実装標準は (Code Apps)を前提にしています。 VS Code + GitHub Copilot が使える状態(統合プロンプトで一気に準備するを参照)であれば、次のコマンドと 1 依頼だけで開発を始められます。 続けて GitHub Copilot / Claude Code のチャットから を呼び出し、作りたいテーマを伝えてください。architecture スキルがヒアリングを経て Code Apps を選定した場合にのみ、code-apps スキルが .github/skills/code-apps/references/template-snapshot/ の package.json / package-lock.json をコピーして npm install を実行します(Code Apps 以外のソリューションでは node_modules は生成されません)。 .gitignore がないと node_modules/・dist/・.power/・.env 等がコミット対象になります。必ずコピーしてください。 チーム開発でリモートリポジトリを最初から使いたい場合は チーム開発向けの手順 を、既存仕様書がある場合は /spec-build の運用へ進んでください。 GitHub Copilot だけでなく からも同じ開発標準をそのまま利用できます。手順は次の 3 ステップです。 プロジェクトのルートで以下を実行し、.github/(エージェント・スキル)と .gitignore を配置します。 .github/agents/ と .github/skills/ を配置したフォルダーで Claude Code を起動します。Claude Code はカスタムエージェント定義(.claude/agents/)とスキル群(.github/skills/)を参照して開発タスクを進めます。

README

AI ファースト開発標準

Power Apps Code Apps, モデル駆動型アプリ, Generative page, Dataverse, Power Automate, Power Pages, Copilot Studio, Azure サービス、Cowork プラグインを VS Code + GitHub Copilot / Claude Code で開発するための、実践的な AI ファースト開発標準リポジトリです。 実装標準は TypeScript + React + Tailwind CSS(Code Apps)を前提にしています。

📺 使い方を説明した動画(YouTube)


クイックスタート

VS Code + GitHub Copilot が使える状態(統合プロンプトで一気に準備するを参照)であれば、次のコマンドと 1 依頼だけで開発を始められます。

npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/agents .github/agents
npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/skills .github/skills
cp .github/skills/standard/references/gitignore-template .gitignore

続けて GitHub Copilot / Claude Code のチャットから @GeekPowerCode を呼び出し、作りたいテーマを伝えてください。architecture スキルがヒアリングを経て Code Apps を選定した場合にのみ、code-apps スキルが .github/skills/code-apps/references/template-snapshot/package.json / package-lock.json をコピーして npm install を実行します(Code Apps 以外のソリューションでは node_modules は生成されません)。

[!NOTE] .gitignore がないと node_modules/dist/.power/.env 等がコミット対象になります。必ずコピーしてください。

チーム開発でリモートリポジトリを最初から使いたい場合は チーム開発向けの手順 を、既存仕様書がある場合は /spec-build の運用へ進んでください。


Claude Code でのクイックスタート

GitHub Copilot だけでなく Claude Code からも同じ開発標準をそのまま利用できます。手順は次の 3 ステップです。

1. 開発標準(スキル)を取得する

プロジェクトのルートで以下を実行し、.github/(エージェント・スキル)と .gitignore を配置します。

npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/agents .github/agents
npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/skills .github/skills
cp .github/skills/standard/references/gitignore-template .gitignore

2. Claude Code をプロジェクトルートで起動する

.github/agents/.github/skills/ を配置したフォルダーで Claude Code を起動します。Claude Code はカスタムエージェント定義(.claude/agents/)とスキル群(.github/skills/)を参照して開発タスクを進めます。

3. @GeekPowerCode に依頼する

チャットから @GeekPowerCode を呼び出し、作りたいテーマを伝えてください。エージェントが .github/skills/standard/SKILL.md を読み込み、要件に応じて必要なスキルを選択します。architecture スキルがヒアリングを経て Code Apps を選定した場合にのみ、code-apps スキルが package.json / package-lock.json をコピーして npm install を実行します(Code Apps 以外のソリューションでは node_modules は生成されません)。

  • 依頼例: @GeekPowerCode 在庫管理をもっと効率的に行いたい。
  • 既存仕様書がある場合の入力例: spec-builder を実行して
  • AI チームメイト(Agent 365 / Teams 同僚エージェント)の依頼例: @GeekPowerCode 予定調整をしてくれる同僚エージェントを Teams に置きたい。 — 1 回の質問確認のあと scaffold_ai_teammate.py が同僚エージェントと AI チームメイト評価Hub を同時に scaffold する(.github/skills/ai-teammate/SKILL.md

[!NOTE] 推奨モデルは Claude Opus 5 です(.github/agents/GeekPowerCode.agent.md の既定モデル)。.gitignore を配置しないと node_modules/dist/.power/.env 等がコミット対象になるため、必ずコピーしてください。

前提条件・ライセンス要件は GitHub Copilot と共通です(前提条件 を参照)。


目次


前提条件

統合プロンプトで一気に準備する(推奨)

ローカル開発環境の準備から Power Platform のクラウド環境準備までを、コマンドを手打ちせずに 1 つのプロンプトで一気通貫に実行できます。GitHub Copilot / Claude Code のチャットに、以下をそのまま貼り付けて送信してください。

[!IMPORTANT] クラウド環境の準備には Power Platform 管理者権限が必要な工程が含まれます。実行者が管理者権限を持っていないと判明した時点で、エージェントは処理を中断します。 権限昇格や迂回は行わず、不足しているロールと管理者への依頼内容を報告して終了する前提のプロンプトです。

ローカル開発環境の準備から、Power Platform のクラウド環境準備まで、一気通貫で実行してください。
途中で Power Platform 管理者権限が必要な工程に到達し、自分(実行者)がその権限を持っていないと判明した場合は、
その時点で処理を中断し、不足している権限と管理者への依頼内容を整理して報告し、終了してください。
無理に権限を回避・昇格しようとしないでください。

## フェーズ 1: ローカル開発環境の準備
1. Git / Node.js LTS / Python 3.12 を導入する。既定のターミナル(Windows の場合 PowerShell 5.1 で可、追加導入は不要)で動作すればよい。
2. `npm install -g degit` で degit をグローバル導入する。
3. Power Platform は PP CLI(pac)のみ導入する(VS Code 拡張は入れない)。
4. **必要なすべてのツールの PATH を通す**。実体パスを確認したうえで、未登録のものは**ユーザー環境変数 PATH に恒久的に追加**し、さらに現在のセッションの `$env:Path` にも反映して、ターミナルを開き直さずに続行できる状態にする。対象は以下(実際のインストール先に読み替える)。
   - Git: `%ProgramFiles%\Git\cmd`
   - Node.js / npm / npx: `%ProgramFiles%\nodejs`
   - npm グローバル(degit など。`npm config get prefix` で確認): `%APPDATA%\npm`
   - Python 3.12 本体とスクリプト: `%LOCALAPPDATA%\Programs\Python\Python312` と `%LOCALAPPDATA%\Programs\Python\Python312\Scripts`
   - Power Platform CLI(pac): MSI 版は `%LOCALAPPDATA%\Microsoft\PowerAppsCLI`、dotnet tool 版は `%USERPROFILE%\.dotnet\tools`
   - GitHub CLI(gh): `%ProgramFiles%\GitHub CLI`
   - VS Code CLI(code): `%LOCALAPPDATA%\Programs\Microsoft VS Code\bin`
   - 追加時は既存の PATH を上書きせず**追記**し、重複エントリは作らないこと。特に Node.js インストール直後は `npx` が既存ターミナルで認識されないため、この反映を必ず行う。
5. `gh auth status` で GitHub CLI のログイン状態を確認する(未ログインなら `gh auth login` を案内)。
6. `npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/agents .github/agents` と `npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/skills .github/skills` を実行し、admin スキルを含むスキル一式とエージェント定義を取得する。
7. `python -m pip install -r .github/skills/standard/scripts/requirements.txt` を実行する。
8. クラウド側の準備に進めるよう、`.env` に設定する `TENANT_ID` / `ENV_ID` / `DATAVERSE_URL` の値をユーザーに確認する。
9. **認証方式はユーザーに確認せず、エージェントが順に検証してキャッシュできる方式を採用する。** まず `.env` に `AUTH_MODE=interactive` を設定し、ローカルブラウザでの**インタラクティブ認証**で `AuthenticationRecord`(認証キャッシュ)が作成できるかを検証する。失敗する、またはブラウザ操作ができない環境(ヘッドレスセッション等)では、`.env` から `AUTH_MODE=interactive` を削除(または `AUTH_MODE=device_code` に変更)し、既定の **DEVICE CODE 認証** で再試行する。どちらの方式でキャッシュに成功したかを結果として報告する。この検証は、フェーズ 2 で最初に認証が行われる前に完了させること。

検証コマンド:
- git --version / node --version / npm --version / npx --version / degit --version
- python --version(または py --version)
- pac help(ヘッダの Version を確認)
- gh --version / gh auth status
- where.exe git / where.exe node / where.exe npx / where.exe degit / where.exe python / where.exe pac / where.exe gh(すべて PATH 経由で解決できること)
- 新規に開いたターミナルでも上記が同じ結果になること(恒久的な PATH 登録の確認)

## フェーズ 2: Power Platform 管理者権限の確認(ここで即座に判断する)
1. `.github/skills/admin/SKILL.md` と `.github/skills/admin/references/admin-roles.md` を読み込み、これ以降の操作に必要な最小ロール(Power Platform Administrator 等)を把握する。
2. `python .github/skills/admin/scripts/check_environment.py --environment-id $env:ENV_ID` を実行し、「管理 API アクセス」(管理者ロール相当か)の判定を確認する。(フェーズ 1 の手順 9 で採用が確定した認証方式で初回のみ認証が行われる。以降はキャッシュからサイレントに認証され、再実行時は非対話で完走する。)
3. 管理者権限がない、または判定が NG の場合は、**ここで作業を中断**し、次を報告して終了する。無理に自分の端末や権限で回避しようとしないこと。
   - 何が不足しているか(必要ロール名)
   - 管理者に依頼すべき内容(環境作成・セキュリティ ロール割り当て・Copilot Credits 割り当て・ACP 設定など)

## フェーズ 3: 開発環境の確認(管理者権限がある場合のみ。これから開発に使う 1 環境だけが対象)
`.github/skills/admin/SKILL.md` を読み込む。
**対象は今回開発に使う 1 つの環境に限定する。テナント全体の環境戦略の棚卸し・環境グループの作成・命名規則に沿った環境の一括作成(`scan_environment_strategy.py` / `apply_environment_strategy.py` / `environment_naming.py` / `create_environments.py`)や、Copilot Credits の配分・ACP の適用・CSP の設定などの構成変更は行わない。これらはユーザーが明示的に依頼した場合にのみ実施する。**

1. 今回開発に使う環境を確認する: 既存の Dataverse 環境から選ぶか、専用の Developer/Sandbox 環境を新規作成するかをユーザーに確認する(新規作成する場合は README の「専用環境を作成する」の手順を管理者へ案内)。決定したら `.env` の `ENV_ID` / `DATAVERSE_URL` / `TENANT_ID` を設定する。
2. `check_environment.py --environment-id $env:ENV_ID` を実行し、その環境で開発するにあたり最低限解消すべき問題点(既定環境ではないか・マネージド環境・Dataverse / Code Apps / MCP の有効化・セキュリティ ロール・管理 API アクセス・適用される DLP)を確認する。
3. `python .github/skills/admin/scripts/check_development_environment.py --environment-id $env:ENV_ID --tenant-id $env:TENANT_ID` を実行する。標準利用対象の Dataverse (`shared_commondataserviceforapps`) と新 Copilot Studio Workflow の Agent ノード (`shared_agentnode`) を、環境チェック・クラシック DLP・環境とグループの ACP のすべてで確認する。追加コネクタは `--connector shared_xxx` で列挙する。このコマンドは読み取り専用で、許可追加はしない。
4. `NG` や取得エラーがあれば停止し、解消方法を報告する。ACP で `shared_agentnode` が未許可なら、継承元と影響範囲を確認し、既存の許可設定を保持した1件追加の dry-run を提示する。明示承認後だけ適用し、再チェックする。グループから ACP が削除されても環境側に残る場合があるため、グループへの無条件な新設や全許可化はしない。
5. すべて成功したら構成上の事前チェック完了を報告する。新 Workflow の利用時は、公開前の Review と外部データ・ツールなしの最小実行も確認する。管理画面の Applied やチェック成功だけで実行可能とは断定しない。実行時の DLP/ACP エラーはエラーコードと Last refresh を記録し、追加の権限緩和はしない。

## 完了報告
- フェーズ 1〜3 それぞれの成否を報告する。
- フェーズ 3 で問題(NG)がなければ、続けて README の「クイックスタート」に進んでよい旨を案内する。
- フェーズ 2 で権限不足により中断した場合は、フェーズ 1(ローカル)が完了済みであることと、フェーズ 3 を再開するために必要な条件(誰にどの権限を依頼すべきか)を案内する。

[!NOTE] テナント全体の環境戦略(環境グループの設計、命名規則に沿った環境の一括作成、不要環境の整理など)や、Copilot Credits の配分・ACP の適用・CSP の設定を実施したい場合は、@GeekPowerCode に「テナント全体の環境戦略を確認して」「この環境に Copilot Credits を配分して」のように明示的に依頼してください。admin スキルの読み取り専用スキャン・dry-run から始まり、内容提示 → ユーザー確認 → --apply の順で進みます。

[!NOTE] 設定値は .github/skills/admin/references/environment-strategy.json(ブループリント)に集約されています。組織固有の名称・人数・命名規則を変えたい場合は、プロンプト実行前後にこのファイルを編集してください。

ライセンスの準備

利用する機能ごとに必要なライセンスが異なります。詳細は以下のアコーディオンを開いて確認してください。

クラウド環境の準備

[!CAUTION] デフォルト環境(Default)では開発しないでください。 組織全員が参照できる共有環境のため、テーブルやソリューションが意図せず他ユーザーに見えます。必ず専用の Developer 環境 または Sandbox 環境 を用意してください。

Copilot Studio を利用する場合は、次の順序で管理者による事前設定を行います。

  1. Dataverse を含む専用環境を作成する
  2. 開発者へ必要なセキュリティ ロールを割り当てる
  3. Copilot Credits をその環境に割り当てる
  4. Advanced Connector Policy で利用を許可するコネクタを設定する
  5. Code Apps を使用する場合は環境の機能を有効化する

自動で設定する(推奨)

これらのクラウド側の設定は、管理センターの画面を開かずに admin スキル を読み込んだエージェントに依頼して実行できます。画面操作は手順が長く、環境が増えるたびに設定漏れとドリフトが起きるため、コマンドを手打ちするのではなく、エージェントにスキルを読ませて再現できる形にしておきます。

前提条件冒頭の統合プロンプトを使えば、ローカル準備からこのクラウド環境準備までを 1 回の依頼で実行できます。クラウド側だけをやり直したい場合は、そのプロンプトの「フェーズ 2」「フェーズ 3」部分だけを貼り付けて依頼してください。

管理者権限がない場合、エージェントはフェーズ 2 の時点で処理を中断し、不足している権限と管理者への依頼内容を報告します。開発者へのセキュリティ ロール割り当て(上記手順 2)は管理センターの画面操作が必要なため、エージェントは案内のみ行います(詳細は下のアコーディオンを参照)。

ローカル開発環境の準備

[!IMPORTANT] ローカル開発環境のセットアップは、次の条件を満たす端末とアカウントで実施してください。条件を満たさない端末では、スクリプトの実行やアプリの発行が途中で失敗します。

  • ライセンス: GitHub Copilot Pro 以上と、Power Apps Premium(または Power Apps 開発者プラン)のライセンスが割り当てられていること
  • セキュリティ ロール: 対象環境で System CustomizerEnvironment Maker が割り当てられていること(テナント全体の設定を行う場合は Power Platform 管理者も必要)
  • 端末の権限: Git / Node.js / Python と、npm install -gpip install によるライブラリ導入が許可されていること(管理された端末では IT 部門に事前確認してください)

VS Code + GitHub Copilot

VS Code をインストールすると GitHub Copilot 拡張機能は最初から同梱されています。別途 Extensions からインストールする必要はありません。GitHub アカウントでサインインし、Copilot ライセンスを有効化してください。

  1. https://code.visualstudio.com/ から VS Code をダウンロード → インストール
  2. 左下のアカウントアイコンから GitHub でサインイン(Copilot 拡張は同梱済みのためインストール不要、サブスクリプションの有効化のみ必要)
  3. Copilot チャットを開く(Ctrl+Alt+I、Mac: ⌃⌘I
自動で導入する(推奨)

開発ツール(Git / Node.js / Python / PP CLI / GitHub CLI 等)の導入・PATH 設定・動作確認は、手順を手打ちせずに 前提条件冒頭の統合プロンプト をチャットに貼り付けて実行してください(クラウド環境の準備が不要な場合は、そのプロンプトの「フェーズ 1」部分だけを貼り付けても構いません)。

[!Note] クイックスタートのコマンドで npx が実行できないというエラーが出る場合は、Node.js インストール直後で PATH がまだ反映されていない可能性があります。新しいターミナルを開き直して再実行してください。

Python パッケージと初回サインイン

スキルの Python スクリプト(Dataverse 構築、DLP 事前チェック、Azure 連携など)は、共通認証 .github/skills/standard/scripts/auth_helper.py 経由で API を呼びます。初回だけ次を実行してください。

python -m pip install -r .github/skills/standard/scripts/requirements.txt

導入されるのは azure-identity / python-dotenv / requests の 3 つだけです。統合プロンプトのフェーズ 1 を実行済みなら、.env の設定と初回認証(インタラクティブ→DEVICE CODE の順で自動検証)もすでに完了しています。

サインインできたら、開発に入る前に Power Platform 環境のチェック を実行してください。


管理者権限(管理者ロール)要件

開発者本人の権限だけでは完結せず、テナント/環境の管理者(またはその権限を持つ人)による事前設定が必要な操作があります。統合プロンプトのフェーズ 2 で管理者権限の有無を自動判定し、不足時は必要ロールと依頼内容を報告するため、通常はこの一覧を読む必要はありません。詳細を確認したい場合や、エージェント経由で対応できない操作(Cowork の Entra/Teams/M365 管理センター設定など)を手動で行う場合は、以下のアコーディオンを開いてください。


チーム開発向けの手順


上流の開発標準更新を取り込む

git merge は不要です。テーマのリポジトリで以下を再実行するだけで、最新の標準(.github/ のエージェント・スキル)に追従できます。

npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/agents .github/agents --force
npx degit geekfujiwara/CodeAppsDevelopmentStandard/.github/skills .github/skills --force

[!TIP] 同期対象は .github/agents.github/skills のみで、テーマ固有のコード(src/ 等)や .github/prompts.github/workflows.github/community-issue-policy.json には触れません。同期後は git diff で差分を確認してからコミットしてください。


環境チェック

ローカル開発ツールのチェック

npm run check:env   # Node.js / Python / pac 等の確認のみ
npm run setup       # 上記 + Python venv bootstrap

Power Platform 環境のチェック(開発着手前に必須)

ローカルのツールが揃っても、環境側の設定が足りないと開発の途中で止まります(Code Apps が無効、既定環境で作ってしまった、セキュリティ ロールが足りない等)。.envTENANT_ID / ENV_ID / DATAVERSE_URL を設定したら、次を実行してください。読み取り専用で、環境の設定は一切変更しません。

python .github/skills/admin/scripts/check_environment.py --environment-id $env:ENV_ID

NG が 1 つでもあれば、開発に入る前に解消してください(対処方法は admin スキル管理者ロール一覧 を参照)。 Code Apps・MCP・マネージド環境が要件の場合は --require-code-apps / --require-mcp / --require-managed を付けると、警告を NG に昇格させて確実に止められます。

続けて、標準利用対象の Dataverse と新 Copilot Studio Workflow の Agent ノードを含め、環境・クラシック DLP・ACP をまとめて確認します。追加コネクタは --connector shared_xxx で指定します。

python .github/skills/admin/scripts/check_development_environment.py --environment-id $env:ENV_ID --tenant-id $env:TENANT_ID

shared_agentnode は標準チェック対象であり、自動的に許可を付与するものではありません。未許可なら影響範囲と dry-run を確認して明示承認後に追加します。構成チェック成功後も Workflow の Review と最小実行で確認してください。実行時 HTTP 442(DLP/ACP)では Last refresh を記録し、反映・同期状態を確認します。実行成功前は準備完了と断定しません。

[!TIP] Copilot チャットで @GeekPowerCode に「開発を始める前に環境をチェックして」と依頼すれば、 上記の統合チェックを実行して結果を要約し、NG があれば解消方針まで提示します。


カスタムエージェント前提の利用方法

  • この開発標準の実装・運用ルールは、GitHub Copilot / Claude Code で共通利用するスキル(.github/skills/)に定義されています。
  • 利用者は手順書を読み込んで操作するのではなく、カスタムエージェントに要件を伝えて進める前提です。
  • 依頼例: GeekPowerCode エージェントを選択して 在庫管理をもっと効率的に行いたい。
  • 既存仕様書がある場合の入力例: spec-builder を実行して

リポジトリ構成

このリポジトリは開発標準(スキル・リファレンス)の供給元です。新しいテーマは npx degit.github/(エージェント・スキル)を取得し、@GeekPowerCode にプロジェクト全体の scaffold を依頼して開発を開始します。


主要ドキュメント


GitHub Copilot / Claude Code 活用

  • GitHub Copilot では .github/agents/.github/skills/ が認識されます
  • Claude Code では .claude/agents/ を利用して同じスキル群(.github/skills/)を参照できます
  • GeekPowerCode に実現したい内容を伝えるだけで、必要なスキルが選択されて開発タスクを進められます
  • このリポジトリの開発標準はスキルとして定義済みのため、マニュアル手順ベースではなくエージェント駆動で利用します

スキルの一覧・説明・推奨開発フローは スキルカタログ(.github/skills/README.md) で一元管理しています。スキルの追加・変更はまずここを更新してください。


ライセンス

MIT License。詳細は LICENSE を参照してください。


フィードバック

View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add geekfujiwara/codeappsdevelopmentstandard