mirror of
https://github.com/github/awesome-copilot.git
synced 2026-05-15 19:21:45 +00:00
Update FlowStudio Power Automate skills (#1664)
* feat(flowstudio): align Power Automate skills with MCP server v1.1.6 Foundation skill (flowstudio-power-automate-mcp) rewritten to use the server's new tool_search and list_skills meta-tools (v1.1.5+) for discovery instead of cataloging every tool by hand. Cut from 519 to 295 lines. New "Which Skill to Use When" intent-keyed decision tree points at the four specialized skills. Build/debug/governance/monitoring updated for use-case framing. Tools that genuinely cross tiers (e.g. debug skill borrowing get_store_flow_summary) are correct when the workflow needs them — the split between skills is by use-case intent, not by tool partition. Build skill: new Step 3a Resolving Dynamic Connector Values covers get_live_dynamic_options outer-parameter auto-bridge (v1.1.6+) and the AadGraph user-picker fallback via shared_office365users.SearchUserV2 (replaces broken builtInOperation:AadGraph.GetUsers). Debug skill: Outlook user-picker failure note pointing at the fallback. Monitoring skill description disambiguates from the server's monitor-flow tool bundle (runtime control of a single flow) — this skill is tenant-wide health analytics over the cached store. All 5 skills validate via npm run skill:validate; line endings LF only; codespell clean; auto-regenerated docs/README.skills.md included. * fix(flowstudio): remove deprecated tool references The v1.1.5 MCP server release marked 5 tools [DEPRECATED] but the previous alignment commit missed them. Replacements per server source: - get_live_flow_http_schema → read trigger.inputs.schema from get_live_flow - get_live_flow_trigger_url → read trigger.metadata.callbackUrl from get_live_flow - get_store_flow_trigger_url → get_store_flow.triggerUrl field - get_store_flow_errors → get_store_flow_runs(status=["Failed"]) - set_store_flow_state → set_live_flow_state Touches build, debug, governance, monitoring SKILL.md and the foundation skill's tool-reference.md. Remaining mentions of the deprecated names are intentional — they live in deprecation notices naming the obsolete wrapper alongside its replacement. * Update FlowStudio Power Automate skills * Cover latest FlowStudio MCP actions * Trim FlowStudio Power Automate skills * Number FlowStudio build workflow steps
This commit is contained in:
@@ -337,6 +337,23 @@ walking a time range, polling until a status changes).
|
||||
|
||||
---
|
||||
|
||||
### Agent Retry Loop
|
||||
|
||||
When a flow calls an AI or Copilot-style agent until it reaches a terminal
|
||||
outcome, keep the loop state explicit:
|
||||
|
||||
- Initialize variables such as `agentStatus`, `attempt`, and `finalPayload`
|
||||
before the `Until`.
|
||||
- Inside the loop, call the agent, validate the response, update the status, and
|
||||
delay/retry only when the status is non-terminal.
|
||||
- Put final dispatch actions such as email, SharePoint update, or Teams post
|
||||
after the loop so retries do not duplicate side effects.
|
||||
- If the platform rejects a complex `Switch` nested inside `Until`, keep the
|
||||
loop body to simple validation and state updates, then route with `Switch`
|
||||
after the loop.
|
||||
|
||||
---
|
||||
|
||||
### Async Polling with RequestId Correlation
|
||||
|
||||
When an API starts a long-running job asynchronously (e.g. Power BI dataset refresh,
|
||||
@@ -486,6 +503,19 @@ Normalize before compare: @replace(coalesce(outputs('Value'),''),'_',' ')
|
||||
Robust non-empty check: @greater(length(trim(coalesce(string(outputs('Val')), ''))), 0)
|
||||
```
|
||||
|
||||
### Unsupported / Risky Expression Assumptions
|
||||
|
||||
Power Automate expressions are Workflow Definition Language, not JavaScript.
|
||||
These patterns often look plausible but do not deploy or do not behave as agents
|
||||
expect:
|
||||
|
||||
| Goal | Avoid | Use instead |
|
||||
|---|---|---|
|
||||
| Build an object inline | `createObject(...)` | A Compose action with a JSON object literal |
|
||||
| Transform an array inline | `select(...)` inside an expression | Data Operations `Select` action |
|
||||
| Filter an array inline | `filter(...)` inside an expression | Data Operations `Filter array` action |
|
||||
| Find an array item index | `indexOf(array, item)` | Foreach with a counter variable, or build a keyed object map |
|
||||
|
||||
### Newlines in Expressions
|
||||
|
||||
> **`\n` does NOT produce a newline inside Power Automate expressions.** It is
|
||||
|
||||
Reference in New Issue
Block a user