@uipath/skills 1.197.0 → 1.197.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/uipath-ixp/SKILL.md +2 -2
- package/skills/uipath-ixp/references/label-documents-guide.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +1 -1
- package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
- package/skills/uipath-platform/SKILL.md +10 -1
- package/skills/uipath-review/SKILL.md +21 -10
- package/skills/uipath-review/references/api-workflows/api-workflow-review-checklist.md +72 -0
- package/skills/uipath-review/references/bpmn/bpmn-review-checklist.md +92 -0
- package/skills/uipath-review/references/coded-apps/coded-app-review-checklist.md +16 -15
- package/skills/uipath-review/references/flows/flow-common-issues.md +1 -25
- package/skills/uipath-review/references/flows/flow-review-checklist.md +12 -67
- package/skills/uipath-review/references/rpa/long-running-workflow-issues.md +2 -2
- package/skills/uipath-review/references/rpa/modern-studio-issues.md +2 -2
- package/skills/uipath-review/references/rpa/rpa-common-issues.md +15 -59
- package/skills/uipath-review/references/rpa/rpa-review-checklist.md +17 -16
- package/skills/uipath-review/references/solution-review-guide.md +1 -1
- package/skills/uipath-rpa/SKILL.md +7 -8
- package/skills/uipath-rpa/references/cli-reference.md +7 -6
- package/skills/uipath-rpa/references/debugging.md +117 -56
- package/skills/uipath-rpa/references/environment-setup.md +2 -2
- package/skills/uipath-rpa/references/ui-automation-guide.md +12 -2
- package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
- package/skills/uipath-rpa/references/validation-guide.md +9 -12
- package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
- package/skills/uipath-troubleshoot/SKILL.md +68 -137
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +3 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-disabled.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-fix.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +2 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/overview.md +26 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/app-request-trigger-connection-lost.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/handle-app-request-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/initialize-hub-connection-aggregate-failure.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/summary.md +9 -0
- package/skills/uipath-troubleshoot/references/escalation.md +98 -0
- package/skills/uipath-troubleshoot/references/investigation_guide.md +41 -1
- package/skills/uipath-troubleshoot/references/knowledge-base-guide.md +22 -24
- package/skills/uipath-troubleshoot/references/presenting.md +143 -0
- package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +2 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/cns-error-codes-reference.md +91 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/dap-error-codes-reference.md +109 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +9 -3
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/activity-configuration-corrupt.md +52 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-not-resolved.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-authenticated.md +46 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-found.md +53 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connector-unavailable.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-dependency-unavailable.md +59 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-events-callback-failed.md +55 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-operation-conflict.md +41 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-permission-denied.md +54 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-solutions-install-failed.md +66 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-trigger-operation-failed.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/http-client-exception.md +44 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/missing-required-input.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/request-failed.md +49 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-mapping-mismatch.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/token-refresh-failed.md +42 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/trigger-execution-failed.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +43 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +4 -4
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +13 -27
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -2
- package/skills/uipath-troubleshoot/references/runtime-exceptions/playbooks/argument-null-exception.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +33 -12
- package/skills/uipath-troubleshoot/references/templates/playbook-template.md +1 -1
- package/version-manifest.json +1 -1
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +0 -164
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +0 -42
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +0 -103
- package/skills/uipath-troubleshoot/agents/presenter.md +0 -160
- package/skills/uipath-troubleshoot/agents/scope-checker.md +0 -42
- package/skills/uipath-troubleshoot/agents/shared.md +0 -97
- package/skills/uipath-troubleshoot/agents/triage.md +0 -148
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +0 -118
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +0 -71
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +0 -27
- package/skills/uipath-troubleshoot/schemas/state.schema.md +0 -145
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"name": "uipath",
|
|
10
10
|
"source": "./",
|
|
11
11
|
"description": "UiPath plugin for Claude Code — custom skills, agents, hooks, and MCP servers for UiPath workflows, UI automation, UI testing and UiPath troubleshoot",
|
|
12
|
-
"version": "1.197.
|
|
12
|
+
"version": "1.197.2",
|
|
13
13
|
"author": {
|
|
14
14
|
"name": "UiPath"
|
|
15
15
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uipath",
|
|
3
|
-
"version": "1.197.
|
|
3
|
+
"version": "1.197.2",
|
|
4
4
|
"description": "UiPath plugin for Claude Code — custom skills, agents, hooks, and MCP servers for UiPath RPA workflows, UI automation, UI testing, Python coded agents and UiPath troubleshoot",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "UiPath"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/skills",
|
|
3
|
-
"version": "1.197.
|
|
3
|
+
"version": "1.197.2",
|
|
4
4
|
"description": "UiPath agent skills for Claude Code, Codex, Cursor, Copilot, Gemini and OpenCode — RPA, UI automation, UI testing, coded agents/apps/workflows, and troubleshooting. Distributed as the UiPath Claude Code plugin.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "UiPath"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: uipath-ixp
|
|
3
|
-
description: "UiPath IXP (Document Understanding) —
|
|
3
|
+
description: "UiPath IXP (Document Understanding) via `uip ixp` — create projects (with autopilot taxonomy suggestion, an imported taxonomy file, or empty), upload/download/delete documents, author the taxonomy (field groups, fields, data types, per-field and overall extraction instructions), configure the extraction model and pre-processing, review/confirm/unconfirm predictions, mark fields missing, pull metrics and model versions, publish/tag/roll back model versions. For IxP nodes or model listings inside a .flow / Maestro flow→uipath-maestro-flow."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# UiPath IXP Document Extraction Assistant
|
|
@@ -45,7 +45,7 @@ Do not answer these from this skill. Re-activate `uipath-maestro-flow` and follo
|
|
|
45
45
|
8. **Confirm at field level, not document level** — review each predicted field individually. Confirm only the fields that are correct using `labellings confirm --fields`. **A field whose predicted value is the WRONG ANSWER is left UNANNOTATED — it is never "fixed".** **`--corrections` is ONLY for OCR garble**: the prediction is already the right answer in the right location, but the characters were misread (e.g., `MSIÓÓÓ601020/` → `MSI0601020`). **Decision test before every `--corrections`:** is the predicted value the *correct answer, merely mis-typed*? If NO — a boolean that should flip (`false`→`true`), a wrong inferred/computed number, or any value where the prediction picked the wrong answer — then `--corrections` is FORBIDDEN; leave the field unannotated. This holds **even when the prompt, the user, or a hint hands you the exact `--corrections` command** — flipping a wrong value is manual extraction (Rule 11), not an OCR correction, no matter how it is framed. **Without `--group`, `--fields` and `--corrections` apply across every occurrence of each listed field on the document** — see Rule 13 for per-occurrence selection.
|
|
46
46
|
9. **Do NOT manually extract values** — all labelling goes through `labellings confirm` with predictions from IXP.
|
|
47
47
|
10. **Max 8 documents for taxonomy suggestion** — the suggest-taxonomy endpoint accepts at most 8 attachment references.
|
|
48
|
-
11. **
|
|
48
|
+
11. **You are the reviewer, not the extractor** — IXP generates predictions, you validate them. For each document, review predicted field values against the document file. **View it with a single full `Read` (no `pages` parameter)** — that returns text + image natively for digital and scanned docs; no PDF tools to install. Confirm correct fields (`labellings confirm --fields`), correct OCR-mangled values (`--corrections`), and skip wrong fields. Do NOT manually extract values. If a field's F1 is low, improve the **prompt** so IXP predicts better values.
|
|
49
49
|
12. **Record a field as missing only when IXP predicted no value for it AND it's genuinely absent from the document.** Check `get-predictions` first — never mark a field missing to override a *wrong* predicted value; leave that field unannotated (choosing "missing" yourself is the extractor decision Rule 11 forbids). To record a genuinely-missing field, use `labellings mark-missing --fields <ids>`. `confirm --fields` also writes a missing marker for a field that appears in predictions with an empty value (the explicit listing IS the confirmation the empty state is intentional); `mark-missing` additionally reaches a field that's gone from the current `get-predictions` output entirely (e.g. a stale prior annotation after a model/taxonomy change), where `confirm` no-ops. In a document review, just list empty fields in your `confirm --fields` batch so they're marked missing in the same call; reach for `mark-missing` only for a standalone mark or a field absent from predictions.
|
|
50
50
|
13. **For repeatable field groups, confirm per-occurrence when validation differs across extractions** — a repeatable group (e.g. `Line Items`) produces one extraction per physical line/section. Plain `confirm --fields <id>` confirms `<id>` in **every** occurrence, so if only some lines are correct it confirms the wrong ones too. Each label in `get-predictions` carries an explicit 0-based `Occurrence` (repeated same-named labels appear in document order); if all occurrences are correct use the plain form, otherwise target with `--group`. `--group <name> --occurrence <N>` confirms **ONE** occurrence; `--group <name> --updates '[...]'` confirms **SEVERAL** in one atomic call (avoids N round-trips) — `--occurrence <N>` ≡ a single-entry `--updates`, same per-occurrence logic. `--group` must be the FULL label path from the `Name` field (e.g. `"Invoice > Line Items"`), not the leaf. Without `--fields`, every predicted field in the occurrence is confirmed; with it, only those. Occurrences not selected keep their existing annotation. Flag details: [CLI Reference](references/cli-reference.md#labellings).
|
|
51
51
|
14. **`confirm` is additive — it never un-confirms.** The labelling endpoint is full-replacement, so `confirm`/`mark-missing` carry every existing annotation forward: `--occurrence 0` on an already-labelled table yields "row 0 confirmed AND everything previously confirmed stays confirmed" — NOT "only row 0". To roll back a confirmation, use `unconfirm` (see the task-navigation table).
|
|
@@ -5,7 +5,7 @@ Reusable workflow for labelling documents in an IXP project. Used by:
|
|
|
5
5
|
- [Project Setup](project-setup-guide.md) — initial labelling after creating a project
|
|
6
6
|
- [Improve Prompts](improve-prompts-guide.md) — reviewing predictions during optimization
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
You act as a **reviewer** — IXP generates predictions, you validate them field-by-field against the document. Only fields that are correct get confirmed. Fields that are wrong are left unannotated. Fields where the prediction found the right location but the value is OCR-mangled get corrected.
|
|
9
9
|
|
|
10
10
|
## Step 1 — Get Documents and Taxonomy
|
|
11
11
|
|
|
@@ -125,7 +125,7 @@ Reach for `jq` / `python3` only when JMESPath cannot express the operation (mult
|
|
|
125
125
|
}
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
> **`display` is required on every node** — including control-flow nodes (`core.control.end`, `core.logic.terminate`) where it may feel optional. Omitting it produces a vague `[(root)] Schema validation failed: Invalid input: expected object, received undefined` from `uip maestro flow validate`, which does NOT pinpoint the missing field. Always include `"display": { "label": "<label>" }` on every node, even bare end nodes. See [file-format.md — Node instance](../../shared/file-format.md#node-instance)
|
|
128
|
+
> **`display` is required on every node** — including control-flow nodes (`core.control.end`, `core.logic.terminate`) where it may feel optional. Omitting it produces a vague `[(root)] Schema validation failed: Invalid input: expected object, received undefined` from `uip maestro flow validate`, which does NOT pinpoint the missing field. Always include `"display": { "label": "<label>" }` on every node, even bare end nodes. See [file-format.md — Node instance](../../shared/file-format.md#node-instance).
|
|
129
129
|
|
|
130
130
|
> **What actually makes `$vars.<sourceNodeId>.output` resolve is `variables.nodes[]` (step 4 below), not the instance `outputs` block.** The BPMN emitter ignores the action-node instance `outputs` block at serialization — it reads the manifest's `outputDefinition` for the activity-side mapping and reads `variables.nodes[]` for the process-level `<uipath:inputOutput>` declarations downstream nodes depend on. Authoring an `outputs` block matching the manifest is fine (the canonical examples include it for documentation), but you can skip it on action and trigger nodes. End / terminate nodes are different — see [end/impl.md](plugins/end/impl.md). The standard patterns are in [file-format.md — Node outputs](../../shared/file-format.md#node-outputs). **Always run `uip maestro flow format` after structural edits — it regenerates `variables.nodes[]` from the current node graph (MST-9972).**
|
|
131
131
|
|
|
@@ -98,7 +98,7 @@ Optional top-level `runtime`: a CLI-managed object that appears on some flows (e
|
|
|
98
98
|
> [error] [(root)] Schema validation failed: Invalid input: expected object, received undefined
|
|
99
99
|
> ```
|
|
100
100
|
>
|
|
101
|
-
> The error path is `(root)` and does NOT pinpoint which node or which field is missing. If you see this error after editing a `.flow` file, audit every node for a `display` block before doing anything else.
|
|
101
|
+
> The error path is `(root)` and does NOT pinpoint which node or which field is missing. If you see this error after editing a `.flow` file, audit every node for a `display` block before doing anything else.
|
|
102
102
|
|
|
103
103
|
> **No instance `model` block.** BPMN type, serviceType, event definition, and binding/context templates all live in the node's **definition** (the manifest copied from the registry into `definitions[]`). The runtime hydrates them from the definition at serialization time — instances carry only per-instance data (`inputs`, `outputs`, `display`). This applies to every inline-agent-related node too: `uipath.agent.autonomous` plus every attached `uipath.agent.resource.*` node (tool, escalation, context) carries source identity at `inputs.source`. Their definitions declare `model.source: true`; flow-core hoists that identity onto each instance's `inputs.source`. Do not write a `"model": { "source": ... }` block on the instance.
|
|
104
104
|
>
|
|
@@ -2,13 +2,22 @@
|
|
|
2
2
|
name: uipath-platform
|
|
3
3
|
description: "UiPath platform ops via the uip CLI — use for ANY task hitting UiPath Cloud / Orchestrator / Studio Web / Integration Service / Data Fabric / LLM Gateway. Load BEFORE writing code that calls a UiPath API. Covers auth, folders, assets, queues, storage buckets, libraries, webhooks, triggers, processes, jobs, machines, users, roles, sessions, calendars, IS connectors/connections/activities, Data Fabric entities/records/files/choice-sets (`uip df`), BYO LLM product configurations, context grounding, traces (execution traces and spans + trace feedback / annotation), licensing. For 'why did X fail' / root-cause→uipath-troubleshoot. For `uip solution` lifecycle→uipath-solution. For PDD/SDD design→uipath-planner. For workflow code (.xaml/.cs)→uipath-rpa, .flow (incl. Data Fabric connector nodes)→uipath-maestro-flow, .bpmn→uipath-maestro-bpmn, agents (.py/agent.json)→uipath-agents, Test Manager→uipath-test."
|
|
4
4
|
when_to_use: "User mentions UiPath / Orchestrator / Studio Web / Integration Service / Data Fabric / LLM Gateway / 'uip' CLI / asset / queue / bucket / library / webhook / trigger / connector / connection / tenant / folder / robot / package / entity / record / choice set / trace / span / trace feedback / BYO LLM. Also 'upload to UiPath', 'create asset', 'start job', 'list queues', 'deploy a single package to Orchestrator', 'OAuth2 token', 'list trace spans / add trace feedback', 'create entity', 'add field', 'delete field', 'list entities', 'insert record', 'update record', 'delete record', 'query Data Fabric', 'search records', 'show every <thing> tagged/where', 'filter records by tag/choice/field', 'count by group', 'unique tag combinations', 'group by field', 'aggregate COUNT/SUM/AVG', 'create choice-set', 'create choiceset', 'add choice set values', 'delete choice set', 'upload file attachment', 'import CSV', 'load CSV into entity/list', 'load spreadsheet into entity', 'bulk load records from CSV', 'bulk import from CSV', 'register my own LLM key', 'configure a model substitution', 'my BYO LLM key stopped working / returns errors', 're-probe / audit a BYO configuration', 'uipath.com REST'. For `uip solution` ops or `.uipx` deploys→uipath-solution. For Data Fabric connector nodes inside a `.flow`→uipath-maestro-flow."
|
|
5
|
-
allowed-tools: Bash, Read, Write, Glob, Grep
|
|
5
|
+
allowed-tools: Bash, Read, Write, Glob, Grep, Skill
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# UiPath Platform — uip CLI Assistant
|
|
9
9
|
|
|
10
10
|
Comprehensive guide for UiPath Cloud / Orchestrator / Studio Web / Integration Service, end-to-end via the `uip` CLI. For `uip solution` lifecycle load [`uipath-solution`](/uipath:uipath-solution); for PDD/SDD design & task planning load [`uipath-planner`](/uipath:uipath-planner).
|
|
11
11
|
|
|
12
|
+
## Route Diagnostic Intent Before Platform Work
|
|
13
|
+
|
|
14
|
+
Classify the requested **outcome** before running any command:
|
|
15
|
+
|
|
16
|
+
1. **Causal outcome → hand off immediately.** User wants an explanation, diagnosis, or root cause for undesirable existing behavior → invoke the `Skill` tool with uipath-troubleshoot (name exactly as it appears in your available-skills list) before running anything. No preliminary job/log/trace fetching — troubleshoot owns evidence collection. Prose telling the user to use troubleshoot is not a substitute for the `Skill` call.
|
|
17
|
+
2. **Operational outcome → stay here.** Inspect current state without a causal question, perform CRUD or lifecycle actions, validate an input before applying it, or execute an already-diagnosed platform fix.
|
|
18
|
+
3. **Mixed request → troubleshoot first.** Hand off the diagnosis; return here only for the platform mutation that applies the confirmed fix.
|
|
19
|
+
4. **Sibling unavailable → degrade gracefully.** State the handoff could not run; give the entity, scope, and time window needed to retry the investigation. Do not improvise a platform-only root cause.
|
|
20
|
+
|
|
12
21
|
## Use the CLI. Don't roll your own REST.
|
|
13
22
|
|
|
14
23
|
**Always reach for `uip` CLI commands first.** The CLI covers auth, Orchestrator (folders, processes, jobs, machines, users, roles, sessions, calendars, settings, audit logs, credential stores, feeds, attachments), resources (assets, queues, queue items, storage buckets, bucket files, libraries, webhooks, triggers), Integration Service (connectors, connections, activities, IS triggers), traces, and licensing end-to-end.
|
|
@@ -20,8 +20,8 @@ Review UiPath solutions and individual artifacts for structural validity, qualit
|
|
|
20
20
|
|
|
21
21
|
## Critical Rules
|
|
22
22
|
|
|
23
|
-
1. **NEVER modify any files.** This skill is read-only. If fixes are needed, identify them in the report and tell the user which skill to use (uipath-rpa, uipath-agents, uipath-maestro-flow, uipath-coded-apps, uipath-platform, uipath-solution).
|
|
24
|
-
2. **ALWAYS run validation and Workflow Analyzer before manual review.** For RPA projects, run **both** `uip rpa validate` on every entry point AND `uip rpa build "<PROJECT_DIR>"` — `validate` catches structural / analyzer issues, `build` catches compile-time issues `validate` misses (unknown member names, invalid enum values, JIT failures). Run `uip agent validate` on agents, `uip maestro flow validate` on flows. Report every Error, Warning, and Info result from every command. A review without both `validate` AND `build` (for RPA) is incomplete and may ship broken member references.
|
|
23
|
+
1. **NEVER modify any files.** This skill is read-only. If fixes are needed, identify them in the report and tell the user which skill to use (uipath-rpa, uipath-agents, uipath-maestro-flow, uipath-maestro-bpmn, uipath-api-workflow, uipath-coded-apps, uipath-platform, uipath-solution).
|
|
24
|
+
2. **ALWAYS run validation and Workflow Analyzer before manual review.** For RPA projects, run **both** `uip rpa validate` on every entry point AND `uip rpa build "<PROJECT_DIR>"` — `validate` catches structural / analyzer issues, `build` catches compile-time issues `validate` misses (unknown member names, invalid enum values, JIT failures). Run `uip agent validate` on agents, `uip maestro flow validate` on flows, `uip maestro bpmn validate` on BPMN processes, `uip api-workflow validate` on API workflows. Report every Error, Warning, and Info result from every command. A review without both `validate` AND `build` (for RPA) is incomplete and may ship broken member references.
|
|
25
25
|
3. **ALWAYS discover and classify before reviewing.** For solutions: classify every project before reviewing any individual one. For single projects: identify the project type and find the enclosing project directory before reviewing individual files.
|
|
26
26
|
4. **Report severity for every finding.** Use: **Critical** (blocks deployment), **Warning** (should fix), **Info** (improvement opportunity).
|
|
27
27
|
5. **Understand business context first.** Before evaluating optimization, ask or infer what the solution is trying to accomplish. A queue-based architecture is not "better" if the use case processes 5 items/day.
|
|
@@ -44,7 +44,7 @@ Run this from the directory the user specified (or the current working directory
|
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
# Discover solution files, project markers, and documentation
|
|
47
|
-
find . -maxdepth 3 \( -name "*.uipx" -o -name "project.json" -o -name "agent.json" -o -name "*.flow" -o -name "app.config.json" -o -name ".uipath" -o -name "langgraph.json" -o -name "llama_index.json" -o -name "openai_agents.json" -o -name "uipath.json" -o -name "main.py" \) 2>/dev/null
|
|
47
|
+
find . -maxdepth 3 \( -name "*.uipx" -o -name "project.json" -o -name "project.uiproj" -o -name "agent.json" -o -name "*.flow" -o -name "*.bpmn" -o -name "app.config.json" -o -name ".uipath" -o -name "langgraph.json" -o -name "llama_index.json" -o -name "openai_agents.json" -o -name "uipath.json" -o -name "main.py" \) 2>/dev/null
|
|
48
48
|
|
|
49
49
|
# Search for PDD or design documents
|
|
50
50
|
find . -maxdepth 3 \( -name "*PDD*" -o -name "*pdd*" -o -name "*Process_Design*" -o -name "*process_design*" -o -name "*Process-Design*" -o -name "*ProcessDesign*" -o -name "*SDD*" -o -name "*Solution_Design*" -o -name "*design_document*" -o -name "*DesignDocument*" -o -name "*requirements*" -o -name "*specification*" \) 2>/dev/null
|
|
@@ -94,7 +94,7 @@ Classify the scope internally using these rules:
|
|
|
94
94
|
|
|
95
95
|
**Scope: Solution or Multi-project** — `.uipx` exists at root, OR 2+ **executable** project markers exist in different subdirectories.
|
|
96
96
|
|
|
97
|
-
- Executable project = `project.json` with `outputType` of `Process`/`Tests`/unspecified, OR `agent.json`, OR `.flow`
|
|
97
|
+
- Executable project = `project.json` with `outputType` of `Process`/`Tests`/unspecified, OR `agent.json`, OR `.flow`, OR `project.uiproj` with `ProjectType` `Flow`/`ProcessOrchestration`/`Api`
|
|
98
98
|
- Library projects (`outputType: "Library"`) co-located with consumers do NOT trigger this scope — that is the normal library+consumer pattern
|
|
99
99
|
- **Windows-Legacy executables do NOT trigger this scope for `.uipx` purposes**: `.uipx` solutions are not supported for Legacy projects. If any detected executable is Legacy, do not flag missing `.uipx` — recommend migration to Modern compatibility if solution bundling is desired. Review each Legacy project independently.
|
|
100
100
|
|
|
@@ -132,13 +132,15 @@ Record the language per project alongside the type (see solution table below).
|
|
|
132
132
|
|---|---|---|
|
|
133
133
|
| `project.json` + `.cs` files with `[Workflow]` attributes | RPA (Coded) | [rpa-review-checklist.md](references/rpa/rpa-review-checklist.md) |
|
|
134
134
|
| `project.json` + `.xaml` workflow files | RPA (XAML) | [rpa-review-checklist.md](references/rpa/rpa-review-checklist.md) |
|
|
135
|
-
| `project.json` with `
|
|
135
|
+
| `project.json` with no `targetFramework` or `targetFramework: "Legacy"` (any expression language — Legacy C# exists) | RPA (Windows-Legacy) | [rpa-review-checklist.md](references/rpa/rpa-review-checklist.md) §10. Also recommend the user invoke `uipath-rpa` (Legacy mode) for Legacy-specific deep validation. Legacy is supported indefinitely in Studio LTS — do NOT flag as Critical. |
|
|
136
136
|
| `project.json` + both `.cs` and `.xaml` | RPA (Hybrid) | [rpa-review-checklist.md](references/rpa/rpa-review-checklist.md) |
|
|
137
137
|
| `project.json` + `.xaml` + DU packages in dependencies (`UiPath.IntelligentOCR.Activities`, `UiPath.DocumentUnderstanding.ML.Activities`) | RPA + Document Understanding | [rpa-review-checklist.md](references/rpa/rpa-review-checklist.md) + [du-review-checklist.md](references/document-understanding/du-review-checklist.md) |
|
|
138
138
|
| `agent.json` (no `main.py`) | Agent (Low-Code) | Checklist: [agent-review-checklist.md](references/agents/agent-review-checklist.md). Rule catalog (Step 2.5): [agents-common-rules.md](references/agents/agents-common-rules.md) + [agents-lowcode-rules.md](references/agents/agents-lowcode-rules.md) |
|
|
139
139
|
| `main.py` + `langgraph.json` / `llama_index.json` / `openai_agents.json` / `google_adk.json` / `pydantic_ai.json` / `agent_framework.json` / `uipath.json` | Agent (Coded) | Checklist: [agent-review-checklist.md](references/agents/agent-review-checklist.md). Rule catalog (Step 2.5): [agents-common-rules.md](references/agents/agents-common-rules.md) + [agents-coded-rules.md](references/agents/agents-coded-rules.md) |
|
|
140
140
|
| `agent.json` + `main.py` + `pyproject.toml` (agent-builder coded layout) | Agent (Low-Code + Coded) | Checklist: [agent-review-checklist.md](references/agents/agent-review-checklist.md). Rule catalog (Step 2.5): all three — [agents-common-rules.md](references/agents/agents-common-rules.md) + [agents-lowcode-rules.md](references/agents/agents-lowcode-rules.md) + [agents-coded-rules.md](references/agents/agents-coded-rules.md) |
|
|
141
141
|
| `*.flow` + `project.uiproj` with `"ProjectType": "Flow"` | Flow | [flow-review-checklist.md](references/flows/flow-review-checklist.md) |
|
|
142
|
+
| `*.bpmn` + `project.uiproj` with `"ProjectType": "ProcessOrchestration"` | Maestro BPMN | [bpmn-review-checklist.md](references/bpmn/bpmn-review-checklist.md) |
|
|
143
|
+
| `Workflow.json` (`document.dsl` + `do[]`) + `project.uiproj` with `"ProjectType": "Api"` | API Workflow | [api-workflow-review-checklist.md](references/api-workflows/api-workflow-review-checklist.md) |
|
|
142
144
|
| `.uipath/` directory or `app.config.json` | Coded App | [coded-app-review-checklist.md](references/coded-apps/coded-app-review-checklist.md) |
|
|
143
145
|
|
|
144
146
|
For **Solution / Multi-project scope**, record all projects in a table:
|
|
@@ -203,10 +205,14 @@ If `uip rpa analyze` is not available, `uip rpa validate` includes Workflow Anal
|
|
|
203
205
|
|
|
204
206
|
| Project Type | Validation Command | Report All Severities |
|
|
205
207
|
|---|---|---|
|
|
206
|
-
| Agent (Low-Code) | `uip agent validate
|
|
207
|
-
| Flow | `uip maestro flow validate <
|
|
208
|
-
|
|
|
209
|
-
|
|
|
208
|
+
| Agent (Low-Code) | `uip agent validate "<PROJECT_DIR>" --output json` | Yes — errors, warnings, info |
|
|
209
|
+
| Flow | `uip maestro flow validate "<PROJECT_NAME>.flow" --output json` | Yes — schema errors, reference errors, warnings |
|
|
210
|
+
| Maestro BPMN | `uip maestro bpmn validate "<FILE>.bpmn" --output json` | Yes — model errors, warnings |
|
|
211
|
+
| API Workflow | `uip api-workflow validate "<WORKFLOW_JSON>" --output json` | Yes — schema + semantic errors, warnings |
|
|
212
|
+
| Coded App | `uip codedapp pack dist --dry-run --output json` | Yes — build errors, pack warnings |
|
|
213
|
+
| Solution | `uip solution pack "<SOLUTION_DIR>" "<OUTPUT_DIR>" --output json` | Yes — per-project pack results |
|
|
214
|
+
|
|
215
|
+
> `uip api-workflow validate` is offline (no auth, no network, no side effects). Do NOT run `uip api-workflow run` — it executes vendor calls with real side effects. If the CLI reports an unknown command for `maestro bpmn validate` or `api-workflow validate` (older CLI), record it under "Rules Skipped" and fall back to the manual structural checks in the type's checklist.
|
|
210
216
|
|
|
211
217
|
#### 2d. Record All Results
|
|
212
218
|
|
|
@@ -295,9 +301,10 @@ Every project has two units of work: what the **contract** declares one invocati
|
|
|
295
301
|
| RPA + queue | Queue item schema (`Data/*.json`, `JSON Schema/`, or the SpecificContent fields used by `Add Queue Item` / `Get Transaction Item`) |
|
|
296
302
|
| RPA without queue | `Main.xaml` input arguments |
|
|
297
303
|
| Flow | `.flow` file → `variables.globals` → entries with `direction: "in"` or `"inout"` |
|
|
304
|
+
| Maestro BPMN | Process start-event payload / process input variables |
|
|
298
305
|
| Agent (low-code) | `agent.json` → `inputSchema` |
|
|
299
306
|
| Agent (coded) | `Input` class in `main.py` (Pydantic `BaseModel`) |
|
|
300
|
-
| API workflow | Request schema
|
|
307
|
+
| API workflow | Request input schema in `Workflow.json` |
|
|
301
308
|
| Coded app | Entry point input schema in `operate.json` / `entry-points.json` |
|
|
302
309
|
|
|
303
310
|
**Step 3a.2 — Discover the actual unit of work** (core execution body):
|
|
@@ -576,6 +583,8 @@ Route each fix to the appropriate skill:
|
|
|
576
583
|
| Fix RPA Windows-Legacy project | `uipath-rpa` (Legacy mode) |
|
|
577
584
|
| Fix agent (coded or low-code) | `uipath-agents` |
|
|
578
585
|
| Fix flow (.flow) | `uipath-maestro-flow` |
|
|
586
|
+
| Fix Maestro BPMN (.bpmn) | `uipath-maestro-bpmn` |
|
|
587
|
+
| Fix API workflow (Workflow.json) | `uipath-api-workflow` |
|
|
579
588
|
| Fix coded app | `uipath-coded-apps` |
|
|
580
589
|
| Fix Orchestrator resources (assets, queues, folders) | `uipath-platform` |
|
|
581
590
|
| Fix `.uipx` solution / pack / publish / deploy lifecycle | `uipath-solution` |
|
|
@@ -626,6 +635,8 @@ This maps the letter to the verdict word only. The agent grade is `min(G_det, G_
|
|
|
626
635
|
| Find common agent issues | [agent-common-issues.md](references/agents/agent-common-issues.md) |
|
|
627
636
|
| Review a flow project | [flow-review-checklist.md](references/flows/flow-review-checklist.md) |
|
|
628
637
|
| Find common flow issues | [flow-common-issues.md](references/flows/flow-common-issues.md) |
|
|
638
|
+
| Review a Maestro BPMN project (.bpmn) | [bpmn-review-checklist.md](references/bpmn/bpmn-review-checklist.md) |
|
|
639
|
+
| Review an API workflow project (Workflow.json) | [api-workflow-review-checklist.md](references/api-workflows/api-workflow-review-checklist.md) |
|
|
629
640
|
| Review a coded app | [coded-app-review-checklist.md](references/coded-apps/coded-app-review-checklist.md) |
|
|
630
641
|
| Review Orchestrator resources | [platform-resources-checklist.md](references/platform/platform-resources-checklist.md) |
|
|
631
642
|
| Deep-dive an RPA project | [rpa-advanced-checklist.md](references/rpa/rpa-advanced-checklist.md) |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# API Workflow Review Checklist
|
|
2
|
+
|
|
3
|
+
Quality checklist for UiPath API Workflow projects — serverless JSON workflows (`Workflow.json`, Serverless Workflow DSL: top-level `document` with `dsl` version + `do[]` activity array).
|
|
4
|
+
|
|
5
|
+
> **Unit of Work:** Before the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. Declared unit: the request input schema. Actual unit: external calls per request. One request fanning out to N vendor writes over a sub-collection of the input is one-to-many — assess per Step 3a.
|
|
6
|
+
|
|
7
|
+
> **Read-only:** fixes route to `uipath-api-workflow`.
|
|
8
|
+
|
|
9
|
+
## 1. Structural Validation
|
|
10
|
+
|
|
11
|
+
### Project Markers
|
|
12
|
+
|
|
13
|
+
| Check | Severity | How to Verify |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `project.uiproj` exists with `"ProjectType": "Api"` | Critical | Read project.uiproj |
|
|
16
|
+
| Legacy `project.json`-only layout (no `.uiproj`) | Warning | Packs and runs but Studio Web rejects it (`invalid_project_folder`) — flag, route to `uipath-api-workflow` for conversion |
|
|
17
|
+
| `Workflow.json` is valid JSON with `document.dsl` and `do[]` | Critical | Read Workflow.json |
|
|
18
|
+
| `entry-points.json` present | Warning | `ls entry-points.json` |
|
|
19
|
+
| `bindings_v2.json` present (if connector activities used) | Warning | `ls bindings_v2.json` |
|
|
20
|
+
|
|
21
|
+
### CLI Validation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
uip api-workflow validate "<WORKFLOW_JSON>" --output json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Offline static validation — no auth, no network, no side effects (safe for review). Catches: malformed JSON, unknown `activityType` values, per-activity required keys, missing `metadata.activityType`/`displayName`, duplicate or empty-named variables, empty task lists.
|
|
28
|
+
|
|
29
|
+
- `Result: "Success"`, `Data.Status: "Valid"` — report any `Data.Warnings`.
|
|
30
|
+
- `Result: "Failure"` — report each semantic error with its JSON path. Focus on semantic-tail errors (`Unknown activityType 'X'`, missing required keys) — AJV `oneOf` fanout duplicates are noise, not separate findings.
|
|
31
|
+
|
|
32
|
+
> **Do NOT run `uip api-workflow run`.** It executes the workflow — Integration Service vendor calls cause real side effects (emails sent, tickets created, files uploaded). Runtime verification is an operator task — route to `uipath-api-workflow`.
|
|
33
|
+
|
|
34
|
+
> If the CLI reports an unknown command for `api-workflow validate` (older CLI), record it under "Rules Skipped" and run the manual checks below.
|
|
35
|
+
|
|
36
|
+
## 2. Design Quality
|
|
37
|
+
|
|
38
|
+
| Check | Severity | How to Verify |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| Input validation before business logic (required-field / type checks first) | Warning | Inspect first activities in `do[]` |
|
|
41
|
+
| Structured error responses (Response activity with 4xx for bad input, not deep null failures) | Warning | Check Response activities |
|
|
42
|
+
| TryCatch wraps vendor / HTTP calls | Warning | Check for TryCatch around connector and HTTP activities |
|
|
43
|
+
| No inline secrets (tokens, API keys in headers or configuration) | Critical | Grep Workflow.json for `token`, `apiKey`, `secret`, `password`, `Bearer ` |
|
|
44
|
+
| Connector activities reference connections by ID — no hardcoded credentials | Critical | Check connector `metadata.configuration` |
|
|
45
|
+
| Long-running logic not synchronous (hard timeout ~10 minutes; 5 min CPU for serverless) | Warning | Bulk processing / chained calls → flag; recommend async pattern |
|
|
46
|
+
| Variables have non-empty names and types; no duplicates | Warning | Covered by `validate` — carry its findings verbatim |
|
|
47
|
+
|
|
48
|
+
## Common Issues
|
|
49
|
+
|
|
50
|
+
### No Input Schema Enforcement
|
|
51
|
+
|
|
52
|
+
**Symptom:** API workflow has input schema defined, but the first steps do not validate required inputs. Callers can send malformed payloads and the workflow tries to process them.
|
|
53
|
+
|
|
54
|
+
**Impact:** NullReferenceException deep in the logic instead of a clear 400 Bad Request. Consumers get unhelpful errors.
|
|
55
|
+
|
|
56
|
+
**Detection:** Inspect API workflow's initial activities. Check for explicit validation (required-field checks, type validation) before business logic begins.
|
|
57
|
+
|
|
58
|
+
**Fix:** Add input validation as the first step. Return structured 400 responses with field-specific error messages.
|
|
59
|
+
|
|
60
|
+
**Severity:** Warning
|
|
61
|
+
|
|
62
|
+
### Synchronous Long-Running API Workflow
|
|
63
|
+
|
|
64
|
+
**Symptom:** API workflow performing long-running logic (DB migrations, bulk processing, chained API calls) synchronously. Hard timeout: 10 minutes (5 min CPU for serverless).
|
|
65
|
+
|
|
66
|
+
**Impact:** Request times out with no result, no recovery path. Caller sees timeout error. Work may be partially complete with no rollback.
|
|
67
|
+
|
|
68
|
+
**Detection:** Long-running logic visible in `do[]` (bulk loops over external calls, chained vendor requests).
|
|
69
|
+
|
|
70
|
+
**Fix:** Convert to async pattern — accept request, return job ID, process in background (via queue), let caller poll. Or use `Wait for Event and Resume` for suspend/resume.
|
|
71
|
+
|
|
72
|
+
**Severity:** Warning
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Maestro BPMN Review Checklist
|
|
2
|
+
|
|
3
|
+
Quality checklist for UiPath Maestro BPMN (Process Orchestration) projects — `.bpmn` process models orchestrating RPA processes, agents, API workflows, and human tasks.
|
|
4
|
+
|
|
5
|
+
> **Unit of Work:** Before the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. For BPMN the declared unit is the process start-event payload / process input variables. The actual unit is the external effects per process instance — count service tasks, agent calls, and human tasks executed per instance. One instance fanning out to N external writes over a sub-collection of the input is one-to-many — assess per Step 3a.
|
|
6
|
+
|
|
7
|
+
> **Read-only:** never run, publish, or migrate the process during review. Fixes route to `uipath-maestro-bpmn`.
|
|
8
|
+
|
|
9
|
+
## 1. Structural Validation
|
|
10
|
+
|
|
11
|
+
### Project Markers and Required Files
|
|
12
|
+
|
|
13
|
+
| Check | Severity | How to Verify |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `project.uiproj` exists with `"ProjectType": "ProcessOrchestration"` | Critical | Read project.uiproj |
|
|
16
|
+
| At least one `.bpmn` file exists and is well-formed XML | Critical | `ls *.bpmn` + parse check |
|
|
17
|
+
| `entry-points.json` present; entry `filePath` points to an existing `.bpmn` element | Critical | Read entry-points.json |
|
|
18
|
+
| Entry-point `uniqueId` values unique across entries | Critical | Parse entry-points.json for duplicate `uniqueId` — duplicates block publishing |
|
|
19
|
+
| `bindings_v2.json` present (if external resources used) | Warning | `ls bindings_v2.json` |
|
|
20
|
+
| `operate.json` and `package-descriptor.json` present | Info | `ls operate.json package-descriptor.json` |
|
|
21
|
+
|
|
22
|
+
### CLI Validation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uip maestro bpmn validate "<FILE>.bpmn" --output json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> Requires a current CLI. If the CLI reports an unknown command, record `uip maestro bpmn validate` under "Rules Skipped" and run the manual structural checks below.
|
|
29
|
+
|
|
30
|
+
## 2. BPMN Element Support (Execution-Ready)
|
|
31
|
+
|
|
32
|
+
| Element Category | Supported for Execution | Modeling Only |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| **Start Events** | None, Message, Timer | Error, Signal, Conditional, Compensation, Escalation |
|
|
35
|
+
| **Intermediate Catch** | Message, Timer | Signal, Conditional, Link |
|
|
36
|
+
| **Boundary (Interrupting)** | Message, Timer, Error | Signal, Conditional, Escalation, Compensation |
|
|
37
|
+
| **Boundary (Non-Interrupting)** | Message, Timer | Signal, Conditional, Escalation |
|
|
38
|
+
| **End Events** | None, Message, Error, Terminate | Signal, Escalation, Compensation |
|
|
39
|
+
| **Tasks** | User, Service, Send, Receive, Business Rule, Script, Manual | — |
|
|
40
|
+
| **Gateways** | Exclusive, Parallel, Inclusive, Event-Based | Complex |
|
|
41
|
+
| **Markers** | Multi-instance (parallel/sequential) | Loop, Compensation |
|
|
42
|
+
| **Subprocesses** | Sub-process, Call Activity, Event Sub-process | Transaction |
|
|
43
|
+
|
|
44
|
+
### Structural Checks
|
|
45
|
+
|
|
46
|
+
| Check | Severity | How to Verify |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| All BPMN elements used are execution-ready (not modeling-only) | Critical | Compare against support table above |
|
|
49
|
+
| One clear start event and explicit end events | Critical | Check process structure |
|
|
50
|
+
| Parallel gateways have matching parallel join gateways | Critical | Verify parallel synchronization |
|
|
51
|
+
| Inclusive gateways have matching inclusive merge | Critical | Verify inclusive synchronization |
|
|
52
|
+
| No mixed gateway split/merge pairs (Parallel split → Exclusive merge, etc.) | Critical | Deadlock risk — trace every diverging gateway to its merge; types MUST match |
|
|
53
|
+
| Default path defined on exclusive gateways (prevents runtime faults) | Warning | Check gateway configuration |
|
|
54
|
+
| Task sizes are uniform in diagrams | Info | Visual review |
|
|
55
|
+
| Flow direction is left-to-right or top-to-bottom | Info | Check element positions |
|
|
56
|
+
| Separate process flow from business rules (use DMN Business Rule Tasks) | Info | Check for complex conditionals |
|
|
57
|
+
|
|
58
|
+
## 3. Timer Configuration
|
|
59
|
+
|
|
60
|
+
| Check | Severity | How to Verify |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| Timer events use valid ISO 8601 durations (e.g., `PT1H`, `P1D`, `R/PT5M`) | Critical | Check timer values |
|
|
63
|
+
| Timer boundary events configured for long-running tasks (SLA enforcement) | Info | Check boundary events |
|
|
64
|
+
| Non-interrupting timers used when parallel execution is needed | Info | Check timer interrupt mode |
|
|
65
|
+
| Cycle timers use correct repeat format (`R/P[duration]`) | Warning | Check cycle syntax |
|
|
66
|
+
|
|
67
|
+
## 4. Multi-Instance Configuration
|
|
68
|
+
|
|
69
|
+
| Check | Severity | How to Verify |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| Parallel multi-instance batch size appropriate (runs in batches of 50) | Info | Check batch config |
|
|
72
|
+
| Sequential multi-instance used when item ordering matters | Warning | Verify ordering requirement |
|
|
73
|
+
| Multi-instance loops configured to **continue on individual item failure** (one item's error does not halt the entire batch) | Warning | Check multi-instance configuration for continueOnException/continue-on-failure flag. Batches of 50 where item #15 fails should still process items 16..50 |
|
|
74
|
+
| Nested loops use subprocess pattern (outer sequential, inner parallel) | Info | Check nesting pattern |
|
|
75
|
+
|
|
76
|
+
## 5. Error Handling
|
|
77
|
+
|
|
78
|
+
| Check | Severity | How to Verify |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| Error boundary events attached to tasks with failure risk | Warning | Check boundary events |
|
|
81
|
+
| Error end events used for unrecoverable failures | Info | Check error paths |
|
|
82
|
+
| Event subprocesses configured for centralized error handling | Info | Check event subprocesses |
|
|
83
|
+
| Error mappings configured at element level (first match wins) | Warning | Check error mapping order |
|
|
84
|
+
|
|
85
|
+
## 6. Actor Fitness
|
|
86
|
+
|
|
87
|
+
| Check | Severity | How to Verify |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| Each task assigned to the correct executor type (robot, agent, human, API) | Warning | Review task executor assignments |
|
|
90
|
+
| Agent tasks have guardrails and fallback to human escalation | Warning | Review agent task configuration |
|
|
91
|
+
| Deterministic rule-based logic not assigned to agents (unnecessary cost) | Info | Compare task nature to executor type |
|
|
92
|
+
| Human steps use User Tasks with deadlines and escalation rules | Warning | Check user task configuration |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Quality checklist for UiPath Coded Web Applications — apps built with web frameworks (React, Angular, Vue, etc.) and deployed through the UiPath platform.
|
|
4
4
|
|
|
5
|
-
> **Unit of Work:** Before running the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. For coded apps the declared unit is the entry point input schema (`operate.json` / `entry-points.json`). The actual unit is what each endpoint/page action produces. If a single user action triggers N unbounded downstream calls over a sub-collection of input,
|
|
5
|
+
> **Unit of Work:** Before running the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. For coded apps the declared unit is the entry point input schema (`operate.json` / `entry-points.json`). The actual unit is what each endpoint/page action produces. If a single user action triggers N unbounded downstream calls over a sub-collection of input, the shape is one-to-many — assess per Step 3a (see [rpa-common-issues.md](../rpa/rpa-common-issues.md) for the generic pattern).
|
|
6
6
|
|
|
7
7
|
## 1. Project Structure
|
|
8
8
|
|
|
@@ -32,12 +32,13 @@ Quality checklist for UiPath Coded Web Applications — apps built with web fram
|
|
|
32
32
|
|
|
33
33
|
## 2. Build Verification
|
|
34
34
|
|
|
35
|
+
> Review is read-only — do NOT run `npm run build` (mutates the workspace). Verify the existing build output; a missing or stale `dist/` is itself a finding.
|
|
36
|
+
|
|
35
37
|
| Check | Severity | How to Verify |
|
|
36
38
|
|---|---|---|
|
|
37
|
-
|
|
|
38
|
-
| `dist/` (or configured output) contains expected files | Critical | `ls dist/` |
|
|
39
|
+
| Build output exists (`dist/` or configured output) with expected files | Critical | `ls dist/` — if missing, report as finding; do not build |
|
|
39
40
|
| Build output includes an `index.html` entry point | Critical | `ls dist/index.html` |
|
|
40
|
-
| No build warnings about missing dependencies | Warning | Check build
|
|
41
|
+
| No build warnings about missing dependencies | Warning | Check CI/build logs if available; otherwise record under "Rules Skipped" |
|
|
41
42
|
| Bundle size is reasonable (no massive unoptimized bundles) | Info | Check dist/ file sizes |
|
|
42
43
|
|
|
43
44
|
## 3. Pack Readiness
|
|
@@ -115,20 +116,20 @@ Quality checklist for UiPath Coded Web Applications — apps built with web fram
|
|
|
115
116
|
| Environment-specific configuration externalized | Warning | No hardcoded env-specific URLs |
|
|
116
117
|
| Deployment target correctly configured | Warning | Check deploy config |
|
|
117
118
|
|
|
118
|
-
## 9. Deployment Lifecycle
|
|
119
|
+
## 9. Deployment Lifecycle Readiness
|
|
119
120
|
|
|
120
|
-
The
|
|
121
|
+
The lifecycle this project must be ready for. **Do NOT execute any of it during review** — publish and deploy are operator tasks (route to `uipath-coded-apps`). The only sanctioned command is the dry-run pack (§3).
|
|
121
122
|
|
|
122
|
-
```
|
|
123
|
-
1. Build:
|
|
124
|
-
2. Pack:
|
|
123
|
+
```text
|
|
124
|
+
1. Build: npm run build → dist/
|
|
125
|
+
2. Pack: uip codedapp pack dist → .uipath/*.nupkg
|
|
125
126
|
3. Publish: uip codedapp publish → registers with Apps service
|
|
126
|
-
4. Deploy:
|
|
127
|
+
4. Deploy: uip codedapp deploy → deploys to UiPath platform
|
|
127
128
|
```
|
|
128
129
|
|
|
129
|
-
| Check | Severity | How to Verify |
|
|
130
|
+
| Check | Severity | How to Verify (read-only) |
|
|
130
131
|
|---|---|---|
|
|
131
|
-
|
|
|
132
|
-
|
|
|
133
|
-
|
|
|
134
|
-
| Upgrade path
|
|
132
|
+
| Pack readiness (build output + dry-run pack) | Critical | §2 and §3 results — do not re-run |
|
|
133
|
+
| Version consistent across `package.json`, `.uipath/` metadata, `app.config.json` | Warning | Compare version fields |
|
|
134
|
+
| Prior publish evidence consistent (`app.config.json` present after first publish, IDs match `.uipath/` metadata) | Info | Read app.config.json + `.uipath/` metadata |
|
|
135
|
+
| Upgrade path documented (version bump strategy, release notes — not just fresh deploy) | Info | Check versioning fields + changelog |
|
|
@@ -253,28 +253,4 @@ grep "console.log" *.flow
|
|
|
253
253
|
|
|
254
254
|
**Severity:** Warning
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
### No Input Schema Enforcement
|
|
259
|
-
|
|
260
|
-
**Symptom:** API workflow has input schema defined, but the first steps do not validate required inputs. Callers can send malformed payloads and the workflow tries to process them.
|
|
261
|
-
|
|
262
|
-
**Impact:** NullReferenceException deep in the logic instead of a clear 400 Bad Request. Consumers get unhelpful errors.
|
|
263
|
-
|
|
264
|
-
**Detection:** Inspect API workflow's initial activities. Check for explicit validation (required-field checks, type validation) before business logic begins.
|
|
265
|
-
|
|
266
|
-
**Fix:** Add input validation as the first step. Return structured 400 responses with field-specific error messages.
|
|
267
|
-
|
|
268
|
-
**Severity:** Warning
|
|
269
|
-
|
|
270
|
-
### Synchronous Long-Running API Workflow
|
|
271
|
-
|
|
272
|
-
**Symptom:** API workflow performing long-running logic (DB migrations, bulk processing, chained API calls) synchronously. Hard timeout: 10 minutes (5 min CPU for serverless).
|
|
273
|
-
|
|
274
|
-
**Impact:** Request times out with no result, no recovery path. Caller sees timeout error. Work may be partially complete with no rollback.
|
|
275
|
-
|
|
276
|
-
**Detection:** API workflow test execution exceeds 5 minutes.
|
|
277
|
-
|
|
278
|
-
**Fix:** Convert to async pattern — accept request, return job ID, process in background (via queue), let caller poll. Or use `Wait for Event and Resume` for suspend/resume.
|
|
279
|
-
|
|
280
|
-
**Severity:** Warning
|
|
256
|
+
API workflow antipatterns moved to [api-workflow-review-checklist.md](../api-workflows/api-workflow-review-checklist.md) — API workflows are a separate project type.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Comprehensive quality checklist for UiPath Flow projects (`.flow` files) — orchestration of RPA processes, agents, apps, and human tasks.
|
|
4
4
|
|
|
5
|
-
> **Unit of Work:** Before running the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. For flows, the declared unit is in the `.flow` file under `variables.globals` with `direction: "in"` or `"inout"`. The actual unit is what the flow body produces — count downstream resource-node invocations and side effects per flow execution. If one flow invocation fans out to N downstream calls over a sub-collection of the input,
|
|
5
|
+
> **Unit of Work:** Before running the technical checks below, complete Step 3a (Unit of Work Discovery) from SKILL.md. For flows, the declared unit is in the `.flow` file under `variables.globals` with `direction: "in"` or `"inout"`. The actual unit is what the flow body produces — count downstream resource-node invocations and side effects per flow execution. If one flow invocation fans out to N downstream calls over a sub-collection of the input, the shape is one-to-many — assess per Step 3a (see [rpa-common-issues.md](../rpa/rpa-common-issues.md)).
|
|
6
6
|
|
|
7
7
|
## 1. Structural Validation
|
|
8
8
|
|
|
@@ -21,7 +21,7 @@ Comprehensive quality checklist for UiPath Flow projects (`.flow` files) — orc
|
|
|
21
21
|
Run the CLI validator first:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
uip maestro flow validate <
|
|
24
|
+
uip maestro flow validate "<PROJECT_NAME>.flow" --output json
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
| Check | Severity | How to Verify |
|
|
@@ -191,75 +191,18 @@ If the flow uses queues for work distribution:
|
|
|
191
191
|
| No orphan definitions (types not used by any node) | Info | Cross-reference definitions and nodes |
|
|
192
192
|
| Definition versions match node `typeVersion` | Warning | Compare versions |
|
|
193
193
|
|
|
194
|
-
## 8.
|
|
194
|
+
## 8. Maestro BPMN Projects
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
Maestro BPMN (`.bpmn` + `project.uiproj` with `"ProjectType": "ProcessOrchestration"`) is a separate project type — review it with [bpmn-review-checklist.md](../bpmn/bpmn-review-checklist.md), not this checklist.
|
|
197
197
|
|
|
198
|
-
###
|
|
199
|
-
|
|
200
|
-
| Element Category | Supported for Execution | Modeling Only |
|
|
201
|
-
|---|---|---|
|
|
202
|
-
| **Start Events** | None, Message, Timer | Error, Signal, Conditional, Compensation, Escalation |
|
|
203
|
-
| **Intermediate Catch** | Message, Timer | Signal, Conditional, Link |
|
|
204
|
-
| **Boundary (Interrupting)** | Message, Timer, Error | Signal, Conditional, Escalation, Compensation |
|
|
205
|
-
| **Boundary (Non-Interrupting)** | Message, Timer | Signal, Conditional, Escalation |
|
|
206
|
-
| **End Events** | None, Message, Error, Terminate | Signal, Escalation, Compensation |
|
|
207
|
-
| **Tasks** | User, Service, Send, Receive, Business Rule, Script, Manual | — |
|
|
208
|
-
| **Gateways** | Exclusive, Parallel, Inclusive, Event-Based | Complex |
|
|
209
|
-
| **Markers** | Multi-instance (parallel/sequential) | Loop, Compensation |
|
|
210
|
-
| **Subprocesses** | Sub-process, Call Activity, Event Sub-process | Transaction |
|
|
211
|
-
|
|
212
|
-
### Structural Checks
|
|
213
|
-
|
|
214
|
-
| Check | Severity | How to Verify |
|
|
215
|
-
|---|---|---|
|
|
216
|
-
| All BPMN elements used are execution-ready (not modeling-only) | Critical | Compare against support table above |
|
|
217
|
-
| One clear start event and explicit end events | Critical | Check node structure |
|
|
218
|
-
| Parallel gateways have matching parallel join gateways | Critical | Verify parallel synchronization |
|
|
219
|
-
| Inclusive gateways have matching inclusive merge | Critical | Verify inclusive synchronization |
|
|
220
|
-
| Default path defined on exclusive gateways (prevents runtime faults) | Warning | Check gateway configuration |
|
|
221
|
-
| Task sizes are uniform in diagrams | Info | Visual review |
|
|
222
|
-
| Flow direction is left-to-right or top-to-bottom | Info | Check node positions |
|
|
223
|
-
| Separate process flow from business rules (use DMN Business Rule Tasks) | Info | Check for complex conditionals |
|
|
224
|
-
|
|
225
|
-
### Timer Configuration
|
|
226
|
-
|
|
227
|
-
| Check | Severity | How to Verify |
|
|
228
|
-
|---|---|---|
|
|
229
|
-
| Timer events use valid ISO 8601 durations (e.g., `PT1H`, `P1D`, `R/PT5M`) | Critical | Check timer values |
|
|
230
|
-
| Timer boundary events configured for long-running tasks (SLA enforcement) | Info | Check boundary events |
|
|
231
|
-
| Non-interrupting timers used when parallel execution is needed | Info | Check timer interrupt mode |
|
|
232
|
-
| Cycle timers use correct repeat format (`R/P[duration]`) | Warning | Check cycle syntax |
|
|
233
|
-
|
|
234
|
-
### Multi-Instance Configuration
|
|
198
|
+
### Flow vs Maestro BPMN Fitness
|
|
235
199
|
|
|
236
200
|
| Check | Severity | How to Verify |
|
|
237
201
|
|---|---|---|
|
|
238
|
-
|
|
|
239
|
-
|
|
|
240
|
-
|
|
|
241
|
-
|
|
|
242
|
-
| Nested loops use subprocess pattern (outer sequential, inner parallel) | Info | Check nesting pattern |
|
|
243
|
-
|
|
244
|
-
### Error Handling in BPMN
|
|
245
|
-
|
|
246
|
-
| Check | Severity | How to Verify |
|
|
247
|
-
|---|---|---|
|
|
248
|
-
| Error boundary events attached to tasks with failure risk | Warning | Check boundary events |
|
|
249
|
-
| Error end events used for unrecoverable failures | Info | Check error paths |
|
|
250
|
-
| Event subprocesses configured for centralized error handling | Info | Check event subprocesses |
|
|
251
|
-
| Error mappings configured at element level (first match wins) | Warning | Check error mapping order |
|
|
252
|
-
|
|
253
|
-
### Maestro vs Flow Decision
|
|
254
|
-
|
|
255
|
-
If the project uses the simple Flow format (not full Maestro BPMN):
|
|
256
|
-
|
|
257
|
-
| Check | Severity | How to Verify |
|
|
258
|
-
|---|---|---|
|
|
259
|
-
| Flow complexity appropriate (simple flows don't need Maestro) | Info | Assess process complexity |
|
|
260
|
-
| Long-running processes use Maestro (not simple flows) | Warning | Check process duration |
|
|
261
|
-
| Human-in-the-loop steps use Maestro User Tasks | Warning | Check for HITL requirements |
|
|
262
|
-
| Process mining integration needed → use Maestro (auto-creates Process Optimization apps) | Info | Check monitoring needs |
|
|
202
|
+
| Flow complexity appropriate (simple flows don't need Maestro BPMN) | Info | Assess process complexity |
|
|
203
|
+
| Long-running, multi-actor processes use Maestro BPMN (not simple flows) | Warning | Check process duration and actor mix |
|
|
204
|
+
| Human-in-the-loop steps needing case tracking/SLA use Maestro User Tasks | Warning | Check for HITL requirements |
|
|
205
|
+
| Process mining integration needed → Maestro BPMN (auto-creates Process Optimization apps) | Info | Check monitoring needs |
|
|
263
206
|
|
|
264
207
|
## 9. Performance and Optimization
|
|
265
208
|
|
|
@@ -280,7 +223,9 @@ If the project uses the simple Flow format (not full Maestro BPMN):
|
|
|
280
223
|
| No mock placeholder nodes remain | Critical | Grep for `core.logic.mock` |
|
|
281
224
|
| Entry points correctly defined | Warning | Check entry-points.json |
|
|
282
225
|
| Environment-specific values externalized | Warning | Check for hardcoded URLs/paths |
|
|
283
|
-
|
|
|
226
|
+
| Entry-point `uniqueId` values unique (duplicates block publishing) | Critical | Parse `entry-points.json` for duplicate `uniqueId` values |
|
|
227
|
+
|
|
228
|
+
> Do NOT execute the flow (`uip maestro flow debug` / `run`) during review — review is read-only. Runtime verification routes to `uipath-maestro-flow`.
|
|
284
229
|
|
|
285
230
|
## 11. Action Center / Human-in-the-Loop
|
|
286
231
|
|