{"id":"bf071f7c-6d30-4ff0-a655-0cc0aa0e942e","shortId":"qWsjDM","kind":"skill","title":"flowstudio-power-automate-governance","tagline":">-","description":"# Power Automate Governance with FlowStudio MCP\n\nClassify, tag, and govern Power Automate flows at scale through the FlowStudio\nMCP **cached store** — without Dataverse, without the CoE Starter Kit, and\nwithout the Power Automate portal.\n\nThis skill uses `update_store_flow` to write governance metadata and the\nmonitoring tools (`list_store_flows`, `get_store_flow`, `list_store_makers`,\netc.) to read tenant state. For monitoring and health-check workflows, see\nthe `flowstudio-power-automate-monitoring` skill.\n\n> **Start every session with `tools/list`** to confirm tool names and parameters.\n> This skill covers workflows and patterns — things `tools/list` cannot tell you.\n> If this document disagrees with `tools/list` or a real API response, the API wins.\n\n---\n\n## Critical: How to Extract Flow IDs\n\n`list_store_flows` returns `id` in format `<environmentId>.<flowId>`. **You must split\non the first `.`** to get `environmentName` and `flowName` for all other tools:\n\n```\nid = \"Default-<envGuid>.<flowGuid>\"\nenvironmentName = \"Default-<envGuid>\"    (everything before first \".\")\nflowName = \"<flowGuid>\"                  (everything after first \".\")\n```\n\nAlso: skip entries that have no `displayName` or have `state=Deleted` —\nthese are sparse records or flows that no longer exist in Power Automate.\nIf a deleted flow has `monitor=true`, suggest disabling monitoring\n(`update_store_flow` with `monitor=false`) to free up a monitoring slot\n(standard plan includes 20).\n\n---\n\n## The Write Tool: `update_store_flow`\n\n`update_store_flow` writes governance metadata to the **Flow Studio cache\nonly** — it does NOT modify the flow in Power Automate. These fields are\nnot visible via `get_live_flow` or the PA portal. They exist only in the\nFlow Studio store and are used by Flow Studio's scanning pipeline and\nnotification rules.\n\nThis means:\n- `ownerTeam` / `supportEmail` — sets who Flow Studio considers the\n  governance contact. Does NOT change the actual PA flow owner.\n- `rule_notify_email` — sets who receives Flow Studio failure/missing-run\n  notifications. Does NOT change Microsoft's built-in flow failure alerts.\n- `monitor` / `critical` / `businessImpact` — Flow Studio classification\n  only. Power Automate has no equivalent fields.\n\nMerge semantics — only fields you provide are updated. Returns the full\nupdated record (same shape as `get_store_flow`).\n\nRequired parameters: `environmentName`, `flowName`. All other fields optional.\n\n### Settable Fields\n\n| Field | Type | Purpose |\n|---|---|---|\n| `monitor` | bool | Enable run-level scanning (standard plan: 20 flows included) |\n| `rule_notify_onfail` | bool | Send email notification on any failed run |\n| `rule_notify_onmissingdays` | number | Send notification when flow hasn't run in N days (0 = disabled) |\n| `rule_notify_email` | string | Comma-separated notification recipients |\n| `description` | string | What the flow does |\n| `tags` | string | Classification tags (also auto-extracted from description `#hashtags`) |\n| `businessImpact` | string | Low / Medium / High / Critical |\n| `businessJustification` | string | Why the flow exists, what process it automates |\n| `businessValue` | string | Business value statement |\n| `ownerTeam` | string | Accountable team |\n| `ownerBusinessUnit` | string | Business unit |\n| `supportGroup` | string | Support escalation group |\n| `supportEmail` | string | Support contact email |\n| `critical` | bool | Designate as business-critical |\n| `tier` | string | Standard or Premium |\n| `security` | string | Security classification or notes |\n\n> **Caution with `security`:** The `security` field on `get_store_flow`\n> contains structured JSON (e.g. `{\"triggerRequestAuthenticationType\":\"All\"}`).\n> Writing a plain string like `\"reviewed\"` will overwrite this. To mark a\n> flow as security-reviewed, use `tags` instead.\n\n---\n\n## Governance Workflows\n\n### 1. Compliance Detail Review\n\nIdentify flows missing required governance metadata — the equivalent of\nthe CoE Starter Kit's Developer Compliance Center.\n\n```\n1. Ask the user which compliance fields they require\n   (or use their organization's existing governance policy)\n2. list_store_flows\n3. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Check which required fields are missing or empty\n4. Report non-compliant flows with missing fields listed\n5. For each non-compliant flow:\n   - Ask the user for values\n   - update_store_flow(environmentName, flowName, ...provided fields)\n```\n\n**Fields available for compliance checks:**\n\n| Field | Example policy |\n|---|---|\n| `description` | Every flow should be documented |\n| `businessImpact` | Classify as Low / Medium / High / Critical |\n| `businessJustification` | Required for High/Critical impact flows |\n| `ownerTeam` | Every flow should have an accountable team |\n| `supportEmail` | Required for production flows |\n| `monitor` | Required for critical flows (note: standard plan includes 20 monitored flows) |\n| `rule_notify_onfail` | Recommended for monitored flows |\n| `critical` | Designate business-critical flows |\n\n> Each organization defines their own compliance rules. The fields above are\n> suggestions based on common Power Platform governance patterns (CoE Starter\n> Kit). Ask the user what their requirements are before flagging flows as\n> non-compliant.\n>\n> **Tip:** Flows created or updated via MCP already have `description`\n> (auto-appended by `update_live_flow`). Flows created manually in the\n> Power Automate portal are the ones most likely missing governance metadata.\n\n### 2. Orphaned Resource Detection\n\nFind flows owned by deleted or disabled Azure AD accounts.\n\n```\n1. list_store_makers\n2. Filter where deleted=true AND ownerFlowCount > 0\n   Note: deleted makers have NO displayName/mail — record their id (AAD OID)\n3. list_store_flows → collect all flows\n4. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Parse owners: json.loads(record[\"owners\"])\n   - Check if any owner principalId matches an orphaned maker id\n5. Report orphaned flows: maker id, flow name, flow state\n6. For each orphaned flow:\n   - Reassign governance: update_store_flow(environmentName, flowName,\n       ownerTeam=\"NewTeam\", supportEmail=\"new-owner@contoso.com\")\n   - Or decommission: set_store_flow_state(environmentName, flowName,\n       state=\"Stopped\")\n```\n\n> `update_store_flow` updates governance metadata in the cache only. To\n> transfer actual PA ownership, an admin must use the Power Platform admin\n> center or PowerShell.\n>\n> **Note:** Many orphaned flows are system-generated (created by\n> `DataverseSystemUser` accounts for SLA monitoring, knowledge articles,\n> etc.). These were never built by a person — consider tagging them\n> rather than reassigning.\n>\n> **Coverage:** This workflow searches the cached store only, not the\n> live PA API. Flows created after the last scan won't appear.\n\n### 3. Archive Score Calculation\n\nCompute an inactivity score (0-7) per flow to identify safe cleanup\ncandidates. Aligns with the CoE Starter Kit's archive scoring.\n\n```\n1. list_store_flows\n2. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n3. Compute archive score (0-7), add 1 point for each:\n   +1  lastModifiedTime within 24 hours of createdTime\n   +1  displayName contains \"test\", \"demo\", \"copy\", \"temp\", or \"backup\"\n       (case-insensitive)\n   +1  createdTime is more than 12 months ago\n   +1  state is \"Stopped\" or \"Suspended\"\n   +1  json.loads(owners) is empty array []\n   +1  runPeriodTotal = 0 (never ran or no recent runs)\n   +1  parse json.loads(complexity) → actions < 5\n4. Classify:\n   Score 5-7: Recommend archive — report to user for confirmation\n   Score 3-4: Flag for review →\n     Read existing tags from get_store_flow response, append #archive-review\n     update_store_flow(environmentName, flowName, tags=\"<existing> #archive-review\")\n   Score 0-2: Active, no action\n5. For user-confirmed archives:\n   set_store_flow_state(environmentName, flowName, state=\"Stopped\")\n   Read existing tags, append #archived\n   update_store_flow(environmentName, flowName, tags=\"<existing> #archived\")\n```\n\n> **What \"archive\" means:** Power Automate has no native archive feature.\n> Archiving via MCP means: (1) stop the flow so it can't run, and\n> (2) tag it `#archived` so it's discoverable for future cleanup.\n> Actual deletion requires the Power Automate portal or admin PowerShell\n> — it cannot be done via MCP tools.\n\n### 4. Connector Audit\n\nAudit which connectors are in use across monitored flows. Useful for DLP\nimpact analysis and premium license planning.\n\n```\n1. list_store_flows(monitor=true)\n   (scope to monitored flows — auditing all 1000+ flows is expensive)\n2. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Parse connections: json.loads(record[\"connections\"])\n     Returns array of objects with apiName, apiId, connectionName\n   - Note the flow-level tier field (\"Standard\" or \"Premium\")\n3. Build connector inventory:\n   - Which apiNames are used and by how many flows\n   - Which flows have tier=\"Premium\" (premium connector detected)\n   - Which flows use HTTP connectors (apiName contains \"http\")\n   - Which flows use custom connectors (non-shared_ prefix apiNames)\n4. Report inventory to user\n   - For DLP analysis: user provides their DLP policy connector groups,\n     agent cross-references against the inventory\n```\n\n> **Scope to monitored flows.** Each flow requires a `get_store_flow` call\n> to read the `connections` JSON. Standard plans have ~20 monitored flows —\n> manageable. Auditing all flows in a large tenant (1000+) would be very\n> expensive in API calls.\n>\n> **`list_store_connections`** returns connection instances (who created\n> which connection) but NOT connector types per flow. Use it for connection\n> counts per environment, not for the connector audit.\n>\n> DLP policy definitions are not available via MCP. The agent builds the\n> connector inventory; the user provides the DLP classification to\n> cross-reference against.\n\n### 5. Notification Rule Management\n\nConfigure monitoring and alerting for flows at scale.\n\n```\nEnable failure alerts on all critical flows:\n1. list_store_flows(monitor=true)\n2. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - If critical=true AND rule_notify_onfail is not true:\n     update_store_flow(environmentName, flowName,\n       rule_notify_onfail=true,\n       rule_notify_email=\"oncall@contoso.com\")\n   - If NO flows have critical=true: this is a governance finding.\n     Recommend the user designate their most important flows as critical\n     using update_store_flow(critical=true) before configuring alerts.\n\nEnable missing-run detection for scheduled flows:\n1. list_store_flows(monitor=true)\n2. For each flow where triggerType=\"Recurrence\" (available on list response):\n   - Skip flows with state=\"Stopped\" or \"Suspended\" (not expected to run)\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - If rule_notify_onmissingdays is 0 or not set:\n     update_store_flow(environmentName, flowName,\n       rule_notify_onmissingdays=2)\n```\n\n> `critical`, `rule_notify_onfail`, and `rule_notify_onmissingdays` are only\n> available from `get_store_flow`, not from `list_store_flows`. The list call\n> pre-filters to monitored flows; the detail call checks the notification fields.\n>\n> **Monitoring limit:** The standard plan (FlowStudio for Teams / MCP Pro+)\n> includes 20 monitored flows. Before bulk-enabling `monitor=true`, check\n> how many flows are already monitored:\n> `len(list_store_flows(monitor=true))`\n\n### 6. Classification and Tagging\n\nBulk-classify flows by connector type, business function, or risk level.\n\n```\nAuto-tag by connector:\n1. list_store_flows\n2. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Parse connections: json.loads(record[\"connections\"])\n   - Build tags from apiName values:\n     shared_sharepointonline → #sharepoint\n     shared_teams → #teams\n     shared_office365 → #email\n     Custom connectors → #custom-connector\n     HTTP-related connectors → #http-external\n   - Read existing tags from get_store_flow response, append new tags\n   - update_store_flow(environmentName, flowName,\n       tags=\"<existing tags> #sharepoint #teams\")\n```\n\n> **Two tag systems:** Tags shown in `list_store_flows` are auto-extracted\n> from the flow's `description` field (e.g. a maker writes `#operations` in\n> the PA portal description). Tags set via `update_store_flow(tags=...)`\n> write to a separate field in the Azure Table cache. They are independent —\n> writing store tags does not touch the description, and editing the\n> description in the portal does not affect store tags.\n>\n> **Tag merge:** `update_store_flow(tags=...)` overwrites the store tags\n> field. To avoid losing tags from other workflows, read the current store\n> tags from `get_store_flow` first, append new ones, then write back.\n>\n> `get_store_flow` already has a `tier` field (Standard/Premium) computed\n> by the scanning pipeline. Only use `update_store_flow(tier=...)` if you\n> need to override it.\n\n### 7. Maker Offboarding\n\nWhen an employee leaves, identify their flows and apps, and reassign\nFlow Studio governance contacts and notification recipients.\n\n```\n1. get_store_maker(makerKey=\"<departing-user-aad-oid>\")\n   → check ownerFlowCount, ownerAppCount, deleted status\n2. list_store_flows → collect all flows\n3. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Parse owners: json.loads(record[\"owners\"])\n   - If any principalId matches the departing user's OID → flag\n4. list_store_power_apps → filter where ownerId matches the OID\n5. For each flagged flow:\n   - Check runPeriodTotal and runLast — is it still active?\n   - If keeping:\n     update_store_flow(environmentName, flowName,\n       ownerTeam=\"NewTeam\", supportEmail=\"new-owner@contoso.com\")\n   - If decommissioning:\n     set_store_flow_state(environmentName, flowName, state=\"Stopped\")\n     Read existing tags, append #decommissioned\n     update_store_flow(environmentName, flowName, tags=\"<existing> #decommissioned\")\n6. Report: flows reassigned, flows stopped, apps needing manual reassignment\n```\n\n> **What \"reassign\" means here:** `update_store_flow` changes who Flow\n> Studio considers the governance contact and who receives Flow Studio\n> notifications. It does NOT transfer the actual Power Automate flow\n> ownership — that requires the Power Platform admin center or PowerShell.\n> Also update `rule_notify_email` so failure notifications go to the new\n> team instead of the departing employee's email.\n>\n> Power Apps ownership cannot be changed via MCP tools. Report them for\n> manual reassignment in the Power Apps admin center.\n\n### 8. Security Review\n\nReview flows for potential security concerns using cached store data.\n\n```\n1. list_store_flows(monitor=true)\n2. For each flow (skip entries without displayName or state=Deleted):\n   - Split id → environmentName, flowName\n   - get_store_flow(environmentName, flowName)\n   - Parse security: json.loads(record[\"security\"])\n   - Parse connections: json.loads(record[\"connections\"])\n   - Read sharingType directly (top-level field, NOT inside security JSON)\n3. Report findings to user for review\n4. For reviewed flows:\n   Read existing tags, append #security-reviewed\n   update_store_flow(environmentName, flowName, tags=\"<existing> #security-reviewed\")\n   Do NOT overwrite the security field — it contains structured auth data\n```\n\n**Fields available for security review:**\n\n| Field | Where | What it tells you |\n|---|---|---|\n| `security.triggerRequestAuthenticationType` | security JSON | `\"All\"` = HTTP trigger accepts unauthenticated requests |\n| `sharingType` | top-level | `\"Coauthor\"` = shared with co-authors for editing |\n| `connections` | connections JSON | Which connectors the flow uses (check for HTTP, custom) |\n| `referencedResources` | JSON string | SharePoint sites, Teams channels, external URLs the flow accesses |\n| `tier` | top-level | `\"Premium\"` = uses premium connectors |\n\n> Each organization decides what constitutes a security concern. For example,\n> an unauthenticated HTTP trigger is expected for webhook receivers (Stripe,\n> GitHub) but may be a risk for internal flows. Review findings in context\n> before flagging.\n\n### 9. Environment Governance\n\nAudit environments for compliance and sprawl.\n\n```\n1. list_store_environments\n   Skip entries without displayName (tenant-level metadata rows)\n2. Flag:\n   - Developer environments (sku=\"Developer\") — should be limited\n   - Non-managed environments (isManagedEnvironment=false) — less governance\n   - Note: isAdmin=false means the current service account lacks admin\n     access to that environment, not that the environment has no admin\n3. list_store_flows → group by environmentName\n   - Flow count per environment\n   - Failure rate analysis: runPeriodFailRate is on the list response —\n     no need for per-flow get_store_flow calls\n4. list_store_connections → group by environmentName\n   - Connection count per environment\n```\n\n### 10. Governance Dashboard\n\nGenerate a tenant-wide governance summary.\n\n```\nEfficient metrics (list calls only):\n1. total_flows = len(list_store_flows())\n2. monitored = len(list_store_flows(monitor=true))\n3. with_onfail = len(list_store_flows(rule_notify_onfail=true))\n4. makers = list_store_makers()\n   → active = count where deleted=false\n   → orphan_count = count where deleted=true AND ownerFlowCount > 0\n5. apps = list_store_power_apps()\n   → widely_shared = count where sharedUsersCount > 3\n6. envs = list_store_environments() → count, group by sku\n7. conns = list_store_connections() → count\n\nCompute from list data:\n- Monitoring %: monitored / total_flows\n- Notification %: with_onfail / monitored\n- Orphan count: from step 4\n- High-risk count: flows with runPeriodFailRate > 0.2 (on list response)\n\nDetailed metrics (require get_store_flow per flow — expensive for large tenants):\n- Compliance %: flows with businessImpact set / total active flows\n- Undocumented count: flows without description\n- Tier breakdown: group by tier field\n\nFor detailed metrics, iterate all flows in a single pass:\n  For each flow from list_store_flows (skip sparse entries):\n    Split id → environmentName, flowName\n    get_store_flow(environmentName, flowName)\n    → accumulate businessImpact, description, tier\n```\n\n---\n\n## Field Reference: `get_store_flow` Fields Used in Governance\n\nAll fields below are confirmed present on the `get_store_flow` response.\nFields marked with `*` are also available on `list_store_flows` (cheaper).\n\n| Field | Type | Governance use |\n|---|---|---|\n| `displayName` * | string | Archive score (test/demo name detection) |\n| `state` * | string | Archive score, lifecycle management |\n| `tier` | string | License audit (Standard vs Premium) |\n| `monitor` * | bool | Is this flow being actively monitored? |\n| `critical` | bool | Business-critical designation (settable via update_store_flow) |\n| `businessImpact` | string | Compliance classification |\n| `businessJustification` | string | Compliance attestation |\n| `ownerTeam` | string | Ownership accountability |\n| `supportEmail` | string | Escalation contact |\n| `rule_notify_onfail` | bool | Failure alerting configured? |\n| `rule_notify_onmissingdays` | number | SLA monitoring configured? |\n| `rule_notify_email` | string | Alert recipients |\n| `description` | string | Documentation completeness |\n| `tags` | string | Classification — `list_store_flows` shows description-extracted hashtags only; store tags written by `update_store_flow` require `get_store_flow` to read back |\n| `runPeriodTotal` * | number | Activity level |\n| `runPeriodFailRate` * | number | Health status |\n| `runLast` | ISO string | Last run timestamp |\n| `scanned` | ISO string | Data freshness |\n| `deleted` | bool | Lifecycle tracking |\n| `createdTime` * | ISO string | Archive score (age) |\n| `lastModifiedTime` * | ISO string | Archive score (staleness) |\n| `owners` | JSON string | Orphan detection, ownership audit — parse with json.loads() |\n| `connections` | JSON string | Connector audit, tier — parse with json.loads() |\n| `complexity` | JSON string | Archive score (simplicity) — parse with json.loads() |\n| `security` | JSON string | Auth type audit — parse with json.loads(), contains `triggerRequestAuthenticationType` |\n| `sharingType` | string | Oversharing detection (top-level, NOT inside security) |\n| `referencedResources` | JSON string | URL audit — parse with json.loads() |\n\n---\n\n## Related Skills\n\n- `flowstudio-power-automate-monitoring` — Health checks, failure rates, inventory (read-only)\n- `flowstudio-power-automate-mcp` — Core connection setup, live tool reference\n- `flowstudio-power-automate-debug` — Deep diagnosis with action-level inputs/outputs\n- `flowstudio-power-automate-build` — Build and deploy flow definitions","tags":["flowstudio","power","automate","governance","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-flowstudio-power-automate-governance","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/flowstudio-power-automate-governance","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 30743 github stars · SKILL.md body (21,457 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:52:09.231Z","embedding":null,"createdAt":"2026-04-18T21:49:23.798Z","updatedAt":"2026-04-22T00:52:09.231Z","lastSeenAt":"2026-04-22T00:52:09.231Z","tsv":"'+1':1002,1009,1021,1029,1035,1041,1050 '-2':1097 '-4':1070 '-7':950,996,1060 '0':391,772,949,995,1043,1096,1560,2443 '0.2':2495 '1':514,535,761,967,998,1141,1200,1431,1518,1663,1887,2099,2292,2399 '10':2384 '1000':1212,1351 '12':1026 '2':552,747,765,971,1151,1216,1437,1524,1572,1667,1897,2105,2305,2406 '20':207,363,662,1340,1620 '24':1005 '3':556,784,941,991,1069,1259,1904,2146,2343,2414,2455 '4':584,791,1056,1179,1298,1939,2153,2373,2425,2487 '5':594,826,1055,1059,1101,1412,1950,2444 '6':836,1642,1996,2456 '7':1866,2465 '8':2086 '9':2283 'aad':782 'accept':2201 'access':2239,2332 'account':442,646,760,899,2329,2649 'accumul':2559 'across':1188 'action':1054,1100,2831 'action-level':2830 'activ':1098,1962,2430,2517,2625,2706 'actual':284,874,1162,2032 'ad':759 'add':997 'admin':878,884,1170,2042,2084,2331,2342 'affect':1803 'age':2732 'agent':1313,1396 'ago':1028 'alert':308,1419,1426,1509,2659,2672 'align':958 'alreadi':721,1634,1843 'also':158,412,2046,2588 'analysi':1195,1305,2356 'api':114,117,931,1357 'apiid':1247 'apinam':1246,1264,1285,1297,1695 'app':1877,1943,2002,2067,2083,2445,2449 'appear':940 'append':726,1082,1118,1726,1834,1987,2160 'archiv':942,965,993,1062,1084,1093,1106,1119,1126,1128,1135,1137,1154,2601,2608,2730,2736,2761 'archive-review':1083,1092 'array':1040,1242 'articl':904 'ask':536,601,700 'attest':2645 'audit':1181,1182,1210,1344,1386,2286,2615,2745,2753,2772,2792 'auth':2182,2770 'author':2213 'auto':414,725,1659,1748 'auto-append':724 'auto-extract':413,1747 'auto-tag':1658 'autom':4,7,17,38,80,181,234,317,434,737,1131,1167,2034,2801,2814,2825,2837 'avail':614,1392,1531,1583,2185,2589 'avoid':1818 'azur':758,1780 'back':1839,2703 'backup':1017 'base':690 'bool':355,369,459,2620,2628,2657,2724 'breakdown':2525 'build':1260,1397,1692,2838,2839 'built':304,909 'built-in':303 'bulk':1625,1647 'bulk-classifi':1646 'bulk-en':1624 'busi':437,446,463,675,1653,2630 'business-crit':462,674,2629 'businessimpact':311,419,627,2514,2560,2638 'businessjustif':425,634,2642 'businessvalu':435 'cach':25,224,870,924,1782,2096 'calcul':944 'call':1331,1358,1595,1604,2372,2397 'candid':957 'cannot':102,1173,2069 'case':1019 'case-insensit':1018 'caution':476 'center':534,885,2043,2085 'chang':282,300,2013,2071 'channel':2234 'cheaper':2594 'check':73,576,617,816,1605,1629,1892,1955,2224,2804 'classif':314,410,473,1406,1643,2641,2680 'classifi':12,628,1057,1648 'cleanup':956,1161 'co':2212 'co-author':2211 'coauthor':2208 'coe':31,528,697,961 'collect':788,1901 'comma':398 'comma-separ':397 'common':692 'complet':2677 'complex':1053,2758 'complianc':515,533,540,616,683,2289,2511,2640,2644 'compliant':588,599,713 'comput':945,992,1849,2471 'concern':2094,2255 'configur':1416,1508,2660,2667 'confirm':89,1067,1105,2576 'conn':2466 'connect':1237,1240,1335,1361,1363,1368,1378,1688,1691,2131,2134,2216,2217,2376,2380,2469,2749,2817 'connectionnam':1248 'connector':1180,1184,1261,1278,1284,1292,1311,1371,1385,1399,1651,1662,1707,1710,1714,2220,2247,2752 'consid':276,913,2017 'constitut':2252 'contact':279,456,1883,2020,2653 'contain':486,1011,1286,2180,2776 'context':2280 'copi':1014 'core':2816 'count':1379,2351,2381,2431,2436,2437,2452,2461,2470,2484,2491,2520 'cover':96 'coverag':919 'creat':716,732,896,933,1366 'createdtim':1008,1022,2727 'critic':119,310,424,458,464,633,656,672,676,1429,1458,1484,1500,1505,1573,2627,2631 'cross':1315,1409 'cross-refer':1314,1408 'current':1826,2327 'custom':1291,1706,1709,2227 'custom-connector':1708 'dashboard':2386 'data':2098,2183,2474,2721 'datavers':28 'dataversesystemus':898 'day':390 'debug':2826 'decid':2250 'decommiss':853,1975,1988,1995 'deep':2827 'default':148,150 'defin':680 'definit':1389,2843 'delet':168,184,566,755,768,774,801,981,1163,1226,1447,1677,1895,1914,2115,2433,2439,2723 'demo':1013 'depart':1934,2062 'deploy':2841 'descript':402,417,621,723,1754,1765,1793,1797,2523,2561,2674,2686 'description-extract':2685 'design':460,673,1494,2632 'detail':516,1603,2499,2531 'detect':750,1279,1514,2605,2743,2781 'develop':532,2307,2310 'diagnosi':2828 'direct':2137 'disabl':190,392,757 'disagre':108 'discover':1158 'displaynam':164,563,798,978,1010,1223,1444,1674,1911,2112,2299,2599 'displayname/mail':778 'dlp':1193,1304,1309,1387,1405 'document':107,626,2676 'done':1175 'e.g':489,1756 'edit':1795,2215 'effici':2394 'email':290,371,395,457,1478,1705,2050,2065,2670 'employe':1871,2063 'empti':583,1039 'enabl':356,1424,1510,1626 'entri':160,561,796,976,1221,1442,1672,1909,2110,2297,2549 'env':2457 'environ':1381,2284,2287,2295,2308,2317,2335,2339,2353,2383,2460 'environmentnam':140,149,343,569,574,609,804,809,846,858,984,989,1089,1111,1123,1229,1234,1450,1455,1470,1548,1553,1567,1680,1685,1732,1917,1922,1968,1980,1992,2118,2123,2167,2349,2379,2552,2557 'equival':320,525 'escal':451,2652 'etc':63,905 'everi':84,622,641 'everyth':151,155 'exampl':619,2257 'exist':178,249,430,549,1075,1116,1719,1985,2158 'expect':1543,2263 'expens':1215,1355,2507 'extern':1717,2235 'extract':122,415,1749,2687 'fail':375 'failur':307,1425,2052,2354,2658,2805 'failure/missing-run':296 'fals':197,2319,2324,2434 'featur':1136 'field':236,321,325,347,350,351,481,541,579,592,612,613,618,686,1255,1608,1755,1777,1816,1847,2141,2178,2184,2189,2529,2563,2568,2573,2584,2595 'filter':766,1598,1944 'find':751,1490,2148,2278 'first':137,153,157,1833 'flag':708,1071,1938,1953,2282,2306 'flow':18,45,56,59,123,127,174,185,194,213,216,222,231,243,253,260,274,286,294,306,312,340,364,384,406,429,485,504,519,555,559,573,589,600,608,623,639,642,652,657,664,671,677,709,715,730,731,752,787,790,794,808,829,832,834,840,845,856,864,891,932,952,970,974,988,1080,1088,1109,1122,1144,1190,1203,1209,1213,1219,1233,1252,1271,1273,1281,1289,1323,1325,1330,1342,1346,1374,1421,1430,1434,1440,1454,1469,1482,1498,1504,1517,1521,1527,1536,1552,1566,1587,1592,1601,1622,1632,1639,1649,1666,1670,1684,1724,1731,1745,1752,1771,1810,1832,1842,1858,1875,1880,1900,1903,1907,1921,1954,1967,1978,1991,1998,2000,2012,2015,2024,2035,2090,2102,2108,2122,2156,2166,2222,2238,2276,2346,2350,2368,2371,2401,2405,2411,2420,2478,2492,2504,2506,2512,2518,2521,2535,2542,2546,2556,2567,2582,2593,2623,2637,2683,2696,2700,2842 'flow-level':1251 'flownam':142,154,344,570,575,610,805,810,847,859,985,990,1090,1112,1124,1230,1235,1451,1456,1471,1549,1554,1568,1681,1686,1733,1918,1923,1969,1981,1993,2119,2124,2168,2553,2558 'flowstudio':2,10,23,78,1614,2799,2812,2823,2835 'flowstudio-power-automate-build':2834 'flowstudio-power-automate-debug':2822 'flowstudio-power-automate-govern':1 'flowstudio-power-automate-mcp':2811 'flowstudio-power-automate-monitor':77,2798 'format':131 'free':199 'fresh':2722 'full':332 'function':1654 'futur':1160 'generat':895,2387 'get':57,139,241,338,483,571,806,986,1078,1231,1328,1452,1550,1585,1682,1722,1830,1840,1888,1919,2120,2369,2502,2554,2565,2580,2698 'github':2268 'go':2054 'govern':5,8,15,48,218,278,512,522,550,695,745,842,866,1489,1882,2019,2285,2321,2385,2392,2571,2597 'group':452,1312,2347,2377,2462,2526 'hashtag':418,2688 'hasn':385 'health':72,2710,2803 'health-check':71 'high':423,632,2489 'high-risk':2488 'high/critical':637 'hour':1006 'http':1283,1287,1712,1716,2199,2226,2260 'http-extern':1715 'http-relat':1711 'id':124,129,147,568,781,803,825,831,983,1228,1449,1547,1679,1916,2117,2551 'identifi':518,954,1873 'impact':638,1194 'import':1497 'inact':947 'includ':206,365,661,1619 'independ':1785 'inputs/outputs':2833 'insensit':1020 'insid':2143,2786 'instanc':1364 'instead':511,2059 'intern':2275 'inventori':1262,1300,1319,1400,2807 'isadmin':2323 'ismanagedenviron':2318 'iso':2713,2719,2728,2734 'iter':2533 'json':488,1336,2145,2197,2218,2229,2740,2750,2759,2768,2789 'json.loads':813,1036,1052,1238,1689,1926,2127,2132,2748,2757,2766,2775,2795 'keep':1964 'kit':33,530,699,963 'knowledg':903 'lack':2330 'larg':1349,2509 'last':936,2715 'lastmodifiedtim':1003,2733 'leav':1872 'len':1636,2402,2408,2417 'less':2320 'level':359,1253,1657,2140,2207,2243,2302,2707,2784,2832 'licens':1198,2614 'lifecycl':2610,2725 'like':496,743 'limit':1610,2313 'list':54,60,125,553,593,762,785,968,1201,1359,1432,1519,1533,1590,1594,1637,1664,1743,1898,1940,2100,2293,2344,2361,2374,2396,2403,2409,2418,2427,2446,2458,2467,2473,2497,2544,2591,2681 'live':242,729,929,2819 'longer':177 'lose':1819 'low':421,630 'maker':62,764,775,824,830,1758,1867,1890,2426,2429 'makerkey':1891 'manag':1343,1415,2316,2611 'mani':889,1270,1631 'manual':733,2004,2078 'mark':502,2585 'match':821,1932,1947 'may':2270 'mcp':11,24,720,1139,1177,1394,1617,2073,2815 'mean':269,1129,1140,2008,2325 'medium':422,631 'merg':322,1807 'metadata':49,219,523,746,867,2303 'metric':2395,2500,2532 'microsoft':301 'miss':520,581,591,744,1512 'missing-run':1511 'modifi':229 'monitor':52,69,81,187,191,196,202,309,354,653,663,670,902,1189,1204,1208,1322,1341,1417,1435,1522,1600,1609,1621,1627,1635,1640,2103,2407,2412,2475,2476,2482,2619,2626,2666,2802 'month':1027 'must':133,879 'n':389 'name':91,833,2604 'nativ':1134 'need':1862,2003,2364 'never':908,1044 'new':1727,1835,2057 'new-owner@contoso.com':851,1973 'newteam':849,1971 'non':587,598,712,1294,2315 'non-compli':586,597,711 'non-manag':2314 'non-shar':1293 'note':475,658,773,888,1249,2322 'notif':266,297,372,382,400,1413,1607,1885,2026,2053,2479 'notifi':289,367,378,394,666,1462,1473,1477,1557,1570,1575,1579,2049,2422,2655,2662,2669 'number':380,2664,2705,2709 'object':1244 'offboard':1868 'office365':1704 'oid':783,1937,1949 'oncall@contoso.com':1479 'one':741,1836 'onfail':368,667,1463,1474,1576,2416,2423,2481,2656 'onmissingday':379,1558,1571,1580,2663 'oper':1760 'option':348 'organ':547,679,2249 'orphan':748,823,828,839,890,2435,2483,2742 'overrid':1864 'overshar':2780 'overwrit':499,1812,2175 'own':753 'owner':287,812,815,819,1037,1925,1928,2739 'ownerappcount':1894 'ownerbusinessunit':444 'ownerflowcount':771,1893,2442 'ownerid':1946 'ownership':876,2036,2068,2648,2744 'ownerteam':270,440,640,848,1970,2646 'pa':246,285,875,930,1763 'paramet':93,342 'pars':811,1051,1236,1687,1924,2125,2130,2746,2755,2764,2773,2793 'pass':2539 'pattern':99,696 'per':951,1373,1380,2352,2367,2382,2505 'per-flow':2366 'person':912 'pipelin':264,1853 'plain':494 'plan':205,362,660,1199,1338,1613 'platform':694,883,2041 'point':999 'polici':551,620,1310,1388 'portal':39,247,738,1168,1764,1800 'potenti':2092 'power':3,6,16,37,79,180,233,316,693,736,882,1130,1166,1942,2033,2040,2066,2082,2448,2800,2813,2824,2836 'powershel':887,1171,2045 'pre':1597 'pre-filt':1596 'prefix':1296 'premium':469,1197,1258,1276,1277,2244,2246,2618 'present':2577 'principalid':820,1931 'pro':1618 'process':432 'product':651 'provid':327,611,1307,1403 'purpos':353 'ran':1045 'rate':2355,2806 'rather':916 'read':65,1074,1115,1333,1718,1824,1984,2135,2157,2702,2809 'read-on':2808 'real':113 'reassign':841,918,1879,1999,2005,2007,2079 'receiv':293,2023,2266 'recent':1048 'recipi':401,1886,2673 'recommend':668,1061,1491 'record':172,334,779,814,1239,1690,1927,2128,2133 'recurr':1530 'refer':1316,1410,2564,2821 'referencedresourc':2228,2788 'relat':1713,2796 'report':585,827,1063,1299,1997,2075,2147 'request':2203 'requir':341,521,543,578,635,649,654,705,1164,1326,2038,2501,2697 'resourc':749 'respons':115,1081,1534,1725,2362,2498,2583 'return':128,330,1241,1362 'review':497,508,517,1073,1085,1094,2088,2089,2152,2155,2163,2172,2188,2277 'risk':1656,2273,2490 'row':2304 'rule':267,288,366,377,393,665,684,1414,1461,1472,1476,1556,1569,1574,1578,2048,2421,2654,2661,2668 'run':358,376,387,1049,1149,1513,1545,2716 'run-level':357 'runlast':1958,2712 'runperiodfailr':2357,2494,2708 'runperiodtot':1042,1956,2704 'safe':955 'scale':20,1423 'scan':263,360,937,1852,2718 'schedul':1516 'scope':1206,1320 'score':943,948,966,994,1058,1068,1095,2602,2609,2731,2737,2762 'search':922 'secur':470,472,478,480,507,2087,2093,2126,2129,2144,2162,2171,2177,2187,2196,2254,2767,2787 'security-review':506,2161,2170 'security.triggerrequestauthenticationtype':2195 'see':75 'semant':323 'send':370,381 'separ':399,1776 'servic':2328 'session':85 'set':272,291,854,1107,1563,1767,1976,2515 'settabl':349,2633 'setup':2818 'shape':336 'share':1295,1697,1700,1703,2209,2451 'shareduserscount':2454 'sharepoint':1699,1735,2231 'sharepointonlin':1698 'sharingtyp':2136,2204,2778 'show':2684 'shown':1741 'simplic':2763 'singl':2538 'site':2232 'skill':41,82,95,2797 'skill-flowstudio-power-automate-governance' 'skip':159,560,795,975,1220,1441,1535,1671,1908,2109,2296,2547 'sku':2309,2464 'sla':901,2665 'slot':203 'source-github' 'spars':171,2548 'split':134,567,802,982,1227,1448,1546,1678,1915,2116,2550 'sprawl':2291 'stale':2738 'standard':204,361,467,659,1256,1337,1612,2616 'standard/premium':1848 'start':83 'starter':32,529,698,962 'state':67,167,565,800,835,857,860,980,1030,1110,1113,1225,1446,1538,1676,1913,1979,1982,2114,2606 'statement':439 'status':1896,2711 'step':2486 'still':1961 'stop':861,1032,1114,1142,1539,1983,2001 'store':26,44,55,58,61,126,193,212,215,255,339,484,554,572,607,763,786,807,844,855,863,925,969,987,1079,1087,1108,1121,1202,1232,1329,1360,1433,1453,1468,1503,1520,1551,1565,1586,1591,1638,1665,1683,1723,1730,1744,1770,1787,1804,1809,1814,1827,1831,1841,1857,1889,1899,1920,1941,1966,1977,1990,2011,2097,2101,2121,2165,2294,2345,2370,2375,2404,2410,2419,2428,2447,2459,2468,2503,2545,2555,2566,2581,2592,2636,2682,2690,2695,2699 'string':396,403,409,420,426,436,441,445,449,454,466,471,495,2230,2600,2607,2613,2639,2643,2647,2651,2671,2675,2679,2714,2720,2729,2735,2741,2751,2760,2769,2779,2790 'stripe':2267 'structur':487,2181 'studio':223,254,261,275,295,313,1881,2016,2025 'suggest':189,689 'summari':2393 'support':450,455 'supportemail':271,453,648,850,1972,2650 'supportgroup':448 'suspend':1034,1541 'system':894,1739 'system-gener':893 'tabl':1781 'tag':13,408,411,510,914,1076,1091,1117,1125,1152,1645,1660,1693,1720,1728,1734,1738,1740,1766,1772,1788,1805,1806,1811,1815,1820,1828,1986,1994,2159,2169,2678,2691 'team':443,647,1616,1701,1702,1736,2058,2233 'tell':103,2193 'temp':1015 'tenant':66,1350,2301,2390,2510 'tenant-level':2300 'tenant-wid':2389 'test':1012 'test/demo':2603 'thing':100 'tier':465,1254,1275,1846,1859,2240,2524,2528,2562,2612,2754 'timestamp':2717 'tip':714 'tool':53,90,146,210,1178,2074,2820 'tools/list':87,101,110 'top':2139,2206,2242,2783 'top-level':2138,2205,2241,2782 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'total':2400,2477,2516 'touch':1791 'track':2726 'transfer':873,2030 'trigger':2200,2261 'triggerrequestauthenticationtyp':490,2777 'triggertyp':1529 'true':188,769,1205,1436,1459,1466,1475,1485,1506,1523,1628,1641,2104,2413,2424,2440 'two':1737 'type':352,1372,1652,2596,2771 'unauthent':2202,2259 'undocu':2519 'unit':447 'updat':43,192,211,214,329,333,606,718,728,843,862,865,1086,1120,1467,1502,1564,1729,1769,1808,1856,1965,1989,2010,2047,2164,2635,2694 'url':2236,2791 'use':42,258,509,545,880,1187,1191,1266,1282,1290,1375,1501,1855,2095,2223,2245,2569,2598 'user':538,603,702,1065,1104,1302,1306,1402,1493,1935,2150 'user-confirm':1103 'valu':438,605,1696 'via':240,719,1138,1176,1393,1768,2072,2634 'visibl':239 'vs':2617 'webhook':2265 'wide':2391,2450 'win':118 'within':1004 'without':27,29,35,562,797,977,1222,1443,1673,1910,2111,2298,2522 'won':938 'workflow':74,97,513,921,1823 'would':1352 'write':47,209,217,492,1759,1773,1786,1838 'written':2692","prices":[{"id":"be0851d3-9f6d-4899-b02e-9942f410a3b9","listingId":"bf071f7c-6d30-4ff0-a655-0cc0aa0e942e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T21:49:23.798Z"}],"sources":[{"listingId":"bf071f7c-6d30-4ff0-a655-0cc0aa0e942e","source":"github","sourceId":"github/awesome-copilot/flowstudio-power-automate-governance","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/flowstudio-power-automate-governance","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:23.798Z","lastSeenAt":"2026-04-22T00:52:09.231Z"}],"details":{"listingId":"bf071f7c-6d30-4ff0-a655-0cc0aa0e942e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"flowstudio-power-automate-governance","github":{"repo":"github/awesome-copilot","stars":30743,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-04-21T22:20:21Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"c67e334b84a2c1420be5b6f00c758157cc7c1c4a","skill_md_path":"skills/flowstudio-power-automate-governance/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/flowstudio-power-automate-governance"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"flowstudio-power-automate-governance","description":">-"},"skills_sh_url":"https://skills.sh/github/awesome-copilot/flowstudio-power-automate-governance"},"updatedAt":"2026-04-22T00:52:09.231Z"}}