Skip to content
Development
Skill

/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.

From plugin
power-platform-skills
86896 skills19 agents4 MCP
Install
$ npx -y skills add microsoft/power-platform-skills --skill edit-app --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/edit-app

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

edit-app.SKILL.md
name: edit-app
description: "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."
user-invocable: true
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, Task, Skill
model: opus

**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

**Telemetry checkpoint: `assess_app_health_and_drift`**

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.t

Read more
Ships withpower-platform-skills

Official agent skills/plugins for Power Platform development by Microsoft.

Get the whole plugin

Other skills on power-platform-skills.