canvas-app

canvas-app is a skill for Claude Code from microsoft/power-platform-skills. It costs 79 tokens per session (3,470 once invoked), scanned A, original, MIT.

A workflow for creating or editing Microsoft Power Apps Canvas Apps, which are apps built from visual screens, controls, and connected data. It uses a local folder containing the app's YAML files and a Canvas Authoring session.

In plain words
What is it for?
Use it to generate a new Canvas App or modify an existing one, including responsive layouts, multiple screens, self-checks, and compile-error fixes. It also determines the correct workspace and app files to use.
Why use it?
It organizes app work according to whether the app is empty or already exists, while syncing the workspace and checking for errors. This helps handle both small targeted changes and larger multi-screen edits.

Skill for Claude Code ✓ vendor

Written for Claude Code: allowed-tools in frontmatter. Also seen: names the AskUserQuestion tool.

Part of the canvas-apps plugin — 4 skills, 2 agents, 1 hook, 1 MCP server shipped together

Good fit Use it to generate a new Canvas App or modify an existing one, including responsive layouts, multiple screens, self-checks, and compile-error fixes. It also determines the correct workspace and app files to use.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/microsoft/power-platform-skills/canvas-app
About the project

microsoft/power-platform-skills is a plugin marketplace containing reusable skills, agents, and commands for developing with Microsoft Power Platform. Developers use it to build and deploy Power Pages sites, model-driven Power Apps, and related solutions through Claude Code or GitHub Copilot. The catalogue entries are the marketplace's included skills, agents, plugins, and other agent components.

microsoft/power-platform-skills · 836 stars · on GitHub · aka.ms

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add microsoft/power-platform-skills --skill canvas-app
Clone the repo
git clone --depth 1 https://github.com/microsoft/power-platform-skills

Made for: Claude Code.

Or install canvas-apps, the plugin that ships this one along with the rest of its 4 skills, 2 agents, 1 hook, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for canvas-app

