edit-app
Use when the user wants to iterate on an existing generated Power Apps mobile app after /create-mobile-app: update the plan, data model, native capabilities, design, screens, generated app code, and preview without restarting the full project flow.
git clone --depth 1 https://github.com/microsoft/power-platform-skills /tmp/edit-app && cp -r /tmp/edit-app/plugins/mobile-apps/skills/edit-app ~/.claude/skills/edit-appSKILL.md
**Shared instructions: [shared-instructions.md](../../shared/shared-instructions.md)** — read first. # Edit App (`/edit-app`) Post-generation editor for an existing mobile app. `native-app-plan.md` remains the source of truth, but the default outcome is a fixed generated app, not a plan-only diff. After the user approves the plan delta, continue into Dataverse/native/design/screen mutations, run verification, update `memory-bank.md`, and regenerate the static preview when UI changed. Use `--plan-only` only when the user explicitly asks to update planning docs without changing app code. Normal follow-up prompts in Copilot Chat Agent mode should apply the app change end to end. ## When to use - "Improve the search screen to make it easier to use on mobile" - "Add loading, empty, and error states to the list screen" - "Add a detail screen for the selected record" - "Update the design to better match the company branding" - "Add a form to create a new record in Dataverse" - "Add barcode scanning and use the scanned value to search records" - "Generate a new static preview of the updated app" - "Add a `case` table to the data model" - "Replace the Drawer navigation with Tabs" - "Add `expo-camera` to the native capabilities" - "Add signature capture to approvals and store it in Dataverse" - "Generate an evidence PDF and retain it on the inspection record" - "Add a View PDF action for an HTTPS report URL" - "Reorder screens — move profile out of tabs, into a modal from the home header" ## When NOT to use - Brand-new project → `/create-mobile-app` - Just adding one connector with no screen changes → `/add-connector` directly - Just adding a single native wrapper with no screen changes → `/add-native` directly - The plan file is missing → re-run `/create-mobile-app` (don't try to reconstruct) ## Workflow 0. Locate app + health/drift probe → 1. Discover intent + inspect existing app → 1.5 Impact preview → 2. Re-plan affected sections → 3. Gate intent, plan + mutation preview → 4. Write plan diff → 5. Apply app mutations → 6. Rebuild affected screens → 7. Verify + quality sweep → 8. Preview + memory-bank update + optional debug handoff --- ## Edit Quality Gate Policy — no quality compromise This is a focused edit workflow, not a lighter quality bar. Reuse `/create-mobile-app` gates at edit scale. **Required gates by edit type:** | Edit touches | Required gates | |---|---| | Any source file | Existing-app health gate, final `npx tsc --noEmit` | | Dataverse/schema/connector | Environment drift gate, data-source/schema gate, Generated Services snapshot refresh, final `tsc` | | Navigation/routes | Navigation/layout gate, route contract check, final `tsc` | | New screen | Shared scaffold gate, skeleton gate, screen-builder wave gate, style-quality sweep, route check, final `tsc` | | Existing screen TSX | Screen edit gate, style-quality sweep, route check when navigation changed, final `tsc` | | Native capability | Native allowlist gate, wrapper existence gate, final `tsc` | | Pure-JavaScript dependency | Approved exact-version dependency table, package-content gate, package validation, final `tsc` | | Design/component/density | Design-system gate, affected-screen style sweep, final `tsc`, preview | **When a gate fails:** capture full output once, classify by root cause, repair in a batch, rerun the same gate once. Do not make line-by-line fixes with `tsc` after every tiny edit. Continue only when the gate is clean or record a `BLOCKED:` / `DONE_WITH_CONCERNS:` entry in `memory-bank.md`. **Hard stops:** - Do not run data-source mutations if the app root/environment cannot be identified. - Do not launch screen-builders from broken generated services, route layouts, shared code, or skeletons. - Do not import native wrappers in screens before `/add-native` has generated them. - Do not hide unsupported native capabilities behind mocks or TODOs just to satisfy TypeScript. - Do not mark an edit successful if changed screens fail TypeScript, route contracts, or required validators. ### Step 0 — Locate app + health/drift probe ```bash test -f native-app-plan.md && echo "OK: plan found" || echo "ERROR: no plan" test -f package.json && echo "OK: package found" || echo "ERROR: no package" test -d app && echo "OK: app routes found" || echo "ERROR: no app routes" test -f memory-bank.md && echo "OK: memory bank found" || echo "WARN: no memory bank" git status --short ``` If `native-app-plan.md` is missing → STOP. Tell the user this skill edits an existing generated app; they should re-run `/create-mobile-app` on a fresh template or manually recreate the plan before using this editor. Read if present: - `memory-bank.md` — project facts, target environment, visual companion flag, prior blocks - `.datamodel-manifest.json` — existing Dataverse tables/columns - `brand/design-system.md` and `brand/tokens.ts` — design constraints and token availability - `src/generated/services/*.ts` and `src/generated/models/*.ts` — generated data surface Run these existing-app health checks before any mutation: | Check | Action if unhealthy | |---|---| | `memory-bank.md` exists and has expected headings | If missing/corrupt, ask whether to proceed with reduced resume safety; create/update only after approval | | `power.config.json`, `.resolved-environment.json`, and memory bank env agree | For data-source/schema edits, STOP until the user confirms the intended environment | | `src/components/index.tsx`, `src/hooks/index.ts`, `src/utils/index.ts`, `src/tokens/index.ts` exist | Restore missing shared scaffold from `shared/samples/src/` before screen-builder work; do not overwrite existing files | | `app/_layout.tsx` still wraps providers and SafeAreaProvider correctly | Patch conservatively before screen work; route/safe-area validators depend on this | | `src/generated/` compiles when the edit depends on generated services | Regenerate schemas/services first, or block before screen work | | `node_modules` and packag
>-
>-
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.
>-
Use when adding a Power Platform connector to an Expo/React Native Power Apps mobile app and no dedicated mobile connector skill exists.
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and continue. USE WHEN the user asks to add a data source, add a connection, add an API, add a connector, connect to SharePoint / Dataverse / SQL / Excel / OneDrive / Teams / Office 365, or any similar request to make new data available to the app. DO NOT USE WHEN the user is asking to list or describe existing data sources — call list_data_sources or list_apis directly instead.
Use when adding an unspecified data source to an Expo/React Native Power Apps mobile app; routes to Dataverse, SharePoint, or another connector.