model-driven-app

A set of instructions for creating, configuring, and publishing model-driven apps in Microsoft Power Apps. These apps use Dataverse, Microsoft's cloud data platform, for their data and navigation structure.

In plain words
What is it for?
Use it to build Power Apps apps with Dataverse tables, navigation menus, views, forms, and security roles.
Why use it?
It provides the required setup, naming, authentication, design approval, and deployment rules for this type of app.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/geekfujiwara/codeappsdevelopmentstandard/model-driven-app
Any agent
npx skills add geekfujiwara/CodeAppsDevelopmentStandard --skill model-driven-app
Clone the repo
git clone --depth 1 https://github.com/geekfujiwara/CodeAppsDevelopmentStandard

Made for: Claude Code, Codex.

Per session 36 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,541 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00036 $0.04541
Opus 5 $0.00018 $0.02270
Sonnet 5 $0.00007 $0.00908
Haiku 4.5 $0.00004 $0.00454

Measured 2d ago against content hash afdea696a37d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

model-driven-app scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/customize_views_forms.py, scripts/deploy_model_driven_app.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

requests.post(
.github/skills/model-driven-app/SKILL.md · 390 lines

How it starts

The opening of the file, as written. The whole thing — 390 lines — stays where its author put it; the contents beside it link to each section on GitHub.

モデル駆動型アプリ構築スキル

Dataverse Web API(appmodules / sitemaps テーブル)でモデル駆動型アプリを ソリューション対応で 作成・構成・公開する。

前提: setup_dataverse.py で Dataverse テーブルが作成済みであること。 テーブルが存在しないとアプリに追加するコンポーネントがない。

大前提: 一つのソリューション内に開発

Dataverse テーブル・Code Apps・Power Automate フロー・Copilot Studio エージェント・モデル駆動型アプリすべて同一のソリューション内 に含める。 .envSOLUTION_NAMEPUBLISHER_PREFIX を全フェーズで統一して使用する。

認証: Python スクリプトの認証は standard スキルの auth_helper.py を使用。

前提: 設計フェーズ完了後にデプロイに入る(必須)

アプリをデプロイする前に、アプリ設計をユーザーに提示し承認を得ていること。

設計提示時に含める内容:

項目 内容
アプリ名 表示名とユニーク名(英語のみ)
アプリ説明 アプリの目的の簡潔な説明
含めるテーブル一覧 ソリューション内のどのテーブルをアプリに含めるか
ナビゲーション構造 SiteMap の Area/Group/SubArea 構成
ビュー・フォーム 各テーブルで表示するビューとフォーム(デフォルト: 全て含む)
セキュリティロール アプリに関連付けるロール
モデル駆動型アプリ: 設計提示 → ユーザー承認 → デプロイスクリプト実行

必須要件

AppModule 作成の必須プロパティ

name:          アプリの表示名(日本語 OK)
uniquename:    一意名(英語のみ。自動的にソリューション prefix が付く)
clienttype:    4(Unified Interface)★ 必須
webresourceid: アイコン用 WebResource ID
               システムデフォルト: 953b9fac-1e5e-e611-80d6-00155ded156f

clienttype=4 を必ず指定する【必須】

❌ clienttype 未指定 → レガシー Web クライアント用アプリが作成される
   「このアプリはレガシ Web クライアント用に設計されたものです」警告が表示
✅ clienttype=4 → Unified Interface(新しい Look & Feel)
   モダンな UI で動作し、警告なし

uniquename は英語のみ

✅ uniquename: "ProjectManagement"
❌ uniquename: "プロジェクト管理"
→ 英数字とアンダースコアのみ許容
→ 作成時にソリューション publisher prefix が自動付与(例: new_ProjectManagement)

SiteMap が必須(ValidateApp で検証される)

❌ SiteMap なしで AppModule を作成 → ValidateApp で "App does not contain Site Map" エラー
✅ SiteMap を先に作成し、AddAppComponents でアプリに追加

SiteMap XML の正式フォーマット【必須】

<SiteMap IntroducedVersion="7.0.0.0">
  <Area Id="MainArea" ShowGroups="true" IntroducedVersion="7.0.0.0">
    <Titles><Title LCID="1041" Title="アプリ名" /></Titles>
    <Group Id="grp_transaction" IntroducedVersion="7.0.0.0" IsProfile="false">
      <Titles><Title LCID="1041" Title="業務データ" /></Titles>
      <SubArea Id="sub_entity1" Entity="prefix_entity1" AvailableOffline="true" />
      <SubArea Id="sub_entity2" Entity="prefix_entity2" AvailableOffline="true" />
    </Group>
    <Group Id="grp_master" IntroducedVersion="7.0.0.0" IsProfile="false">
      <Titles><Title LCID="1041" Title="マスタ" /></Titles>
      <SubArea Id="sub_master1" Entity="prefix_master1" AvailableOffline="true" />
    </Group>
  </Area>
</SiteMap>

Read the full file on GitHub · 390 lines

Files

What ships with it

5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 390 lines · 36 tokens per session scan A afdea696a37d

Subscribe to this mod's changes

model-driven-app is a skill published in the GitHub repository geekfujiwara/CodeAppsDevelopmentStandard (59 stars, last pushed 5d ago), licensed MIT. It adds 36 tokens to every session and 4,541 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

ui