add-data-source
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and…
Use when the user wants to start a new Power Apps mobile app (Expo / React Native / TypeScript, targeting iOS and Android) from scratch.
Claude Code
$ npx -y skills add microsoft/power-platform-skills --skill create-mobile-app --agent claude-code
Codex
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a codex -y
Cursor
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a cursor -y
Gemini CLI
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a github-copilot -y
OpenCode
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a opencode -y
Windsurf
$ npx skills add microsoft/power-platform-skills --skill create-mobile-app -a windsurf -y
name: create-mobile-app description: Use when the user wants to start a new Power Apps mobile app (Expo / React Native / TypeScript, targeting iOS and Android) from scratch. user-invocable: true allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill, Task, EnterPlanMode, ExitPlanMode model: opus
> **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](${PLUGIN_ROOT}/shared/shared-instructions.md)** — read first. Covers safety guardrails, memory bank usage, preferred-environment policy, connector-first rule, Windows CLI compat, command-failure handling.
Top-level orchestrator. Owns the user-visible flow; delegates planning to the `native-app-planner` agent and per-domain mutation to dedicated `/add-*` skills.
For every child skill handoff, pass the invocation-scoped [app-edit-routing.md](../../shared/references/app-edit-routing.md) context: `MOBILE_APP_ORCHESTRATING=1`, `orchestrator: create-mobile-app`, the absolute `working_dir`, current `phase`, and the exact approved scope/answers for implementation. Forward it through routers and native helpers; do not persist it or rely on an earlier shell export. The plan exists before the app is fully built, so children must use this context rather than mistake creation for a standalone edit. Design/configuration children still own any approval explicitly delegated to their phase; this marker never skips those gates.
Intent and creation-state checks → prerequisites → requirements (iOS + Android fixed) → rough plan preview → Gate 1 architecture (native capabilities, connectors, then data platform) → Gate 2 Dataverse model when selected → Gates 3 and 4 screen graph/specifications → environment and template preparation → app initialization → design system → conditional Dataverse materialization and sample data → Mobile Offline Profile offer for Dataverse apps → native capabilities and connectors → navigation and screens → validation, preview, and summary.
---
This skill assumes the user already has a **fresh** `microsoft/power-platform-skills/plugins/mobile-apps/template#main` template materialized with `degit` in the target working directory and has already run `npm install` there. The skill turns that fresh template into an app; it does not clone, degit, or copy a template itself.
**Fresh template required for creation.** If the working directory is not a fresh template, STOP creation and follow the state-specific routing below. Do not send an existing-app edit request to a new folder. Missing generated markers alone do not prove freshness: if the template is customized or its state is unclear, ask before proceeding. Only a request for a new app requires a fresh template folder.
Resolve the original request before classifying project state. Apply this state-routing table once in Step 0, in the order below; file markers are supporting evidence, not user intent or approval.
| State | Detection | Action | |---|---|---| | Creation continuation | Explicit creation-continuation intent or a valid current create handoff for this app, not a request to edit an existing app | Use Step 0's continuation path. Require matching unfinished creation progress and confirm the next phase before continuing; missing or conflicting progress requires clarification, not fresh scaffolding. | | Already-created app | Existing-app intent or confirmed app customizations/materialized state, even when generated markers are missing. `memory-bank.md`, `.datamodel-manifest.json`, and `src/generated/services/*.ts` can corroborate state, but do not select creation resume | STOP creation: never re-scaffold it. If the request changes this app, preserve the original request and execute the shared existing-app entry routing; invoke `/edit-app` only after **Full app integration**. If the user wants a separate new app, ask for a fresh template folder. | | Fresh template | Confirmed new-app intent and a confirmed uncustomized starter; `package.json`, `app.config.js`, `auth.config.json`, and `tamagui.config.ts` exist; `node_modules/expo` exists; no materialized app bindings, `memory-bank.md`, `.datamodel-manifest.json`, or generated Dataverse services. An approved creation plan and its planning artifacts are allowed | Proceed to Step 1 only when every condition is satisfied. Missing generated markers alone do not establish freshness. | | Template not installed | Confirmed new-app intent and a confirmed uncustomized starter with the required template files, but `node_modules/expo` is absent | STOP: ask user to run `npm install` in the template folder, then rerun. Do not provision ADO npm tokens here. | | Not template | Confirmed new-app intent in a new/unsupported directory, after excluding existing-app work and creation continuation | STOP: ask user to materialize `microsoft/power-platform-skills/plugins/mobile-apps/template#main` into a new or empty folder with `degit` and run `npm install`; never overwrite existing work. | | Unclear state or intent | New-app versus edit intent, customization, or creation progress cannot be established | Ask before selecting a workflow. Preserve the directory, plan, and history; do not default to fresh creation or resume. |
An approved `native-app-plan.md` alone is not a created-app marker. Creation writes it before template preparation, and `assertFreshTemplate` intentionally allows it. A plan alone also does not identify a safe resume phase: use current caller context and saved creation progress, or ask. Do not treat an unrelated or stale plan as approved for this request.
`/create-mobile-app` creates from a confirmed fresh starter or continues an explicitly requested unfinished creation. It does not adopt, repair, overwrite, or resume a completed app just because a bank or plan exists.
An alr
Plugins from Microsoft that teach AI assistants, such as GitHub Copilot and Claude Code, to build on Power Platform.
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and…
Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles staged experience design,…
Configure the Canvas Authoring MCP server for the current coauthoring session. Use before starting to edit a canvas app with the…
Use this skill when the user wants to "report a bug", "file an issue", "report an issue", "submit a bug report", or report any…
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making…
Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.