diff --git a/skills/uipath-maestro-flow/SKILL.md b/skills/uipath-maestro-flow/SKILL.md index bd3fb65a15..b7493f37ba 100644 --- a/skills/uipath-maestro-flow/SKILL.md +++ b/skills/uipath-maestro-flow/SKILL.md @@ -61,7 +61,7 @@ Guide for creating, editing, validating, debugging, publishing, diagnosing, and > **Tool vocabulary.** `Edit` means in-place replacement, `Write` a full-file write, `Read`/`Glob`/`Grep` file access, `Bash` shell, and a progress list the harness task list. Map them to equivalent tools elsewhere; preserve reviewable diffs and use shell file edits only as a last resort. 1. **Use `--output json`; prefer `--output-filter` for extraction.** Filters are global and run against the `Data` envelope, so expressions start at `Data` without a `Data.` prefix. Registry search returns a flat PascalCase array (`NodeType`, `DisplayName`, `Description`, `AvailableOnTenant`), not `Data.Nodes` or lowercase fields. Example: `uip maestro flow registry search --output json --output-filter "[*].{NodeType:NodeType,DisplayName:DisplayName,Description:Description,AvailableOnTenant:AvailableOnTenant}"`. With `--local`, omit `AvailableOnTenant`. Use `python3 -c` or `jq` only after verifying shape and when JMESPath cannot express the transform. See [cli-conventions.md §3](references/shared/cli-conventions.md#3-prefer---output-filter-for-extraction). -2. **Do not run `flow debug` without explicit user consent.** It executes the flow for real (sends emails, posts messages, calls APIs). +2. **`flow debug` consent comes from the mandate.** It executes the flow for real (sends emails, posts messages, calls APIs), so run it only when the request is for a flow that *works*: the user asked for something that does X, or said make it work, get it running, iterate until it passes. Building and validating does not discharge that, and a flow that was never executed is not finished. Ask when the request stops short of a working artifact (review this, add a node, validate only); with nobody to ask, report debug as the step not run. **The mandate does not extend to side effects that reach a third party** — a real phone call, an email or message to someone who is not the user. Those need the run asked for explicitly, whoever is watching; see [inline-voice-agent/impl.md](references/author/plugins/inline-voice-agent/impl.md) for the outbound-call case. Debug also overwrites the Studio Web solution matching the local `.uipx` `SolutionId`, so never debug a solution this run did not scaffold. 3. **Search before creating or declaring resources absent.** For named agents, API workflows, RPA processes, and similar resources: (a) pull and search the tenant registry with `uip maestro flow registry pull --force && uip maestro flow registry search "" --output json`; pull first because the cache expires after 30 minutes, login is required, and only published resources are returned; (b) search locally with `uip maestro flow registry list --local --output json` or `search "" --local` (no login; returns sibling projects in the same `.uipx` solution); an empty keyword search does not prove absence, so confirm with `list --local`; (c) scaffold, mock, or create only when both searches find no match and the user explicitly requests embedding/creation or no published resource satisfies the need. "Coded" and "low-code" describe implementation style, not inline status. Use `uipath.agent.autonomous` only when explicitly asked to embed/inline/create an agent. Use `core.logic.mock` only when the resource is neither in the solution nor published. See [rpa](references/author/plugins/rpa/impl.md) and [agent](references/author/plugins/agent/impl.md). @@ -73,7 +73,7 @@ Guide for creating, editing, validating, debugging, publishing, diagnosing, and **Two tells that you skipped the search and took the brand-name shortcut — both are build defects, not valid manual-mode HTTP:** (a) you authored a manual-mode `core.action.http.v2` node whose `url` targets a well-known SaaS API domain that has a connector (`slack.com/api/*`, `api.github.com`, `*.salesforce.com`, `graph.microsoft.com`, …); (b) you declared an `in` variable to hold that service's API token or secret (e.g. a `slackToken` holding an `xoxb-…` bot token, an `apiKey`, a bearer token). A connector-backed flow never carries the raw credential — the IS connection does. If you find yourself writing either, **stop**: run `uip maestro flow registry search ""` and `uip is connections list "" --all-folders`, then use the connector activity (or connector-mode HTTP: `authentication:"connector"` + `targetConnector` + a bound `connectionId`/`folderKey`). Manual mode is legitimate only for a service the search proves has no connector. 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. **One exception — IXP extraction with documents in hand:** when the flow needs document extraction, the user supplied sample documents, and `registry search "uipath.ixp"` shows no extractor covering them, invoke the `uipath-ixp` skill to build and deploy the model, then resume the flow ([plugins/ixp/impl.md — If the Model Does Not Exist Yet](references/author/plugins/ixp/impl.md#if-the-model-does-not-exist-yet)). Resolve the target Orchestrator folder for the deployment before invoking — from the user's request when it names one, otherwise per rule #5 (its non-interactive fallback applies) — and pass it in the handoff; the sibling stops rather than guess a folder. There is deliberately no separate consent gate on the tenant writes this creates: the project and folder deployment fulfil the extraction request itself, and the one consequential choice — where the deployment lands (deployments have no delete API) — is exactly the folder decision rule #5 just routed. Do NOT drive `uip ixp` project or deployment commands from this skill instead of invoking it — the sibling's guides carry guardrails this skill does not. If `uipath-ixp` is unavailable in the session, fall back to `core.logic.mock` plus an Open Questions entry, exactly as when no documents were supplied. -5. **Always present finite decisions as a dropdown with a final "Something else" escape hatch.** Whenever the skill needs a decision (which solution, publish vs debug vs deploy, which connector, trigger type, or resource to bind, etc.), ask with the enumerated choices plus **"Something else"** last for free-form input; never ask open-ended in chat when a finite set of sensible defaults exists. If the user picks "Something else", parse their answer and continue. No structured-question facility on the harness → ask in chat as a numbered list with "Something else" last. Non-interactively (CI/headless, no user available) → take the marked recommended option, proceed, and record the decision prominently in the final report; if none is recommended, stop and report the open decision instead of guessing. Consent gates (`flow debug`, destructive operations) are never auto-answered — in non-interactive mode, stop and report the blocked step. These fallbacks define "ask the user" / "confirm with the user" wherever this skill's references require it. +5. **Always present finite decisions as a dropdown with a final "Something else" escape hatch.** Whenever the skill needs a decision (which solution, publish vs debug vs deploy, which connector, trigger type, or resource to bind, etc.), ask with the enumerated choices plus **"Something else"** last for free-form input; never ask open-ended in chat when a finite set of sensible defaults exists. If the user picks "Something else", parse their answer and continue. No structured-question facility on the harness → ask in chat as a numbered list with "Something else" last. Non-interactively (CI/headless, no user available) → take the marked recommended option, proceed, and record the decision prominently in the final report; if none is recommended, stop and report the open decision instead of guessing. Consent gates (destructive operations, tenant writes) are never auto-answered — in non-interactive mode, stop and report the blocked step; `flow debug` is not one of them, and is governed by the mandate rule above. These fallbacks define "ask the user" / "confirm with the user" wherever this skill's references require it. diff --git a/skills/uipath-maestro-flow/references/author/brownfield.md b/skills/uipath-maestro-flow/references/author/brownfield.md index 707203f2a1..1d8cf5b4b2 100644 --- a/skills/uipath-maestro-flow/references/author/brownfield.md +++ b/skills/uipath-maestro-flow/references/author/brownfield.md @@ -81,9 +81,9 @@ Authoring ends here. For any selected option, read [operate/CAPABILITY.md](../op | Option | What it does | |---|---| -| **Publish to Studio Web** (default) | Push the solution to Studio Web so the user can visualize, edit, and publish from the browser. | -| **Debug the solution** | Execute the flow end-to-end against real systems. Confirm consent first because debug has real side effects (see the consent-before-debug rule in [SKILL.md](../../SKILL.md)). | +| **Publish to Studio Web** | Push the solution to Studio Web so the user can visualize, edit, and publish from the browser. | +| **Debug the solution** | Execute the flow end-to-end against real systems. Consent comes from the mandate, not from this menu — see the `flow debug` rule in [SKILL.md](../../SKILL.md). Selecting it here is the user asking for a run. | | **Deploy to Orchestrator** | Pack and publish directly to Orchestrator (bypasses Studio Web). Only when explicitly chosen; see [/uipath:uipath-platform](/uipath:uipath-platform). | | **Something else** | Last option. Accept free-form string input and act on it. | -Do not run any option without explicit user selection. \ No newline at end of file +When the original request already named the next step ("publish it", "deploy to Orchestrator", "run debug and iterate"), that instruction **is** the selection — act on it and skip the menu. Show the menu only when the next step was left unspecified, and then do not run any option without explicit user selection. \ No newline at end of file diff --git a/skills/uipath-maestro-flow/references/author/greenfield.md b/skills/uipath-maestro-flow/references/author/greenfield.md index 9f2d049dc1..f974a5dffa 100644 --- a/skills/uipath-maestro-flow/references/author/greenfield.md +++ b/skills/uipath-maestro-flow/references/author/greenfield.md @@ -373,9 +373,9 @@ Authoring terminates here. Each option below hands off to Operate — read [oper | Option | What it does | | --- | --- | -| **Publish to Studio Web** (default) | Push the solution to Studio Web so the user can visualize, edit, and publish from the browser. | -| **Debug the solution** | Execute the flow end-to-end against real systems. Confirm consent first — debug has real side effects (see the consent-before-debug rule in [SKILL.md](../../SKILL.md)). | +| **Publish to Studio Web** | Push the solution to Studio Web so the user can visualize, edit, and publish from the browser. | +| **Debug the solution** | Execute the flow end-to-end against real systems. Consent comes from the mandate, not from this menu — see the `flow debug` rule in [SKILL.md](../../SKILL.md). Selecting it here is the user asking for a run. | | **Deploy to Orchestrator** | Pack and publish directly to Orchestrator (bypasses Studio Web). Only when explicitly chosen — see [/uipath:uipath-platform](/uipath:uipath-platform). | | **Something else** | Last option. Accept free-form string input and act on it (e.g., "just leave it", "pack but don't publish", "upload to a different tenant"). | -Do not run any of these actions without explicit user selection. Once the user picks an option, read [operate/CAPABILITY.md](../operate/CAPABILITY.md) and follow that capability's flow — do not run operate commands from inside this doc. +When the original request already named the next step ("publish it", "deploy to Orchestrator", "run debug and iterate"), that instruction **is** the selection — act on it and skip the menu. Show the menu only when the next step was left unspecified, and then do not run any of these actions without explicit user selection. Once the option is settled, read [operate/CAPABILITY.md](../operate/CAPABILITY.md) and follow that capability's flow — do not run operate commands from inside this doc. diff --git a/skills/uipath-maestro-flow/references/operate/run.md b/skills/uipath-maestro-flow/references/operate/run.md index 0c808e8d61..070acacc14 100644 --- a/skills/uipath-maestro-flow/references/operate/run.md +++ b/skills/uipath-maestro-flow/references/operate/run.md @@ -13,7 +13,7 @@ Execute a flow on demand and monitor progress. Three modes: **debug** (controlle ## Debug — controlled end-to-end run -> **Confirm consent first.** `flow debug` executes the flow for real — sends emails, posts messages, calls APIs. See the consent-before-debug rule in [SKILL.md](../../SKILL.md). Do not run without explicit user authorization. +> **Consent comes from the mandate.** `flow debug` executes the flow for real — sends emails, posts messages, calls APIs. Run it when the request is for a flow that works; ask when the request stops at build or validate. The mandate does not cover side effects that reach a third party (a real call, a message to someone who is not the user) — those need the run asked for explicitly. Never debug a solution this run did not scaffold: debug overwrites the Studio Web solution matching the local `.uipx` `SolutionId`. See rule #2 in [SKILL.md](../../SKILL.md). ```bash UIP_LOG_LEVEL=info uip maestro flow debug --output json diff --git a/tests/tasks/uipath-maestro-flow/_shared/preflight_connections.py b/tests/tasks/uipath-maestro-flow/_shared/preflight_connections.py new file mode 100644 index 0000000000..99e5ca7132 --- /dev/null +++ b/tests/tasks/uipath-maestro-flow/_shared/preflight_connections.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +"""Fail a task as ERROR, not FAILURE, when the tenant connection it needs is down. + +Usage: + preflight_connections.py [ ...] + +A `pre_run` failure lands the run as ``FinalStatus.ERROR``; a criterion failure +lands it as ``FAILURE``. Without this, a revoked grant or an asleep tenant reads +as an agent mistake: + + skill-flow-outlook-trigger-inbox AADSTS50173, grant revoked 2026-08-31 + skill-flow-generic-dynamic-node ServiceNow developer instance hibernating + +Both were scored FAILURE on 2026-09-04 and root-caused as skill defects before +anyone read far enough into the checker output to find the 403. + +Passes when at least one connection for each key reports Enabled. Connections +live in several folders, so `--all-folders` is required; without it an empty +result is a false negative. +""" + +from __future__ import annotations + +import json +import subprocess +import sys + + +def _connections(key: str) -> list[dict]: + proc = subprocess.run( + ["uip", "is", "connections", "list", key, "--all-folders", "--output", "json"], + capture_output=True, + text=True, + timeout=90, + ) + if proc.returncode != 0: + raise RuntimeError(f"`uip is connections list {key}` exited {proc.returncode}: {proc.stderr.strip()}") + payload = json.loads(proc.stdout) + if payload.get("Result") != "Success": + raise RuntimeError(f"connections list for {key} failed: {payload.get('Message', payload)}") + return payload.get("Data") or [] + + +def main(keys: list[str]) -> int: + broken: list[str] = [] + for key in keys: + try: + conns = _connections(key) + except Exception as exc: # noqa: BLE001 — any failure here is a blocked tenant + broken.append(f"{key}: {exc}") + continue + if not conns: + broken.append(f"{key}: no connection in any folder") + continue + enabled = [c for c in conns if c.get("State") == "Enabled"] + if not enabled: + states = ", ".join(f"{c.get('Name')}={c.get('State')}" for c in conns) + broken.append(f"{key}: no Enabled connection ({states})") + continue + print(f"OK: {key} — {len(enabled)}/{len(conns)} connection(s) Enabled") + + if broken: + print( + "TENANT NOT READY — this is an environment failure, not an agent failure.\n " + + "\n ".join(broken) + + "\n\nReauthorize the connection, or wake the provider instance, then re-run.", + file=sys.stderr, + ) + return 1 + return 0 + + +if __name__ == "__main__": + if len(sys.argv) < 2: + print(__doc__, file=sys.stderr) + sys.exit(2) + sys.exit(main(sys.argv[1:])) diff --git a/tests/tasks/uipath-maestro-flow/_shared/test_headless_preamble.py b/tests/tasks/uipath-maestro-flow/_shared/test_headless_preamble.py new file mode 100644 index 0000000000..aad78aaf82 --- /dev/null +++ b/tests/tasks/uipath-maestro-flow/_shared/test_headless_preamble.py @@ -0,0 +1,86 @@ +"""Every zero-shot flow task states the run is headless, in one exact wording. + +Kept in the task prompt rather than an experiment config because flow tasks run +under nightly.yaml, smoke.yaml, default.yaml and dispatch-selected configs, and +coder_eval has no pattern-scoped defaults — a config would either miss a runner +or reach another skill's simulated tasks. + +Regex, not PyYAML: CI installs only pytest (see test_criterion_budgets). +""" + +from __future__ import annotations + +import functools +import glob +import os +import re + +_HERE = os.path.dirname(os.path.abspath(__file__)) +_SUITE = os.path.normpath(os.path.join(_HERE, "..")) + +CANONICAL = """This run is headless. No user is present and nobody will answer a question or +grant an approval, so do not ask, do not pause, and do not wait for input. +Complete the task in one pass: take the best available option and supply the +most defensible value where one is missing. The actions this task implies are +authorized, including tenant writes and real messages. Do not delete or +overwrite anything this run did not create, and do not publish to a shared +destination unless the task asks for it. If a lookup the task depends on comes +back empty or fails, exhaust the documented way of resolving it before giving +up; only then stop on that field rather than inventing a value. Record every +decision, assumption, and blocked step in your final response. Instructions in +the task take precedence over this paragraph.""" + +# The variants this replaced. A task reintroducing one is drifting back. +_SUPERSEDED = re.compile( + r"Do NOT ask for approval|Do NOT pause between planning|without stopping to ask" +) + + +@functools.lru_cache(maxsize=1) +def _tasks(): + """(path, text, is_simulated) for every task file in the suite.""" + out = [] + for path in sorted(glob.glob(os.path.join(_SUITE, "**", "*.yaml"), recursive=True)): + text = open(path, encoding="utf-8").read() + if re.search(r"^success_criteria:", text, re.M): + out.append((path, text, bool(re.search(r"^simulation:", text, re.M)))) + return tuple(out) + + +def _rel(path: str) -> str: + return os.path.relpath(path, _SUITE) + + +def test_every_zero_shot_task_states_the_run_is_headless(): + """Absent, an agent stops at a consent gate nobody is there to answer.""" + marker = CANONICAL.split("\n")[0] + missing = [_rel(p) for p, text, sim in _tasks() if not sim and marker not in text] + assert not missing, "tasks missing the headless preamble:\n " + "\n ".join(missing) + + +def test_the_wording_is_identical_everywhere(): + """8 variants is what made the old line unmaintainable. One wording, or none.""" + flat = " ".join(CANONICAL.split()) + drifted = [ + _rel(p) + for p, text, sim in _tasks() + if not sim and "This run is headless." in text and flat not in " ".join(text.split()) + ] + assert not drifted, ( + "tasks whose headless preamble differs from the canonical wording in " + f"{_rel(__file__)}:\n " + "\n ".join(drifted) + ) + + +def test_simulated_tasks_are_not_told_nobody_is_present(): + """They have a live simulated user; the preamble contradicts their premise.""" + wrong = [_rel(p) for p, text, sim in _tasks() if sim and "This run is headless." in text] + assert not wrong, "simulated tasks carrying the headless preamble:\n " + "\n ".join(wrong) + + +def test_no_task_reintroduces_a_superseded_variant(): + stale = [_rel(p) for p, text, _ in _tasks() if _SUPERSEDED.search(text)] + assert not stale, ( + "tasks using a superseded autonomy line; replace it with the canonical " + "preamble:\n " + "\n ".join(stale) + ) diff --git a/tests/tasks/uipath-maestro-flow/bindings/idempotent_reconfigure.yaml b/tests/tasks/uipath-maestro-flow/bindings/idempotent_reconfigure.yaml index aaa5cefe2a..a5f9f848b5 100644 --- a/tests/tasks/uipath-maestro-flow/bindings/idempotent_reconfigure.yaml +++ b/tests/tasks/uipath-maestro-flow/bindings/idempotent_reconfigure.yaml @@ -28,6 +28,17 @@ initial_prompt: | Both snapshots go at the sandbox root. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent called `node configure` at least twice" diff --git a/tests/tasks/uipath-maestro-flow/bindings/multi_connector_independence.yaml b/tests/tasks/uipath-maestro-flow/bindings/multi_connector_independence.yaml index d470704f33..6b6aa15df7 100644 --- a/tests/tasks/uipath-maestro-flow/bindings/multi_connector_independence.yaml +++ b/tests/tasks/uipath-maestro-flow/bindings/multi_connector_independence.yaml @@ -29,6 +29,17 @@ initial_prompt: | echo '{"a":"","ka":"","b":"","kb":""}' > conn_ids.json + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # min_count: 1 (not 2) — agents commonly chain two `uip ... node add` calls # into a single Bash invocation with `&&`, which the checker counts as one diff --git a/tests/tasks/uipath-maestro-flow/bindings/no_duplicate_connection_bindings.yaml b/tests/tasks/uipath-maestro-flow/bindings/no_duplicate_connection_bindings.yaml index 4c505c7629..6ce5c1b543 100644 --- a/tests/tasks/uipath-maestro-flow/bindings/no_duplicate_connection_bindings.yaml +++ b/tests/tasks/uipath-maestro-flow/bindings/no_duplicate_connection_bindings.yaml @@ -25,6 +25,17 @@ initial_prompt: | schema" workaround afterwards — the bindings shape immediately after `node configure` is what this eval inspects. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent called `node configure`" diff --git a/tests/tasks/uipath-maestro-flow/bindings/reconfigure_different_connection.yaml b/tests/tasks/uipath-maestro-flow/bindings/reconfigure_different_connection.yaml index 0fd6c28a2a..5d6dbbb508 100644 --- a/tests/tasks/uipath-maestro-flow/bindings/reconfigure_different_connection.yaml +++ b/tests/tasks/uipath-maestro-flow/bindings/reconfigure_different_connection.yaml @@ -49,6 +49,17 @@ initial_prompt: | After reconfiguring the SAME node with B: cp BindingsReconfigure/flow_files/BindingsReconfigure.flow after_b.flow + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # min_count: 1 (not 2). Per uipath-maestro-flow SKILL.md rule #10, agents # chain sequential `uip` calls — e.g. `node configure && ... && node diff --git a/tests/tasks/uipath-maestro-flow/connector_features/ceql_where.yaml b/tests/tasks/uipath-maestro-flow/connector_features/ceql_where.yaml index 0fee1a29a9..0d8ad64a43 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/ceql_where.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/ceql_where.yaml @@ -28,6 +28,17 @@ initial_prompt: | if it succeeds, log "CeqlWhere test passed". Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "where_detail.json (found anywhere under the solution) has a canonical CEQL filter tree on displayName='active'; flow references the registered Azure AD / Entra connector key with List Groups + Terminate nodes" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/complex_array.yaml b/tests/tasks/uipath-maestro-flow/connector_features/complex_array.yaml index ec49e8a35b..e8c8bb9210 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/complex_array.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/complex_array.yaml @@ -18,6 +18,17 @@ initial_prompt: | "e2e-testing". Use the connection present in Shared/uipath-maestro-flow. Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/contractregistry_crud_filters.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/contractregistry_crud_filters.yaml index e26e458ccc..893aa2578c 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/contractregistry_crud_filters.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/contractregistry_crud_filters.yaml @@ -35,11 +35,19 @@ initial_prompt: | 6. Map the created, queried, updated, and retrieved values to the flow output where the activity supports output mapping. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final .flow passes `uip maestro flow validate`" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/e2e_contract_intake_pipeline.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/e2e_contract_intake_pipeline.yaml index 420f028c7e..0cfccde500 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/e2e_contract_intake_pipeline.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/e2e_contract_intake_pipeline.yaml @@ -41,11 +41,19 @@ initial_prompt: | Entity Record ONCE inside the loop, binding recordId to the loop item's Id. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final .flow passes `uip maestro flow validate`" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/integration_create_get.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/integration_create_get.yaml index 2b91cd6977..9c98bb645a 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/integration_create_get.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/integration_create_get.yaml @@ -37,11 +37,19 @@ initial_prompt: | at expansionLevel=1, expansionLevel=2, and expansionLevel=3. Delete when done. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Create Entity Record node added at least twice (one per scenario)" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_negative.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_negative.yaml index 2e2039dafe..fecf7a9ada 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_negative.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_negative.yaml @@ -8,6 +8,17 @@ initial_prompt: | In my RPA Studio (.xaml) workflow, add a Data Fabric activity to read customer records from the CustomerDirectory entity. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered description: "uipath-rpa handles the RPA-Studio Data Fabric prompt (not uipath-maestro-flow)" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_positive.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_positive.yaml index cc01331463..6de4831e7c 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_positive.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_activation_positive.yaml @@ -8,6 +8,17 @@ initial_prompt: | I need to create a record in my DataFabric entity from a UiPath Flow. The entity is called ProductCatalog — build the Flow that does it. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered description: "uipath-maestro-flow activates for a DataFabric-in-Flow prompt" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_create_all_types.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_create_all_types.yaml index a93cfbad58..5f7c81af5a 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_create_all_types.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_create_all_types.yaml @@ -30,11 +30,19 @@ initial_prompt: | * lastUpdated: "2024-03-10T09:00:00" (DATETIME) * externalId: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" (UUID) - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final .flow passes `uip maestro flow validate`" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_error.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_error.yaml index db20860861..031229063b 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_error.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_error.yaml @@ -22,11 +22,19 @@ initial_prompt: | FlowCodeEvalEntity for title='ErrorTestRecord'. 3. In the same parallel branch, Query FlowCodeEvalEntity with no filter. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Create attempted on NonExistentEntity" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_file_activities.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_file_activities.yaml index 281fa4a058..41ef7bf5ac 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_file_activities.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_file_activities.yaml @@ -36,11 +36,19 @@ initial_prompt: | 4. DeleteFileFromRecordFieldV2 — bind recordId to the same create activity output Id used in step 3. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final .flow passes `uip maestro flow validate`" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_query.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_query.yaml index cdc0523780..d3de8b3b61 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_query.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_query.yaml @@ -39,11 +39,19 @@ initial_prompt: | tree, sort, and limit, but use offset/start 2 for the next page. Query 3 must filter active equals true, sort by score descending, and use a limit of 4. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Query Entity Records node added" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update.yaml index 30189f76ab..7aab21e52b 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update.yaml @@ -24,11 +24,19 @@ initial_prompt: | 3. Retrieves the record by Id to confirm. 4. Deletes the record. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The Flow is not complete until `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Flow validated" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update_existing_flow.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update_existing_flow.yaml index 5239218ff2..4ecca7e1bb 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update_existing_flow.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/smoke_update_existing_flow.yaml @@ -31,12 +31,20 @@ initial_prompt: | 3. Then revert both changes so the activity is back to no filter, no ordering, and its original settings. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. The flow is not complete until the final state matches the initial state on those three fields and `uip maestro flow validate` passes. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final MovieReportFlow validates cleanly" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/trigger_lifecycle.yaml b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/trigger_lifecycle.yaml index 525edc9e8b..9c4fe6024d 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/trigger_lifecycle.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector/trigger_lifecycle.yaml @@ -35,11 +35,19 @@ initial_prompt: | For both flows, keep the configured connection and correct entity on every trigger and Data Fabric activity. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flows end-to-end in a - single pass. Validate every final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Final .flow passes `uip maestro flow validate`" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/drive_to_slack.yaml b/tests/tasks/uipath-maestro-flow/connector_features/drive_to_slack.yaml index 3bf8394980..d42edea705 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/drive_to_slack.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/drive_to_slack.yaml @@ -20,7 +20,28 @@ run_limits: task_timeout: 1500 max_turns: 120 turn_timeout: 1500 -initial_prompt: "Create a new Flow project called \"DriveToSlackTest\" with a manual trigger.\nIt should download a file from Google Drive and then post that file into a \nSlack channel named \"coding-agent-testing\" using Slack.\nWire the file output of the download operation to the channel input of the slack send file. \nValidate the final flow file.\nFor the Google Drive Download File activity, use the first available file.\nFor Send File, send as `user`.\nFor google drive, use the connection name 'is.sandboxes.test@gmail.com', and for slack\nuse the connection name 'is-sandboxes'.\n\nDo NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass.\n" +initial_prompt: | + Create a new Flow project called "DriveToSlackTest" with a manual trigger. + It should download a file from Google Drive and then post that file into a + Slack channel named "coding-agent-testing" using Slack. + Wire the file output of the download operation to the channel input of the slack send file. + Validate the final flow file. + For the Google Drive Download File activity, use the first available file. + For Send File, send as `user`. + For google drive, use the connection name 'is.sandboxes.test@gmail.com', and for slack + use the connection name 'is-sandboxes'. + + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: uip maestro flow validate was called diff --git a/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_false.yaml b/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_false.yaml index 01ed11baa6..cb51705ed3 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_false.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_false.yaml @@ -17,6 +17,17 @@ initial_prompt: | list-products operation and configure its attribute-term field. Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_true.yaml b/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_true.yaml index 90e51bf977..96fddd144f 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_true.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/dtl_load_by_default_true.yaml @@ -18,6 +18,17 @@ initial_prompt: | Validate the final flow file. Use the connection present in Shared/uipath-maestro-flow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/enhanced_enum.yaml b/tests/tasks/uipath-maestro-flow/connector_features/enhanced_enum.yaml index cc0d23f207..b9ec264475 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/enhanced_enum.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/enhanced_enum.yaml @@ -20,6 +20,17 @@ initial_prompt: | live connection, keep the real WooCommerce operation node with its inputs left unset, confirm that shape validates, and stop there. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/enum.yaml b/tests/tasks/uipath-maestro-flow/connector_features/enum.yaml index 900ad1b2f0..d28793f0cd 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/enum.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/enum.yaml @@ -21,6 +21,17 @@ initial_prompt: | Validate the final flow file. Use the connection present in Shared/uipath-maestro-flow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent invoked `uip is connections list` to discover available connections" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/generate_schema.yaml b/tests/tasks/uipath-maestro-flow/connector_features/generate_schema.yaml index 3ff4a20eb5..b062b2ca06 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/generate_schema.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/generate_schema.yaml @@ -22,6 +22,17 @@ initial_prompt: | If the Atlassian Jira connector isn't available in your registry, stop rather than falling back to a generic HTTP request. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow is valid JSON with Jira Create Issue node, customFieldsRequestDetails has both parent-field tuples under GenerateSchema, and bodyParameters carries a non-empty fields.summary" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/generic_dynamic_node/generic_dynamic_node.yaml b/tests/tasks/uipath-maestro-flow/connector_features/generic_dynamic_node/generic_dynamic_node.yaml index a25f18494f..9816a70d59 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/generic_dynamic_node/generic_dynamic_node.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/generic_dynamic_node/generic_dynamic_node.yaml @@ -38,11 +38,24 @@ initial_prompt: | Use the connection present in Shared/uipath-maestro-flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build, validate, and run end-to-end in a single - pass. Do NOT substitute a mock for the + Do NOT substitute a mock for the connector. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. +pre_run: + - command: 'python3 "$SKILLS_REPO_PATH/tests/tasks/uipath-maestro-flow/_shared/preflight_connections.py" uipath-servicenow-servicenow' + timeout: 120 + success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/connector_features/jdbc_databricks_query/jdbc_databricks_query.yaml b/tests/tasks/uipath-maestro-flow/connector_features/jdbc_databricks_query/jdbc_databricks_query.yaml index 82db43ecfb..6ae8b595b0 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/jdbc_databricks_query/jdbc_databricks_query.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/jdbc_databricks_query/jdbc_databricks_query.yaml @@ -52,9 +52,17 @@ initial_prompt: | Validate the final flow file and debug it. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/multiselect.yaml b/tests/tasks/uipath-maestro-flow/connector_features/multiselect.yaml index 4c98422b7b..acacff7471 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/multiselect.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/multiselect.yaml @@ -16,6 +16,17 @@ initial_prompt: | Coder Evals, IS-sandboxes@uipath.com and E2E-testing. Use the connection present in Shared/uipath-maestro-flow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # Name-agnostic: the prompt doesn't fix a project name. - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/connector_features/non-catalog-http-fallback/non_catalog_http_fallback.yaml b/tests/tasks/uipath-maestro-flow/connector_features/non-catalog-http-fallback/non_catalog_http_fallback.yaml index 44e7d74bb8..de0ded0ef8 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/non-catalog-http-fallback/non_catalog_http_fallback.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/non-catalog-http-fallback/non_catalog_http_fallback.yaml @@ -28,9 +28,18 @@ initial_prompt: | Validate the final flow file. Use `--output json` on every `uip` command whose output you parse. - Do NOT ask for approval, confirmation, or feedback — build and validate the - flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/paginated_reference_lookup.yaml b/tests/tasks/uipath-maestro-flow/connector_features/paginated_reference_lookup.yaml index bcdcbdb0d5..78c855fbf4 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/paginated_reference_lookup.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/paginated_reference_lookup.yaml @@ -34,9 +34,18 @@ initial_prompt: | For Slack, use the connection name `is-sandboxes`. If more than one connection matches that name, use any enabled one. Validate the flow when you're done. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent invoked `uip is resources run list ... curated_channels` more than once (pagination loop ran)" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/path_params.yaml b/tests/tasks/uipath-maestro-flow/connector_features/path_params.yaml index 3da24461e7..2e9355f5dc 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/path_params.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/path_params.yaml @@ -23,6 +23,17 @@ initial_prompt: | equivalent REST call and finish after validation. Do not keep searching for a connector node that the registry does not expose. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent invoked `uip is connections list` to discover available connections" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/query_params.yaml b/tests/tasks/uipath-maestro-flow/connector_features/query_params.yaml index c29eeea749..c859018779 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/query_params.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/query_params.yaml @@ -20,6 +20,17 @@ initial_prompt: | an HTTP fallback for the same REST call and finish after validation. Do not keep searching for a connector node that the registry does not expose. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/searchable_joins.yaml b/tests/tasks/uipath-maestro-flow/connector_features/searchable_joins.yaml index 2a7eff1b45..51b6e799c3 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/searchable_joins.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/searchable_joins.yaml @@ -17,6 +17,17 @@ initial_prompt: | has any opportunities and end the flow on each path. Validate the flow. Use the connection present in Shared/uipath-maestro-flow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file exists and is valid JSON" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/slack-http-fallback/slack_http_fallback.yaml b/tests/tasks/uipath-maestro-flow/connector_features/slack-http-fallback/slack_http_fallback.yaml index dcedeb9bba..ed0fd49d7d 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/slack-http-fallback/slack_http_fallback.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/slack-http-fallback/slack_http_fallback.yaml @@ -25,9 +25,18 @@ initial_prompt: | Validate the final flow file. Once it validates, debug it. Use `--output json` on every `uip` command whose output you parse. - Do NOT ask for approval, confirmation, or feedback — build, validate, and - debug the flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_attachments/testmanager_attachments.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_attachments/testmanager_attachments.yaml index 7c8a562ce1..4cc6dbeb42 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_attachments/testmanager_attachments.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_attachments/testmanager_attachments.yaml @@ -29,9 +29,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_crud_grounded/testmanager_crud_grounded.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_crud_grounded/testmanager_crud_grounded.yaml index 28df13cfa5..eed6d75e0f 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_crud_grounded/testmanager_crud_grounded.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_crud_grounded/testmanager_crud_grounded.yaml @@ -34,9 +34,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`)" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_execution_results/testmanager_execution_results.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_execution_results/testmanager_execution_results.yaml index 92aecc8cd6..59f2c80c61 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_execution_results/testmanager_execution_results.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_execution_results/testmanager_execution_results.yaml @@ -34,9 +34,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_generic_records/testmanager_generic_records.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_generic_records/testmanager_generic_records.yaml index dc8caf370e..1f697bc8ec 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_generic_records/testmanager_generic_records.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_generic_records/testmanager_generic_records.yaml @@ -30,9 +30,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_requirement_lifecycle/testmanager_requirement_lifecycle.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_requirement_lifecycle/testmanager_requirement_lifecycle.yaml index b02e5261b1..64a26a2c02 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_requirement_lifecycle/testmanager_requirement_lifecycle.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_requirement_lifecycle/testmanager_requirement_lifecycle.yaml @@ -31,9 +31,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testcase_lifecycle/testmanager_testcase_lifecycle.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testcase_lifecycle/testmanager_testcase_lifecycle.yaml index 83716c6a24..e659c59a5f 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testcase_lifecycle/testmanager_testcase_lifecycle.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testcase_lifecycle/testmanager_testcase_lifecycle.yaml @@ -30,9 +30,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testset_lifecycle/testmanager_testset_lifecycle.yaml b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testset_lifecycle/testmanager_testset_lifecycle.yaml index cd366f1db8..a30e0dd5b9 100644 --- a/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testset_lifecycle/testmanager_testset_lifecycle.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_features/testmanager_testset_lifecycle/testmanager_testset_lifecycle.yaml @@ -32,9 +32,17 @@ initial_prompt: | The task is not complete until validation passed for the flow. - Do NOT ask for approval, confirmation, or feedback. - Do NOT pause between planning and implementation. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent refreshed the node manifest (`uip maestro flow registry pull`) before searching" diff --git a/tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_filter.yaml b/tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_filter.yaml index 3f23be96b4..69e2d5e857 100644 --- a/tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_filter.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_trigger/trigger_with_filter.yaml @@ -16,7 +16,17 @@ initial_prompt: | `uip maestro flow node configure --detail ''` to configure that trigger. Use placeholders for any connection/folder/event ids you cannot resolve offline. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # `check_trigger_filter.py` locates trigger_detail.json (root or nested in the # flow project dir) and asserts it is the --detail object: valid JSON, no diff --git a/tests/tasks/uipath-maestro-flow/connector_trigger/webhook_waitfor_parallel.yaml b/tests/tasks/uipath-maestro-flow/connector_trigger/webhook_waitfor_parallel.yaml index 2189db7937..51ae0062b8 100644 --- a/tests/tasks/uipath-maestro-flow/connector_trigger/webhook_waitfor_parallel.yaml +++ b/tests/tasks/uipath-maestro-flow/connector_trigger/webhook_waitfor_parallel.yaml @@ -45,10 +45,19 @@ initial_prompt: | After building, validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and - implementation. Build the complete flow end-to-end in a single pass. Use `--output json` on `uip` commands. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution" diff --git a/tests/tasks/uipath-maestro-flow/context-grounding/batch_transform/batch_transform.yaml b/tests/tasks/uipath-maestro-flow/context-grounding/batch_transform/batch_transform.yaml index a81538c530..7a72011768 100644 --- a/tests/tasks/uipath-maestro-flow/context-grounding/batch_transform/batch_transform.yaml +++ b/tests/tasks/uipath-maestro-flow/context-grounding/batch_transform/batch_transform.yaml @@ -42,11 +42,20 @@ initial_prompt: | `outputs.result.source: "=js:$vars..output"`. Do NOT run flow debug — just validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. Before starting, follow the documented workflow steps exactly — in particular, the batch-transform plugin's `outputColumns` shape (array of `{ name, description }`). + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/context-grounding/summarize/summarize.yaml b/tests/tasks/uipath-maestro-flow/context-grounding/summarize/summarize.yaml index 74c13bbf2a..d57b247b99 100644 --- a/tests/tasks/uipath-maestro-flow/context-grounding/summarize/summarize.yaml +++ b/tests/tasks/uipath-maestro-flow/context-grounding/summarize/summarize.yaml @@ -44,11 +44,20 @@ initial_prompt: | resolve to `undefined` at runtime. Do NOT run flow debug — just validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. Before starting, follow the documented workflow steps exactly — in particular, note that the wire-level node type is `uipath.pattern.deep-rag` even though the canvas display name is "Summarize". + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/e2e/devcon_expense_approval.yaml b/tests/tasks/uipath-maestro-flow/e2e/devcon_expense_approval.yaml index 8652ca3d38..d46837477c 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/devcon_expense_approval.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/devcon_expense_approval.yaml @@ -33,6 +33,17 @@ initial_prompt: | Build the complete flow as a UiPath Flow project called "ExpenseApproval" in a solution of the same name. Wire everything end-to-end and validate it. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution" diff --git a/tests/tasks/uipath-maestro-flow/e2e/escalation_jira_ticket/escalation_jira_ticket.yaml b/tests/tasks/uipath-maestro-flow/e2e/escalation_jira_ticket/escalation_jira_ticket.yaml index c79643e94f..f01a5552ec 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/escalation_jira_ticket/escalation_jira_ticket.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/escalation_jira_ticket/escalation_jira_ticket.yaml @@ -54,10 +54,20 @@ initial_prompt: | correlationId), and jiraIssueKey (the created issue's key). Validate the flow. Do NOT run or debug the flow — the grader executes it with the - seeded inputs. Do NOT ask for approval and do NOT pause; build end-to-end in a - single pass. Before starting, load the uipath-maestro-flow skill and follow its + seeded inputs. Before starting, load the uipath-maestro-flow skill and follow its workflow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent validated the generated Flow" diff --git a/tests/tasks/uipath-maestro-flow/e2e/escalation_orchestrator_paths/escalation_orchestrator_paths.yaml b/tests/tasks/uipath-maestro-flow/e2e/escalation_orchestrator_paths/escalation_orchestrator_paths.yaml index bb191b3e1a..9f73e3b270 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/escalation_orchestrator_paths/escalation_orchestrator_paths.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/escalation_orchestrator_paths/escalation_orchestrator_paths.yaml @@ -82,9 +82,19 @@ initial_prompt: | Salesforce/Jira/Drive are NOT part of this task — the match status is an input. Validate the flow. Do NOT run or debug the flow — the grader executes it with - seeded inputs. Do NOT ask for approval and do NOT pause; build the flow directly. - Before starting, load the uipath-maestro-flow skill and follow its workflow. + seeded inputs. Before starting, load the uipath-maestro-flow skill and follow its workflow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent validated the generated Flow" diff --git a/tests/tasks/uipath-maestro-flow/e2e/escalation_slack_alert/escalation_slack_alert.yaml b/tests/tasks/uipath-maestro-flow/e2e/escalation_slack_alert/escalation_slack_alert.yaml index 0a8076c810..062d4b3c20 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/escalation_slack_alert/escalation_slack_alert.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/escalation_slack_alert/escalation_slack_alert.yaml @@ -56,11 +56,20 @@ initial_prompt: | (from the Slack Send Message node's output) Validate the flow. Do NOT run or debug the flow — the grader executes it with - seeded inputs. Do NOT ask for approval, confirmation, or feedback, and do NOT - pause between planning and implementation. Build the complete flow end-to-end - in a single pass. Before starting, load the uipath-maestro-flow skill and + seeded inputs. Before starting, load the uipath-maestro-flow skill and follow its workflow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── The agent validated the flow (convention adherence) ───────────────── - type: command_executed diff --git a/tests/tasks/uipath-maestro-flow/e2e/jira_create_issue/jira_create_issue.yaml b/tests/tasks/uipath-maestro-flow/e2e/jira_create_issue/jira_create_issue.yaml index 6e8fe8e040..2185c80264 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/jira_create_issue/jira_create_issue.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/jira_create_issue/jira_create_issue.yaml @@ -43,6 +43,17 @@ initial_prompt: | Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/e2e/jira_get_issue/jira_get_issue.yaml b/tests/tasks/uipath-maestro-flow/e2e/jira_get_issue/jira_get_issue.yaml index 07774fe9f3..dec7b9a3d3 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/jira_get_issue/jira_get_issue.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/jira_get_issue/jira_get_issue.yaml @@ -43,6 +43,17 @@ initial_prompt: | Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/e2e/jira_lifecycle/jira_lifecycle.yaml b/tests/tasks/uipath-maestro-flow/e2e/jira_lifecycle/jira_lifecycle.yaml index 03227a48da..9f11d6378b 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/jira_lifecycle/jira_lifecycle.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/jira_lifecycle/jira_lifecycle.yaml @@ -56,6 +56,17 @@ initial_prompt: | Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/e2e/jira_search_triage/jira_search_triage.yaml b/tests/tasks/uipath-maestro-flow/e2e/jira_search_triage/jira_search_triage.yaml index fd7c8b9fce..69d81ef67c 100644 --- a/tests/tasks/uipath-maestro-flow/e2e/jira_search_triage/jira_search_triage.yaml +++ b/tests/tasks/uipath-maestro-flow/e2e/jira_search_triage/jira_search_triage.yaml @@ -43,6 +43,17 @@ initial_prompt: | Validate the final flow file. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "uip maestro flow validate was called" diff --git a/tests/tasks/uipath-maestro-flow/edit/add_node/add_node.yaml b/tests/tasks/uipath-maestro-flow/edit/add_node/add_node.yaml index 96ec38a796..8d0a7230cf 100644 --- a/tests/tasks/uipath-maestro-flow/edit/add_node/add_node.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/add_node/add_node.yaml @@ -18,8 +18,18 @@ initial_prompt: | Add a script node called "convertToCelsius" between getWeather and formatSummary that converts the temp from F to C. Return both values. Also update formatSummary to include the Celsius value in its summary string. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/edit/add_output/add_output.yaml b/tests/tasks/uipath-maestro-flow/edit/add_output/add_output.yaml index 306bf90b46..20b05d484a 100644 --- a/tests/tasks/uipath-maestro-flow/edit/add_output/add_output.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/add_output/add_output.yaml @@ -17,8 +17,18 @@ initial_prompt: | Add a "location" field with value "Bellevue, WA" to the summary output of both end nodes. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes on the flow file" diff --git a/tests/tasks/uipath-maestro-flow/edit/group_to_subflow/group_to_subflow.yaml b/tests/tasks/uipath-maestro-flow/edit/group_to_subflow/group_to_subflow.yaml index 73aab55567..6ddb25ff31 100644 --- a/tests/tasks/uipath-maestro-flow/edit/group_to_subflow/group_to_subflow.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/group_to_subflow/group_to_subflow.yaml @@ -19,8 +19,18 @@ initial_prompt: | Move getWeather and formatSummary into a subflow called "fetchAndFormat". The subflow should output the temperatureF value. The rest of the main flow (decision + end nodes) stays but reads from the subflow output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/edit/move_node/move_node.yaml b/tests/tasks/uipath-maestro-flow/edit/move_node/move_node.yaml index ddc5bb7045..9880165f8e 100644 --- a/tests/tasks/uipath-maestro-flow/edit/move_node/move_node.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/move_node/move_node.yaml @@ -17,8 +17,18 @@ initial_prompt: | Rearrange the flow so the decision happens right after the HTTP call. Both the true and false branches should merge back into formatSummary, which then goes to a single end node. formatSummary should pick the message ('nice day' or 'bring a jacket') based on which branch the decision took. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes on the flow file" diff --git a/tests/tasks/uipath-maestro-flow/edit/remove_node/remove_node.yaml b/tests/tasks/uipath-maestro-flow/edit/remove_node/remove_node.yaml index 423a266a1a..c7cbbd5d34 100644 --- a/tests/tasks/uipath-maestro-flow/edit/remove_node/remove_node.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/remove_node/remove_node.yaml @@ -18,8 +18,18 @@ initial_prompt: | Remove the formatSummary script node. The decision and end nodes should read temperature directly from the HTTP response instead. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/edit/update_node/update_node.yaml b/tests/tasks/uipath-maestro-flow/edit/update_node/update_node.yaml index 7a150b6785..e5e952c9d6 100644 --- a/tests/tasks/uipath-maestro-flow/edit/update_node/update_node.yaml +++ b/tests/tasks/uipath-maestro-flow/edit/update_node/update_node.yaml @@ -19,8 +19,18 @@ initial_prompt: | otherwise the message field should be 'go home'. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/evaluate/child_simulation/child_simulation_crud.yaml b/tests/tasks/uipath-maestro-flow/evaluate/child_simulation/child_simulation_crud.yaml index 878232a5fc..722412cd79 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/child_simulation/child_simulation_crud.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/child_simulation/child_simulation_crud.yaml @@ -59,6 +59,17 @@ initial_prompt: | - Do NOT add a separate parent simulation for `agent-1` before adding children — use the child simulation workflow from the skill. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution" diff --git a/tests/tasks/uipath-maestro-flow/evaluate/evaluator_type_choice.yaml b/tests/tasks/uipath-maestro-flow/evaluate/evaluator_type_choice.yaml index f0cb396a68..76cac0db7b 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/evaluator_type_choice.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/evaluator_type_choice.yaml @@ -60,6 +60,17 @@ initial_prompt: | - Do NOT call `uip login`. Do NOT call `uip solution upload`. Do NOT call `uip maestro flow eval run *`. Local CRUD only. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created the solution" diff --git a/tests/tasks/uipath-maestro-flow/evaluate/inline_agent_eval/inline_agent_eval.yaml b/tests/tasks/uipath-maestro-flow/evaluate/inline_agent_eval/inline_agent_eval.yaml index 1d08b8c820..44515e4f3e 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/inline_agent_eval/inline_agent_eval.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/inline_agent_eval/inline_agent_eval.yaml @@ -54,9 +54,18 @@ initial_prompt: | - Local CRUD only. Do NOT call `uip login`. Do NOT call `uip solution upload`. Do NOT call `uip maestro flow eval run *`. Do NOT run `uip maestro flow debug`. - - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build it end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent scaffolded the inline agent with uip agent init --inline-in-flow" diff --git a/tests/tasks/uipath-maestro-flow/evaluate/local_crud.yaml b/tests/tasks/uipath-maestro-flow/evaluate/local_crud.yaml index 6d2698ad75..0e087cd42f 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/local_crud.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/local_crud.yaml @@ -45,6 +45,17 @@ initial_prompt: | - Do NOT run `uip maestro flow debug` or `uip maestro flow validate` — this is not a flow-authoring test. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution" diff --git a/tests/tasks/uipath-maestro-flow/evaluate/no_auto_upload.yaml b/tests/tasks/uipath-maestro-flow/evaluate/no_auto_upload.yaml index 4642b21fe2..6d90cb3763 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/no_auto_upload.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/no_auto_upload.yaml @@ -51,6 +51,17 @@ initial_prompt: | - You ARE expected to run the local CRUD steps (1 and 2) so the project is in a realistic pre-eval state. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created the solution" diff --git a/tests/tasks/uipath-maestro-flow/evaluate/simulation/simulation_crud.yaml b/tests/tasks/uipath-maestro-flow/evaluate/simulation/simulation_crud.yaml index 9d792d8aa0..c1ec336127 100644 --- a/tests/tasks/uipath-maestro-flow/evaluate/simulation/simulation_crud.yaml +++ b/tests/tasks/uipath-maestro-flow/evaluate/simulation/simulation_crud.yaml @@ -56,6 +56,17 @@ initial_prompt: | - Do NOT run `uip maestro flow debug` or `uip maestro flow validate` — this is not a flow-authoring test. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution" diff --git a/tests/tasks/uipath-maestro-flow/hitl/quality_01_schema_design.yaml b/tests/tasks/uipath-maestro-flow/hitl/quality_01_schema_design.yaml index e900adaa8f..61135dd14d 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/quality_01_schema_design.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/quality_01_schema_design.yaml @@ -26,6 +26,17 @@ initial_prompt: | Wire completed → decision node. Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/hitl/quality_02_result_downstream.yaml b/tests/tasks/uipath-maestro-flow/hitl/quality_02_result_downstream.yaml index 89a41eda97..9fd1f3fd94 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/quality_02_result_downstream.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/quality_02_result_downstream.yaml @@ -28,6 +28,17 @@ initial_prompt: | Use the inline quickform node (uipath.human-in-the-loop.quick-form). Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/hitl/quality_03_boolean_decision.yaml b/tests/tasks/uipath-maestro-flow/hitl/quality_03_boolean_decision.yaml index 51d392354a..ca08ef778b 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/quality_03_boolean_decision.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/quality_03_boolean_decision.yaml @@ -29,6 +29,17 @@ initial_prompt: | Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/hitl/quality_04_brownfield_insert.yaml b/tests/tasks/uipath-maestro-flow/hitl/quality_04_brownfield_insert.yaml index 818884c36e..a258d2c52c 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/quality_04_brownfield_insert.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/quality_04_brownfield_insert.yaml @@ -30,6 +30,17 @@ initial_prompt: | Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes after brownfield insert" diff --git a/tests/tasks/uipath-maestro-flow/hitl/smoke_01_hitl_node_placed.yaml b/tests/tasks/uipath-maestro-flow/hitl/smoke_01_hitl_node_placed.yaml index f2d648f834..8da394aa9c 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/smoke_01_hitl_node_placed.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/smoke_01_hitl_node_placed.yaml @@ -23,6 +23,17 @@ initial_prompt: | Validate the flow after building it. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file was created" diff --git a/tests/tasks/uipath-maestro-flow/hitl/smoke_02_completed_port_wired.yaml b/tests/tasks/uipath-maestro-flow/hitl/smoke_02_completed_port_wired.yaml index bcbbb20af0..7fea7d40df 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/smoke_02_completed_port_wired.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/smoke_02_completed_port_wired.yaml @@ -27,6 +27,17 @@ initial_prompt: | Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "Flow file was created" diff --git a/tests/tasks/uipath-maestro-flow/hitl/smoke_03_multi_outcome_routing.yaml b/tests/tasks/uipath-maestro-flow/hitl/smoke_03_multi_outcome_routing.yaml index 5adffb2d7b..54beaa7235 100644 --- a/tests/tasks/uipath-maestro-flow/hitl/smoke_03_multi_outcome_routing.yaml +++ b/tests/tasks/uipath-maestro-flow/hitl/smoke_03_multi_outcome_routing.yaml @@ -30,6 +30,17 @@ initial_prompt: | Validate the flow after building. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/ixp/e2e_01_invoice_extraction_greenfield.yaml b/tests/tasks/uipath-maestro-flow/ixp/e2e_01_invoice_extraction_greenfield.yaml index 1ad9e68f4e..aed4e6d897 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/e2e_01_invoice_extraction_greenfield.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/e2e_01_invoice_extraction_greenfield.yaml @@ -30,7 +30,18 @@ initial_prompt: | Validate the final flow file — the task is not complete until `uip maestro flow validate` passes. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the generated flow file diff --git a/tests/tasks/uipath-maestro-flow/ixp/e2e_02_project_selection.yaml b/tests/tasks/uipath-maestro-flow/ixp/e2e_02_project_selection.yaml index 9fadc20935..e0b9008635 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/e2e_02_project_selection.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/e2e_02_project_selection.yaml @@ -54,6 +54,17 @@ initial_prompt: | - Run `uip maestro flow validate` at most 3 times. If it reports errors, fix the `.flow` and re-run it. Do not exceed 3 validation runs. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered skill_name: "uipath-maestro-flow" diff --git a/tests/tasks/uipath-maestro-flow/ixp/e2e_03_project_creation_handoff/e2e_03_project_creation_handoff.yaml b/tests/tasks/uipath-maestro-flow/ixp/e2e_03_project_creation_handoff/e2e_03_project_creation_handoff.yaml index 0fffd7d922..3ed5e77dd5 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/e2e_03_project_creation_handoff/e2e_03_project_creation_handoff.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/e2e_03_project_creation_handoff/e2e_03_project_creation_handoff.yaml @@ -97,9 +97,18 @@ initial_prompt: | - The `uip` CLI is already available and the runner is logged in. - Use `--output json` on all uip commands. - Do NOT run `uip maestro flow debug` or `uip maestro flow deploy`. - - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build it end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered description: "Agent invoked the uipath-maestro-flow Skill" diff --git a/tests/tasks/uipath-maestro-flow/ixp/integration_handle_routing.yaml b/tests/tasks/uipath-maestro-flow/ixp/integration_handle_routing.yaml index b1ba3319f0..bc077bfdbe 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/integration_handle_routing.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/integration_handle_routing.yaml @@ -45,6 +45,17 @@ initial_prompt: | - Run `uip maestro flow validate` at most 3 times. If it reports errors, fix the `.flow` and re-run it. Do not exceed 3 validation runs. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered skill_name: "uipath-maestro-flow" diff --git a/tests/tasks/uipath-maestro-flow/ixp/routing.yaml b/tests/tasks/uipath-maestro-flow/ixp/routing.yaml index 298103bd3c..3bd72c7054 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/routing.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/routing.yaml @@ -59,6 +59,17 @@ initial_prompt: | - Do NOT iterate on validation errors or rewrite the flow to fix them. A broken flow is acceptable. - You do not need a working flow — a skeleton whose nodes cover the steps of the request is enough. Leave a node unconfigured rather than leaving a step out. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # What this checks: did the agent search the registry for IxP nodes? # Passes (case-insensitive) when the agent ran either: diff --git a/tests/tasks/uipath-maestro-flow/ixp/routing_listing.yaml b/tests/tasks/uipath-maestro-flow/ixp/routing_listing.yaml index 740e681d78..82f165ca1a 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/routing_listing.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/routing_listing.yaml @@ -44,6 +44,17 @@ initial_prompt: | - The `uip` CLI is already available. - Use `--output json` on all uip commands. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # IxP registry-search check (omits `get`) — see routing.yaml for the pattern breakdown. - type: command_executed diff --git a/tests/tasks/uipath-maestro-flow/ixp/routing_negative.yaml b/tests/tasks/uipath-maestro-flow/ixp/routing_negative.yaml index e1574e1ac0..61f98247b4 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/routing_negative.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/routing_negative.yaml @@ -64,6 +64,17 @@ initial_prompt: | - Do NOT iterate on validation errors or rewrite the flow to fix them. A broken flow is acceptable. - You do not need a working flow — a skeleton whose nodes cover the steps of the request is enough. Leave a node unconfigured rather than leaving a step out. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # Inverted twin of the positive routing.yaml grep. # `shell=True` in coder_eval Sandbox.run_command means `!` works as a bash diff --git a/tests/tasks/uipath-maestro-flow/ixp/scaffold_minimal.yaml b/tests/tasks/uipath-maestro-flow/ixp/scaffold_minimal.yaml index 6b55ef6ab0..51b4423583 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/scaffold_minimal.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/scaffold_minimal.yaml @@ -33,6 +33,17 @@ initial_prompt: | - Run `uip maestro flow validate` at most 3 times. If it reports errors, fix the `.flow` and re-run it. Do not exceed 3 validation runs. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered skill_name: "uipath-maestro-flow" diff --git a/tests/tasks/uipath-maestro-flow/ixp/scaffold_multinode.yaml b/tests/tasks/uipath-maestro-flow/ixp/scaffold_multinode.yaml index 9026972964..2c489aca37 100644 --- a/tests/tasks/uipath-maestro-flow/ixp/scaffold_multinode.yaml +++ b/tests/tasks/uipath-maestro-flow/ixp/scaffold_multinode.yaml @@ -37,6 +37,17 @@ initial_prompt: | - Run `uip maestro flow validate` at most 3 times. If it reports errors, fix the `.flow` and re-run it. Do not exceed 3 validation runs. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: skill_triggered skill_name: "uipath-maestro-flow" diff --git a/tests/tasks/uipath-maestro-flow/multi_node/bellevue_weather/bellevue_weather.yaml b/tests/tasks/uipath-maestro-flow/multi_node/bellevue_weather/bellevue_weather.yaml index 6905a1a767..d4be6e8eff 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/bellevue_weather/bellevue_weather.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/bellevue_weather/bellevue_weather.yaml @@ -17,8 +17,18 @@ initial_prompt: | Use a Managed HTTP Request node (core.action.http.v2) to call the open-meteo API directly — do not use an Integration Service connector. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/billing_discrepancy_detector/billing_discrepancy_detector.yaml b/tests/tasks/uipath-maestro-flow/multi_node/billing_discrepancy_detector/billing_discrepancy_detector.yaml index af5b57738c..1b9e663333 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/billing_discrepancy_detector/billing_discrepancy_detector.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/billing_discrepancy_detector/billing_discrepancy_detector.yaml @@ -47,8 +47,17 @@ initial_prompt: | flow validate` passes. Grading then runs the flow under debug against live tenant data, so build it to actually run, not merely validate. - Build the complete flow - without stopping to ask me. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_analyst/billing_dispute_analyst.yaml b/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_analyst/billing_dispute_analyst.yaml index f03a24fde7..6012ac9e56 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_analyst/billing_dispute_analyst.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_analyst/billing_dispute_analyst.yaml @@ -38,8 +38,17 @@ initial_prompt: | flow validate` passes. Grading then runs the flow under debug, so build it to actually run, not merely validate. - Build the complete flow - without stopping to ask me. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_resolution/billing_dispute_resolution.yaml b/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_resolution/billing_dispute_resolution.yaml index c11aed6cd4..35dac97b68 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_resolution/billing_dispute_resolution.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/billing_dispute_resolution/billing_dispute_resolution.yaml @@ -104,8 +104,17 @@ initial_prompt: | and re-run — stop after 3 debug attempts and report the last incident instead of looping. Grading then runs debug against live tenant data. - Build the complete flow - without stopping to ask me. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/multi_node/billing_invoice_lookup/billing_invoice_lookup.yaml b/tests/tasks/uipath-maestro-flow/multi_node/billing_invoice_lookup/billing_invoice_lookup.yaml index 885740b90f..8a9aa38680 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/billing_invoice_lookup/billing_invoice_lookup.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/billing_invoice_lookup/billing_invoice_lookup.yaml @@ -35,8 +35,17 @@ initial_prompt: | flow validate` passes. Grading then runs the flow under debug against live tenant data, so build it to actually run, not merely validate. - Build the complete flow - without stopping to ask me. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/multi_node/billing_resolution_writer/billing_resolution_writer.yaml b/tests/tasks/uipath-maestro-flow/multi_node/billing_resolution_writer/billing_resolution_writer.yaml index 8841ff394b..223b005042 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/billing_resolution_writer/billing_resolution_writer.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/billing_resolution_writer/billing_resolution_writer.yaml @@ -37,8 +37,17 @@ initial_prompt: | flow validate` passes. Grading then runs the flow under debug, so build it to actually run, not merely validate. - Build the complete flow - without stopping to ask me. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/multi_node/calculator/calculator.yaml b/tests/tasks/uipath-maestro-flow/multi_node/calculator/calculator.yaml index 5a6a109a34..600ab56741 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/calculator/calculator.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/calculator/calculator.yaml @@ -14,8 +14,18 @@ initial_prompt: | returned as an output variable. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/customer_escalation/customer_escalation.yaml b/tests/tasks/uipath-maestro-flow/multi_node/customer_escalation/customer_escalation.yaml index c384d2849e..e896822ef3 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/customer_escalation/customer_escalation.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/customer_escalation/customer_escalation.yaml @@ -32,10 +32,18 @@ initial_prompt: | reply to the sender via Outlook with the ticket details. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ──────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/dice_roller/dice_roller.yaml b/tests/tasks/uipath-maestro-flow/multi_node/dice_roller/dice_roller.yaml index dd75fa2522..6a05aaa795 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/dice_roller/dice_roller.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/dice_roller/dice_roller.yaml @@ -15,8 +15,18 @@ initial_prompt: | die and outputs the result. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/feet_inches/feet_inches.yaml b/tests/tasks/uipath-maestro-flow/multi_node/feet_inches/feet_inches.yaml index d64eab27b1..6df0d53636 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/feet_inches/feet_inches.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/feet_inches/feet_inches.yaml @@ -20,8 +20,17 @@ initial_prompt: | ("f2i", "i2f", "y2f"); each branch applies the corresponding conversion (in a Script node) and converges on a single End node that returns the result. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/loop_multiply/loop_multiply.yaml b/tests/tasks/uipath-maestro-flow/multi_node/loop_multiply/loop_multiply.yaml index ab64ffd4da..f715d216a0 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/loop_multiply/loop_multiply.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/loop_multiply/loop_multiply.yaml @@ -14,8 +14,18 @@ initial_prompt: | numbers [13, 15, 17] together using a Loop node and returns the product. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/multi_city_weather/multi_city_weather.yaml b/tests/tasks/uipath-maestro-flow/multi_node/multi_city_weather/multi_city_weather.yaml index 57e8b3e480..5dda9ee47f 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/multi_city_weather/multi_city_weather.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/multi_city_weather/multi_city_weather.yaml @@ -14,8 +14,18 @@ initial_prompt: | Use a Managed HTTP Request node (core.action.http.v2) to call the open-meteo API directly — do not use an Integration Service connector. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/multi_node/reading_list/reading_list.yaml b/tests/tasks/uipath-maestro-flow/multi_node/reading_list/reading_list.yaml index 305eccd2e3..eda77be31e 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/reading_list/reading_list.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/reading_list/reading_list.yaml @@ -41,8 +41,18 @@ initial_prompt: | an inline `=js:[...]` array or `=js:$vars.` expression. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/slack_channel_description/slack_channel_description.yaml b/tests/tasks/uipath-maestro-flow/multi_node/slack_channel_description/slack_channel_description.yaml index 70df43e92c..de1547175c 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/slack_channel_description/slack_channel_description.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/slack_channel_description/slack_channel_description.yaml @@ -15,8 +15,18 @@ initial_prompt: | the channel description of #office-bellevue and outputs it. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/multi_node/slack_weather_pipeline/slack_weather_pipeline.yaml b/tests/tasks/uipath-maestro-flow/multi_node/slack_weather_pipeline/slack_weather_pipeline.yaml index 21f962aa1d..be6765dbee 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/slack_weather_pipeline/slack_weather_pipeline.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/slack_weather_pipeline/slack_weather_pipeline.yaml @@ -16,8 +16,18 @@ initial_prompt: | All connections for this task live in Orchestrator folder `Shared/uipath-maestro-flow`. Validate the flow, then run `uip maestro flow debug` and iterate until it completes without incidents. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: "uip maestro flow validate passes" diff --git a/tests/tasks/uipath-maestro-flow/multi_node/wiki_pageviews/wiki_pageviews.yaml b/tests/tasks/uipath-maestro-flow/multi_node/wiki_pageviews/wiki_pageviews.yaml index bfcf65dcd1..c62753b860 100644 --- a/tests/tasks/uipath-maestro-flow/multi_node/wiki_pageviews/wiki_pageviews.yaml +++ b/tests/tasks/uipath-maestro-flow/multi_node/wiki_pageviews/wiki_pageviews.yaml @@ -32,8 +32,17 @@ initial_prompt: | does not exist and the API returns an error), the flow must instead return the literal string `Article not found`. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/api_workflow/api_workflow.yaml b/tests/tasks/uipath-maestro-flow/single_node/api_workflow/api_workflow.yaml index eebfd349f8..5052621811 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/api_workflow/api_workflow.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/api_workflow/api_workflow.yaml @@ -14,8 +14,18 @@ initial_prompt: | API workflow with the name 'tomasz' and returns his age as an output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/coded_agent/coded_agent.yaml b/tests/tasks/uipath-maestro-flow/single_node/coded_agent/coded_agent.yaml index 638e7ccf66..a90db2de50 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/coded_agent/coded_agent.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/coded_agent/coded_agent.yaml @@ -26,7 +26,18 @@ initial_prompt: | number of people who approved as an integer flow output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: run_command description: uip maestro flow validate passes on the flow file diff --git a/tests/tasks/uipath-maestro-flow/single_node/decision/decision.yaml b/tests/tasks/uipath-maestro-flow/single_node/decision/decision.yaml index fb3a14b056..33168541ee 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/decision/decision.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/decision/decision.yaml @@ -17,8 +17,18 @@ initial_prompt: | the flow should output "warm". Otherwise it should output "cool". Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # -- Flow file validity -- - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/delay/delay.yaml b/tests/tasks/uipath-maestro-flow/single_node/delay/delay.yaml index c8b35a7534..9afa47baff 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/delay/delay.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/delay/delay.yaml @@ -28,11 +28,20 @@ initial_prompt: | the delay node id, and one whose `sourceNodeId` is the delay node id). Do NOT run flow debug — just validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. Before starting, follow the documented workflow steps exactly — in particular, the delay plugin's `inputs` shape (`timerType` + `timerPreset`). + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/file_attachment/file_attachment.yaml b/tests/tasks/uipath-maestro-flow/single_node/file_attachment/file_attachment.yaml index eb10dbc135..e1b4f7bde8 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/file_attachment/file_attachment.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/file_attachment/file_attachment.yaml @@ -30,12 +30,21 @@ initial_prompt: | file to the input. The task is not complete until the debug run reports `finalStatus: "Completed"` and the output reflects the attached file's name. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build, validate, and run end-to-end in a single - pass. Before starting, follow the documented + Before starting, follow the documented workflow steps exactly — in particular the file-attachment binding pre-flight and the requirement to run `solution resources refresh` before debug. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/lowcode_agent/lowcode_agent.yaml b/tests/tasks/uipath-maestro-flow/single_node/lowcode_agent/lowcode_agent.yaml index 415736357b..cefd781716 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/lowcode_agent/lowcode_agent.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/lowcode_agent/lowcode_agent.yaml @@ -21,8 +21,18 @@ initial_prompt: | in rather than creating a new one. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/openmeteo_weather/openmeteo_weather.yaml b/tests/tasks/uipath-maestro-flow/single_node/openmeteo_weather/openmeteo_weather.yaml index a911f49ab7..f44cef504c 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/openmeteo_weather/openmeteo_weather.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/openmeteo_weather/openmeteo_weather.yaml @@ -32,11 +32,20 @@ initial_prompt: | The task is not complete until `uip maestro flow validate` passes. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build and validate the complete flow end-to-end - in a single pass. Do NOT substitute a mock or a manual + Do NOT substitute a mock or a manual HTTP request for the connector. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/outlook_trigger_inbox/outlook_trigger_inbox.yaml b/tests/tasks/uipath-maestro-flow/single_node/outlook_trigger_inbox/outlook_trigger_inbox.yaml index 3f27f03f6c..567936b1b4 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/outlook_trigger_inbox/outlook_trigger_inbox.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/outlook_trigger_inbox/outlook_trigger_inbox.yaml @@ -26,13 +26,25 @@ initial_prompt: | from that Script node's output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. - Do not reuse any folder ID you may have seen before. Use the connection in Shared/uipath-maestro-flow folder. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. +pre_run: + - command: 'python3 "$SKILLS_REPO_PATH/tests/tasks/uipath-maestro-flow/_shared/preflight_connections.py" uipath-microsoft-outlook365' + timeout: 120 + success_criteria: # ── Structural: flow builds and validates ────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/outlook_waitfor_email/outlook_waitfor_email.yaml b/tests/tasks/uipath-maestro-flow/single_node/outlook_waitfor_email/outlook_waitfor_email.yaml index 52fc561599..760e75f43b 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/outlook_waitfor_email/outlook_waitfor_email.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/outlook_waitfor_email/outlook_waitfor_email.yaml @@ -41,10 +41,17 @@ initial_prompt: | Validate the flow. Do not debug the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single - pass. - + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Structural: flow builds and validates ────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/rpa/rpa.yaml b/tests/tasks/uipath-maestro-flow/single_node/rpa/rpa.yaml index 54904b6a08..1a72b3cfa7 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/rpa/rpa.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/rpa/rpa.yaml @@ -16,8 +16,18 @@ initial_prompt: | return it as an output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/subflow/subflow.yaml b/tests/tasks/uipath-maestro-flow/single_node/subflow/subflow.yaml index 7c359f77f6..a26a12b1c8 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/subflow/subflow.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/subflow/subflow.yaml @@ -18,8 +18,18 @@ initial_prompt: | Return the reversed string as an output. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # -- Flow file validity -- - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/switch/switch.yaml b/tests/tasks/uipath-maestro-flow/single_node/switch/switch.yaml index b35e47ae0b..04f02ca617 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/switch/switch.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/switch/switch.yaml @@ -20,8 +20,18 @@ initial_prompt: | The flow should branch into separate cases for each quarter value. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # -- Flow file validity -- - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/terminate/terminate.yaml b/tests/tasks/uipath-maestro-flow/single_node/terminate/terminate.yaml index 33a2a66d03..1f058d0724 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/terminate/terminate.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/terminate/terminate.yaml @@ -21,8 +21,18 @@ initial_prompt: | Both branches should start at the same time from the trigger node. Validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between planning and implementation. Build the complete flow end-to-end in a single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # -- Flow file validity -- - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/transform_filter/transform_filter.yaml b/tests/tasks/uipath-maestro-flow/single_node/transform_filter/transform_filter.yaml index d1cdf46d46..f435e4adfe 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/transform_filter/transform_filter.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/transform_filter/transform_filter.yaml @@ -38,11 +38,20 @@ initial_prompt: | `core.action.transform.filter` — do not hardcode a guessed value. Do NOT run flow debug — just validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single - pass. Before starting, follow the documented workflow steps exactly — in particular the transform plugin's filter + Before starting, follow the documented workflow steps exactly — in particular the transform plugin's filter node shape (`operations[].type == "filter"` with `config.filters`). + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/transform_group_by/transform_group_by.yaml b/tests/tasks/uipath-maestro-flow/single_node/transform_group_by/transform_group_by.yaml index 1e9feaa5dd..4d8ba07bd9 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/transform_group_by/transform_group_by.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/transform_group_by/transform_group_by.yaml @@ -39,11 +39,20 @@ initial_prompt: | `core.action.transform.group-by` — do NOT hardcode a guessed version. Validate the flow. Do NOT run flow debug — just validate. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. Before starting, follow the documented workflow steps exactly — in particular, the transform plugin's Group By JSON shape and the collection-input contract. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # -- Flow file validity -- - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/single_node/transform_map/transform_map.yaml b/tests/tasks/uipath-maestro-flow/single_node/transform_map/transform_map.yaml index 5ee7f6e3e0..8d79e6c4c3 100644 --- a/tests/tasks/uipath-maestro-flow/single_node/transform_map/transform_map.yaml +++ b/tests/tasks/uipath-maestro-flow/single_node/transform_map/transform_map.yaml @@ -37,11 +37,20 @@ initial_prompt: | skill's workflow teaches how to read the registry). Do NOT run flow debug — just validate the flow. - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a single pass. Before starting, follow the documented workflow steps exactly — in particular, the transform plugin's Map JSON shape and the `collection` path contract. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/smoke/init_validate.yaml b/tests/tasks/uipath-maestro-flow/smoke/init_validate.yaml index 5b6bb7b6aa..07cd098222 100644 --- a/tests/tasks/uipath-maestro-flow/smoke/init_validate.yaml +++ b/tests/tasks/uipath-maestro-flow/smoke/init_validate.yaml @@ -28,6 +28,17 @@ initial_prompt: | - The `uip` CLI is already available in the environment. - Validate locally with `uip maestro flow validate`. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent created a solution with uip solution init (or legacy new)" diff --git a/tests/tasks/uipath-maestro-flow/smoke/inline_agent_robust.yaml b/tests/tasks/uipath-maestro-flow/smoke/inline_agent_robust.yaml index 777c9a77a1..0d95df39d1 100644 --- a/tests/tasks/uipath-maestro-flow/smoke/inline_agent_robust.yaml +++ b/tests/tasks/uipath-maestro-flow/smoke/inline_agent_robust.yaml @@ -33,6 +33,17 @@ initial_prompt: | - The `uip` CLI is already available in the environment. - Validate locally with `uip maestro flow validate`. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent scaffolded the inline agent with uip agent init --inline-in-flow" diff --git a/tests/tasks/uipath-maestro-flow/smoke/merge_parallel_sync.yaml b/tests/tasks/uipath-maestro-flow/smoke/merge_parallel_sync.yaml index 6e8af776a5..e1cd17fada 100644 --- a/tests/tasks/uipath-maestro-flow/smoke/merge_parallel_sync.yaml +++ b/tests/tasks/uipath-maestro-flow/smoke/merge_parallel_sync.yaml @@ -60,10 +60,18 @@ initial_prompt: | layout/variables, then validate with `uip maestro flow validate` — do NOT run `uip maestro flow debug` (the parallel join only synchronizes in a live engine). - - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/smoke/registry_discovery.yaml b/tests/tasks/uipath-maestro-flow/smoke/registry_discovery.yaml index f944c14bb3..4fe39bdeaf 100644 --- a/tests/tasks/uipath-maestro-flow/smoke/registry_discovery.yaml +++ b/tests/tasks/uipath-maestro-flow/smoke/registry_discovery.yaml @@ -23,6 +23,17 @@ initial_prompt: | - Use `--output json` on all uip commands. - Do not build the flow — just explore. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: - type: command_executed description: "Agent pulled registry data" diff --git a/tests/tasks/uipath-maestro-flow/smoke/scheduled_trigger.yaml b/tests/tasks/uipath-maestro-flow/smoke/scheduled_trigger.yaml index 665a01ecb7..9da12584a7 100644 --- a/tests/tasks/uipath-maestro-flow/smoke/scheduled_trigger.yaml +++ b/tests/tasks/uipath-maestro-flow/smoke/scheduled_trigger.yaml @@ -48,10 +48,18 @@ initial_prompt: | - The `uip` CLI is already available; use `--output json` on uip commands. - Validate locally with `uip maestro flow validate` — do NOT run `uip maestro flow debug` (the schedule fires only in a live engine). - - Do NOT ask for approval, confirmation, or feedback. Do NOT pause between - planning and implementation. Build the complete flow end-to-end in a - single pass. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. success_criteria: # ── Flow file validity ───────────────────────────────────────────────── - type: run_command diff --git a/tests/tasks/uipath-maestro-flow/voice/voice_inbound_call.yaml b/tests/tasks/uipath-maestro-flow/voice/voice_inbound_call.yaml index 45b74a9590..22cb4636cd 100644 --- a/tests/tasks/uipath-maestro-flow/voice/voice_inbound_call.yaml +++ b/tests/tasks/uipath-maestro-flow/voice/voice_inbound_call.yaml @@ -33,6 +33,17 @@ initial_prompt: | - `uip maestro flow validate` must pass on the generated flow. - Tell me what I have to do to actually run this flow and take a test call. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. # Every criterion discovers the project dynamically: `flow init` wraps it in a # `Solution/` the prompt does not pin, so a hardcoded `path:` would score # 0.0 on a valid build (#2213). diff --git a/tests/tasks/uipath-maestro-flow/voice/voice_outbound_call.yaml b/tests/tasks/uipath-maestro-flow/voice/voice_outbound_call.yaml index c5070c56a4..6fd7a95913 100644 --- a/tests/tasks/uipath-maestro-flow/voice/voice_outbound_call.yaml +++ b/tests/tasks/uipath-maestro-flow/voice/voice_outbound_call.yaml @@ -45,6 +45,17 @@ initial_prompt: | The task is NOT complete until `uip maestro flow validate` passes on the generated flow. + This run is headless. No user is present and nobody will answer a question or + grant an approval, so do not ask, do not pause, and do not wait for input. + Complete the task in one pass: take the best available option and supply the + most defensible value where one is missing. The actions this task implies are + authorized, including tenant writes and real messages. Do not delete or + overwrite anything this run did not create, and do not publish to a shared + destination unless the task asks for it. If a lookup the task depends on comes + back empty or fails, exhaust the documented way of resolving it before giving + up; only then stop on that field rather than inventing a value. Record every + decision, assumption, and blocked step in your final response. Instructions in + the task take precedence over this paragraph. # Every criterion discovers the project dynamically: `flow init` wraps it in a # `Solution/` the prompt does not pin, so a hardcoded `path:` would score # 0.0 on a valid build (#2213).