Generate a Canvas App
Generate a complete Power Apps canvas app for the following requirements:
$ARGUMENTS
Overview
This skill uses two specialist agent definitions (read from the agents/ folder):
canvas-app-planner— discovers controls and data sources, designs the app, presents a screen plan for approval, writes a shared plan documentcanvas-screen-builder— writes exactly one screen's YAML; multiple builders run sequentially after the plan is approved
You coordinate the agents and own the compilation + error-fixing loop after all screens are written.
Plugin root: the directory containing skills/, agents/, and references/
Phase 0 — Create App Folder
- Extract the app name or a 2–4 word summary from
$ARGUMENTS - Convert to kebab-case (e.g., "Expense Tracker" →
expense-tracker) - Create the folder:
mkdir -p <folder-name> - Resolve its absolute path — this is the working directory for all subsequent phases
Phase 1 — Plan (Planner Agent)
Read these files before planning:
../../references/TechnicalGuide.md../../references/DesignGuide.md../../agents/canvas-app-planner.md
Adopt the role of the canvas-app-planner and follow every step in that file, with:
- User requirements:
$ARGUMENTS - Working directory: the absolute path resolved in Phase 0
- Plugin root: the directory containing
skills/,agents/, andreferences/
Complete ALL steps in the planner agent file, including:
- Using the already loaded
TechnicalGuide.mdandDesignGuide.md - Calling
list_controls,list_apis,list_data_sources - Presenting the screen plan to the user and waiting for approval
- Writing
canvas-app-plan.mdandApp.pa.yamlto the working directory
Do not proceed to Phase 2 until the user approves the plan.
Phase 2 — Build (Screen Builder Agent, One Screen at a Time)
After the planner completes, read canvas-app-plan.md from the working directory.
Extract the screen list from the ## Screens table.
For each screen in the list, in sequence:
- Read the builder agent definition:
../../agents/canvas-screen-builder.md - Adopt the role of
canvas-screen-builderfor this screen - Follow every step in that file with:
- Screen name
- Target file name
- Plan document:
<working-directory>/canvas-app-plan.md - Working directory: the absolute path from Phase 0
- Write
[ScreenName].pa.yamlto the working directory before moving to the next screen
Phase 3 — Validate and Fix
After all screen files are written, call compile_canvas on the working directory.
On success: Proceed to Phase 4.
On failure: For each error in the output:
- Read the referenced
.pa.yamlfile - Fix the error
- Call
compile_canvasagain
Repeat until compile_canvas reports no errors.
Phase 4 — Summary
Delete canvas-app-plan.md:
rm <working-directory>/canvas-app-plan.md
Present final summary:
App generation complete.
Screen File Status [Screen Name] [filename].pa.yaml Written Compiled clean after [N] pass(es). | Screens: [N] | Data: [source or collections]