@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
@@ -20,7 +20,7 @@ Antipatterns specific to UiPath Orchestration Processes (long-running workflows
20
20
 
21
21
  **Symptom:** `Delay` or `Retry Scope` activities placed directly in Main.xaml of an Orchestration Process, NOT wrapped in a `No Persist Scope`.
22
22
 
23
- **Impact:** `Delay` causes the workflow to suspend but Orchestrator cannot resume it (no persistence bookmark). `Retry Scope` behaves unpredictably — the workflow suspends instead of retrying, requiring manual resumption per attempt. Long-standing bug (~5 years).
23
+ **Impact:** `Delay` causes the workflow to suspend but Orchestrator cannot resume it (no persistence bookmark). `Retry Scope` behaves unpredictably — the workflow suspends instead of retrying, requiring manual resumption per attempt. Long-standing platform behavior.
24
24
 
25
25
  **Detection:** If `project.json` has `"projectType": "Orchestration"`, grep Main.xaml for `RetryScope` or `Delay` that are not inside a `NoPersistScope`.
26
26
 
@@ -46,7 +46,7 @@ Antipatterns specific to UiPath Orchestration Processes (long-running workflows
46
46
 
47
47
  **Impact:** Runtime crash during suspend: the workflow state cannot be serialized to storage.
48
48
 
49
- **Detection:** Run Workflow Analyzer rules `ST-DBP-025` (variables) and `ST-DBP-028` (arguments). For coded workflows, check variables in scope of `WaitFor*` calls for serializable types. Serializable-safe types: Text, Boolean, Number, Array of primitives, DateTime, DataTable loaded via Read Range (not `new DataTable()`), GenericValue.
49
+ **Detection:** Run Workflow Analyzer rules `ST-DBP-025` (variables) and `ST-DBP-028` (arguments). For coded workflows, check variables in scope of `WaitFor*` calls for serializable types. Serializable-safe types: Text, Boolean, Number, Array of primitives, DateTime, named DataTable (`TableName` set Read Range sets it automatically; a bare `new DataTable()` without a name fails serialization), GenericValue.
50
50
 
51
51
  **Fix:** Replace non-serializable types with serializable alternatives or marshal data to strings/JSON before suspend. Close browser/file handles before suspend; re-open after resume.
52
52
 
@@ -18,7 +18,7 @@ Antipatterns specific to UiPath Studio 2024.10+ (Modern design experience, coded
18
18
 
19
19
  **Symptom:** Project contains more than one `Single Excel Process Scope` activity across its workflows.
20
20
 
21
- **Impact:** COM object error at runtime. This activity manages a single Excel COM instance — multiple scopes conflict. Documented erratum since June 2025.
21
+ **Impact:** COM object error at runtime. This activity manages a single Excel COM instance — multiple scopes conflict.
22
22
 
23
23
  **Detection:** Grep all `.xaml` files for `SingleExcelProcessScope`. Flag if count > 1 across the project.
24
24
 
@@ -30,7 +30,7 @@ Antipatterns specific to UiPath Studio 2024.10+ (Modern design experience, coded
30
30
 
31
31
  **Symptom:** Using Modern `Use Excel File` + `Read Range` for large datasets (>10K rows) without mitigation.
32
32
 
33
- **Impact:** ~100x slower than Classic `Excel Application Scope` + `Read Range`. 30K rows: ~5s Classic vs >15 minutes Modern. 17K rows reported at 30 minutes. Affects SAP-exported data with special characters / images especially badly.
33
+ **Impact:** Orders of magnitude slower than Classic `Excel Application Scope` + `Read Range` on large sheets community reports range from minutes to tens of minutes for 10K+ rows. Affects SAP-exported data with special characters / images especially badly.
34
34
 
35
35
  **Detection:** Project uses Modern design + `Use Excel File` + `Read Range` on datasets known to exceed 10K rows. `ReadOnly` property not set.
36
36
 
@@ -31,55 +31,19 @@ done
31
31
 
32
32
  ### Windows-Legacy Compatibility Lock-In
33
33
 
34
- **Symptom:** Project uses Windows-Legacy compatibility (`expressionLanguage: "VisualBasic"` with no/Legacy `targetFramework`).
34
+ **Symptom:** Project uses Windows-Legacy compatibility (`project.json` has no `targetFramework` or `targetFramework: "Legacy"` the reliable marker; expression language is usually VisualBasic but Legacy C# projects exist).
35
35
 
36
36
  **Support status:** Legacy is supported **indefinitely** in Studio LTS (2024.10, 2025.10, 2026.10, and all future LTS releases). It is NOT a deployment blocker. It is NOT a mid-term support risk. Deprecation means "no new features in Legacy," not "Legacy will be removed."
37
37
 
38
38
  **NEVER flag as Critical based on framework alone.** Severity is Warning if blocking desired modern features, Info if Studio LTS is the organizational standard.
39
39
 
40
- **What you lose by staying on Legacy (ranked by developer-impact):**
41
-
42
- 1. **Healing Agent** — AI-powered selector self-healing at runtime. When selectors drift from app updates, DOM changes, or resolution shifts, Healing Agent recovers automatically. Legacy has no self-healing — every broken selector becomes a ticket + redeploy.
43
- 2. **Unified Target Method** (Strict + Fuzzy + Image + Anchor) — modern multi-strategy UI targeting. Legacy uses single-strategy classic selectors that break on minor UI changes.
44
- 3. **Object Repository + shared UI Libraries** — centralized, hierarchical, versioned UI descriptors. Legacy has limited OR support.
45
- 4. **Coded test cases (C#)** + Test Manager integration — real testing rigor (mocks, assertions, CI-runnable). Legacy testing is Studio Test Activity only.
46
- 5. **Autopilot™** — AI-assisted Studio development (generate, fix, explain workflows).
47
- 6. **ScreenPlay** — modern scripted UI interaction experience.
48
- 7. **AI Agents + Maestro + Agentic Automation** — participate as actors in multi-agent BPMN processes.
49
- 8. **Coded workflows (C#)** — type safety, unit testability, IDE refactoring for complex logic.
50
- 9. **Modern .NET (JIT)** — compiled performance + modern encryption/TLS. Legacy runs on .NET Framework 4.6.1.
51
- 10. **Cross-platform execution** (Linux robots).
52
- 11. **Studio STS** (2-month cadence) — locked to annual LTS on Legacy.
53
-
54
40
  **When recommending migration, lead with the 2-3 features most relevant to the project's actual pain points** — heavy UI maintenance → Healing Agent + Unified Target + Object Repository; weak testing → coded tests + Test Manager; AI use cases → Autopilot + Agents.
55
41
 
56
42
  **Valid reason to stay on Legacy:** SOAP web services (only supported in Legacy).
57
43
 
58
- **Migration paths:**
59
- 1. **Studio's built-in Converter** — single project, framework-only (W-L → W)
60
- 2. **Activity Migrator Tool** (`UiPath.Upgrade.exe`) — bulk, activity-level. Handles:
61
- - W-L → Windows framework
62
- - Classic → Modern UI Automation (needed for Unified Target/Healing Agent)
63
- - Classic Outlook → Microsoft 365 Mail
64
-
65
- For most real-world migrations (projects with Classic UIA), **Activity Migrator is the right tool**.
66
-
67
- **Migration blockers** (manual rework required — Activity Migrator cannot convert these):
68
- - All CV activities, all Trigger activities
69
- - Anchor Base, Element Scope, Double Click variants
70
- - Classic OCR engines, Callout, Set Clipping Region
71
- - `Outlook Desktop Mail Messages Trigger` (no M365 folder-monitoring equivalent)
72
- - `Get Outlook Desktop Mail Messages` filter options
73
-
74
- **Pre-flight order:**
75
- 1. Run `UiPath.Upgrade.exe analyze` first (dry-run) — review SARIF report
76
- 2. Migrate libraries BEFORE consumer projects
77
- 3. Pilot on one project before `bulk`
78
- 4. Prepare ConnectionId config file for M365 mail migration
79
-
80
44
  **Route Legacy-specific deep validation to `uipath-rpa` (Legacy mode).** The standard `uip rpa` tooling targets Windows/Cross-platform projects; Legacy mode in `uipath-rpa` uses the `uip rpa-legacy` CLI internally.
81
45
 
82
- For full severity matrix and post-migration checks, see rpa-review-checklist.md §10 "Windows-Legacy Compatibility".
46
+ Ranked feature list, severity matrix, migration tooling and blockers, pre-flight order, and post-migration checks: [rpa-review-checklist.md §10 "Windows-Legacy Compatibility"](rpa-review-checklist.md).
83
47
 
84
48
  ### Wrong Expression Language
85
49
 
@@ -120,7 +84,7 @@ find . -name "*.xaml" -size +500k -exec ls -lh {} \;
120
84
 
121
85
  **Symptom:** Automation starts fast (30 sec/item) and progressively slows to minutes per item after 1+ hours. No crash — just gets slower.
122
86
 
123
- **Impact:** Jobs that should take 1 hour take 8. Timeouts, missed SLAs, wasted robot licenses. The most consistently reported performance issue on the UiPath Forum.
87
+ **Impact:** Jobs that should take 1 hour take 8. Timeouts, missed SLAs, wasted robot licenses.
124
88
 
125
89
  **Root causes:** Excel processes not killed between iterations (dozens of orphaned EXCEL.EXE accumulate), browser DOM growth in web loops, DataTable variables growing with uncleared temp data, Log Message flooding inside tight loops.
126
90
 
@@ -304,9 +268,9 @@ grep -ri "apikey\|api_key\|secret\|token" --include="*.xaml" --include="*.cs" --
304
268
 
305
269
  **Impact:** Business exceptions (data issues) get retried unnecessarily. System exceptions (transient failures) don't get retried.
306
270
 
307
- **Detection:** Check exception handling in REFramework's SetTransactionStatus or equivalent logic.
271
+ **Detection:** Grep all `.xaml` and `.cs` files for `BusinessRuleException` — if absent, the distinction is missing entirely. Also check exception handling in REFramework's SetTransactionStatus or equivalent logic.
308
272
 
309
- **Fix:** Throw `BusinessRuleException` for data/validation issues (no retry). Let `System.Exception` propagate for transient failures (auto-retry).
273
+ **Fix:** Throw `BusinessRuleException` for data/validation issues (e.g., `Throw New BusinessRuleException("Invoice amount is negative")`) — marked Failed-Business, not retried. Let system exceptions propagate for transient failures (auto-retry).
310
274
 
311
275
  ### ContinueOnError Overuse
312
276
 
@@ -456,7 +420,7 @@ Filenames like `CheckIfEmployeeExists.xaml` are one manifestation. Inline checks
456
420
  | No | Guards + adequate retry but no per-sub-item progress output | **Info** | "Partial-failure recovery could be improved with per-sub-item progress markers written to queue Output for observability." |
457
421
  | Yes | Guards + retry + per-sub-item output | **Info** | "Working with compensation; consider dispatcher/performer if volume grows." |
458
422
 
459
- **When it cannot be split — hardening checklist:**
423
+ #### When it cannot be split — hardening checklist
460
424
 
461
425
  If the domain forces a one-to-many shape that cannot be decomposed into separate queue items (e.g., SAP multi-step enrollment, carrier portal group submission, bank wire requiring sequential steps in one session), the reviewer MUST verify ALL of these safeguards. Each missing safeguard is a separate finding.
462
426
 
@@ -474,8 +438,10 @@ If the domain forces a one-to-many shape that cannot be decomposed into separate
474
438
  | 10 | **Timeout per sub-item** | Each sub-item has a reasonable timeout (not relying only on the global job timeout) | Info — one hanging sub-item blocks all remaining items |
475
439
 
476
440
  Report each missing safeguard as a numbered finding. Example:
477
- - `[W-005] One-to-many loop in Process.xaml (line 47): no per-sub-item status tracking — partial progress invisible after crash`
478
- - `[C-003] One-to-many loop in Process.xaml (line 47): no idempotency guard on sub-item write — retry creates duplicate records`
441
+ - `[W-005] One-to-many loop in Process.xaml (For Each 'Process Employees'): no per-sub-item status tracking — partial progress invisible after crash`
442
+ - `[C-003] One-to-many loop in Process.xaml (For Each 'Process Employees'): no idempotency guard on sub-item write — retry creates duplicate records`
443
+
444
+ Anchor findings on activity display names, never XAML line numbers — line numbers are meaningless in Studio.
479
445
 
480
446
  **Why this shape is a real problem (when remediation is weak):**
481
447
 
@@ -509,7 +475,7 @@ The shape is what the execution body does. Remediation posture and business cons
509
475
 
510
476
  **Symptom:** Environment-specific values (URLs, paths, queue names) stored in Config.xlsx Settings or Constants sheets instead of the Assets sheet.
511
477
 
512
- **Impact:** Deploying to a new environment requires manually editing Config.xlsx and republishing. Secrets leak into version control. The most debated configuration issue on the UiPath Forum.
478
+ **Impact:** Deploying to a new environment requires manually editing Config.xlsx and republishing. Secrets leak into version control.
513
479
 
514
480
  **Detection:** Read Config.xlsx — verify: Constants sheet contains only truly constant values (MaxRetryNumber, timeouts). Settings sheet contains only environment-agnostic settings. All environment-specific values (URLs, paths, credentials, queue names) are in the Assets sheet, referencing Orchestrator Asset names.
515
481
 
@@ -535,16 +501,6 @@ The shape is what the execution body does. Remediation posture and business cons
535
501
 
536
502
  **Fix:** Implement CloseAllApplications with graceful Close Application activities for each app. Implement KillAllProcesses with Kill Process for each app process name.
537
503
 
538
- ### All Exceptions Treated as System Exceptions
539
-
540
- **Symptom:** No `BusinessRuleException` thrown anywhere. All failures trigger retry logic.
541
-
542
- **Impact:** Data validation failures (missing fields, invalid formats, duplicate records) get retried and will never succeed. Wastes queue retry capacity and processing time.
543
-
544
- **Detection:** Grep for `BusinessRuleException` in all .xaml and .cs files. If not found, business exception handling is likely missing.
545
-
546
- **Fix:** Throw `BusinessRuleException` for data issues: `Throw New BusinessRuleException("Invoice amount is negative")`. These get marked as Failed-Business and are not retried.
547
-
548
504
  ### Business Logic in Framework Folder
549
505
 
550
506
  **Symptom:** Custom code added to files in the `Framework/` folder (InitAllSettings.xaml, framework-level GetTransactionData.xaml, etc.).
@@ -573,7 +529,7 @@ The shape is what the execution body does. Remediation posture and business cons
573
529
 
574
530
  ### Excel Process Hanging
575
531
 
576
- **Symptom:** Excel Application Scope completes but Excel process stays alive in background. Robot hangs indefinitely waiting for Excel. Occurs in 10-20% of executions.
532
+ **Symptom:** Excel Application Scope completes but Excel process stays alive in background. Robot hangs indefinitely waiting for Excel.
577
533
 
578
534
  **Detection:** Check for orphaned EXCEL.EXE processes after automation runs. Check for timeout errors in Excel activities.
579
535
 
@@ -621,7 +577,7 @@ Issues where the bot reports success but the outcome is wrong. These are the cos
621
577
 
622
578
  **Symptom:** Bot writes data (Excel, database, web form, API POST) but does not verify the write succeeded. The target system may accept the command but fail to save.
623
579
 
624
- **Impact:** Bot reports success. The next morning someone discovers blank reports, missing records, or duplicate entries. Occurs ~1% of executions but extremely costly.
580
+ **Impact:** Bot reports success. The next morning someone discovers blank reports, missing records, or duplicate entries. Rare but extremely costly.
625
581
 
626
582
  **Detection:** After every write operation (`Write Range`, `Submit Form`, HTTP POST, database INSERT), check for a verification step — read-back, count check, or status code validation.
627
583
 
@@ -669,7 +625,7 @@ Issues specific to coded workflows that differ from XAML patterns.
669
625
 
670
626
  **Detection:** Check if coded library workflows use service accessors. Test library invocation from an external project.
671
627
 
672
- **Fix:** Ensure library workflows are properly bootstrapped. Use `RunWorkflow` with strongly-typed invocation instead of direct class instantiation.
628
+ **Fix:** Ensure library workflows are properly bootstrapped. Invoke via the generated strongly-typed `workflows.<NAME>()` accessors instead of direct class instantiation.
673
629
 
674
630
  ## Concurrency Issues
675
631
 
@@ -727,7 +683,7 @@ Issues specific to coded workflows that differ from XAML patterns.
727
683
 
728
684
  **Symptom:** `Get Asset` activity used to retrieve a Credential-type Orchestrator asset (instead of `Get Credential`).
729
685
 
730
- **Impact:** `Get Asset` cannot retrieve credential-type assets — it returns only username as a string, password is null. Automation appears to work but login fails silently downstream.
686
+ **Impact:** `Get Asset` cannot retrieve credential-type assets — depending on Orchestrator version it errors at runtime or yields no usable password. Either way the downstream login fails.
731
687
 
732
688
  **Detection:** In Config.xlsx Assets sheet, identify credential assets (by name convention or known usage). Grep XAML for `GetAsset` activities retrieving those names — should be `GetCredential`.
733
689
 
@@ -32,7 +32,7 @@ Comprehensive quality checklist for UiPath RPA projects — coded workflows (C#)
32
32
  | Logical folder structure used (Framework/, BusinessLogic/, Utilities/, Data/) | Info | `ls` project root — check for meaningful subdirectories |
33
33
  | Main.xaml acts as orchestrator only (no direct UI or business logic) | Warning | Grep Main.xaml for UI activities (`NClick`, `NTypeInto`, `NGetText`, `Click`, `TypeInto`, `GetText`, `SendHotkey`, `NCheckAppState`). If any are found, Main.xaml is doing work it should delegate. Should contain mostly `InvokeWorkflowFile` calls, <30 activities total. |
34
34
  | No leftover breakpoints in production code | Warning | Grep `.xaml` for breakpoint metadata |
35
- | No workflow exceeds 80 activities OR 30 root-scope variables OR 10 nesting levels | Warning | Count activities, Variables elements, and max indentation depth per .xaml. Report these counts in the review (never "lines") |
35
+ | No workflow exceeds 50 activities OR 30 root-scope variables OR 7 nesting levels (ST-MRD-009 default) | Warning | Count activities, Variables elements, and max indentation depth per .xaml. Report these counts in the review (never "lines") |
36
36
 
37
37
  ### Workflow Dependency Graph
38
38
 
@@ -55,7 +55,7 @@ Comprehensive quality checklist for UiPath RPA projects — coded workflows (C#)
55
55
 
56
56
  | Check | Severity | How to Verify |
57
57
  |---|---|---|
58
- | All referenced packages are installable | Critical | `uip rpa packages install` |
58
+ | All referenced packages resolvable | Critical | `uip rpa build "<PROJECT_DIR>" --output json` fails on unresolvable packages. Do NOT run `uip rpa packages install` — review is read-only |
59
59
  | No unused packages | Warning | Workflow Analyzer rule ST-USG-010 |
60
60
  | Version constraints use proper syntax (`[1.0.0]`, `[1.0.0, 2.0.0)`) | Warning | Read project.json dependencies |
61
61
  | No package version conflicts | Critical | Check for multiple versions of same package family |
@@ -99,11 +99,11 @@ Comprehensive quality checklist for UiPath RPA projects — coded workflows (C#)
99
99
 
100
100
  | Check | Severity | How to Verify |
101
101
  |---|---|---|
102
- | All `.xaml` files pass validation | Critical | `uip rpa validate --file-path "<FILE>" --project-dir "<DIR>" --output json` |
102
+ | All `.xaml` files pass validation | Critical | `uip rpa validate --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json` |
103
103
  | Expression language in all XAML files matches `project.json` setting | Critical | Check `expressionLanguage` consistency |
104
104
  | No C# syntax in VB.NET projects | Warning | If `expressionLanguage` is `VisualBasic`, grep all `.xaml` for C# patterns: `!=`, `&&`, `\|\|`, `null` (VB uses `Nothing`), `$"` (interpolated strings), `=>` (lambda), `//` (comments), `typeof()` (VB uses `GetType()`). These compile-fail or silently misbehave. |
105
105
  | No activities with default display names ("Sequence", "Assign", "If") | Warning | Workflow Analyzer rule ST-MRD-002 |
106
- | No deeply nested activities (>5 levels) | Warning | Workflow Analyzer rule ST-MRD-009 |
106
+ | No deeply nested activities (>7 levels, ST-MRD-009 default) | Warning | Workflow Analyzer rule ST-MRD-009 |
107
107
  | No empty Catch blocks | Warning | Workflow Analyzer rule ST-DBP-003 |
108
108
  | No empty Sequences | Info | Workflow Analyzer rule ST-MRD-008 |
109
109
  | No unreachable activities | Warning | Workflow Analyzer rule ST-MRD-004 |
@@ -113,7 +113,7 @@ Comprehensive quality checklist for UiPath RPA projects — coded workflows (C#)
113
113
 
114
114
  | Check | Severity | How to Verify |
115
115
  |---|---|---|
116
- | Variables follow PascalCase/camelCase | Warning | Workflow Analyzer rule ST-NMG-001 (regex: `^(dt_)?([A-Z]\|[a-z])+([0-9])*$`) |
116
+ | Variables follow PascalCase/camelCase | Warning | Workflow Analyzer rule ST-NMG-001 (default regex: `^([A-Z]\|[a-z])+([0-9])*$`; the `dt_` prefix convention is ST-NMG-009, not part of ST-NMG-001) |
117
117
  | DataTable variables prefixed with `dt_` | Info | Workflow Analyzer rule ST-NMG-009 |
118
118
  | Arguments use directional prefixes (`in_`, `out_`, `io_`) | Warning | Workflow Analyzer rule ST-NMG-002 |
119
119
  | No variable-argument name conflicts (shadowing) | Warning | Workflow Analyzer rules ST-NMG-005, ST-NMG-006 |
@@ -195,7 +195,7 @@ Selectors are ranked by attribute stability. When reviewing, assess which tier t
195
195
 
196
196
  ## 5. REFramework Compliance (Queue-Based Projects)
197
197
 
198
- > **Transaction Granularity:** REFramework correctness requires that the queue item's declared unit of work matches the unit of work `ProcessTransaction.xaml` actually performs. Run Step 3a (Unit of Work Discovery) in SKILL.md before this section — any mismatch is a Granularity Mismatch finding. Strong signal that a mismatch exists: presence of `CheckIf<X>Exists.xaml` or `Verify<X>Exists.xaml` in the project (homegrown idempotency guards compensating for bulk-in-transaction). See [rpa-common-issues.md](rpa-common-issues.md) → "Granularity Mismatch" for the full signals, severity matrix, and fixes.
198
+ > **Transaction Granularity:** REFramework correctness requires that the queue item's declared unit of work matches the unit of work `ProcessTransaction.xaml` actually performs. Run Step 3a (Unit of Work Discovery) in SKILL.md before this section — classify the shape as one-to-one / one-to-many / unclear. Strong signal of a one-to-many shape: presence of `CheckIf<X>Exists.xaml` or `Verify<X>Exists.xaml` in the project (homegrown idempotency guards compensating for bulk-in-transaction). See [rpa-common-issues.md](rpa-common-issues.md) → "Transaction Shape: One-to-Many" for the full signals, severity matrix, fixes, and the "When it cannot be split — hardening checklist" subsection.
199
199
 
200
200
 
201
201
  If the project uses or should use the REFramework pattern:
@@ -205,9 +205,9 @@ If the project uses or should use the REFramework pattern:
205
205
  | Check | Severity | How to Verify |
206
206
  |---|---|---|
207
207
  | State Machine with 4 states: Init, GetTransactionData, ProcessTransaction, EndProcess | Warning | Read Main.xaml structure |
208
- | All 7 transitions present (Init→GetTx, Init→End, GetTx→ProcessTx, GetTx→End, ProcessTx→GetTx, ProcessTx→Init, Init→Init retry) | Warning | Check transitions |
209
- | Init state has SystemException → Init self-retry transition (not just Init → End) | Warning | Transient login/app failures should retry, not terminate the process |
210
- | Init state does NOT fetch transaction data (data fetched in GetTransactionData) | Warning | Check InitAllApplications / InitAllSettings — no Read Range / Get Queue Items / Data Scraping |
208
+ | All 7 stock transitions present (Init→GetTx, Init→End, GetTx→ProcessTx, GetTx→End, ProcessTx→GetTx on Success, ProcessTx→GetTx on BusinessRuleException, ProcessTx→Init on SystemException) | Warning | Check transitions |
209
+ | Init state has SystemException → Init self-retry transition (enhancement the stock template goes Init → End on failure) | Warning | Transient login/app failures should retry, not terminate the process |
210
+ | Queue-based projects: Init state does NOT fetch transaction data (fetched per-item in GetTransactionData). Non-queue projects load bulk data in Init — see "Non-Queue REFramework" below | Warning | Check InitAllApplications / InitAllSettings — no Read Range / Get Queue Items / Data Scraping in queue-based projects |
211
211
  | REFramework not forced onto single-shot / stateless processes | Info | If no real transaction iteration (one execution per run), REFramework is overkill — use a linear workflow |
212
212
  | If using non-queue data source: `QueueRetry` flag in SetTransactionStatus properly handled (not left at queue default) | Critical | Grep SetTransactionStatus for `QueueRetry` or `in_TransactionItem.RetryNo` logic that only applies to QueueItems |
213
213
  | If using DataTable: `GetTransactionData` uses `dt.Rows(in_TransactionNumber - 1)` (DataTable is 0-indexed; transaction counter is 1-indexed) | Warning | Off-by-one skips first row, errors on last |
@@ -345,8 +345,9 @@ Run Workflow Analyzer and verify no Error-level violations. Key rules to check:
345
345
  | No hardcoded environment-specific values (URLs, paths) | Warning | Grep for hardcoded values |
346
346
  | No debug artifacts or test data included | Info | Check for leftover files |
347
347
  | Global Exception Handler configured | Info | Check project settings |
348
- | Project builds and validates clean | Critical | `uip rpa validate` returns 0 errors |
349
- | Smoke test passes | Warning | `uip rpa run` completes successfully |
348
+ | Project validates clean | Critical | `uip rpa validate --file-path "<ENTRY_FILE>" --project-dir "<PROJECT_DIR>" --output json` returns 0 errors for every entry point |
349
+ | Project builds clean | Critical | `uip rpa build "<PROJECT_DIR>" --output json` catches unknown member names and invalid enum values that `validate` misses (SKILL.md Critical Rule 2) |
350
+ | Recent successful run evidence (job history, test results) | Info | Do NOT run the automation during review — `uip rpa run` executes UI actions and writes. Check existing evidence; runtime verification routes to `uipath-rpa` |
350
351
 
351
352
  ## 10. Windows-Legacy Compatibility
352
353
 
@@ -375,11 +376,11 @@ Ordered by developer-impact for a real production RPA team. **When recommending
375
376
  | 2 | UI Automation resilience | **Unified Target Method** (Strict + Fuzzy + Image + Anchor) — modern multi-strategy targeting. Legacy uses only classic single-strategy selectors, which break on minor UI changes. |
376
377
  | 3 | Reusable UI management | **Object Repository + UI Libraries** — centralized, hierarchical, versioned UI descriptors. Legacy has limited Object Repository support and no shared UI Library consumption. |
377
378
  | 4 | Testing quality | **Coded test cases (C#)** + **Test Manager integration** — write real unit/integration tests for workflows. Legacy testing is Studio Test Activity only — limited assertions, no mocking framework. |
378
- | 5 | Development velocity | **Autopilot™** — AI-assisted Studio (generate activities from description, fix workflows, explain code). Legacy projects cannot use Autopilot. |
379
+ | 5 | Development velocity | **Autopilot** — AI-assisted Studio (generate activities from description, fix workflows, explain code). Legacy projects cannot use Autopilot. |
379
380
  | 6 | ScreenPlay / modern UI orchestration | **ScreenPlay** — modern scripted UI interaction / recording experience. Available only for Modern projects. |
380
381
  | 7 | Platform capabilities | **AI Agents + Maestro orchestration + Agentic Automation** — participate as actors in multi-agent/multi-robot BPMN processes. Legacy processes cannot be invoked from / cannot invoke these. |
381
382
  | 8 | Code-based logic | **Coded workflows (C#)** alongside XAML — type safety, unit testability, IDE refactoring for complex business logic. |
382
- | 9 | Performance and security | **JIT-compiled .NET 6+** — faster execution, modern GC, modern encryption/TLS. Legacy runs on .NET Framework 4.6.1 with incremental performance and EOL security libraries. |
383
+ | 9 | Performance and security | **Modern .NET (6+)** — faster execution, modern GC, current TLS/crypto stack. Legacy runs on .NET Framework 4.6.1 with aging security libraries. |
383
384
  | 10 | Platform reach | **Cross-platform execution** (Linux robots) — deployment flexibility for cloud-native environments. |
384
385
  | 11 | Studio cadence | **Studio STS** (2-month release cycle) — access to new activities and features as they ship. Legacy locks the team to Studio LTS (annual). |
385
386
  | 12 | Developer ergonomics | New design experience, Data Manager globals/constants, customizable library activity layouts. |
@@ -451,10 +452,10 @@ When Legacy is detected and migration is on the table, scan for **activities tha
451
452
 
452
453
  | Check | Severity |
453
454
  |---|---|
454
- | If planning migration: `UiPath.UIAutomation.Activities` target >= 25.10.21 | Warning |
455
- | If planning migration: `UiPath.MicrosoftOffice365.Activities` target >= 3.6.10 (if Mail migration needed) | Warning |
455
+ | If planning migration: `UiPath.UIAutomation.Activities` at an Activity-Migrator-supported version (check current UiPath docs) | Warning |
456
+ | If planning migration: `UiPath.MicrosoftOffice365.Activities` at a Migrator-supported version (if Mail migration needed) | Warning |
456
457
  | Studio 2024.10+ available to open migrated project | Warning |
457
- | For ST-AMG-001 post-migration rule: Studio 2025.10.8 LTS or 2026.0.189+ STS | Info |
458
+ | Studio version supports the ST-AMG-001 post-migration rule (recent LTS/STS check current docs) | Info |
458
459
 
459
460
  ### Migration Pre-Flight Checklist
460
461
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Review guide for UiPath solutions (`.uipx`) — multi-project packages deployed as a single unit.
4
4
 
5
- > **Windows-Legacy compatibility guard:** `.uipx` solutions are NOT supported for Legacy projects. If any detected executable in the repo is Windows-Legacy (`expressionLanguage: "VisualBasic"` with no or `Legacy` `targetFramework`), **do NOT flag missing `.uipx` and do NOT recommend creating one**. Recommend migration to Modern compatibility (Windows / Cross-platform) if solution bundling is desired — that is the prerequisite, not the finding. Review each Legacy project independently.
5
+ > **Windows-Legacy compatibility guard:** `.uipx` solutions are NOT supported for Legacy projects. If any detected executable in the repo is Windows-Legacy (`project.json` has no `targetFramework` or `targetFramework: "Legacy"`), **do NOT flag missing `.uipx` and do NOT recommend creating one**. Recommend migration to Modern compatibility (Windows / Cross-platform) if solution bundling is desired — that is the prerequisite, not the finding. Review each Legacy project independently.
6
6
 
7
7
  ## Solution Structure Validation
8
8
 
@@ -113,14 +113,14 @@ For the full decision flowchart, InvokeCode extraction rules, and detailed hybri
113
113
 
114
114
  ## Capture-First Fast Path
115
115
 
116
- When the request is "automate this dialog/form" or "build a UI test from these manual steps" — i.e. the bulk of the work is target capture, not coding — **defer authoring-phase prerequisites until target capture is complete**. The capture surface is interactive, app-state-sensitive, and time-bound; project-context discovery and analyzer rules add nothing during capture and steal time from it.
116
+ When the request is "automate this dialog/form" or "build a UI test from these manual steps" — i.e. the bulk of the work is target capture, not coding — **defer authoring-phase prerequisites until target capture is complete**. The capture surface is interactive, app-state-sensitive, and time-bound; project-context discovery adds nothing during capture and steals time from it.
117
117
 
118
118
  **Fast-path order for capture-first tasks.** Read [ui-automation-guide.md](references/ui-automation-guide.md) and [uia-configure-target-workflows.md](references/uia-configure-target-workflows.md) in full first (Rule 7; the second is used in step 3). Then:
119
119
 
120
120
  1. **Pre-flight Window Baseline** — list top-level windows once; decide whether to launch the app ([§ Pre-flight: Window Baseline](references/ui-automation-guide.md)).
121
121
  2. **Inventory targets from manual steps** (Test Manager test case, PDD, or written script). Each "Click X" / "Enter Y" / "Select Z" / "Verify W" step maps to one OR element. Group by screen state ([§ Capturing from Manual Test Steps](references/ui-automation-guide.md)).
122
122
  3. **Capture all targets** screen by screen via `uia-configure-target` and screen advancement ([§ Multi-Step UI Flows](references/uia-configure-target-workflows.md)).
123
- 4. **Then enter authoring phase:** project-context discovery (the precondition above), analyzer rules (Critical Rule 3 — Authoring-phase start), write code, validate.
123
+ 4. **Then enter authoring phase:** project-context discovery (the precondition above), write code, validate.
124
124
 
125
125
  Skip this path when the task has no UI surface (data transforms, IS connector calls, headless file/email automation). Also skip it when the task HAS a UI surface but **no live app to capture against** (app not installed, no GUI, capture deferred to a developer) — there is nothing to capture, so use the § Placeholder-Selector Stub Pattern above instead. The Window Baseline does not tell you if the app is installed and has a GUI — validate that separately (e.g. look for the executable on disk) or ask the user.
126
126
 
@@ -149,12 +149,12 @@ uip rpa activities find --query log --output json > /dev/null 2>&1 &
149
149
  - **No matches** → fall back to a built-in `--template-id` and tell the user nothing was found.
150
150
  - Built-in `--template-id` keywords map without a search: `library` → `LibraryProcessTemplate`, `test automation` / `test project` → `TestAutomationProjectTemplate`, otherwise `BlankTemplate`. When `--template-package-id` is set, `--template-id` is ignored. Full decision flow: [environment-setup.md § Template selection](references/environment-setup.md).
151
151
  2a. **Pass `--target-framework` AND `--expression-language` explicitly on every `uip rpa init` — never omit them.** Both are immutable after creation (Rule 23); omitting `--target-framework` silently yields a **Windows** project. Choose framework by where the automation runs: cross-platform / non-Windows runtime (Linux, container, serverless) or Studio Web editing → **`Portable`** (Cross-platform); Windows runtime using Windows-only capabilities (Excel COM, classic Office, WPF / `PresentationFramework`, Windows-only UIA) or Studio Desktop as the edit surface → **`Windows`** (not editable in Studio Web). A request needing *both* a cross-platform runtime and a Windows-only capability is contradictory — surface it, don't silently pick. **Windows - Legacy is a last resort** (explicit ask or hard .NET 4.6.1 need; never inferred from VB.NET or non-"X" classic activities) — create it in Legacy mode, not modern `init`. No signal → `AskUserQuestion` (Windows vs Cross-platform), framed around the runtime host. `--expression-language`: default `VisualBasic`, `CSharp` only on explicit request.
152
- 3. **Phase-gated validation: analyzer rules run at AUTHORING-phase start, not session start.** Three-phase validation:
153
- - **Authoring-phase start** (immediately before creating or editing any workflow file — `.cs` with `[Workflow]`/`[TestCase]`, or `.xaml`): `uip rpa analyzer-rules list --project-dir "<PROJECT_DIR>" --output json` to list the enabled Workflow Analyzer rules. Apply every `error` and `warning` rule during authoring so generated code passes `analyze` and `build` on the first attempt. Run once at this point; re-run only when project dependencies change. **DO NOT run at session start** — the call can take a minute or more (use `--scope <Activity|Workflow|Coded Workflow|Project>` to narrow if it times out, see [cli-reference.md § analyzer-rules list](references/cli-reference.md)). For capture-first tasks (target capture from manual test steps, dialog automation), this prerequisite is deferred until capture is complete — see § Capture-First Fast Path below.
154
- - **Per-file** (after every create or edit): `uip rpa validate --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json` until 0 errors. Catches structural XAML, missing references, analyzer rules, schema violations. Fix one thing per iteration.
152
+ 3. **Phase-gated validation.** Two-phase validation:
153
+ - **Per-file** (after every create or edit): `uip rpa validate --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json` until 0 errors. Catches structural XAML, missing references, analyzer-rule violations, schema violations. Fix one thing per iteration.
155
154
  - **Project-level build** (after per-file `validate` is clean across all files in the edit session, and before declaring done): `uip rpa build "<PROJECT_DIR>" --output json` until clean. Catches what `validate` misses (unknown members, invalid enums, CacheMetadata / member resolution, attribute-form C# JIT) — full list at [validation-guide.md § Errors `build` catches that `validate` misses](references/validation-guide.md). If `build` errors, identify the offending file from the output and re-run `validate --file-path` on it.
156
155
  - **5-attempt cap per loop** — 5 attempts for each file's per-file `validate` loop; a separate 5 attempts for the project-level `build` loop. Fix one root cause per iteration.
157
156
  - **Smoke-test shortcut:** A successful `uip rpa run` substitutes for the standalone end-of-session `build` — `run` compiles internally. Prefer `run --skip-build` when `build` has just passed; see [validation-guide.md § Smoke Test](references/validation-guide.md).
157
+ - **Do NOT run `uip rpa analyzer-rules list` as an authoring prerequisite.** `validate` and `build` already enforce the enabled analyzer rules and report violations with rule IDs and recommendations — pre-fetching the rule list is speculative cost (the unscoped call can take a minute or more). It is an **on-demand** command: run it when the user asks about the project's best-practice/analyzer rules, or when repeated violations of the same rule family suggest authoring against the full rule set. See [validation-guide.md § On demand: List Analyzer Rules](references/validation-guide.md) and [cli-reference.md § analyzer-rules list](references/cli-reference.md).
158
158
 
159
159
  See [references/validation-guide.md](references/validation-guide.md).
160
160
  4. **ALWAYS validate files as you go AND verify the project builds before declaring done.** After every create or edit: per-file `validate` to clean. Project-level `build` runs once at the end of the edit session (or at any compile-verification gate) — not after every Edit, because `build` is project-scoped and rebuilds the entire project regardless of which file changed. `validate` clean alone is not "validated"; it cannot see member or enum errors — the project-level `build` is mandatory before declaring done. See [references/validation-guide.md](references/validation-guide.md).
@@ -166,7 +166,7 @@ uip rpa activities find --query log --output json > /dev/null 2>&1 &
166
166
  7. **[UIA] Before writing ANY UIA activity (XAML `<uix:N*>` or coded `uiAutomation.*` / `Descriptors.*`), MUST read [references/ui-automation-guide.md](references/ui-automation-guide.md) IN FULL** — including the mode-specific section (For Coded Workflows or For XAML Workflows) and Running UI Automation Workflows. No exceptions for "simple" UIs. Skipping this rule is the most common cause of hallucinated selectors, wrong target XML, and missing OR descriptors. NEVER hand-write selectors — use `uia-configure-target` exclusively (the guide explains how). This guide is the single entry point for UIA work: it routes you to [uia-configure-target-workflows.md](references/uia-configure-target-workflows.md), [uia-prerequisites.md](references/uia-prerequisites.md), and the package docs in order — the other UIA sections in this file point back here rather than restating the read mandate.
167
167
  7a. **[UIA] Verify UIA prerequisites before invoking `uia-configure-target`.** The minimum version and the prerequisite check live in [uia-prerequisites.md](references/uia-prerequisites.md) — read it and run that check first (do not hardcode the version from memory; that file is the only source of truth). If `UiPath.UIAutomation.Activities` is below the minimum or `{PROJECT_DIR}/.local/docs/packages/UiPath.UIAutomation.Activities/skills/uia-configure-target/SKILL.md` is absent, the `uip rpa uia` CLI is unavailable — and **both** target capture and indication depend on it, so indication is *not* a fallback when the package itself is missing. Ask the user to install/upgrade per uia-prerequisites.md. If they decline or the package cannot be installed, fall back to the **Placeholder-Selector Stub Pattern** (§ above) — real activities with `TODO Indicate` markers need no CLI. Never silently route to a non-existent skill path. Use indication capture only when a compatible UIA package *is* installed but `uia-configure-target` cannot see the element; record `UI capture: indication-only` in the plan header to skip `uia-configure-target` in that case.
168
168
  8. **Use `--output json`** on all CLI commands whose output is parsed programmatically.
169
- 8a. **`run` / `debug start` success/failure verdict comes from the outer `Result` (and equivalently the inner `HasErrors`), NEVER from any log entry's `Level`.** A successful workflow may emit `Log Message` activities at `Error` or `Warning` level as observability — those are workflow-emitted data, not CLI failures. Compile failures, validation failures, and unhandled runtime exceptions all flip `HasErrors` and propagate to the outer `Result`. Treating log-entry levels as a failure signal flips green runs to "failed" and burns retries on healthy workflows. See [cli-reference.md § run](references/cli-reference.md) and [debugging.md § Reading Debug Output Effectively](references/debugging.md).
169
+ 8a. **`run` / `debug start` success/failure verdict comes from the outer `Result` (and equivalently the inner `HasErrors`), NEVER from any log entry's `Level`.** A successful workflow may emit `Log Message` activities at `Error` or `Warning` level as observability — those are workflow-emitted data, not CLI failures. Compile failures, validation failures, and unhandled runtime exceptions all flip `HasErrors` and propagate to the outer `Result`. Treating log-entry levels as a failure signal flips green runs to "failed" and burns retries on healthy workflows. In a debug session, check `DebugState` first — a `Suspended` response means an exception awaits your decision (continue / retry / ignore / cancel) while `HasErrors` is still `false`. See [cli-reference.md § run](references/cli-reference.md) and [debugging.md § Reading Debug Output Effectively](references/debugging.md).
170
170
  9. **For "leverage / reuse / find shared libraries" requests, search the tenant feed — not the local filesystem, NuGet.org, or keyword-permutation loops.** Run `uip or libraries list --limit 500 --output-filter "<JMESPath>" --output json`. On zero results from the filtered call, take the fallback branch — do not re-keyword. Skip when an SDD already records §16 "Shared libraries referenced" or the user has said "no shared libraries" earlier in the session. See [tenant-library-search-guide.md](references/tenant-library-search-guide.md) for the full procedure.
171
171
  10. **Register every test case file in `project.json` → `designOptions.fileInfoCollection`.** Applies to both XAML and coded test cases. Required keys, GUID format, JSON snippet, and full schema (including `dataVariationFilePath` for data-driven and `publishAsTestCase` for coded): [references/testing-guide.md § project.json Registration](references/testing-guide.md) and [assets/json-template.md](assets/json-template.md).
172
172
 
@@ -209,7 +209,6 @@ uip rpa activities find --query log --output json > /dev/null 2>&1 &
209
209
 
210
210
  1. **Post-`init` prerequisite batch.** After `uip rpa init` returns, these depend only on the project existing — NOT on each other. Emit them in ONE message:
211
211
  - `Read` `project.json` + the scaffolded `Main.xaml`
212
- - `uip rpa analyzer-rules list` (Rule 3 authoring-phase prerequisite)
213
212
  - `uip rpa packages install` for packages already known from the request
214
213
  - `uip rpa activities find` for activities you'll author
215
214
 
@@ -372,7 +371,7 @@ Check `expressionLanguage` in `project.json`. VB.NET uses `[brackets]` for expre
372
371
  |---------|---------|
373
372
  | `activities find --query "<keyword>"` | Discover activities by keyword |
374
373
  | `activities get-default-xaml --activity-class-name "<class>"` | Get starter XAML for an activity |
375
- | `analyzer-rules list --project-dir "<dir>"` | List enabled Workflow Analyzer rules — run before generating |
374
+ | `analyzer-rules list --project-dir "<dir>"` | List enabled Workflow Analyzer rules — on demand only (user asks about project rules, or repeated violations of one rule family); `validate`/`build` enforce the rules without it |
376
375
  | `validate --file-path "<file>"` | Per-file static validation (structure, references, analyzer rules) |
377
376
  | `build "<PROJECT_DIR>"` | Compile-time validation (member names, enum values, JIT expressions) — run after `validate` is clean |
378
377
 
@@ -93,16 +93,17 @@ When a package is installed, its activity docs land under `{PROJECT_DIR}/.local/
93
93
 
94
94
  `uip rpa run` runs a workflow with no debugging; the `debug` group drives breakpoints, stepping, and exception handling (see [debugging.md](debugging.md)). For UI automation, prefer `debug start` over `run` so the app is preserved for selector repair on error. Cancel an active run or session with `uip rpa execution cancel`. Pass workflow inputs as repeatable `--input-arguments key=value` pairs (see [Passing structured inputs](#passing-structured-inputs)); discover the remaining flags (log level, skip-build, profiling) via `--help`.
95
95
 
96
- Both `run` and `debug start` return the same envelope: `{Result, Code, Data: {runResult: "<json-string>"}, ...}`. `Data.runResult` is a **JSON string** — parse it separately. It has three fields (plus optional `Profiling`):
96
+ Both `run` and `debug start` return the same envelope: `{Result, Code, Data: {runResult: "<json-string>"}, ...}`. `Data.runResult` is a **JSON string** — parse it separately:
97
97
 
98
- - `Output` — the workflow's own serialized output arguments JSON (`""` for non-`Start*` commands). **Carries the workflow's data, not a verdict.**
99
- - `HasErrors` — `true` iff execution did not complete successfully (compile/validation failure, unhandled exception, cancellation, or timeout); `false` otherwise.
100
- - `ErrorMessage` — formatted error chain when `HasErrors: true`; `null` otherwise.
98
+ - `Output` — the workflow's own serialized output arguments JSON, populated when the run completes. **Carries the workflow's data, not a verdict.**
99
+ - `HasErrors` — `true` iff execution finished unsuccessfully (compile/validation failure, unhandled exception that ended the run, cancellation, or timeout); `false` otherwise — including while a debug session is `Suspended` on an exception, since the outcome is not decided yet.
100
+ - `ErrorMessage` — formatted error chain when `HasErrors: true`; on debug responses it may instead carry guidance with `HasErrors: false`; `null` otherwise.
101
+ - `DebugState` / `DebugDetails` — debug sessions only (`null` on plain `run`). Every debug command returns at the next stable state — `Paused` (activity + locals in `DebugDetails`), `Suspended` (exception + locals), `Running` (wait timed out), or `Completed`. See [debugging.md § The stable-state debug loop](debugging.md#the-stable-state-debug-loop-headless).
101
102
  - `Profiling.OutputDirectory` — present only when `--profiling` was passed on a start verb and collection succeeded; absolute path to the per-run `*.uistat` files and runtime screenshots. See [debugging.md § Profiling Workflow Performance](debugging.md#profiling-workflow-performance).
102
103
 
103
- Workflow log output (`Log Message`, system traces) does **not** appear in `runResult` — logs stream in real time on a separate channel; the envelope carries only the verdict and output data.
104
+ Workflow log output (`Log Message`, system traces) does **not** appear in `runResult` — logs stream in real time on a separate channel; the envelope carries only the verdict, debug state, and output data.
104
105
 
105
- > **Single source of truth for success/failure: outer `Result` (equivalently `HasErrors` inside `runResult`).** `Result: "Success"` already accounts for compile failures, validation failures, and unhandled exceptions — the CLI propagates them. **DO NOT infer failure from a streamed log entry's `Level`.** A successful workflow may emit `Log Message` at `Error`/`Warning` level as observability — that is workflow data, not a CLI failure. Treating log levels as a verdict flips green runs to "failed" and burns retries.
106
+ > **Single source of truth for success/failure of a completed run: outer `Result` (equivalently `HasErrors` inside `runResult`).** `Result: "Success"` already accounts for compile failures, validation failures, and unhandled exceptions — the CLI propagates them. **DO NOT infer failure from a streamed log entry's `Level`.** A successful workflow may emit `Log Message` at `Error`/`Warning` level as observability — that is workflow data, not a CLI failure. Treating log levels as a verdict flips green runs to "failed" and burns retries. In a debug session, check `DebugState` before `HasErrors` — `Suspended` means an exception awaits your decision while `HasErrors` is still `false`.
106
107
 
107
108
  ---
108
109