README.md
[![agentmods](https://agentmods.dev/badge/skills/microsoft/power-platform-skills/canvas-app.svg)](https://agentmods.dev/skills/microsoft/power-platform-skills/canvas-app)
Your own site
<a href="https://agentmods.dev/skills/microsoft/power-platform-skills/canvas-app"><img src="https://agentmods.dev/badge/skills/microsoft/power-platform-skills/canvas-app.svg" alt="Measured on agentmods" height="20"></a>
Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,470 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00079 $0.03470
Opus 5 $0.00039 $0.01735
Sonnet 5 $0.00016 $0.00694
Haiku 4.5 $0.00008 $0.00347

Measured 8d ago against content hash 7ef39ee2d76a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

canvas-app scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/canvas-apps/skills/canvas-app/SKILL.md · 244 lines

How it starts

The opening of the file, as written. The whole thing — 244 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Create or Edit a Canvas App

Create or edit a Power Apps canvas app for:

$ARGUMENTS

Establish the Workspace

Canvas Authoring tools operate on a local directory containing the app YAML.

  1. Reuse the current directory when it already contains App.pa.yaml.
  2. Otherwise, reuse the single immediate child directory containing App.pa.yaml, when exactly one exists.
  3. Otherwise, derive a short kebab-case folder name from the app name or requirements, create it with Bash, and resolve its absolute path.
  4. Call sync_canvas with that absolute working directory before reading or editing app files. Do not proceed if sync fails.

Always use absolute paths for app files. Never edit _EditorState.pa.yaml; Studio owns it.

Route the Request

Inspect the synced .pa.yaml files before choosing a workflow. A blank app normally contains App.pa.yaml, Screen1.pa.yaml, and _EditorState.pa.yaml.

Treat the app as empty when it has no screens with meaningful leaf controls. Containers without leaf controls do not make the app non-empty.

  • Empty app: read ${PLUGIN_ROOT}/references/CreateWorkflow.md and follow it.
  • Existing app: read ${PLUGIN_ROOT}/references/EditWorkflow.md and follow it.

Do not load both workflow documents.

Planned Build Handoff

CREATE and complex EDIT workflows return here after the planner finishes.

  1. Read [working directory]/canvas-app-plan.md returned by the planner.
  2. Verify its ## Requirement Coverage table maps every concrete requested noun and interaction to a visible affordance. Any approximation must be explicit and must not use UI copy that claims the unavailable interaction is exact.
  3. Verify its ## Action Contracts table:
    • Every requested or approved action has its own row and reachable entry point.
    • Create, edit, delete, search, filter, approve, reject, period, and export behaviors are not collapsed into vague combined rows.
    • When review distinguishes approved and rejected outcomes, Approve and Reject/Decline have separate contracts owned by the same eligible record surface.
    • Every mutation names an observable bound result, not only a confirmation message.
    • Every mutation declares a write set and receipt proof set. For create/edit, reject the plan when any user-entered or user-selected write-set field is absent from the proof set.
    • Supporting setup actions exist when required to exercise an explicitly requested lifecycle, relationship, comparison, or ranking.
    • Role-scoped management of all primary records includes separate visible select/edit/save and remove/cancel paths, not only review or status controls.
    • Create/edit contracts define required inputs, directly selectable finite choices, stable identity, edit prepopulation, cancel/reset behavior, and post-save evidence.
    • Every row names a precondition, source and stable identity, exact transition and postcondition, observer reading that source, and visible evidence.
  4. Verify its ## Functional Test Matrix:
    • Every Action Contract has at least one deterministic Given/When/Then success row.
    • Every required invalid, blocked, empty, clear/reset, or boundary path has a row.
    • Every Then names a source postcondition and an evidence surface that reads it.
    • Local/mock scenarios use concrete seeded IDs and values. Filter scenarios include at least two matching records and one non-matching record.
    • EDIT scenarios cover existing behavior touched by changed sources, fields, controls, or observer formulas.
  5. Verify its ## Dispatch table:
    • Every row has Action, Screen, Target File, YAML Key, Name Prefix, and Screen Brief.
    • CREATE rows use Create; EDIT rows use Modify or Create.
    • Target files and screen briefs are absolute paths under [working directory].
    • No two rows target the same file.
    • No two rows share a Name Prefix.
    • In CREATE mode the first row targets [working directory]/Screen1.pa.yaml with YAML key Screen1.
    • ## Editor State Changes exists and contains exact final order lists or None.
  6. Confirm [working directory]/canvas-app-shared.md and every dispatch row's Screen Brief exists. Verify each brief's assignment matches its dispatch row and includes every Action Contract owned by that screen under ## Required Actions and every scenario it exercises under ## Functional Test Scenarios.
  7. In EDIT mode, apply the ### Before builders group of ## App Changes to [working directory]/App.pa.yaml now. Screens bind to those collections, formulas and variables, and compiling them against a stale App.pa.yaml produces a flood of false name errors.
  8. Confirm the planner reported a clean compile_canvas for [working directory]/App.pa.yaml. If it did not, compile now and resolve every App-level diagnostic before dispatching. For EDIT mode, compile after applying the before-builder app changes and resolve App-level diagnostics before dispatching.
  9. Invoke canvas-screen-builder once per dispatch row, in waves of at most three. Fire the wave's invocations together in one message, wait for that wave to return, then dispatch the next.

Read the full file on GitHub · 244 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 244 lines · 79 tokens per session scan A 7ef39ee2d76a

Subscribe to this mod's changes

canvas-app is a skill published in the GitHub repository microsoft/power-platform-skills (836 stars, last pushed yesterday), licensed MIT. It adds 79 tokens to every session and 3,470 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

canvas-apps-ui-gen

Generates paste-ready Power Apps Canvas App YAML. Invoke when the user wants to replicate a UI mockup, improve an existing Canvas app screen, or build a new screen from a text description. Also invoke when the user asks to "improve", "redesign", or "generate YAML" for a Canvas app screen.

ToluVictor/canvas-apps-tools · 71 tokens

fec-ui-design

A frontend UI design guide for creating or reviewing product-specific interfaces, including layout, visual style, design systems, interaction states, responsive behavior, charts, and visual quality checks. It adapts the design to the product's users and main task.

bovinphang/frontend-craft · 123 tokens

fec-storybook-component-doc

A workflow for documenting interface components in Storybook, a tool that displays UI components and their states in isolation. It covers stories, reusable setup wrappers, written documentation, interaction checks, accessibility checks, and visual baselines.

bovinphang/frontend-craft · 93 tokens

fec-tailwind-design-system

A guide to organizing a Tailwind CSS design system: the shared rules for colors, spacing, themes, components, and responsive layouts.

bovinphang/frontend-craft · 79 tokens

brand-design

Brand-aware design system generator that acts as Head of Brand. Translates abstract brand language into a mathematically-validated, implementation-ready design system, writes creative-brief.md as the source of truth for all UI/UX in a project, and optionally compiles it to framework tokens (Tailwind v4 @theme, v3…

rfxlamia/pocketto · 146 tokens

design-lint

A repeatable checker for design problems in rendered HTML and CSS, standalone prototype pages, or live URLs. It compares them with a DESIGN-TOKENS.md file, a document defining approved colors, fonts, spacing, and other visual rules, and reports pass or fail results.

cubha/claude-workflow-plugins · 222 tokens