Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API. Use when the user wants to activate, provision, turn on, or enable a Power Pages website or portal.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user wants to preview generated screens in a browser without starting Metro / a simulator — for example after /create-mobile-app finishes or after /edit-app regenerates a screen.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Plugin check: Run
node "${PLUGIN_ROOT}/scripts/check-version.js"- if it outputs a message, show it to the user before proceeding.
Shared instructions: shared-instructions.md — read first.
Generates a self-contained HTML file that renders every screen in the app as a phone-frame mockup (375 × 812) with tab navigation and a dark/light toggle. The agent reads TSX files, understands the Tamagui component tree, and produces equivalent HTML/CSS — no programmatic TSX parsing.
npm run dev/edit-app; screen-builder is an internal agent invoked by orchestrator skillsDetermine the working directory:
$ARGUMENTS contains --working-dir <path>, use that.Validate the project:
Glob pattern="power.config.json" path="<working_dir>"
If missing, check for package.json. If neither exists, report the error and stop.
Read memory-bank.md if present to get the project name for the page title:
Grep pattern="^# " path="<working_dir>/memory-bank.md"
Fallback: read name from package.json.
Telemetry checkpoint: discover_app_screens
Find all TSX files under the app directory:
Glob pattern="app/**/*.tsx" path="<working_dir>"
Exclude these patterns — they are not screens:
_layout.tsx (navigation layouts)+not-found.tsx (Expo Router error boundary).index.tsx at the app root if it only contains an auth redirect (read it to check)Derive screen names from file paths:
app/(app)/home.tsx → "Home"app/(app)/recipes/index.tsx → "Recipes"app/(app)/recipes/[id].tsx → "Recipe Detail"app/login.tsx → "Login"app/oauth-callback.tsx → skip (not a visible screen)If native-app-plan.md exists in the working directory, read its ## Screens section for human-friendly labels.
Build an ordered list: [ { path, screenName, screenId } ].
Default tab ordering — Home first, then two details, then the rest. Step 5 marks the first entry as active, so the order below directly controls which screen the user lands on when preview.html opens.
Sort the list with this priority:
app/(app)/home.tsx, app/(app)/index.tsx, app/(app)/dashboard.tsx, app/index.tsx (only if it's a real home screen — not the auth redirect you already filtered out in Step 2). If native-app-plan.md flags one screen as the home/landing screen, prefer that.[ and ] (e.g. app/(app)/recipes/[id].tsx, app/(app)/orders/[orderId]/edit.tsx). Take the first two in the order they were discovered (alphabetical by path is fine).If there are fewer than two detail screens, just include whatever exists and continue with the rest — do not pad with non-detail screens to force a count of 3.
Do not drop any screens — this rule only reorders. Every discovered screen still gets a tab.
Load the Tamagui-to-HTML mapping reference:
Read file_path="${PLUGIN_ROOT}/shared/references/tamagui-html-mapping.md"
Internalize:
Also check if the project has custom brand tokens:
Glob pattern="tamagui.config.ts" path="<working_dir>"
If found, read it and extract any custom color tokens (look for tokens: { color: { ... } }). Add them as additional CSS custom properties in the generated HTML.
Telemetry checkpoint: render_screen_preview_frames
Print before starting:
"→ Reading + converting <N> screens to HTML/CSS (one print per screen as I go)."
For each screen in the ordered list from Step 2:
Read the full TSX file.
Identify the component tree. Walk the JSX return statement and note every Tamagui component, its props, and its children.
Generate equivalent HTML/CSS using the mapping from Step 3:
YStack → <div style="display:flex; flex-direction:column; ...">flex={1} → flex:1, bg="$color2" → background:var(--color2), etc.)p="$4" → padding:16px)<Ionicons name="..." /> icons with Unicode equivalents (see mapping reference Section 3, Guideline 4 — the icon substitution table uses Ionicons names)Handle dynamic content:
.map() over arrays → generate 3–4 representative placeholder itemsuseQuery / useMutation → show the populated state only (skip loading/error branches)defaultValues → pre-fill inputs with those valuesNative PDF/pen controls need honest static approximations:
Stored in Evidence PDF File or On-device share only), and a disabled View PDF button. If the source URL is not visibly HTTPS, label it Preview unavailable in browser rather than showing a fake viewer.Uploads to Evidence PDF File. Do not embed a browser PDF iframe or imply the native viewer runs in preview.Stored in Signature Image or Uploads to Signature File.Produce a <div class="screen" id="screen-{screenId}"> wrapping the converted HTML.
Use inline styles on elements. Keep each screen's HTML self-contained (no shared CSS classes between screens, except the theme variables).
Use the phone frame template from the mapping reference (Section 4) as the outer shell.
Replace the placeholders:
{{APP_NAME}} — project name from Step 1{{TABS}} — one <button class="tab" ...> per screen, first tab gets class active{{SCREENS}} — all screen <div> blocks from Step 4, first screen gets class activeIf the project has custom brand tokens (from Step 3), add them to the :root CSS block.
Telemetry checkpoint: write_screen_preview_document
Write file_path="<working_dir>/preview.html"
Print confirmation:
✅ Preview generated: <working_dir>/preview.html
Screens: <N> (<comma-separated list of screen names>)
Toggle: dark/light mode button in top-right
Telemetry checkpoint: open_screen_preview
Do NOT prompt. The visual_companion flag in <working_dir>/memory-bank.md already encodes the answer; asking again is redundant. The flag is set by /design-system (Step 6.75) during project creation, or defaults to yes if /design-system was not run.
Read the flag and act:
grep -E "^visual_companion:[[:space:]]*(yes|no)" '<working_dir>/memory-bank.md' 2>/dev/null
| Flag | Action |
|---|---|
visual_companion: no | Print the link and stop. Do not auto-open. |
visual_companion: yes (or missing memory-bank, or standalone invocation) | Print the link, then auto-open. |
visual_companion: no — print:
"Preview is at:
file://<working_dir>/preview.html(Visual Companion off — open manually.)"
Otherwise — print the link AND auto-open in one breath, no prompt:
"Preview is at:
file://<working_dir>/preview.html— opening now."
Then try OS-appropriate openers in sequence and fall back to printing the link if none work:
open '<working_dir>/preview.html' 2>/dev/null \
|| xdg-open '<working_dir>/preview.html' 2>/dev/null \
|| MOBILE_APP_PREVIEW_PATH='<working_dir>/preview.html' \
powershell.exe -NoProfile -Command 'Start-Process -FilePath $env:MOBILE_APP_PREVIEW_PATH' 2>/dev/null \
|| printf '%s\n' 'Could not auto-open. Open this URL in your browser: file://<working_dir>/preview.html'
open is macOS-only; the chain also tries Linux (xdg-open) and Windows
(powershell.exe Start-Process). The Windows path is passed as data, not
PowerShell source. On headless or unsupported cross-host sessions, report the
failed launch and manual link instead of claiming the browser opened.
preview.html — it never modifies TSX files, layouts, configs, or the memory bank./preview-screens overwrites the previous preview.html.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API. Use when the user wants to activate, provision, turn on, or enable a Power Pages website or portal.
日本語の概要は準備中です。原文の説明を表示しています。
Integrates Power Pages generative-AI summarization APIs (PREVIEW) into a Single Page Application (SPA) site — the Search Summary API and the Data Summarization API — on any record-detail or list page. Generates per-target service code (CSRF-handled) and AI site settings; delegates Web API settings, table permissions, and web roles to `/integrate-webapi` and `/create-webroles`. Use whenever a user wants AI/Copilot output that condenses Dataverse content on a Power Pages site — an AI summary, AI-generated overview or "key insights" across a record or list, a search-results summary, a case/incident summary, or recommendation-chip refinement — even when phrased as "AI-generated paragraph", "insights", or "overview". Do NOT use for: generative pages in model-driven apps (use the model-apps `genpage` skill), Copilot Studio agents/chatbots, summarizing documents or PDFs, Power BI dashboards, plain keyword search with no AI summary, or plain Dataverse CRUD (use `/integrate-webapi`).
日本語の概要は準備中です。原文の説明を表示しています。
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.
日本語の概要は準備中です。原文の説明を表示しています。
Internal implementation skill invoked by /add-native for camera, image picker, barcode scanner, QR scanner, and camera/gallery Dataverse artifact workflows.
日本語の概要は準備中です。原文の説明を表示しています。
Integrates Power Automate cloud flows into a Power Pages site. Lists available flows, suggests relevant ones based on intent, identifies scenarios and web roles, creates metadata files, and generates client-side code to call flows. Handles both new flow registration and adding already-registered flows to additional pages without re-creating metadata. Use when the user wants to add, connect, register, or link a Power Automate cloud flow to their site.
日本語の概要は準備中です。原文の説明を表示しています。
Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.
日本語の概要は準備中です。原文の説明を表示しています。