Agent Skill · UiPath

uipath-maestro-flow

Always invoke for `.flow` files OR when the user asks what IxP / document-extraction models are available in Maestro. UiPath Maestro Flow (.flow) — build, edit, run, debug, fix, evaluate. Create, connect nodes; connector, approval, script, subflow, ixp; list IxP / document-extraction models for a flow; triggers, schedules; validate. Upload, publish, manage runs, instances. Diagnose errors, incidents, traces. Design eval sets, evaluators, run Studio Web evals via `uip maestro flow eval`. `uip maestro flow` CLI. For C#/XAML→uipath-rpa. For agents→uipath-agents.

Provider: UiPath Path in repo: skills/uipath-maestro-flow/SKILL.md

Skill body

UiPath Flow Skill

Comprehensive guide for creating, editing, validating, debugging, publishing, diagnosing, and evaluating UiPath Flow projects using the uip CLI and .flow file format. The skill is organized into four capabilities — Author, Operate, Diagnose, Evaluate — each with its own index doc.

When to use this skill

Author — building or editing a .flow file. Read references/author/CAPABILITY.md.

Operate — publishing, running, or managing a deployed flow. Read references/operate/CAPABILITY.md.

Diagnose — investigating a failed or misbehaving run. Read references/diagnose/CAPABILITY.md.

Evaluate — designing and running evaluations against a deployed flow. Read references/evaluate/CAPABILITY.md.

Capability router

I want to… Read
Create a new flow or edit an existing one references/author/CAPABILITY.md
Publish, deploy, debug, or manage a flow’s lifecycle references/operate/CAPABILITY.md
Diagnose a failed or misbehaving flow run references/diagnose/CAPABILITY.md
Design and run evaluations (uip maestro flow eval) references/evaluate/CAPABILITY.md
Look up CLI command syntax references/shared/cli-commands.md
Look up CLI conventions (--output json, login, FOLDER_KEY) references/shared/cli-conventions.md
Understand the .flow JSON format references/shared/file-format.md
Understand variables and =js: expressions references/shared/variables-and-expressions.md
Wire one node’s output into another node’s input references/shared/node-output-wiring.md
Look up action-node boilerplate shared across plugin impl.mds references/shared/action-nodes.md
Narrate progress + maintain todos (opt-in — when user wants verbosity) references/shared/ux-narration-and-todos.md

Critical rules (universal)

These rules apply across all three capabilities. Each capability index adds capability-scoped rules on top.

  1. ALWAYS use --output json on all uip commands when parsing output programmatically.
  2. Do NOT run flow debug without explicit user consent — debug executes the flow for real (sends emails, posts messages, calls APIs).
  3. Resource discovery order — search before creating. When the prompt references an existing resource by name (“use the X agent”, “call the Y API workflow”, “invoke the Z RPA process”), follow this order strictly before deciding the resource doesn’t exist:
    1. Tenant registry searchuip maestro flow registry search "<name>" --output json. Requires uip login; returns published resources.
    2. In-solution local discoveryuip maestro flow registry list --local --output json. No login required; returns sibling projects in the same .uipx solution.
    3. Only then create/scaffold — scaffold an inline agent, mock, or create-new-resource only when both searches return no match AND either the user explicitly asks to embed/inline/create, or no published resource can satisfy the requirement.

    The words “coded” and “low-code” describe the implementation style of a published agent — they are NOT synonyms for “inline”. uipath.agent.autonomous (inline) is only correct when the user explicitly asks to embed/inline/create a new agent inside this flow. Only use core.logic.mock when the resource is not in the same solution and not yet published. See the relevant resource plugin’s impl.md (e.g., rpa, agent).

    The same “search before deciding it doesn’t exist” discipline applies to connector connections. The connector key MUST come from a registry search node type (uipath.connector.<connector-key>.<activity>) — never inferred from the service’s brand name. The registry key is frequently prefixed or qualified differently than the product name, so a guessed key silently misses the real connector. Any uip is connections list used for discovery MUST pass --all-folders. An empty result from an unverified key or without --all-folders is a false negative, never authoritative — do not conclude “no connection exists” or ask the user to create one until both hold.

  4. Never invoke other skills automatically — when a flow needs an RPA process, agent, or app, identify the gap and provide handoff instructions. Let the user decide when to switch skills.
  5. Always present user questions as a dropdown with a “Something else” escape hatch — Whenever this skill needs a decision from the user (which solution to use, publish vs debug vs deploy, which connector to pick, which trigger type, which resource to bind, etc.), use the AskUserQuestion tool with the enumerated choices as options AND include “Something else” as the last option so the user can supply free-form string input. Never ask open-ended questions in chat when a finite set of sensible defaults exists. If the user picks “Something else”, parse their string answer and continue.
  6. A Flow project MUST live inside a solution — always scaffold the solution first (uip solution init <Name>), then cd <Name> and run uip maestro flow init <Name>. The correct layout is always <Solution>/<Project>/<Project>.flow (double-nested). Running uip maestro flow init in a bare directory produces a single-nested <Project>/<Project>.flow layout that fails Studio Web upload, packaging, and downstream tooling. See author/greenfield.md Step 2.
  7. Narrate progress in plain English only when the user has opted into verbosity — silent by default. Engage when the user asks for narration / progress (“walk me through it”, “show your steps”, “verbose”, “be detailed”) or signals a verbosity preference; otherwise work quietly and surface only decisions, failures, consent gates, and the final result. When engaged: one short line per logical step, in user terms (“checking your tenant login”, “adding the Slack node and wiring its inputs”, “running validate”) — no flag-level or JSON-structure-level detail, applied uniformly across uip CLI calls, shell builtins, file edits, and bulk searches. See shared/ux-narration-and-todos.md §When to engage.
  8. Maintain a user-facing TodoWrite list only when the user has opted into progress tracking / verbosity. In silent mode there is no user-facing todo list (the agent MAY track privately). When engaged: any journey above the trivial threshold gets a granular list — one logical step ≈ one todo, granularity per-step not per-phase. The count emerges from the journey’s actual steps; do not target a number. Bash plumbing inside a step (registry lookups, JSON parsing, intermediate file reads) is invisible — do not surface as todos. See shared/ux-narration-and-todos.md for the engage triggers, granularity rules, threshold table, and pivot rules.
  9. Every node has exactly one author — Edit/Write or CLI, never both. Connector activities (uipath.connector.<key>.<op>), connector triggers (uipath.connector.trigger.<key>.<trigger>), and managed HTTP (core.action.http.v2) are CLI-owned — use uip maestro flow node add + uip maestro flow node configure. Every other node type — triggers, control flow, logic, HITL, patterns, agents, resource nodes, queue — is user-owned: author the .flow JSON directly with Edit / Write. inputs.detail on CLI-owned nodes is a =jsonString:essentialConfiguration envelope that the validator rejects when hand-authored. Inline-agent CLI is limited to agent project lifecycle (uip agent init / validate / migrate --inline-in-flow); the uipath.agent.autonomous flow node itself is user-owned. Scripting languages (python, node, jq, sed, awk, inline shell heredocs) are a last resort for user-owned edits and require explicit user approval after the trade-offs (state bypass, opaque diff, no interruption point) are surfaced. Canonical source of truth: author/CAPABILITY.md — Node ownership (full table); author/editing-operations.md — Tool Selection Ladder (per-operation ladder).

Anti-patterns (universal)

Trouble? If something didn’t work as expected, use /uipath-feedback to send a report.

Skill frontmatter

allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion