generative-page

A skill for building and deploying Generative Pages in Power Apps. These are lightweight pages built as a single React and TypeScript file, with Fluent UI for controls and D3.js for charts.

In plain words
What is it for?
Use it to create, debug, and upload Power Apps pages that display data and charts through the Data API.
Why use it?
It defines the exact libraries, file structure, styling rules, and deployment command needed for this page type.

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/generative-page
Any agent
npx skills add geekfujiwara/CodeAppsDevelopmentStandard --skill generative-page
Clone the repo
git clone --depth 1 https://github.com/geekfujiwara/CodeAppsDevelopmentStandard

Made for: Claude Code, Codex.

Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,675 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00062 $0.05675
Opus 5 $0.00031 $0.02838
Sonnet 5 $0.00012 $0.01135
Haiku 4.5 $0.00006 $0.00568

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

Security

Grade A, and why

generative-page scanned grade A with 0 findings 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 3d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (references/objectflow-RuntimeTypes.ts), 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/skills/generative-page/SKILL.md · 381 lines

How it starts

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

Generative Pages 開発スキル

Power Apps モデル駆動型アプリの Generative Pages (genux) を開発・デバッグ・デプロイするスキル。

Code Apps スキル (code-apps) との違い: Code Apps は React 18 + Tailwind + Vite + npx power-apps push のフルスタック開発。Generative Pages は React 17 + Fluent UI V9 + D3.js の 単一 .tsx ファイル構成pac model genpage upload でデプロイする軽量ページ。

技術スタック

レイヤー 技術
UI React 17 + TypeScript
コンポーネント @fluentui/react-components (Fluent UI V9)
アイコン @fluentui/react-icons(サイズなしバリアントのみ)
チャート D3.js v7
データ props.dataApi (DataAPI)
デプロイ PAC CLI (pac model genpage upload)

利用可能ライブラリ(これ以外は使用禁止):

react: ^17.0.2
@fluentui/react-components: ^9.46.4
@fluentui/react-icons: ^2.0.292
@fluentui/react-datepicker-compat: ^0.5.0
@fluentui/react-timepicker-compat: ^0.3.0
d3: ^7.9.0
uuid: ^9.0.1

必須要件

  1. React 17 構文のみ — React 18 の useId, useTransition 等は使用不可
  2. FluentProvider 追加禁止 — ルートで提供済み。追加すると React 17 でダブルレンダーが発生
  3. 100vh / 100vw 禁止 — flexbox と相対単位を使用
  4. 単一ファイル構成 — 全コンポーネント・ユーティリティを 1 つの .tsx ファイルに記述
  5. export default GeneratedComponent — エントリポイントの関数名と export 形式は固定
  6. makeStyles + tokens でスタイリング。インラインスタイルは動的値のみ
  7. DataAPI は読み取り専用props.dataApi.queryTable()getChoices() のみ使用可能。updateRecord, createRecord, deleteRecord は存在しない
  8. 書き込みは Xrm.WebApi.online(window as any).Xrm.WebApi.online.updateRecord() / .createRecord() / .deleteRecord() を使用。dataApi には書き込みメソッドがない
  9. カラム名は RuntimeTypes.ts を確認 — 推測禁止
  10. @fluentui/react-icons はサイズなしバリアントのみAddRegular ✅ / Add24Regular
  11. Map / Setfor...of 禁止.forEach() または [...map] でイテレーション
  12. ダークモードはデフォルトで実装しない — ユーザーが明示的にダークモード対応を要求した場合のみ themeToVars パターンを実装する。デフォルトは Fluent UI のシステムテーマに従う(追加実装なし)

13 以降の詳細ルール・教訓(Lookup 解決・SiteMap の Url 属性方式・D3 チャート・OData アノテーション回避・genpage upload/PublishXml のタイムアウト対策等、コード例つき)は 必須要件 詳細 を参照。

Read the full file on GitHub · 381 lines

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. 3d ago First seen · 381 lines · 62 tokens per session scan A da5765be097a

Subscribe to this mod's changes

generative-page is a skill published in the GitHub repository geekfujiwara/CodeAppsDevelopmentStandard (59 stars, last pushed 5d ago), licensed MIT. It adds 62 tokens to every session and 5,675 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.