Skip to content

Commit 9790761

Browse files
lesaltzmCopilot
andauthored
Unify confusing Canvas Edit vs Generate skills (#137)
* Initial work to unify canvas skills * Attempt at review * Version * Updates * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Rename to /canvas-app --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent 9758c21 commit 9790761

12 files changed

Lines changed: 847 additions & 1001 deletions

File tree

plugins/canvas-apps/AGENTS.md

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,28 @@ CLAUDE.md ← Symlink → AGENTS.md
2525
references/
2626
TechnicalGuide.md ← YAML syntax, control selection, layout strategies, Power Fx patterns
2727
DesignGuide.md ← Aesthetic guidelines, anti-patterns, design process
28+
QAChecks.md ← Runtime anti-pattern checks for self-QA
29+
PlanTemplates.md ← CREATE and EDIT plan document structures for canvas-app-planner
2830
agents/
29-
canvas-app-planner.md ← Plans app design; invoked by generate-canvas-app (sequential)
30-
canvas-screen-builder.md ← Builds one screen; invoked by generate-canvas-app (parallel)
31-
canvas-edit-planner.md ← Plans complex edits; invoked by edit-canvas-app (sequential)
32-
canvas-screen-editor.md ← Applies edits to one screen; invoked by edit-canvas-app (parallel)
31+
canvas-app-planner.md ← Discovers resources and writes plan document; invoked by canvas-app
32+
canvas-screen-builder.md ← Builds or modifies one screen; invoked by canvas-app (parallel)
3333
skills/
34+
canvas-app/
35+
SKILL.md ← Unified skill: create or edit a Canvas App (auto-detects mode)
3436
configure-canvas-mcp/
3537
SKILL.md ← Registers the Canvas Authoring MCP server with Claude Code
36-
generate-canvas-app/
37-
SKILL.md ← Orchestrates canvas-app-planner + canvas-screen-builder agents
38-
edit-canvas-app/
39-
SKILL.md ← Edits pa.yaml source files for an existing Canvas App
4038
add-data-source/
4139
SKILL.md ← Guides user to add a data source or connector in Studio, then verifies
40+
generate-canvas-app/
41+
SKILL.md ← [DEPRECATED] Redirects to canvas-app
4242
```
4343

4444
## Skills
4545

4646
| Skill | Description |
4747
|-------|-------------|
48+
| `/canvas-app` | Create or edit a Canvas App — auto-detects whether to generate from scratch or edit existing |
4849
| `/configure-canvas-mcp` | Register the Canvas Authoring MCP server with Claude Code |
49-
| `/generate-canvas-app` | Generate a complete Canvas App from a natural language description |
50-
| `/edit-canvas-app` | Edit an existing Canvas App from a natural language description of changes |
5150
| `/add-data-source` | Guide the user to add a data source, connection, or API connector in Studio, then verify it is available |
5251

5352
## Agents
@@ -56,10 +55,8 @@ Agents are invoked by skills via the `Task` tool — they are not user-invocable
5655

5756
| Agent | Invoked By | Description |
5857
|-------|-----------|-------------|
59-
| `canvas-app-planner` | `generate-canvas-app` | Discovers resources, designs the app, presents plan for approval, writes plan document |
60-
| `canvas-screen-builder` | `generate-canvas-app` | Writes YAML for one screen based on the plan; runs in parallel with other builders; app validation/compilation is performed later by `generate-canvas-app` using `compile_canvas` |
61-
| `canvas-edit-planner` | `edit-canvas-app` | Reads existing .pa.yaml files, plans complex edits, presents edit plan for approval, writes canvas-edit-plan.md |
62-
| `canvas-screen-editor` | `edit-canvas-app` | Applies targeted edits to one screen's .pa.yaml; runs in parallel with other editors |
58+
| `canvas-app-planner` | `canvas-app` | Receives the approved plan from the skill. Discovers available controls, APIs, and data sources; gathers control property definitions (`describe_control`); writes `App.pa.yaml` (CREATE mode) and `canvas-app-plan.md` for downstream screen builders. |
59+
| `canvas-screen-builder` | `canvas-app` | For Create actions: writes YAML for one new screen based on the plan. For Modify actions: applies targeted edits to one existing screen. Runs in parallel with other builders; validation is performed later by `canvas-app` using `compile_canvas`. |
6360

6461
## MCP Tools
6562

plugins/canvas-apps/README.md

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,27 @@ claude --plugin-dir /path/to/power-platform-skills/plugins/canvas-apps
2525

2626
## Skills
2727

28-
### `/configure-canvas-mcp`
29-
30-
Register the Canvas Authoring MCP server with Claude Code or GitHub Copilot.
31-
32-
**Usage:** Invoke directly with `/configure-canvas-mcp`, or use any of the keywords below to trigger the skill automatically:
33-
34-
- `Configure MCP for Canvas Apps`
35-
- `Set up the Canvas Authoring MCP server`
36-
- `Connect Canvas Apps MCP`
37-
38-
### `/generate-canvas-app`
28+
### `/canvas-app`
3929

40-
Generate a complete Canvas App from a natural language description.
30+
Create or edit a Canvas App. Automatically detects whether to generate a new app from scratch
31+
or edit an existing one based on the current app state.
4132

42-
**Usage:** Invoke directly with `/generate-canvas-app`, or use any of the keywords below to trigger the skill automatically:
33+
**Usage:** Invoke directly with `/canvas-app`, or use natural language to trigger it:
4334

4435
- `Create a Canvas App for managing inventory`
4536
- `I need a Canvas App for tracking employee time off`
37+
- `Modify the form in my existing Canvas App to include validation`
38+
- `Edit my Canvas App to add a new screen for reports`
4639

47-
### `/edit-canvas-app`
40+
### `/configure-canvas-mcp`
4841

49-
Edit an existing Canvas App from a natural language description of changes.
42+
Register the Canvas Authoring MCP server with Claude Code or GitHub Copilot.
5043

51-
**Usage:** Invoke directly with `/edit-canvas-app`, or use any of the keywords below to trigger the skill automatically:
44+
**Usage:** Invoke directly with `/configure-canvas-mcp`, or use any of the keywords below to trigger the skill automatically:
5245

53-
- `Modify the form in my existing Canvas App to include validation`
54-
- `Edit my Canvas App to add a new screen for reports`
46+
- `Configure MCP for Canvas Apps`
47+
- `Set up the Canvas Authoring MCP server`
48+
- `Connect Canvas Apps MCP`
5549

5650
## MCP Tools
5751

0 commit comments

Comments
 (0)