@uipath/skills 1.199.0 → 1.200.0

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 (345) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CODEOWNERS +14 -8
  4. package/README.md +18 -3
  5. package/assets/skill-status.json +9 -1
  6. package/assets/uip-catalog-snapshot.json +227 -21
  7. package/package.json +11 -2
  8. package/scripts/npm-package-lifecycle.mjs +46 -0
  9. package/skills/uipath-admin/SKILL.md +5 -1
  10. package/skills/uipath-admin/references/audit-commands.md +1 -1
  11. package/skills/uipath-admin/references/audit-workflow-guide.md +9 -0
  12. package/skills/uipath-agents/SKILL.md +2 -2
  13. package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -0
  14. package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +5 -6
  15. package/skills/uipath-agents/references/lowcode/critical-rules/critical-rules.md +1 -1
  16. package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +5 -0
  17. package/skills/uipath-agents/references/lowcode/project-lifecycle.md +3 -3
  18. package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +3 -2
  19. package/skills/uipath-api-workflow/SKILL.md +2 -1
  20. package/skills/uipath-api-workflow/references/cli-reference.md +3 -3
  21. package/skills/uipath-coded-apps/SKILL.md +3 -2
  22. package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
  23. package/skills/uipath-coded-apps/assets/templates/web-app-template.md +1 -1
  24. package/skills/uipath-coded-apps/references/create-web-app.md +60 -48
  25. package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +2 -2
  26. package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +2 -2
  27. package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +16 -16
  28. package/skills/uipath-coded-apps/references/oauth-scopes.md +28 -272
  29. package/skills/uipath-coded-apps/references/sdk/action-center.md +26 -243
  30. package/skills/uipath-coded-apps/references/sdk/agents.md +20 -130
  31. package/skills/uipath-coded-apps/references/sdk/conversational-agent.md +52 -706
  32. package/skills/uipath-coded-apps/references/sdk/data-fabric.md +20 -237
  33. package/skills/uipath-coded-apps/references/sdk/feedback.md +4 -139
  34. package/skills/uipath-coded-apps/references/sdk/governance-traces.md +7 -55
  35. package/skills/uipath-coded-apps/references/sdk/governance.md +4 -44
  36. package/skills/uipath-coded-apps/references/sdk/imports.md +77 -35
  37. package/skills/uipath-coded-apps/references/sdk/maestro.md +29 -406
  38. package/skills/uipath-coded-apps/references/sdk/orchestrator.md +30 -324
  39. package/skills/uipath-coded-apps/references/sdk/pagination.md +9 -67
  40. package/skills/uipath-coded-apps/references/sdk/traces.md +8 -43
  41. package/skills/uipath-functions/SKILL.md +23 -23
  42. package/skills/uipath-governance/SKILL.md +5 -4
  43. package/skills/uipath-governance/references/cli-cheatsheet.md +2 -1
  44. package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +143 -58
  45. package/skills/uipath-governance/references/compliance-pack/restore/impl.md +61 -0
  46. package/skills/uipath-human-in-the-loop/SKILL.md +4 -2
  47. package/skills/uipath-insights/SKILL.md +17 -18
  48. package/skills/uipath-ixp/SKILL.md +12 -7
  49. package/skills/uipath-ixp/references/cli-reference.md +71 -9
  50. package/skills/uipath-ixp/references/improve-prompts-guide.md +23 -9
  51. package/skills/uipath-ixp/references/label-documents-guide.md +33 -5
  52. package/skills/uipath-maestro-bpmn/SKILL.md +15 -14
  53. package/skills/uipath-maestro-bpmn/references/cli-conventions.md +15 -6
  54. package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +18 -17
  55. package/skills/uipath-maestro-case/SKILL.md +46 -33
  56. package/skills/uipath-maestro-case/assets/templates/sdd-template.md +77 -37
  57. package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +0 -2
  58. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +3 -1
  59. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +2 -2
  60. package/skills/uipath-maestro-case/references/brownfield.md +15 -5
  61. package/skills/uipath-maestro-case/references/case-commands.md +19 -3
  62. package/skills/uipath-maestro-case/references/case-editing-operations.md +24 -21
  63. package/skills/uipath-maestro-case/references/case-schema.md +38 -16
  64. package/skills/uipath-maestro-case/references/connector-trigger-common.md +15 -8
  65. package/skills/uipath-maestro-case/references/evals/evals.json +35 -18
  66. package/skills/uipath-maestro-case/references/implementation.md +86 -71
  67. package/skills/uipath-maestro-case/references/phase-0-interview.md +92 -23
  68. package/skills/uipath-maestro-case/references/phased-execution.md +70 -55
  69. package/skills/uipath-maestro-case/references/placeholder-tasks.md +5 -5
  70. package/skills/uipath-maestro-case/references/planning.md +57 -9
  71. package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +7 -5
  72. package/skills/uipath-maestro-case/references/plugins/case/planning.md +1 -1
  73. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +5 -5
  74. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +41 -5
  75. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +27 -3
  76. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +6 -6
  77. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +3 -1
  78. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +20 -7
  79. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +37 -4
  80. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +24 -13
  81. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +9 -3
  82. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +4 -0
  83. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +4 -1
  84. package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +3 -1
  85. package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +2 -0
  86. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -2
  87. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +4 -2
  88. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -2
  89. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +4 -2
  90. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +3 -2
  91. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -2
  92. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +1 -1
  93. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +2 -0
  94. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
  95. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
  96. package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +1 -1
  97. package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -2
  98. package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +6 -4
  99. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -2
  100. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -2
  101. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -3
  102. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +4 -0
  103. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +17 -14
  104. package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +1 -1
  105. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +13 -10
  106. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +18 -16
  107. package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +2 -2
  108. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +1 -1
  109. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +11 -9
  110. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +6 -2
  111. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +19 -1
  112. package/skills/uipath-maestro-case/references/registry-discovery.md +3 -3
  113. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +155 -51
  114. package/skills/uipath-maestro-case/references/sla-response-shapes.md +74 -0
  115. package/skills/uipath-maestro-flow/SKILL.md +4 -3
  116. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +3 -0
  117. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +10 -17
  118. package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +1 -1
  119. package/skills/uipath-maestro-flow/references/author/references/greenfield.md +8 -6
  120. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +1 -1
  121. package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +4 -9
  122. package/skills/uipath-maestro-flow/references/author/references/plugins/agentic-process/impl.md +3 -7
  123. package/skills/uipath-maestro-flow/references/author/references/plugins/api-workflow/impl.md +5 -8
  124. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +11 -4
  125. package/skills/uipath-maestro-flow/references/author/references/plugins/flow/impl.md +3 -7
  126. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +14 -17
  127. package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +60 -13
  128. package/skills/uipath-maestro-flow/references/author/references/plugins/queue/impl.md +2 -14
  129. package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +4 -9
  130. package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +3 -0
  131. package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +5 -9
  132. package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +13 -0
  133. package/skills/uipath-maestro-flow/references/shared/action-nodes.md +2 -2
  134. package/skills/uipath-maestro-flow/references/shared/file-format.md +16 -12
  135. package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +3 -3
  136. package/skills/uipath-planner/SKILL.md +1 -1
  137. package/skills/uipath-planner/references/non-pdd-lane-guide.md +1 -1
  138. package/skills/uipath-platform/SKILL.md +1 -1
  139. package/skills/uipath-platform/references/data-fabric/bulk-import.md +10 -27
  140. package/skills/uipath-platform/references/data-fabric/choice-sets.md +7 -64
  141. package/skills/uipath-platform/references/data-fabric/data-fabric.md +76 -267
  142. package/skills/uipath-platform/references/data-fabric/entity-schema.md +23 -99
  143. package/skills/uipath-platform/references/data-fabric/file-attachments.md +5 -28
  144. package/skills/uipath-platform/references/data-fabric/filter-platform-contract.md +2 -2
  145. package/skills/uipath-platform/references/data-fabric/records-query.md +11 -32
  146. package/skills/uipath-platform/references/integration-service/reference-resolution.md +6 -2
  147. package/skills/uipath-platform/references/licensing/consumables-report.md +18 -0
  148. package/skills/uipath-platform/references/licensing/licensing.md +1 -1
  149. package/skills/uipath-platform/references/orchestrator/run-jobs.md +9 -2
  150. package/skills/uipath-platform/references/orchestrator/setup-environment.md +9 -0
  151. package/skills/uipath-platform/references/traces/feedback.md +4 -1
  152. package/skills/uipath-process-mining/SKILL.md +97 -0
  153. package/skills/uipath-process-mining/references/app-types.md +66 -0
  154. package/skills/uipath-process-mining/references/data-model.md +130 -0
  155. package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +67 -0
  156. package/skills/uipath-process-mining/references/model-editing.md +112 -0
  157. package/skills/uipath-process-mining/references/pre-flight.md +119 -0
  158. package/skills/uipath-process-mining/references/querying.md +66 -0
  159. package/skills/uipath-process-mining/references/transformations.md +80 -0
  160. package/skills/uipath-process-mining/references/uip-pm-cli.md +145 -0
  161. package/skills/uipath-review/SKILL.md +23 -18
  162. package/skills/uipath-review/references/agents/agent-grading-rubric.md +1 -1
  163. package/skills/uipath-review/references/agents/agent-review-checklist.md +0 -4
  164. package/skills/uipath-review/references/agents/agents-coded-rules.md +1 -10
  165. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +3 -6
  166. package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +62 -14
  167. package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +60 -4
  168. package/skills/uipath-review/references/review-workflow-guide.md +3 -2
  169. package/skills/uipath-review/references/rule-catalog-workflow.md +4 -5
  170. package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +20 -0
  171. package/skills/uipath-rpa/SKILL.md +57 -55
  172. package/skills/uipath-rpa/agents/uipath-project-discovery-agent.md +75 -19
  173. package/skills/uipath-rpa/assets/codedworkflow-template.md +245 -11
  174. package/skills/uipath-rpa/references/cli-reference.md +229 -6
  175. package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +158 -2
  176. package/skills/uipath-rpa/references/coded/integration-service-guide.md +6 -5
  177. package/skills/uipath-rpa/references/coded/operations-guide.md +273 -5
  178. package/skills/uipath-rpa/references/coded-vs-xaml-guide.md +3 -3
  179. package/skills/uipath-rpa/references/common-pattern-card.md +303 -0
  180. package/skills/uipath-rpa/references/data-manipulation-guide.md +18 -3
  181. package/skills/uipath-rpa/references/debugging.md +0 -2
  182. package/skills/uipath-rpa/references/environment-setup.md +309 -1
  183. package/skills/uipath-rpa/references/error-handling-guide.md +1 -1
  184. package/skills/uipath-rpa/references/execution-maps-guide.md +110 -0
  185. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +58 -4
  186. package/skills/uipath-rpa/references/legacy/activity-docs/Excel.md +1 -1
  187. package/skills/uipath-rpa/references/legacy/activity-docs/_DU-PROCESS.md +0 -2
  188. package/skills/uipath-rpa/references/legacy/activity-docs/_INDEX.md +2 -2
  189. package/skills/uipath-rpa/references/legacy/activity-docs/_PATTERNS.md +1 -1
  190. package/skills/uipath-rpa/references/legacy/activity-docs/_REFRAMEWORK.md +2 -7
  191. package/skills/uipath-rpa/references/legacy/cli-reference.md +599 -0
  192. package/skills/uipath-rpa/references/legacy/error-handling-guide.md +2 -2
  193. package/skills/uipath-rpa/references/legacy/legacy-mode-guide.md +16 -16
  194. package/skills/uipath-rpa/references/legacy/project-organization-guide.md +2 -2
  195. package/skills/uipath-rpa/references/legacy/selector-guide.md +163 -1
  196. package/skills/uipath-rpa/references/legacy/testing-guide.md +246 -3
  197. package/skills/uipath-rpa/references/legacy/xaml-basics-and-rules.md +267 -2
  198. package/skills/uipath-rpa/references/library-authoring-guide.md +4 -3
  199. package/skills/uipath-rpa/references/testing-guide.md +2 -28
  200. package/skills/uipath-rpa/references/trigger-pattern-guide.md +1 -1
  201. package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +140 -33
  202. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +57 -240
  203. package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +42 -2
  204. package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +1 -1
  205. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +194 -228
  206. package/skills/uipath-solution/references/activate-and-manage.md +22 -0
  207. package/skills/uipath-solution/references/develop-solution.md +26 -2
  208. package/skills/uipath-solution/references/pack-and-deploy.md +43 -9
  209. package/skills/uipath-test/SKILL.md +4 -4
  210. package/skills/uipath-test/references/playwright-first-mile-guide.md +5 -4
  211. package/skills/uipath-test/references/publish-and-link-guide.md +2 -2
  212. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/click-silent-no-op.md +5 -5
  213. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/queue-operation-failed.md +20 -4
  214. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +1 -1
  215. package/skills/uipath-troubleshoot/references/activity-packages/csv-activities/playbooks/read-csv-file-not-found.md +12 -0
  216. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +12 -1
  217. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +2 -1
  218. package/skills/uipath-troubleshoot/references/activity-packages/terminal-activities/playbooks/terminal-session-connection-failed.md +5 -1
  219. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-silent-no-op.md +5 -5
  220. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/dependency-version-conflict.md +27 -6
  221. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/napplicationcard-view-generation-failed.md +10 -0
  222. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +1 -1
  223. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +1 -1
  224. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +4 -0
  225. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-auth-401-403.md +44 -0
  226. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +2 -1
  227. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-content-type-rejected.md +37 -0
  228. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-proxy-blocked.md +39 -0
  229. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/package-version-mismatch.md +42 -0
  230. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/securestring-misuse-analyzer.md +41 -0
  231. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +5 -0
  232. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +14 -1
  233. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +2 -0
  234. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/is-activities-prerelease-not-found.md +39 -0
  235. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-content-too-large.md +41 -0
  236. package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +9 -0
  237. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/console-conflict-login-to-console.md +40 -0
  238. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/credential-store-unavailable.md +42 -0
  239. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/executor-start-transient-rerun.md +49 -0
  240. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-consecutive-system-exceptions.md +47 -0
  241. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-session-timeout.md +19 -19
  242. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-output-too-large.md +47 -0
  243. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-generic-exit-code.md +55 -0
  244. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/known-issue-robot-defect.md +40 -0
  245. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/platform-incident-correlation.md +45 -0
  246. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/screen-capture-handle-invalid.md +43 -0
  247. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-license-quota.md +43 -0
  248. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-time-limit-exceeded.md +34 -0
  249. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/workstation-in-use-machine-slots.md +40 -0
  250. package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +13 -1
  251. package/version-manifest.json +2 -2
  252. package/skills/uipath-maestro-bpmn/validator/README.md +0 -224
  253. package/skills/uipath-maestro-bpmn/validator/model.mjs +0 -419
  254. package/skills/uipath-maestro-bpmn/validator/package.json +0 -17
  255. package/skills/uipath-maestro-bpmn/validator/rules.mjs +0 -1403
  256. package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +0 -25
  257. package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +0 -52
  258. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +0 -157
  259. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +0 -333
  260. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +0 -598
  261. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +0 -1709
  262. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +0 -564
  263. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +0 -671
  264. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +0 -1045
  265. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +0 -1176
  266. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +0 -670
  267. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +0 -466
  268. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +0 -74
  269. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +0 -32
  270. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +0 -62
  271. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +0 -361
  272. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +0 -62
  273. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +0 -74
  274. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +0 -35
  275. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +0 -33
  276. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +0 -35
  277. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +0 -76
  278. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +0 -36
  279. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +0 -44
  280. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +0 -516
  281. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +0 -173
  282. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +0 -181
  283. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +0 -126
  284. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +0 -122
  285. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +0 -438
  286. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +0 -87
  287. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +0 -165
  288. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +0 -39
  289. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +0 -102
  290. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +0 -160
  291. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +0 -45
  292. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +0 -46
  293. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +0 -218
  294. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +0 -78
  295. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +0 -340
  296. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +0 -56
  297. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +0 -117
  298. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +0 -45
  299. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +0 -45
  300. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +0 -68
  301. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +0 -84
  302. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +0 -55
  303. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +0 -69
  304. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +0 -20
  305. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +0 -34
  306. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +0 -87
  307. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +0 -31
  308. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +0 -129
  309. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +0 -59
  310. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +0 -30
  311. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +0 -83
  312. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +0 -85
  313. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +0 -80
  314. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +0 -77
  315. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +0 -36
  316. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +0 -59
  317. package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +0 -146
  318. package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +0 -42
  319. package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +0 -983
  320. package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +0 -530
  321. package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +0 -715
  322. package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +0 -164
  323. package/skills/uipath-review/references/agents/agents-common-rules.md +0 -32
  324. package/skills/uipath-rpa/assets/before-after-hooks-template.md +0 -115
  325. package/skills/uipath-rpa/assets/helper-utility-template.md +0 -22
  326. package/skills/uipath-rpa/assets/testcase-template.md +0 -92
  327. package/skills/uipath-rpa/references/coded/coding-guidelines.md +0 -255
  328. package/skills/uipath-rpa/references/coded/inspect-package-guide.md +0 -80
  329. package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +0 -67
  330. package/skills/uipath-rpa/references/connector-capabilities.md +0 -79
  331. package/skills/uipath-rpa/references/legacy/activity-docs/Testing.md +0 -95
  332. package/skills/uipath-rpa/references/legacy/activity-docs/UIAutomation.md +0 -159
  333. package/skills/uipath-rpa/references/legacy/common-pitfalls.md +0 -318
  334. package/skills/uipath-rpa/references/legacy/discovery-workflow.md +0 -147
  335. package/skills/uipath-rpa/references/legacy/environment-setup.md +0 -78
  336. package/skills/uipath-rpa/references/legacy/project-structure.md +0 -206
  337. package/skills/uipath-rpa/references/legacy/test-data-guide.md +0 -142
  338. package/skills/uipath-rpa/references/legacy/validation-and-fixing.md +0 -154
  339. package/skills/uipath-rpa/references/project-structure-guide.md +0 -168
  340. package/skills/uipath-rpa/references/project-structure.md +0 -135
  341. package/skills/uipath-rpa/references/publishing-guide.md +0 -80
  342. package/skills/uipath-rpa/references/validation-guide.md +0 -170
  343. package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +0 -43
  344. package/skills/uipath-rpa/references/xaml/flowchart-guide.md +0 -113
  345. package/skills/uipath-rpa/references/xaml/workflow-guide.md +0 -258
