
Edit Canvas App
Apply natural-language edits to an existing Power Apps canvas app by syncing, compiling, and updating pa.yaml in an isolated working folder.
Install
npx skills add https://github.com/microsoft/power-platform-skills --skill edit-canvas-appWhat is this skill?
- Routes simple single-control edits inline and complex multi-screen work through canvas-edit-planner plus parallel canvas
- Phase 0 creates a kebab-case app subfolder as the sole working directory before any sync or YAML edit
- Uses mcp__canvas-authoring__sync_canvas and compile_canvas after pulling current app state
- Allowed tooling spans Read, Write, Edit, Bash, and task orchestration for structural changes
Adoption & trust: 34 installs on skills.sh; 349 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Agent Browservercel-labs/agent-browser
Lark Imlarksuite/cli
Lark Calendarlarksuite/cli
Lark Sheetslarksuite/cli
Lark Vclarksuite/cli
Lark Contactlarksuite/cli
Journey fit
Primary fit
Canvas app changes happen while you are actively building or extending a low-code product tied to data sources and screens. Power Apps canvas work sits in integrations—MCP sync/compile, data bindings, and platform connectors—not pure hand-coded frontend repos.
Common Questions / FAQ
Is Edit Canvas App safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Edit Canvas App
# Edit a Canvas App Make the following changes to the existing Canvas App: $ARGUMENTS ## Overview This skill uses two paths depending on edit complexity: - **Simple edits** (single control/property changes, formula tweaks) — handled inline - **Complex edits** (multiple screens, new screens, structural changes, new data sources) — orchestrated via specialist agents: `canvas-edit-planner` + parallel `canvas-screen-editor` --- ## Phase 0 — Create App Folder Before syncing or editing, create a subfolder to contain the app's YAML files: 1. Derive a short folder name from `$ARGUMENTS` — extract the app name if present, otherwise use a 2–3 word summary of what is being edited 2. Convert to kebab-case (e.g., "Expense Tracker" → `expense-tracker`) 3. Create the folder using `Bash`: `mkdir -p <folder-name>` 4. Resolve its absolute path — this is the **working directory** for all subsequent phases All file reads, writes, and syncs operate in this folder. --- ## Phase 1 — Sync and Check **Sync the canvas app:** Call the `sync_canvas` MCP tool targeting the working directory. This pulls the current app state from the coauthoring session into local `.pa.yaml` files. Only proceed after `sync_canvas` completes successfully. **Check for meaningful content:** After `sync_canvas` completes, read the synced `.pa.yaml` files and check whether the app has meaningful content. An app is considered **empty** if: - No `.pa.yaml` files were written, or - The only files present contain no screens, or - Every screen present has no controls (only bare screen-level YAML with no children), or - Every screen's controls consist solely of containers (e.g., `GroupContainer`) with no leaf controls inside them If the app is empty, **do not proceed with the edit workflow**. Instead, inform the user: > **The synced app appears to be empty — no existing screens or controls were found.** > Switching to app generation mode to build the app from scratch. Then follow the full **generate-canvas-app** workflow, using the user's original request as the generation requirements. If the app has meaningful content, proceed to Phase 2. --- ## Phase 2 — Assess Complexity Read all synced `.pa.yaml` files. Based on `$ARGUMENTS` and the current app state, determine whether this is a **simple** or **complex** edit: **Simple** — all of the following are true: - Changes affect ≤ 2 controls or properties - Changes are confined to ≤ 1 screen - No new screens are being added - No new data sources or connectors are needed - No structural layout changes (e.g., not changing ManualLayout to AutoLayout) Examples: change a button color, update label text, fix a formula, adjust a control size. **Complex** — any of the following are true: - Changes span multiple screens - One or more new screens need to be created - New data sources or connectors are required - Structural layout changes are involved - Significant visual redesign of a screen Examples: add a settings screen, redesign the home screen layout, integrate a new connector, change the navigation flow across the app. - If **simple**: proceed to Phase 3a. - If **complex**: proceed to Phase 3b. --- ## Phase 3a — Simple: Direct Edit Read `${CLAUDE_PLUGIN_ROOT}/references/TechnicalGuide.md` before making changes. Apply the changes directly: 1. **Edit** the relevant `.pa.yaml` files with the required changes, following conventions from TechnicalGuide.md. 2. **Validate** by calling `compile_canvas` on the working directory after making changes. On failure, read the errors, fix with `Edit`, and re-compi