geekfujiwara/codeappsdevelopmentstandard/code-apps
Claude Code and agent skill by geekfujiwara/codeappsdevelopmentstandard
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Power Apps Code Apps の初期化・Dataverse 接続・UI 設計・開発・デプロイ。SharePoint URL は明示指定がなければ移行元として扱い、Dataverse ベースで開発する。環境チェックは明示依頼時・障害時だけとし、初回デプロイを優先する。TypeScript + React + Tailwind CSS、Copilot Studio v2 iframe、Agent flows、CSP・メール送信にも対応。
Install
npx vskill@latest install geekfujiwara/codeappsdevelopmentstandard/code-appsSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Code Apps 開発スキル
Power Apps Code Apps(コードファースト)を TypeScript + React + Tailwind CSS で開発する。 UI 設計・CSP 構成・メール送信パターンまで Code Apps 開発の全領域をカバーする統合スキル。
プラント・設備の JSON 駆動設計: モジュール設計パターン と追加テンプレート を参照。敷地・ユニット・ポート接続、CSP 対応検証器、Python 候補生成、Dataverse 改訂・提案レビューを再利用できる。既存アプリへのアドオンであり scaffold 元ではない。型・形状・共有保存の単独テストを先に通し、導入後のブラウザー/Teams/一般利用者権限は別ゲートで実測する。
設計と保守を統合する場合: Plant Design & Maintenance サンプル を参照。既存画面・合成3Dモデル・部位別の故障/修理・ヒートマップ・AI候補の変更前後比較を同梱。npm ci→ Python依存導入 →npm run generate→npm run predeployで単体検証できる。AI候補は確定まで下書きに適用せず、共有保存と分離する。外部接続は既定無効。Code App は Dataverse と Copilot Studio の生成サービスだけへ接続し、MCP Server は Copilot Studio のツールとして構成する。
3D モデル(建物・家具・設備)を扱う場合: 3D 資産の共通利用 を参照。既定 CSP で読める資産の持ち方(画像はimg-src 'self'、JSON は import、GLB の扱い)、素材ライブラリの色合わせ・ライセンス、契約検証(scripts/validate_3d_assets.py)とヘッドレス描画確認(scripts/capture_3d.mjs。ソフトウェア描画で黒くなる問題を含む)、実在の GLB(テクスチャ埋め込み)を既定 CSP の中で表示する方法(?inline+createImageBitmapのプラグイン)を再利用できる。工事・設備の進捗を 3D で見せる場合(完成形を破線、施工中をクリッピングで立ち上げる、部位と工程の対応、GLB の書き出し)は3D 施工進捗モデル を参照。drei の<Environment preset>は CSP で失敗するとアプリ全体が落ちるので使わない(チェック 13 が検出)。
図面レビューを非同期会話で回す場合: 図面コミュニケーション アドオン とPoC サンプル を参照。版付き図面 JSON と検証器、A3 の SVG 描画、注釈/タスク、候補の差分・採用・Undo、会話の相関コントラクト(会話 ID・ターン ID・編集バージョン・基準ハッシュ、重複ターン拒否)、A3 PDF を生成する Python スキルを再利用できる。Dataverse 未接続時は DEMO ワーカーであることを UI に明示し、実エージェント応答と偽らない。
[!NOTE]本スキルは React + Vite の Web Code Apps 用。Expo/React Native、camera/barcode/location 等の端末ネイティブ機能、Power Apps Developer app、Wrap が要件なら`mobile-apps` へ切り替える。Native は Private Preview で本番利用できない。
[!NOTE]Microsoft Learn の現行概要では、Code Apps は React / Vue などの SPA を Power Apps 上でホストする仕組み とされている。この開発標準はその中でも React ベース実装に標準化したガイドであり、他フレームワーク一般論ではなく、このリポジトリのテンプレートと運用実績に基づく推奨事項をまとめている。
1. 概要
Code Apps 開発は 設計 → 初回デプロイ → データソース接続 → 改善デプロイ の順に進む。
既定は Dataverse。SharePoint URL を渡されても、直接接続・継続利用を明示されない限り 仕様・移行元の参照情報として扱い、SharePoint コネクタを追加しない。 dataverse と data-migration で移行し、 Code Apps は Dataverse の接続参照を使用する。移行元の読み取り権限・移行承認は別途必要。
環境チェックを明示的に依頼されない限り、すぐに開発を開始する。 DLP / ACP・Code Apps 許可・マネージド環境・MCP の診断を開始条件にしない。 対象環境とデプロイ承認を確認できたら、ローカル predeploy / build を通して初回 push を優先する。 初回 push はテーブル全件構築・データ移行・ローカライズの完了を待たず、未接続部分を UI に明示する。 障害時だけ admin の権限確認付き復旧 を使用する。
[!NOTE]サブエージェント並行実行パターン:architectureスキルで Code Apps が確定し、dataverseスキルでスキーマが承認されたタイミングで、このスキルがサブエージェントとして起動される。Dataverse 構築(--skip-localizeフェーズ)と Code Apps 開発(scaffold → deploy → add-data-source)は並行して進める。Dataverse 構築が先に終わったら--localize-onlyでローカライズ&デモデータ投入。
標準ワークフロー全体像
この後の章構成
| 章 | 内容 | |
|---|---|---|
| §1 概要(本章) | 標準ワークフロー全体像・大前提・設計フェーズ(デザインテンプレート選択) | |
| §2 初回デプロイ | 環境前提・scaffold・ソリューション/接続参照の準備・init・初回 build & push | |
| §3 データソース接続 | add_data_source.py(コネクタ ID 自動解決・非対話)・接続参照バインド・MicrosoftDataverseService・Lookup 名前解決 | |
| §4 改善デプロイ | 開発時の必須ルール・再デプロイ・プレデプロイレビュー | |
| §5 リファレンス | 全リファレンス索引・技術スタック・.env |
[!NOTE]本スキル内のコード例は{prefix}_tablename等のプレースホルダーで汎用化されています。実際のテーブル名・型名は、あなたのプロジェクトのエンティティに読み替えてください。パターン(Lookup 名前解決、SDK ラッパー、useMemo マップ等)はそのまま適用できます。
設計フェーズ(実装前に必須)
コードを書く前に、デザインテンプレートの選択と UI 設計を行い、ユーザーの承認を得ること。 手順:
- デザインテンプレート集 の 6 種を一覧+プレビューで提示し、ユーザーに 1 つ選んでもらう(デプロイされるアプリは常に 1 テンプレート。dark/light は
ThemeProvider+ModeToggle)。 - デザインシステム を読み込み、画面構成・コンポーネント選定・Lookup 名前解決パターンを設計する。
- 設計(選択テンプレート+画面設計)を提示し、「この設計で進めてよいですか?」と承認を得る。承認の証跡を残す場合は、設計承認 Issue テンプレート を対象プロジェクトの
.github/ISSUE_TEMPLATE/にコピーして Issue を作成する。 - 承認後、選択テンプレートの CSS Variables を
styles/index.pcssに適用してから実装する(変数一式・適用手順は デザインテンプレート集)。
CRUD 画面は [CRUD UI 標準パターン](references/crud-ui-pattern.md) に必ず従う: 一覧は行/カード全体をクリックして詳細を開く(目アイコン等の小さなクリック領域は使わない)、詳細の編集はモーダルではなくインライン編集モード、行内の削除・クイック操作はe.stopPropagation()、削除確認はブラウザのconfirm()ではなくモーダル(useConfirm()/ AlertDialog)。指示がなくても、テーブルごとに「一覧・詳細(インライン編集)・作成・削除」を標準実装すること。
画面の骨格は [デザインシステム](references/design-pattern.md#ページの骨格新規画面はここから書き始める) からコピーして書き始める: マルチカラムはgrid-cols-[minmax(0,1fr)_...](素の1frは使わない)+直接の子すべてに `min-w-0`、長文はbreak-wordsではなく[overflow-wrap:anywhere]、コード・表・JSON はoverflow-x-autoで閉じ込める。min-w-0は後付けすると必ず抜けるため最初から書く。npm run predeployのチェック 7 が抜けを警告する。
画面が 3 つ以上あるアプリには [使い方ガイド](references/onboarding-guide-pattern.md) を標準実装する: 初回起動でカルーセルを自動表示し、「使い方を見る」から実操作ツアーへ繋ぐ。設計提示の段階でスライド構成(4〜6 枚)とツアー手順を画面一覧と一緒に示す。
設計で提示する内容: 選択テンプレート、画面一覧(ページ名・ルート)、各画面のコンポーネント構成、カラム定義、Lookup 名前解決方法(_xxx_value+useMemoMap)、ナビゲーション構造、テレメトリの転送先と監視する SLI(転送しない場合も明記)。
大前提(ソリューション運用): Dataverse テーブル・Code Apps・Power Automate・Copilot Studio は同一ソリューション内に開発し、.envのSOLUTION_NAME/PUBLISHER_PREFIXを全フェーズで統一する。詳細は `standard` スキル。
2. 初回デプロイ
デプロイ先とローカル構成(管理 API の事前確認は不要)
対象環境・アカウント・ソリューションとローカル構成を確認する。 Code Apps 許可は製品上の要件だが、通常フローでは管理センターや管理 API で事前診断せず push を試す。 既に無効と分かっている場合は無駄に push せず、復旧手順へ進む。
環境全体のチェックは明示依頼時のみ、障害時は原因に必要な項目だけをadmin スキル で診断する。委任権限がなければ管理操作を試さず管理者へ依頼する。Code Apps の必須条件は環境で「コード アプリを許可する」が有効であること。マネージド環境はガバナンス上の選択肢であり、Code Apps のデプロイ要件ではない。CLI の実行ファイル名は `pa`。@microsoft/power-apps-cliは bin をpower-appsから `pa` にリネームし、コマンドも group 化した(init→app init、push→app push、auth-status→auth status)。旧名を呼ぶとnpm error could not determine executable to runだけが出て原因が見えない。npm run predeploy(チェック 11)が package.json のデプロイコマンドとインストール済み bin 名の不一致を検出する。全コマンドの対応表は npm CLI リファレンス。
プロジェクトの 3 つの生成段階(生成物は手動作成・コピー禁止)
| 生成元 | 主な生成物 | |
|---|---|---|
| ① テンプレート scaffold | vite.config.ts / plugins/ / styles/ / src/ / tsconfig* / package.json 一式 | |
② npx pa app init | power.config.json(+ .power/)。vite.config.ts や plugins/ は生成しない | |
③ npx pa app add data-source --connector shared_commondataserviceforapps | .power/schemas/appschemas/dataSourcesInfo.ts / src/generated/services/MicrosoftDataverseService.ts / src/generated/models/MicrosoftDataverseModel.ts |
どのファイルを誰が生成し、何をカスタマイズしてよいかの一覧は ビルドリファレンス。SDK 管理ファイル(power.config.json/dataSourcesInfo.ts/src/generated/)は手動編集禁止。
テンプレートのプレースホルダー設計
テンプレートのデモメニューには template: true フラグが付いている。このフラグが残ったまま npm run predeploy を実行するとエラーになるため、削除忘れを防げる。
デプロイ前は npm run predeploy(.env・power.config.json を自動検証)→ npm run deploy(predeploy + build + push を一括実行)。
認証はキャッシュ優先。pa auth status はアカウント表示で、push 時の更新成功を保証しない。 TTY が無いだけでは停止せず、CLI 自身の暗号化キャッシュからのサイレント取得・更新を使う。 接続セットアップは下記のラッパーを使い、本人の認証・Edge プロファイルを確認した場合だけ --allow-interactive を付ける。必要な実コマンドを対話コンソールで実行し、手動ターミナルへの移動を要求しない。 device-code は使わず、通常のキャッシュ再利用を先に試す。 Python/SDK は auth_helper の共有キャッシュを使うが、npm CLI は別 client ID・専用キャッシュである。 外部トークンを受け取る公開オプションが無いため、CLI へ直接共有できたとは報告しない。 詳細は 認証・キャッシュ境界。
テンプレートは src/lib/telemetry.ts を含み、起動時に initializeLogger を登録する。既定では外部送信せず、 クエリ文字列・フラグメント・GUID を除去したメトリクスだけを code-apps:telemetry イベントへ出力する。 Application Insights 等へ転送する場合は custom sink と CSP の connect-src を合わせて設計する (テレメトリ / 可観測性パターン)。
標準ワークフロー
チュートリアル・画面ツアーを追加するときは、最初から 標準チュートリアル構成 を使う。対象内は透明、枠外だけ暗幕、 フォーカス後のスクロール、固定ヘッダーと非同期レイアウトの再計測を実装し、 通常の npm run predeploy の既知不具合チェックと実プレイヤーの視覚検証を行う。
上から順に実行すれば動く正常系フロー。各 Step の詳細・必須設定・型定義は ビルドリファレンス を参照。
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/code-apps/SKILL.md
Popularity
- Repository stars
- 57
- Repository forks
- 20
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
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/code-apps)