@@ -149,7 +149,7 @@ VB.NET expressions use bracket notation `[expression]` inline in attributes:
149
149
 
150
150
  **XML escaping required inside expressions:** `<` → `&lt;`, `>` → `&gt;`, `"` → `&quot;`, `&` → `&amp;`
151
151
 
152
- **Throw.Exception quote escaping gotcha:** Fully-qualified class names + complex string expressions with multiple `&quot;` in `Throw.Exception` can cause compiler errors. Use short-form class names (`BusinessRuleException` not `UiPath.Core.Activities.BusinessRuleException`) and for complex messages, assign to a variable first then throw with the variable. See [common-pitfalls.md](./common-pitfalls.md#vbnet-quote-escaping-in-throwexception-critical-for-xaml-generation) for the full pattern.
152
+ **Throw.Exception quote escaping gotcha:** Fully-qualified class names + complex string expressions with multiple `&quot;` in `Throw.Exception` can cause compiler errors. Use short-form class names (`BusinessRuleException` not `UiPath.Core.Activities.BusinessRuleException`) and for complex messages, assign to a variable first then throw with the variable. See [§ VB.NET Quote Escaping in Throw.Exception](#vbnet-quote-escaping-in-throwexception-critical-for-xaml-generation) for the full pattern.
153
153
 
154
154
  For comprehensive VB.NET expression patterns (strings, dates, collections, DataTables), see [activity-docs/_PATTERNS.md](./activity-docs/_PATTERNS.md).
155
155
 
@@ -454,4 +454,269 @@ xmlns:ucsvact="clr-namespace:UiPath.CSV.Activities;assembly=UiPath.Excel.Activit
454
454
  7. **Never add trailing `<x:Reference>` for Flowchart child nodes** — FlowStep/FlowDecision/FlowSwitch nodes defined inline as direct children of `<Flowchart>` must NOT be re-listed with `<x:Reference>` at the end. Only use `<x:Reference>` inside property elements (`Flowchart.StartNode`, `FlowStep.Next`, `FlowDecision.True/False`, etc.) to create cross-references
455
455
  8. **State Machine needs exactly one `IsFinal="True"` state** for proper termination
456
456
  9. **Legacy uses `assembly=mscorlib`** — not `assembly=System.Private.CoreLib` (which is .NET 6+)
457
- 10. **Scope activities require `ActivityAction<T>` body** — `ExcelApplicationScope`, `ExcelProcessScopeX`, `ExcelApplicationCard`, `WordApplicationScope`, etc. do NOT accept direct children. They require a `.Body` property with `ActivityAction<T>` and `DelegateInArgument`. See [common-pitfalls.md](./common-pitfalls.md#scope-activities-require-activityaction-body-critical-for-xaml-generation) for the complete template.
457
+ 10. **Scope activities require `ActivityAction<T>` body** — `ExcelApplicationScope`, `ExcelProcessScopeX`, `ExcelApplicationCard`, `WordApplicationScope`, etc. do NOT accept direct children. They require a `.Body` property with `ActivityAction<T>` and `DelegateInArgument`. See [§ Scope Activities Require ActivityAction Body](#scope-activities-require-activityaction-body-critical-for-xaml-generation) for the complete template.
458
+
459
+ ---
460
+
461
+ ## Common Pitfalls & Quick Reference
462
+
463
+ Essential gotchas, required scopes, and VB.NET patterns for legacy UiPath RPA workflows.
464
+
465
+ For the complete gotchas list, see [activity-docs/_COMMON-PITFALLS.md](./activity-docs/_COMMON-PITFALLS.md).
466
+ For the complete VB.NET cheat sheet, see [activity-docs/_PATTERNS.md](./activity-docs/_PATTERNS.md).
467
+
468
+ ---
469
+
470
+ ### Flowcharts/StateMachines Without ViewState
471
+
472
+ **Severity: HIGH.** Missing ViewState causes Studio to stack all nodes at (0,0) — unusable. Every Flowchart/StateMachine node needs `ShapeLocation` + `ShapeSize`. **Required xmlns:** `xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"`
473
+
474
+ See [activity-docs/_XAML-GUIDE.md](./activity-docs/_XAML-GUIDE.md) for coordinate systems, standard sizes, layout algorithms, connector formulas, and complete examples.
475
+
476
+ ---
477
+
478
+ ### Required Parent Scopes
479
+
480
+ These classic activities **must** be placed inside a specific parent scope:
481
+
482
+ | Activities | Required Parent Scope |
483
+ |-----------|----------------------|
484
+ | Excel Interop (ExcelReadRange, ExcelWriteCell, etc.) | `Excel Application Scope` |
485
+ | Excel Modern (ReadRangeX, WriteRangeX, etc.) | `ExcelApplicationCard` inside `ExcelProcessScopeX` |
486
+ | PowerPoint Interop (InsertSlide, InsertText, etc.) | `PowerPoint Application Scope` |
487
+ | Word Interop (AppendText, ReplaceText, etc.) | `Word Application Scope` |
488
+ | FTP activities (Download, Upload, Delete, etc.) | `FTP Session` (WithFtpSession) |
489
+ | Java activities (InvokeJavaMethod, LoadJar, etc.) | `Java Scope` |
490
+ | Python activities (RunScript, InvokeMethod, etc.) | `Python Scope` |
491
+ | Terminal activities (GetField, SetField, SendKeys, etc.) | `Terminal Session` |
492
+ | Office 365 activities (SendMail, CreateEvent, etc.) | `Microsoft Office 365 Scope` |
493
+ | SAP BAPI activities (InvokeSapBapi) | `SAP Application Scope` |
494
+ | SharePoint activities (GetListItems, UploadFile, etc.) | `SharePoint Application Scope` |
495
+
496
+ ---
497
+
498
+ ### Scope Activities Require ActivityAction Body (CRITICAL for XAML Generation)
499
+
500
+ Scope activities (Excel Application Scope, ExcelProcessScopeX, ExcelApplicationCard, Word Application Scope, etc.) do **NOT** accept direct children. They require an `ActivityAction<T>` body wrapper with a `DelegateInArgument`. `RetryScope` follows the same wrap-the-body rule but uses a bare `ActivityAction` (no `x:TypeArguments`, no `DelegateInArgument`) — see the per-activity table below. Placing activities directly inside the scope element will fail validation.
501
+
502
+ **Wrong — direct children (fails validation):**
503
+ ```xml
504
+ <ueab:ExcelApplicationCard WorkbookPath="file.xlsx">
505
+ <ueab:ReadRangeX ... /> <!-- WRONG -->
506
+ </ueab:ExcelApplicationCard>
507
+ ```
508
+
509
+ **Correct — ActivityAction body wrapper:**
510
+ ```xml
511
+ <ueab:ExcelApplicationCard WorkbookPath="file.xlsx" DisplayName="Use Excel File">
512
+ <ueab:ExcelApplicationCard.Body>
513
+ <ActivityAction x:TypeArguments="ue:IWorkbookQuickHandle">
514
+ <ActivityAction.Argument>
515
+ <DelegateInArgument x:TypeArguments="ue:IWorkbookQuickHandle" Name="Excel" />
516
+ </ActivityAction.Argument>
517
+ <Sequence DisplayName="Do">
518
+ <!-- Child activities go here, using Excel handle -->
519
+ <ueab:ReadRangeX Range="[Excel.Sheet(&quot;Sheet1&quot;).Range(&quot;A1:A20&quot;)]" />
520
+ </Sequence>
521
+ </ActivityAction>
522
+ </ueab:ExcelApplicationCard.Body>
523
+ </ueab:ExcelApplicationCard>
524
+ ```
525
+
526
+ #### Common Scope Body Patterns
527
+
528
+ | Activity | Body TypeArgument | DelegateInArgument Name | Notes |
529
+ |----------|-------------------|------------------------|-------|
530
+ | `ExcelProcessScopeX` | `ui:IExcelProcess` | `ExcelProcessScopeTag` | Outer Excel scope |
531
+ | `ExcelApplicationCard` | `ue:IWorkbookQuickHandle` | `Excel` | Inner Excel scope (inside ExcelProcessScopeX) |
532
+ | `ExcelApplicationScope` | `ue:WorkbookApplication` | `ExcelWorkbookScope` | Classic Interop scope |
533
+ | `ForEachRow` | `ActivityAction(sd:DataRow)` | `row` | Iterates DataTable rows |
534
+ | `WordApplicationScope` | (Word handle type) | `WordApplicationScope` | Word COM scope |
535
+ | `PowerPointApplicationScope` | (PowerPoint handle type) | `PowerPointApplication` | PowerPoint COM scope |
536
+ | `TryCatch` | (special — `Catches` collection) | — | Not ActivityAction, but has nested body structure |
537
+ | `Parallel` | (multiple `Branches`) | — | Each branch is a separate Sequence |
538
+ | `RetryScope` | _(none — bare `<ActivityAction>`)_ | — | Body property is `.ActivityBody` (not `.Body`); `ActivityAction` takes no type argument or `DelegateInArgument` |
539
+
540
+ **`find-activities` now returns `Body` info** when an activity requires an `ActivityAction<T>` body — check the output before writing XAML for scope activities.
541
+
542
+ **Key xmlns required:**
543
+ - `xmlns:ue="clr-namespace:UiPath.Excel;assembly=UiPath.Excel.Activities"`
544
+ - `xmlns:ueab="clr-namespace:UiPath.Excel.Activities.Business;assembly=UiPath.Excel.Activities"`
545
+ - `xmlns:ui="http://schemas.uipath.com/workflow/activities"`
546
+ - `xmlns:sd="clr-namespace:System.Data;assembly=System.Data"` (for ForEachRow DataRow type)
547
+
548
+ **Nested scopes:** Modern Excel requires TWO levels: `ExcelProcessScopeX` → `ExcelApplicationCard` → activities. Each level has its own `ActivityAction` body.
549
+
550
+ **Always check `find-activities` output** for body pattern info before using scope activities.
551
+
552
+ ---
553
+
554
+ ### Dangerous Defaults (Source Code Verified)
555
+
556
+ #### ContinueOnError Defaults to TRUE
557
+ These activities **silently swallow all errors** by default:
558
+
559
+ | Activity | Package | Impact |
560
+ |----------|---------|--------|
561
+ | `NetHttpRequest` / `HttpClient` (HTTP Request) | Web | HTTP 500/timeout → empty response, no error |
562
+ | `Data Scraping` wizard output | UIAutomation | Extraction failure → empty DataTable |
563
+
564
+ **Always** set `ContinueOnError=False` on HTTP Request activities.
565
+
566
+ #### ContinueOnError in Library Workflows
567
+ **NEVER** use `ContinueOnError=True` in Library workflows. Library consumers cannot know which errors are silently swallowed. Always let exceptions propagate from libraries — the consuming process decides how to handle them.
568
+
569
+ #### Excel AutoSave Causes Performance Disasters
570
+ `AutoSave=true` (default) on `ExcelApplicationScope` means every Write Cell triggers a disk write. In loops with 1000 operations, that's 1000 saves.
571
+
572
+ **Fix:** Set `AutoSave=false`, add a single `Save Workbook` at the end.
573
+
574
+ #### OpenBrowser Defaults to Internet Explorer
575
+ `BrowserType` defaults to `IE` in source code. **Always explicitly set** BrowserType to Chrome, Firefox, or Edge.
576
+
577
+ #### HTTP Request Very Short Timeout
578
+ Legacy `HttpClient` (also called `NetHttpRequest` internally) timeout is only 6,000-10,000ms. Both are often too low for production APIs.
579
+
580
+ **Fix:** Set `TimeoutMS` to 30,000-60,000ms.
581
+
582
+ ---
583
+
584
+ ### VB.NET Quote Escaping in Throw.Exception (CRITICAL for XAML Generation)
585
+
586
+ The `Throw.Exception` attribute wraps the bracket expression in `VisualBasicValue<Exception>`. When fully-qualified class names are combined with complex string expressions containing multiple `&quot;`, the VB.NET compiler can reject the expression — even though the same `&quot;` escaping works fine in simpler attributes like `LogMessage.Message`.
587
+
588
+ #### What fails
589
+
590
+ ```xml
591
+ <!-- FAILS: Fully-qualified name + complex string concatenation -->
592
+ <Throw Exception="[New UiPath.Core.Activities.BusinessRuleException(&quot;Invalid amount: &quot; &amp; amount.ToString(&quot;F2&quot;) &amp; &quot; for &quot; &amp; txId)]" />
593
+
594
+ <!-- FAILS: String.Format with multiple &quot; inside brackets -->
595
+ <Throw Exception="[New UiPath.Core.Activities.BusinessRuleException(String.Format(&quot;Invalid amount: {0} for {1}&quot;, amount, txId))]" />
596
+ ```
597
+
598
+ #### What works
599
+
600
+ **Approach 1: Short-form class name + simple expression (recommended for simple messages)**
601
+ ```xml
602
+ <!-- Works: Short name (namespace already imported) + simple concatenation -->
603
+ <Throw Exception="[New BusinessRuleException(&quot;Invalid amount for &quot; &amp; txId)]" />
604
+ ```
605
+
606
+ **Approach 2: Variable for message, then Throw (recommended for complex messages)**
607
+ ```xml
608
+ <!-- Best practice from codebase: construct message in a variable, then throw -->
609
+ <Assign DisplayName="Build Error Message">
610
+ <Assign.To>
611
+ <OutArgument x:TypeArguments="x:String">[errorMessage]</OutArgument>
612
+ </Assign.To>
613
+ <Assign.Value>
614
+ <InArgument x:TypeArguments="x:String">["Invalid amount: " &amp; amount.ToString("F2") &amp; " for transaction " &amp; txId]</InArgument>
615
+ </Assign.Value>
616
+ </Assign>
617
+ <Throw Exception="[New BusinessRuleException(errorMessage)]" />
618
+ ```
619
+
620
+ #### Rules
621
+
622
+ 1. **Always use short-form class names** in `Throw.Exception` — `BusinessRuleException` not `UiPath.Core.Activities.BusinessRuleException`. Ensure `UiPath.Core.Activities` is in the namespace imports.
623
+ 2. **For complex messages, use the variable approach** — Assign the message string to a variable first, then pass the variable to the exception constructor.
624
+ 3. **For simple messages, inline is fine** — `[New BusinessRuleException(&quot;simple message&quot;)]` works.
625
+ 4. **Same rules apply to all exception types** — `Exception`, `BusinessRuleException`, `ArgumentException`, etc.
626
+
627
+ #### Why this happens
628
+
629
+ `Throw.Exception` compiles the bracket expression via `VisualBasicValue<Exception>`. The combination of a long fully-qualified type path + embedded `&quot;` string literals with concatenation operators creates ambiguity for the VB.NET expression compiler. Shorter expressions or variable references avoid this.
630
+
631
+ ---
632
+
633
+ ### Top Gotchas by Package
634
+
635
+ #### Excel
636
+ - **Zombie EXCEL.EXE processes** after workflow crashes — use Kill Process in Finally block
637
+ - **Dates read as serial numbers** — set `PreserveFormat=true` or convert with `DateTime.FromOADate()`
638
+ - **Empty DataTable from Read Range** — verify sheet name, use `""` for entire used range
639
+ - **Write Range strips formatting** — use Write Cell in loops for small updates
640
+
641
+ #### UIAutomation
642
+ - **TypeInto missing/wrong characters** — escape `{`, `}`, `[`, `]`, `+`, `^`, `%`, `~` with `{{}`, `{+}` etc.
643
+ - **EmptyField ignored with SimulateType** — only works with hardware events or SendWindowMessages
644
+ - **Selectors work in Studio, fail on Robot** — use SimulateClick/SimulateType, avoid `idx` attribute
645
+ - **Dynamic selectors break** — use wildcards `*` for dynamic parts, prefer `AutomationId`
646
+
647
+ #### Mail
648
+ - **SMTP auth fails with Gmail/M365** — use App Passwords or OAuth2, not "Less Secure Apps"
649
+ - **SSL/TLS port mismatch** — Port 587 = STARTTLS, Port 465 = implicit SSL, Port 25 = unencrypted
650
+ - **Multiple recipients** — use semicolons `;` not commas
651
+
652
+ #### Web
653
+ - **HTTP Request ContinueOnError=TRUE by default** — errors silently swallowed
654
+ - **Legacy HttpClient 6-second timeout** — increase to 30-60 seconds
655
+
656
+ #### PDF
657
+ - **ReadPDFText returns empty** — PDF is scanned images, use Read PDF With OCR instead
658
+ - **Text out of order** — set `PreserveFormatting=true`
659
+
660
+ #### GenericValue
661
+ - **String comparison instead of numeric** — `"10" > "9"` returns False. Use `CInt()` explicitly.
662
+ - **Boolean conversion trap** — ANY non-null, non-empty string converts to `True`
663
+ - **Null converts to 0** — `GenericValue(null)` → int returns `0`, → DateTime returns `DateTime.MinValue`
664
+
665
+ **Recommendation:** Avoid GenericValue entirely. Use strongly-typed variables.
666
+
667
+ ---
668
+
669
+ ### VB.NET Quick Reference
670
+
671
+ Complete VB.NET cheat sheet — string/type/DateTime/collection/DataTable operations, file paths, Orchestrator patterns: [activity-docs/_PATTERNS.md](./activity-docs/_PATTERNS.md).
672
+
673
+ ---
674
+
675
+ ### Common XAML Generation Mistakes
676
+
677
+ These are patterns the agent is likely to produce incorrectly. Check for them after generating XAML.
678
+
679
+ #### Hallucination-Prone Activity Names
680
+
681
+ | Wrong (invented) | Correct | Package |
682
+ |---|---|---|
683
+ | `ReadExcel`, `WriteExcel` | `ExcelReadRange`, `ExcelWriteRange` | Excel |
684
+ | `SendEmail` | `SendSmtpMailMessage`, `SendOutlookMailMessage` | Mail |
685
+ | `OpenBrowserActivity` | `OpenBrowser` | UIAutomation |
686
+ | `ReadPdf` | `ReadPDFText`, `ReadPDFWithOCR` | PDF |
687
+ | `HttpRequest` | `HttpClient` (also known as `NetHttpRequest`) | Web |
688
+
689
+ **Rule:** NEVER guess activity names. Run `find-activities` to get the exact class name.
690
+
691
+ #### Nesting Errors
692
+
693
+ | Mistake | Fix |
694
+ |---|---|
695
+ | Multiple children directly inside `If.Then` or `If.Else` | Wrap in a single `Sequence` |
696
+ | Activities directly inside `ForEach` body | Use `ActivityAction` wrapper (see Scope Activities section above) |
697
+ | Activities directly inside scope activities (Excel, Word, etc.) | Use `ActivityAction<T>` body pattern |
698
+ | ViewState referencing nodes that don't exist in the workflow | Remove orphaned ViewState entries, or add the missing nodes |
699
+
700
+ #### Expression Language Mismatches
701
+
702
+ | Mistake | Symptom | Fix |
703
+ |---|---|---|
704
+ | C# operators (`!=`, `&&`, `\|\|`) in VB.NET project | Compilation error | Use `<>`, `AndAlso`, `OrElse` |
705
+ | C# string interpolation `$"..."` in VB.NET project | Compilation error | Use `String.Format` or `&` concatenation |
706
+ | VB.NET `[bracket]` expressions in C# project | Compilation error | Use `<mca:CSharpValue>` or `<mca:CSharpReference>` |
707
+
708
+ #### Security Anti-Patterns
709
+
710
+ | Anti-Pattern | Risk | Fix |
711
+ |---|---|---|
712
+ | Password stored in `String` variable | Visible in logs and memory dumps | Use `SecureString` type |
713
+ | Hardcoded API keys or JWT tokens in XAML | Credentials in source control | Use Orchestrator Credential assets |
714
+ | Hardcoded URLs in activity properties | Breaks across environments | Use Config.xlsx Settings or Orchestrator Text assets |
715
+ | Empty Catch blocks (`Catch ex As Exception` with no body) | Silent failures, impossible to debug | At minimum, add `Log Message` with `ex.Message` |
716
+ | Timeout values as magic numbers (`30000`) | Unclear intent, hard to tune | Use Config.xlsx Constants with descriptive names |
717
+
718
+ ---
719
+
720
+ ### Deprecated Activity → Replacement
721
+
722
+ Full mapping table: [activity-docs/_PATTERNS.md § Deprecated Activities](./activity-docs/_PATTERNS.md).
@@ -23,7 +23,7 @@ Boundaries:
23
23
  |------|-------|
24
24
  | Start new projects from a standard baseline | Project templates — [environment-setup.md § Template Selection](environment-setup.md) |
25
25
  | Share UI selectors across projects | UI Libraries — [uia-starter-guide.md § Object Repository as a Published UI Library](uia-starter-guide.md) |
26
- | Reuse logic inside one project | Separate workflow file — [project-structure-guide.md § Designing for Reuse](project-structure-guide.md) |
26
+ | Reuse logic inside one project | Separate workflow file — [environment-setup.md § Designing for Reuse](environment-setup.md#designing-for-reuse) |
27
27
 
28
28
  ## Creating and Structuring
29
29
 
@@ -131,7 +131,7 @@ Rules:
131
131
  Each public workflow is an API surface. Apply every rule:
132
132
 
133
133
  1. **Name workflows verb-noun PascalCase, no spaces** — `SendNotificationEmail.xaml`, `DownloadInvoices.xaml`. The file name becomes the activity name in the consumer's panel.
134
- 2. **Public arguments: PascalCase, NO `in_`/`out_`/`io_` prefixes** — `InvoiceId`, `RecipientEmail`, `NotificationResult`. Argument names become activity property names; prefixes become noise on the property grid. This inverts the process-workflow convention: workflows invoked via Invoke Workflow File keep directional prefixes ([project-structure-guide.md § Designing for Reuse](project-structure-guide.md)); library public workflows drop them.
134
+ 2. **Public arguments: PascalCase, NO `in_`/`out_`/`io_` prefixes** — `InvoiceId`, `RecipientEmail`, `NotificationResult`. Argument names become activity property names; prefixes become noise on the property grid. This inverts the process-workflow convention: workflows invoked via Invoke Workflow File keep directional prefixes ([environment-setup.md § Designing for Reuse](environment-setup.md#designing-for-reuse)); library public workflows drop them.
135
135
  3. **Describe every public argument** via its `sap2010:Annotation.AnnotationText` — descriptions ship as property tooltips. For display names, placeholders, widgets, and grouping, add the layout sidecar ([§ Activity Layout](#activity-layout--the-sidecar-file)).
136
136
  4. **Expect — and keep — the analyzer naming warnings.** `build`/`pack` emit `Argument <Name> does not respect the set pattern ^in_...` for prefix-free library arguments. The warning is non-blocking. Do NOT rename arguments to silence it.
137
137
  5. **Return application handles.** A workflow that opens or attaches to an app outputs the window/browser object; downstream public workflows accept it as an input argument instead of reopening.
@@ -166,7 +166,8 @@ uip rpa pack "<PROJECT_DIR>" "<OUTPUT_DIR>" --output json
166
166
  uip or libraries upload --file "<OUTPUT_DIR>/<LIBRARY_NAME>.<VERSION>.nupkg" --output json
167
167
  ```
168
168
 
169
- - Libraries upload to the tenant-scoped **libraries feed** — not the per-folder processes feed that [publishing-guide.md](publishing-guide.md) covers with `uip or packages upload`. There is no `uip rpa publish`.
169
+ - Libraries upload to the tenant-scoped **libraries feed** — not the per-folder processes feed that [cli-reference.md § Pack & Publish to Orchestrator](cli-reference.md#pack--publish-to-orchestrator) covers with `uip or packages upload`. There is no `uip rpa publish`.
170
+ - `<OUTPUT_DIR>` must be OUTSIDE the project directory tree — `pack` refuses an output path inside the project. Use a sibling directory (e.g. `dist/`).
170
171
  - `--feed-id <FEED_ID>` targets a non-default feed.
171
172
  - Verify the publish:
172
173
 
@@ -17,19 +17,7 @@ Reference for XAML test automation features in UiPath RPA projects — XAML test
17
17
 
18
18
  ## Test Manager Setup (CLI)
19
19
 
20
- Linking a project to Test Manager (server connection + default project) can be done headlessly with `uip rpa tm`, without opening Studio — useful before authoring test cases that reference Test Manager test cases. Full verb/flag reference: [cli-reference.md § Test Manager](cli-reference.md). The essentials:
21
-
22
- ```
23
- uip rpa tm connect --url "https://<host>/<org>/<tenant>/testmanager_" --project-dir "<PROJECT_DIR>" --output json
24
- uip rpa tm set-default-project --id <project-guid> --name "<name>" --key "<KEY>" --project-dir "<PROJECT_DIR>" --output json
25
- uip rpa tm status --project-dir "<PROJECT_DIR>" --output json
26
- ```
27
-
28
- Behavior to know when authoring:
29
- - **`set-default-project` requires a connected server** — run `connect` first, or it is rejected (nothing is written).
30
- - **Switching to a different server** (`connect` to a different host/org/tenant) **clears the default project** — it belonged to the old server. Re-link one with `set-default-project` afterwards.
31
- - **`reloadHint` in the output**: if the project is open in a **Studio older than 26.0.197**, the change isn't picked up until the project is reloaded. When you see `reloadHint`, tell the user to **close and reopen the project in Studio**. Studio 26.0.197+ applies the change live (no `reloadHint`).
32
- - The CLI does **not** validate the project id against the server; obtain a real id from Test Manager (the runtime `uip tm project list` tool can list them).
20
+ Linking a project to Test Manager (server connection + default project) can be done headlessly with `uip rpa tm`, without opening Studio — useful before authoring test cases that reference Test Manager test cases. Commands, ordering constraints (`connect` before `set-default-project`, server switches clearing the default project), and `reloadHint` handling: [cli-reference.md § Test Manager](cli-reference.md#test-manager). The CLI does **not** validate the project id against the server; obtain a real id from Test Manager (the runtime `uip tm project list` tool can list them).
33
21
 
34
22
  ---
35
23
 
@@ -111,21 +99,7 @@ If the workflow has arguments, pass them in the `InvokeWorkflowFile.Arguments` d
111
99
 
112
100
  Register every XAML test case in `designOptions.fileInfoCollection` — this is **Common Rule 10** in SKILL.md and applies to both XAML and coded test cases. Test cases live **only** in `fileInfoCollection`, never in `entryPoints` — `entryPoints` is for executable workflow files in Process projects (e.g. `Main.xaml`), and test cases are not workflow entry points regardless of project type.
113
101
 
114
- ```json
115
- {
116
- "designOptions": {
117
- "fileInfoCollection": [
118
- {
119
- "editingStatus": "InProgress",
120
- "testCaseId": "<UNIQUE_GUID>",
121
- "testCaseType": "TestCase",
122
- "executionTemplateInvokeIsolated": false,
123
- "fileName": "TestCase.xaml"
124
- }
125
- ]
126
- }
127
- }
128
- ```
102
+ Copy-paste JSON snippet (including `publishAsTestCase` for coded test cases and `dataVariationFilePath` for data-driven): [../assets/json-template.md](../assets/json-template.md).
129
103
 
130
104
  **Required keys per entry:**
131
105
 
@@ -205,7 +205,7 @@ Applies to all integration triggers, and to local triggers placed at root.
205
205
 
206
206
  1. **Author** — place trigger as the first activity of root `Sequence`, bind output to variable, write handler. Per-file `validate` clean.
207
207
  2. **Build** — `uip rpa build "<PROJECT_DIR>" --output json` clean.
208
- 3. **Publish** — `.nupkg` to Orchestrator (see [publishing-guide.md](publishing-guide.md)). On publish, Orchestrator detects the trigger from the workflow's activity registration and exposes it as a Process/Time/Queue Trigger candidate.
208
+ 3. **Publish** — `.nupkg` to Orchestrator (see [cli-reference.md § Pack & Publish to Orchestrator](cli-reference.md#pack--publish-to-orchestrator)). On publish, Orchestrator detects the trigger from the workflow's activity registration and exposes it as a Process/Time/Queue Trigger candidate.
209
209
 
210
210
  **`uip rpa run` is NOT a meaningful smoke test for entry-point triggers.** The CLI executes the workflow once in-process, which does not exercise Orchestrator subscription or the connector's webhook/polling lifecycle. A clean `run` only proves the handler XAML compiles and the trigger activity can be instantiated.
211
211
 
@@ -6,6 +6,142 @@ How to generate ViewState for Flowchart, State Machine, and Long Running Workflo
6
6
  - **Sequences**: ViewState is optional — Studio auto-stacks children vertically. Only `IsExpanded=True` matters.
7
7
  - **Flowcharts, State Machines, ProcessDiagrams**: ViewState is **mandatory** for usable layout. Without it, Studio stacks all nodes at (0,0).
8
8
 
9
+ ## Flowchart Structure & Wiring
10
+
11
+ ### When to Use a Flowchart
12
+
13
+ Branching logic with multiple decision points, loops, and back-edges. Best when the flow is a graph rather than a straight sequence. For straight-line steps use a `Sequence`; for state-driven processes use a State Machine; for BPMN-style event-driven long waits use a Long Running Workflow (ProcessDiagram).
14
+
15
+ ### Node Vocabulary
16
+
17
+ | Node | Purpose | Successor wiring |
18
+ |------|---------|------------------|
19
+ | `FlowStep` | Wraps **exactly one** activity (which may be a container). The unit of work. | `FlowStep.Next` → one node |
20
+ | `FlowDecision` | Boolean branch. `Condition` plus `True`/`False` targets. | `FlowDecision.True` / `.False` → one node each |
21
+ | `FlowSwitch<T>` | Multi-way branch keyed by an expression. | `Default` plus one target per case |
22
+
23
+ A `FlowStep` wraps one activity. If that activity is a container (`Sequence`, `NApplicationCard`, `TryCatch`), its children stay nested and are NOT separate nodes. See [§ What Counts as a Node](#what-counts-as-a-node).
24
+
25
+ ### Wiring
26
+
27
+ **Rule:** every `FlowStep`/`FlowDecision`/`FlowSwitch` is a **direct child of `<Flowchart>`** with an `x:Name`. Links between nodes are made with `<x:Reference>__ReferenceIDn</x:Reference>` inside property elements — never by physically nesting one node inside another.
28
+
29
+ ```xml
30
+ <Flowchart DisplayName="My Flowchart" sap2010:WorkflowViewState.IdRef="Flowchart_1">
31
+ <Flowchart.StartNode>
32
+ <x:Reference>__ReferenceID0</x:Reference>
33
+ </Flowchart.StartNode>
34
+ <FlowStep x:Name="__ReferenceID0">
35
+ <ui:LogMessage DisplayName="Step 1" />
36
+ <FlowStep.Next>
37
+ <x:Reference>__ReferenceID1</x:Reference>
38
+ </FlowStep.Next>
39
+ </FlowStep>
40
+ <FlowDecision x:Name="__ReferenceID1">
41
+ <FlowDecision.Condition>
42
+ <CSharpValue x:TypeArguments="x:Boolean">condition</CSharpValue>
43
+ </FlowDecision.Condition>
44
+ <FlowDecision.True>
45
+ <x:Reference>__ReferenceID0</x:Reference>
46
+ </FlowDecision.True>
47
+ <!-- FlowDecision.False omitted = end of flow -->
48
+ </FlowDecision>
49
+ </Flowchart>
50
+ ```
51
+
52
+ ### Where `<x:Reference>` Goes
53
+
54
+ `<x:Reference>` is used ONLY inside property elements to create cross-references between nodes:
55
+
56
+ | Property Element | Container | Purpose |
57
+ |-----------------|-----------|---------|
58
+ | `Flowchart.StartNode` | Flowchart | Points to the first node |
59
+ | `FlowStep.Next` | Flowchart | Links to the next node |
60
+ | `FlowDecision.True` / `.False` | Flowchart | Branch targets |
61
+ | `Transition.To` | State Machine | Transition destination state |
62
+ | `StateMachine.InitialState` | State Machine | Starting state (attribute form: `{x:Reference ...}`) |
63
+ | `ProcessDiagram.StartNode` | ProcessDiagram | Points to start event |
64
+ | `EventNode.Next` / `TaskNode.Next` | ProcessDiagram | Links to next node |
65
+ | `DecisionNode.True` / `.False` | ProcessDiagram | Branch targets |
66
+
67
+ ### Node Registration
68
+
69
+ Only nodes in the `Flowchart.Nodes` collection render — and that collection is built from the **direct children** of `<Flowchart>`. A node that is not a direct child is never registered, so the designer does not draw it, regardless of ViewState. The same registration rules apply to `<StateMachine>` (States) and `<upa:ProcessDiagram>` and its node types (`EventNode`, `TaskNode`, `DecisionNode`, `SwitchNode<T>`, `SplitNode`, `MergeNode`, `SubProcessNode`, `EndNode`, `BoundaryNode`).
70
+
71
+ Two cases:
72
+
73
+ 1. **Direct children** of the container — already registered. Do NOT also add a trailing `<x:Reference>`.
74
+ 2. **Inline definitions** inside a property element (e.g., a `FlowStep` written inside `<FlowDecision.True>`) — MUST add a trailing `<x:Reference>` entry as a direct child of the container to register them.
75
+
76
+ **Correct — inline node registered with trailing `<x:Reference>`:**
77
+ ```xml
78
+ <Flowchart>
79
+ <Flowchart.StartNode>
80
+ <x:Reference>__ReferenceID0</x:Reference>
81
+ </Flowchart.StartNode>
82
+ <FlowDecision x:Name="__ReferenceID0"> <!-- direct child — no trailing ref -->
83
+ <FlowDecision.True>
84
+ <FlowStep x:Name="__ReferenceID1"> <!-- inline definition -->
85
+ ...
86
+ </FlowStep>
87
+ </FlowDecision.True>
88
+ </FlowDecision>
89
+ <x:Reference>__ReferenceID1</x:Reference> <!-- register inline node -->
90
+ </Flowchart>
91
+ ```
92
+
93
+ **Wrong — re-listing a direct child:**
94
+ ```xml
95
+ <Flowchart>
96
+ <FlowStep x:Name="__ReferenceID0"> <!-- direct child -->
97
+ ...
98
+ </FlowStep>
99
+ <x:Reference>__ReferenceID0</x:Reference> <!-- WRONG — already a direct child -->
100
+ </Flowchart>
101
+ ```
102
+
103
+ #### Forbidden — nested FlowStep chains
104
+
105
+ Do NOT build the flow by physically nesting each `FlowStep` inside the previous one's `<FlowStep.Next>` (a deep chain with only the first node under `<Flowchart.StartNode>`). Nested-only steps never enter `Flowchart.Nodes`, so the designer renders almost nothing — invisible regardless of ViewState. Wire successors by reference (as in [§ Wiring](#wiring)) and keep every step a direct child.
106
+
107
+ **Wrong** — Step 2 nested inside Step 1's `.Next`; `Flowchart.Nodes` holds only Step 1, so Step 2 never renders:
108
+ ```xml
109
+ <Flowchart sap2010:WorkflowViewState.IdRef="Flowchart_1">
110
+ <Flowchart.StartNode>
111
+ <x:Reference>__ReferenceID0</x:Reference>
112
+ </Flowchart.StartNode>
113
+ <FlowStep x:Name="__ReferenceID0">
114
+ <ui:LogMessage DisplayName="Step 1" />
115
+ <FlowStep.Next>
116
+ <FlowStep> <!-- WRONG — nested, not registered -->
117
+ <ui:LogMessage DisplayName="Step 2" />
118
+ </FlowStep>
119
+ </FlowStep.Next>
120
+ </FlowStep>
121
+ </Flowchart>
122
+ ```
123
+
124
+ #### `__ReferenceID` Gotchas
125
+
126
+ - `__ReferenceID` values must be unique within the entire XAML file — duplicate IDs cause deserialization errors. When adding nodes manually, use a number higher than any existing one (Studio auto-renumbers on copy-paste; manual XAML editing doesn't).
127
+ - When copying from flowchart to sequence, elements may be ordered backwards due to node ordering in XAML.
128
+ - `x:Reference` can only refer to elements with `x:Name` in the same XAML file — cross-file references are not supported.
129
+
130
+ ### No Orphan Nodes
131
+
132
+ Every node except the start must be reachable: referenced by `Flowchart.StartNode`, a `FlowStep.Next`, or a decision/switch branch. A `FlowStep` with no incoming reference and no `FlowStep.Next` is an orphan — it renders as a disconnected box and is almost always a leftover. Do not generate them.
133
+
134
+ ### Condition Expressions
135
+
136
+ `FlowDecision.Condition` and `FlowSwitch` expressions follow the project's expression language:
137
+
138
+ - **C# projects:** `<CSharpValue x:TypeArguments="x:Boolean">condition</CSharpValue>`
139
+ - **VB projects:** `<mva:VisualBasicValue x:TypeArguments="x:Boolean" ExpressionText="condition" />`
140
+
141
+ Structure first, then coordinates: ViewState positions a node **only after** it is registered — see [§ 3. Flowchart Layout](#3-flowchart-layout) below and SKILL.md Rule 20.
142
+
143
+ ---
144
+
9
145
  ---
10
146
 
11
147
  ## 1. Required XAML Namespaces
@@ -68,7 +204,7 @@ Every activity should have `sap:VirtualizedContainerService.HintSize` as an attr
68
204
 
69
205
  ## 3. Flowchart Layout
70
206
 
71
- Node vocabulary, structure & wiring, and node registration: [flowchart-guide.md](flowchart-guide.md). This section covers layout coordinates and ViewState only.
207
+ Node vocabulary, structure & wiring, and node registration: [§ Flowchart Structure & Wiring](#flowchart-structure--wiring) above. This section covers layout coordinates and ViewState only.
72
208
 
73
209
  ### What Counts as a Node
74
210
 
@@ -79,11 +215,6 @@ One node per top-level step → separate boxes. One step's children nested → s
79
215
  ### Required vs. Optional ViewState Keys
80
216
 
81
217
  `ShapeLocation` + `ShapeSize` are the **required** pair on every node — they are what makes nodes render as separate boxes. `ConnectorLocation` (and `TrueConnector`/`FalseConnector`) is **optional**: Studio auto-routes connectors from the source and target node positions. The recipes below include connectors for precise routing, but omitting them is valid — Studio's own saved output omits them entirely.
82
-
83
- ### No Orphan Nodes
84
-
85
- Every node except the start must be reachable: referenced by `Flowchart.StartNode`, a `FlowStep.Next`, or a decision/switch branch. A `FlowStep` with no incoming reference and no `FlowStep.Next` is an orphan — it renders as a disconnected box and is almost always a leftover. Do not generate them.
86
-
87
218
  ### Coordinate System
88
219
 
89
220
  - **Origin**: Top-left corner (0, 0)
@@ -276,33 +407,9 @@ FlowDecision: (270, 220) 60x60
276
407
  True branch: (100, 330) 200x60 (left)
277
408
  False branch: (400, 330) 200x60 (right)
278
409
  ```
279
-
280
410
  ### Node Registration
281
411
 
282
- All FlowStep/FlowDecision/FlowSwitch nodes must be registered as children of `<Flowchart>`. Direct children are already registered. Nodes defined inline within property elements (e.g., inside `FlowDecision.True`) need a trailing `<x:Reference>` entry at the Flowchart level.
283
-
284
- Only nodes in the `Flowchart.Nodes` collection (the direct children) render. ViewState positions a node **only after** it is registered there — coordinates on an unregistered node do nothing.
285
-
286
- **Forbidden — nested FlowStep chains.** Do NOT build the flow by physically nesting each `FlowStep` inside the previous one's `<FlowStep.Next>`, leaving only the first node under `<Flowchart.StartNode>`. Nested-only steps never enter `Flowchart.Nodes`, so the designer renders almost nothing — invisible regardless of ViewState. Wire each step's successor with `<FlowStep.Next><x:Reference>__ReferenceIDn</x:Reference></FlowStep.Next>` and keep every `FlowStep` a direct child of `<Flowchart>`:
287
-
288
- ```xml
289
- <Flowchart>
290
- <Flowchart.StartNode>
291
- <x:Reference>__ReferenceID0</x:Reference>
292
- </Flowchart.StartNode>
293
- <FlowStep x:Name="__ReferenceID0"> <!-- direct child -->
294
- <ui:LogMessage DisplayName="Step 1" />
295
- <FlowStep.Next>
296
- <x:Reference>__ReferenceID1</x:Reference> <!-- link by reference, NOT by nesting -->
297
- </FlowStep.Next>
298
- </FlowStep>
299
- <FlowStep x:Name="__ReferenceID1"> <!-- direct child -->
300
- <ui:LogMessage DisplayName="Step 2" />
301
- </FlowStep>
302
- </Flowchart>
303
- ```
304
-
305
- See [common-pitfalls.md § x:Reference](common-pitfalls.md#xreference--__referenceid-naming) for the full rules with correct/wrong examples.
412
+ See [§ Node Registration](#node-registration) at the top of this file — structure and registration come before coordinates.
306
413
 
307
414
  ---
308
415
 
@@ -422,7 +529,7 @@ End State: (164, 385) 229x110 (IsFinal=True)
422
529
 
423
530
  ### Node Registration
424
531
 
425
- States defined inline inside `Transition.To` need `<x:Reference>` registration as direct children of `<StateMachine>`, same as Flowchart pattern.
532
+ States defined inline inside `Transition.To` need `<x:Reference>` registration as direct children of `<StateMachine>`. See [§ Node Registration](#node-registration).
426
533
 
427
534
  ---
428
535
 
@@ -644,7 +751,7 @@ EventNode (start) → TaskNode 1 → DecisionNode → TaskNode 2 → End
644
751
 
645
752
  ### Node Registration
646
753
 
647
- Same rules as Flowchart — nodes defined inline within property elements (e.g., `TaskNode` inside `EventNode.Next`) need trailing `<x:Reference>` entries as direct children of `<upa:ProcessDiagram>`. See [common-pitfalls.md § x:Reference](common-pitfalls.md#xreference--__referenceid-naming) for the full rules.
754
+ Same rules as Flowchart — inline nodes need trailing `<x:Reference>` entries as direct children of `<upa:ProcessDiagram>`. See [§ Node Registration](#node-registration).
648
755
 
649
756
  ---
650
757