manage-flows · git:20261027.5185663 · 2026-10-27 · sha256 ec537d957e8ee082
manage-flows git:20261027.5185663A
Immutable. This exact content never changes and is served at /api/v1/blob/ec537d957e8ee082.
--- name: manage-flows description: Manage flow lifecycle - publish, test, batch operations, inventory reports. Use when the user asks to publish, test, batch manage, or get an inventory of flows. Inventories page large environment lists and state which environments were covered. user-invocable: true argument-hint: "<operation> [flow-ids...]" context: fork allowed-tools: Bash, Read, Write, Glob, Grep, mcp__flowagent__list_environments, mcp__flowagent__set_current_env, mcp__flowagent__get_current_env, mcp__flowagent__resolve_environment, mcp__flowagent__list_flows, mcp__flowagent__get_flow, mcp__flowagent__create_flow, mcp__flowagent__update_flow, mcp__flowagent__edit_flow, mcp__flowagent__copy_flow, mcp__flowagent__publish_flow, mcp__flowagent__disable_flow, mcp__flowagent__delete_flow, mcp__flowagent__run_flow, mcp__flowagent__get_run_history, mcp__flowagent__get_run_details, mcp__flowagent__get_run_actions, mcp__flowagent__get_run_action_repetitions, mcp__flowagent__cancel_run, mcp__flowagent__cancel_all_runs, mcp__flowagent__resubmit_run, mcp__flowagent__diagnose_run, mcp__flowagent__list_connections, mcp__flowagent__list_connectors, mcp__flowagent__get_connector, mcp__flowagent__search_operations, mcp__flowagent__get_operation_details, mcp__flowagent__pick_or_create_connection, mcp__flowagent__resolve_refs, mcp__flowagent__resolve_params, mcp__flowagent__scaffold_flow, mcp__flowagent__list_templates, mcp__flowagent__validate_flow, mcp__flowagent__preflight_flow, mcp__flowagent__smoke_test, mcp__flowagent__get_expression_help, mcp__flowagent__list_desktop_flows, mcp__flowagent__list_machine_groups, mcp__flowagent__run_desktop_flow, mcp__flowagent__get_flow_context, mcp__flowagent__set_current_flow, mcp__flowagent__clear_current_flow, mcp__flowagent__invoke_operation, mcp__flowagent__get_past_trigger_inputs, mcp__flowagent__test_connection, mcp__flowagent__fix_connection, mcp__flowagent__delete_connection, mcp__flowagent__preview_update, mcp__flowagent__get_backup, mcp__flowagent__list_backups, mcp__flowagent__restore_backup, mcp__flowagent__list_trigger_emulators, mcp__flowagent__resolve_entity, mcp__flowagent__list_datasets, mcp__flowagent__list_tables, mcp__flowagent__whoami, mcp__flowagent__doctor, mcp__flowagent__reconnect, mcp__flowagent__list_accounts, mcp__flowagent__switch_account model: opus --- # Flow Lifecycle Manager Autonomous agent for flow lifecycle operations: publish-and-test, batch operations, inventory reports. ## Tools This skill uses the **FlowAgent MCP tools**, referred to by bare name (clients surface them as `mcp__flowagent__<tool>` in Claude Code or `flowagent-<tool>` in Copilot CLI). Use CLI shell commands (local engine build only) for CLI-only operations (connection lifecycle, sharing, solutions/admin) or when no MCP tools are present. ## Capabilities ### 1. Publish-and-Test Cycle 1. Call `publish_flow` to enable 2. Call `run_flow` with `wait: true` and `timeout: 30` to trigger and wait for completion 3. Report: pass/fail, duration, action statuses ### 2. Batch Operations For multiple flows (IDs from `$ARGUMENTS` or from `list_flows`): - **Batch disable**: Call `disable_flow` per flow - **Batch delete**: First list the exact flows (name + ID) to the user and get explicit confirmation. Never delete "all flows" in an environment from a single instruction. Then call `delete_flow` per flow. After 3 deletes in 10 minutes the server returns `BulkDeleteConfirmRequired`; pass `confirmBulk: true` only for flows the user has confirmed. Deleted flows can be recovered with `list_backups` / `restore_backup`. - **Batch publish**: Call `publish_flow` per flow Report per-item success/failure. ### 3. Inventory Report 1. Call `list_environments` to get environments. Large tenants return a partial page (`total`, `nextSkip`, `note`) - page with `skip` or filter with `query`; never treat a partial page as the full list. Reuse this discovery across the per-environment loop rather than listing environments again for every flow lookup. Metadata is cached in memory for up to 60 seconds; use `fresh: true` for explicitly requested current discovery, then page without repeating the fresh bypass 2. Call `list_flows` on **each** environment (or only the ones the user specified) - do not stop at the current one. A partial response contains `flows`, `complete: false` and `nextCursor`: continue with `cursor: nextCursor` and unchanged `env`, `top`, `name` and `filter`. Follow all cursors before treating an environment's count as complete. Continuations may reuse one metadata page for up to 60 seconds; start without a cursor for fresh data. If a changed page requires restarting, discard earlier partial counts for that environment. For many environments, cap the loop (e.g. the first 10-20, or those the user names), and keep going past individual failures. A large tenant is a reason to cap, never a reason to inventory only one: unless the user scoped it, cover at least the first 10 environments before reporting, then offer to continue 3. Produce summary: flow counts by state, trigger types, recent modifications 4. State coverage explicitly: "N of M environments inventoried" and list any skipped, failed or still-partial environments. Count an environment as fully inventoried only when its flow cursors are exhausted. If only one was inventoried (user scoped it, or others failed), say so rather than presenting it as the full tenant ### 4. Health Check For each flow in an environment: 1. Call `get_run_history` with `top: 5` 2. Count Succeeded vs Failed runs 3. Flag flows with >50% failure rate Report: flow name, success rate, last run status, last failure error. ### 5. Incident Response (runaway runs) When a flow is misfiring with many queued runs: 1. Call `cancel_all_runs` to bulk-cancel every Running/Waiting run (uses the Dataverse bulk action for solution & modern non-solution flows, per-run fallback otherwise). Pass `turnOff: true` to also disable the flow while the root cause is fixed. 2. After fixing, `resubmit_run` the affected runs (note: only self-invoked runs are resubmittable per PA policy).