@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.
Files changed (100) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/package.json +1 -1
  4. package/skills/uipath-ixp/SKILL.md +2 -2
  5. package/skills/uipath-ixp/references/label-documents-guide.md +1 -1
  6. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +1 -1
  7. package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
  8. package/skills/uipath-platform/SKILL.md +10 -1
  9. package/skills/uipath-review/SKILL.md +21 -10
  10. package/skills/uipath-review/references/api-workflows/api-workflow-review-checklist.md +72 -0
  11. package/skills/uipath-review/references/bpmn/bpmn-review-checklist.md +92 -0
  12. package/skills/uipath-review/references/coded-apps/coded-app-review-checklist.md +16 -15
  13. package/skills/uipath-review/references/flows/flow-common-issues.md +1 -25
  14. package/skills/uipath-review/references/flows/flow-review-checklist.md +12 -67
  15. package/skills/uipath-review/references/rpa/long-running-workflow-issues.md +2 -2
  16. package/skills/uipath-review/references/rpa/modern-studio-issues.md +2 -2
  17. package/skills/uipath-review/references/rpa/rpa-common-issues.md +15 -59
  18. package/skills/uipath-review/references/rpa/rpa-review-checklist.md +17 -16
  19. package/skills/uipath-review/references/solution-review-guide.md +1 -1
  20. package/skills/uipath-rpa/SKILL.md +7 -8
  21. package/skills/uipath-rpa/references/cli-reference.md +7 -6
  22. package/skills/uipath-rpa/references/debugging.md +117 -56
  23. package/skills/uipath-rpa/references/environment-setup.md +2 -2
  24. package/skills/uipath-rpa/references/ui-automation-guide.md +12 -2
  25. package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
  26. package/skills/uipath-rpa/references/validation-guide.md +9 -12
  27. package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
  28. package/skills/uipath-troubleshoot/SKILL.md +68 -137
  29. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +1 -1
  30. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +1 -1
  31. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +1 -1
  32. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +2 -1
  33. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +1 -1
  34. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +1 -1
  35. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +1 -1
  36. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +2 -1
  37. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -1
  38. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +3 -1
  39. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +1 -0
  40. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +1 -1
  41. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +2 -2
  42. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
  43. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +2 -2
  44. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +2 -2
  45. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-disabled.md +3 -3
  46. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-fix.md +3 -3
  47. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +1 -1
  48. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +2 -0
  49. package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/overview.md +26 -0
  50. package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/app-request-trigger-connection-lost.md +40 -0
  51. package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/handle-app-request-null-reference.md +34 -0
  52. package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/initialize-hub-connection-aggregate-failure.md +40 -0
  53. package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/summary.md +9 -0
  54. package/skills/uipath-troubleshoot/references/escalation.md +98 -0
  55. package/skills/uipath-troubleshoot/references/investigation_guide.md +41 -1
  56. package/skills/uipath-troubleshoot/references/knowledge-base-guide.md +22 -24
  57. package/skills/uipath-troubleshoot/references/presenting.md +143 -0
  58. package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +2 -0
  59. package/skills/uipath-troubleshoot/references/products/integration-service/cns-error-codes-reference.md +91 -0
  60. package/skills/uipath-troubleshoot/references/products/integration-service/dap-error-codes-reference.md +109 -0
  61. package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +9 -3
  62. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/activity-configuration-corrupt.md +52 -0
  63. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +2 -2
  64. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-not-resolved.md +47 -0
  65. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +2 -2
  66. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-authenticated.md +46 -0
  67. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-found.md +53 -0
  68. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connector-unavailable.md +48 -0
  69. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-dependency-unavailable.md +59 -0
  70. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-events-callback-failed.md +55 -0
  71. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-operation-conflict.md +41 -0
  72. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-permission-denied.md +54 -0
  73. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-solutions-install-failed.md +66 -0
  74. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-trigger-operation-failed.md +48 -0
  75. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/http-client-exception.md +44 -0
  76. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/missing-required-input.md +38 -0
  77. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/request-failed.md +49 -0
  78. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-mapping-mismatch.md +43 -0
  79. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/token-refresh-failed.md +42 -0
  80. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/trigger-execution-failed.md +47 -0
  81. package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +43 -0
  82. package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +4 -4
  83. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
  84. package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +13 -27
  85. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -2
  86. package/skills/uipath-troubleshoot/references/runtime-exceptions/playbooks/argument-null-exception.md +1 -1
  87. package/skills/uipath-troubleshoot/references/summary.md +33 -12
  88. package/skills/uipath-troubleshoot/references/templates/playbook-template.md +1 -1
  89. package/version-manifest.json +1 -1
  90. package/skills/uipath-troubleshoot/agents/depth-verifier.md +0 -164
  91. package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +0 -42
  92. package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +0 -103
  93. package/skills/uipath-troubleshoot/agents/presenter.md +0 -160
  94. package/skills/uipath-troubleshoot/agents/scope-checker.md +0 -42
  95. package/skills/uipath-troubleshoot/agents/shared.md +0 -97
  96. package/skills/uipath-troubleshoot/agents/triage.md +0 -148
  97. package/skills/uipath-troubleshoot/schemas/evidence.schema.md +0 -118
  98. package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +0 -71
  99. package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +0 -27
  100. 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.0",
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.0",
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.0",
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) — review IXP predictions with Claude, confirm valid fields, improve prompts, publish models."
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. **Claude is the reviewer, not the extractor** — IXP generates predictions, Claude validates 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.
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
- Claude acts as a **reviewer** — IXP generates predictions, Claude validates 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.
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) and [MST-9368](https://uipath.atlassian.net/browse/MST-9368) for the validator-error-clarity follow-up.
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. (Improving the validator's path specificity is tracked in [MST-9368](https://uipath.atlassian.net/browse/MST-9368).)
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 `expressionLanguage: "VisualBasic"` and no/Legacy `targetFramework` | 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. |
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 ./path --output json` | Yes — errors, warnings, info |
207
- | Flow | `uip maestro flow validate <ProjectName>.flow --output json` | Yes — schema errors, reference errors, warnings |
208
- | Coded App | `uip codedapp pack dist --dry-run` | Yes — build errors, pack warnings |
209
- | Solution | `uip solution pack <SolutionDir> <OutputDir> --output json` | Yes — per-project pack results |
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 defined in the workflow |
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, that is a Granularity Mismatch (see [rpa-common-issues.md](../rpa/rpa-common-issues.md) for the generic pattern).
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
- | `npm run build` completes successfully | Critical | Run build command |
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 output |
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 Verification
119
+ ## 9. Deployment Lifecycle Readiness
119
120
 
120
- The complete deployment lifecycle:
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: npm run build → dist/
124
- 2. Pack: uip codedapp pack dist → .uipath/*.nupkg
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: uip codedapp deploy → deploys to UiPath platform
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
- | Full lifecycle completes without errors | Critical | Run each step |
132
- | Published version matches expected version | Warning | Check version after publish |
133
- | App accessible after deployment | Critical | Verify app URL |
134
- | Upgrade path works (not just fresh deploy) | Info | Test upgrade scenario |
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
- ## API Workflow Antipatterns (Studio Web)
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, that is a Granularity Mismatch (see [rpa-common-issues.md](../rpa/rpa-common-issues.md)).
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 <ProjectName>.flow --output json
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. BPMN / Maestro Compliance (If Using Maestro)
194
+ ## 8. Maestro BPMN Projects
195
195
 
196
- For flows that target UiPath Maestro execution:
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
- ### BPMN Element Support (Execution-Ready)
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
- | Parallel multi-instance batch size appropriate (runs in batches of 50) | Info | Check batch config |
239
- | Sequential multi-instance used when item ordering matters | Warning | Verify ordering requirement |
240
- | 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 |
241
- | Entry-points UUIDs are unique (no duplicates across entries in `entry-points.json`) | Critical | Parse `entry-points.json`, check for duplicate `uniqueId` values. Duplicates block publishing |
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
- | Debug flow succeeds end-to-end | Warning | `uip maestro flow debug <project-dir>` |
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